class MoinMoinWriter(): """ MoinMoin wiki syntax writer. Except for newline, linebreak, hrule, table_row_end and macro all commands don't add a newline at the end. Nothing is printed, all is returned. """ def newline(self): """ Prints nothing and appends a newline. """ return "\n" def linebreak(self): """ Print a froced linebreak (
). """ return "<
>\n" def hrule(self): """ Print a horizontal rule. """ return "----\n" def ulitem(self, text, level=1): """ Print a unordered list item with given level. """ whitespace = " " * level return f"{whitespace}* {text}" def olitem(self, text, level=1): """ Print a orderd list item with given level. """ whitespace = " " * level return f"{whitespace}1. {text}" def text(self, text, bold=False, italics=False): """ Just print the given text. """ if bold and italics: return f"*****{text}*****" elif bold: return f"***{text}***" elif italics: return f"**{text}**" else: return text def link(self, text, url, arguments="", display=False): if display: if arguments: return "{{" + url + f"|{text}|" + arguments + "}}" else: return "{{" + url + f"|{text}" + "}}" else: if arguments: return f"[[{url}|{text}|{arguments}]]" else: return f"[[{url}|{text}]]" def macro(self, macro, arguments=""): return f"<<{macro}({arguments})>>" def table_cell(self, text, arguments=""): if text: return f"||<{arguments}> {text} " else: return "||" def table_row_end(self): return "||\n"