Commit 6d056a87 authored by Peter Nerlich's avatar Peter Nerlich
Browse files

actually fix listings... in the example doc

parent 9edbbc4c
......@@ -105,7 +105,7 @@ async function main() {
}
});
} else {
let result = md.render('---\ntitle: md2latex -- Ein zusammengehackter Markdown zu LaTeX Compiler\nauthor: Peter Nerlich\ndate: 04.01.2022\n---\n\n# Markdown und *md2latex*\n\nMarkdown ist eine sehr einfache und **menschenlesbare Markupsprache**.\nSelbst, wenn *kein* geeigneter Interpreter zur grafischen Darstellung zur Hand ist, lässt es sich beinahe so mühelos lesen, als wenn es gar nicht selbst eine Art Quelltext wäre.\n\nLeider genügt dieses Format nicht dem Anspruch einer wissenschaftlichen Drucksache.\nAus diesem Grund wurde *md2latex* geschaffen -- ein Compiler zu LaTeX.\n\n## Markdown-it rulezz!\n\nEs gibt zwar einige Compiler für Markdown, jedoch besitzt dieses keinen Standard und existiert so in vielen verschiedenen Varianten.\n*md2latex* möchte die Features von [HedgeDoc](https://demo.hedgedoc.org/features) abbilden, die sehr viel auf angenehme Weise integrieren.\n\nHedgeDoc nutzt intern *markdown-it*, *md2latex* hat diese Lösung minimal nachgebaut und den HTML-Renderer auf LaTeX umgefriemelt.\nWem das zu unsauber ist, der darf gerne selber eine bessere Lösung beisteuern.\n\n\n# How to use\n\n```\nnode compile.js [input.md] [output.tex] [meta.json]\n```\n\nIf you want to test it, you can run the `compile.js` without any arguments. It will convert the example document, which you are reading right now, to LaTeX and print it to stdout.\n\nWhen converting your own documents, specify the path to your input markdown as the first argument.\nIf you don\'t want to scrape the result from stdout, you can specify another path as the second argument and `compile.js` will write the LaTeX to there.\n\nMarkdown documents can also contain meta data (as YAML) at the beginning like this:\n\n```\n---\ntitle: The Two-s Day\ndate: 22.02.2022\nauthor: Me\n---\n\n# Headline\n\nThis is the actual start of the markdown document itself...\n```\n\n`compile.js` will parse this and use it for the `\maketitle` stuff.\nIt does this very straightforward though, by putting every key--value pair as `\key{value}` into the LaTeX document---you have been warned.\nIf you want to use this information somehow, because it was such an easy thing to implement, you can specify a path as the third argument where this meta information will be written to in JSON format.\n\n# Most important features\n\nTest **bold** *it* [l**in**k](test.bla) drone.io.\n\n> test1\n> test2\n> test3\n\n----\n\n- A\n- B\n - 1\n - 2\n- `Code`!\n\n```Python\nmore\ncode()\n```\n\n## Bilder\n\nDie Einbindung von Bildern ist -- mehr noch als das ganze Projekt -- als äußerst experimentell einzustufen.\nBilder sind in (HedgeDoc-flavoured) Markdown nicht im eigentlichen Sinne enthalten, sondern nur als Verweise auf eine Ressource, welcher von etwaigen darstellenden Programmen zu interpretieren ist.\nWährend es sich hier um URLs handelt, kennt LaTeX nur Verweise auf das lokale Dateisystem und fügt die Ressourcen zur Compile-Zeit in das Produkt (in den meisten Fällen die PDF) ein.\n\nEs wurden Anstrengungen unternommen, etwaige entfernte Ressourcen automatisch und asynchron herunterzuladen und lokal bereitzustellen.\nDas tatsächliche Verhalten könnte jedoch stark von der gestellten Erwartung abweichen, hierauf gibt der Autor keine Gewähr.\n');
let result = md.render('---\ntitle: md2latex -- Ein zusammengehackter Markdown zu LaTeX Compiler\nauthor: Peter Nerlich\ndate: 04.01.2022\n---\n\n# Markdown und *md2latex*\n\nMarkdown ist eine sehr einfache und **menschenlesbare Markupsprache**.\nSelbst, wenn *kein* geeigneter Interpreter zur grafischen Darstellung zur Hand ist, lässt es sich beinahe so mühelos lesen, als wenn es gar nicht selbst eine Art Quelltext wäre.\n\nLeider genügt dieses Format nicht dem Anspruch einer wissenschaftlichen Drucksache.\nAus diesem Grund wurde *md2latex* geschaffen -- ein Compiler zu LaTeX.\n\n## Markdown-it rulezz!\n\nEs gibt zwar einige Compiler für Markdown, jedoch besitzt dieses keinen Standard und existiert so in vielen verschiedenen Varianten.\n*md2latex* möchte die Features von [HedgeDoc](https://demo.hedgedoc.org/features) abbilden, die sehr viel auf angenehme Weise integrieren.\n\nHedgeDoc nutzt intern *markdown-it*, *md2latex* hat diese Lösung minimal nachgebaut und den HTML-Renderer auf LaTeX umgefriemelt.\nWem das zu unsauber ist, der darf gerne selber eine bessere Lösung beisteuern.\n\n\n# How to use\n\n```\nnode compile.js [input.md] [output.tex] [meta.json]\n```\n\nIf you want to test it, you can run the `compile.js` without any arguments. It will convert the example document, which you are reading right now, to LaTeX and print it to stdout.\n\nWhen converting your own documents, specify the path to your input markdown as the first argument.\nIf you don\'t want to scrape the result from stdout, you can specify another path as the second argument and `compile.js` will write the LaTeX to there.\n\nMarkdown documents can also contain meta data (as YAML) at the beginning like this:\n\n```\n---\ntitle: The Two-s Day\ndate: 22.02.2022\nauthor: Me\n---\n\n# Headline\n\nThis is the actual start of the markdown document itself...\n```\n\n`compile.js` will parse this and use it for the `\\maketitle` stuff.\nIt does this very straightforward though, by putting every key--value pair as `\\key{value}` into the LaTeX document---you have been warned.\nIf you want to use this information somehow, because it was such an easy thing to implement, you can specify a path as the third argument where this meta information will be written to in JSON format.\n\n# Most important features\n\nTest **bold** *it* [l**in**k](test.bla) drone.io.\n\n> test1\n> test2\n> test3\n\n----\n\n- A\n- B\n - 1\n - 2\n- `Code`!\n\n```Python\nmore\ncode()\n```\n\n## Bilder\n\nDie Einbindung von Bildern ist -- mehr noch als das ganze Projekt -- als äußerst experimentell einzustufen.\nBilder sind in (HedgeDoc-flavoured) Markdown nicht im eigentlichen Sinne enthalten, sondern nur als Verweise auf eine Ressource, welcher von etwaigen darstellenden Programmen zu interpretieren ist.\nWährend es sich hier um URLs handelt, kennt LaTeX nur Verweise auf das lokale Dateisystem und fügt die Ressourcen zur Compile-Zeit in das Produkt (in den meisten Fällen die PDF) ein.\n\nEs wurden Anstrengungen unternommen, etwaige entfernte Ressourcen automatisch und asynchron herunterzuladen und lokal bereitzustellen.\nDas tatsächliche Verhalten könnte jedoch stark von der gestellten Erwartung abweichen, hierauf gibt der Autor keine Gewähr.\n');
console.log(result);
}
}
......
......@@ -13,6 +13,7 @@ let escapeLatex = input => lescape(input, {
preserveFormatting: true,
escapeMapFn: function(defaultEscapes, formattingEscapes) {
delete formattingEscapes[" "];
delete formattingEscapes["\n"];
defaultEscapes['~'] = '$\\sim$';
return Object.assign({}, defaultEscapes, formattingEscapes);
},
......@@ -231,8 +232,9 @@ default_rules.code_block = function (tokens, idx, options, env, slf) {
var token = tokens[idx];
return '\\begin{lstlisting}\n' +
//escapeLatex(tokens[idx].content) +
tokens[idx].content +
'\n\\end{lstlisting}\n';
'\\end{lstlisting}\n';
};
......@@ -254,8 +256,9 @@ default_rules.fence = function (tokens, idx, options, env, slf) {
return '\\begin{lstlisting}'+
(langName && '[language='+langName+']')+'\n' +
//escapeLatex(tokens[idx].content) +
tokens[idx].content +
'\n\\end{lstlisting}\n';
'\\end{lstlisting}\n';
/*
if (highlighted.indexOf('<pre') === 0) {
return highlighted + '\n';
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment