Novice, Practiced, Mastered

    minori

    0.0.45 • Public • Published

    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.

    Keywords

    Install

    npm i minori

    DownloadsWeekly Downloads

    89

    Version

    0.0.45

    License

    MIT

    Unpacked Size

    373 kB

    Total Files

    34

    Last publish

    Collaborators

    • phoenixlzx