我正在处理共享的Matlab代码,我们希望在本地网络中共享生成的文档作为可搜索的HTML文档。
我知道以下生成文档的方法:
Mathworks不支持所有可能性。所有可能性都需要我自己提及函数的参数。从某种意义上说,他们不会分析代码,Doxygen会为Java做分析:
//! an object representation of the advertisement package sent by the beacon
private AdvertisementPackage advertisementPackage;
我听说过Matlab的publish()功能,但我从未在上述意义上看到过它。
问题:生成Matlab HTML文档的Mathworks方式是什么。代码本身可以分析吗?我可以使用提供给Matlab输入分析器的信息吗?请在评论中提及您的个人偏好。
示例:
%% Input parser
p = inputParser;
addRequired(p, 'x', @isnumeric);
validationFcn = @(x) (isnumeric(x) && isscalar(x));
addRequired(p, 'fftSize', validationFcn);
addRequired(p, 'fftShift', validationFcn);
validationFcn = @(x) (isa(x, 'function_handle'));
addRequired(p, 'analysisWindowHandle', validationFcn);
parse(p, x, fftSize, fftShift, analysisWindowHandle);
答案 0 :(得分:14)
我认为您已经很好地研究了这个主题(如何从MATLAB函数生成HTML文档),现在由您来决定哪种方法最适合您。
publish
功能可用于author documentation。您使用specially crafted comments编写常规M文件(实际上文件可能是没有代码的所有注释),然后您发布文件以获取呈现的HTML(它还支持other targets,如PDF,DOC, LaTeX等...)。可以把它想象成一个更简单的特定于MATLAB的Markdown版本,它在Stack Exchange sites上用来格式化帖子。
您未提及的一个方面是将生成的文档集成到内置的帮助查看器中。这是通过创建info.xml
和demos.xml
文件以及以特定方式组织文档来完成的。您还可以使用Lucene函数(内部为MATLAB自定义文档中的搜索功能提供支持)构建builddocsearchdb
索引文件,从而使您的自定义文档可搜索。请注意,生成HTML文档的方式无关紧要(您可以使用publish
甚至手动编写的HTML文件)。
实际上,基于publish
的工作流是可扩展的,您可以通过创建自定义XSL模板文件来转换和呈现已解析的注释,以有趣的方式使用它。例如,我已经看到它曾使用render equations MathJax而非依赖内置解决方案。另一个例子是publishing to MediaWiki markup(Wikipedia使用的格式)。其他人用它来写博客文章(参见MATLAB Central上的official blogs创建这种方式),甚至generate text files后来由静态站点生成器处理(如Jekyll和{{ 3}}框架)。
据我所知,没有公共工具可以在更深层次上检查MATLAB代码并分析功能参数。我能想出的最好的方法是使用Octopress来获取有关函数和类的一些元数据,尽管这个解决方案并不完美......
MathWorks似乎正在使用自己的内部系统来编写HTML文档。太糟糕了,他们不与我们的用户分享:))
答案 1 :(得分:4)
我认为这是官方提到的Mathworks'写文档的方式: http://www.mathworks.co.uk/help/matlab/matlab_prog/display-custom-documentation.html
基本上编写HTML,并添加一堆文件,使其可以在MATLAB文档中搜索和显示。
答案 2 :(得分:1)
有一种简单的方法可以使用带有功能和发布功能的发布。它是相应的输入。看看publish('test',struct('codeToEvaluate','test(inputs);','showCode',false,
))
。