summaryrefslogtreecommitdiff
path: root/sandbox/aahz/Effective/EffParser.py
blob: ee281d571c79f60a2e024332d8a09245b4e998fc (plain)
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
import sys
import os

from docutils import nodes
from docutils.parsers.rst import directives
from docutils.parsers.rst.languages import en

import sys
from warnings import warn
import re

import docutils
from docutils import nodes, utils, writers, languages

from docutils.parsers import rst

en.roles['chapter'] = 'chapter'
en.roles['figure'] = 'figure'
en.roles['item'] = 'item'
en.roles['list'] = 'list'

class Inliner(rst.states.Inliner):
    _interpreted_roles = rst.states.Inliner._interpreted_roles.copy()
    _interpreted_roles.update({
        'chapter': 'chapter_role',
        'figure': 'figure_role',
        'item': 'item_role',
        'list': 'list_role',
        })

    def chapter_role(self, role, rawtext, text, lineno):
        return [nodes.emphasis(rawtext, text)], []

    def figure_role(self, role, rawtext, text, lineno):
        return [nodes.emphasis(rawtext, text)], []

    def item_role(self, role, rawtext, text, lineno):
        return [nodes.emphasis(rawtext, text)], []

    def list_role(self, role, rawtext, text, lineno):
        return [nodes.emphasis(rawtext, text)], []

class Parser(rst.Parser):
    def __init__(self, *args, **kwargs):
        rst.Parser.__init__(self, *args, **kwargs)