From 281df204927c7cb9574e9a5e2b0d0ffd91d4a3a0 Mon Sep 17 00:00:00 2001 From: Sogari Date: Fri, 24 Mar 2023 23:36:18 +0100 Subject: [PATCH] Add control flow for sc-question --- src/Literate.jl | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/Literate.jl b/src/Literate.jl index 85c8e90..e2bc9bd 100644 --- a/src/Literate.jl +++ b/src/Literate.jl @@ -953,8 +953,8 @@ function create_notebook(flavor::PlutoFlavor, chunks, config) answer = string(answer) push!(answers, answer) else - if line != "" - write(qBuf, line, "\n\n") # why 2 \n + if line != "" && !startswith(line, "!!!") + write(qBuf, lstrip(line), "\n") # why 2 \n end end end @@ -962,24 +962,23 @@ function create_notebook(flavor::PlutoFlavor, chunks, config) radioBind = writeBind(questionName, answers) logicBind = writeLogic(questionName, questionDict) - name = "$(questionName)Check" - - #toWrite = " "*"\$("*"$name"*")"*"\n" # toWrite = " " * "\$(eval(md\"\$(" * "$name" * ")\"))" * "\n" # for interactivity in the notebook (else it isn't reactive) - toWrite = " " * "\\\$(eval(md\"\\\$(" * "$name" * ")\"))" * "\n" # for interactivity in the notebook (else it isn't reactive) - - write(qBuf, toWrite) - seek(qBuf, 0) - result = read(qBuf, String) - correctAdmo = Markdown.parse(result) - correctAdmo[1].category = "correct" - dangerAdmo = Markdown.parse(result) - dangerAdmo[1].category = "danger" + name = "$(questionName)Check" + toWrite = "\$(" * "$name" * ")" + seek(qBuf, 0) + qStr = read(qBuf, String) + qStr = rstrip(qStr) + result = """ - $(correctAdmo) - $(dangerAdmo) + \$( + if $(questionName)Test($(questionName)Answer) + Markdown.MD(Markdown.Admonition("correct", "$(questionName)", [md"$(qStr)", md"$(toWrite)"])) + else + Markdown.MD(Markdown.Admonition("danger", "$(questionName)", [md"$(qStr)", md"$(toWrite)"])) + end + ) """