diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-10-13 11:56:40 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-10-13 12:04:36 +0200 |
commit | e30d774670af80d93da4450a2edf2b5deff14e21 (patch) | |
tree | d85e6c2903da3a66ef05f2987186afc2287f2189 /doc | |
parent | fbd6e790c71c9640faaf2502c51c5a09d6441deb (diff) |
Move all libimag*/README.md to doc/src/05100-*
Diffstat (limited to 'doc')
-rw-r--r-- | doc/src/05100-lib-bookmark.md | 11 | ||||
-rw-r--r-- | doc/src/05100-lib-counter.md | 4 | ||||
-rw-r--r-- | doc/src/05100-lib-diary.md | 16 | ||||
-rw-r--r-- | doc/src/05100-lib-entryfilter.md | 9 | ||||
-rw-r--r-- | doc/src/05100-lib-entrylink.md | 5 | ||||
-rw-r--r-- | doc/src/05100-lib-entrylist.md | 12 | ||||
-rw-r--r-- | doc/src/05100-lib-entrymarkdown.md | 9 | ||||
-rw-r--r-- | doc/src/05100-lib-entrytag.md | 6 | ||||
-rw-r--r-- | doc/src/05100-lib-error.md | 21 | ||||
-rw-r--r-- | doc/src/05100-lib-interaction.md | 7 | ||||
-rw-r--r-- | doc/src/05100-lib-ref.md | 54 | ||||
-rw-r--r-- | doc/src/05100-lib-rt.md | 11 | ||||
-rw-r--r-- | doc/src/05100-lib-store.md | 11 | ||||
-rw-r--r-- | doc/src/05100-lib-util.md | 4 |
14 files changed, 180 insertions, 0 deletions
diff --git a/doc/src/05100-lib-bookmark.md b/doc/src/05100-lib-bookmark.md new file mode 100644 index 00000000..600e9d43 --- /dev/null +++ b/doc/src/05100-lib-bookmark.md @@ -0,0 +1,11 @@ +## libimagbookmark + +This library crate implements functionality for bookmarks. + +It uses `libimagentrylink` to create external links and therefor deduplicates +equivalent external links (`libimagentrylink` deduplicates - you cannot store +two different store entries for `https://imag-pim.org` in the store). + +It supports bookmark collections and all basic functionality that one might +need. + diff --git a/doc/src/05100-lib-counter.md b/doc/src/05100-lib-counter.md new file mode 100644 index 00000000..de6967f0 --- /dev/null +++ b/doc/src/05100-lib-counter.md @@ -0,0 +1,4 @@ +## libimagcounter + +Library of "imag-counter", usable by other modules as well to implement counter +functionality for entries. diff --git a/doc/src/05100-lib-diary.md b/doc/src/05100-lib-diary.md new file mode 100644 index 00000000..d9e8d698 --- /dev/null +++ b/doc/src/05100-lib-diary.md @@ -0,0 +1,16 @@ +## libimagdiary + +This library crates implements a full diary. + +One can have one or more diaries in the store, each diary can have unlimited +entries. + +### Future plans + +The diary should be able to provide _daily_, _hourly_ and even _minutely_ +diary entries, so one can use the diary as normal "Dear diary, +today..."-diary, or more fine-grained and more like a journal. + +The internal file format as well as the store-path generation for this module is +prepared for such functionality. + diff --git a/doc/src/05100-lib-entryfilter.md b/doc/src/05100-lib-entryfilter.md new file mode 100644 index 00000000..2812db39 --- /dev/null +++ b/doc/src/05100-lib-entryfilter.md @@ -0,0 +1,9 @@ +## libimagentryfilter + +Helper library to filter lists of entries by certain predicated. Offers filters +for filtering by header values and other predicates, plus this library offers +logical operants to combine filters. + +A commandline-to-filter DSL is planned for this, so commandline applications can +use this to implement a uniform filter interface. + diff --git a/doc/src/05100-lib-entrylink.md b/doc/src/05100-lib-entrylink.md new file mode 100644 index 00000000..6c6caff5 --- /dev/null +++ b/doc/src/05100-lib-entrylink.md @@ -0,0 +1,5 @@ +## libimagentrylink + +Linking library for linking entries with other entries. Used for "imag-link", +the commandline utility, but intended for use in other binaries and libraries as +well. diff --git a/doc/src/05100-lib-entrylist.md b/doc/src/05100-lib-entrylist.md new file mode 100644 index 00000000..0b0b7905 --- /dev/null +++ b/doc/src/05100-lib-entrylist.md @@ -0,0 +1,12 @@ +## libimagentrylist + +Library for listing entries in different manner. + +This includes: + +* Plain one-line-one-entry-path listing +* Tree listing by submodule +* Listing with metadata + * One-line-one-entry + * ASCII-Table + diff --git a/doc/src/05100-lib-entrymarkdown.md b/doc/src/05100-lib-entrymarkdown.md new file mode 100644 index 00000000..2f417731 --- /dev/null +++ b/doc/src/05100-lib-entrymarkdown.md @@ -0,0 +1,9 @@ +## libimagentrymarkdown + +Helper crate to add useful functionality in a wrapper around +[hoedown](https://crates.io/crates/hoedown) for imag. + +Adds functionality to extract links, parse content into HTML and other things +which might be useful for markdown rendering in imag. + + diff --git a/doc/src/05100-lib-entrytag.md b/doc/src/05100-lib-entrytag.md new file mode 100644 index 00000000..6c0275b8 --- /dev/null +++ b/doc/src/05100-lib-entrytag.md @@ -0,0 +1,6 @@ +## libimagentrytag + +Library for tagging entries. Used in "imag-tag" but should be used in all other +modules which contain tagging functionality, so the backend and frontend look +the same for all modules. + diff --git a/doc/src/05100-lib-error.md b/doc/src/05100-lib-error.md new file mode 100644 index 00000000..a7d57628 --- /dev/null +++ b/doc/src/05100-lib-error.md @@ -0,0 +1,21 @@ +## libimagerror + +In imag, we do not panic. + +Whatever we do, if we fail as hard as possible, the end-user should _never ever_ +see a backtrace from a `panic!()`. + +Anyways, the user _might_ see a error trace generated by imag. +That is because imag is software for power-users, for nerds (I use the term +"nerd" because for me it is a good thing - I do not want to offend anyone by +using it). +This target group can read backtraces without getting confused. `IO Error` and +`Permission denied Error` are things that nerds can understand and they already +know what to do in the most obvious cases (such as `Permission denied Error`). + +This library crate is for generating error types and handle them in a nice way. +It can be seen as mini-framework inside imag which was written to work with +error types in a specified way. All imag crates _must_ use this library if they +can return errors in any way, except the `libimagutil` - which is for the most +basic utilities. + diff --git a/doc/src/05100-lib-interaction.md b/doc/src/05100-lib-interaction.md new file mode 100644 index 00000000..9c1f0369 --- /dev/null +++ b/doc/src/05100-lib-interaction.md @@ -0,0 +1,7 @@ +## libimaginteraction + +A crate for more general interaction with the user (interactive commandline +interface). + +Offers functions for asking the user Y/N questions, for (numeric) values, etc. + diff --git a/doc/src/05100-lib-ref.md b/doc/src/05100-lib-ref.md new file mode 100644 index 00000000..146059f1 --- /dev/null +++ b/doc/src/05100-lib-ref.md @@ -0,0 +1,54 @@ +# libimagref + +This library crate contains functionality to generate _references_ within the +imag store. + +It can be used to create references to other files on the filesystem (reachable +via a filesystem path). It differs from `libimagentrylink`/external linking as +it is designed exclusively for filesystem references, not for URLs. + +A reference can have several properties, for example can a reference track the +content of a filesystem path by hashing the content with a hashsum (SHA1) and +one can check whether a file was changed by that. +As files can get big (think of `debian.iso`) _partial hashing_ is supported +(think of "hash the first 2048 bytes of a file). + +The library contains functionality to re-find a moved file automatically by +checking the content hash which was stored before. + +Permission changes can be tracked as well. + +So this library helps to resemble something like a _symlink_. + +## Limits + +Please understand that this is _not_ intended to be a version control system or +something like that. +We also can not use _real symlinks_ as we need imag-store-objects to be able to +link stuff. + +## Usecase + +This library offers functionality to refer to content outside of the store. +It can be used to refer to _nearly static stuff_ pretty easily - think of a +Maildir - you add new mails by fetching them, but you mostly do not remove mails +and if you do you end up with a "null pointer" in the store, which can then be +handled properly. + +As this library supports custom hashes (you don't have to hash the full file, +you can also parse the file and hash only _some_ content) this is pretty +flexible. +For example if you want to implement a imag module which tracks a certain kind +of files which constantly change... but the first 5 lines do never change +after the file is created - you can write a custom hasher that only uses the +first 5 lines for the hash. + +## Internals + +Internally, in the store, the file gets created under +`/ref/<hash of the path to the file to refer to>`. +If the content of the file is hashed, we can still re-find the file via the +content hash (which is stored in the header of the store entry). + +The reference object can, after the path was re-found, be updated. + diff --git a/doc/src/05100-lib-rt.md b/doc/src/05100-lib-rt.md new file mode 100644 index 00000000..204770cb --- /dev/null +++ b/doc/src/05100-lib-rt.md @@ -0,0 +1,11 @@ +# libimagrt + +This library provides utility functionality for the modules and the binary +frontends, such as reading and parsing the configuration file, a builder +helper for the commandline interface and such. + +It also contains the store object and creates it from configuration. + +the `libimagrt::runtime::Runtime` object is the first complex object that comes +to live in a imag binary. + diff --git a/doc/src/05100-lib-store.md b/doc/src/05100-lib-store.md new file mode 100644 index 00000000..51c9d49d --- /dev/null +++ b/doc/src/05100-lib-store.md @@ -0,0 +1,11 @@ +# libimagstore + +The store is the heart of everything. Here lives the data, the complexity and +the performance bottleneck. + +The store offeres read/write access to all entries, a hook system to do +on-the-fly modification of incoming/outgoing files and so on. + +The store itself does not offer functionality, but has a commandline interface +"imag-store" which can do basic things with the store. + diff --git a/doc/src/05100-lib-util.md b/doc/src/05100-lib-util.md new file mode 100644 index 00000000..ba32bcaf --- /dev/null +++ b/doc/src/05100-lib-util.md @@ -0,0 +1,4 @@ +# libimagutil + +Utility library. Does not depend on other imag crates. + |