Skip to content

Commit

Permalink
Add display format option to config file. (#1050)
Browse files Browse the repository at this point in the history
* Add display format option to config file.
* Add tests.
* Fix `black` error.
* Change nested if to top level.
  • Loading branch information
joaquingx authored and wren committed Oct 18, 2020
1 parent 05d0a0c commit 8c2de0e
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 2 deletions.
3 changes: 3 additions & 0 deletions docs/advanced.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ and can be edited with a plain text editor.
controls the width of the output. Set to `false` if you don't want to wrap long lines.
- `colors`
dictionary that controls the colors used to display journal entries. It has four subkeys, which are: `body`, `date`, `tags`, and `title`. Current valid values are: `BLACK`, `RED`, `GREEN`, `YELLOW`, `BLUE`, `MAGENTA`, `CYAN`, `WHITE`, and `NONE`. `colorama.Fore` is used for colorization, and you can find the [docs here](https://github.com/tartley/colorama#colored-output). To disable colored output, set the value to `NONE`. If you set the value of any color subkey to an invalid color, no color will be used.
- `display_format`
specifies formatter to use, formatters available are:
`boxed`, `fancy`, `json`, `markdown`, `md`, `tags`, `text`, `txt`, `xml`, or `yaml`.

!!! note
Although it seems intuitive to use the `#`
Expand Down
19 changes: 19 additions & 0 deletions features/data/configs/format_md.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
colors:
body: none
date: none
tags: none
title: none
default_hour: 9
default_minute: 0
display_format: markdown
editor: ''
encrypt: false
highlight: true
indent_character: '|'
journals:
default: features/journals/simple.journal
linewrap: 80
tagsymbols: '@'
template: false
timeformat: '%Y-%m-%d %H:%M'
version: v2.4.5
19 changes: 19 additions & 0 deletions features/data/configs/format_text.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
colors:
body: none
date: none
tags: none
title: none
default_hour: 9
default_minute: 0
display_format: text
editor: ''
encrypt: false
highlight: true
indent_character: '|'
journals:
default: features/journals/simple.journal
linewrap: 80
tagsymbols: '@'
template: false
timeformat: '%Y-%m-%d %H:%M'
version: v2.4.5
23 changes: 23 additions & 0 deletions features/format.feature
Original file line number Diff line number Diff line change
Expand Up @@ -512,3 +512,26 @@ Feature: Custom formats
| basic_encrypted |
| basic_folder |
| basic_dayone |

Scenario: Markdown Support from config file
Given we use the config "format_md.yaml"
When we run "jrnl -n 1"
Then the output should be
"""
# 2013
## June
### 2013-06-10 15:40 Life is good.
But I'm better.
"""

Scenario: Text Formatter from config file
Given we use the config "format_text.yaml"
When we run "jrnl -n 1"
Then the output should be
"""
[2013-06-10 15:40] Life is good.
But I'm better.
"""
5 changes: 3 additions & 2 deletions jrnl/jrnl.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,8 @@ def _display_search_results(args, journal, **kwargs):
elif args.export:
exporter = plugins.get_exporter(args.export)
print(exporter.export(journal, args.filename))

elif kwargs["config"].get("display_format"):
exporter = plugins.get_exporter(kwargs["config"]["display_format"])
print(exporter.export(journal, args.filename))
else:
# Default display mode
print(journal.pprint())

0 comments on commit 8c2de0e

Please sign in to comment.