rst2html.py
def yield_sphinx_only_markup(lines):
    """
    :param file_inp:     a `filename` or ``sys.stdin``?
    :param file_out:     a `filename` or ``sys.stdout`?`

    """
    substs = [
        ## Selected Sphinx-only Roles.
        #
        (r':abbr:`([^`]+)`',        r'\1'),
        (r':ref:`([^`]+)`',         r'`\1`_'),
        (r':term:`([^`]+)`',        r'**\1**'),
        (r':dfn:`([^`]+)`',         r'**\1**'),
        (r':(samp|guilabel|menuselection):`([^`]+)`',        r'``\2``'),


        ## Sphinx-only roles:
        #        :foo:`bar`   --> foo(``bar``)
        #        :a:foo:`bar` XXX afoo(``bar``)
        #
        #(r'(:(\w+))?:(\w+):`([^`]*)`', r'\2\3(``\4``)'),
        (r':(\w+):`([^`]*)`', r'\1(``\2``)'),


        ## Sphinx-only Directives.
        #
        (r'\.\. doctest',           r'code-block'),
        (r'\.\. plot::',            r'.. '),
        (r'\.\. seealso',           r'info'),
        (r'\.\. glossary',          r'rubric'),
        (r'\.\. figure::',          r'.. '),


        ## Other
        #
        (r'\|version\|',              r'x.x.x'),
    ]

    regex_subs = [ (re.compile(regex, re.IGNORECASE), sub) for (regex, sub) in substs ]

    def clean_line(line):
        try:
            for (regex, sub) in regex_subs:
                line = regex.sub(sub, line)
        except Exception as ex:
            print("ERROR: %s, (line(%s)"%(regex, sub))
            raise ex

        return line

    for line in lines:
        yield clean_line(line)
def yield_sphinx_only_markup(lines):
    """
    :param file_inp:     a `filename` or ``sys.stdin``?
    :param file_out:     a `filename` or ``sys.stdout`?`

    """
    substs = [
        ## Selected Sphinx-only Roles.
        #
        (r':abbr:`([^`]+)`',        r'\1'),
        (r':ref:`([^`]+)`',         r'`\1`_'),
        (r':term:`([^`]+)`',        r'**\1**'),
        (r':dfn:`([^`]+)`',         r'**\1**'),
        (r':(samp|guilabel|menuselection):`([^`]+)`',        r'``\2``'),


        ## Sphinx-only roles:
        #        :foo:`bar`   --> foo(``bar``)
        #        :a:foo:`bar` XXX afoo(``bar``)
        #
        #(r'(:(\w+))?:(\w+):`([^`]*)`', r'\2\3(``\4``)'),
        (r':(\w+):`([^`]*)`', r'\1(``\2``)'),


        ## Sphinx-only Directives.
        #
        (r'\.\. doctest',           r'code-block'),
        (r'\.\. plot::',            r'.. '),
        (r'\.\. seealso',           r'info'),
        (r'\.\. glossary',          r'rubric'),
        (r'\.\. figure::',          r'.. '),


        ## Other
        #
        (r'\|version\|',              r'x.x.x'),
    ]

    regex_subs = [ (re.compile(regex, re.IGNORECASE), sub) for (regex, sub) in substs ]

    def clean_line(line):
        try:
            for (regex, sub) in regex_subs:
                line = regex.sub(sub, line)
        except Exception as ex:
            print("ERROR: %s, (line(%s)"%(regex, sub))
            raise ex

        return line

    for line in lines:
        yield clean_line(line)
def yield_sphinx_only_markup ( lines ) : substs = [ ## Selected Sphinx-only Roles. # ( r':abbr:`([^`]+)`' , r'\1' ) , ( r':ref:`([^`]+)`' , r'`\1`_' ) , ( r':term:`([^`]+)`' , r'**\1**' ) , ( r':dfn:`([^`]+)`' , r'**\1**' ) , ( r':(samp|guilabel|menuselection):`([^`]+)`' , r'``\2``' ) , ## Sphinx-only roles: #        :foo:`bar`   --> foo(``bar``) #        :a:foo:`bar` XXX afoo(``bar``) # #(r'(:(\w+))?:(\w+):`([^`]*)`', r'\2\3(``\4``)'), ( r':(\w+):`([^`]*)`' , r'\1(``\2``)' ) , ## Sphinx-only Directives. # ( r'\.\. doctest' , r'code-block' ) , ( r'\.\. plot::' , r'.. ' ) , ( r'\.\. seealso' , r'info' ) , ( r'\.\. glossary' , r'rubric' ) , ( r'\.\. figure::' , r'.. ' ) , ## Other # ( r'\|version\|' , r'x.x.x' ) , ] regex_subs = [ ( re . compile ( regex , re . IGNORECASE ) , sub ) for ( regex , sub ) in substs ] def clean_line ( line ) : try : for ( regex , sub ) in regex_subs : line = regex . sub ( sub , line ) except Exception as ex : print ( "ERROR: %s, (line(%s)" % ( regex , sub ) ) raise ex return line for line in lines : yield clean_line ( line )
:param file_inp:     a `filename` or ``sys.stdin``?
    :param file_out:     a `filename` or ``sys.stdout`?`
: param file_inp : a filename or sys . stdin ? : param file_out : a filename or sys . stdout ?