我们从Python开源项目中,提取了以下17个代码示例,用于说明如何使用docutils.parsers.rst.directives.uri()。
def apply(self): #print '>>>>>>>>>>>>>>>>>>>>>', self.document.transformer.components['writer'] current_node = self.startnode details = current_node.details image_node = details['image_node'] options = details['aafigure_options'].copy() text = current_node.rawsource #merge_defaults(options, self) # XXX: this is an ugly hack to find out the writer being used print '>>>>>>>>>>>>>>>>>>>>>', self.document.transformer.components if hasattr(self.document.settings, 'stylesheet_path'): # HTML options['format'] = 'png' else: # LaTeX options['format'] = 'pdf' options['format'] = 'png' try: #TODO: options['format'] = self.builder.config.aafig_format['html'] fname, outfn, id, extra = render_aafigure(self, text, options) except AafigError, exc: #TODO: self.builder.warn('aafigure error: ' + str(exc)) current_node.replace_self([]) # TODO: ascii art image_node['uri'] = directives.uri(fname) # TODO: improve image_node['alt'] current_node.replace_self(image_node)
def run(self): self.options['run_id'] = directives.uri(self.arguments[0]) if not self.options.get('key'): self.options['key'] = self.default_key if not self.options.get('width'): self.options['width'] = self.default_width if not self.options.get('height'): self.options['height'] = self.default_height if not self.options.get('align'): self.options['align'] = 'left' self.options['timestamp'] = '1459857519' node = nodes.raw('', self.html % self.options, format='html') node.rawsource = self._get_raw_source() return [node]
def run(self): self.options['video_id'] = directives.uri(self.arguments[0]) if not self.options.get('width'): self.options['width'] = self.default_width if not self.options.get('height'): self.options['height'] = self.default_height if not self.options.get('align'): self.options['align'] = 'left' node = nodes.raw('', self.html % self.options, format='html') node.rawsource = self._get_raw_source() return [node]
def run(self): autoplay = None controls = "controls" loop = None muted = "muted" poster = None preload = None cl = None if "autoplay" in self.options: autoplay = yes_no("autoplay",self.options["autoplay"]) if "controls" in self.options: controls = yes_no("controls",self.options["controls"]) if "loop" in self.options: loop = yes_no("loop",self.options["loop"]) if "muted" in self.options: muted = yes_no("muted",self.options["muted"]) if "poster" in self.options: poster = directives.uri(self.options["poster"]) if "preload" in self.options: preload = preload_choice(self.options["preload"]) if "class" in self.options: cl = self.options["class"] uri = directives.uri(self.arguments[0]) vid = video_node(uri = uri, autoplay = autoplay, controls = controls, loop = loop, muted = muted, poster = poster, preload = preload, cl = cl) self.state.nested_parse(self.content, self.content_offset, vid) return [vid]
def run(self): if 'align' in self.options: if isinstance(self.state, states.SubstitutionDef): # Check for align_v_values. if self.options['align'] not in self.align_v_values: raise self.error( 'Error in "%s" directive: "%s" is not a valid value ' 'for the "align" option within a substitution ' 'definition. Valid values for "align" are: "%s".' % (self.name, self.options['align'], '", "'.join(self.align_v_values))) elif self.options['align'] not in self.align_h_values: raise self.error( 'Error in "%s" directive: "%s" is not a valid value for ' 'the "align" option. Valid values for "align" are: "%s".' % (self.name, self.options['align'], '", "'.join(self.align_h_values))) messages = [] reference = directives.uri(self.arguments[0]) self.options['uri'] = reference reference_node = None if 'target' in self.options: block = states.escape2null( self.options['target']).splitlines() block = [line for line in block] target_type, data = self.state.parse_target( block, self.block_text, self.lineno) if target_type == 'refuri': reference_node = nodes.reference(refuri=data) elif target_type == 'refname': reference_node = nodes.reference( refname=fully_normalize_name(data), name=whitespace_normalize_name(data)) reference_node.indirect_reference_name = data self.state.document.note_refname(reference_node) else: # malformed target messages.append(data) # data is a system message del self.options['target'] set_classes(self.options) image_node = nodes.image(self.block_text, **self.options) self.add_name(image_node) if reference_node: reference_node += image_node return messages + [reference_node] else: return messages + [image_node]
def run(self): figwidth = self.options.pop('figwidth', None) figclasses = self.options.pop('figclass', None) align = self.options.pop('align', None) (image_node,) = Image.run(self) if isinstance(image_node, nodes.system_message): return [image_node] figure_node = nodes.figure('', image_node) if figwidth == 'image': if PIL and self.state.document.settings.file_insertion_enabled: imagepath = urllib.url2pathname(image_node['uri']) try: img = PIL.Image.open( imagepath.encode(sys.getfilesystemencoding())) except (IOError, UnicodeEncodeError): pass # TODO: warn? else: self.state.document.settings.record_dependencies.add( imagepath.replace('\\', '/')) figure_node['width'] = '%dpx' % img.size[0] del img elif figwidth is not None: figure_node['width'] = figwidth if figclasses: figure_node['classes'] += figclasses if align: figure_node['align'] = align if self.content: node = nodes.Element() # anonymous container for parsing self.state.nested_parse(self.content, self.content_offset, node) first_node = node[0] if isinstance(first_node, nodes.paragraph): caption = nodes.caption(first_node.rawsource, '', *first_node.children) caption.source = first_node.source caption.line = first_node.line figure_node += caption elif not (isinstance(first_node, nodes.comment) and len(first_node) == 0): error = self.state_machine.reporter.error( 'Figure caption must be a paragraph or empty comment.', nodes.literal_block(self.block_text, self.block_text), line=self.lineno) return [figure_node, error] if len(node) > 1: figure_node += nodes.legend('', *node[1:]) return [figure_node]
def run(self): figwidth = self.options.pop('figwidth', None) figclasses = self.options.pop('figclass', None) align = self.options.pop('align', None) (image_node,) = Image.run(self) if isinstance(image_node, nodes.system_message): return [image_node] figure_node = nodes.figure('', image_node) if figwidth == 'image': if PIL and self.state.document.settings.file_insertion_enabled: imagepath = urllib.request.url2pathname(image_node['uri']) try: img = PIL.Image.open( imagepath.encode(sys.getfilesystemencoding())) except (IOError, UnicodeEncodeError): pass # TODO: warn? else: self.state.document.settings.record_dependencies.add( imagepath.replace('\\', '/')) figure_node['width'] = '%dpx' % img.size[0] del img elif figwidth is not None: figure_node['width'] = figwidth if figclasses: figure_node['classes'] += figclasses if align: figure_node['align'] = align if self.content: node = nodes.Element() # anonymous container for parsing self.state.nested_parse(self.content, self.content_offset, node) first_node = node[0] if isinstance(first_node, nodes.paragraph): caption = nodes.caption(first_node.rawsource, '', *first_node.children) caption.source = first_node.source caption.line = first_node.line figure_node += caption elif not (isinstance(first_node, nodes.comment) and len(first_node) == 0): error = self.state_machine.reporter.error( 'Figure caption must be a paragraph or empty comment.', nodes.literal_block(self.block_text, self.block_text), line=self.lineno) return [figure_node, error] if len(node) > 1: figure_node += nodes.legend('', *node[1:]) return [figure_node]
def visit_video_html(self, node): if os.path.exists("./build/_videos"): pass else: os.makedirs("./build/_videos/") vsrc = node["uri"] spth = ".%s" % vsrc dpth = "./build/_videos/%s" %vsrc[vsrc.rfind('/')+1:] shutil.copyfile(spth, dpth) src = "../_videos/%s" % vsrc[vsrc.rfind('/')+1:] attrs = { "src":"%s" %src, "style":"max-width:100%", } if node["poster"] is not None: psrc = node["poster"] p_spth = ".%s" % psrc p_dpth = "./build/_videos/%s" %psrc[psrc.rfind('/')+1:] shutil.copyfile(p_spth, p_dpth) psrc = "../_videos/%s" % psrc[psrc.rfind('/')+1:] attrs["poster"] = "%s" % psrc if node["autoplay"] == "autoplay": attrs["autoplay"] = "autoplay" if node["controls"] == "controls": attrs["controls"] = "controls" if node["loop"] == "loop": attrs["loop"] = "loop" if node["muted"] == "muted": attrs["muted"] = "muted" if node["preload"] is not None: attrs["preload"] = "%s" % node["preload"] if node["cl"] is not None: attrs["class"] = "%s" % node["cl"] self.body.append(self.starttag(node, "video", **attrs))