def run(self): document = self.state.document env = document.settings.env rel_filename, filename = env.relfn2path(self.arguments[0]) make_changed_file(filename, env) self.arguments[0] = remove_extension(self.arguments[0]) return LiteralInclude.run(self)
def run(self): literal = LiteralInclude.run(self) if self.prefix: prefix = nodes.Text(self.prefix, self.prefix) return [prefix, literal[0]] else: return literal
def run(self): env = self.state.document.settings.env config = env.config resolve_link = config['viewsource_resolve_link'] if callable(resolve_link): file_path = self.arguments[0] language = None if not self.options['language'] else self.options[ 'language'] link = resolve_link(file_path, language) if 'caption' not in self.options: self.options['caption'] = ':viewsource:`%s`' % link return list(LiteralInclude.run(self))
def run(self): section = self.arguments[0].split(':')[1] if section == 'begin': self.options['end-before'] = section elif section == 'end': self.options['start-after'] = section else: self.options['start-after'] = section self.options['end-before'] = section uid = str(uuid.uuid1())[:6] result = tabpanel() nvtbs = navtabs() nvtbs.uid = uid for i, (target, _) in enumerate(context.target_languages): nvtb = navtab() nvtb.element_id = self.element_id(target, uid) nvtb.index = i nvtbs += nvtb result += nvtbs # save original node fname = self.arguments[0].split(':')[0].strip() fname = [context.generated_examples_path] + self.resolve_path(fname)[0].split(os.sep)[1:] tbcntnt = fluid_tab_content() # create nodes with parsed listings for i, (target, extension) in enumerate(context.target_languages): target_fname = list(fname) target_fname.insert(1, target) target_fname[-1] = os.path.splitext(target_fname[-1])[0] + '.' + extension target_fname = os.path.join(*target_fname) if not os.path.exists(target_fname): raise IOError( 'Generated listing %s not found, it is expected to be created from the corresponding meta-example' % ( os.path.abspath(target_fname))) relative_target_fname = os.path.relpath(target_fname, self.state.document.settings.env.srcdir) self.arguments[0] = '/' + relative_target_fname self.options['language'] = target # call base class, returns list include_container = sgexample() include_container.element_id = self.element_id(target, uid) include_container.language = target include_container.index = i include_container += LiteralInclude.run(self) tbcntnt += include_container result += tbcntnt return [result]
def literalinclude(self, filename, first_line, last_line): """Use literalinclude directive to return nodes for a literalinclude of specified lines in some file""" lines = "%s-%s" % (first_line, last_line) lineno = 0 options = dict(lines=lines) content = ":lines: %s" % lines arguments = [filename] block_text = "" content_offset = 0 directive_instance = LiteralInclude('literalinclude' , arguments, options, content, lineno , content_offset, block_text, self.state, self.state.state_machine ) return directive_instance.run()
def literalinclude(self, filename, first_line, last_line): """Use literalinclude directive to return nodes for a literalinclude of specified lines in some file""" lines = "%s-%s" % (first_line, last_line) lineno = 0 options = dict(lines=lines) content = ":lines: %s" % lines arguments = [filename] block_text = "" content_offset = 0 directive_instance = LiteralInclude('literalinclude', arguments, options, content, lineno, content_offset, block_text, self.state, self.state.state_machine) return directive_instance.run()
def run(self): section = self.arguments[0].split(':')[1] if section == 'begin': self.options['end-before'] = section elif section == 'end': self.options['start-after'] = section else: self.options['start-after'] = section self.options['end-before'] = section uid = str(uuid.uuid1())[:6] result = tabpanel() nvtbs = navtabs() nvtbs.uid = uid for i, (target, _) in enumerate(context.target_languages): nvtb = navtab() nvtb.language = self.element_id(target, uid) nvtb.index = i nvtbs += nvtb result += nvtbs # save original node fname = self.arguments[0].split(':')[0].strip() tbcntnt = fluid_tab_content() # create nodes with parsed listings for i, (target, extension) in enumerate(context.target_languages): self.convert_example(fname, target, extension) self.arguments[0] = fname+'.'+extension self.options['language'] = target # call base class, returns list include_container = sgexample() include_container.language = self.element_id(target, uid) include_container.index = i include_container += LiteralInclude.run(self) tbcntnt += include_container result += tbcntnt return [result]
def run(self): # type: () -> List[nodes.Node] rel_filename, filename = self.env.relfn2path(self.arguments[0]) code = open(filename, 'r').read().strip().split('\n') first_line = next( (idx for idx, line in enumerate(code) if 'SPDX' in line), 1) if first_line > 1: first_line += 3 if code[first_line][1] == '*' else 2 last_line = len(code) while len(code[first_line - 1]) == 0: first_line += 1 self.options['lines'] = '{}-{}'.format(first_line, last_line) self.options['lineno-start'] = first_line try: return LiteralInclude.run(self) except Exception as exc: return [document.reporter.warning(exc, line=self.lineno)]