]> granicus.if.org Git - multimarkdown/commitdiff
CHANGED: Adjust latex metadata configuration for consistency
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Tue, 14 Feb 2017 19:53:41 +0000 (14:53 -0500)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Tue, 14 Feb 2017 19:53:41 +0000 (14:53 -0500)
README.md
src/html.c
src/latex.c
src/writer.c
src/writer.h
tests/MMD6Tests/Metadata.htmlc
tests/MMD6Tests/Metadata.tex
tests/MMD6Tests/Metadata.text

index 33ee9384038411ec6b7434d3652553cbe4d14173..2756f7236eb99f34d87c64d9ec2ee110d9e00d92 100644 (file)
--- a/README.md
+++ b/README.md
 
 ## Updates ##
 
+* 2017-02-14 -- v 0.3.0a:
+
+       *    ADDED: Add basic image support to LaTeX
+       *    ADDED: Add file transclusion
+       *    ADDED: Add support for citation 'locators'
+       *    ADDED: Add support for manual labels on ATX Headers
+       *    ADDED: Add support for manual labels on Setext Headers
+       *    ADDED: Add support for tables in LaTeX
+       *    ADDED: HTML Comments appear as raw LaTeX
+       *    ADDED: Improved citation support in LaTeX
+       *    ADDED: Support \autoref{} in LaTeX
+       *    ADDED: Support combined options in LaTeX citations that use the '\]\[' syntax
+       *    ADDED: Support language specifier in fenced code blocks
+       *    ADDED: Support metadata in LaTeX
+       *    ADDED: Update Citations test suite
+       *    FIXED: Escaped LaTeX characters
+       *    FIXED: Fix bug in URL parsing
+       *    FIXED: Fix bug in citation links
+       *    FIXED: Fix bug when no closing divider or newline at end of last table cell
+       *    FIXED: Fix issue printing '-'
+       *    FIXED: Fix scan_url test suite
+       *    FIXED: Get Math working in LaTeX
+       *    FIXED: Improve reliability or link scanner
+       *    FIXED: Properly add id attribute to new instances of citation only
+       *    FIXED: Properly handle manual labels with TOC
+       *    FIXED: Properly print hash characters in LaTeX
+       *    FIXED: Separate LaTeX verbatim and texttt character handling
+       *    FIXED: Update Escapes test LaTeX result
+       *    FIXED: Work on escaping LaTeX characters
+
+
 * 2017-02-08 -- v 0.1.4a:
 
        *    ADDED: Add smart quote support for other languages (resolves #15)
index 4e89911d9aafa1f327f6331b761c5f48fb68d02b..f0262edf1306566b096d5f049b4495c708106b4a 100644 (file)
@@ -1441,8 +1441,11 @@ void mmd_start_complete_html(DString * out, const char * source, scratch_pad * s
                        print_char('\n');
                } else if (strcmp(m->key, "htmlheaderlevel") == 0) {
                } else if (strcmp(m->key, "lang") == 0) {
+               } else if (strcmp(m->key, "latexbegin") == 0) {
                } else if (strcmp(m->key, "latexfooter") == 0) {
+               } else if (strcmp(m->key, "latexheaderlevel") == 0) {
                } else if (strcmp(m->key, "latexinput") == 0) {
+               } else if (strcmp(m->key, "latexleader") == 0) {
                } else if (strcmp(m->key, "latexmode") == 0) {
                } else if (strcmp(m->key, "mmdfooter") == 0) {
                } else if (strcmp(m->key, "mmdheader") == 0) {
index d6457e233916a78e5041a0d7b2357415a4e2c926..2a0070b20eb92f8739e577dcfcf147700f4c8bb0 100644 (file)
@@ -1567,6 +1567,11 @@ void mmd_start_complete_latex(DString * out, const char * source, scratch_pad *
        // Iterate over metadata keys
        meta * m;
 
+       m = extract_meta_from_stack(scratch, "latexleader");
+       if (m) {
+               printf("\\input{%s}\n", m->value);
+       }
+
        for (m = scratch->meta_hash; m != NULL; m = m->hh.next) {
                if (strcmp(m->key, "baseheaderlevel") == 0) {
                } else if (strcmp(m->key, "bibtex") == 0) {
@@ -1575,11 +1580,12 @@ void mmd_start_complete_latex(DString * out, const char * source, scratch_pad *
                } else if (strcmp(m->key, "htmlheader") == 0) {
                } else if (strcmp(m->key, "htmlheaderlevel") == 0) {
                } else if (strcmp(m->key, "lang") == 0) {
+               } else if (strcmp(m->key, "latexbegin") == 0) {
                } else if (strcmp(m->key, "latexheader") == 0) {
-                       print(m->value);
-                       print_char('\n');
                } else if (strcmp(m->key, "latexfooter") == 0) {
+               } else if (strcmp(m->key, "latexheaderlevel") == 0) {
                } else if (strcmp(m->key, "latexinput") == 0) {
+               } else if (strcmp(m->key, "latexleader") == 0) {
                } else if (strcmp(m->key, "latexmode") == 0) {
                } else if (strcmp(m->key, "mmdfooter") == 0) {
                } else if (strcmp(m->key, "mmdheader") == 0) {
@@ -1617,12 +1623,25 @@ void mmd_start_complete_latex(DString * out, const char * source, scratch_pad *
                        print("}\n");
                }
        }
+
+       m = extract_meta_from_stack(scratch, "latexbegin");
+       if (m) {
+               printf("\\input{%s}\n", m->value);
+       }
+
        scratch->padded = 1;
 }
 
 
 void mmd_end_complete_latex(DString * out, const char * source, scratch_pad * scratch) {
        pad(out, 2, scratch);
+
+       meta * m = extract_meta_from_stack(scratch, "latexfooter");
+
+       if (m) {
+               printf("\\input{%s}\n\n", m->value);
+       }
+
        print("\\end{document}");
        scratch->padded = 0;
 }
index f8d801762e5a24600bffc975feb472c971afdad4..218c5767bdf4d572517a4619b8677577bdcc56e5 100644 (file)
@@ -142,7 +142,7 @@ scratch_pad * scratch_pad_new(mmd_engine * e, short format) {
                        store_citation(p, f);
                }
 
-               // Store links in a hash for rapid retrieval when exporting
+               // Store metadata in a hash for rapid retrieval when exporting
                p->meta_hash = NULL;
                meta * m;
 
index a0e8263794dc862461f24505795732868751b8c3..98c29a0b0f21ce6da5560d62444c9696ed1b61ca 100644 (file)
@@ -200,6 +200,7 @@ meta * meta_new(const char * source, size_t start, size_t len);
 void meta_set_value(meta * m, const char * value);
 void meta_free(meta * m);
 char * extract_metadata(scratch_pad * scratch, const char * target);
+meta * extract_meta_from_stack(scratch_pad * scratch, const char * target);
 
 void read_table_column_alignments(const char * source, token * table, scratch_pad * scratch);
 
index 10041dc24f1b13b106f2468c0c0006543f29696b..4bb801441376157b6ad569af2027e0fac1d0eed3 100644 (file)
@@ -1,13 +1,17 @@
-<p>title:      <em>foo</em> &quot;bar&quot;
+<p>latex leader:       mmd-article-header
+title: <em>foo</em> &quot;bar&quot;
 css:   http://foo.com/bar.css
 HTML header:   <script type="text/javascript"
        src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
 </script>
+latex begin:   mmd-article-begin-doc
+latex footer:  mmd-memoir-footer
 foo:   bar
 foo bar
 foo bar
 foo:   <em>bar</em>
 html header level: 2
+latex header level: 2
 base header level: 3</p>
 
 <p>foo:        bar</p>
index 25a16f5137d5508491890e518463b963b41dbc04..fdedcb3f118563523c1408ae9918e1501d5f3931 100644 (file)
@@ -1,9 +1,13 @@
+\input{mmd-article-header}
 \def\mytitle{*foo* "bar"}
 \def\foo{bar foo bar foo bar}
+\input{mmd-article-begin-doc}
 
 foo:   bar
 
-\section{foo }
+\chapter{foo }
 \label{foo}
 
+\input{mmd-memoir-footer}
+
 \end{document}
index bc1786444f4cc9e23c9af05635f143e007b267c7..b1e8e1fecd0fe93a5f0b3fc6c0d1052397067da3 100644 (file)
@@ -1,13 +1,17 @@
+latex leader:  mmd-article-header
 title: *foo* "bar"
 css:   http://foo.com/bar.css
 HTML header:   <script type="text/javascript"
        src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
        </script>
+latex begin:   mmd-article-begin-doc
+latex footer:  mmd-memoir-footer
 foo:   bar
 foo bar
        foo bar
 foo:   *bar*
 html header level: 2
+latex header level: 2
 base header level: 3
 
 foo:   bar