UNPKG

4.19 kBMarkdownView Raw
1<p align="center"><img src="http://groundedrob.com/images/projects/buk.png" height='250px'></p>
2
3## About Bük
4> Markdown based Javascript wiki engine.
5
6Bük is a flat file markdown based wiki engine written in Javascript.
7
8**No server needed.**
9
10Simply drop in your .md files in a folder, update manifest.json and you get a blazing fast wiki with an integrated fuzzy search feature.
11
12## Get started
13
141) Get Bük ( via npm or git clone)
15> ##### NPM
16NPM is the recommended way of installing Bük.
17
18```
19npm install buuk
20```
21
22> ##### Git Clone
23Alternatively, you can install Bük by directly cloning the repository from Github
24
25```
26git clone https://github.com/hang-up/buk.git buk
27npm install
28```
29---
30
312) Drop your markdown files inside `dist/assets`.
323) Update `manifest.json`
334) `npm run build`
34
35
36## Usage
37# Manifest.json
38
39The heart of Bük is laying on its `manifest.json` file. The manifest for the current boilerplate follows this structure:
40```
41 {
42 "app": "Name of the wiki",
43 "version": "1.0.0",
44 "description": "General description of the wiki.",
45 "sub": "More details about the wiki.",
46
47 "options": {
48 "advanced_slugs: true
49 }
50
51 "articles" : { // All articles to be indexed
52 "Category 1": [ // Category name
53 {
54 "title": "Article title", // Article name
55 "tags": [ // Tags to use when searched
56 "tag 1",
57 "tag 2",
58 "tag 3"
59 ]
60 }
61 ]
62 }
63 }
64```
65
66### File naming convention
67**Your markdown (.md) file names must match the slug generated by Bük or defined in `manifest.json`.**
68See the options section below to know more about how we auto generate slugs.
69
70### Options
71#### advanced_slugs
721. When `advanced_slugs` is set to `true` (default setting), Bük will generate a slug based on the following pattern: `direct-parent-category-title-of-the-article` (eg. usage-manifest.json).
732. When set to `false`, Bük will simply take the title of the article as slugs (eg. manifest.json)
74
75> Advanced slugs are useful when having multiple articles with the same title defined in the manifest.
76
77#### Override slugs
78By default, Bük will generate a slug for every article indexed in the manifest.json file based on its `title` key.
79If you wish to have a custom slug for an article, simply add a `"slug"` key to your article.
80```
81{
82 "title": "Article title", // Article name
83 "tags": [ // Tags to use when searched
84 "tag 1",
85 "tag 2",
86 "tag 3"
87 ],
88 "slug": "custom-slug" // Associated .md file must be named custom-slug.md
89}
90```
91
92### Nested categories
93Bük allows an infinite degree of nested categories. Simply build your hierarchy inside `manifest.json` and name your markdown files accordingly.
94An example of manifest using nested categories:
95```
96"articles" : {
97 "Level 0": {
98 "Level 1" : {
99 "Level 2 Category 1": [
100 {
101 "title": "Article Title", // level-2-category-1-article-title.md
102 "tags": [
103 "licence",
104 "author",
105 "misc"
106 ]
107 }
108 ],
109
110 "Level 2 Category 2": [
111 {
112 "title": "Article Title", // level-2-category-2-article-title.md
113 "tags": [
114 "licence",
115 "author",
116 "misc"
117 ]
118 }
119 ]
120 }
121 }
122}
123```
124
125### Built using:
126* [vue](https://vuejs.org/) - [vuex](https://vuex.vuejs.org) - [vue-router](https://router.vuejs.org)
127* [fuse.js](http:http://fusejs.io/)
128
129### Parser
130Bük is using [markdown-it](https://github.com/markdown-it/markdown-it) as a parser to display your markdown pages. If you encounter any parsing caveats, please address your issues [here](https://github.com/markdown-it/markdown-it/issues).
131
132### Licence
133MIT
134
135