#!/usr/bin/python3 # -*- coding: utf-8 -*- from exporter import DocExporter class HtmlExporter(DocExporter): """Exporte une documentation sous forme HTML.""" def open(self, name, fullname): """Initialise les propriétés utiles.""" self._filename = fullname + '.html' self._fd = open(self._filename, 'w') self._fd.write("""\ Documentation """) def close(self): """Termine l'édition de la documentation.""" self._fd.write(""" """) self._fd.close() def _normalize_desc(self, desc): """S'assure d'un bon rendu HTML d'un commentaire prévu pour.""" return desc.replace(" ", " ").replace("<", "<").replace(">", ">").replace("\n", "
") 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._fd.write('

Sub modules

') self._fd.write('') def show_list_sub_classes(self, parent, classes, builder): """Affiche des renvois vers les sous-parties présentes.""" if len(classes) > 0: self._fd.write('

Classes

') self._fd.write('') def describe_module(self, desc): """Affiche la description du module courant.""" self._fd.write('

Description

') self._fd.write('

%s

' % self._normalize_desc(desc)) def start_main_section(self, title): """Affiche un en-tête pour la zone des classes.""" self._fd.write('

%s

' % title) def show_class_info(self, name, desc): """Affiche les informations générales d'une classe.""" self._fd.write('

%s

' % (name, name)) self._fd.write('

%s

' % self._normalize_desc(desc)) def show_info_section(self, title): """Affiche une section d'informations particulières.""" self._fd.write('

%s

' % title) def print_hierarchy_level(self, fullname, name, page, level): """Affiche un élément hiérarchique.""" if level > 0: self._fd.write('') for i in range(level - 1): self._fd.write(' ' * 5) self._fd.write(' ╰── ') self._fd.write('') if page != None: self._fd.write('' % (page, name)) self._fd.write(fullname) if page != None: self._fd.write('') self._fd.write('
') def show_constant_info(self, name): """Affiche un élément de type 'constant'.""" self._fd.write('

%s

' % name) def show_data_info(self, name, value): """Affiche un élément de type 'donnée'.""" self._fd.write('

%s = %s

' % (name, self._normalize_desc(value))) def show_attribute_info(self, name, desc): """Affiche un élément de type 'attribut'.""" self._fd.write('

%s

%s

' % (name, self._normalize_desc(desc))) def show_callable_info(self, ret, name, args, desc): """Affiche un élément de type 'routine'.""" if args == None: args = '()' self._fd.write('

%s(%s)

%s

' % (name, args, self._normalize_desc(desc)))