# Wiki "dump" format. -*- coding: utf-8 -*- # Copyright (C) 2015-2018 Sergey Poznyakoff # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . from __future__ import print_function from WikiTrans.wikitoken import * import json from WikiTrans.wikimarkup import WikiMarkup class DumpReferences(object): idx = 0 def __len__(self): return self.idx + 1 def append(self, obj): self.idx += 1 class DumpWikiMarkup(WikiMarkup): indent = None references = DumpReferences() def __init__(self, **kwarg): n = kwarg.pop('indent', None) if n != None: self.indent = int(n) WikiMarkup.__init__(self, **kwarg) def __str__(self): return json.dumps(self.tree, cls=WikiNodeEncoder, indent=self.indent, separators=(',',': '), sort_keys=True)