From 1884a6ce23f14aaf45950e74aa6f8ff75a21074d Mon Sep 17 00:00:00 2001 From: MinchinWeb Date: Thu, 1 Aug 2019 21:00:53 -0600 Subject: [PATCH] [Markdown Export] deal with linebreaks in jrnl files --- features/exporting.feature | 6 ++---- jrnl/plugins/markdown_exporter.py | 11 +++++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/features/exporting.feature b/features/exporting.feature index 1b4285ed..db2ef5b3 100644 --- a/features/exporting.feature +++ b/features/exporting.feature @@ -42,11 +42,9 @@ Feature: Exporting a Journal When we run "jrnl --export markdown" Then the output should be """ - 2015 - ==== + # 2015 - April - ----- + ## April ### 2015-04-14 13:23 Heading Test diff --git a/jrnl/plugins/markdown_exporter.py b/jrnl/plugins/markdown_exporter.py index 0a237af4..19b5404d 100644 --- a/jrnl/plugins/markdown_exporter.py +++ b/jrnl/plugins/markdown_exporter.py @@ -3,6 +3,7 @@ from __future__ import absolute_import, unicode_literals, print_function from .text_exporter import TextExporter +import os import re import sys from ..util import WARNING_COLOR, RESET_COLOR @@ -30,17 +31,17 @@ class MarkdownExporter(TextExporter): previous_line = '' warn_on_heading_level = False for line in body.splitlines(True): - if re.match(r"#+ ", line): + if re.match(r"^#+ ", line): """ATX style headings""" newbody = newbody + previous_line + heading + line - if re.match(r"#######+ ", heading + line): + if re.match(r"^#######+ ", heading + line): warn_on_heading_level = True 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""" newbody = newbody + heading + "# " + previous_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""" newbody = newbody + heading + "## " + previous_line line = '' @@ -69,9 +70,11 @@ class MarkdownExporter(TextExporter): if not e.date.year == year: year = e.date.year out.append("# " + str(year)) + out.append("") if not e.date.month == month: month = e.date.month out.append("## " + e.date.strftime("%B")) + out.append("") out.append(cls.export_entry(e, False)) result = "\n".join(out) return result