From 8cfe278a45a54097472bd74d254af500bfd63c1f Mon Sep 17 00:00:00 2001 From: David Widmann Date: Fri, 18 Feb 2022 23:33:07 +0100 Subject: [PATCH] (Try to) Simplify implementation --- src/Literate.jl | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Literate.jl b/src/Literate.jl index 47e85c3..91bfa44 100644 --- a/src/Literate.jl +++ b/src/Literate.jl @@ -522,7 +522,6 @@ function markdown(inputfile, outputdir=pwd(); config::AbstractDict=Dict(), kwarg else # isa(chunk, CodeChunk) iocode = IOBuffer() codefence = config["codefence"]::Pair - execute = config["execute"]::Bool write(iocode, codefence.first) # make sure the code block is finalized if we are printing to ```@example # (or ````@example, any number of backticks >= 3 works) @@ -530,18 +529,18 @@ function markdown(inputfile, outputdir=pwd(); config::AbstractDict=Dict(), kwarg write(iocode, "; continued = true") end write(iocode, '\n') + # filter out trailing #hide unless code is executed by Documenter + execute = config["execute"]::Bool + write_hide = isdocumenter(config) && !execute + write_line(line) = write_hide || !endswith(line, "#hide") for line in chunk.lines - # filter out trailing #hide (unless leaving it for Documenter) - if !endswith(line, "#hide") || (isdocumenter(config) && !execute) - write(iocode, line, '\n') - end + write_line(line) && write(iocode, line, '\n') end - if isdocumenter(config) && !execute && REPL.ends_with_semicolon(chunk.lines[end]) + if write_hide && REPL.ends_with_semicolon(chunk.lines[end]) write(iocode, "nothing #hide\n") end write(iocode, codefence.second, '\n') - write_code = !all(l -> endswith(l, "#hide"), chunk.lines) || (isdocumenter(config) && !execute) - write_code && write(iomd, seekstart(iocode)) + any(write_line, chunk.lines) && write(iomd, seekstart(iocode)) if execute execute_markdown!(iomd, sb, join(chunk.lines, '\n'), outputdir; inputfile=config["literate_inputfile"],