forked from ros-infrastructure/rep
-
Notifications
You must be signed in to change notification settings - Fork 1
/
docutils_readers_rep.py
47 lines (34 loc) · 1.53 KB
/
docutils_readers_rep.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# $Id: rep.py 4564 2006-05-21 20:44:42Z wiemann $
# Author: David Goodger <[email protected]>
# Copyright: This module has been placed in the public domain.
"""Python Enhancement Proposal (REP) Reader."""
__docformat__ = 'reStructuredText'
from docutils.readers import standalone
from docutils.transforms import frontmatter
import docutils_transforms_reps as reps
from docutils.parsers import rst
class Reader(standalone.Reader):
supported = ('rep',)
"""Contexts this reader supports."""
settings_spec = (
'REP Reader Option Defaults',
'The --rep-references and --rfc-references options (for the '
'reStructuredText parser) are on by default.',
())
config_section = 'rep reader'
config_section_dependencies = ('readers', 'standalone reader')
def get_transforms(self):
transforms = standalone.Reader.get_transforms(self)
# We have REP-specific frontmatter handling.
transforms.remove(frontmatter.DocTitle)
transforms.remove(frontmatter.SectionSubTitle)
transforms.remove(frontmatter.DocInfo)
transforms.extend([reps.Headers, reps.Contents, reps.TargetNotes])
return transforms
settings_default_overrides = {'rep_references': 1, 'rfc_references': 1}
inliner_class = rst.states.Inliner
def __init__(self, parser=None, parser_name=None):
"""`parser` should be ``None``."""
if parser is None:
parser = rst.Parser(rfc2822=1, inliner=self.inliner_class())
standalone.Reader.__init__(self, parser, '')