* Moving configuration values and methods from install.py to config.py -- everything is broken right now
* Using context to store config path - still lots broken
* Use mocks and context.config_path to store test configs - many tests still broken though
* Update changelog [ci skip]
* Fix jrnl --ls crash
* Fix crash when no editor configured
* Attempt to patch config path with test data - doesn't appear to be working
* Properly use patched config path and add config given to scenario that wasn't using it
* Fix copypasta
* Fix editor test that needed patched config and trapping for system exit
* Add exception and handling for when configuration directory is actually a file
* Remove extraneous comment
* Use more generic JrnlError with messaging switchboard
* Format code a bit nicer
* Remove unnecessary given in diagnostic test
* Ensure full error message is output
* Remove unnecessary whitespace characters
* Create tests and steps for temporary filename suffix
* Have temporary filename suffix be -{template_filename} or .jrnl
* Finalize extension_editor_file
* Make suffix local variable in get_text_from_editor
* Update authors to "jrnl contributors" to comply with GPL3
* Include jrnl email address with contributors
* Include GPL notice in jrnl --version
* Apply consistent copyright and license to all Python files
* Add copyright and license to documentation
* Add copyright and license to docs theme
* Wiping poetry cache to try to resolve a test issue
* Testing with Python 3.9.0 in attempt to bypass GitHub Actions failure in 3.9.1
* make format
* Exclude Windows Python 3.9 build which is failing due to a GitHub Actions problem
* Modify testing to get around this 3.9 issue...
* Fix exclude
* Update version pin on pyxdg and run poetry update
* Update pytest pin and rerun poetry update
* Update black pin to latest version, poetry update, and make format
* disable logging by default (only enabled if --debug flag is given)
* Run make format
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
* 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.
Also, cleaned up the way the arg parser handles standalone commands.
Rather than checking individually for each command, you can now register
the command in the proper place, and it will be run with all known
arguments (and cofig if available).
* 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
* ask for password before adding entry (#799)
This fixes#799 because previously it would allow you to create an
entry using your editor and then attempt to open the journal. This
behaviour is fine for unencrypted journals but with encrypted journals
it means that if you get the password wrong three times then the entry
you just wrote is lost.
Swapping the order around so that the entry is opened first in the code
and then the editor is added means that this can't happen.