Browse Source

fix stuff

pull/220/head
Jonas Kroll 2 years ago
parent
commit
13eb8f9bac
  1. 1
      Project.toml
  2. 51
      src/Literate.jl

1
Project.toml

@ -6,6 +6,7 @@ version = "2.14.0"
Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" Base64 = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
IOCapture = "b5f81e59-6552-4d32-b1f0-c071b021bf89" IOCapture = "b5f81e59-6552-4d32-b1f0-c071b021bf89"
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
[compat] [compat]

51
src/Literate.jl

@ -561,25 +561,25 @@ end
function chunkToMD(chunk) function chunkToMD(chunk)
buffer = IOBuffer() buffer = IOBuffer()
for line in chunk.lines for line in chunk.lines
write(buffer, line.first * line.second, '\n') write(buffer, line.first * line.second, "\n\n")
end end
seek(buffer, 0) str = String(take!(buffer))
return Markdown.parse(read(buffer, String)) return Markdown.parse(str)
end end
function processNonAdmonitions(item) function processNonAdmonitions(item, io)
# Handle non-admonition elements # Handle non-admonition elements
return string(Markdown.MD(item)) write(io, string(Markdown.MD(item)))
end end
function writeContent(mdContent, io) function writeContent(mdContent, io)
for item in mdContent for item in mdContent
if isa(item, Markdown.Admonition) if isa(item, Markdown.Admonition)
result = CarpentriesAdmonition(item, io) CarpentriesAdmonition(item, io)
else else
result = processNonAdmonitions(item) processNonAdmonitions(item, io)
end end
write(io, result, '\n') # write(io, '\n')
end end
end end
@ -588,13 +588,15 @@ end
function CarpentriesCallout(admonition, io) function CarpentriesCallout(admonition, io)
for line in admonition for line in admonition
if startswith(strip(line.first * line.second), "!!!") if startswith(line, "!!!")
write(io, ":::::::: callout", '\n') write(io, ":::::::: callout", '\n')
else else
if line != ""
write(io, line, '\n') write(io, line, '\n')
end end
end end
write(io, "::::::::", '\n') end
write(io, "::::::::", "\n\n")
end end
function CarpentriesTestamonial(admonition, io) function CarpentriesTestamonial(admonition, io)
@ -605,7 +607,7 @@ function CarpentriesTestamonial(admonition, io)
write(io, line, '\n') write(io, line, '\n')
end end
end end
write(io, "::::::::", '\n') write(io, "::::::::", "\n\n")
end end
function CarpentriesChallenge(admonition, io) function CarpentriesChallenge(admonition, io)
@ -618,7 +620,7 @@ function CarpentriesChallenge(admonition, io)
write(io, line, '\n') write(io, line, '\n')
end end
end end
write(io, "::::::::", '\n', "::::::::", '\n') write(io, "::::::::", "\n\n", "::::::::", "\n\n")
end end
function CarpentriesWarning(admonition, io) function CarpentriesWarning(admonition, io)
@ -629,13 +631,13 @@ function CarpentriesWarning(admonition, io)
write(io, line, '\n') write(io, line, '\n')
end end
end end
write(io, "::::::::", '\n') write(io, "::::::::", "\n\n")
end end
function CarpentriesYAML(admonition, io) function CarpentriesYAML(admonition, io)
for line in admonition for line in admonition
if startswith(strip(line.first * line.second), "!!!") if startswith(line, "!!!")
write(io, "", '\n') continue
else else
write(io, line, '\n') write(io, line, '\n')
end end
@ -644,17 +646,17 @@ end
function CarpentriesAdmonition(admonition, io) function CarpentriesAdmonition(admonition, io)
category = admonition.category category = admonition.category
admonition = split(string(Markdown.MD(admonition)), '\n')
if category == "sc" || "mc" || "freecode" if category in ("sc", "mc", "freecode")
return CarpentriesChallenge(admonition, io) CarpentriesChallenge(admonition, io)
elseif category == "tip" elseif category == "tip"
return CarpentriesTestamonial(admonition, io) CarpentriesTestamonial(admonition, io)
elseif category == "warning" elseif category == "warning"
return CarpentriesWarning(admonition, io) CarpentriesWarning(admonition, io)
elseif category == "info" || "note" elseif category in ("info", "note")
return CarpentriesCallout(admonition, io) CarpentriesCallout(admonition, io)
elseif category == "carp" elseif category == "carp"
return CarpentriesYAML(admonition, io) CarpentriesYAML(admonition, io)
end end
end end
#_______________________________________________________________________________________ #_______________________________________________________________________________________
@ -687,7 +689,6 @@ function markdown(inputfile, outputdir=pwd(); config::AbstractDict=Dict(), kwarg
str = chunkToMD(chunk) str = chunkToMD(chunk)
mdContent = str.content mdContent = str.content
writeContent(mdContent, iomd) writeContent(mdContent, iomd)
else else
@ -745,7 +746,7 @@ function markdown(inputfile, outputdir=pwd(); config::AbstractDict=Dict(), kwarg
for item in mdContent for item in mdContent
if isa(item, Markdown.Admonition) if isa(item, Markdown.Admonition)
if startswith(strip(line.first * line.second), "!!! carp") if startswith(strip(line.first * line.second), "!!! carp")
result = "" continue
end end
else else
result=string(Markdown.MD(item)) result=string(Markdown.MD(item))

Loading…
Cancel
Save