diff --git a/doc/src/01000-intro.md b/doc/src/01000-intro.md index 3a991b82..205b3b54 100644 --- a/doc/src/01000-intro.md +++ b/doc/src/01000-intro.md @@ -11,76 +11,3 @@ them (See [@sec:contributing]). A way to reach out to the imag project maintainer(s) is described in the [@sec:contributing] section. - -## The Problem {#sec:intro:problem} - -The problem this project tries to solve is to provide a modular commandline -application for personal information management. - -It targets "power users" or "commandline users", uses plain text as a storage -format and tries to be as scriptable as possible. -imag offers the ability to link data from different "PIM aspects" (such as -"diary", "contacts" and "bookmark" for example). - -One major goal of imag is to make the PIM data traverseable and queryable. -For example: a wiki article can be linked to an appointment which is linked to a -todo which is linked to a note which is linked to a contact. - -imag wants to offer an all-in-one scriptable modular commandline personal -information management suite for all PIM aspects one could possibly think of. -Because imag uses plain text (TOML headers for structured data and plain text -which can be rendered using markdown, for example, for continuous text) -the user is always able to access their data without the imag tools at hand. - - -## The Approach {#sec:intro:approach} - -The approach "imag" takes on solving this problem is to store content in a -"store" and persisting content in a unified way. -Meta-information is attached to the content which can be used to store -structured data. -This can be used to implement a variety of "domain modules" using the store. -While content is stored in _one_ place, imag does not duplicate content. -imag does not copy or move icalendar files, emails, vcard files, music or -movies to the store, but tries to remember the actual files are and stores -meta-information about them in the store. - -Detailed explanation on this approach follows in the chapters of this work. - -## Implementation {#sec:intro:implementation} - -The program is written in the Rust programming language. - -The program consists of libraries which can be re-used by other projects -to implement and adapt imag functionality. An external program may use a -library of the imag distribution to store content in the store of imag and -make it visible to imag this way. - -This is a technical detail a user does not necessarily need to know, but as imag -is intended for power-users anyways, we would say it fits here. - -## Alternative Projects {#sec:intro:alternatives} - -imag is not the only project which tries to solve that particular problem. For -example there is -[org mode](https://orgmode.org) -for the [emacs](https://www.gnu.org/software/emacs/) text editor. -There is also [zim](http://zim-wiki.org/), a desktop wiki editor which is -intended to be used for a personal wiki. - -The difference between imag and the mentioned projects is: -* emacs orgmode is (from what I know and see) for _orgabizing_ things. imag is - intended not only for organizing, but also for recording, tracking and - querying. -* zim is a wiki, which could be used for PIM but is not specialized for it. - Recording habits might be possible, but not that simple as with imag - -imag is not there -yet, though. Some parts can be used, though it is far away from being feature-complete. - -In addition: imag is text-editor independent and other tools than imag might be -used to access data stored in the imag store. -For example, one could "grep", "awk" and "sed" entries without much hassle and -even write bash scripts for automatically filling imag entries with data. - - diff --git a/doc/src/01001-intro-problem.md b/doc/src/01001-intro-problem.md new file mode 100644 index 00000000..7be11231 --- /dev/null +++ b/doc/src/01001-intro-problem.md @@ -0,0 +1,21 @@ +## The Problem {#sec:intro:problem} + +The problem this project tries to solve is to provide a modular commandline +application for personal information management. + +It targets "power users" or "commandline users", uses plain text as a storage +format and tries to be as scriptable as possible. +imag offers the ability to link data from different "PIM aspects" (such as +"diary", "contacts" and "bookmark" for example). + +One major goal of imag is to make the PIM data traverseable and queryable. +For example: a wiki article can be linked to an appointment which is linked to a +todo which is linked to a note which is linked to a contact. + +imag wants to offer an all-in-one scriptable modular commandline personal +information management suite for all PIM aspects one could possibly think of. +Because imag uses plain text (TOML headers for structured data and plain text +which can be rendered using markdown, for example, for continuous text) +the user is always able to access their data without the imag tools at hand. + + diff --git a/doc/src/01002-intro-approach.md b/doc/src/01002-intro-approach.md new file mode 100644 index 00000000..4c65d8fe --- /dev/null +++ b/doc/src/01002-intro-approach.md @@ -0,0 +1,15 @@ +## The Approach {#sec:intro:approach} + +The approach "imag" takes on solving this problem is to store content in a +"store" and persisting content in a unified way. +Meta-information is attached to the content which can be used to store +structured data. +This can be used to implement a variety of "domain modules" using the store. +While content is stored in _one_ place, imag does not duplicate content. +imag does not copy or move icalendar files, emails, vcard files, music or +movies to the store, but tries to remember the actual files are and stores +meta-information about them in the store. + +Detailed explanation on this approach follows in the chapters of this work. + + diff --git a/doc/src/01003-intro-implementation.md b/doc/src/01003-intro-implementation.md new file mode 100644 index 00000000..3393eae1 --- /dev/null +++ b/doc/src/01003-intro-implementation.md @@ -0,0 +1,13 @@ +## Implementation {#sec:intro:implementation} + +The program is written in the Rust programming language. + +The program consists of libraries which can be re-used by other projects +to implement and adapt imag functionality. An external program may use a +library of the imag distribution to store content in the store of imag and +make it visible to imag this way. + +This is a technical detail a user does not necessarily need to know, but as imag +is intended for power-users anyways, we would say it fits here. + + diff --git a/doc/src/01004-intro-alternatives.md b/doc/src/01004-intro-alternatives.md new file mode 100644 index 00000000..e50a8fb1 --- /dev/null +++ b/doc/src/01004-intro-alternatives.md @@ -0,0 +1,26 @@ +## Alternative Projects {#sec:intro:alternatives} + +imag is not the only project which tries to solve that particular problem. For +example there is +[org mode](https://orgmode.org) +for the [emacs](https://www.gnu.org/software/emacs/) text editor. +There is also [zim](http://zim-wiki.org/), a desktop wiki editor which is +intended to be used for a personal wiki. + +The difference between imag and the mentioned projects is: +* emacs orgmode is (from what I know and see) for _orgabizing_ things. imag is + intended not only for organizing, but also for recording, tracking and + querying. +* zim is a wiki, which could be used for PIM but is not specialized for it. + Recording habits might be possible, but not that simple as with imag + +imag is not there +yet, though. Some parts can be used, though it is far away from being feature-complete. + +In addition: imag is text-editor independent and other tools than imag might be +used to access data stored in the imag store. +For example, one could "grep", "awk" and "sed" entries without much hassle and +even write bash scripts for automatically filling imag entries with data. + + +