diff options
Diffstat (limited to 'rst_context.lua')
-rw-r--r-- | rst_context.lua | 85 |
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 |