summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/markdown/markdown.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/luatex/markdown/markdown.lua')
-rw-r--r--Master/texmf-dist/tex/luatex/markdown/markdown.lua46
1 files changed, 34 insertions, 12 deletions
diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown.lua b/Master/texmf-dist/tex/luatex/markdown/markdown.lua
index eb68cc175d5..4241d6cc3b9 100644
--- a/Master/texmf-dist/tex/luatex/markdown/markdown.lua
+++ b/Master/texmf-dist/tex/luatex/markdown/markdown.lua
@@ -58,7 +58,7 @@
-- those in the standard .ins files.
--
local metadata = {
- version = "2.11.0-0-g4505824",
+ version = "2.12.0-1-g976f074",
comment = "A module for the conversion from markdown to plain TeX",
author = "John MacFarlane, Hans Hagen, Vít Novotný",
copyright = {"2009-2016 John MacFarlane, Hans Hagen",
@@ -88,10 +88,12 @@ defaultOptions.codeSpans = true
defaultOptions.contentBlocks = false
defaultOptions.contentBlocksLanguageMap = "markdown-languages.json"
defaultOptions.definitionLists = false
+defaultOptions.eagerCache = true
defaultOptions.fencedCode = false
defaultOptions.finalizeCache = false
defaultOptions.footnotes = false
defaultOptions.frozenCacheCounter = 0
+defaultOptions.hardLineBreaks = false
defaultOptions.hashEnumerators = false
defaultOptions.headerAttributes = false
defaultOptions.html = false
@@ -2335,7 +2337,7 @@ function M.writer.new(options)
return s
end
function self.pack(name)
- return [[\input ]] .. name .. [[\relax{}]]
+ return [[\input ]] .. name .. [[\relax]]
end
function self.interblocksep()
if not self.is_writing then return "" end
@@ -3762,15 +3764,22 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
+ larsers.bqstart
+ larsers.headerstart
+ larsers.fencestart
- ) * parsers.spacechar^0 / writer.space
+ ) * parsers.spacechar^0
+ / (options.hardLineBreaks and writer.linebreak
+ or writer.space)
larsers.OptionalIndent
= parsers.spacechar^1 / writer.space
larsers.Space = parsers.spacechar^2 * larsers.Endline / writer.linebreak
+ parsers.spacechar^1 * larsers.Endline^-1 * parsers.eof / ""
- + parsers.spacechar^1 * larsers.Endline^-1
- * parsers.optionalspace / writer.space
+ + parsers.spacechar^1 * larsers.Endline
+ * parsers.optionalspace
+ / (options.hardLineBreaks
+ and writer.linebreak
+ or writer.space)
+ + parsers.spacechar^1 * parsers.optionalspace
+ / writer.space
larsers.NonbreakingEndline
= parsers.newline * -( -- newline, but not before...
@@ -3780,13 +3789,20 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
+ larsers.bqstart
+ larsers.headerstart
+ larsers.fencestart
- ) * parsers.spacechar^0 / writer.nbsp
+ ) * parsers.spacechar^0
+ / (options.hardLineBreaks and writer.linebreak
+ or writer.nbsp)
larsers.NonbreakingSpace
= parsers.spacechar^2 * larsers.Endline / writer.linebreak
+ parsers.spacechar^1 * larsers.Endline^-1 * parsers.eof / ""
- + parsers.spacechar^1 * larsers.Endline^-1
- * parsers.optionalspace / writer.nbsp
+ + parsers.spacechar^1 * larsers.Endline
+ * parsers.optionalspace
+ / (options.hardLineBreaks
+ and writer.linebreak
+ or writer.nbsp)
+ + parsers.spacechar^1 * parsers.optionalspace
+ / writer.nbsp
if options.underscores then
larsers.Strong = ( parsers.between(parsers.Inline, parsers.doubleasterisks,
@@ -4299,10 +4315,16 @@ larsers.PipeTable = Ct(larsers.table_row * parsers.newline
end
table.sort(opt_string)
local salt = table.concat(opt_string, ",") .. "," .. metadata.version
- local name = util.cache(options.cacheDir, input, salt, function(input)
- return util.rope_to_string(parse_blocks_toplevel(input)) .. writer.eof
- end, ".md" .. writer.suffix)
- local output = writer.pack(name)
+ local output
+ local function convert(input)
+ return util.rope_to_string(parse_blocks_toplevel(input)) .. writer.eof
+ end
+ if options.eagerCache or options.finalizeCache then
+ local name = util.cache(options.cacheDir, input, salt, convert, ".md" .. writer.suffix)
+ output = writer.pack(name)
+ else
+ output = convert(input)
+ end
if options.finalizeCache then
local file, mode
if options.frozenCacheCounter > 0 then