首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pdoc模块创建一个包含包列表的html页面?

使用pdoc模块创建一个包含包列表的html页面?
EN

Stack Overflow用户
提问于 2016-09-12 23:32:45
回答 2查看 2.8K关注 0票数 3

我已经准备了一段简单的代码,可以使用pdoc模块从Python (*.py或*.pyc)脚本创建一个html页面。代码如下:

代码语言:javascript
复制
def make_pdoc():
    import pdoc
    import sys
    from os import path
    libpath = r'C:\path\to\file'

    if path.exists(libpath) and libpath not in sys.path:
        sys.path.append(libpath)
    pdoc.import_path.append(libpath)

    mod = pdoc.import_module('my_script')
    doc = pdoc.Module(mod, allsubmodules=True)
    string = doc.html(external_links=True)
    with open('doc.html', 'w') as html_file:
        html_file.write(string.encode('utf-8'))

if __name__ == '__main__':
    make_pdoc()

我已经准备了几个html页面与文档,并想创建一个页面与链接到所有的html页面我已经创建。换句话说,我想创建类似于main pdoc documentation page的东西。

可以使用pdoc模块制作主页吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-06 15:36:21

这就是我到目前为止所得到的:

代码语言:javascript
复制
def make_pdoc():
    import pdoc
    import sys
    from os import path, makedirs
    libpath = 'C:\\path\\to\\file\\'
    if path.exists(libpath):
        sys.path.append(libpath)
    pdoc.import_path.append(libpath)

    mod = pdoc.import_module('package-name-here')
    doc = pdoc.Module(mod, allsubmodules=True)
    string = doc.html(external_links=True)
    # Package level
    with open(doc.name + '/_doc/index.html', 'w') as html_file:
        html_file.write(string.encode('utf-8'))

    # Sublevel 1
    for submodule in doc.submodules():
        string = submodule.html(external_links=True)
        if submodule.is_package():
            exte = '/index.html'
        else:
            exte = '.m.html'
        dpath = (submodule.name.split('.')[0] + '/_doc/' +
                 submodule.name.split('.')[-1]) + '/'
        if not path.exists(dpath):
            makedirs(dpath)
        with open(dpath + exte, 'w') as html_file:
            html_file.write(string.encode('utf-8'))
        # Sublevel 2
        if submodule.submodules():
            for subsubmodule in submodule.submodules():
                print subsubmodule.name
                string = subsubmodule.html(external_links=True)
                if subsubmodule.is_package():
                    exte = '.html'
                else:
                    exte = '.m.html'
                with open(subsubmodule.name.split('.')[0] + '/_doc/' +
                          subsubmodule.name.split('.')[1] + '/' +
                          subsubmodule.name.split('.')[-1] +
                          exte, 'w') as html_file:
                    html_file.write(string.encode('utf-8'))

if __name__ == '__main__':
    make_pdoc()

此代码根据源包中的树结构在html页面中创建目录。

票数 3
EN

Stack Overflow用户

发布于 2019-01-11 01:43:58

使用最新版本的pdoc3 0.5.0,您可以遵循example from documentation

代码语言:javascript
复制
import pdoc

files = ['a.py', './b/']  # Can be modules or paths
modules = [pdoc.Module(mod) for mod in files]
pdoc.link_inheritance()

def recursive_htmls(mod):
    yield mod.name, mod.html()
    for submod in mod.submodules():
        yield from recursive_htmls(submod)

for mod in modules:
    for module_name, html in recursive_htmls(mod):
        ...  # Save html to file
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39453948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档