Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phoenixlzx/MinoriWiki
MinoriWiki is a static Wiki site Generator
https://github.com/phoenixlzx/MinoriWiki
Last synced: 5 days ago
JSON representation
MinoriWiki is a static Wiki site Generator
- Host: GitHub
- URL: https://github.com/phoenixlzx/MinoriWiki
- Owner: phoenixlzx
- License: mit
- Created: 2015-03-23T10:12:04.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-06-18T00:40:45.000Z (over 6 years ago)
- Last Synced: 2024-08-01T12:34:32.403Z (3 months ago)
- Language: JavaScript
- Homepage: https://phoenixlzx.github.io/MinoriWiki/
- Size: 323 KB
- Stars: 206
- Watchers: 11
- Forks: 27
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - phoenixlzx/MinoriWiki - MinoriWiki is a static Wiki site Generator (others)
README
# MinoriWiki
![MinoriWiki](https://raw.githubusercontent.com/phoenixlzx/MinoriWiki/c1be1e77d6f48607fd60be4727b96a18ca7d648a/misc/minori-note.jpg)
MinoriWiki is a static Wiki site Generator [![npm version](https://badge.fury.io/js/minori.svg)](http://badge.fury.io/js/minori)
**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](https://phoenixlzx.github.io/MinoriWiki/page/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.