Sha256: 0134b41e1dcf9a2a6790f7b01539b846dee4aa515dc08f6926e6c17f03a882b3

Contents?: true

Size: 1.09 KB

Versions: 6

Compression:

Stored size: 1.09 KB

Contents

import sys
from docutils.core import publish_parts
from optparse import OptionParser
from docutils.frontend import OptionParser as DocutilsOptionParser
from docutils.parsers.rst import Parser

def transform(writer=None, part=None):
    p = OptionParser(add_help_option=False)
    
    # Collect all the command line options
    docutils_parser = DocutilsOptionParser(components=(writer, Parser()))
    for group in docutils_parser.option_groups:
        p.add_option_group(group.title, None).add_options(group.option_list)
    
    p.add_option('--part', default=part)
    
    opts, args = p.parse_args()
    
    settings = dict({
        'file_insertion_enabled': False,
        'raw_enabled': False,
    }, **opts.__dict__)
    
    if len(args) == 1:
        try:
            content = open(args[0], 'r').read()
        except IOError:
            content = args[0]
    else:
        content = sys.stdin.read()
    
    parts = publish_parts(
        source=content,
        settings_overrides=settings,
        writer=writer,
    )
    
    if opts.part in parts:
        return parts[opts.part]
    return ''

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
RbST-0.2.0 lib/rst2parts/transform.py
RbST-0.1.3 lib/rst2parts/transform.py
RbST-0.1.2 lib/rst2parts/transform.py
RbST-0.1.1 lib/rst2parts/transform.py
RbST-0.1.0 lib/rst2parts/transform.py
RbST-0.0.2 lib/rst2parts/transform.py