def visit_reference(self, node): refuri = node.get('refuri', u'') if refuri.startswith(u'<<') and refuri.endswith(u'>>'): # moin macro macro_name = refuri[2:-2].split(u'(')[0] if macro_name == u"TableOfContents": arguments = refuri[2:-2].split(u'(')[1][:-1].split(u',') node = moin_page.table_of_content() self.open_moin_page_node(node) if arguments and arguments[0]: node.set(moin_page.outline_level, arguments[0]) return arguments = refuri[2:-2].split(u'(')[1][:-1].split(u',') self.open_moin_page_node( moin_page.part( attrib={moin_page.content_type: "x-moin/macro;name={0}".format(macro_name)})) if arguments: self.open_moin_page_node(moin_page.arguments()) for i in arguments: self.open_moin_page_node(moin_page.argument(children=[i])) self.close_moin_page_node() self.close_moin_page_node() self.open_moin_page_node(refuri) self.close_moin_page_node() return if not allowed_uri_scheme(refuri): return self.open_moin_page_node(moin_page.a(attrib={xlink.href: refuri}))
def visit_reference(self, node): refuri = node.get('refuri', u'') if refuri.startswith(u'<<') and refuri.endswith(u'>>'): # moin macro macro_name = refuri[2:-2].split(u'(')[0] if macro_name == u"TableOfContents": arguments = refuri[2:-2].split(u'(')[1][:-1].split(u',') node = moin_page.table_of_content() self.open_moin_page_node(node) if arguments and arguments[0]: node.set(moin_page.outline_level, arguments[0]) return arguments = refuri[2:-2].split(u'(')[1][:-1].split(u',') self.open_moin_page_node( moin_page.part( attrib={ moin_page.content_type:\ "x-moin/macro;name=%s" % macro_name, })) if arguments: self.open_moin_page_node(moin_page.arguments()) for i in arguments: self.open_moin_page_node(moin_page.argument(children=[i])) self.close_moin_page_node() self.close_moin_page_node() self.open_moin_page_node(refuri) self.close_moin_page_node() return self.open_moin_page_node(moin_page.a(attrib={xlink.href: refuri}))
def visit_reference(self, node): refuri = node.get('refuri', u'') if refuri.startswith(u'<<') and refuri.endswith(u'>>'): # moin macro macro_name = refuri[2:-2].split(u'(')[0] if macro_name == u"TableOfContents": arguments = refuri[2:-2].split(u'(')[1][:-1].split(u',') node = moin_page.table_of_content() self.open_moin_page_node(node) if arguments and arguments[0]: node.set(moin_page.outline_level, arguments[0]) return if macro_name == u"Include": # include macros are expanded by include.py similar to transclusions # rst include handles only wiki pages and does not support additional arguments like moinwiki arguments = refuri[2:-2].split(u'(')[1][:-1].split(u',') link = Iri(scheme=u'wiki.local', path=arguments) node = xinclude.include( attrib={ xinclude.href: link, moin_page.alt: refuri, moin_page.content_type: 'x-moin/macro;name=' + macro_name, }) self.open_moin_page_node(node) return try: arguments = refuri[2:-2].split(u'(')[1][:-1] except IndexError: arguments = u'' # <<DateTime>> self.open_moin_page_node( moin_page.inline_part( attrib={ moin_page.content_type: "x-moin/macro;name={0}".format(macro_name) })) if arguments: self.open_moin_page_node(moin_page.arguments()) self.open_moin_page_node(arguments) self.close_moin_page_node() self.close_moin_page_node() return if not allowed_uri_scheme(refuri): self.visit_error(node) return if refuri == u'': # build a link to a heading or an explicitly defined anchor refuri = Iri(scheme='wiki.local', fragment=node.attributes['name'].replace(' ', '_')) self.open_moin_page_node(moin_page.a(attrib={xlink.href: refuri}))
def _TableOfContents_repl(self, args, text, context_block): if not context_block: return text attrib = {} if args: try: level = int(args[0]) except ValueError: pass else: attrib[moin_page.outline_level] = str(level) return moin_page.table_of_content(attrib=attrib)
def _TableOfContents_repl(self, args, text, context_block): if not context_block: return text attrib = {} if args: try: level = int(args[0]) except ValueError: pass else: attrib[moin_page.outline_level] = str(level) return moin_page.table_of_content(attrib=attrib)