Need help with MinoriWiki?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

phoenixlzx
208 Stars 28 Forks MIT License 163 Commits 1 Opened issues

Description

MinoriWiki is a static Wiki site Generator

Services available

!
?

Need anything else?

Contributors list

# 192,552
Arch Li...
Less
Shell
C
156 commits
# 726,296
HTML
CSS
1 commit

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.