55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# zord-tree
|
|
|
|
Library for golang to build articles tree from file system. The file should be in specific format to hold meta data, id and
|
|
content.
|
|
|
|
Process should go in two steps:
|
|
|
|
* populate existing `source` directory with formatting files, add missing `id` and meta data
|
|
* build `Tree` to operate on object for your app
|
|
* read file content without meta data by path
|
|
|
|
|
|
## File and tree format
|
|
|
|
### Category
|
|
|
|
During building `Tree` directory path is converted into array of categories. So, file in path `linux/command/video` will get
|
|
categories: `linux`, `command`, `video`.
|
|
|
|
### Split line
|
|
|
|
File meta should be split by `---` line. If there is markdown formating to mark header, first such case (`---`) will be formatted
|
|
to contain empty line. Example:
|
|
|
|
```
|
|
Text
|
|
---
|
|
```
|
|
|
|
will become
|
|
|
|
```
|
|
Text
|
|
|
|
---
|
|
```
|
|
|
|
### Meta data
|
|
|
|
Meta data separated by lines and in format `name: value`. By default library supports `tags` as comma separated array.
|
|
During populating tree it adds missing `id` in `abcex` format and empty meta data lines and saves in `source` directory then copy
|
|
to `destination` directory.
|
|
|
|
|
|
## Notes
|
|
|
|
### Future plans
|
|
|
|
* add meta as function, ex. today date
|
|
* add meta with default value that should be used if other value is not set, ex. license
|
|
* add search on Tree
|
|
|
|
### TODO
|
|
|
|
* test to read file content
|