配置
使用 mark-magic.config.yaml
作为配置文件,下面对基础字段加以说明
yaml
tasks: # 定义一系列任务
- name: blog # 任务的名字
input: # 输入插件
name: '@mark-magic/plugin-joplin' # 输入插件的名字
config: # 输入插件的配置,下面对每个插件的配置详加说明
transforms: # 转换插件
- name: '@mark-magic/plugin-doctran' # 输入插件的名字
config: # 插件的配置
output:
name: '@mark-magic/plugin-hexo' # 输出插件的名字
config: # 输入插件的配置
input
输入插件,用来从数据源中读取数据,例如从 joplin 中读取笔记,从本地文件中读取 markdown 文件等。
input.name
输入插件的名字,例如 @mark-magic/plugin-joplin
。
input.config
输入插件的配置,下面对每个插件的配置详加说明。
transforms
转换插件,可以有 0 到多个。
output
输出插件,配置与输入插件类似。
环境变量
如果需要使用一些机密配置,例如 cookie 或 token 之类的,可以在 mark-magic.config.yaml
配置文件中使用 ${ENV_NAME}
的方式来使用环境变量。同时 @mark-magic/cli
还支持自动读取配置文件同目录下的 .env*
配置,可以在其中定义环境变量并从 .gitignore 中忽略它们。
例如使用 @mark-magic/plugin-joplin
插件时
yaml
tasks:
- name: blog
input:
name: '@mark-magic/plugin-joplin'
config:
baseUrl: 'http://localhost:41184'
token: ${JOPLIN_TOKEN}
tag: blog
TypeScript 配置文件
除了 yaml 配置之外,也支持使用 mark-magic.config.ts
作为配置文件,但该配置仅供了解 TypeScript 的使用者尝试,主要是为了快速支持一些未得到支持的插件。 例如目前并没有 vuepress 插件,但可以在 TypeScript 配置文件中快速实现并使用它。
ts
import { defineConfig } from '@mark-magic/cli'
import * as joplin from '@mark-magic/plugin-joplin'
import * as local from '@mark-magic/plugin-local'
import { OutputPlugin } from '@mark-magic/core'
import { config } from 'dotenv'
import path from 'path'
import { existsSync } from 'fs'
function vuepress(options: { path: string }): OutputPlugin {
const plugin = local.output({
path: options.path,
contentPath: (it) => path.join(options.path, it.id + '.md'),
meta: (it) => ({
title: it.name,
date: new Date(it.created).toJSON(),
tags: it.extra.tags,
}),
})
plugin.name = 'vuepress'
return plugin
}
if (existsSync('.env.local')) {
config({ path: '.env.local' })
}
export default defineConfig({
tasks: [
{
name: 'blog',
input: joplin.input({
baseUrl: 'http://localhost:41184',
token: process.env.JOPLIN_TOKEN!,
tag: 'blog',
}),
output: vuepress({
path: './src/posts',
}),
},
],
})