Applying doc changes based on reviews of past several documentation PRs

This commit is contained in:
Micah Jerome Ellison 2020-08-22 13:00:00 -07:00
parent 29234ddc35
commit 353b3d9fb2
3 changed files with 31 additions and 43 deletions

View file

@ -6,14 +6,9 @@ Github._
`jrnl` is a simple journal application for the command line. `jrnl` is a simple journal application for the command line.
Its goal is to facilitate the rapid creation and viewing of journal entries. It You can use it to easily create, search, and view journal entries. Journals are
is flexible enough to support different use cases and organization strategies. stored as human-readable plain text, and can also be encrypted using [AES
It is powerful enough to search through thousands of entries and display, or encryption](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard).
"filter," only the entries you want to see.
`jrnl` includes support for [128-bit AES
encryption](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard) using
[cryptography.Fernet](https://cryptography.io/en/latest/fernet/).
## In a Nutshell ## In a Nutshell
@ -31,9 +26,8 @@ the rest as the body. In your journal file, the result will look like this:
[2012-03-29 09:00] Called in sick. [2012-03-29 09:00] Called in sick.
Used the time to clean the house and write my book. Used the time to clean the house and write my book.
Entering `jrnl` without any arguments launches an external editor where you can If you just call `jrnl`, you will be prompted to compose your entry - but you
write your entry. `jrnl` will generate a time stamp for the entry after you save can also configure _jrnl_ to use your external editor.
and close the editor window.
For more information, please read the For more information, please read the
[documentation](https://jrnl.sh/overview/). [documentation](https://jrnl.sh/overview/).
@ -61,7 +55,7 @@ src="https://opencollective.com/jrnl/contributors.svg?width=890&button=false"
If you'd also like to help make `jrnl` better, please see our [contributing If you'd also like to help make `jrnl` better, please see our [contributing
documentation](CONTRIBUTING.md). documentation](CONTRIBUTING.md).
## Financial Backers ### Financial Backers
Another way show support is through direct financial contributions. These funds Another way show support is through direct financial contributions. These funds
go to covering our costs, and are a quick way to show your appreciation for go to covering our costs, and are a quick way to show your appreciation for

View file

@ -7,23 +7,6 @@ real world. There are a number of ways that people can at least partially
compromise your `jrnl` data. See the [Privacy and Security](./security.md) page compromise your `jrnl` data. See the [Privacy and Security](./security.md) page
for more information. for more information.
## Dependencies
As of version 2.0, `jrnl`'s encryption functions require
[`cryptography`](https://pypi.org/project/cryptography/), which is available in
the Python Package Index (PyPI) and can be installed using `pip`:
``` sh
pip3 install cryptography
```
Previous versions of `jrnl` require
[`pycrypto`](https://pypi.org/project/pycrypto/):
```sh
pip3 install pycrypto
```
## Encrypting and Decrypting ## Encrypting and Decrypting
Existing plain text journal files can be encrypted using the `--encrypt` Existing plain text journal files can be encrypted using the `--encrypt`
@ -52,7 +35,7 @@ encrypted file untouched and create a new plain text file next to it.
## Storing Passwords in Your Keychain ## Storing Passwords in Your Keychain
There is no method to recover or reset your `jrnl` password. If you lose it, You can't recover or reset your `jrnl` password. If you lose it,
your data will be inaccessible forever. your data will be inaccessible forever.
For this reason, when encrypting a journal, `jrnl` asks whether you would like For this reason, when encrypting a journal, `jrnl` asks whether you would like
@ -66,7 +49,8 @@ same password again. This will trigger the keychain storage prompt.
## Manual Decryption ## Manual Decryption
Should you ever want to decrypt your journal manually, you can do so with any The easiest way to decrypt your journal is with `jrnl --decrypt`, but
if you would like to decrypt your journal manually, you can do so with any
program that supports the AES algorithm in CBC. The key used for encryption is program that supports the AES algorithm in CBC. The key used for encryption is
the SHA-256 hash of your password. The IV (initialization vector) is stored in the SHA-256 hash of your password. The IV (initialization vector) is stored in
the first 16 bytes of the encrypted file. The plain text is encoded in UTF-8 and the first 16 bytes of the encrypted file. The plain text is encoded in UTF-8 and
@ -106,6 +90,12 @@ key = base64.urlsafe_b64encode(kdf.derive(password))
print(Fernet(key).decrypt(ciphertext).decode('utf-8')) print(Fernet(key).decrypt(ciphertext).decode('utf-8'))
``` ```
To run the above script, you'll need [`cryptography`](https://pypi.org/project/cryptography/), which you can install with `pip`:
``` sh
pip3 install cryptography
```
If you're still using `jrnl` version 1.X, the following script serves the same If you're still using `jrnl` version 1.X, the following script serves the same
purpose: purpose:
@ -134,3 +124,10 @@ plain = plain.strip(plain[-1:])
plain = plain.decode("utf-8") plain = plain.decode("utf-8")
print(plain) print(plain)
``` ```
This script requires
[`pycrypto`](https://pypi.org/project/pycrypto/):
```sh
pip3 install pycrypto
```

View file

@ -2,16 +2,15 @@
`jrnl` is a simple journal application for the command line. `jrnl` is a simple journal application for the command line.
`jrnl`'s goal is to facilitate the rapid creation and viewing of journal You can use it to easily create, search, and view journal entries. Journals are
entries. It is flexible enough to support different use cases and organization stored as human-readable plain text, and can also be encrypted using [AES
strategies. It is powerful enough to search through thousands of entries and encryption](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard).
display, or "filter," only the entries you want to see.
`jrnl` has most of the features you need, and few of the ones you don't. `jrnl` has most of the features you need, and few of the ones you don't.
## Plain Text ## Plain Text
`jrnl` stores each journal in plain text. `jrnl` files can be stored anywhere, `jrnl` stores each journal in plain text. You can store `jrnl` files anywhere,
including in shared folders to keep them synchronized between devices. Journal including in shared folders to keep them synchronized between devices. Journal
files are compact (thousands of entries take up less than 1 MiB) and can be read files are compact (thousands of entries take up less than 1 MiB) and can be read
by almost any electronic device, now and for the foreseeable future. by almost any electronic device, now and for the foreseeable future.
@ -38,11 +37,9 @@ to the external editor of your choice.
## Encryption ## Encryption
`jrnl` includes support for [128-bit AES `jrnl` includes support for [AES
encryption](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard) using encryption](http://en.wikipedia.org/wiki/Advanced_Encryption_Standard). See the
[cryptography.Fernet](https://cryptography.io/en/latest/fernet/). The [encryption page](./encryption.md) for more information.
[encryption page](./encryption.md) explains `jrnl`'s cryptographic framework in
more detail.
## Import and Export ## Import and Export
@ -51,8 +48,8 @@ be [exported](./export.md) in a variety of formats.
## Multi-Platform Support ## Multi-Platform Support
`jrnl` is compatible with most operating systems. Pre-compiled binaries are `jrnl` is compatible with most operating systems. You can download it using one
available through several distribution channels, and you can build from source. of a variety of package managers, or you can build from source.
See the [installation page](./installation.md) for more information. See the [installation page](./installation.md) for more information.
## Open-Source ## Open-Source