Changelog

v0.17.0 (2026-06-13)

  • Export & Preview

    • Static export and local preview are noticeably faster for large sites; list filtering, tag/category queries are more stable with large datasets.
    • Preview enables lazy loading for images (lazy_img) by default; local image processing and cache optimization reduces IO when previewing the same media repeatedly.
    • Export concurrency is controlled by --export-workers (alias --export-jobs), defaulting to the number of CPU cores.
  • Indexing & Startup

    • Content index is cached in {work_dir}/__everkm/cache/everkm-publish.db, with automatic migration on startup — no need to manually run db-migrate anymore.
    • After a version upgrade, the index is automatically rebuilt if the structure is incompatible (first startup may be slightly slower, which is normal).
    • Directory configuration folders is aligned with legacy DirConfig behavior; path/slug/title lookup continues the case-insensitive semantics from v0.16.15.
  • Theme Installation

    • Remote installation is aligned with the ekmp-themes official catalog; falls back to CDN backup when the primary source fails.
    • Supports {author}/{theme}@version expression and local .zip package installation.
    • Scaffold default theme directory changed from youlog to everkm/youlog (only affects init for new sites).
  • Markdown & Page Rendering

    • Breaking Change: {{everkm::include(...)}}, {{everkm::toc(...)}} and other brace macros have been removed. Please use macro/include, macro/toc and other fenced blocks instead. See Daobox Markdown Format for details.
    • During preview and publishing, if the first h1 in the body duplicates the page title, it is automatically hidden to avoid displaying the title twice.
    • dCard rendering is aligned with v0.16.15; extended attributes, exclude_tags, etc. have more consistent behavior after the scraper upgrade.
    • When nav_tree and similar functions indirectly fetch lists in book/navigation templates, context passing is more complete, reducing re-rendering warnings.
  • Templates & CLI

    • Breaking Change: In Tera templates, the article date field has been renamed from post.date to post.created_at (second-level timestamp).
    • CLI subcommand create has been renamed to init. See Quick Start.
    • Preview service adds a /__everkm/ navigation page for browsing built-in APIs and debug endpoints.
  • aNote Resources

    • When exporting static sites from aNote, anote://assets/... links are materialized to dist/assets/media.
    • Markdown internal links and img/a in HTML are processed consistently.

v0.16.15 (2026-04-11)

  • Path & Reference Resolution: Case-insensitive lookup when locating pages by content virtual path, slug, or article title.
  • Directory URLs: Paths ending with / are resolved uniformly as "directory default page", covering index.md, slug as index, and common conventions like foo/foo.md.
  • Markdown Internal Links: Directory addresses with trailing / are resolved as directory pages and generate correct links.

v0.16.14 (2026-04-08)

Fixes

  • When merging directory configurations, child index.yaml without breadcrumbs no longer overwrites and clears breadcrumbs already merged from ancestors
  • Non-empty breadcrumbs in each level of index.yaml are appended to the ancestor chain by depth
  • find_by_path("/") correctly resolves the content root directory home page

New / Improvements

  • Page breadcrumbs: The chain head no longer automatically inserts "Home"; middle layers are generated by each level's index.yaml and directory index post
  • Directory index pages can specify a different slug for internal reference

v0.16.13 (2026-04-08)

  • Add separator line at the beginning of footnote definitions
  • Fix: Site root index.yaml no longer incorrectly generates URL path segments
  • Pages with filename index force slug to index

v0.16.12 (2026-03-18)

  • Add CLI argument --lazy-img to enable lazy loading for body images during export
  • Footnotes are rendered uniformly at the end of the body text

v0.16.11 (2026-03-13)

  • Fix index.html url_path calculation issue, remove as_channel, unified by slug=index
  • Enhance Breadcrumbs resolution capability
  • Add /__everkm/posts endpoint to overview all pages
  • Filter out __ prefixed md files from parsing
  • DirConfig supports variable $THIS_DIR

v0.16.10 (2026-03-12)

  • Optimize assets public fallback priority
  • Optimize MIME type detection
  • Add request log output for everkm-publish web

v0.16.9 (2026-03-11)

  • Directory configuration hash_storage can be written as hash_scatter (alias)
  • Index pages under each directory generate index.html, links based on the containing directory
  • When breadcrumbs are not configured in index.yaml, they are automatically generated based on the current page URL path
  • When no post record is found for a URL, the request path is handed to the template engine to attempt rendering
  • Add query configuration option to directory config
  • Add nav_tree function
  • Add lang function

v0.16.8 (2025-12-09)

  • Fix extended attribute support for blockquote and codeblock blocks

v0.16.7 (2025-11-23)

  • Rename uno to permalink
  • posts list adds order_by and order_direction parameters

v0.16.6 (2025-11-20)

  • Optimize dcard assets injection method
  • Add dCard rendering via JS

v0.16.5 (2025-11-14)

  • Fix nginx redirect map parameter conversion error
  • Fix Vercel redirect parameter conversion error

v0.16.4 (2025-11-11)

Fixes

  • Fix template passing object with undefined properties being converted to null
  • Template search by suffix must be complete filename

Improvements

  • posts list excludes the current document by default
  • everkm::include() as parameter can be omitted, inferred from the extension

v0.16.3 (2025-11-08)

  • Fix breadcrumbs deduplication issue when no links present

v0.16.2 (2025-11-03)

  • Fix Vercel configuration export issue
  • Fix Query String conversion issue

v0.16.1 (2025-11-02)

New

  • Content auto lint and fix functionality (--auto-fix-on-update)
  • dCard forced render switch (--ignore-dcard-errors)
  • JS template rendering (SSR) support
  • Article list returns prev/next IDs
  • Support fetching article details by ID
  • External resource references automatically add timestamps

Fixes

  • Fix rendering deadlock, dcard parameter passing and invocation issues

Changes

  • Deprecated behavior of getting title from first-level heading in body
  • Default disable hash_storage

v0.16.0 (2025-10-24)

New

  • Directory-level configuration DirConfig (index.yaml), supporting multi-level merge inheritance
  • Breadcrumb navigation auto-injection
  • URL redirect export (supports nginx and Vercel)
  • hash_storage path fallback: long slugs automatically map to short paths
  • Directory configuration supports query query parameters
  • --title-selector parameter: customize article title selection method
  • --with-extend-md-meta parameter: export extended Markdown meta information

v0.15.1 (2025-09-06)

  • Add __theme_name global variable in templates, representing the current theme name

v0.15.0 (2025-09-06)

New

  • __everkm/pages directory supports supplementary pages independent of templates
  • --with-url-map parameter to export URL mapping file
  • --with-publish-map parameter to export publish page log
  • Export nginx-compatible url_map file
  • file_meta subcommand to read a single file's meta information
  • Support exporting template path and publish_map output
  • Add template asset injection functionality

v0.14.2 (2025-07-12)

  • Refine theme_dir acquisition logic
  • Modify assets copy and fallback rules in theme-dev mode

v0.14.1 (2025-06-25)

New

  • --config parameter to specify configuration file path
  • --theme-dev parameter to enable theme development mode
  • Global variable __everkm_publish_version (current tool version)
  • Global variable __theme_version (current theme version)
  • Support relative URL calculation during export
  • asset_base_url() function

v0.14.0 (2025-06-20)

New

  • posts function adds exclude_tags parameter to exclude articles by tag
  • Title fallback strategy: when title is not defined in meta, automatically use the first h1 from the body as title
  • Internal links prioritize search by slug
  • __env_is_preview global variable, indicates whether in preview environment
  • Support watching multiple directories
  • Assets directory automatic fallback

Fixes

  • Fix internal link resolution, sorting, theme version number missing, etc.

v0.13.7 (2025-04-30)

  • Fix ignoring anchor when determining relative links

v0.13.6 (2025-04-30)

Changes

  • Remove OpenSSL dependency
  • Sitemap configuration rule change: multiple rules select one match instead of merging
  • Glob matching rule adjustment: * matches only one path segment, ** matches multiple directory levels

New

  • theme install --force option to force overwrite theme installation

v0.13.5 (2025-04-26)

New

  • nav_tree function to generate navigation tree
  • dir_tree directory configuration option

Fixes

  • Fix breadcrumb detection, alias path lookup, path lookup, TOC title duplication, etc.

Improvements

  • base_url adds url parameter, automatically converts addresses starting with ~/ to base_prefix
  • Optimize link comparison method, add directory exclusion functionality

v0.13.4 (2025-04-12)

  • Fix page style loss during export

v0.13.3 (2025-04-08)

  • Fix dcard data and script priority read from __dcard
  • Fix dcard parsing error

v0.13.2 (2025-04-03)

  • Fix file copy deletion error

v0.13.1 (2025-04-02)

  • Fix directory issues, variable renaming, print output

v0.13.0 (2025-04-02)

Major Changes

Content directory is now the primary directory, all everkm-publish related configurations are unified under the __everkm directory. Please refer to the new Directory Structure.

Renamed Functions

  1. post_exist -> has_post
  2. media_local -> media_remote
  3. src -> media
  4. local_cfg -> config
  5. local_cfg_exist -> has_config
  6. get_random -> random
  7. get_env -> env
  8. assets -> asset
  9. ds -> data
  10. md_html -> md_to_html
  11. markdown_html -> markdown_to_html

New

  1. regex_replace filter
  2. __host global variable

0.12.6 (2024-04-15)

New

  1. Dcard data source supports template syntax.
  2. Function media for resource file references.

Improvements

  1. posts article list sorting rule, updated to: weight↓, update_at|date↓, title↑, date

0.12.5 (2024-04-14)

Improvements

  1. Subcommand theme.pack renamed to theme.package
  2. Subcommand theme.add renamed to theme.install, and supports installing a specified version of a template. e.g. yilog@0.5.6
  3. When packaging templates in CI environment, version number is automatically injected into everkm-theme.yaml based on git tag.

0.12.4 (2024-04-13)

New

  1. Configuration parameter cfg.default_lang: Default translation language when no language is specified.

Improvements

  1. Configuration item site_map.path ending with / means all files under that directory, equivalent to blog/ == blog/*, but does not match files in grandchild directories.

0.12.3 (2024-04-13)

New

  1. Special directory __assets: Copied to static assets directory during publish.
  2. Special directory __public: Copied to content page directory during publish.

0.12.2 (2024-04-10)

New

  • Function has_config to check if a configuration item exists

0.12.1 (2024-03-27)

New

0.12.0 (2024-03-24)

New

Changes

  • cfg.qs value allows objects.
  • Deprecated configuration item context, added sitemap
  • Deprecated configuration item directory, added map_url
  • Deprecated function post_breadcrumb
  • Deprecated function posts_tag_set

0.11.0 (2024-03-18)

New

  • Function config to get context language-related configuration

Changes

  • Remove language pack location restriction, only requiring specific suffix (.i18n.md).

0.10.7 (2023-11-17)

New

0.10.6 (2023-11-16)

New

  • Project dcard support
  • Template version specification during install: everkm-publish theme install yilog@0.3.1

Fixes

  • __qs address parameters take priority over configuration file

0.10.5 (2023-11-12)

Fixes

  • Mac installation decompression issue

0.10.4 (2023-11-10)

Enhancements

  • Project configuration overrides style configuration file

Fixes

  • Directory default file search issue
  • Macro inclusion HTML encoding issue

0.10.3 (2023-11-06)

Fixes

  • npm package bug

0.10.2 (2023-11-06)

New

  • Directory default page: in addition to the same-name rule, added slug=index recognition
  • Universal release package for Darwin platform
  • Style install command everkm-publish help theme.

Fixes

  • When content has no specified meta, slug property returns empty.

0.10.1 (2023-11-02)

Improvements

  • Internal link conversion, title prioritizes article title over filename.

Fixes

  • Test case issues after migration

0.10.0 (2023-11-02)

Migrated to Everkm

0.9.2 (2023-10-31)

New

  • No-follow link format ?...
  • dcard format yaml dcard/items
  • Directory default page
  • Function post_breadcrumb to get breadcrumb data

Fixes

  • Markdown internal absolute (~/) link parsing error

0.9.1 (2023-10-26)

New

  • Filter thumbnail to auto-generate thumbnails

Fixes

  • Conflict issue when both inline and block extended attributes exist.

0.9.0 (2023-10-23)

New

Fixes

  • Extension script directory initialization error

v0.8.4 (2023-10-15)

New

  • __page_path_base global variable, representing the current page base path (excluding parameters and extension).
  • page_query function to modify current page query parameters and output.
  • dcard inherits global variables.

Fixes

  • Link conversion issue
  • TOC missing first-level heading issue

Improvements

  • Log output

v0.8.3 (2023-10-09)

New

Improvements

  • Internal link local file attachment functionality.
  • Directory export path configuration, add year/month/day wildcards for creation time.
  • Error message when rendering fails.

Fixes

  • Link anchor loss during export.

v0.8.2 (2023-10-08)

New

  • Previous and next items of the current page in the navigation tree nav_indicator

v0.8.1 (2023-10-05)

New

  • Multi-language. Supports template multi-language and content multi-language
  • Data source supports CSV format