| import sys |
| from epydoc.markup import DocstringLinker |
| from epydoc.markup.epytext import parse_docstring, ParseError, _colorize |
| import epydoc.markup.epytext |
| |
| def _add_para(doc, para_token, stack, indent_stack, errors): |
| """Colorize the given paragraph, and add it to the DOM tree.""" |
| para = _colorize(doc, para_token, errors) |
| if para_token.inline: |
| para.attribs['inline'] = True |
| stack[-1].children.append(para) |
| |
| epydoc.markup.epytext._add_para = _add_para |
| |
| def is_fatal(): |
| return False |
| |
| ParseError.is_fatal = is_fatal |
| |
| try: |
| src = sys.stdin.read() |
| errors = [] |
| |
| class EmptyLinker(DocstringLinker): |
| def translate_indexterm(self, indexterm): |
| return "" |
| |
| def translate_identifier_xref(self, identifier, label=None): |
| return identifier |
| |
| docstring = parse_docstring(src, errors) |
| docstring, fields = docstring.split_fields() |
| html = docstring.to_html(EmptyLinker()) |
| |
| if errors and not html: |
| sys.stderr.write("Error parsing docstring:\n") |
| for error in errors: |
| sys.stderr.write(str(error) + "\n") |
| sys.exit(1) |
| |
| sys.stdout.write(html) |
| sys.stdout.flush() |
| except: |
| exc_type, exc_value, exc_traceback = sys.exc_info() |
| sys.stderr.write("Error calculating docstring: " + str(exc_value)) |
| sys.exit(1) |