Skip to content

部署平台配置

本地部署(local)

适用于所有类似 Hexo 的框架:通过向指定目录存放 markdown 文档来进行渲染的博客平台

字段必填类型说明默认值
outputDirstring文档输出目录-
filenamestring生成文档的命名格式,取值 urlname|titletitle
formatstring适配器,取值 markdown|wiki|htmlmarkdown
frontMatterFrontMatterFrontMatter相关配置-
catalogboolean是否按照目录生成文档false
formatExtstring自定义文档处理适配器路径-

Format 字段说明

format字段表示该文档内容的格式,常用的例如markdown或适用于 Confluence 的 wiki,适用于 Wordpress的 html

FrontMatter 字段说明

0.12.0及以上版本支持

字段必填类型说明默认值
enableboolean是否启用 FrontMatterfalse
includestring[]只输出数组中存在的字段,数据库的其他字段忽略-
excludestring[]忽略数组中存在的字段,输出数据库的其他字段-

0.12.0 版本之前启用 FrontMatter 可设置 local.format=matter-markdown

FormatExt 字段说明

自定义文档处理适配器.js文件路径,当需要对文档进一步处理时,可配置此选项

  1. 目前只支持 Common Js 标准的处理器

  2. 处理器需要暴露一个同步/异步format 的方法,在 0.12.0 之前版本仅支持同步方法0.12.0 及以上版本可支持异步方法或 npm 库

  3. 0.12.0 之前版本返回类型为字符串,0.12.0 及以上版本返回传入的 doc 文档对象

    javascript
    // 0.12.0之前的版本用法
    // 如果需要返回带有front-matter的md字符串,则需要安装并引入此库
    // const { matterMarkdownAdapter } = require('@elog/cli')
    
    /**
     * 自定义文档处理器
     * @param {DocDetail} doc doc的类型定义为 DocDetail
     * @return {string} 返回处理后的文档内容字符串
     */
    const format = (doc) => {
      doc.body = process(body)
    	// 直接返回md内容字符串
    	return doc.body
    	// 返回带有front-matter的md字符串
      // return matterMarkdownAdapter(doc);
    };
    
    module.exports = {
      format,
    };
    javascript
    // 0.12.0及以上版本用法
    const { matterMarkdownAdapter } = require('@elog/cli')
    
    /**
     * 自定义文档插件
     * @param {DocDetail} doc doc的类型定义为 DocDetail
     * @param {ImageClient} imageClient 图床下载器,可用于图片上传
     * @return {Promise<DocDetail>} 返回处理后的文档对象
     */
    const format = async (doc, imageClient) => {
      const cover = doc.properties.cover
      // 将 cover 字段中的 notion 图片下载到本地
      if (imageClient)  {
        // 只有启用图床平台image.enable=true时,imageClient才能用,否则请自行实现图片上传
        const url = await imageClient.uploadImageFromUrl(cover, doc)
        // cover链接替换为本地图片
        doc.properties.cover = url
      }
      doc.body = matterMarkdownAdapter(doc);
      return doc;
    };
    
    module.exports = {
      format,
    };

    DocDetail 类型定义如下:

    typescript
    /** 文章详情 */
    export interface DocDetail extends BaseDoc {
      /** 实际部署时的markdown文档字符串 */
      body: string
      /** 原始markdown文档字符串 */
      body_original: string
      /** 部署到wiki时会存在 */
      body_wiki?: string
      /** html字符串 */
      body_html?: string
      /** 文章属性 */
      properties: DocProperties
      /** 目录路径 */
      catalog?: any[]
    }
    
    export interface BaseDoc {
      /** 文章唯一ID */
      id: string
      /** 文章ID */
      doc_id: string
      /** 更新时间,冗余字段 */
      updated: number
    }
    
    /** 文章属性 */
    export interface DocProperties {
      urlname: string
      title: string
      date: string
      updated: string
      [key: string]: any
    }

Halo

Halo 关键信息获取及配置流程请移步 关键信息获取 页面。

0.13.0及以上版本支持

字段必填说明默认值
endpoint站点地址,区分 http/https-
tokenHalo 个人令牌-
policyName存储策略default-policy
rowType源文档格式,取值 html/markdownhtml
needUploadImage是否将文档图片上传到 Halofalse
formatExt自定义文档处理适配器路径,需要符合HTML格式要求-

rowType 字段说明

如果使用 Elog 进行同步,建议不要在 Halo 后台编辑文档,文档的编辑应该交给写作平台来处理

根据 Halo 社区说明

Halo 的默认编辑器是富文本编辑器,rawTypehtmlrawType 的意义在于让 Halo 知道文章应该用什么源格式的编辑器进行编辑。

Halo 本身没有自带 Markdown 编辑器,需要用户自行安装,所有的编辑器插件可以在 Halo插件市场 中找到。

此外,在 rawType 设置为 markdown 且系统中并没有 markdown 类型的编辑器时,进入文章编辑会给出提示:

Untitled.png

needUploadImage 字段说明

是否将文档图片上传到 Halo中存储。此外,建议该设置与图床设置,二选一即可。如果你开启了图床,将文档图片上传到 oss 之类的图床上,就没必要开启 Halo 图片上传,再从 oss 上传图片到 Halo。

FormatExt 字段说明

目前还不支持在部署平台为 Halo 中使用,将在后续版本中支持

自定义文档处理适配器.js文件路径,当需要对文档进一步处理时,可配置此选项

  1. 目前只支持 Common Js 标准的处理器
  2. 处理器需要暴露一个同步/异步format 的方法或 npm 库
  3. 需要返回传入的 doc 文档对象
javascript
const { htmlAdapter } = require('@elog/cli')

/**
 * 自定义文档插件
 * @param {DocDetail} doc doc的类型定义为 DocDetail
 * @param {ImageClient} imageClient 图床下载器,可用于图片上传
 * @return {Promise<DocDetail>} 返回处理后的文档对象
 */
const format = async (doc, imageClient) => {
  const cover = doc.properties.cover
  // 将 cover 字段中的 notion 图片下载到本地
  if (imageClient)  {
    // 只有启用图床平台image.enable=true时,imageClient才能用,否则请自行实现图片上传
    const url = await imageClient.uploadImageFromUrl(cover, doc)
    // cover链接替换为本地图片
    doc.properties.cover = url
  }
  doc.body = htmlAdapter(doc);
  return doc;
};

module.exports = {
  format,
};

Confluence

字段必填说明默认值
baseUrlConfluence API 请求 Base Url-
spaceKey空间Key-
rootPageId根页面ID,Elog会把文档统一存到此目录下-
userConfluence账号-
passwordConfluence密码-
formatExt自定义文档处理适配器路径,需要符合Confluence格式要求-

WordPress

WordPress 模版获取、关键信息获取及配置流程请移步 关键信息获取 页面。

字段必填说明默认值
usernameWordPress 用户名-
passwordWordPress 密码-
endpointWordPress 站点,例如http://your.site.com/wp-json-
keyMap属性映射-
formatExt自定义文档处理适配器路径,需要符合HTML格式要求-

keyMap 字段说明

属性必填映射字段说明字段值类型默认值
tags标签字段映射string | string[]tags
categories分类字段映射string | string[]categories
urlname页面路径字段映射stringurlname
cover特色图片(封面图)字段映射string,图片urlcover
description简介字段映射stringdescription

一般不需要修改,只要保证文章属性front-matter中有以上字段,即可在上传到WordPress时正确携带,只有字段冲突或者想自定义为中文等情况下才需要进行映射。

语雀需要自行在文章头部添加front-matter,并填写以下值,Notion/FlowUs可直接新增/修改为以上字段即可。

下一步

点击 下一篇 继续配置图床平台