快速开始
安装
手动下载
下载 👉 道盒发布 命令行工具,解压缩后,将可执行文件 everkm-publish
放到 PATH
变量设定的搜索目录中,即可在命令行下运行。
Mac Brew 安装
brew install everkm/tap/everkm-publish
Npm / Pnpm 安装
pnpm add everkm-publish
通常用于自定义模板开发。
创建工作区
# 在当前目录创建工作区
everkm-publish create <base name>
--theme
可选。指定样式名称。默认为yilog
。
启动本地预览
-
启动预览
# 切换到Base目录 cd <base dir> # 启动预览环境 everkm-publish serve --theme <your theme>
用浏览器打开 http://localhost:9081 (默认监听地址) 可预览。
-
编辑
<base>/content/post/
目录下的 Markdown 文件。 -
导出静态文件
everkm-publish serve --theme <your theme> --export
目录结构
.
├── Makefile # 辅助命令管理, 可选
├── content # 数据目录
│ └── post # 内容根目录
│ ├── _page # 项目数据, `_` 打头的目录或文件,`posts` 函数会忽略
│ ├── docs # 项目数据
│ └── guide # 项目数据
├── dist # 通常作为发布目录
├── everkm-theme.yaml # 模板开发, 模板配置文件
├── everkm.yaml # 项目配置文件
├── package.json # 模板开发, javascript 依赖, 可选
├── webpack.config.js # 模板开发, 可选
├── src # 模板开发目录
│ ├── assets
│ └── templates # 模板文件
│ ├── en_US.i18n.md # 语言包
│ ├── detail.html # 模板详情页
│ ├── index.html # 模板首页
├── theme # 模板安装目录
│ ├── dev # 开发模板预发布目录
│ ├── yilog # 其他已安装的模板
工作区配置文件
文件名: everkm.yaml
设置渲染的结构、模板及参数,优先级高于 everkm-theme.yaml
。
cfg:
timezone: Asia/Chongqing
site:
name: Everkm
sitemap:
channel_name: "{{t(text='Home')}}"
children:
- path: blog/
channel_name: "{{t(text='Blog')}}"
channel_path: blog/
qs:
dir: /blog/
__tpl: /list.html
no_dir: true
category_url_base: /blog/category/
page_size: 10
- path: changelog.html
channel_name: "{{t(text='Changelog')}}"
qs:
__tpl: /details.html
no_dir: true
no_time: true
map_url:
- dir: /blog/**
url: /blog/{{year}}/{{slug}}.html
- dir: /docs/**
url: /docs/{{slug}}.html
cfg
字段
cfg
工作区配置,在模板中通过全局变量__cfg
获取cfg.timezone
工作区时区,默认值Asia/Chongqing
cfg.default_lang
默认语言翻译环境, 默认值en_US
map_url
字段
map_url
用于通过文件路径生成对应的 URLmap_url.dir
路径通配符map_url.url
对应的 URL Path。
支持以下占位符, 使用{{}}
包裹。slug
文件 Slugyear
文件创建年份month
文件创建月份day
文件创建 day
sitemap
字段
sitemap
覆盖everkm-theme.yaml
中的sitemap
配置sitemap
设置站点结构。所有的字段值支持模板语法,sitemap.path
Url Path 通配符, 省略默认为/
。当以/
结尾时,表示目录下的所有文件,但不包含孙级后代文件。 如:blog/
等同于blog/*
sitemap.channel_name
栏目名称,用于面包屑导航,省略时忽略此段sitemap.channel_path
栏目 URL 片段,用于面包屑导航,省略时使用path
属性,如果有通配符则报错。sitemap.qs
渲染模板时的上下文参数,通过全局变量__qs
获取sitemap.qs.__tpl
默认采用的模板路径sitemap.qs.*
其他自定义参数sitemap.children[]
子路径,类型同sitemap
预览导出
渲染导出所有页面
everkm-publish serve --export
everkm-publish 会从入口地址开始,抓取其内容,并按 URL Path 部分保存为文件,同时跟踪抓取内容的其它链接, 符合指定规则时,继续抓取,直至全部导出完成。除了导出页面内容外,还将包括文章中引用的图片,音频,视频,以及其它文档附件。 不会导出未被引用的资源。
特殊目录
如果需要某些未被引用的文件一起发布时,需要将其放入以下特殊目录。
__assets
: 发布时复制到静态资源assets
目录。主要针对页面附属的资源文件。__public
: 发布时复制到内容页面目录。
注意:当目标文件存在时,会被覆盖写入。
详细命令参数
Preview / Export
Usage: everkm-publish serve [OPTIONS]
Options:
--work-dir <WORK_DIR>
Working directory
[env: EVERKM_WORK_DIR=]
[default: ./]
--dev-dir <DEV_DIR>
Development directory
Priority over work_dir
[env: EVERKM_DEV_DIR=]
--dist-dir <DIST_DIR>
Export directory
[env: EVERKM_DIST_DIR=]
--theme <THEME>
Name of theme
[env: EVERKM_THEME=]
[default: dev]
--cdn-prefix <CDN_PREFIX>
CDN's prefix of assets
[env: EVERKM_CDN_PREFIX=]
--lang <LANG>
Language code
[env: EVERKM_LANG=]
--base-prefix <BASE_PREFIX>
Context base of url
[env: EVERKM_BASE_PREFIX=]
[default: ]
--listen <LISTEN>
Listening address
[env: EVERKM_LISTEN=]
[default: 127.0.0.1:9081]
-e, --export
As export mode
--start-urls <START_URLS>
A list of exported entry addresses. Multiple are separated by
spaces.
Default: `/index.html`
[env: EVERKM_START_URLS=]
--stop-urls <STOP_URLS>
A list of address prefixes to ignore. Multiple are separated by
spaces
[env: EVERKM_STOP_URLS=]
-h, --help
Print help (see a summary with '-h')