コード例 #1
0
    def init(self):
        DirectoryHTMLBuilder.init(self)

        # Pull project data from conf.py if it exists
        context = self.config.html_context
        if context.has_key("current_version"):
            self.version = context["current_version"]
        if context.has_key("slug"):
            self.project = context["slug"]

        # Put in our media files instead of putting them in the docs.
        for index, file in enumerate(self.script_files):
            if file in MEDIA_MAPPING.keys():
                self.script_files[index] = MEDIA_MAPPING[file] % context["MEDIA_URL"]
                if file == "_static/jquery.js":
                    self.script_files.insert(
                        index + 1, "%sjavascript/jquery/jquery-migrate-1.2.1.min.js" % context["MEDIA_URL"]
                    )

        if context.has_key("html_theme") and context["html_theme"] == "sphinx_rtd_theme":
            self.css_files.append("%scss/sphinx_rtd_theme.css" % context["MEDIA_URL"])
        else:
            self.css_files.append("%scss/badge_only.css" % context["MEDIA_URL"])

        # Analytics codes
        # self.script_files.append('_static/readthedocs-ext.js')
        # self.script_files.append('%sjavascript/analytics.js' % context['MEDIA_URL'])

        # We include the media servers version here so we can update rtd.js across all
        # documentation without rebuilding every one.
        # If this script is embedded in each build,
        # then updating the file across all docs is basically impossible.
        self.script_files.append("%sjavascript/readthedocs-doc-embed.js" % context["MEDIA_URL"])
        self.css_files.append("%scss/readthedocs-doc-embed.css" % context["MEDIA_URL"])
コード例 #2
0
    def update_page_context(self, pagename, templatename, ctx, event_arg):
        '''Extends builder context to make the function available at build time.'''

        DirectoryHTMLBuilder.update_page_context(self, pagename, templatename, \
                                                 ctx, event_arg)

        def md5(fname):
            '''Calculates MD5 for a file relative to source directory.'''

            pathname = self.srcdir + '/' + fname
            hash = hashlib_md5()
            with open(pathname, 'rb') as f:
                for chunk in iter(lambda: f.read(65536), b''):
                    hash.update(chunk)

            return hash.hexdigest()

        ctx['md5'] = md5
コード例 #3
0
    def update_page_context(self, pagename: str, templatename: str, ctx: Dict,
                            event_arg: Any) -> None:
        """Extends builder context to make the MD5 function available at
        build time.
        """
        def md5(fname: str) -> str:
            """Calculates MD5 for a file relative to source directory."""

            pathname = self.srcdir + '/' + fname
            hsh = hashlib_md5()

            with open(pathname, 'rb') as hashed_file:
                for chunk in iter(lambda: hashed_file.read(65536), b''):
                    hsh.update(chunk)

            return hsh.hexdigest()

        DirectoryHTMLBuilder.update_page_context(self, pagename, templatename,
                                                 ctx, event_arg)
        ctx['md5'] = md5
コード例 #4
0
    def handle_page(
        self,
        docname,
        addctx,
        templatename="page.html",
        outfilename=None,
        event_arg=None,
    ):
        self.toctree.initialize(self.env)

        lineage = self._get_page_lineage(docname)
        processed_lineage = self._process_page_lineage(docname, lineage)
        addctx["lineage"] = processed_lineage

        DirectoryHTMLBuilder.handle_page(
            self,
            docname,
            addctx,
            templatename=templatename,
            outfilename=outfilename,
            event_arg=event_arg,
        )
コード例 #5
0
ファイル: stitch-builders.py プロジェクト: mongodb/docs-tools
    def handle_page(
        self,
        docname,
        addctx,
        templatename="page.html",
        outfilename=None,
        event_arg=None,
    ):
        self.toctree.initialize(self.env)

        lineage = self._get_page_lineage(docname)
        processed_lineage = self._process_page_lineage(docname, lineage)
        addctx["lineage"] = processed_lineage

        DirectoryHTMLBuilder.handle_page(
            self,
            docname,
            addctx,
            templatename=templatename,
            outfilename=outfilename,
            event_arg=event_arg,
        )
コード例 #6
0
 def __init__(self, app):
     DirectoryHTMLBuilder.__init__(self, app)
コード例 #7
0
 def init(self):
     DirectoryHTMLBuilder.init(self)
     finalize_media(self)
コード例 #8
0
 def init(self):
     DirectoryHTMLBuilder.init(self)
     self.toctree = Toctree(self._render_title, self.get_relative_uri)
コード例 #9
0
 def handle_page(self, pagename, addctx, templatename='page.html', outfilename=None, event_arg=None):
     self.toctree.initialize(self.env)
     DirectoryHTMLBuilder.handle_page(self, pagename, addctx, templatename=templatename, outfilename=outfilename, event_arg=event_arg)
コード例 #10
0
 def init(self):
     DirectoryHTMLBuilder.init(self)
     finalize_comment_media(self)
コード例 #11
0
ファイル: stitch-builders.py プロジェクト: mongodb/docs-tools
 def init(self):
     DirectoryHTMLBuilder.init(self)
     self.toctree = Toctree(self._render_title, self.get_relative_uri)