|
|
|
@ -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 |
|
|
|
write(io, line, '\n') |
|
|
|
if line != "" |
|
|
|
|
|
|
|
write(io, line, '\n') |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
write(io, "::::::::", '\n') |
|
|
|
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)) |
|
|
|
|