2026-06-21 13:15:06 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
|
|
require_relative "volumen/version"
|
|
|
|
|
require_relative "volumen/frontmatter"
|
|
|
|
|
require_relative "volumen/markdown"
|
|
|
|
|
require_relative "volumen/post"
|
|
|
|
|
require_relative "volumen/store"
|
|
|
|
|
require_relative "volumen/config"
|
|
|
|
|
require_relative "volumen/password"
|
|
|
|
|
require_relative "volumen/users"
|
|
|
|
|
|
|
|
|
|
# volumen is a small, file-based Markdown blog engine.
|
|
|
|
|
#
|
|
|
|
|
# Posts are plain `.md` files with a TOML frontmatter block delimited by
|
|
|
|
|
# `+++`. The engine exposes them as a JSON API and ships a server-rendered
|
|
|
|
|
# admin with a Markdown source editor and a visual editor.
|
|
|
|
|
#
|
|
|
|
|
# The Sinatra app (`Volumen::Server`) and the CLI (`Volumen::CLI`) are loaded
|
|
|
|
|
# on demand to keep the core library light.
|
|
|
|
|
module Volumen
|
2026-06-25 21:33:16 +02:00
|
|
|
def self.login_attempts
|
|
|
|
|
@login_attempts ||= {}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def self.reset_login_attempts!
|
|
|
|
|
@login_attempts = {}
|
|
|
|
|
end
|
2026-06-21 13:15:06 +02:00
|
|
|
end
|