# HG changeset patch # User Paul Boddie # Date 1532630557 -7200 # Node ID d3fb25874a0a8e7a3eb9a2797f78ff543be548ae # Parent 14630fa05ae7c8cf7d49b5637e5a43df941f070c Supported interwiki mapping details in the make_linker convenience function. Supported mapping arguments in the conversion script. Added an interwiki link to the relevant test. diff -r 14630fa05ae7 -r d3fb25874a0a convert.py --- a/convert.py Thu Jul 26 20:30:14 2018 +0200 +++ b/convert.py Thu Jul 26 20:42:37 2018 +0200 @@ -11,6 +11,7 @@ l = filenames = [] formats = [] pagenames = [] + mappings = [] tree = False macros = False @@ -32,6 +33,12 @@ l = formats continue + # Switch to collecting mappings. + + elif arg == "--mapping": + l = mappings + continue + # Switch to collecting page names. elif arg == "--pagename": @@ -43,6 +50,9 @@ else: l.append(arg) + if l is mappings: + continue + # Collect filenames normally. l = filenames @@ -54,6 +64,20 @@ filename = filenames[0] pagename = pagenames and pagenames[0] or split(filename)[-1] + # Derive a proper mapping from the given list of values. + + mapping = {} + key = None + + for arg in mappings: + if key is None: + key = arg + else: + mapping[key] = arg + key = None + + # Open the file, parse the content, serialise the document. + f = open(filename) try: p = make_parser() @@ -65,7 +89,7 @@ if tree: print d.prettyprint() else: - l = make_linker(format, pagename) + l = make_linker(format, pagename, mapping) s = make_serialiser(format, l) print serialise(d, s) finally: diff -r 14630fa05ae7 -r d3fb25874a0a moinformat/links/__init__.py --- a/moinformat/links/__init__.py Thu Jul 26 20:30:14 2018 +0200 +++ b/moinformat/links/__init__.py Thu Jul 26 20:42:37 2018 +0200 @@ -32,17 +32,17 @@ return linkers.get(name) -def make_linker(name, pagename): +def make_linker(name, pagename, mapping=None): """ Return a linking scheme handler with the given 'name' and using the given - 'pagename'. + 'pagename' and interwiki 'mapping'. """ linker_cls = get_linker(name) if not linker_cls: return None - return linker_cls(pagename) + return linker_cls(pagename, mapping) # vim: tabstop=4 expandtab shiftwidth=4 diff -r 14630fa05ae7 -r d3fb25874a0a tests/test_links.tree --- a/tests/test_links.tree Thu Jul 26 20:30:14 2018 +0200 +++ b/tests/test_links.tree Thu Jul 26 20:42:37 2018 +0200 @@ -22,3 +22,6 @@ Link Text Text + Link + Text + Text diff -r 14630fa05ae7 -r d3fb25874a0a tests/test_links.txt --- a/tests/test_links.txt Thu Jul 26 20:30:14 2018 +0200 +++ b/tests/test_links.txt Thu Jul 26 20:42:37 2018 +0200 @@ -1,3 +1,4 @@ Links: [[TopLevel|top-level]], [[/SubPage|sub-page]], [[/Sub/SubPage|sub-sub-page]], [[../Sibling|sibling]], [[../../ParentSibling|sibling of parent]], -[[http://www.python.org/|URL]], [[attachment:image.png|attachment]]. +[[http://www.python.org/|URL]], [[attachment:image.png|attachment]], +[[MoinMoin:RecentChanges|interwiki]].