mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
Updated Readme from master
This commit is contained in:
parent
7c5b42ec9b
commit
0b9a1152a6
2 changed files with 93 additions and 60 deletions
75
README.md
75
README.md
|
@ -3,13 +3,14 @@ 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.
|
||||||
|
|
||||||
Why keep a journal?
|
Optionally, your journal can be encrypted using AES encryption
|
||||||
-------------------
|
|
||||||
|
### Why keep a journal?
|
||||||
|
|
||||||
Journals aren't only for 13-year old girls and people who have too much time on their summer vacation. A journal helps you to keep track of the things you get done and how you did them. Your imagination may be limitless, but your memory isn't. For personal use, make it a good habit to write at least 20 words a day. Just to reflect what made this day special, why you haven't wasted it. For professional use, consider a text-based journal to be the perfect complement to your GTD todo list - a documentation of what and how you've done it.
|
Journals aren't only for 13-year old girls and people who have too much time on their summer vacation. A journal helps you to keep track of the things you get done and how you did them. Your imagination may be limitless, but your memory isn't. For personal use, make it a good habit to write at least 20 words a day. Just to reflect what made this day special, why you haven't wasted it. For professional use, consider a text-based journal to be the perfect complement to your GTD todo list - a documentation of what and how you've done it.
|
||||||
|
|
||||||
How to use?
|
In a Nutshell
|
||||||
-----------
|
-------------
|
||||||
|
|
||||||
to make a new entry, just type
|
to make a new entry, just type
|
||||||
|
|
||||||
|
@ -17,14 +18,15 @@ to make a new entry, just type
|
||||||
|
|
||||||
and hit return. `yesterday:` will be interpreted as a timestamp. Everything until the first sentence mark (`.?!`) will be interpreted as the title, the rest as the body. In your journal file, the result will look like this:
|
and hit return. `yesterday:` will be interpreted as a timestamp. Everything until the first sentence mark (`.?!`) will be interpreted as the title, the rest as the body. In your journal file, the result will look like this:
|
||||||
|
|
||||||
2012-03-29 09:0 Called in sick.
|
2012-03-29 09:00 Called in sick.
|
||||||
Used the time to clean the house and spent 4h on writing my book.
|
Used the time to clean the house and spent 4h on writing my book.
|
||||||
|
|
||||||
If you just call `jrnl`, you will be prompted to compose your entry - but you can also configure _jrnl_ to use your external editor.
|
If you just call `jrnl`, you will be prompted to compose your entry - but you can also configure _jrnl_ to use your external editor.
|
||||||
|
|
||||||
### Smart timestamps:
|
Usage
|
||||||
|
-----
|
||||||
|
|
||||||
If we start our entry by e.g. `yesterday:` or `last week monday at 9am:` the entry's date will automatically be adjusted.
|
_jrnl_ has to modes: __composing__ and __viewing__.
|
||||||
|
|
||||||
### Viewing:
|
### Viewing:
|
||||||
|
|
||||||
|
@ -36,40 +38,35 @@ will list you the ten latest entries,
|
||||||
|
|
||||||
everything that happened from the start of last year to the start of last march.
|
everything that happened from the start of last year to the start of last march.
|
||||||
|
|
||||||
|
### Using Tags:
|
||||||
|
|
||||||
> __Note:__ _jrnl_ has to modes: __composing__ and __viewing__. The mode depends on which arguments (starting with `-`) you specify. If no arguments are given, _jrnl_ will guess the mode: if all the input looks like tags, it will switch to viewing mode and filter by the specified tags., such as in
|
Keep track of people, projects or locations, by tagging them with an `@` in your entries:
|
||||||
>
|
|
||||||
> jrnl @WorldDomination
|
|
||||||
>
|
|
||||||
> If there is some non-argument input, _jrnl_ will treat it as a new entry, such as in
|
|
||||||
>
|
|
||||||
> jrnl july 4th: Aliens blew up the white house.
|
|
||||||
>
|
|
||||||
> If there is no input, you can still go to viewing mode by just hitting `return` when prompted to compose an entry.
|
|
||||||
|
|
||||||
|
jrnl Had a wonderful day on the #beach with @Tom and @Anna.
|
||||||
### Tagging:
|
|
||||||
|
|
||||||
Keep track of people, projects or locations, by tagging them with an `@`:
|
|
||||||
|
|
||||||
Wonderful day on the #beach with @Tom and @Anna.
|
|
||||||
|
|
||||||
You can filter your journal entries just like this:
|
You can filter your journal entries just like this:
|
||||||
|
|
||||||
jrnl @pinkie @WorldDomination
|
jrnl @pinkie @WorldDomination
|
||||||
|
|
||||||
Will print all entries in which either `@pinkie` or `@WorldDomination` occured;
|
Will print all entries in which either `@pinkie` or `@WorldDomination` occurred.
|
||||||
|
|
||||||
jrnl -n 5 -and @pineapple @lubricant
|
jrnl -n 5 -and @pineapple @lubricant
|
||||||
|
|
||||||
the last five entries containing both `@pineapple` _and_ `@lubricant`. You can change which symbols you'd like to use for tagging in the configuration.
|
the last five entries containing both `@pineapple` __and__ `@lubricant`. You can change which symbols you'd like to use for tagging in the configuration.
|
||||||
|
|
||||||
### JSON Export
|
> __Note:__ `jrnl @pinkie @WorldDomination` will switch to viewing mode because although now command line arguments are given, all the input strings look like tags - _jrnl_ will assume you want to filter by tag.
|
||||||
|
|
||||||
Can do:
|
### Smart timestamps:
|
||||||
|
|
||||||
jrnl -json
|
Timestamps that work:
|
||||||
|
|
||||||
|
* at 6am
|
||||||
|
* yesterday
|
||||||
|
* last monday
|
||||||
|
* sunday at noon
|
||||||
|
* 2 march 2012
|
||||||
|
* 7 apr
|
||||||
|
* 5/20/1998 at 23:42
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
------------
|
------------
|
||||||
|
@ -88,10 +85,18 @@ Afterwards, you may want to create an alias in your `.bashrc` or `.bash_profile`
|
||||||
|
|
||||||
alias jrnl="jrnl.py"
|
alias jrnl="jrnl.py"
|
||||||
|
|
||||||
Advanced configuration
|
### Known Issues
|
||||||
----------------------
|
|
||||||
|
|
||||||
The first time launched, _jrnl_ will create a file called `.jrnl_config` in your home directory. It's just a regular `json` file:
|
_jrnl_ relies on the `Crypto` package to encrypt journals, which has some known problems in automatically installing within virtual environments.
|
||||||
|
|
||||||
|
Advanced usage
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The first time launched, _jrnl_ will create a file called `.jrnl_config` in your home directory.
|
||||||
|
|
||||||
|
### .jrnl_config
|
||||||
|
|
||||||
|
It's just a regular `json` file:
|
||||||
|
|
||||||
{
|
{
|
||||||
journal: "~/journal.txt",
|
journal: "~/journal.txt",
|
||||||
|
@ -122,3 +127,13 @@ The first time launched, _jrnl_ will create a file called `.jrnl_config` in your
|
||||||
> jrnl "Implemented endless scrolling on the #frontend of our website."
|
> jrnl "Implemented endless scrolling on the #frontend of our website."
|
||||||
>
|
>
|
||||||
> 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.
|
||||||
|
|
||||||
|
### Encryption
|
||||||
|
|
||||||
|
Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm and the passwords you entered when running _jrnl_ for the first time. Since AES requires keys to be a multiple of 16 characters, passwords will be padded with trailing white spaces before using it to encrypt or decrypt your journal. Sow, if your password is `rosebud` (which I hope it isn't), the key with which to decrypt your journal is `rosebud_________` (the underscores represent whitespaces).
|
||||||
|
|
||||||
|
### JSON export
|
||||||
|
|
||||||
|
Can do:
|
||||||
|
|
||||||
|
jrnl -json
|
||||||
|
|
78
index.html
78
index.html
|
@ -65,11 +65,13 @@
|
||||||
|
|
||||||
<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>
|
||||||
|
|
||||||
<h2>Why keep a journal?</h2>
|
<p>Optionally, your journal can be encrypted using AES encryption</p>
|
||||||
|
|
||||||
|
<h3>Why keep a journal?</h3>
|
||||||
|
|
||||||
<p>Journals aren't only for 13-year old girls and people who have too much time on their summer vacation. A journal helps you to keep track of the things you get done and how you did them. Your imagination may be limitless, but your memory isn't. For personal use, make it a good habit to write at least 20 words a day. Just to reflect what made this day special, why you haven't wasted it. For professional use, consider a text-based journal to be the perfect complement to your GTD todo list - a documentation of what and how you've done it.</p>
|
<p>Journals aren't only for 13-year old girls and people who have too much time on their summer vacation. A journal helps you to keep track of the things you get done and how you did them. Your imagination may be limitless, but your memory isn't. For personal use, make it a good habit to write at least 20 words a day. Just to reflect what made this day special, why you haven't wasted it. For professional use, consider a text-based journal to be the perfect complement to your GTD todo list - a documentation of what and how you've done it.</p>
|
||||||
|
|
||||||
<h2>How to use?</h2>
|
<h2>In a Nutshell</h2>
|
||||||
|
|
||||||
<p>to make a new entry, just type</p>
|
<p>to make a new entry, just type</p>
|
||||||
|
|
||||||
|
@ -78,15 +80,15 @@
|
||||||
|
|
||||||
<p>and hit return. <code>yesterday:</code> will be interpreted as a timestamp. Everything until the first sentence mark (<code>.?!</code>) will be interpreted as the title, the rest as the body. In your journal file, the result will look like this:</p>
|
<p>and hit return. <code>yesterday:</code> will be interpreted as a timestamp. Everything until the first sentence mark (<code>.?!</code>) will be interpreted as the title, the rest as the body. In your journal file, the result will look like this:</p>
|
||||||
|
|
||||||
<pre><code>2012-03-29 09:0 Called in sick.
|
<pre><code>2012-03-29 09:00 Called in sick.
|
||||||
Used the time to clean the house and spent 4h on writing my book.
|
Used the time to clean the house and spent 4h on writing my book.
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
<p>If you just call <code>jrnl</code>, you will be prompted to compose your entry - but you can also configure <em>jrnl</em> to use your external editor.</p>
|
<p>If you just call <code>jrnl</code>, you will be prompted to compose your entry - but you can also configure <em>jrnl</em> to use your external editor.</p>
|
||||||
|
|
||||||
<h3>Smart timestamps:</h3>
|
<h2>Usage</h2>
|
||||||
|
|
||||||
<p>If we start our entry by e.g. <code>yesterday:</code> or <code>last week monday at 9am:</code> the entry's date will automatically be adjusted. </p>
|
<p><em>jrnl</em> has to modes: <strong>composing</strong> and <strong>viewing</strong>. </p>
|
||||||
|
|
||||||
<h3>Viewing:</h3>
|
<h3>Viewing:</h3>
|
||||||
|
|
||||||
|
@ -100,25 +102,11 @@ Used the time to clean the house and spent 4h on writing my book.
|
||||||
|
|
||||||
<p>everything that happened from the start of last year to the start of last march. </p>
|
<p>everything that happened from the start of last year to the start of last march. </p>
|
||||||
|
|
||||||
<blockquote>
|
<h3>Using Tags:</h3>
|
||||||
<p><strong>Note:</strong> <em>jrnl</em> has to modes: <strong>composing</strong> and <strong>viewing</strong>. The mode depends on which arguments (starting with <code>-</code>) you specify. If no arguments are given, <em>jrnl</em> will guess the mode: if all the input looks like tags, it will switch to viewing mode and filter by the specified tags., such as in</p>
|
|
||||||
|
|
||||||
<pre><code>jrnl @WorldDomination
|
<p>Keep track of people, projects or locations, by tagging them with an <code>@</code> in your entries:</p>
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
<p>If there is some non-argument input, <em>jrnl</em> will treat it as a new entry, such as in</p>
|
<pre><code>jrnl Had a wonderful day on the #beach with @Tom and @Anna.
|
||||||
|
|
||||||
<pre><code>jrnl july 4th: Aliens blew up the white house.
|
|
||||||
</code></pre>
|
|
||||||
|
|
||||||
<p>If there is no input, you can still go to viewing mode by just hitting <code>return</code> when prompted to compose an entry.</p>
|
|
||||||
</blockquote>
|
|
||||||
|
|
||||||
<h3>Tagging:</h3>
|
|
||||||
|
|
||||||
<p>Keep track of people, projects or locations, by tagging them with an <code>@</code>:</p>
|
|
||||||
|
|
||||||
<pre><code>Wonderful day on the #beach with @Tom and @Anna.
|
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
<p>You can filter your journal entries just like this:</p>
|
<p>You can filter your journal entries just like this:</p>
|
||||||
|
@ -126,19 +114,30 @@ Used the time to clean the house and spent 4h on writing my book.
|
||||||
<pre><code>jrnl @pinkie @WorldDomination
|
<pre><code>jrnl @pinkie @WorldDomination
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
<p>Will print all entries in which either <code>@pinkie</code> or <code>@WorldDomination</code> occured;</p>
|
<p>Will print all entries in which either <code>@pinkie</code> or <code>@WorldDomination</code> occurred.</p>
|
||||||
|
|
||||||
<pre><code>jrnl -n 5 -and @pineapple @lubricant
|
<pre><code>jrnl -n 5 -and @pineapple @lubricant
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
<p>the last five entries containing both <code>@pineapple</code> <em>and</em> <code>@lubricant</code>. You can change which symbols you'd like to use for tagging in the configuration.</p>
|
<p>the last five entries containing both <code>@pineapple</code> <strong>and</strong> <code>@lubricant</code>. You can change which symbols you'd like to use for tagging in the configuration.</p>
|
||||||
|
|
||||||
<h3>JSON Export</h3>
|
<blockquote>
|
||||||
|
<p><strong>Note:</strong> <code>jrnl @pinkie @WorldDomination</code> will switch to viewing mode because although now command line arguments are given, all the input strings look like tags - <em>jrnl</em> will assume you want to filter by tag. </p>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
<p>Can do:</p>
|
<h3>Smart timestamps:</h3>
|
||||||
|
|
||||||
<pre><code>jrnl -json
|
<p>Timestamps that work:</p>
|
||||||
</code></pre>
|
|
||||||
|
<ul>
|
||||||
|
<li>at 6am</li>
|
||||||
|
<li>yesterday</li>
|
||||||
|
<li>last monday</li>
|
||||||
|
<li>sunday at noon</li>
|
||||||
|
<li>2 march 2012</li>
|
||||||
|
<li>7 apr</li>
|
||||||
|
<li>5/20/1998 at 23:42</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<h2>Installation</h2>
|
<h2>Installation</h2>
|
||||||
|
|
||||||
|
@ -159,9 +158,17 @@ python setup.py install
|
||||||
<pre><code>alias jrnl="jrnl.py"
|
<pre><code>alias jrnl="jrnl.py"
|
||||||
</code></pre>
|
</code></pre>
|
||||||
|
|
||||||
<h2>Advanced configuration</h2>
|
<h3>Known Issues</h3>
|
||||||
|
|
||||||
<p>The first time launched, <em>jrnl</em> will create a file called <code>.jrnl_config</code> in your home directory. It's just a regular <code>json</code> file:</p>
|
<p><em>jrnl</em> relies on the <code>Crypto</code> package to encrypt journals, which has some known problems in automatically installing within virtual environments.</p>
|
||||||
|
|
||||||
|
<h2>Advanced usage</h2>
|
||||||
|
|
||||||
|
<p>The first time launched, <em>jrnl</em> will create a file called <code>.jrnl_config</code> in your home directory.</p>
|
||||||
|
|
||||||
|
<h3>.jrnl_config</h3>
|
||||||
|
|
||||||
|
<p>It's just a regular <code>json</code> file:</p>
|
||||||
|
|
||||||
<pre><code>{
|
<pre><code>{
|
||||||
journal: "~/journal.txt",
|
journal: "~/journal.txt",
|
||||||
|
@ -199,6 +206,17 @@ 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>Encryption</h3>
|
||||||
|
|
||||||
|
<p>Should you ever want to decrypt your journal manually, you can do so with any program that supports the AES algorithm and the passwords you entered when running <em>jrnl</em> for the first time. Since AES requires keys to be a multiple of 16 characters, passwords will be padded with trailing white spaces before using it to encrypt or decrypt your journal. Sow, if your password is <code>rosebud</code> (which I hope it isn't), the key with which to decrypt your journal is <code>rosebud_________</code> (the underscores represent whitespaces).</p>
|
||||||
|
|
||||||
|
<h3>JSON export</h3>
|
||||||
|
|
||||||
|
<p>Can do:</p>
|
||||||
|
|
||||||
|
<pre><code>jrnl -json
|
||||||
|
</code></pre>
|
||||||
|
|
||||||
</div> <!-- /span10 -->
|
</div> <!-- /span10 -->
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
Loading…
Add table
Reference in a new issue