当前位置: 首页>>代码示例>>Python>>正文


Python rstcloth.RstCloth类代码示例

本文整理汇总了Python中utils.rstcloth.rstcloth.RstCloth的典型用法代码示例。如果您正苦于以下问题:Python RstCloth类的具体用法?Python RstCloth怎么用?Python RstCloth使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了RstCloth类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: generate_release_copy

def generate_release_copy(builder, release):
    r = RstCloth()

    r.directive('code-block', 'sh', block='header')
    r.newline(block='header')

    r.content('mkdir -p mongodb', 3, wrap=False, block='cmd')
    r.content('cp -R -n mongodb-{0}-{1}/ mongodb'.format(builder, release), 3, wrap=False, block='cmd')

    return r
开发者ID:RandomStuffs22,项目名称:docs-tools,代码行数:10,代码来源:releases.py

示例2: __init__

    def __init__(self, option):
        if not isinstance(option, Option):
            raise TypeError
        else:
            self.option = option

        self.rst = RstCloth()
开发者ID:RandomStuffs22,项目名称:docs-tools,代码行数:7,代码来源:options.py

示例3: __init__

    def __init__(self, steps):
        if not isinstance(steps, Steps):
            raise TypeError
        else:
            self.steps = steps

        self.current_step = 1
        self.rst = RstCloth()
        self.hook()
开发者ID:TylerBrock,项目名称:docs-tools,代码行数:9,代码来源:steps.py

示例4: generate_release_untar

def generate_release_untar(builder, release):
    r = RstCloth()

    r.directive('code-block', 'sh', block='header')
    r.newline(block='header')

    r.content('tar -zxvf mongodb-{0}-{1}.tgz'.format(builder, release), 3, wrap=False, block='cmd')

    return r
开发者ID:RandomStuffs22,项目名称:docs-tools,代码行数:9,代码来源:releases.py

示例5: __init__

    def __init__(self, imported_table, widths=None, indent=0):
        self.table = imported_table
        self.indent = indent

        if widths is not None:
            self.widths = [ str(i) for i in widths ]
        else:
            self.widths = None

        self.r = RstCloth()
        self._render_table()
        self.output = self.r.data
开发者ID:MarkTseng,项目名称:docs-tools,代码行数:12,代码来源:table.py

示例6: generate_hash_file

def generate_hash_file(fn):
    r = RstCloth()

    if os.path.exists(fn):
        with open(fn, 'r') as f:
            existing = f.read()
    else:
        existing = []

    commit = get_commit()

    r.directive('|commit| replace', '``{0}``'.format(commit))

    try:
        if r.data == existing[:-1]:
            logger.info('no new commit(s), not updating {0} ({1})'.format(fn, commit[:10]))
            return True
    except TypeError:
        logger.warning('problem generating {0}, continuing'.format(fn))
        with file(fn, 'a'):
            os.utime(fn, times)
    else:
        r.write(fn)
        logger.info('regenerated {0} with new commit hash: {1}'.format(fn, commit[:10]))
开发者ID:MarkTseng,项目名称:docs-tools,代码行数:24,代码来源:hash.py

示例7: generate_hash_file

def generate_hash_file(fn):
    r = RstCloth()

    if os.path.exists(fn):
        with open(fn, 'r') as f:
            existing = f.read()
    else:
        existing = []

    commit = get_commit()

    r.directive('|commit| replace', '``{0}``'.format(commit))

    try:
        if r.get_block('_all')[0] == existing[:-1]:
            print('[build]: no new commit(s), not updating {0} ({1})'.format(fn, commit[:10]))
            return True
    except TypeError:
        print('[ERROR] [build]: problem generating {0}, continuing'.format(fn))
        with file(fn, 'a'):
            os.utime(fn, times)
    else:
        r.write(fn)
        print('[build]: regenerated {0} with new commit hash: {1}'.format(fn, commit[:10]))
开发者ID:RandomStuffs22,项目名称:docs-tools,代码行数:24,代码来源:hash.py

示例8: StepsOutput

class StepsOutput(object):
    """
    Base class for rendered step form. The render() method generates the rst in
    the internal RstCloth object.
    """

    def __init__(self, steps, conf=None):
        if not isinstance(steps, Steps):
            raise TypeError
        else:
            self.steps = steps

        self.conf = lazy_conf(conf)
        self.current_step = 1
        self.rst = RstCloth()
        self.hook()

    def hook(self):
        self.indent = 3

    def edition_check(self, step):
        if 'edition' in step:
            if 'edition' in self.conf.project:
                if step['edition'] != self.conf.project.edition:
                    return False
        else:
            return True

    @staticmethod
    def annotate_optional(step):
        if 'optional' in step and step['optional'] is True:
            if isinstance(step['title'], dict):
                step['title']['text'] = 'Optional. ' + step['title']['text']
            else:
                if 'title' in step:
                    step['title'] = 'Optional. ' + step['title']
                elif 'heading' in step:
                    step['heading'] = 'Optional. ' + step['heading']

            del step['optional']
            return step
        else:
            return step

    def render(self):
        for step in self.steps.source_list:
            if self.edition_check(step) is False:
                continue

            step = self.annotate_optional(step)
            self.heading(step)
            self.pre(step)

            self.current_step = step['stepnum']

            if 'action' in step:
                if isinstance(step['action'], list):
                    for block in step['action']:
                        self.code_step(block)
                else:
                    self.code_step(step['action'])

            self.content(step)

            self.post(step)

    def content(self, doc):
        if 'content' in doc and doc['content'] is not None:
            self.rst.content(doc['content'], wrap=False, indent=self.indent)
            self.rst.newline()

    def pre(self, doc):
        if 'pre' in doc and doc['pre'] is not None:
            self.rst.content(doc['pre'], wrap=False, indent=self.indent)
            self.rst.newline()

    def post(self, doc, code_step=False):
        if 'post' in doc and doc['post'] is not None:
            self.rst.content(doc['post'], wrap=False, indent=self.indent)
            self.rst.newline()

        if code_step is False:
            self.post_step_hook()

    def post_step_hook(self):
        pass

    def _heading(self, block, override_char=None, indent=0):
        if 'heading' in block:
            if isinstance(block['heading'], dict):
                if 'character' in block['heading']:
                    pass
                else:
                    block['heading']['character'] = override_char
            else:
                block['heading'] = { 'text': block['heading'],
                                     'character': override_char }

            if block['heading']['text'] is None:
                logger.error('step in "{0}" is missing a heading'.format(os.path.basename(self.steps.source_fn)))
#.........这里部分代码省略.........
开发者ID:MarkTseng,项目名称:docs-tools,代码行数:101,代码来源:steps.py

示例9: render_step_file

def render_step_file(input_fn, output_fn=None, conf=None):
    input_fn_base = os.path.basename(input_fn)
    logger.debug('generating step file for {0}'.format(input_fn_base))
    steps = Steps(input_fn)
    logger.debug('resolved step file input for {0}'.format(input_fn_base))

    r = RstCloth()

    web_output = WebStepsOutput(steps, conf=conf)
    web_output.render()
    r.content(web_output.rst.data, indent=0, wrap=False)
    logger.debug('generated web output for {0}'.format(input_fn_base))

    r.directive('only', 'latex')
    r.newline()
    print_output = PrintStepsOutput(steps, conf=conf)
    print_output.render()
    r.content(print_output.rst.data, indent=3, wrap=False)
    logger.debug('generated print output for {0}'.format(input_fn_base))

    if output_fn is None:
        output_fn = os.path.splitext(input_fn)[0] + '.rst'

    r.write(output_fn)
    logger.debug('wrote step include at {0}'.format(output_fn))
开发者ID:MarkTseng,项目名称:docs-tools,代码行数:25,代码来源:steps.py

示例10: render_step_file

def render_step_file(input_fn, output_fn=None):
    steps = Steps(input_fn)
    r = RstCloth()

    web_output = WebStepsOutput(steps)
    web_output.render()
    r.content(web_output.rst.get_block(), indent=0, wrap=False)

    r.directive('only', 'latex')
    r.newline()
    print_output = PrintStepsOutput(steps)
    print_output.render()
    r.content(print_output.rst.get_block(), indent=3, wrap=False)

    if output_fn is None:
        output_fn = os.path.splitext(input_fn)[0] + '.rst'

    r.write(output_fn)
    print('[steps]: rendered step include at ' + output_fn)
开发者ID:TylerBrock,项目名称:docs-tools,代码行数:19,代码来源:steps.py

示例11: build_page

def build_page(data, conf):
    fn = os.path.join(conf.paths.projectroot,
                      conf.paths.includes,
                      'metadata.yaml')

    if not os.path.exists(fn):
        return None
    else:
        iconf = BuildConfiguration(fn)

    r = RstCloth()

    r.title(iconf.title)
    r.newline()
    r.directive('default-domain', iconf.domain)
    r.newline()

    if 'introduction' in iconf:
        r.content(iconf.introduction)
        r.newline()

    r.directive(name='contents', arg='Included Files',
                fields=[ ('backlinks', 'none'),
                         ('class', 'long-toc'),
                         ('depth', 1),
                         ('local', ''),
                       ])
    r.newline()

    data = data.items()
    data.sort()
    for _, record in data:
        page_name = r.pre(record['name'])
        r.heading(text=page_name, char='-', indent=0)
        r.newline()

        r.heading('Meta', char='~', indent=0)
        r.newline()

        if record['num_clients'] == 0:
            r.content('{0} is not included in any files.'.format(page_name))

            r.newline()
            add_content(r, record)

        elif record['num_clients'] == 1:
            if record['yaml_only']:
                r.content('{0} is only included in yaml files.'.format(page_name))
                r.newline()
            else:
                link = r.role('doc', record['clients'][0])
                r.content('{0} is only included in {1}.'.format(page_name,  link))
                r.newline()

            add_meta(r, page_name, record)

            add_content(r, record)
        else:
            r.content('{0} is included in **{1}** files.'.format(page_name, record['num_clients']),
                      wrap=False)
            r.newline()

            add_meta(r, page_name, record)

            if record['yaml_only'] is False:
                clients = [ p for p in
                            record['clients']
                            if not p.startswith('/includes')
                            ]

                if len(clients) == 1:
                    client_link = r.role('doc', clients[0])

                    inc_str = '{0} is the only file that includes {1} that is not also an include.'
                    r.content(inc_str.format(client_link, page_name))

                    r.newline()
                else:
                    r.heading('Client Pages', char='~', indent=0)
                    r.newline()

                    for pg in clients:
                        client_link = r.role('doc', pg)

                        r.li(client_link, wrap=False)
                        r.newline()

            add_include_example(r, page_name, record['path'])
            add_content(r, record)

    return r
开发者ID:MarkTseng,项目名称:docs-tools,代码行数:91,代码来源:includes.py

示例12: render_page

def render_page(doc, conf): 
    r = RstCloth()
    out_fn = os.path.join(conf.paths.projectroot, conf.paths.source, doc.system_name + '.txt')

    r.title(doc.system_title)
    r.newline()
    r.content(doc.system_description)
    r.newline()

    r.write(out_fn)
开发者ID:sverch,项目名称:module_data,代码行数:10,代码来源:module_data.py

示例13: generate_release_output

def generate_release_output(builder, platform, architecture, release):
    """ This is the contemporary version of the function used by the generate.py script"""

    r = RstCloth()

    r.directive('code-block', 'sh', block='header')
    r.newline(block='header')

    if architecture == 'core':
        r.content('curl -O http://downloads.mongodb.org/{0}/mongodb-{1}-{2}.tgz'.format(platform, builder, release), 3, wrap=False, block='cmd')
    else:
        r.content('curl -O http://downloads.10gen.com/linux/mongodb-{0}-subscription-{1}-{2}.tgz'.format(builder, architecture, release), 3, wrap=False, block='cmd')
        r.content('tar -zxvf mongodb-{0}-subscription-{1}-{2}.tgz'.format(builder, architecture, release), 3, wrap=False, block='cmd')
        r.content('cp -R -n mongodb-{0}-subscription-{1}-{2}/ mongodb'.format(builder, architecture, release), 3, wrap=False, block='cmd')

    r.newline(block='footer')

    return r
开发者ID:RandomStuffs22,项目名称:docs-tools,代码行数:18,代码来源:releases.py

示例14: build_dfn

 def build_dfn(self):
     self.dfn = RstCloth()
     self.dfn.directive('class', 'toc')
     self.dfn.newline()
开发者ID:TylerBrock,项目名称:docs-tools,代码行数:4,代码来源:toc.py

示例15: OptionRendered

class OptionRendered(object):
    def __init__(self, option):
        if not isinstance(option, Option):
            raise TypeError
        else:
            self.option = option

        self.rst = RstCloth()

    def resolve_option_name(self):
        if self.option.directive == "option":
            if self.option.name.startswith("<"):
                prefix = ""
            else:
                prefix = "--"

            if hasattr(self.option, "aliases"):
                if hasattr(self.option, "arguments"):
                    return "{0}{1} {2}, {3}".format(
                        prefix,
                        self.option.name,
                        self.option.arguments,
                        "{0}, ".format(self.option.arguments).join(self.option.aliases),
                    )
                else:
                    return "{0}{1}, {2}".format(prefix, self.option.name, ", ".join(self.option.aliases))

            else:
                if hasattr(self.option, "arguments"):
                    return "{0}{1} {2}".format(prefix, self.option.name, self.option.arguments)
                else:
                    return "{0}{1}".format(prefix, self.option.name)
        else:
            return self.option.name

    def resolve_output_path(self, path):
        name_parts = self.option.name.split(",")

        if len(name_parts) > 1:
            clensed_name = name_parts[0]
        else:
            clensed_name = self.option.name

        fn = "-".join([self.option.directive, self.option.program, clensed_name]) + ".rst"
        return os.path.join(path, fn)

    def render(self, path):
        self.option.replace()

        self.rst.directive(self.option.directive, self.resolve_option_name())
        self.rst.newline()

        if self.option.default is not None:
            self.content("*Default*: {0}".format(self.option.default))
            self.rst.newline()

        if self.option.type is not None:
            self.content("*Type*: {0}".format(self.option.type))
            self.rst.newline()

        if self.option.pre is not None:
            self.rst.content(self.option.pre.split("\n"), indent=3, wrap=False)
            self.rst.newline()

        if self.option.description is not None:
            self.rst.content(self.option.description.split("\n"), indent=3, wrap=False)
            self.rst.newline()

        if self.option.post is not None:
            self.rst.content(self.option.post.split("\n"), indent=3, wrap=False)
            self.rst.newline()

        output_file = self.resolve_output_path(path)
        self.rst.write(output_file)
开发者ID:RandomStuffs22,项目名称:docs-tools,代码行数:74,代码来源:options.py


注:本文中的utils.rstcloth.rstcloth.RstCloth类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。