AcyOrt 默认作为一个全局命令行模块使用,即全局 CLI 方式使用
不过也支持作为一个 node 模块使用,以下是一个使用例子
const acyort = require('acyort')
const config = {
base: __dirname, // 指定模版,输出基础目录
template: 'ccc45', // 指定模板名字
language: 'en', // 语言
root: '/', // 网站根目录
timezone: 'UTC', // 时区
public: '/' // 文件输出根目录(相对于基础目录)
url: 'https://acyort.com', // 网站 URL
}
const ctx = acyort(config) // 此时 ctx 就能访问到所以 AcyOrt 提供的方法
那么何时应该使用命令行方式,又何时可以作为一个 node 模块使用呢?
其实两种方式都差不多,如果你的应用已经存在,只是想借用 AcyOrt 的一些能力,那么可以 node 插件方式使用
其他的还是推荐使用全局命令行方式,填写一些配置,使用一些插件就可以生成网站
AcyOrt 内置了许多 API 方法,以下为方法列表
文件操作使用的是 fs-extra
const { fs } = acyort
const { copySync, removeSync } = fs
获取当前 AcyOrt 版本信息
const { version } = acyort
获取网站配置信息,即配置文件 config.yml
的内容
同时会获得当前运行的一些额外信息,基础路径,模板路径等
const config = acyort.config.get() // 全部配置信息
/*
{
url: 'https://acyort.com',
template: 'ccc45',
scripts: [ 'script.js' ],
plugins: [],
public: '/',
timezone: 'Asia/Shanghai',
language: 'en',
root: '/',
base: '/Users/am0200/Documents/github/acyort/assets'
}
*/
const url = acyort.config.get('url') // 单个配置
acyort.config.set('version', acyort.version) // 添加配置
用于终端输出内容,使用的是 signale
const { logger } = acyort
logger.info('info')
logger.error('error')
// 同时支持自定义 https://github.com/klaussinani/signale#custom-loggers
const option = { ... }
const custom = logger(option)
custom.remind('Improve documentation.')
内置 swig
, markdown
, yaml
的渲染输出,支持自定义渲染器。具体查看 renderer 说明
const { renderer } = acyort
renderer.render('swig', { title: 'swig' })
renderer.renderFile('swig', 'html path', { title: 'swig' })
通过这个方法,可以自定义一些 CLI 命令,详细查看 cli 说明
const { cli } = acyort
用于插件间的数据传递,详细查看 store 说明
const { store } = acyort
该方法用于注册运行流程,可以自由控制整个构建过程,详细查看 wordflow 说明
const { workflow } = acyort
自定义一些函数用于模板使用,详细查看 helper 说明
const { helper } = acyort
提供一些工具/辅助类函数用于插件使用,详细查看 util 说明
const { util } = acyort
提供钩子函数 hooks
用于插件间的一些交互,详细查看 hooks 说明
const { hooks } = acyort