Journal PreProcessor
Project description
Journal PreProcessor - mdJPP - is a preporcessor for plain text documents that supports tagging.
Use case
Suppose that you are obliged (or you want to) log progress of your work. One of the simplest way to do it is to put notes into some plain text file. The more you work, the more notes you write. Finally, the file can be use as a basis for some kind of report or even as a report itself. If you decide to use markup, let it be Markdown, your notes may look quite elegant.
Imagine now, that you are dr. No and you work in ACME company as a member of Y-man support team. You did some work. Each day you put some notes and used some tags. Your work log may look following:
**ACME** Y-man support team dr No Work log. 20181022 -------- *X-substance* Testing alternative synthesis: * Z + Y -> X * Z + V + U -> X + W *garden* Singing to the flowers. 20181023 -------- *X-substance* *IT* Simulation of X-substance stability. *garden* Taking care of bees. 20181024 -------- *X-substance* Purification. **It's alive!**
Although, markup languages are nice and allows to produce nice looking documents or web pages, they lack of convenient support for tagging. In the above example X-substance annotation was consequently used to mark actions related to X-substance development etc.
Obvious question emerges, how to get a report on X-substance only?
Solution
The above log can be annotated according to mdJPP tagging syntax. It cane be later submitted to mdJPP preprocessor that can produce document extracts according to tags and dates.
Syntax
mdJPP tags, including dates, starts always with double @@ character. In the current version only one tag can be used in one line so there is no inline tags (not yet!). There are two types of tags:
Date tags, for example @@20181103.
(Normal) tags, for example @@X-substance.
Please note, that dates are always written as YYYYMMDD.
Normal tags can be joined. If particular note is related with X-substance development and IT work, it can be annotated with two tags:
@@X-substance @@IT
Tags written one after another without blank lines are joined and note that follows is tagged with X-substance and IT.
Structure
mdJPP annotated documents always have following structure:
Plain text (optional)
- Global normal tags that annotate all that follows (optional)
Plain text (optional)
- Date tag (optional)
Plain text (optional)
- Normal tag that annotate text note that follows (optional)
Plain text (optional)
- Normal tag that annotate text note that follows (optional)
…
- Date tag (optional)
…
Please note two facts:
All elements of the document’s structure are optional.
All mdJPP documents have always the same structure.
Example
Let’s use mdJPP tagging for dr. No notes:
**ACME** @@Y-man support team @@dr No Work log. @@20181022 @@X-substance Testing alternative synthesis: * Z + Y -> X * Z + V + U -> X + W @@garden Singing to the flowers. @@20181023 @@X-substance @@IT Simulation of X-substance stability. @@garden Taking care of bees. @@20181024 @@X-substance Purification. **It's alive!**
Usage
Once the log is annotated with mdJPP tags, prepocessor can be used to produce nice looking document by redirecting its output to, say, pandoc:
mdjpp dr_no_log.mdj | pandoc > dr_no_log.html
This is all unless you want to do some filtering.
Filters
ACME boss wants you to report progress on X-substance development since October 23rd?
mdjpp dr_no_log.mdj --only-tag X-substance --date-from 20181023
Want to do more?
mdjpp --help
Index
If several files are submitted to mdJPP and one of them ends with index.mdj it is processed first.
This allows to put all global tags and other titles to the index and real work logs can be kept in other files.
Example
So, how it looks like? It depends on rendering options. Currently, three rendering engines are available:
Null - This render engine does not render at all. Useful when you want to do filtering only. This is default render engine.
Markdown - Changes global, date, and normal tags to header level 1, 2, and 3 accordingly. Uses some emphasis for tags strings. To switch it on use --md option. It is useful when you want to produce PDF or ODT documents.
HTML - Renders global and normal tags as nice boxes with coloured text. Uses emphasis for date tags and uses some horizontal lines. To switch it on use --html option.
Here are examples of HTML documents created with HTML rendering engine, and with Markdown rendering engine.
Look also at this PDF document created with Markdown rendering engine.
Please note that the above examples are done with pandoc --metadata="title:Your smart title". The title is, therefore, added at the beginning of documents.
Installation
mdJPP can be installed with following command:
pip install mdjpp
Question & Answer
Hey dude, why don’t you put all that notes to some database and use SQL to query DB and get what you want?
That’s a very good question. Well, may be, may be…
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file mdjpp-0.1.3.tar.gz
.
File metadata
- Download URL: mdjpp-0.1.3.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.18.4 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9dda041ce525e27fef225111b29e232de373710cd0c85c3b9336c7ab3f6309f |
|
MD5 | 75b634e65409bac5d5dd1f4b72c1b4c4 |
|
BLAKE2b-256 | 6721a65bab10444b61b02b94e91e95ee3ef3012622144384f6afa982a2d5b8d7 |