Rewrite complete README about modules

This commit is contained in:
Matthias Beyer 2015-11-30 17:03:50 +01:00
parent 2c68184ada
commit 0a2d6384ba

165
README.md
View file

@ -66,6 +66,54 @@ it contains Kiwi, and you have notes about Kiwi, how to cook them properly. You
saw this on some website, so you linked to the website from your wiki entry, of saw this on some website, so you linked to the website from your wiki entry, of
course. course.
### Header
So each file in the store has a certain format:
---
<header>
---
<content>
The header contains some structured data (either JSON or YAML), the module uses
to store data closely related to the content.
For example, the bookmark-module will use the header only and store URL and tags
in some JSON format. The Wiki module might use the Header for storing some meta
information about the wiki article (tags, category, maybe even links to other
store entries) and the content is the wiki article content written down by the
user.
The content is just text entered from the user. In the best case, the module
should't touch the content at all.
Here is a short overview what are the modules like:
| Module | Indexer | Header | Hdr-Format | Content |
| :---------------- | ------- | ------- | ---------- | ------- |
| Bookmarks | | X | JSON | |
| Contacts | X | X | JSON | |
| Calendar | X | X | JSON | |
| Notes | | X | YAML | X |
| Mail | X | X | JSON | |
| Wiki | | X | YAML | X |
| Todo | | X | YAML | |
| Shoppinglist | | X | YAML | |
| Bibliography | X | X | JSON | |
| News | X | X | JSON | |
| Image | X | X | JSON | |
| Movie | X | X | JSON | |
| Music | X | X | JSON | |
Explanation:
- An "Indexer" Module does only index some data and store the indexed meta
information in the store
- "Header" means that the header part of a store entry is used
- "Hdr-Format" Which format is chosen for the header. Basically: YAML if the
user might want to edit the header, otherwise JSON (pretty).
- "Content" means that the content part of a store entry is used
### Bookmarks ### Bookmarks
Bookmarks should be stored in a simple format: Bookmarks should be stored in a simple format:
@ -74,21 +122,19 @@ Bookmarks should be stored in a simple format:
{ "URL": "https://github.com", "tags": ["ducks", "r", "great"]} { "URL": "https://github.com", "tags": ["ducks", "r", "great"]}
``` ```
Each file is one bookmark and the filename is a SHA512. | Required core feature | Purpose |
| :------------------------------------ | :------------ |
| Required core feature | Purpose | | XDG-open (Browser) | External program |
| :------------------------------------ | :------------ |
| JSON File backend | Data format |
| Git backend | Data sync |
### Contacts ### Contacts
Contacts are just read and indexed by `imag`, to create an internal index of Contacts are just read and indexed by `imag`, to create an internal index of
them and to be able to refer to. them and to be able to refer to.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| vcard file format parsing | Data access | | vcard file format parsing | Data access |
| XDG-open (Mail program) | External Program |
### Calendar ### Calendar
@ -103,9 +149,10 @@ them and to be able to refer to.
Just plain text notes. Just plain text notes.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| Linking to other store entries | Data Link | | Linking to other store entries | Data Link |
| XDG-open (Editor) | External Program |
### Mail ### Mail
@ -116,14 +163,12 @@ notes, etc etc. to your mail.
Some of these things (like linking contacts, calendar entries) should be Some of these things (like linking contacts, calendar entries) should be
linked automatically. linked automatically.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| Maildir file format parsing | Data access | | Parser: Maildir | Data access |
| mbox file format parsing (later) | Data access | | Parser: mbox | Data access |
| Internal storage database | Data indexing | | XDG-open (Mail program) | External Program |
| JSON File backend | Database | | XDG-open (Editor) | External Program |
| Editor calling | Editing |
| Mail-Client calling | Editing |
### Personal Wiki ### Personal Wiki
@ -131,12 +176,12 @@ linked automatically.
simple markdown files which have a YAML header, nothing too special for the simple markdown files which have a YAML header, nothing too special for the
first step. first step.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| YAML parsing | Data parsing | | Parser: Markdown | Data parsing |
| Markdown parsing | Data parsing | | XDG-open (Editor) | External Program |
| Git backend | Data sync | | XDG-open (Mail program) | External Program |
| Editor calling | Editing | | XDG-open (Browser) | External Program |
Some more ideas: Some more ideas:
@ -147,24 +192,21 @@ Some more ideas:
`imag` should also contain a full todo-tool. I'm thinking about integrating `imag` should also contain a full todo-tool. I'm thinking about integrating
taskwarrior through a wrapper here. taskwarrior through a wrapper here.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| Taskwarrior backend | Data parsing | | Library: taskwarrior | Implementation |
| Git backend | Data sync | | XDG-open (Editor) | External Program |
| Editor calling | Editing |
### Shoppinglist ### Shoppinglist
Simply dot-and-tick lists. Simply dot-and-tick lists.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| YAML parsing | Data parsing | | Module: Todo-List | Implementation |
| Markdown parsing | Data parsing | | XDG-open (Editor) | External Program |
| Git backend | Data sync |
| Editor calling | Editing |
- Maybe as sub-form of the Todo-List module - Sub-form of the Todo-List module
### Bibliography management ### Bibliography management
@ -172,12 +214,13 @@ BibTex would be the first step, maybe we should be able to add the actual PDFs
here as well... didn't waste too much thoughts on this by now. If we have the here as well... didn't waste too much thoughts on this by now. If we have the
PDF data, we need git-annex. PDF data, we need git-annex.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| BibTex parsing | Data parsing | | BibTex parsing | Data parsing |
| Git backend | Data sync | | Backend: git-annex | Data parsing |
| Git-annex backend | Data sync | | XDG-open (Editor) | External Program |
| Editor calling | Editing | | XDG-open (PDF viewer) | External Program |
| XDG-open (Office suite) | External Program |
### News (RSS) ### News (RSS)
@ -185,38 +228,38 @@ Just indexing, reading news is not task of `imag` and so isn't syncing.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| RSS parsing | Data parsing | | Parser: RSS | Data parsing |
| Git backend | Data sync | | Parser: Atom | Data parsing |
### Image ### Image
Just indexing photos. Just indexing photos.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| Git-annex backend | Data sync | | Backend: git-annex | Data parsing |
| Image metadata reading | Data parsing | | Image metadata reading | Data parsing |
| Linking to other store entries | Data Link | | XDG-open (Image viewer) | External Program |
### Video ### Video
Just indexing movies. Just indexing movies.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| Git-annex backend | Data sync | | Backend: git-annex | Data parsing |
| Movie metadata reading | Data parsing | | Movie metadata reading | Data parsing |
| Linking to other store entries | Data Link | | XDG-open (Movie viewer) | External Program |
### Music ### Music
Just indexing music. Just indexing music.
| Required core feature | Purpose | | Required core feature | Purpose |
| :------------------------------------ | :------------ | | :------------------------------------ | :------------ |
| Git-annex backend | Data sync | | Backend: git-annex | Data parsing |
| Music metadata reading | Data parsing | | Music metadata reading | Data parsing |
| Linking to other store entries | Data Link | | XDG-open (Music player) | External Program |
# License # License