1 #!/usr/bin/env python 2 3 """ 4 Moin wiki format tools. 5 6 Copyright (C) 2017, 2018 Paul Boddie <paul@boddie.org.uk> 7 8 This program is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free Software 10 Foundation; either version 3 of the License, or (at your option) any later 11 version. 12 13 This program is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 15 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 16 details. 17 18 You should have received a copy of the GNU General Public License along with 19 this program. If not, see <http://www.gnu.org/licenses/>. 20 """ 21 22 from moinformat.links import make_linker 23 from moinformat.parsers import parse, parsers as all_parsers 24 from moinformat.serialisers import serialise, serialisers as all_serialisers 25 26 def get_parser(name="moin"): 27 28 "Return the parser class supporting the format with the given 'name'." 29 30 return all_parsers[name] 31 32 def make_parser(name="moin"): 33 34 "Return a parser instance for the format with the given 'name'." 35 36 return get_parser(name)(all_parsers) 37 38 def get_serialiser(name): 39 40 "Return the main serialiser class for the format having the given 'name'." 41 42 return all_serialisers["%s.moin" % name] 43 44 def make_serialiser(name, linker=None): 45 46 """ 47 Return a serialiser instance for the format having the given 'name'. 48 49 The optional 'linker' is used to control which linking scheme is used with 50 the serialiser, with the default having the same name as the serialiser. 51 """ 52 53 linker = linker or make_linker(name, "") 54 return get_serialiser(name)(formats=all_serialisers, linker=linker) 55 56 # vim: tabstop=4 expandtab shiftwidth=4