class

Hwaro::Content::Taxonomies

Inherits Reference < Object

Class methods

generate(site : Models::Site, output_dir : String, templates : Hash(String, String), verbose : Bool = false, builder : Core::Build::Builder | Nil = nil) : Array(Models::Section)
Source
match_term_metadata(pages : Array(Models::Page), sections : Array(Models::Section), config : Models::Config) : Hash(String, TermFile)

The candidate files (term_metadata_path?) that would publish at the URL (NFC) of a term page this build writes: the directory is the term's slug in the file's language — content/tags/rust-lang/_index.md for /tags/rust-lang/, content/tags/c-2/_index.md for a disambiguated /tags/c-2/, _index.ko.md for /ko/tags/<slug>/ — and no path or [permalinks] rule moved it elsewhere. Keyed by section path. A matched file describes that term page instead of publishing a page of its own (Builder#mark_term_metadata); every other candidate stays an ordinary section, exactly as before. When several files match one page (_index.md beside _index.markdown, or _index.ko.md beside _index.ko.markdown), a plain _index.md wins, then a .md one, else the first path; the others are reported and not published.

Source
sort_taxonomy_pages(taxonomies : Hash(String, Hash(String, Array(Models::Page))), config : Models::Config)

Sort every term's page list per its taxonomy's sort_by/reverse (date-desc for taxonomies not in the config). ONE implementation serves both the generator (populate_taxonomies) and the render phase's rebuild_taxonomies (transform.cr) — per-term ordering drifting between the written pages and get_taxonomy is exactly the bug class this shared helper prevents.

Source
term_metadata_path?(relative_path : String, config : Models::Config) : Bool

True for content/<taxonomy>/<dir>/_index[.<lang>].md with <taxonomy> a configured taxonomy: a file that MAY describe a term page (gh#891). Only match_term_metadata decides whether it does; doctor, which builds nothing, uses this alone to stay quiet about such files. content/<taxonomy>/_index.md (the taxonomy index) is never a candidate.

Source

Nested types