diff --git a/.gitignore b/.gitignore index 2382cabe..47ae68f0 100644 --- a/.gitignore +++ b/.gitignore @@ -42,12 +42,15 @@ obj # virtaulenv env/ env*/ +venv*/ # PyCharm Project files .idea/ -# export testing director +# export testing directories exp/ +bug768/ +exported_journal/ _extras/ *.sublime-* diff --git a/features/regression.feature b/features/regression.feature index 5aa1db06..ac555aab 100644 --- a/features/regression.feature +++ b/features/regression.feature @@ -122,3 +122,40 @@ Feature: Zapped bugs should stay dead. Then the output should contain "This thing happened yesterday" Then the output should contain "Adding an entry right now." Then the output should not contain "A future entry." + + # See issues #768 and #881 + # the "deletion" journal is used because it doesn't have a newline at the + # end of the last entry + Scenario: Add a blank line to Markdown export is there isn't one already + Given we use the config "deletion.yaml" + When we run "jrnl --export markdown" + Then the output should be + """ + # 2019 + + ## October + + ### 2019-10-29 11:11 First entry. + + + ### 2019-10-29 11:11 Second entry. + + + ### 2019-10-29 11:13 Third entry. + + """ + + # See issues #768 and #881 + Scenario: Add a blank line to YAML export is there isn't one already + Given we use the config "deletion.yaml" + And we created a directory named "bug768" + When we run "jrnl --export yaml -o bug768" + Then "bug768" should contain the files ["2019-10-29_first-entry.md", "2019-10-29_second-entry.md", "2019-10-29_third-entry.md"] + And the content of exported yaml "bug768/2019-10-29_third-entry.md" should be + """ + title: Third entry. + date: 2019-10-29 11:13 + stared: False + tags: + + """ diff --git a/jrnl/plugins/markdown_exporter.py b/jrnl/plugins/markdown_exporter.py index 14060ce9..6902ec0f 100644 --- a/jrnl/plugins/markdown_exporter.py +++ b/jrnl/plugins/markdown_exporter.py @@ -54,6 +54,10 @@ class MarkdownExporter(TextExporter): previous_line = line newbody = newbody + previous_line # add very last line + # make sure the export ends with a blank line + if previous_line not in ['\r', '\n', '\r\n', '\n\r']: + newbody = newbody + os.linesep + if warn_on_heading_level is True: print( f"{WARNING_COLOR}WARNING{RESET_COLOR}: " diff --git a/jrnl/plugins/yaml_exporter.py b/jrnl/plugins/yaml_exporter.py index 430b68f7..e2456e74 100644 --- a/jrnl/plugins/yaml_exporter.py +++ b/jrnl/plugins/yaml_exporter.py @@ -66,6 +66,10 @@ class YAMLExporter(TextExporter): previous_line = line newbody = newbody + previous_line # add very last line + # make sure the export ends with a blank line + if previous_line not in ['\r', '\n', '\r\n', '\n\r']: + newbody = newbody + os.linesep + if warn_on_heading_level is True: print( "{}WARNING{}: Headings increased past H6 on export - {} {}".format(