summaryrefslogtreecommitdiffstats
path: root/doc/src/05100-lib-wiki.md
blob: 93ba6970af8cab364b790843667020e510dc9ea7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
## libimagwiki

The wiki library implements a complete wiki for personal use.

This basically is a note-taking functionality combined with linking.

### Layout

The basic structure and layout is as simple as it gets:

`/wiki` holds all wikis. The default wiki is `/wiki/default`. Below that there
are entries. Entries can be in sub-collections, so
`/wiki/default/cars/mustang` could be an entry.


``` {.numberLines}

+-------------+
|             |
|  WikiStore  |
|             |
+------+------+
    1  |
       |
       | n
+------v------+
|             |
|    Wiki     |
|             |
+------+------+
     1 |
       |
       | n
+------v------+
|             | n
|    Entry    <------+
|             |      |
+------+------+      |
     1 |             |
       |             |
       |             |
       +-------------+
```

The store offers an interface to get a Wiki. The wiki offers an interface to get
entries from it.

Each Entry might link to a number of other entries _within the same wiki_.
Cross-linking from one wiki entry to an entry of another wiki is technically
possible, but not supported by the Entry itself (also read below).

When creating a new wiki, the main page is automatically created.

### Autolinking

The `Entry` structure offers an interface which can be used to automatically
detect links in the markdown.
The links are then automatically linked (as in `libimagentrylink`).