@@ -15,7 +15,7 @@ function CodeBlock(el)
15
15
end
16
16
17
17
-- reads yaml to obtain desired header for code appendix
18
- -- writes appendix to txt file if desired
18
+ -- writes appendix to file
19
19
function Meta (m )
20
20
21
21
if m [" code-appendix-title" ] ~= nil then
@@ -30,19 +30,39 @@ function Meta(m)
30
30
codeAppendixHeaderLevel = 1
31
31
end
32
32
33
- -- write appendix to text file
34
33
if m [" code-appendix-write" ] ~= nil then
34
+ codeAppendixWrite = m [" code-appendix-write" ]
35
+ else
36
+ codeAppendixWrite = true
37
+ end
38
+
39
+ -- write appendix to file
40
+ if m [" code-appendix-file" ] ~= nil then
41
+
42
+ codeAppendixFile = pandoc .utils .stringify (m [" code-appendix-file" ])
43
+ codeAppendixExt = codeAppendixFile :match (" %.[^.]+$" )
35
44
36
- codeAppendixWrite = pandoc .utils .stringify (m [" code-appendix-write" ])
45
+ if codeAppendixExt == nil then
46
+ codeAppendixExt = " .md"
47
+ codeAppendixFile = codeAppendixFile .. codeAppendixExt
48
+ end
37
49
38
- if codeAppendixWrite == " true" then
39
- local f = io.open (pandoc .system .get_working_directory () .. ' /code-appendix.txt' , ' w' )
40
- for index , value in ipairs (pandoc .List (appendix )) do
41
- f :write (pandoc .List (appendix )[index ].text .. " \n\n " )
50
+ local f = io.open (pandoc .system .get_working_directory () .. " /" .. codeAppendixFile , ' w' )
51
+
52
+ for index , value in ipairs (pandoc .List (appendix )) do
53
+ if codeAppendixExt == " .md" or codeAppendixExt == " .qmd" then
54
+ f :write (
55
+ " ```" .. " \n " .. pandoc .List (appendix )[index ].text .. " \n " .. " ```" .. " \n\n "
56
+ )
57
+ else
58
+ f :write (
59
+ pandoc .List (appendix )[index ].text .. " \n\n "
60
+ )
42
61
end
43
- f :close ()
44
62
end
45
-
63
+
64
+ f :close ()
65
+
46
66
end
47
67
48
68
return m
51
71
52
72
-- append pandoc document with source code
53
73
function Pandoc (doc )
54
-
55
- appendixHeader = pandoc .Header (codeAppendixHeaderLevel , codeAppendixTitle )
56
- doc .blocks :extend (pandoc .List ({appendixHeader }))
57
- doc .blocks :extend (pandoc .List (appendix ))
74
+
75
+ if codeAppendixWrite then
76
+ appendixHeader = pandoc .Header (codeAppendixHeaderLevel , codeAppendixTitle )
77
+ doc .blocks :extend (pandoc .List ({appendixHeader }))
78
+ doc .blocks :extend (pandoc .List (appendix ))
79
+ end
58
80
59
81
return doc
60
82
0 commit comments