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。谢谢。在我看来,对文档功能的内置支持实际上相当不错
或导入(文件a.jl
应位于load\u路径中)加载带有的模块。如果使用,import
函数的前缀为模块名,模块名之间用点分隔。如果功能未在模块中分组,则需要包括包含功能的文件,例如include(“a.jl”)
(使用完整或相对路径)
?
显示,例如?模块A中的myfunction\u
或模块A中的?A.myfunction\u
- 您可以使用
进行全文搜索apropos(“我的关键字”)
- 列出所有功能是一个具有
名称的模块(模块a)
- 使用
methodswith
在我看来,对文档功能的内置支持实际上相当不错
或导入(文件a.jl
应位于load\u路径中)加载带有的模块。如果使用,import
函数的前缀为模块名,模块名之间用点分隔。如果功能未在模块中分组,则需要包括包含功能的文件,例如include(“a.jl”)
(使用完整或相对路径)
?
显示,例如?模块A中的myfunction\u
或模块A中的?A.myfunction\u
- 您可以使用
进行全文搜索apropos(“我的关键字”)
- 列出所有功能是一个具有
名称的模块(模块a)
- 使用
methodswith
@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获取文档