diff options
Diffstat (limited to 'includes/pear/Text/Wiki/Render/Latex/List.php')
| -rw-r--r-- | includes/pear/Text/Wiki/Render/Latex/List.php | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/includes/pear/Text/Wiki/Render/Latex/List.php b/includes/pear/Text/Wiki/Render/Latex/List.php new file mode 100644 index 0000000..ff76aed --- /dev/null +++ b/includes/pear/Text/Wiki/Render/Latex/List.php @@ -0,0 +1,76 @@ +<?php + + +class Text_Wiki_Render_Latex_List extends Text_Wiki_Render { + /** + * + * Renders a token into text matching the requested format. + * + * This rendering method is syntactically and semantically compliant + * with XHTML 1.1 in that sub-lists are part of the previous list item. + * + * @access public + * + * @param array $options The "options" portion of the token (second + * element). + * + * @return string The text rendered from the token options. + * + */ + + function token($options) + { + // make nice variables (type, level, count) + extract($options); + + switch ($type) + { + case 'bullet_list_start': + return "\\begin{itemize}\n"; + + case 'bullet_list_end': + return "\\end{itemize}\n"; + + case 'number_list_start': + $depth = 'enumi' . str_pad('', $level, 'i'); + $enum = '\arabic'; + if (isset($format)) { + switch ($format) { + case 'a': + $enum = '\alph'; + break; + case 'A': + $enum = '\Alph'; + break; + case 'i': + $enum = '\roman'; + break; + case 'I': + $enum = '\Roman'; + break; + } + } + return '\renewcommand{\labelenumi}{' . $enum . '{' . $depth . + "}}\n\\begin{enumerate}\n"; + + case 'number_list_end': + return "\\end{enumerate}\n"; + + case 'bullet_item_start': + case 'number_item_start': + return '\item{'; + + case 'bullet_item_end': + case 'number_item_end': + return "}\n"; + + default: + // ignore item endings and all other types. + // item endings are taken care of by the other types + // depending on their place in the list. + return ''; + break; + } + } +} +?> |
