MinoriWiki is a static Wiki site Generator
Currently under development - PRs welcome
- Install via NPM:
npm install minori -g - Create an empty directory
minori init- Edit
config.ymlto fit your needs - Use
minori note [filename]to create new note or edit existing one, you can also useapi/datafor filename to create directories - Deploy your files generated under site directory (Default to
wiki) to production environment with commandminori commit.
source(defaults tonotes) directory contains all note markdown filesstatic(defaults tostatic) directory will be copied tositedirectory, you could store any static files that may be used in your wiki site.site(defaults towiki) directory contains generated site files.
If you are going to change the site directory, just rename the wiki folder to keep Git objects.
minori initorminori i- Init under current working directoryminori note [filename]orminori n [filename]- Create or edit noteminori doneorminori d- Generate site filesminori commitorminori c- Commit changes and deploy to production environmentminori updatecfgorminori u- Update currentconfig.ymlfile with the new version installed. New config file will written toconfig.yml.new.minori serverorminori s- Start a static file server to preview your wiki site locally.
Theme is customizable. Theme directory should contain:
assetsdirectory to store style sheets, scripts, fonts, etc.index.ejsis the homepage template.page.ejsis the post page template.changes.ejsis the changelog page template.
The following variables are passed to EJS:
config- the parsedconfig.ymlobjectcategories- Array of category object:
[
{
"name": "uncategoried",
"pages": [
{
"title": "page title",
"link": "page-file-name",
"category": "uncategoried",
"time": 1471234567890,
"content": "parsed html"
},
...
]
},
...
]
page-{}in homepage and the specified page object in post page.
When parsing changelog page, the commits object is passed:
[
{
hash: '2765ac1dea7f8080048d6f603683615b2f2c2c78',
abbrevHash: '2765ac1',
subject: 'update test.md',
committerName: 'foo bar',
committerDate: 'Tue Dec 1 15:48:53 2015 +0800',
status: [ 'M' ],
files: [ 'test.md' ]
}, {
hash: '9bf21ee34231208fd2e24469b7472b54df3954182',
abbrevHash: '9bf21ee',
subject: 'update',
committerName: 'foo bar',
committerDate: 'Tue Dec 1 15:26:06 2015 +0800',
status: [ 'M' ],
files: [ 'test.md' ]
}
]
For 1200 * Format Test Page in 3 different categories:
- with MathJax
~> time minori d
minori d 70.00s user 1.42s system 105% cpu 1:07.76 total
- without MathJax
~> time minori d
minori d 10.91s user 1.01s system 105% cpu 11.320 total
Tested on a ThinkPad X1 Carbon 2015 (i7-5600U / 16G RAM / 512G NVMe) with Arch Linux.
MIT.
