* More refactoring of cli.py
break up code from cli.py (now in jrnl.py) up into smaller functions
get rid of export mode
move --encrypt and --decrypt to commands.py
clean up the help screen even more
update flag name for import
* reorganize code, move around lots of functions
* clean up import statements
* move run function out of cli and into jrnl
* rename confusingly named function
* move editor function into editor file
* rename parse_args.py to args.py to make room for more args functions
* Fix error in test suite for windows
I accidentally flipped the conditional, so this fixes it.
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
* Update app description on help screen
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
If a date was given with an entry, and the star was also was added, the
star wouldn't be recognized if it was at the start of the title.
Example that didn't work, but now works with this fix:
jrnl "saturday: *Title words."
This is to be consistent in starring functionality with and without a
date in the entry.
* add test to repro issue #955
* Allow editing of DayOne entries
* Add broken test for Dayone
Add test for editing Dayone entries (this test currently fails)
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
* Fix editing logic for DayOneJournal
DayOneJournal previously reimplemented Journal._parse inside of
DayOneJournal.parse_editable_string, and in doing so caused issues
between itself and the class it was inheriting from. This commit fixes
the issue by moving the UUID to be in the body of the entry, rather than
above it. So, then Journal._parse still finds the correct boundaries
between entries, and DayOneJournal then parses the UUID afterward.
Co-authored-by: MinchinWeb <w_minchin@hotmail.com>
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
* Add Python version check and faulty test to confirm it's working (should fail on 3.6 build only)
* Apply formatting
* Fix behave Python version test
* Make error message more descriptive and friendly
* Updating changelog [ci skip]
* Incrementing version to v2.4 [ci skip]
* [DayOne] remove extra spaces from the titles of edited DayOne entries
Otherwise, a leading space was being introduced
* [DayOne] maintain existing tags stored in DayOne metadata
* [DayOne] brings back extended DayOne attributes
* [DayOne] maintain metadata on edited entries
Fixes#358, See also #159
* [DayOne Exporter] apply black formatting
* [JSON Exporter] add support for extended DayOne Metadata
* [DayOne] [Tests] test that extended DayOne metadata is added to new entries
Co-authored-by: Jrnl Bot <jrnl.bot@gmail.com>
* remove period parsing in title
* fix title splitter
* revert title-body switch
* keep both splitting types
* make black happy
* make it lstrip not strip
* fix title-body order for the last time
* make black happy again
* added test
* second test for single line entry with punctuation
* delete extra blank lines
* Fix editor config when an argument with a space is used
* skip broken test on windows
* fix jrnl not behaving nicely with testing suite
* fix argument parsing for test suite
* fix one windows test, disable one windows test
This adds the ability to run commands in a cache directory without the
test writer knowing where the cache directory is located. This will let
us expand later if we want to start using system temp folders, without
having to rewrite any of our tests.
* clean up extra directories after running behave
* clean up white space issues
* move repeated code into function
* clean up behave code for creating cache directories
* Fix for windows shell parsing in our test suite
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
* Prevent filtered deletion from deleting entire journal #932 and add lots of deletion tests
* Undo removal of deletion feature
* Use more performant deletion
* [Markdown Exporter] [YAML Exporter] Ensure exported entires end in a newline
Fixes#768, Fixes#881.
If the exported entry does not have a final empty line, this will add one on export. Some Markdown parsers get picky about not having a empty line above a heading....
* fix black formatting issues
* explicitly sort filenames
to deal with inconsistent default file ordering on different OS's
* Update .gitignore
* Update test for typo fix
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
* [Tests] makes sure `--version` works
Directly reads the version number from pyproject.toml
* Tag the tests
To run just this test, use `behave --tags=deployments_tests`
* Add --delete for interactive removal of entries
* Add inquirer dependency for fancy prompting
* Fix some minor style issues
* Fix#434
* Use PyInquirer instead of inquirer for Windows compatibility
* Add WIP (broken) test
* Change deletion interface to be more basic
* Update environment.py
Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
* 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
Update FolderJournal reference to entry __unicode__ method to __str__
Remove DayOne test made obsolete by FolderJournal
Fix FolderJournal path tests for Windows paths
Apply Black linting
Adds feature for issue #170 (and #398) where you configure your journal to
be a directory and entries are added as sub-directories and files:
yyyy/mm/dd.txt. Multiple entries in a day will go in the same file, but a
new entry for a specific day will create a new file (and directory
structure).
Fix failed test scenarios for folder journal.
* Reproduce bug in #780🎵 I have no body, no body to love me... 🎵
The bug is cause by a DayOne entry that has to entry body.
* Deal with empty bodies
Close#780.
* [Travis-CI] add "tree" command to debug missing files
* Fix file location
I have no idea why, but it ran locally fine without issue. Travis is more particular...
* [Dayone] don't break if the system timezone is UTC
* [DayOne] re-enable tests that were failing on Travis
* [DayOne] change as per code review to avoid `except: pass`
[Travis] add a linting stage (via `black`)
[Travis] update as per code review
Remove "Lint" as separate stage; have `black` check the output rather
than run the re-formmater