summaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2015-12-29 16:41:20 +0100
committerMatthias Beyer <mail@beyermatthias.de>2015-12-29 18:20:56 +0100
commitbdcfa344498ef72d75e9feaad645eb0d80f9c190 (patch)
tree71eb219b95349a1b9aa22b3202e0fe9dcd55b6fb /README.md
parent568026c52cad0d2ec52241d2809288b16b4558af (diff)
Rewrite README, squash some content to save lines
Diffstat (limited to 'README.md')
-rw-r--r--README.md166
1 files changed, 59 insertions, 107 deletions
diff --git a/README.md b/README.md
index a519c242..a0bc3296 100644
--- a/README.md
+++ b/README.md
@@ -21,23 +21,11 @@ see [Linking](#Linking))
Some modules might not want to store content there, for example you don't want
to put your icalendar files in there. So the calendar module just crawls through
-your ical files and puts the scanned meta-information into the store. Of course,
-if the content of the ical file changes, the store entry does not. It still
-points (via its JSON content for example) to the same file. So changes are not
-tracked (We can argue here whether we want to copy the contents to the store for
-ical and vcard files, but we cannot argue on for example music files).
-
+your ical files and puts only a link and some hashsums (for refinding on content
+move) to the store. Changes are not tracked via this model.
If a (for example ical-)file gets removed, the store entry gets invalid and has
to be garbage-collected.
-> The current model is not fixed yet. I'm thinking about copying .ical and
-> .vcard, basically all text files, to the store.
-> This is not possible for media files like music or movies, though. Also this
-> is not feasible for documents like .pdf or similar.
-
-Each of the following modules has a short description including a table what
-core features are required to get it working.
-
### Linking
The UUID/SHA hashes in the file names can be used to connect two store entries.
@@ -89,40 +77,75 @@ 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 | |
+| Module | Indexer | Header-Format | Content | Expl | Dep |
+| :----------- | ------- | ------------- | ------- | ------- | ----------- |
+| Bibliography | X | JSON | X | .bib | Notes |
+| Bookmarks | | JSON | | | |
+| Calendar | X | JSON | | | |
+| Contacts | X | JSON | | | |
+| Image | X | JSON | | | Notes |
+| Mail | X | JSON | | | |
+| Movie | X | JSON | | | Notes |
+| Music | X | JSON | | | Notes |
+| News | X | JSON | | | |
+| Notes | | YAML | X | Content | |
+| Shoppinglist | | YAML | | | Notes, Todo |
+| Todo | | YAML | | | Notes |
+| Wiki | | YAML | X | Content | |
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
+- An "Indexer" Module does only index some data and stores only some information
+ on how to content
+- "Header-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
+- "Expl": What the content part of a file is used for. "Content" means simply
+ user content.
+- "Dep" means that the module uses this other module as a dependency for
+ extending its own functionality
+
+### External Dependencies
+
+| Library | Optional | Module |
+| :------------ | :------: | :------- |
+| vcard | | Contacts |
+| icalendar | | Calendar |
+| XDG | X | Contacts |
+| | X | Calendar |
+| | X | Notes |
+| | X | Mail |
+| | X | Wiki |
+| | X | Todo |
+| | X | Shopping List |
+| | X | BibMan |
+| | X | Music |
+| | X | Movie |
+| | X | Image |
+| Markdown | | Notes |
+| | | Wiki |
+| Maildir | | Mail |
+| BibTex parsing | X | BibMan |
+| git-annex | X | BibMan |
+| | X | Music |
+| | X | Movie |
+| | X | Image |
+| Exif | X | Image |
+| id3 | X | Music |
+| RSS/Atom | | News |
+
+(Optional means that these things are optional for the main functionality, but
+should be implemented at some point to offer powerful functionality)
### Bookmarks
Bookmarks should be stored in a simple format:
```json
-{ "URL": "https://github.com", "tags": ["ducks", "r", "great"]}
+{ "URL": "https://github.com", "TAGS": ["ducks", "r", "great"]}
```
-| Required core feature | Purpose |
+| Required util feature | Purpose |
| :------------------------------------ | :------------ |
| XDG-open (Browser) | External program |
@@ -131,29 +154,15 @@ Bookmarks should be stored in a simple format:
Contacts are just read and indexed by `imag`, to create an internal index of
them and to be able to refer to.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| vcard file format parsing | Data access |
-| XDG-open (Mail program) | External Program |
-
### Calendar
Calendar are just read and indexed by `imag`, to create an internal index of
them and to be able to refer to.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| ical file format parsing | Data access |
-
### Notes
Just plain text notes.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Linking to other store entries | Data Link |
-| XDG-open (Editor) | External Program |
-
### Mail
`imag` should be able to index all your mail and make them accessible through
@@ -163,26 +172,12 @@ notes, etc etc. to your mail.
Some of these things (like linking contacts, calendar entries) should be
linked automatically.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Parser: Maildir | Data access |
-| Parser: mbox | Data access |
-| XDG-open (Mail program) | External Program |
-| XDG-open (Editor) | External Program |
-
### Personal Wiki
`imag` should contain a complete personal wiki software. It should contain of
simple markdown files which have a YAML header, nothing too special for the
first step.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Parser: Markdown | Data parsing |
-| XDG-open (Editor) | External Program |
-| XDG-open (Mail program) | External Program |
-| XDG-open (Browser) | External Program |
-
Some more ideas:
- Extract URLs and put them into store as Bookmarks
@@ -192,21 +187,9 @@ Some more ideas:
`imag` should also contain a full todo-tool. I'm thinking about integrating
taskwarrior through a wrapper here.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Library: taskwarrior | Implementation |
-| XDG-open (Editor) | External Program |
-
### Shoppinglist
-Simply dot-and-tick lists.
-
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Module: Todo-List | Implementation |
-| XDG-open (Editor) | External Program |
-
-- Sub-form of the Todo-List module
+Simply dot-and-tick lists, uses Todo and Notes in combination.
### Bibliography management
@@ -214,53 +197,22 @@ 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
PDF data, we need git-annex.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| BibTex parsing | Data parsing |
-| Backend: git-annex | Data parsing |
-| XDG-open (Editor) | External Program |
-| XDG-open (PDF viewer) | External Program |
-| XDG-open (Office suite) | External Program |
-
### News (RSS)
Just indexing, reading news is not task of `imag` and so isn't syncing.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Parser: RSS | Data parsing |
-| Parser: Atom | Data parsing |
-
### Image
Just indexing photos.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Backend: git-annex | Data parsing |
-| Image metadata reading | Data parsing |
-| XDG-open (Image viewer) | External Program |
-
### Video
Just indexing movies.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Backend: git-annex | Data parsing |
-| Movie metadata reading | Data parsing |
-| XDG-open (Movie viewer) | External Program |
-
### Music
Just indexing music.
-| Required core feature | Purpose |
-| :------------------------------------ | :------------ |
-| Backend: git-annex | Data parsing |
-| Music metadata reading | Data parsing |
-| XDG-open (Music player) | External Program |
-
# License
This code is released under terms of GNU GPLv2.