local-writer.py 966 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. # -*- coding: utf-8 -*-
  2. # $Id: local-writer.py 7500 2012-08-22 19:38:14Z grubert $
  3. # Author: Engelbert Gruber <grubert@users.sourceforge.net>
  4. # Copyright: This module is put into the public domain.
  5. """
  6. mini-writer to test get_writer_class with local writer
  7. """
  8. import docutils
  9. from docutils import nodes, writers, languages
  10. try:
  11. import roman
  12. except ImportError:
  13. import docutils.utils.roman as roman
  14. class Writer(writers.Writer):
  15. supported = ('dummy',)
  16. """Formats this writer supports."""
  17. output = None
  18. """Final translated form of `document`."""
  19. def __init__(self):
  20. writers.Writer.__init__(self)
  21. self.translator_class = Translator
  22. def translate(self):
  23. visitor = self.translator_class(self.document)
  24. self.document.walkabout(visitor)
  25. self.output = visitor.astext()
  26. class Translator(nodes.NodeVisitor):
  27. def __init__(self, document):
  28. nodes.NodeVisitor.__init__(self, document)