Markdown
Class methods
Build one Markdown::File per entry of all_sources in parallel.
The block receives (sources, base) and returns a file or nil to skip it; it handles its own per-file error semantics (log-and-skip or raise). An exception escaping a worker is captured and re-raised after all entries were processed, so no error is lost.
A snapshot of the posts registry. Tasks on parallel workers register files (book chapters) while others read, so callers get a copy taken under the lock rather than the live Hash. For single lookups use post? / has_post?, which don't copy.
Parse all markdown posts in a path and build Markdown::File objects out of them
Register a file in the global posts registry (thread-safe)
Render given posts using given template
posts is an Array of Markdown::File
if require_date is true, posts must have a date
if require_title is true, posts must have a title
ameba:disable Metrics/CyclomaticComplexity
Create an index page out of a list of posts, save in output
Similar to self.render but it only validates correctness of posts without actually generating output