summaryrefslogtreecommitdiff
path: root/rst_context.lua
diff options
context:
space:
mode:
Diffstat (limited to 'rst_context.lua')
-rw-r--r--rst_context.lua85
1 files changed, 61 insertions, 24 deletions
diff --git a/rst_context.lua b/rst_context.lua
index 692f458..d8b8516 100644
--- a/rst_context.lua
+++ b/rst_context.lua
@@ -629,34 +629,43 @@ end
--------------------------------------------------------------------------------
-- TODO define proper setups (probably bnf-like and some narrower for def-paragraphs)
-function rst_context.deflist (str)
- return [[
+function rst_context.deflist (list)
+ rst_context.addsetups("deflist")
-\\startdefinitionlist
-]] .. str .. [[
+ local deflist = [[
+\\startRSTdefinitionlist
+]]
+ for nd, item in ipairs(list) do
+ print(#item)
+ local term = item[1]
+ local nc = 2
+ local tmp = [[
+
+ \\RSTdeflistterm{]] .. string.strip(term) .. "}"
+ if #item > 2 then
+ while nc < #item do
+ tmp = tmp .. [[
+
+ \\RSTdeflistclassifier{]] .. string.strip(item[nc]) .. "}"
+ nc = nc + 1
+ end
+ end
+ tmp = tmp .. [[
-\\stopdefinitionlist
+ \\RSTdeflistdefinition{%
]]
-end
-
-function rst_context.deflist_item (str)
- return [[\\definitionitem{%]] .. str .. [[}% end definition item]]
-end
-
-function rst_context.deflist_classifier (str)
- return [[\\definitionclassifier{]] .. str .. [[}]]
-end
-
-function rst_context.deflist_term (str)
- return [[
-
- \\definitionterm{]] .. str .. [[}]]
-end
+ for np, par in ipairs(item[#item]) do -- definitions, multi-paragraph
+ tmp = tmp .. [[
+ \\RSTdeflistparagraph{%
+]] .. inline_parser:match(par) .. "}\n"
+ end
+ tmp = tmp .. " }"
+ deflist = deflist .. tmp
+ end
+ return deflist .. [[
-function rst_context.deflist_def (str)
- return [[
-
- \\definitiondef{%]] .. str .. [[}]]
+\\stopRSTdefinitionlist
+]]
end
--------------------------------------------------------------------------------
@@ -1163,11 +1172,39 @@ end
function optional_setups.blockquote ()
return [[
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Blockquotes %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setupdelimitedtext [blockquote][style={\tfx}] % awful placeholder
\definedelimitedtext[attribution][blockquote]
\setupdelimitedtext [attribution][style={\tfx\it}]
]]
end
+function optional_setups.deflist ()
+ return [[
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Definitionlist %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\startRSTdefinitionlist{
+ \bgroup
+ \def \RSTdeflistterm##1{{\bf ##1}}
+ \def\RSTdeflistclassifier##1{\hbox to 1em{\it ##1}}
+ \def\RSTdeflistdefinition##1{%
+ \startnarrower[left]
+ ##1%
+ \stopnarrower}
+ \def\RSTdeflistparagraph ##1{%
+ \startparagraph{%
+ \noindentation ##1
+ \stopparagraph}
+ }
+}
+
+\let\stopRSTdefinitionlist\egroup
+]]
+end
return rst_context