]> granicus.if.org Git - multimarkdown/commitdiff
UPDATED: Allow '\' to preserve line break in metadata. (Addresses #86)
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Sat, 1 Sep 2018 19:44:18 +0000 (15:44 -0400)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Sat, 1 Sep 2018 19:44:18 +0000 (15:44 -0400)
Sources/libMultiMarkdown/html.c
Sources/libMultiMarkdown/latex.c
Sources/libMultiMarkdown/opendocument-content.c
Sources/libMultiMarkdown/writer.c
tests/MMD6Tests/Metadata.fodt
tests/MMD6Tests/Metadata.html
tests/MMD6Tests/Metadata.htmlc
tests/MMD6Tests/Metadata.opml
tests/MMD6Tests/Metadata.tex
tests/MMD6Tests/Metadata.text

index 2220f394783ac276aa51b0800c99b52be69f1236..cf09490e90c2fdf7465066ac050e6dc284bbe958 100644 (file)
@@ -113,6 +113,11 @@ void mmd_print_char_html(DString * out, char c, bool obfuscate) {
                        print_const("&gt;");
                        break;
 
+               case '\n':
+               case '\r':
+                       print_const("<br/>\n");
+                       break;
+
                default:
                        if (obfuscate && ((int) c == (((int) c) & 127))) {
                                if (ran_num_next() % 2 == 0) {
index 58f51d21d290995c358fdbd77834a552c6e51d7c..a3ef057988a4eb7551546dfec6f20177e6253c5b 100644 (file)
@@ -116,6 +116,10 @@ void mmd_print_char_latex(DString * out, char c) {
                        print_const("\\textbar{}");
                        break;
 
+               case '\n':
+               case '\r':
+                       print_char('\\');
+
                case '#':
                case '{':
                case '}':
index 3702e8a6f1a288797ab836105ea076a8af2b0f4c..0e5dfe542df8b83030d956e4c0dcd4872e3ad8e5 100644 (file)
@@ -154,6 +154,11 @@ void mmd_print_char_opendocument(DString * out, char c) {
                        print_const("&gt;");
                        break;
 
+               case '\n':
+               case '\r':
+                       print_const("<text:line-break/>\n");
+                       break;
+
                case '\t':
                        print_const("<text:tab/>");
 
index 4138af4400afa085995833c47df1261ff7413ea6..d8f4742f68f678c52b8afd1f611e573df1d84f76 100644 (file)
@@ -477,6 +477,22 @@ char * clean_string(const char * str, bool lowercase) {
 
        while (*str != '\0') {
                switch (*str) {
+                       case '\\':
+                               switch (*(str + 1)) {
+                                       case '\n':
+                                       case '\r':
+                                               d_string_append_c(out, '\n');
+                                               block_whitespace = true;
+                                               break;
+
+                                       default:
+                                               d_string_append_c(out, '\\');
+                                               block_whitespace = false;
+                                               break;
+                               }
+
+                               break;
+
                        case '\t':
                        case ' ':
                        case '\n':
index 6661eb21384e44dd9030c3acb1665d2503e9fe1b..d0a51ec6b7483e5332bee1f28972d124f879ee1b 100644 (file)
@@ -277,6 +277,8 @@ office:mimetype="application/vnd.oasis.opendocument.text">
        <dc:title>*foo* &quot;bar&quot;</dc:title>
        <meta:user-defined meta:name="empty"></meta:user-defined>
        <meta:user-defined meta:name="foo">bar foo bar foo bar</meta:user-defined>
+       <meta:user-defined meta:name="multiline">first line<text:line-break/>
+second line</meta:user-defined>
 </office:meta>
 <office:body>
 <office:text>
index 662202ad3efaeb7dc13d2719840ae5aa25c365df..d57906e0bf91ee60ec0b407c778ea22008534935 100644 (file)
@@ -7,6 +7,8 @@
        <link type="text/css" rel="stylesheet" href="http://foo.com/bar.css"/>
 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> </script>
        <meta name="foo" content="bar foo bar foo bar"/>
+       <meta name="multiline" content="first line<br/>
+second line"/>
 </head>
 <body>
 
index 359f5fbf7bd971932c0a772902e94996c1da248e..34f132513249ee8bae51a17d1dcffabb8f1f0eb0 100644 (file)
@@ -13,7 +13,9 @@ foo bar
 foo:   <em>bar</em>
 htmlheader level: 2
 latexheader level: 2
-baseheader level: 3</p>
+baseheader level: 3
+multiline: first line<br />
+second line</p>
 
 <p>foo:        bar</p>
 
index 17cd67a70a2453a0d91f8eecde85912bc0aeec4e..8d656f78a99fce453fc8e82385e68ba4a0ba49e6 100644 (file)
@@ -16,6 +16,7 @@
 <outline text="htmlheaderlevel" _note="2"/>
 <outline text="latexheaderlevel" _note="2"/>
 <outline text="baseheaderlevel" _note="3"/>
+<outline text="multiline" _note="first line&#10;second line"/>
 </outline>
 </body>
 </opml>
index 799870845f2111ed9ce589da5487a4c53f427bdd..b22ef55d7b1337d835d4a00981f36144e879253c 100644 (file)
@@ -2,6 +2,8 @@
 \def\mytitle{*foo* "bar"}
 \def\empty{}
 \def\foo{bar foo bar foo bar}
+\def\multiline{first line\\
+second line}
 \input{mmd6-article-begin}
 
 foo:   bar
index 6f68a48a8836d49b080a1627c92db4599dc15d5b..eca7d8ca51a9009dfe99f8cf7f3f30661e2b4cee 100644 (file)
@@ -14,6 +14,8 @@ foo:  *bar*
 htmlheader level: 2
 latexheader level: 2
 baseheader level: 3
+multiline: first line\
+       second line
 
 foo:   bar