⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 html.py

📁 Requirement =====================================================================================
💻 PY
字号:
# Author: David Goodger# Contact: goodger@users.sourceforge.net# Revision: $Revision: 3038 $# Date: $Date: 2005-03-14 17:16:57 +0100 (Mon, 14 Mar 2005) $# Copyright: This module has been placed in the public domain."""Directives for typically HTML-specific constructs."""__docformat__ = 'reStructuredText'import sysfrom docutils import nodes, utilsfrom docutils.parsers.rst import statesfrom docutils.transforms import componentsdef meta(name, arguments, options, content, lineno,         content_offset, block_text, state, state_machine):    node = nodes.Element()    if content:        new_line_offset, blank_finish = state.nested_list_parse(              content, content_offset, node, initial_state='MetaBody',              blank_finish=1, state_machine_kwargs=metaSMkwargs)        if (new_line_offset - content_offset) != len(content):            # incomplete parse of block?            error = state_machine.reporter.error(                'Invalid meta directive.',                nodes.literal_block(block_text, block_text), line=lineno)            node += error    else:        error = state_machine.reporter.error(            'Empty meta directive.',            nodes.literal_block(block_text, block_text), line=lineno)        node += error    return node.childrenmeta.content = 1def imagemap(name, arguments, options, content, lineno,             content_offset, block_text, state, state_machine):    return []class MetaBody(states.SpecializedBody):    class meta(nodes.Special, nodes.PreBibliographic, nodes.Element):        """HTML-specific "meta" element."""        pass    def field_marker(self, match, context, next_state):        """Meta element."""        node, blank_finish = self.parsemeta(match)        self.parent += node        return [], next_state, []    def parsemeta(self, match):        name = self.parse_field_marker(match)        indented, indent, line_offset, blank_finish = \              self.state_machine.get_first_known_indented(match.end())        node = self.meta()        pending = nodes.pending(components.Filter,                                {'component': 'writer',                                 'format': 'html',                                 'nodes': [node]})        node['content'] = ' '.join(indented)        if not indented:            line = self.state_machine.line            msg = self.reporter.info(                  'No content for meta tag "%s".' % name,                  nodes.literal_block(line, line),                  line=self.state_machine.abs_line_number())            return msg, blank_finish        tokens = name.split()        try:            attname, val = utils.extract_name_value(tokens[0])[0]            node[attname.lower()] = val        except utils.NameValueError:            node['name'] = tokens[0]        for token in tokens[1:]:            try:                attname, val = utils.extract_name_value(token)[0]                node[attname.lower()] = val            except utils.NameValueError, detail:                line = self.state_machine.line                msg = self.reporter.error(                      'Error parsing meta tag attribute "%s": %s.'                      % (token, detail), nodes.literal_block(line, line),                      line=self.state_machine.abs_line_number())                return msg, blank_finish        self.document.note_pending(pending)        return pending, blank_finishmetaSMkwargs = {'state_classes': (MetaBody,)}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -