Updated Readme from master

This commit is contained in:
Manuel Ebert 2012-04-17 00:07:19 +02:00
parent d4e8276ddd
commit 0383237511
2 changed files with 23 additions and 19 deletions

View file

@ -3,7 +3,7 @@ jrnl
*jrnl* is a simple journal application for your command line. Journals are stored as human readable plain text files - you can put them into a Dropbox folder for instant syncinc and you can be assured that your journal will still be readable in 2050, when all your fancy iPad journal applications will long be forgotten. *jrnl* is a simple journal application for your command line. Journals are stored as human readable plain text files - you can put them into a Dropbox folder for instant syncinc and you can be assured that your journal will still be readable in 2050, when all your fancy iPad journal applications will long be forgotten.
Optionally, your journal can be encrypted using AES encryption. Optionally, your journal can be encrypted using the [256-bit AES](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard).
### Why keep a journal? ### Why keep a journal?
@ -111,7 +111,7 @@ It's just a regular `json` file:
- `journal`: path to your journal file - `journal`: path to your journal file
- `editor`: if set, executes this command to launch an external editor for writing your entries, e.g. `vim` or `subl -w` (note the `-w` flag to make sure _jrnl_ waits for Sublime Text to close the file before writing into the journal). - `editor`: if set, executes this command to launch an external editor for writing your entries, e.g. `vim` or `subl -w` (note the `-w` flag to make sure _jrnl_ waits for Sublime Text to close the file before writing into the journal).
- `encrypt`: if true, encrypts your journal using AES encryption. - `encrypt`: if true, encrypts your journal using AES.
- `password`: you may store the password you used to encrypt your journal in plaintext here. This is useful if your journal file lives in an unsecure space (ie. your Dropbox), but the config file itself is more or less safe. - `password`: you may store the password you used to encrypt your journal in plaintext here. This is useful if your journal file lives in an unsecure space (ie. your Dropbox), but the config file itself is more or less safe.
- `tagsymbols`: Symbols to be interpreted as tags. (__See note below__) - `tagsymbols`: Symbols to be interpreted as tags. (__See note below__)
- `default_hour` and `default_minute`: if you supply a date, such as `last thursday`, but no specific time, the entry will be created at this time - `default_hour` and `default_minute`: if you supply a date, such as `last thursday`, but no specific time, the entry will be created at this time
@ -128,6 +128,14 @@ It's just a regular `json` file:
> >
> Or use the built-in prompt or an external editor to compose your entries. > Or use the built-in prompt or an external editor to compose your entries.
### JSON export
Can do:
jrnl -json
Why not create a beautiful [timeline](http://timeline.verite.co/) of your journal?
### Encryption ### Encryption
Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm. The key used for encryption is the SHA-256-hash of your password, and the IV (initialisation vector) is stored in the first 16 bytes of the encrypted file. So, to decrypt a journal file in python, run Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm. The key used for encryption is the SHA-256-hash of your password, and the IV (initialisation vector) is stored in the first 16 bytes of the encrypted file. So, to decrypt a journal file in python, run
@ -137,10 +145,4 @@ Should you ever want to decrypt your journal manually, you can do so with any pr
with open("my_journal.txt") as f: with open("my_journal.txt") as f:
cipher = f.read() cipher = f.read()
crypto = AES.new(key, AES.MODE_CBC, iv = cipher[:16]) crypto = AES.new(key, AES.MODE_CBC, iv = cipher[:16])
plain = crypto.decrypt(cipher) plain = crypto.decrypt(cipher[16:])
### JSON export
Can do:
jrnl -json

View file

@ -65,7 +65,7 @@
<p><em>jrnl</em> is a simple journal application for your command line. Journals are stored as human readable plain text files - you can put them into a Dropbox folder for instant syncinc and you can be assured that your journal will still be readable in 2050, when all your fancy iPad journal applications will long be forgotten.</p> <p><em>jrnl</em> is a simple journal application for your command line. Journals are stored as human readable plain text files - you can put them into a Dropbox folder for instant syncinc and you can be assured that your journal will still be readable in 2050, when all your fancy iPad journal applications will long be forgotten.</p>
<p>Optionally, your journal can be encrypted using AES encryption.</p> <p>Optionally, your journal can be encrypted using the <a href="http://en.wikipedia.org/wiki/Advanced_Encryption_Standard">256-bit AES</a>.</p>
<h3>Why keep a journal?</h3> <h3>Why keep a journal?</h3>
@ -185,7 +185,7 @@ python setup.py install
<ul> <ul>
<li><code>journal</code>: path to your journal file</li> <li><code>journal</code>: path to your journal file</li>
<li><code>editor</code>: if set, executes this command to launch an external editor for writing your entries, e.g. <code>vim</code> or <code>subl -w</code> (note the <code>-w</code> flag to make sure <em>jrnl</em> waits for Sublime Text to close the file before writing into the journal).</li> <li><code>editor</code>: if set, executes this command to launch an external editor for writing your entries, e.g. <code>vim</code> or <code>subl -w</code> (note the <code>-w</code> flag to make sure <em>jrnl</em> waits for Sublime Text to close the file before writing into the journal).</li>
<li><code>encrypt</code>: if true, encrypts your journal using AES encryption.</li> <li><code>encrypt</code>: if true, encrypts your journal using AES.</li>
<li><code>password</code>: you may store the password you used to encrypt your journal in plaintext here. This is useful if your journal file lives in an unsecure space (ie. your Dropbox), but the config file itself is more or less safe.</li> <li><code>password</code>: you may store the password you used to encrypt your journal in plaintext here. This is useful if your journal file lives in an unsecure space (ie. your Dropbox), but the config file itself is more or less safe.</li>
<li><code>tagsymbols</code>: Symbols to be interpreted as tags. (<strong>See note below</strong>)</li> <li><code>tagsymbols</code>: Symbols to be interpreted as tags. (<strong>See note below</strong>)</li>
<li><code>default_hour</code> and <code>default_minute</code>: if you supply a date, such as <code>last thursday</code>, but no specific time, the entry will be created at this time</li> <li><code>default_hour</code> and <code>default_minute</code>: if you supply a date, such as <code>last thursday</code>, but no specific time, the entry will be created at this time</li>
@ -206,6 +206,15 @@ python setup.py install
<p>Or use the built-in prompt or an external editor to compose your entries.</p> <p>Or use the built-in prompt or an external editor to compose your entries.</p>
</blockquote> </blockquote>
<h3>JSON export</h3>
<p>Can do:</p>
<pre><code>jrnl -json
</code></pre>
<p>Why not create a beautiful <a href="http://timeline.verite.co/">timeline</a> of your journal?</p>
<h3>Encryption</h3> <h3>Encryption</h3>
<p>Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm. The key used for encryption is the SHA-256-hash of your password, and the IV (initialisation vector) is stored in the first 16 bytes of the encrypted file. So, to decrypt a journal file in python, run</p> <p>Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm. The key used for encryption is the SHA-256-hash of your password, and the IV (initialisation vector) is stored in the first 16 bytes of the encrypted file. So, to decrypt a journal file in python, run</p>
@ -215,14 +224,7 @@ key = hashlib.sha256(my_password).digest()
with open("my_journal.txt") as f: with open("my_journal.txt") as f:
cipher = f.read() cipher = f.read()
crypto = AES.new(key, AES.MODE_CBC, iv = cipher[:16]) crypto = AES.new(key, AES.MODE_CBC, iv = cipher[:16])
plain = crypto.decrypt(cipher) plain = crypto.decrypt(cipher[16:])
</code></pre>
<h3>JSON export</h3>
<p>Can do:</p>
<pre><code>jrnl -json
</code></pre> </code></pre>
<h1>Changelog</h1> <h1>Changelog</h1>