summaryrefslogtreecommitdiff
path: root/tools/gendocs/exporters/mediawiki.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gendocs/exporters/mediawiki.py')
-rw-r--r--tools/gendocs/exporters/mediawiki.py156
1 files changed, 156 insertions, 0 deletions
diff --git a/tools/gendocs/exporters/mediawiki.py b/tools/gendocs/exporters/mediawiki.py
new file mode 100644
index 0000000..d994dae
--- /dev/null
+++ b/tools/gendocs/exporters/mediawiki.py
@@ -0,0 +1,156 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+
+import pywikibot
+from exporter import DocExporter
+
+
+class MWExporter(DocExporter):
+ """Exporte une documentation vers un site Mediawiki."""
+
+
+ def open(self, name, fullname):
+ """Initialise les propriétés utiles."""
+
+ self._site = pywikibot.Site()
+ self._page = pywikibot.Page(self._site, self._build_page_name(fullname))
+
+ self._content = '__NOTOC__'
+ self._content += '\n'
+
+
+ def close(self):
+ """Termine l'édition de la documentation."""
+
+ if self._content != self._page.text:
+ self._page.text = self._content
+ self._page.save('API update')
+
+
+ def _build_page_name(self, orig):
+ """Définit le nom final d'une page faisant référence à un module."""
+
+ return orig + ' Python Module'
+
+
+ def show_list_sub_modules(self, gparent, parent, others, builder):
+ """Affiche des renvois vers les sous-parties présentes."""
+
+ if len(others) > 0 or gparent != None:
+
+ self._content += '<div class="h2">\n==Sub modules==\n</div>\n'
+
+ if gparent != None:
+ self._content += '* [[%s|..]]\n' % self._build_page_name(gparent)
+
+ for o in others:
+ fullname = builder(parent, o._name)
+ self._content += '* [[%s|%s]]\n' % (self._build_page_name(fullname), fullname)
+
+
+ def show_list_sub_classes(self, parent, classes, builder):
+ """Affiche des renvois vers les sous-parties présentes."""
+
+ if len(classes) > 0:
+
+ self._content += '<div class="h2">\n==Classes==\n</div>\n'
+
+ for cls in classes:
+ self._content += '* [[%s#%s|%s]]\n' % (self._build_page_name(parent), cls, builder(parent, cls))
+
+
+ def describe_module(self, desc):
+ """Affiche la description du module courant."""
+
+ self._content += '<div class="h2">\n==Description==\n</div>\n'
+
+ self._content += '<div class="fakepre info">%s</div>\n' % desc
+
+
+ def start_main_section(self, title):
+ """Affiche un en-tête pour la zone des classes."""
+
+ self._content += '<div class="h1">\n=%s=\n</div>\n' % title
+
+
+ def show_class_info(self, name, desc):
+ """Affiche les informations générales d'une classe."""
+
+ self._content += '<div id="%s" class="h2">\n==%s==\n</div>\n' % (name, name)
+
+ self._content += '<pre class="fakepre info">%s</pre>\n' % desc
+
+
+ def show_info_section(self, title):
+ """Affiche une section d'informations particulières."""
+
+ self._content += '<div class="h3">\n===%s===\n</div>\n' % title
+
+
+ def begin_hierarchy_level(self):
+ """Démarre une arborescence hiérarchique."""
+
+ self._content += '<div class="fakepre treeclasses">\n'
+
+
+ def terminate_hierarchy_level(self):
+ """Arrête une arborescence hiérarchique."""
+
+ self._content += '</div>\n\n'
+
+
+ def print_hierarchy_level(self, fullname, name, page, level):
+ """Affiche un élément hiérarchique."""
+
+ if level > 0:
+
+ for i in range(level - 1):
+ self._content += ' ' * 5
+
+ self._content += ' ╰── '
+
+ if page != None:
+ self._content += '[[%s#%s|' % (self._build_page_name(page), name)
+
+ self._content += fullname
+
+ if page != None:
+ self._content += ']]'
+
+ self._content += '\n'
+
+
+ def show_constant_info(self, name):
+ """Affiche un élément de type 'constant'."""
+
+ self._content += '\n'
+ self._content += '<span class="constant_name">%s</span>\n' % name
+
+
+ def show_data_info(self, name, value):
+ """Affiche un élément de type 'donnée'."""
+
+ self._content += '\n'
+ self._content += '<span class="data_name">%s</span> = ' % name
+ self._content += '<span class="data_value">%s</span>\n' % value
+
+
+ def show_attribute_info(self, name, desc):
+ """Affiche un élément de type 'attribut'."""
+
+ self._content += '\n'
+ self._content += '<span class="property_name">%s</span>\n' % name
+ self._content += '\n'
+ self._content += '<span class="property_desc">%s</span>\n' % desc
+
+
+ def show_callable_info(self, ret, name, args, desc):
+ """Affiche un élément de type 'routine'."""
+
+ if args == None:
+ args = '()'
+
+ self._content += '\n'
+ self._content += '<span class="callable_name">%s</span>(%s)\n' % (name, args)
+ self._content += '\n'
+ self._content += '<pre class="fakepre callable_desc">%s</pre>\n' % desc