Fixing established box.
This commit is contained in:
parent
5596bb2736
commit
c5dde5ffd0
|
|
@ -257,7 +257,8 @@
|
|||
}
|
||||
],
|
||||
"direction": "horizontal",
|
||||
"width": 200
|
||||
"width": 200,
|
||||
"collapsed": true
|
||||
},
|
||||
"left-ribbon": {
|
||||
"hiddenItems": {
|
||||
|
|
@ -274,6 +275,7 @@
|
|||
},
|
||||
"active": "b8c0b940e83a0cce",
|
||||
"lastOpenFiles": [
|
||||
"conf/sedSNuLNp",
|
||||
"chapters/00_Introduction.md",
|
||||
"chapters/01_Getting_Started.md",
|
||||
"chapters/02_Features.md",
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -19,6 +19,7 @@ For Debian / ZorinOS and likely Ubuntu based systems.
|
|||
|
||||
#### Code Editor
|
||||
|
||||
|
||||
> [!established] Code Editor
|
||||
> [VSCodium](https://vscodium.com/) is recommend for privacy (telemetry/tracking) reasons
|
||||
> - https://vscodium.com/
|
||||
|
|
|
|||
|
|
@ -10,46 +10,58 @@ local callout_env_map = {
|
|||
}
|
||||
|
||||
|
||||
function BlockQuote(el)
|
||||
if #el.content > 0 and el.content[1].t == "Para" then
|
||||
local firstPara = el.content[1]
|
||||
if #firstPara.content > 0 and firstPara.content[1].t == "Str" then
|
||||
local firstWord = firstPara.content[1].text
|
||||
local calloutType = firstWord:match("^%[%!(%w+)%]$")
|
||||
if calloutType and callout_env_map[calloutType] then
|
||||
-- remove the [!type] marker
|
||||
table.remove(firstPara.content, 1)
|
||||
-- remove one following space if present
|
||||
if #firstPara.content > 0 and firstPara.content[1].t == "Space" then
|
||||
function BlockQuote(el)
|
||||
if #el.content > 0 and el.content[1].t == "Para" then
|
||||
local firstPara = el.content[1]
|
||||
if #firstPara.content > 0 and firstPara.content[1].t == "Str" then
|
||||
local firstWord = firstPara.content[1].text
|
||||
local calloutType = firstWord:match("^%[%!(%w+)%]$")
|
||||
|
||||
if calloutType and callout_env_map[calloutType] then
|
||||
-- 1. Remove the [!type] marker
|
||||
table.remove(firstPara.content, 1)
|
||||
end
|
||||
|
||||
-- gather optional custom title (may contain spaces)
|
||||
local titleInlines = {}
|
||||
while #firstPara.content > 0 do
|
||||
local t = firstPara.content[1].t
|
||||
if t == "SoftBreak" then
|
||||
-- 2. Remove one following space if present
|
||||
if #firstPara.content > 0 and firstPara.content[1].t == "Space" then
|
||||
table.remove(firstPara.content, 1)
|
||||
break
|
||||
elseif t == "Space" or t == "Str" or t == "Emph" or t == "Strong" or t == "Code" then
|
||||
table.insert(titleInlines, table.remove(firstPara.content, 1))
|
||||
else
|
||||
break
|
||||
end
|
||||
|
||||
-- 3. Gather optional custom title
|
||||
local titleInlines = {}
|
||||
while #firstPara.content > 0 do
|
||||
local t = firstPara.content[1].t
|
||||
if t == "SoftBreak" then
|
||||
table.remove(firstPara.content, 1)
|
||||
break
|
||||
elseif t == "Space" or t == "Str" or t == "Emph" or t == "Strong" or t == "Code" then
|
||||
table.insert(titleInlines, table.remove(firstPara.content, 1))
|
||||
else
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
local customTitle = pandoc.utils.stringify(pandoc.Span(titleInlines))
|
||||
customTitle = customTitle:gsub("^%s+", ""):gsub("%s+$", "")
|
||||
if customTitle == "" then customTitle = nil end
|
||||
|
||||
-- 4. Map to LaTeX environment
|
||||
local env = callout_env_map[calloutType]
|
||||
local titleOption = customTitle and ("[" .. customTitle .. "]") or "[]"
|
||||
|
||||
-- 5. Handle the Margin Issue
|
||||
-- We add \par and \medskip specifically for 'established'
|
||||
local prefix = ""
|
||||
if calloutType == "established" then
|
||||
prefix = "\\par\\medskip\\noindent\n"
|
||||
end
|
||||
|
||||
-- 6. Construct the LaTeX block
|
||||
local latex = prefix .. "\\begin{" .. env .. "}" .. titleOption .. "\n"
|
||||
.. pandoc.write(pandoc.Pandoc(el.content), "latex")
|
||||
.. "\n\\end{" .. env .. "}"
|
||||
|
||||
return pandoc.RawBlock("latex", latex)
|
||||
end
|
||||
local customTitle = pandoc.utils.stringify(pandoc.Span(titleInlines))
|
||||
customTitle = customTitle:gsub("^%s+", ""):gsub("%s+$", "")
|
||||
if customTitle == "" then customTitle = nil end
|
||||
|
||||
local env = callout_env_map[calloutType]
|
||||
local titleOption = customTitle and ("[" .. customTitle .. "]") or "[]"
|
||||
|
||||
local latex = "\\begin{" .. env .. "}" .. titleOption .. "\n"
|
||||
.. pandoc.write(pandoc.Pandoc(el.content), "latex")
|
||||
.. "\n\\end{" .. env .. "}"
|
||||
|
||||
return pandoc.RawBlock("latex", latex)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue