|
|
|
@ -572,91 +572,60 @@ function processNonAdmonitions(item, io) |
|
|
|
write(io, string(Markdown.MD(item))) |
|
|
|
write(io, string(Markdown.MD(item))) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
function writeContent(mdContent, io) |
|
|
|
function rewriteContent!(mdContent) |
|
|
|
for item in mdContent.content |
|
|
|
for (i, item) in enumerate(mdContent.content) |
|
|
|
if isa(item, Markdown.Admonition) |
|
|
|
if isa(item, Markdown.Admonition) |
|
|
|
CarpentriesAdmonition(item, io) |
|
|
|
mdContent.content[i] = if any(x->x isa Markdown.Admonition, item.content) |
|
|
|
|
|
|
|
CarpentriesAdmonition(rewriteContent!(item)) |
|
|
|
else |
|
|
|
else |
|
|
|
processNonAdmonitions(item, io) |
|
|
|
CarpentriesAdmonition(item) |
|
|
|
end |
|
|
|
end |
|
|
|
# write(io, '\n') |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
mdContent |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#Functions needed for addition transformation into Carpentries style. Markdown style into pandoc fenced divs |
|
|
|
#Functions needed for addition transformation into Carpentries style. Markdown style into pandoc fenced divs |
|
|
|
|
|
|
|
|
|
|
|
function CarpentriesCallout(admonition, io) |
|
|
|
function CarpentriesCallout(admonition) |
|
|
|
for line in admonition |
|
|
|
vcat(Markdown.Paragraph(":::::::: callout\n"), admonition.content, Markdown.Paragraph("::::::::\n\n")) |
|
|
|
if startswith(line, "!!!") |
|
|
|
|
|
|
|
write(io, ":::::::: callout", '\n') |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
if line != "" |
|
|
|
|
|
|
|
write(io, line, '\n') |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
write(io, "::::::::", "\n\n") |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
function CarpentriesTestamonial(admonition, io) |
|
|
|
function CarpentriesTestamonial(admonition) |
|
|
|
for line in admonition |
|
|
|
vcat(Markdown.Paragraph(":::::::: testamonial\n"), admonition.content, Markdown.Paragraph("::::::::\n\n")) |
|
|
|
if startswith(strip(line), "!!!") |
|
|
|
|
|
|
|
write(io, ":::::::: testamonial", '\n') |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
write(io, line, '\n') |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
write(io, "::::::::", "\n\n") |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
function CarpentriesChallenge(admonition, io) |
|
|
|
function CarpentriesSolution(admonition) |
|
|
|
for line in admonition |
|
|
|
vcat(Markdown.Paragraph(":::::::: solution\n"), admonition.content, Markdown.Paragraph("::::::::\n\n")) |
|
|
|
if startswith(strip(line), r"\S+\s[smf][cr]") |
|
|
|
|
|
|
|
write(io, ":::::::: challenge", '\n') |
|
|
|
|
|
|
|
elseif startswith(strip(line), "!!! solution") |
|
|
|
|
|
|
|
write(io, ":::::::: solution", '\n') |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
write(io, line, '\n') |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
write(io, "::::::::", "\n\n", "::::::::", "\n\n") |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
function CarpentriesWarning(admonition, io) |
|
|
|
function CarpentriesChallenge(admonition) |
|
|
|
for line in admonition |
|
|
|
vcat(Markdown.Paragraph(":::::::: challenge\n"), admonition.content, Markdown.Paragraph("::::::::\n\n")) |
|
|
|
if startswith(strip(line), "!!!") |
|
|
|
|
|
|
|
write(io, ":::::::: warning", '\n') |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
write(io, line, '\n') |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
write(io, "::::::::", "\n\n") |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
function CarpentriesYAML(admonition, io) |
|
|
|
function CarpentriesWarning(admonition) |
|
|
|
for line in admonition |
|
|
|
vcat(Markdown.Paragraph(":::::::: warning\n"), admonition.content, Markdown.Paragraph("::::::::\n\n")) |
|
|
|
if startswith(line, "!!!") |
|
|
|
|
|
|
|
continue |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
write(io, line, '\n') |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function CarpentriesYAML(admonition) |
|
|
|
|
|
|
|
admonition.content |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
function CarpentriesAdmonition(admonition, io) |
|
|
|
function CarpentriesAdmonition(admonition) |
|
|
|
category = admonition.category |
|
|
|
category = admonition.category |
|
|
|
admonition = split(string(Markdown.MD(admonition)), '\n') |
|
|
|
return if category in ("challenge", "sc", "mc", "freecode") |
|
|
|
if category in ("sc", "mc", "freecode") |
|
|
|
CarpentriesChallenge(admonition) |
|
|
|
CarpentriesChallenge(admonition, io) |
|
|
|
elseif category == "solution" |
|
|
|
|
|
|
|
CarpentriesSolution(admonition) |
|
|
|
elseif category == "tip" |
|
|
|
elseif category == "tip" |
|
|
|
CarpentriesTestamonial(admonition, io) |
|
|
|
CarpentriesTestamonial(admonition) |
|
|
|
elseif category == "warning" |
|
|
|
elseif category == "warning" |
|
|
|
CarpentriesWarning(admonition, io) |
|
|
|
CarpentriesWarning(admonition) |
|
|
|
elseif category in ("info", "note") |
|
|
|
elseif category in ("info", "note") |
|
|
|
CarpentriesCallout(admonition, io) |
|
|
|
CarpentriesCallout(admonition) |
|
|
|
elseif category == "carp" |
|
|
|
elseif category == "carp" |
|
|
|
CarpentriesYAML(admonition, io) |
|
|
|
CarpentriesYAML(admonition) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
#_______________________________________________________________________________________ |
|
|
|
#_______________________________________________________________________________________ |
|
|
|
@ -701,7 +670,10 @@ function write_md_chunks!(iomd, chunks, outputdir, config) |
|
|
|
#______________________________________________________________________________________________________________ |
|
|
|
#______________________________________________________________________________________________________________ |
|
|
|
if flavor isa CarpentriesFlavor |
|
|
|
if flavor isa CarpentriesFlavor |
|
|
|
if containsAdmonition(chunk) |
|
|
|
if containsAdmonition(chunk) |
|
|
|
writeContent(chunkToMD(chunk), iomd) |
|
|
|
md_chunk = chunkToMD(chunk) |
|
|
|
|
|
|
|
rewriteContent!(md_chunk) |
|
|
|
|
|
|
|
write(iomd, string(Markdown.MD(md_chunk))) |
|
|
|
|
|
|
|
continue |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
if containsYAML(chunk) # This part is the only change. It (should) delete the YAML Admo for non Carpentries MD. |
|
|
|
if containsYAML(chunk) # This part is the only change. It (should) delete the YAML Admo for non Carpentries MD. |
|
|
|
|