Markdown 如何为所有用户定义的函数构建索引页?

Markdown 如何为所有用户定义的函数构建索引页?,markdown,julia,documentation,doxygen,Markdown,Julia,Documentation,Doxygen,假设我有A.jl,B.jl,C.jl,D.jl。在每个.jl中,有100个函数。当我试图调用一个特定的函数时,我需要搜索.jl以了解该函数是如何定义的?有没有一种简单的方法可以将所有函数定义生成HTML索引页。如果我可以点击链接并查看函数的实际源代码,那就更好了。类似于Doxygen为C/C++生成文档,但Doxygen不支持Julia。谢谢。在我看来,对文档功能的内置支持实际上相当不错 基本上使用“docstrings”: 将函数放在模块中可能很有用(a、B、C和D可以是单独的模块)。使用或

假设我有
A.jl
B.jl
C.jl
D.jl
。在每个.jl中,有100个函数。当我试图调用一个特定的函数时,我需要搜索.jl以了解该函数是如何定义的?有没有一种简单的方法可以将所有函数定义生成HTML索引页。如果我可以点击链接并查看函数的实际源代码,那就更好了。类似于Doxygen为C/C++生成文档,但Doxygen不支持Julia。谢谢。

在我看来,对文档功能的内置支持实际上相当不错

  • 基本上使用“docstrings”:

  • 将函数放在模块中可能很有用(a、B、C和D可以是单独的模块)。使用
    导入
    (文件
    a.jl
    应位于
    load\u路径中)加载带有
    的模块。如果使用,
    import
    函数的前缀为模块名,模块名之间用点分隔。如果功能未在模块中分组,则需要包括包含功能的文件,例如
    include(“a.jl”)
    (使用完整或相对路径)

  • 加载模块后,文档可以通过
    显示,例如
    ?模块A中的myfunction\u
    或模块A中的
    ?A.myfunction\u

  • 如果不记得函数名

    • 您可以使用
      apropos(“我的关键字”)
      进行全文搜索
    • 列出所有功能是一个具有
      名称的模块(模块a)
    • 使用
      methodswith
  • 允许通过将所有docsstring组合到单个HTML文档中来创建漂亮的文档


  • 在我看来,对文档功能的内置支持实际上相当不错

  • 基本上使用“docstrings”:

  • 将函数放在模块中可能很有用(a、B、C和D可以是单独的模块)。使用
    导入
    (文件
    a.jl
    应位于
    load\u路径中)加载带有
    的模块。如果使用,
    import
    函数的前缀为模块名,模块名之间用点分隔。如果功能未在模块中分组,则需要包括包含功能的文件,例如
    include(“a.jl”)
    (使用完整或相对路径)

  • 加载模块后,文档可以通过
    显示,例如
    ?模块A中的myfunction\u
    或模块A中的
    ?A.myfunction\u

  • 如果不记得函数名

    • 您可以使用
      apropos(“我的关键字”)
      进行全文搜索
    • 列出所有功能是一个具有
      名称的模块(模块a)
    • 使用
      methodswith
  • 允许通过将所有docsstring组合到单个HTML文档中来创建漂亮的文档

  • 当我尝试调用一个特定函数时,我需要搜索.jl到 弄清楚函数是如何定义的?有没有一个简单的方法可以 将所有函数定义生成HTML索引页。如果可以的话 单击链接并查看函数的实际源代码,它 会更好

    不直接回答有关索引页的问题,但如果您的目标是轻松找到源代码,那么goto选项是使用
    @which
    @edit
    宏。从帮助中:

    help?> @which
      @which
    
      Applied to a function or macro call, it evaluates the arguments to the
      specified call, and returns the Method object for the method that would be
      called for those arguments. Applied to a variable, it returns the module in
      which the variable was bound. It calls out to the which function.
    
    
    help?> @edit
      @edit
    
      Evaluates the arguments to the function or macro call, determines their
      types, and calls the edit function on the resulting expression.
    
    例如,让我们看看在哪里定义了对数组求和的
    sum
    方法

    julia> @which sum([1, 2, 3])
    sum(a::AbstractArray) in Base at reducedim.jl:627
    
    或者,我们可以使用
    @edit
    ,然后在正确的行中打开相应的源文件

    julia> @edit sum([1, 2, 3])
    
    如果要更改用于打开文件的编辑器,请设置
    JUILA_editor
    环境变量,例如,使用Sublime,我会这样做

    julia> ENV["JULIA_EDITOR"] = "subl"
    "subl"
    
    当我尝试调用一个特定函数时,我需要搜索.jl到 弄清楚函数是如何定义的?有没有一个简单的方法可以 将所有函数定义生成HTML索引页。如果可以的话 单击链接并查看函数的实际源代码,它 会更好

    不直接回答有关索引页的问题,但如果您的目标是轻松找到源代码,那么goto选项是使用
    @which
    @edit
    宏。从帮助中:

    help?> @which
      @which
    
      Applied to a function or macro call, it evaluates the arguments to the
      specified call, and returns the Method object for the method that would be
      called for those arguments. Applied to a variable, it returns the module in
      which the variable was bound. It calls out to the which function.
    
    
    help?> @edit
      @edit
    
      Evaluates the arguments to the function or macro call, determines their
      types, and calls the edit function on the resulting expression.
    
    例如,让我们看看在哪里定义了对数组求和的
    sum
    方法

    julia> @which sum([1, 2, 3])
    sum(a::AbstractArray) in Base at reducedim.jl:627
    
    或者,我们可以使用
    @edit
    ,然后在正确的行中打开相应的源文件

    julia> @edit sum([1, 2, 3])
    
    如果要更改用于打开文件的编辑器,请设置
    JUILA_editor
    环境变量,例如,使用Sublime,我会这样做

    julia> ENV["JULIA_EDITOR"] = "subl"
    "subl"
    

    我只想补充一点:不一定需要模块。您可以使用
    include
    加载一个文件,然后可以按照第3步或下面的步骤进行加载。在1和2之后,如果您使用的是Juno,则可以通过编辑器上的上下文菜单或键盘快捷键获取文档。如果您使用的是IJulia笔记本,则可以使用Shift+Tab快捷方式获取文档。您也可以在Juno上的2之后直接跳转到定义。如果只需要函数的签名,则不需要编写docstring<代码>?myfunction
    仍将向您展示函数是如何声明的。我没有进一步研究,但看到“docstring”看起来有点像python文档。也许在doxygen中,使用从jl到python的扩展映射可能会起作用。@Hchr,你是对的,谢谢你的澄清!我只想补充一点:不一定需要模块。您可以使用
    include
    加载一个文件,然后可以按照第3步或下面的步骤进行加载。在1和2之后,如果您使用的是Juno,则可以通过cont获取文档