Since: Nocterra 0.99.1
Nocterra is a CMS that primarily serves pages. Blog articles are an optional capability that you can enable to publish dated content, automatically generate indexes (such as by year or category), and use features such as per-article Definitions and automatic Tables of Contents.
This part of the manual describes specific blog-article features and authoring tools. Most readers will want to jump directly to one of these pages:
A blog article in Nocterra is a file-based content item with metadata (author, published date, category, tags, title, description, and optional feature settings) and one or more language-specific bodies. Unlike systems that are “blog-first”, Nocterra treats articles as one content type alongside pages, so you can use articles in a traditional blog layout, or as a structured catalog of content within deeper site paths.
In a typical setup, articles:
Articles are discovered by scanning one or more configured source directories. Discovery is recursive: articles may be placed directly in the configured directory, or in any nested subdirectory structure (for example, grouping by author, topic, year, or project).
Advanced setups may:
$blog arrays (multiple independent article collections on one site),Nocterra does not assume a fixed URL layout for articles. Where an article appears in the site is determined by your configured URL scheme. A single blog configuration can support multiple patterns, and a site may support multiple separate blog configurations with different base paths and schemes.
In practice, an article URL layout is typically built from:
base and language routing (language-specific base paths),urlScheme patterns that define canonical and alternative URLs,urlMap mappings to provide clean redirects from legacy paths to canonical paths.A common pattern is to define a canonical URL scheme (the primary pattern used for generated links) and one or more alternative URL schemes (legacy patterns that remain valid and are redirected/mapped to the canonical URL).
Routing precedence matters: pages take priority over blog indexes and articles, and indexes take priority over articles. This means you can intentionally create a page that “overlays” a blog path (for example, to add a descriptive landing page), but it also means you can accidentally misconfigure an index to overlap with an article URL (or overlap an index with an existing page), making the article unreachable at that path. When designing URLs, keep index URLs and article URL schemes distinct, or intentionally disable an index that would collide.
Nocterra can provide index pages for years, authors, categories, and tags, but only for the index types you enable in site.php. When an index type is not configured, it is not available.
Each index type can expose two levels of navigation when configured:
This is why a configuration may contain multiple URLs per index type: one to enable the top-level index, and one to enable the per-item listing. These URLs are part of your site’s routing design and should be chosen to avoid collisions with pages and article URLs.
Nocterra uses multiple caches to keep content generation efficient:
Articles are rendered by combining metadata, language-specific bodies, and configured features (such as placeholder expansion and optional per-article features). General storage and caching concepts are described in the manual section at Storage engine.
Because articles are optional and URL-driven, they can be used in multiple ways. A few common examples are:
/articles/<date>/<title>), with enabled year/category/tag indexes./projects/software/<title>), where category and tag indexes become browsable “type” and “topic” listings, and features like automatic TOCs help structure long catalog entries./care/treatments/<title>), where authors map to practitioners, categories map to treatment types (e.g., CBT, EMDR, group programs), and tags map to symptoms/topics (e.g., anxiety, sleep, trauma), so visitors can browse by practitioner, by type, or by concern while optional features like automatic TOCs keep longer treatment pages easy to navigate and maintain.