Mathworks生成Matlab HTML文档的方法是什么?

Luk*_*kas 26 matlab doxygen documentation-generation python-sphinx

我正在研究共享的Matlab代码,我们希望在本地网络中共享生成的文档作为可搜索的HTML文档.

我知道以下生成文档的方法:

  1. 将转换器写入类似C++的文件.这是在使用Doxygen with Matlab(2011年最后更新)和mtoc ++(最后更新2013年)中完成的.然后由Doxygen解析类似C++的文件.
  2. 使用Python的sphinxcontrib-matlabdomain生成HTML文档.
  3. 使用m2html也是第三方解决方案.
  4. 此问答中列出了其他选项:,.

Mathworks不支持所有可能性.所有可能性都需要我提到自己的函数参数.他们没有分析代码,Doxygen是为Java做的:

//! an object representation of the advertisement package sent by the beacon
private AdvertisementPackage advertisementPackage;
Run Code Online (Sandbox Code Playgroud)

我听说过Matlab的publish()函数,但我从未在上述意义上看到过它.

问题:Mathworks生成Matlab HTML文档的方法是什么.代码本身可以分析吗?我可以使用提供给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);
Run Code Online (Sandbox Code Playgroud)

Amr*_*mro 16

我认为您已经很好地研究了这个主题(如何从MATLAB函数生成HTML文档),现在您可以选择哪种方法最适合您.

publish功能可用于创作文档.您使用特制注释编写常规M文件(实际上文件可能是没有代码的所有注释),然后您发布文件以获取呈现的HTML(它还支持其他目标,如PDF,DOC,LaTeX等. ).可以把它想象成一个更简单的MATLAB特定版本的Markdown,它在Stack Exchange网站上用来格式化帖子.

您没有提到的一个方面是将生成的文档集成到内置的帮助查看器中.这是通过创建info.xmldemos.xml文件以及以特定方式组织文档来完成的.您还可以通过使用函数构建Lucene索引文件来使您的自定义文档可搜索builddocsearchdb(内部为MATLAB自定义文档中的搜索功能提供支持).请注意,生成HTML文档的方式无关紧要(您可以使用publish甚至手动编写HTML文件).

实际上,publish基于工作流的工作流是可扩展的,您可以通过创建自定义XSL模板文件来转换和呈现已解析的注释,以有趣的方式使用它.例如,我已经看到它用于使用MathJax 渲染方程而不是依赖于内置解决方案.另一个例子是发布到MediaWiki标记(维基百科使用的格式).其他人用它来写博客文章(参见MATLAB Central上正在创建这种方式的官方博客),甚至生成后来由静态站点生成器(如JekyllOctopress框架)处理的文本文件.

据我所知,没有公共工具可以在更深层次上检查MATLAB代码并分析功能参数.我能想出的最好的方法是使用反射来获取有关函数和类的一些元数据,尽管这个解决方案并不完美......

MathWorks似乎使用自己的内部系统来编写HTML文档.太糟糕了,他们不与我们的用户分享:)