Feature: Custom formats Scenario: JSON format Given we use the config "tags.yaml" When we run "jrnl --export json" Then we should get no error And the output should be parsable as json And "entries" in the json output should have 2 elements And "tags" in the json output should contain "@idea" And "tags" in the json output should contain "@journal" And "tags" in the json output should contain "@dan" And entry 1 should have an array "tags" with 2 elements And entry 2 should have an array "tags" with 2 elements Scenario: Exporting using filters should only export parts of the journal Given we use the config "tags.yaml" When we run "jrnl -until 'may 2013' --export json" Then the output should be parsable as json And "entries" in the json output should have 1 element And "tags" in the json output should contain "@idea" And "tags" in the json output should contain "@journal" And "tags" in the json output should not contain "@dan" Scenario: Exporting using custom templates Given we use the config "basic.yaml" And we load template "sample.template" When we run "jrnl --export sample" Then the output should be """ My first entry. --------------- Everything is alright Life is good. ------------- But I'm better. """ Scenario: Increasing Headings on Markdown export Given we use the config "markdown-headings-335.yaml" When we run "jrnl --export markdown" Then the output should be """ # 2015 ## April ### 2015-04-14 13:23 Heading Test #### H1-1 #### H1-2 #### H1-3 ##### H2-1 ##### H2-2 ##### H2-3 Horizontal Rules (ignore) --- === #### ATX H1 ##### ATX H2 ###### ATX H3 ####### ATX H4 ######## ATX H5 ######### ATX H6 Stuff More stuff more stuff again """ # 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 if there isn't one already # https://github.com/jrnl-org/jrnl/issues/768 # https://github.com/jrnl-org/jrnl/issues/881 Given we use the config "deletion.yaml" When we run "jrnl --format 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. """ Scenario: Exporting to XML Given we use the config "tags.yaml" When we run "jrnl --export xml" Then the output should be a valid XML string And "entries" node in the xml output should have 2 elements And "tags" in the xml output should contain ["@idea", "@journal", "@dan"] And there should be 7 "tag" elements Scenario: Exporting tags Given we use the config "tags.yaml" When we run "jrnl --export tags" Then the output should be """ @idea : 2 @journal : 1 @dan : 1 """ Scenario: Exporting fancy Given we use the config "tags.yaml" When we run "jrnl --export fancy" Then the output should be """ ┎──────────────────────────────────────────────────────────────╮2013-04-09 15:39 ┃ I have an @idea: ╘═══════════════╕ ┠╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ ┃ (1) write a command line @journal software │ ┃ (2) ??? │ ┃ (3) PROFIT! │ ┖──────────────────────────────────────────────────────────────────────────────┘ ┎──────────────────────────────────────────────────────────────╮2013-06-10 15:40 ┃ I met with @dan. ╘═══════════════╕ ┠╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ ┃ As alway's he shared his latest @idea on how to rule the world with me. │ ┃ inst │ ┖──────────────────────────────────────────────────────────────────────────────┘ """ Scenario: Export to yaml Given we use the config "tags.yaml" And we create cache directory "exported_journal" When we run "jrnl --export yaml -o {cache_dir}" with cache directory "exported_journal" Then cache directory "exported_journal" should contain the files """ [ "2013-04-09_i-have-an-idea.md", "2013-06-10_i-met-with-dan.md" ] """ And the content of file "2013-04-09_i-have-an-idea.md" in cache directory "exported_journal" should be """ title: I have an @idea: date: 2013-04-09 15:39 starred: False tags: idea, journal (1) write a command line @journal software (2) ??? (3) PROFIT! """ Scenario: Add a blank line to YAML export if there isn't one already # https://github.com/jrnl-org/jrnl/issues/768 # https://github.com/jrnl-org/jrnl/issues/881 Given we use the config "deletion.yaml" And we create cache directory "bug768" When we run "jrnl --export yaml -o {cache_dir}" with cache directory "bug768" Then cache directory "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 file "2019-10-29_third-entry.md" in cache directory "bug768" should be """ title: Third entry. date: 2019-10-29 11:13 starred: False tags: """