Skip to content
MinoriWiki is a static Wiki site Generator
JavaScript HTML CSS
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets
bin
lib
misc
.gitignore
LICENSE
README.md
npm-shrinkwrap.json
package.json

README.md

MinoriWiki

MinoriWiki

MinoriWiki is a static Wiki site Generator npm version

Currently under development - PRs welcome

Usage

  1. Install via NPM: npm install minori -g
  2. Create an empty directory
  3. minori init
  4. Edit config.yml to fit your needs
  5. Use minori note [filename] to create new note or edit existing one, you can also use api/data for filename to create directories
  6. Deploy your files generated under site directory (Default to wiki) to production environment with command minori commit.

Directories

  • source (defaults to notes) directory contains all note markdown files
  • static (defaults to static) directory will be copied to site directory, you could store any static files that may be used in your wiki site.
  • site (defaults to wiki) directory contains generated site files.

If you are going to change the site directory, just rename the wiki folder to keep Git objects.

Commands

  • minori init or minori i - Init under current working directory
  • minori note [filename] or minori n [filename] - Create or edit note
  • minori done or minori d - Generate site files
  • minori commit or minori c - Commit changes and deploy to production environment
  • minori updatecfg or minori u - Update current config.yml file with the new version installed. New config file will written to config.yml.new.
  • minori server or minori s - Start a static file server to preview your wiki site locally.

Theme

Theme is customizable. Theme directory should contain:

  • assets directory to store style sheets, scripts, fonts, etc.
  • index.ejs is the homepage template.
  • page.ejs is the post page template.
  • changes.ejs is the changelog page template.

The following variables are passed to EJS:

  • config - the parsed config.yml object
  • categories - 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' ]
    }
]

Speed

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.

License

MIT.

You can’t perform that action at this time.