summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/markdown
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-09-01 21:03:14 +0000
committerKarl Berry <karl@freefriends.org>2021-09-01 21:03:14 +0000
commit67fbca6a9c67fe7b928da5e03367e081b721eaf5 (patch)
treec6c8ac8af81afb13d2e7b71621e29ce0dea31402 /Master/texmf-dist/tex/luatex/markdown
parentae20adff83abd02f56ef30dac6cb38a25d6d312c (diff)
markdown (31aug21)
git-svn-id: svn://tug.org/texlive/trunk@60394 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex/markdown')
-rw-r--r--Master/texmf-dist/tex/luatex/markdown/markdown.lua57
1 files changed, 36 insertions, 21 deletions
diff --git a/Master/texmf-dist/tex/luatex/markdown/markdown.lua b/Master/texmf-dist/tex/luatex/markdown/markdown.lua
index 8583a21f5a0..85900563718 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.10.0",
+ version = "2.10.1",
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",
@@ -2765,29 +2765,45 @@ parsers.spnl = parsers.optionalspace
parsers.line = parsers.linechar^0 * parsers.newline
parsers.nonemptyline = parsers.line - parsers.blankline
-parsers.commented_line = Cs(((parsers.linechar -- initial
- - parsers.backslash
- - parsers.percent)^1
- + (parsers.backslash -- even backslash
- * parsers.backslash)^1
- + (parsers.backslash -- odd backslash
- * parsers.backslash)^0
- * (parsers.backslash / ""
- * parsers.percent
- + parsers.backslash
- * (parsers.linechar -- initial
- + parsers.newline
- - parsers.backslash
- - parsers.percent))
- )^0)
+parsers.commented_line_letter = parsers.linechar
+ + parsers.newline
+ - parsers.backslash
+ - parsers.percent
+parsers.commented_line = Cg(Cc(""), "backslashes")
+ * ((#(parsers.commented_line_letter
+ - parsers.newline)
+ * Cb("backslashes")
+ * Cs(parsers.commented_line_letter
+ - parsers.newline)^1 -- initial
+ * Cg(Cc(""), "backslashes"))
+ + #(parsers.backslash * parsers.backslash)
+ * Cg((parsers.backslash -- even backslash
+ * parsers.backslash)^1, "backslashes")
+ + (parsers.backslash
+ * (#parsers.percent
+ * Cb("backslashes")
+ / function(backslashes)
+ return string.rep("\\", #backslashes / 2)
+ end
+ * C(parsers.percent)
+ + #parsers.commented_line_letter
+ * Cb("backslashes")
+ * Cc("\\")
+ * C(parsers.commented_line_letter))
+ * Cg(Cc(""), "backslashes")))^0
+ * (#parsers.percent
+ * Cb("backslashes")
+ / function(backslashes)
+ return string.rep("\\", #backslashes / 2)
+ end
* ((parsers.percent -- comment
* parsers.line
* #parsers.blankline) -- blank line
- / "\n"
+ / "\n"
+ parsers.percent -- comment
* parsers.line
- * parsers.optionalspace -- leading tabs and spaces
- + C(parsers.newline))
+ * parsers.optionalspace) -- leading tabs and spaces
+ + C(parsers.newline))
parsers.chunk = parsers.line * (parsers.optionallyindentedline
- parsers.blankline)^0
@@ -3380,10 +3396,9 @@ function M.reader.new(writer, options)
end)
str = str:gsub('^' .. min_prefix, '')
end
- if toplevel and options.texComments then
+ if toplevel and (options.texComments or options.hybrid) then
str = lpeg.match(Ct(parsers.commented_line^1), str)
str = util.rope_to_string(str)
- print(str)
end
local res = lpeg.match(grammar(), str)
if res == nil then