initial
This commit is contained in:
8
_extensions/jmgirard/details/_extension.yml
Normal file
8
_extensions/jmgirard/details/_extension.yml
Normal file
@ -0,0 +1,8 @@
|
||||
title: Details
|
||||
author: Jeffrey Girard
|
||||
version: 1.0.0
|
||||
quarto-required: ">=1.6.0"
|
||||
contributes:
|
||||
shortcodes:
|
||||
- details.lua
|
||||
|
60
_extensions/jmgirard/details/details.lua
Normal file
60
_extensions/jmgirard/details/details.lua
Normal file
@ -0,0 +1,60 @@
|
||||
-- dtext shortcode
|
||||
function dtext(args, kwargs, meta)
|
||||
local function buildDetails(text, summary, open)
|
||||
local details = {
|
||||
'<p>',
|
||||
'<details' .. open .. '>',
|
||||
'<summary>' .. summary .. '</summary>',
|
||||
'<blockquote>' .. text .. '</blockquote>',
|
||||
'</details>',
|
||||
'</p>'
|
||||
}
|
||||
return table.concat(details, "")
|
||||
end
|
||||
local text = pandoc.utils.stringify(args[1] or 'Add content here.')
|
||||
local summary = (#kwargs["summary"] > 0) and kwargs["summary"] or "Details"
|
||||
local open = ""
|
||||
if table.concat(args, " ", 2):find("open") then
|
||||
open = " open"
|
||||
end
|
||||
local output = buildDetails(text, summary, open)
|
||||
if quarto.doc.isFormat("html:js") then
|
||||
return pandoc.RawInline('html', output)
|
||||
else
|
||||
return pandoc.Null()
|
||||
end
|
||||
end
|
||||
|
||||
-- dstart shortcode
|
||||
function dstart(args, kwargs, meta)
|
||||
local function buildDetails(summary, open)
|
||||
local details = {
|
||||
'<p>',
|
||||
'<details' .. open .. '>',
|
||||
'<summary>' .. summary .. '</summary>',
|
||||
'<blockquote>'
|
||||
}
|
||||
return table.concat(details, "")
|
||||
end
|
||||
local summary = (#kwargs["summary"] > 0) and kwargs["summary"] or "Details"
|
||||
local open = ""
|
||||
if table.concat(args, " "):find("open") then
|
||||
open = " open"
|
||||
end
|
||||
local output = buildDetails(summary, open)
|
||||
if quarto.doc.isFormat("html:js") then
|
||||
return pandoc.RawInline('html', output)
|
||||
else
|
||||
return pandoc.Null()
|
||||
end
|
||||
end
|
||||
|
||||
-- dstop shortcode
|
||||
function dstop(args, kwargs, meta)
|
||||
local output = table.concat({'</blockquote>', '</details>', '</p>'}, "")
|
||||
if quarto.doc.isFormat("html:js") then
|
||||
return pandoc.RawInline('html', output)
|
||||
else
|
||||
return pandoc.Null()
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user