MinoriWiki

by phoenixlzx

phoenixlzx / MinoriWiki

MinoriWiki is a static Wiki site Generator

199 Stars 28 Forks Last release: about 3 years ago (0.0.43) MIT License 163 Commits 30 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.