更新日志

v0.17.0 (2026-06-13)

  • 导出与预览

    • 大型站点静态导出与本地预览明显更快;列表筛选、标签/分类查询在大库下也更稳。
    • 预览默认启用图片懒加载(lazy_img);本地图片处理与缓存优化,重复预览同一媒体时更省 IO。
    • 导出并发由 --export-workers(别名 --export-jobs)统一控制,默认按 CPU 核数取值。
  • 索引与启动

    • 内容索引缓存于 {work_dir}/__everkm/cache/everkm-publish.db,启动时自动迁移,无需再手动执行 db-migrate
    • 版本升级后若索引结构不兼容会自动重建(首次启动可能稍慢,属正常现象)。
    • 目录配置 folders 与旧版 DirConfig 行为对齐;路径/slug/标题查找延续 v0.16.15 的大小写不敏感语义。
  • 主题安装

    • 远程安装对齐 ekmp-themes 官方目录;主源失败时尝试 CDN 备用地址。
    • 支持 {作者}/{主题名}@版本 表达式与本地 .zip 包安装。
    • 脚手架默认主题目录由 youlog 调整为 everkm/youlog(仅影响 init 新站点)。
  • Markdown 与页面表现

    • 破坏性变更{{everkm::include(...)}}{{everkm::toc(...)}} 等花括号宏已移除,请改用 ```macro/include``````macro/toc``` 等 fenced 块。详见 道盒Markdown格式
    • 预览与发布时,若正文首个 h1 与页面标题重复会自动隐藏,避免标题出现两次。
    • dCard 卡片渲染与 v0.16.15 对齐;扩展属性、exclude_tags 等在 scraper 升级后行为更一致。
    • 书籍/导航模板中 nav_tree 等间接拉取列表时,上下文传递更完整,减少二次渲染告警。
  • 模板与 CLI

    • 破坏性变更:Tera 模板中文章日期字段由 post.date 更名为 post.created_at(秒级时间戳)。
    • CLI 子命令 create 已改名为 init。详见 快速开始
    • 预览服务新增 /__everkm/ 导航页,便于浏览内置 API 与调试接口。
  • aNote 资源

    • 通过 aNote 导出静态站时,anote://assets/... 链接会物化到 dist/assets/media
    • Markdown 内链与 HTML 中 img/a 两条路径处理一致。

v0.16.15 (2026-04-11)

  • 路径与引用解析:按内容虚拟路径、slug、文章标题定位页面时忽略大小写
  • 目录 URL:以 / 结尾的路径统一按「目录默认页」解析,覆盖 index.mdslugindex、以及 foo/foo.md 等常见约定。
  • Markdown 内链:带末尾 / 的目录地址会按目录页解析并生成正确链接。

v0.16.14 (2026-04-08)

修复

  • 目录配置合并时,子目录 index.yaml 未写 breadcrumbs 时不再覆盖并清空祖先已合并的面包屑
  • 各层 index.yaml 中非空的 breadcrumbs 按深度追加到祖先链
  • find_by_path("/") 正确解析内容根目录首页

新增 / 优化

  • 页面面包屑:链首不再自动插入「Home」,中间层由各级 index.yaml 与目录 index post 生成
  • 对目录 index 页可指定不同的 slug 作为内部引用

v0.16.13 (2026-04-08)

  • 脚注定义的开始处添加分隔线
  • 修复:站点根 index.yaml 不再错误生成 URL 路径段
  • 文件名为 index 的页面,slug 强制为 index

v0.16.12 (2026-03-18)

  • 增加 CLI 参数 --lazy-img,导出时为正文图片启用懒加载
  • 脚注统一在正文末尾渲染

v0.16.11 (2026-03-13)

  • 修复 index.html 的 url_path 计算问题,去除 as_channel,统一由 slug=index 决定
  • 增强 Breadcrumbs 解析能力
  • 增加 /__everkm/posts 接口概览所有页面
  • 过滤 __ 打头的 md 文件解析
  • DirConfig 支持变量 $THIS_DIR

v0.16.10 (2026-03-12)

  • 优化 assets public fallback 优先级
  • 优化 MIME 类型检测
  • everkm-publish web 添加请求日志输出

v0.16.9 (2026-03-11)

  • 目录配置里 hash_storage 可写作 hash_scatter(别名)
  • 各目录下的 index 页会生成 index.html,链接按所在目录
  • 未在 index.yaml 配置面包屑时,会按当前页的 URL 路径自动生成
  • 当根据 URL 找不到 post 记录时,改为用请求路径交给模板引擎尝试渲染
  • 目录配置增加 query 配置项
  • 增加 nav_tree 函数
  • 增加 lang 函数

v0.16.8 (2025-12-09)

  • 修复对 blockquotecodeblock 块的扩展属性支持

v0.16.7 (2025-11-23)

  • 重命名 unopermalink
  • posts 列表增加 order_byorder_direction 参数

v0.16.6 (2025-11-20)

  • 优化 dcard 的 assets 注入方式
  • 新增 dcard 通过 JS 渲染

v0.16.5 (2025-11-14)

  • 修复 nginx redirect map 参数转换错误
  • 修复 Vercel redirect 参数转换错误

v0.16.4 (2025-11-11)

修复

  • 模板传递对象 undefined 属性被转为 null 问题
  • 模板按后缀搜索时必须是完整文件名

优化

  • posts 列表默认排除当前文档
  • everkm::include()as 参数可省略,已从扩展名推断

v0.16.3 (2025-11-08)

  • 修复 breadcrumbs 无链接时去重问题

v0.16.2 (2025-11-03)

  • 修复 Vercel 配置导出问题
  • 修复查询参数 (Query String) 转换问题

v0.16.1 (2025-11-02)

新增

  • 内容自动 lint 与修复功能(--auto-fix-on-update
  • dCard 强制渲染开关(--ignore-dcard-errors
  • JS 模板渲染 (SSR) 支持
  • 文章列表返回 prev/next ID
  • 支持按 ID 获取文章详情
  • 外部资源引用自动添加时间戳

修复

  • 修复渲染死锁、dcard 参数传递与调用问题

变更

  • 废弃从正文一级标题获取 title 的行为
  • 默认关闭 hash_storage

v0.16.0 (2025-10-24)

新增

  • 目录级配置 DirConfigindex.yaml),支持多级合并继承
  • 面包屑导航自动注入
  • URL 重定向导出(支持 nginx 和 Vercel)
  • hash_storage 路径 fallback:长 slug 自动映射为短路径
  • 目录配置支持 query 查询参数
  • --title-selector 参数:自定义文章标题选取方式
  • --with-extend-md-meta 参数:导出扩展 Markdown 元信息

v0.15.1 (2025-09-06)

  • 模板中增加 __theme_name 全局变量,表示当前主题名称

v0.15.0 (2025-09-06)

新增

  • __everkm/pages 目录支持独立于模板的补充页面
  • --with-url-map 参数导出 URL 映射文件
  • --with-publish-map 参数导出发布页面日志
  • 导出 nginx 可用的 url_map 文件
  • file_meta 子命令,读取单个文件的元信息
  • 支持导出模板路径与 publish_map 输出
  • 增加模板注入 assets 功能

v0.14.2 (2025-07-12)

  • 梳理 theme_dir 获取逻辑
  • 修改 theme-dev 模式下的 assets 复制与 fallback 规则

v0.14.1 (2025-06-25)

新增

  • --config 参数指定配置文件路径
  • --theme-dev 参数启用主题开发模式
  • 全局变量 __everkm_publish_version(当前工具版本号)
  • 全局变量 __theme_version(当前主题版本号)
  • 导出时支持相对 URL 计算
  • asset_base_url() 函数

v0.14.0 (2025-06-20)

新增

  • posts 函数增加 exclude_tags 参数,支持按标签排除文章
  • 标题降级策略:Meta 中未定义标题时,自动使用正文第一个 h1 作为标题
  • 内部链接优先按 slug 搜索
  • __env_is_preview 全局变量,标识当前是否为预览环境
  • 支持监听多个目录
  • assets 目录自动 fallback

修复

  • 修复内部链接解析、排序、theme 版本号缺失等问题

v0.13.7 (2025-04-30)

  • 修复判断相对链接时忽略锚点问题

v0.13.6 (2025-04-30)

变更

  • 移除 OpenSSL 依赖
  • Sitemap 配置规则变更:多条规则选择其中一个匹配,而不是合并
  • glob 匹配规则调整:* 仅匹配一段路径,** 表示多级目录

新增

  • theme install --force 选项,强制覆盖安装主题

v0.13.5 (2025-04-26)

新增

  • nav_tree 函数,生成导航树
  • dir_tree 目录配置项

修复

  • 修复面包屑检测、alias 路径查找、路径查找、TOC 标题重复等问题

优化

  • base_url 增加 url 参数,自动转换 ~/ 打头的地址为 base_prefix
  • 优化链接比较方式,增加目录排除功能

v0.13.4 (2025-04-12)

  • 修复导出页面时样式丢失问题

v0.13.3 (2025-04-08)

  • 修复 dcard 数据与脚本优先从 __dcard 中读取
  • 修复 dcard 解析错误

v0.13.2 (2025-04-03)

  • 修复复制文件删除错误

v0.13.1 (2025-04-02)

  • 修复目录问题、变量重命名、打印输出

v0.13.0 (2025-04-02)

重大变更

以内容目录为一级目录,所有 everkm-publish 的相关配置统一放置到 __everkm 目录下,具体请参考新的目录结构

重命名函数

  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

新增

  1. regex_replace 过滤器
  2. __host 全局变量

0.12.6 (2024-04-15)

新增

  1. Dcard 数据源支持模板语法。
  2. 函数 media 资源文件引用。

改进

  1. posts 文章列表的排序规则,修改后的规则为:weight↓, update_at|date↓, title↑, date

0.12.5 (2024-04-14)

改进

  1. 子命令 theme.pack 改名为 theme.package
  2. 子命令 theme.add 改名为 theme.install, 并支持安装指定版本的模板。如 yilog@0.5.6
  3. CI 环境打包模板时,自动根据 git tag 注入版本号到 everkm-theme.yaml

0.12.4 (2024-04-13)

新增

  1. 配置参数 cfg.default_lang: 未指定语言环境时,默认使用的翻译语言环境。

改进

  1. 配置项 site_map.path/ 结尾时,表示目录下的所有文件, 效果等同于 blog/ == blog/*,但不匹配孙级后代目录文件。

0.12.3 (2024-04-13)

新增

  1. 特殊目录 __assets: 发布时复制到静态资源 assets 目录。
  2. 特殊目录 __public: 发布时复制到内容页面目录。

0.12.2 (2024-04-10)

新增

0.12.1 (2024-03-27)

新增

0.12.0 (2024-03-24)

新增

变更

  • cfg.qs 值允许为对象。
  • 废弃配置项 context,新增 sitemap
  • 废弃配置项 directory,新增 map_url
  • 废弃函数 post_breadcrumb
  • 废弃函数 posts_tag_set

0.11.0 (2024-03-18)

新增

  • 函数 config 获取上下文语言相关的配置项

变更

  • 取消语言包位置限定,仅要求以特定后缀 (.i18n.md) 结尾。

0.10.7 (2023-11-17)

新增

0.10.6 (2023-11-16)

新增

  • 项目 dcard 支持
  • 模板 everkm-publish theme install yilog@0.3.1 安装时指定版本号

修复

  • __qs 地址传递参数优先级高于配置文件

0.10.5 (2023-11-12)

修复

  • Mac 安装解压缩问题

0.10.4 (2023-11-10)

增强

  • 项目配置覆盖样式配置文件

修复

  • 目录默认文件搜索问题
  • 宏包含HTML转码问题

0.10.3 (2023-11-06)

修复

  • npm package bug

0.10.2 (2023-11-06)

新增

  • 目录默认页除同名规则外,新增 slug=index 的认定
  • Darwin 平台的 universal 发布包
  • 样式安装命令 everkm-publish help theme

修复

  • 内容未指定 meta 时,slug 属性获取为空。

0.10.1 (2023-11-02)

优化

  • 内部链接转换,标题优先使用文章标题,而不是文件名。

修复

  • 迁移后的测试用例问题

0.10.0 (2023-11-02)

迁移至 Everkm

0.9.2 (2023-10-31)

新增

  • 禁止跟进链接格式 ?...
  • dcard 格式 yaml dcard/items
  • 目录默认页
  • 函数post_breadcrumb 获取面包屑数据

修复

  • Markdown 内部绝对(~/)链接解析错误

0.9.1 (2023-10-26)

新增

修复

  • 行内与区块扩展属性同时存在时的冲突问题。

0.9.0 (2023-10-23)

新增

修复

  • 扩展脚本目录初始化错误

v0.8.4 (2023-10-15)

新增

  • __page_path_base 全局变量,表示当前页基础路径(去除参数段和扩展名)。
  • page_query 函数,修改当前页查询参数并输出。
  • dcard 继承全局变量。

修复

  • 链接转换问题
  • TOC 无一级标题问题

优化

  • 日志输出

v0.8.3 (2023-10-09)

新增

改进

  • 内部链接本地文件附件的功能。
  • 目录导出路径配置,增加创建时间的年月日通配符。
  • 渲染失败时的错误提示。

修复

  • 导出时链接锚点丢失。

v0.8.2 (2023-10-08)

新增

v0.8.1 (2023-10-05)

新增

  • 多语言。支持模板多语言和内容多语言
  • 数据源支持CSV格式