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 rundb-migrateanymore. - 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
foldersis aligned with legacyDirConfigbehavior; path/slug/title lookup continues the case-insensitive semantics from v0.16.15.
- Content index is cached in
-
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}@versionexpression and local.zippackage installation. - Scaffold default theme directory changed from
youlogtoeverkm/youlog(only affectsinitfor new sites).
-
Markdown & Page Rendering
- Breaking Change:
{{everkm::include(...)}},{{everkm::toc(...)}}and other brace macros have been removed. Please usemacro/include,macro/tocand 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_treeand similar functions indirectly fetch lists in book/navigation templates, context passing is more complete, reducing re-rendering warnings.
- Breaking Change:
-
Templates & CLI
- Breaking Change: In Tera templates, the article date field has been renamed from
post.datetopost.created_at(second-level timestamp). - CLI subcommand
createhas been renamed toinit. See Quick Start. - Preview service adds a
/__everkm/navigation page for browsing built-in APIs and debug endpoints.
- Breaking Change: In Tera templates, the article date field has been renamed from
-
aNote Resources
- When exporting static sites from aNote,
anote://assets/...links are materialized todist/assets/media. - Markdown internal links and
img/ain HTML are processed consistently.
- When exporting static sites from aNote,
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", coveringindex.md,slugasindex, and common conventions likefoo/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.yamlwithoutbreadcrumbsno longer overwrites and clears breadcrumbs already merged from ancestors - Non-empty
breadcrumbsin each level ofindex.yamlare 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.yamland 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.yamlno longer incorrectly generates URL path segments - Pages with filename
indexforce slug toindex
v0.16.12 (2026-03-18)
- Add CLI argument
--lazy-imgto 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.htmlurl_path calculation issue, removeas_channel, unified byslug=index - Enhance Breadcrumbs resolution capability
- Add
/__everkm/postsendpoint to overview all pages - Filter out
__prefixed md files from parsing DirConfigsupports 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_storagecan be written ashash_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
queryconfiguration option to directory config - Add
nav_treefunction - Add
langfunction
v0.16.8 (2025-12-09)
- Fix extended attribute support for
blockquoteandcodeblockblocks
v0.16.7 (2025-11-23)
- Rename
unotopermalink postslist addsorder_byandorder_directionparameters
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
postslist excludes the current document by defaulteverkm::include()asparameter 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/nextIDs - 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_storagepath fallback: long slugs automatically map to short paths- Directory configuration supports
queryquery parameters --title-selectorparameter: customize article title selection method--with-extend-md-metaparameter: export extended Markdown meta information
v0.15.1 (2025-09-06)
- Add
__theme_nameglobal variable in templates, representing the current theme name
v0.15.0 (2025-09-06)
New
__everkm/pagesdirectory supports supplementary pages independent of templates--with-url-mapparameter to export URL mapping file--with-publish-mapparameter to export publish page log- Export nginx-compatible
url_mapfile file_metasubcommand to read a single file's meta information- Support exporting template path and
publish_mapoutput - Add template asset injection functionality
v0.14.2 (2025-07-12)
- Refine
theme_diracquisition logic - Modify assets copy and fallback rules in theme-dev mode
v0.14.1 (2025-06-25)
New
--configparameter to specify configuration file path--theme-devparameter 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
postsfunction addsexclude_tagsparameter 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_previewglobal 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 --forceoption to force overwrite theme installation
v0.13.5 (2025-04-26)
New
nav_treefunction to generate navigation treedir_treedirectory configuration option
Fixes
- Fix breadcrumb detection, alias path lookup, path lookup, TOC title duplication, etc.
Improvements
base_urladdsurlparameter, automatically converts addresses starting with~/tobase_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
post_exist->has_postmedia_local->media_remotesrc->medialocal_cfg->configlocal_cfg_exist->has_configget_random->randomget_env->envassets->assetds->datamd_html->md_to_htmlmarkdown_html->markdown_to_html
New
regex_replacefilter__hostglobal variable
0.12.6 (2024-04-15)
New
- Dcard data source supports template syntax.
- Function
mediafor resource file references.
Improvements
postsarticle list sorting rule, updated to:weight↓,update_at|date↓,title↑,date↓
0.12.5 (2024-04-14)
Improvements
- Subcommand
theme.packrenamed totheme.package - Subcommand
theme.addrenamed totheme.install, and supports installing a specified version of a template. e.g.yilog@0.5.6 - When packaging templates in CI environment, version number is automatically injected into
everkm-theme.yamlbased on git tag.
0.12.4 (2024-04-13)
New
- Configuration parameter
cfg.default_lang: Default translation language when no language is specified.
Improvements
- Configuration item
site_map.pathending with/means all files under that directory, equivalent toblog/==blog/*, but does not match files in grandchild directories.
0.12.3 (2024-04-13)
New
- Special directory
__assets: Copied to staticassetsdirectory during publish. - Special directory
__public: Copied to content page directory during publish.
0.12.2 (2024-04-10)
New
- Function
has_configto check if a configuration item exists
0.12.1 (2024-03-27)
New
- Filter
object_keysto get object key list - Filter
object_valuesto get object value list - Function
imgsrcadds language-based switching
0.12.0 (2024-03-24)
New
- Internationalization feature
- Empty assertion
empty - Global variable
__breadcrumbs - Global variable
__lang - Global variable
__tpl_path - Global variable
__config - Function
posts_tag_listto get tag list - Function
posts_caregory_listto get category list
Changes
cfg.qsvalue allows objects.- Deprecated configuration item
context, addedsitemap - Deprecated configuration item
directory, addedmap_url - Deprecated function
post_breadcrumb - Deprecated function
posts_tag_set
0.11.0 (2024-03-18)
New
- Function
configto get context language-related configuration
Changes
- Remove language pack location restriction, only requiring specific suffix (
.i18n.md).
0.10.7 (2023-11-17)
New
- Function
posts_directory_listto get content directory list - Filter
index_ofto query element position in a list
0.10.6 (2023-11-16)
New
- Project dcard support
- Template version specification during install:
everkm-publish theme install yilog@0.3.1
Fixes
__qsaddress 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=indexrecognition - Universal release package for Darwin platform
- Style install command
everkm-publish help theme.
Fixes
- When content has no specified meta,
slugproperty 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_breadcrumbto get breadcrumb data
Fixes
- Markdown internal absolute (
~/) link parsing error
0.9.1 (2023-10-26)
New
- Filter
thumbnailto auto-generate thumbnails
Fixes
- Conflict issue when both inline and block extended attributes exist.
0.9.0 (2023-10-23)
New
- Function
datacaching capability. - Function
post_detailcontent tag filtering. - Function
post_metareturnsslugproperty. - Function
oops.
Fixes
- Extension script directory initialization error
v0.8.4 (2023-10-15)
New
__page_path_baseglobal variable, representing the current page base path (excluding parameters and extension).page_queryfunction 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
- Template filter
json - Template filter
md_html, aliasmarkdown_html - Internal links ignore follow parameters.
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