前言

参考 Elog 文档,仓库中有两个 elog 配置文件:

  1. elog.config.js:同步到 Halo 时的配置文件,用于同步 Notion 文档到 Halo

    module.exports = {
      write: {
        platform: 'notion',
        notion: {
          token: process.env.NOTION_TOKEN,
          databaseId: process.env.NOTION_DATABASE_ID,
          filter: { property: 'status', select: { equals: '已发布' }}
        }
      },
      deploy: {
        platform: 'halo',
        halo: {
          endpoint: process.env.HALO_ENDPOINT,
          token: process.env.HALO_TOKEN,
          policyName: process.env.HALO_POLICY_NAME,
          needUploadImage: true
        }
      },
      image: {
        enable: false,
      }
    }
    
  2. elog.config.local.js:同步到本地时的配置文件,用于备份 Notion 文档到本地

    module.exports = {
      write: {
        platform: 'notion',
        notion: {
          token: process.env.NOTION_TOKEN,
          databaseId: process.env.NOTION_DATABASE_ID,
          filter: { property: 'status', select: { equals: '已发布' }}
        }
      },
      deploy: {
        platform: 'local',
        local: {
          outputDir: './docs',
          filename: 'title',
          format: 'markdown',
          frontMatter: {
            enable: true,
            exclude: ['cover']
          }
        }
      },
      image: {
        enable: true,
        platform: 'local',
        local: {
          outputDir: './images',
          pathFollowDoc: true,
        }
      }
    }
    

Notion 数据库字段

  • urlname:文章在 Halo 中的唯一 urlname
  • excerpt:文章描述
  • categories:文章分类,支持多选
  • tags:文章标签
  • cover:文章封面图
  • status:文章发布状态
  • autoExcerpt:是否自动生成文章描述
  • publish:是否发布到 Halo 站点
  • pinned:是否置顶
  • public:是否公开

elog.config.js

Notion 配置

write: {
    platform: 'notion',
    notion: {
      token: process.env.NOTION_TOKEN,
      databaseId: process.env.NOTION_DATABASE_ID,
      filter: { property: 'status', select: { equals: '已发布' }}
    }
  }
  • token为 Notion Token,可从此处获取
  • databaseId为数据库的 ID,可从此处获取
  • filter表示 Elog 将下载 notion 数据库属性为status=已发布的文档

Halo 配置

deploy: {
  platform: 'halo',
  halo: {
    endpoint: process.env.HALO_ENDPOINT,
    token: process.env.HALO_TOKEN,
    policyName: process.env.HALO_POLICY_NAME,
    needUploadImage: true,
  }
}

  • endpoint表示 Halo 站点地址
  • token表示 Halo 个人令牌
  • policyName表示附件的存储策略
  • needUploadImage表示文档将会把扫描到的图片上传到 Halo中去

图床配置

image: {
  enable: false
}

不使用图床。不推荐图床和needUploadImage一起打开,要么用在线图床图片,要么上传到 Halo 中

elog.config.local.js

本地配置

deploy: {
  platform: 'local',
  local: {
    outputDir: './docs',
    filename: 'title',
    format: 'markdown',
    frontMatter: {
      enable: true
    }
  }
}

  • outputDir为导出文件夹,文档将被导出到此目录下
  • filename为文件命名方式,title 表示按照文档标题命名
  • format表示文档将被格式化为 markdown 形式的文档
  • frontMatter.enable表示将生成带有 FrontMatter 的 markdown 文档

图床配置

image: {
  enable: true,
  platform: 'local',
  local: {
    outputDir: './images',
    pathFollowDoc: true,
  }
}

  • outputDir为导出文件夹,图片将被导出到此目录下
  • pathFollowDoc表示文档图片路径将跟随文档路径计算

更多 Elog 配置详情,请阅读 Elog 文档