mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
Switch to hashmark Markdown headers on export
Closes #487 [Markdown Export] deal with linebreaks in jrnl files [YAML Exporter] apply fix just applied to Markdown Exporter
This commit is contained in:
parent
8abbdf4db5
commit
e14910c83f
3 changed files with 16 additions and 16 deletions
|
@ -42,11 +42,9 @@ Feature: Exporting a Journal
|
||||||
When we run "jrnl --export markdown"
|
When we run "jrnl --export markdown"
|
||||||
Then the output should be
|
Then the output should be
|
||||||
"""
|
"""
|
||||||
2015
|
# 2015
|
||||||
====
|
|
||||||
|
|
||||||
April
|
## April
|
||||||
-----
|
|
||||||
|
|
||||||
### 2015-04-14 13:23 Heading Test
|
### 2015-04-14 13:23 Heading Test
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
from __future__ import absolute_import, unicode_literals, print_function
|
from __future__ import absolute_import, unicode_literals, print_function
|
||||||
from .text_exporter import TextExporter
|
from .text_exporter import TextExporter
|
||||||
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from ..util import WARNING_COLOR, RESET_COLOR
|
from ..util import WARNING_COLOR, RESET_COLOR
|
||||||
|
@ -30,17 +31,17 @@ class MarkdownExporter(TextExporter):
|
||||||
previous_line = ''
|
previous_line = ''
|
||||||
warn_on_heading_level = False
|
warn_on_heading_level = False
|
||||||
for line in body.splitlines(True):
|
for line in body.splitlines(True):
|
||||||
if re.match(r"#+ ", line):
|
if re.match(r"^#+ ", line):
|
||||||
"""ATX style headings"""
|
"""ATX style headings"""
|
||||||
newbody = newbody + previous_line + heading + line
|
newbody = newbody + previous_line + heading + line
|
||||||
if re.match(r"#######+ ", heading + line):
|
if re.match(r"^#######+ ", heading + line):
|
||||||
warn_on_heading_level = True
|
warn_on_heading_level = True
|
||||||
line = ''
|
line = ''
|
||||||
elif re.match(r"=+$", line) and not re.match(r"^$", previous_line):
|
elif re.match(r"^=+$", line.rstrip()) and not re.match(r"^$", previous_line.strip()):
|
||||||
"""Setext style H1"""
|
"""Setext style H1"""
|
||||||
newbody = newbody + heading + "# " + previous_line
|
newbody = newbody + heading + "# " + previous_line
|
||||||
line = ''
|
line = ''
|
||||||
elif re.match(r"-+$", line) and not re.match(r"^$", previous_line):
|
elif re.match(r"^-+$", line.rstrip()) and not re.match(r"^$", previous_line.strip()):
|
||||||
"""Setext style H2"""
|
"""Setext style H2"""
|
||||||
newbody = newbody + heading + "## " + previous_line
|
newbody = newbody + heading + "## " + previous_line
|
||||||
line = ''
|
line = ''
|
||||||
|
@ -68,12 +69,12 @@ class MarkdownExporter(TextExporter):
|
||||||
for e in journal.entries:
|
for e in journal.entries:
|
||||||
if not e.date.year == year:
|
if not e.date.year == year:
|
||||||
year = e.date.year
|
year = e.date.year
|
||||||
out.append(str(year))
|
out.append("# " + str(year))
|
||||||
out.append("=" * len(str(year)) + "\n")
|
out.append("")
|
||||||
if not e.date.month == month:
|
if not e.date.month == month:
|
||||||
month = e.date.month
|
month = e.date.month
|
||||||
out.append(e.date.strftime("%B"))
|
out.append("## " + e.date.strftime("%B"))
|
||||||
out.append('-' * len(e.date.strftime("%B")) + "\n")
|
out.append("")
|
||||||
out.append(cls.export_entry(e, False))
|
out.append(cls.export_entry(e, False))
|
||||||
result = "\n".join(out)
|
result = "\n".join(out)
|
||||||
return result
|
return result
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
from __future__ import absolute_import, unicode_literals, print_function
|
from __future__ import absolute_import, unicode_literals, print_function
|
||||||
from .text_exporter import TextExporter
|
from .text_exporter import TextExporter
|
||||||
|
import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
from ..util import WARNING_COLOR, ERROR_COLOR, RESET_COLOR
|
from ..util import WARNING_COLOR, ERROR_COLOR, RESET_COLOR
|
||||||
|
@ -34,17 +35,17 @@ class YAMLExporter(TextExporter):
|
||||||
previous_line = ''
|
previous_line = ''
|
||||||
warn_on_heading_level = False
|
warn_on_heading_level = False
|
||||||
for line in entry.body.splitlines(True):
|
for line in entry.body.splitlines(True):
|
||||||
if re.match(r"#+ ", line):
|
if re.match(r"^#+ ", line):
|
||||||
"""ATX style headings"""
|
"""ATX style headings"""
|
||||||
newbody = newbody + previous_line + heading + line
|
newbody = newbody + previous_line + heading + line
|
||||||
if re.match(r"#######+ ", heading + line):
|
if re.match(r"^#######+ ", heading + line):
|
||||||
warn_on_heading_level = True
|
warn_on_heading_level = True
|
||||||
line = ''
|
line = ''
|
||||||
elif re.match(r"=+$", line) and not re.match(r"^$", previous_line):
|
elif re.match(r"^=+$", line.rstrip()) and not re.match(r"^$", previous_line.strip()):
|
||||||
"""Setext style H1"""
|
"""Setext style H1"""
|
||||||
newbody = newbody + heading + "# " + previous_line
|
newbody = newbody + heading + "# " + previous_line
|
||||||
line = ''
|
line = ''
|
||||||
elif re.match(r"-+$", line) and not re.match(r"^$", previous_line):
|
elif re.match(r"^-+$", line.rstrip()) and not re.match(r"^$", previous_line.strip()):
|
||||||
"""Setext style H2"""
|
"""Setext style H2"""
|
||||||
newbody = newbody + heading + "## " + previous_line
|
newbody = newbody + heading + "## " + previous_line
|
||||||
line = ''
|
line = ''
|
||||||
|
|
Loading…
Add table
Reference in a new issue