@oeyoews/tiddlywiki-plugin-dev
Version:
[](https://github.com/tiddly-gittly)
61 lines (60 loc) • 3.51 kB
JavaScript
;
var _commander = require("commander");
var _init = require("./init");
var _dev = require("./dev");
var _new = require("./new");
var _build = require("./build");
var _publish = require("./publish");
_commander.program.name('tiddlywiki-plugin-dev').description('Tiddlywiki plugin development tool, working with https://github.com/tiddly-gittly/Modern.TiddlyDev');
_commander.program.command('dev').description('Start a TiddlyWiki server with your plugin(s) for test. It will always watch the file changes in the plugin folder(s) and refresh the browser page automatically.').option('--wiki <wiki-path>', 'Path of your wiki to publish', './wiki').option('--src <src-path>', 'Root path of developing plugins', './src').option('--exclude <exclude-filter>', 'Filter to exclude publishing plugins. e.g. [prefix[$:/plugins/aaa/]]', undefined).action(async ({
wiki,
exclude,
src
}) => {
await (0, _dev.runDev)(wiki, src, exclude);
});
_commander.program.command('build').description('Build plugins for Modern.TiddlyDev').option('--library', 'whether to build plugin library files', false).option('--output <output>', 'set output directory', 'dist').option('--wiki <wiki-path>', 'Path of your wiki to publish', './wiki').option('--src <src-path>', 'Root path of developing plugins', './src').option('--exclude <exclude-filter>', 'Filter to exclude publishing plugins. e.g. [prefix[$:/plugins/aaa/]]', undefined).action(async ({
library,
output,
src,
wiki,
exclude
}) => {
if (library) {
await (0, _build.buildLibrary)(output, exclude, src, wiki);
} else {
await (0, _build.build)(output, exclude, src);
}
// eslint-disable-next-line no-process-exit
process.exit(0);
});
_commander.program.command('new').description('Create a new plugin').option('--src <src-path>', 'Root path of developing plugins', './src').action(async ({
src
}) => {
await (0, _new.createPlugin)(src);
});
_commander.program.command('init').description('Create a Modern.TiddlyDev project').argument('<project>', 'Direction name of project').option('--repo <github-url>', 'Magic for China mainland user', undefined).option('--npm <npm-url>', 'Magic for China mainland user', undefined).action(async (project, {
repo,
npm
}) => {
await (0, _init.init)(project, repo || 'https://github.com/tiddly-gittly/Modern.TiddlyDev.git', npm);
});
_commander.program.command('publish').description('Publish wiki').argument('[dist]', 'Destination folder to publish', 'dist').option('-e, --exclude <exclude-filter>', 'Filter to exclude publishing tiddlers', '-[is[draft]]').option('--exclude-plugin <exclude-plugin-filter>', 'Filter to exclude publishing plugins. e.g. [prefix[$:/plugins/aaa/]]', undefined).option('--offline', 'Generate single wiki file', false).option('--src <src-path>', 'Root path of developing plugins', './src').option('--html <html-file>', 'File name of generated index html file', 'index.html').option('--no-library', 'Do not generate plugin library', true).option('--wiki <wiki-path>', 'Path of your wiki to publish', './wiki').action(async (dist, {
offline,
exclude,
excludePlugin,
library,
html,
wiki,
src
}) => {
if (offline) {
await (0, _publish.publishOfflineHTML)(wiki, dist, html, exclude, library, src, excludePlugin);
} else {
await (0, _publish.publishOnlineHTML)(wiki, dist, html, exclude, library, src, excludePlugin);
}
// eslint-disable-next-line no-process-exit
process.exit(0);
});
_commander.program.parse();