Add display format option to config file. (#1050)

* Add display format option to config file.
* Add tests.
* Fix `black` error.
* Change nested if to top level.
This commit is contained in:
joaquin garmendia 2020-10-17 18:14:16 -05:00 committed by Jonathan Wren
parent 05d0a0cc83
commit 8c2de0e6d7
No known key found for this signature in database
GPG key ID: 43D5FF8722E7F68A
5 changed files with 67 additions and 2 deletions

View file

@ -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. controls the width of the output. Set to `false` if you don't want to wrap long lines.
- `colors` - `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. 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 !!! note
Although it seems intuitive to use the `#` Although it seems intuitive to use the `#`

View file

@ -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

View file

@ -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

View file

@ -512,3 +512,26 @@ Feature: Custom formats
| basic_encrypted | | basic_encrypted |
| basic_folder | | basic_folder |
| basic_dayone | | 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.
"""

View file

@ -300,7 +300,8 @@ def _display_search_results(args, journal, **kwargs):
elif args.export: elif args.export:
exporter = plugins.get_exporter(args.export) exporter = plugins.get_exporter(args.export)
print(exporter.export(journal, args.filename)) 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: else:
# Default display mode
print(journal.pprint()) print(journal.pprint())