mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
* Pretty print journal entry titles and dates. Changes appearance of all jrnl viewing commands, such as $ jrnl --short and $ jrnl -n {NUM}. Fix #508 * Removed extra newline at end of title * Use ansiwrap to properly wrap strings with ANSI escapes * Add ansiwrap to pyproject.toml * Allow configuration of colors - Replaced raw escapes with colorama - Added colors key to config - Add checks for validity of color values * Add color configuration documentation * Fix broken tests due to config change * Add tests for colors in configs - Identifying invalid color configs - Upgrading config from no colors -> colors * Add colorama dependency for all platforms * Allow users to disable colorization of output * Update poetry.lock * Add tag and body color customization options * Fix colorization of tags in title and body * Updated tests to use no color by default * Change pass to continue in verify_config() * Better style in Entry.py * Reduce code duplication for tag highlighting - Breaks "unreadable date" regression test for unknown reason * Properly colorize tags and print body * Reformatting and clean up * Replace list comprehension with generator * Handle invalid colors by not using a color * Process ANSI escapes properly with behave * Fixed the 'spaces after tags directly next to punctuation' bug Broke processing of tags next to any punctuation at all * Closer to working tag colorization but not perfect * Add tests printing for multiline journals Fix #717 * Correctly indent first line of multiline entry * Add test for multiline entries with tags * Remove redundant UNICODE flag * Progress towards proper tag colorization and body formatting * Fix newline colorization bug Debug code left intact since there are more bugs to fix :/ * And now the space just ends up before the tag instead of after it * Fix assertion syntax warning * Moved tag test to tagging.feature file * Strip out debug code and clean up * Bold datetimes in title * Bold all titles Fix #720 * Remove PY2 and PY3 constants * Fix regression in features/steps/core.py * Fix tag_regex * Remove redundant re.UNICODE flag * Remove extraneous code
100 lines
No EOL
3.5 KiB
Gherkin
100 lines
No EOL
3.5 KiB
Gherkin
Feature: Tagging
|
|
|
|
Scenario: Displaying tags
|
|
Given we use the config "tags.yaml"
|
|
When we run "jrnl --tags"
|
|
Then we should get no error
|
|
and the output should be
|
|
"""
|
|
@idea : 2
|
|
@journal : 1
|
|
@dan : 1
|
|
"""
|
|
|
|
Scenario: Filtering journals should also filter tags
|
|
Given we use the config "tags.yaml"
|
|
When we run "jrnl -from 'may 2013' --tags"
|
|
Then we should get no error
|
|
and the output should be
|
|
"""
|
|
@idea : 1
|
|
@dan : 1
|
|
"""
|
|
|
|
Scenario: Tags should allow certain special characters
|
|
Given we use the config "tags-216.yaml"
|
|
When we run "jrnl --tags"
|
|
Then we should get no error
|
|
and the output should be
|
|
"""
|
|
@os/2 : 1
|
|
@c++ : 1
|
|
@c# : 1
|
|
"""
|
|
Scenario: An email should not be a tag
|
|
Given we use the config "tags-237.yaml"
|
|
When we run "jrnl --tags"
|
|
Then we should get no error
|
|
and the output should be
|
|
"""
|
|
@newline : 1
|
|
@email : 1
|
|
"""
|
|
|
|
Scenario: Entry cans start and end with tags
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl today: @foo came over, we went to a @bar"
|
|
When we run "jrnl --tags"
|
|
Then the output should be
|
|
"""
|
|
@foo : 1
|
|
@bar : 1
|
|
"""
|
|
|
|
Scenario: Excluding a tag should filter it
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl today: @foo came over, we went to a bar"
|
|
When we run "jrnl I have decided I did not enjoy that @bar"
|
|
When we run "jrnl --tags -not @bar"
|
|
Then the output should be
|
|
"""
|
|
@foo : 1
|
|
"""
|
|
|
|
Scenario: Excluding a tag should filter an entry, even if an unfiltered tag is in that entry
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl today: I do @not think this will show up @thought"
|
|
When we run "jrnl today: I think this will show up @thought"
|
|
When we run "jrnl --tags -not @not"
|
|
Then the output should be
|
|
"""
|
|
@thought : 1
|
|
"""
|
|
|
|
Scenario: Excluding multiple tags should filter them
|
|
Given we use the config "basic.yaml"
|
|
When we run "jrnl today: I do @not think this will show up @thought"
|
|
When we run "jrnl today: I think this will show up @thought"
|
|
When we run "jrnl today: This should @never show up @thought"
|
|
When we run "jrnl today: What a nice day for filtering @thought"
|
|
When we run "jrnl --tags -not @not @never"
|
|
Then the output should be
|
|
"""
|
|
@thought : 2
|
|
"""
|
|
|
|
|
|
Scenario: Printing a journal that has multiline entries with tags
|
|
Given we use the config "multiline-tags.yaml"
|
|
When we run "jrnl -n 1"
|
|
Then we should get no error
|
|
and the output should be
|
|
"""
|
|
2013-06-09 15:39 Multiple @line entry with @tags.
|
|
| Tag with @punctuation. afterwards
|
|
| @TagOnLineAloneWithOutPunctuation
|
|
| @TagOnLineAloneWithPunctuation.
|
|
| Text before @tag. And After.
|
|
| @hi. Hello
|
|
| hi Hello
|
|
""" |