2014-10-07 17 views
19

Tôi đang làm việc trên mã Matlab dùng chung và chúng tôi muốn chia sẻ tài liệu được tạo dưới dạng tài liệu HTML có thể tìm kiếm trong mạng cục bộ của chúng tôi.Cách Mathworks để tạo tài liệu Matlab HTML là gì?

Tôi biết các phương pháp sau để tạo ra một tài liệu hướng dẫn:

  1. Viết một chuyển đổi để C++ - file như thế nào. Điều này được thực hiện trong Using Doxygen with Matlab (Cập nhật lần cuối 2011) và mtoc++ (cập nhật lần cuối 2013). Các tệp giống như C++ sau đó được phân tích bởi Doxygen.
  2. Sử dụng Python sphinxcontrib-matlabdomain để tạo tài liệu HTML.
  3. Sử dụng m2html cũng là giải pháp của bên thứ ba.
  4. Các tùy chọn khác được liệt kê trong Q & Là: One, TwoThree.

Tất cả các khả năng không được Mathworks hỗ trợ. Tất cả các khả năng cần tôi đề cập đến tức là các thông số của một hàm tôi. Họ không phân tích mã theo nghĩa, Doxygen hiện nó cho ví dụ: Java:

//! an object representation of the advertisement package sent by the beacon 
private AdvertisementPackage advertisementPackage; 

Tôi nghe nói về publish() chức năng của Matlab, nhưng tôi đã không bao giờ nhìn thấy nó được sử dụng theo nghĩa nói trên.

Câu hỏi: Cách Mathworks để tạo tài liệu Matlab HTML là gì. Bản thân mã có thể được phân tích không? Tôi có thể sử dụng thông tin được cung cấp cho Trình phân tích cú pháp đầu vào Matlab không? Vui lòng đề cập đến sở thích cá nhân của bạn trong các nhận xét.

Ví dụ:

%% 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); 
+1

Để làm rõ [tiện ích mở rộng Sphinx matlabdomain] (https://pypi.python.org/pypi/sphinxcontrib-matlabdomain), tác giả của tôi, _does_ phân tích mã của bạn và tự động tạo tài liệu tương tự như Epydoc. Hãy thử sử dụng ['autosummary extension'] (http://sphinx-doc.org/latest/ext/autosummary.html) để liệt kê nguồn mong muốn của bạn, sau đó sử dụng [' sphinx-autogen'] (http: // sphinx- doc.org/latest/ext/autosummary.html?highlight=autogen) để tự động tạo ['autodoc'] (http://sphinx-doc.org/latest/ext/autodoc.html#module-sphinx.ext.autodoc) các tệp sơ khai, sau đó tạo tài liệu của bạn. –

+1

Bây giờ chúng tôi quyết định đi theo con đường Nhân sư khi chúng tôi nhận được phản hồi nhanh và tốt khi gặp sự cố. – Lukas

Trả lời

12

Tôi nghĩ bạn đã nghiên cứu tốt chủ đề này (cách tạo tài liệu HTML từ các hàm MATLAB), bây giờ tùy bạn chọn phương thức nào phù hợp nhất với bạn.

Chức năng publish có thể được sử dụng để author documentation. Bạn viết các tệp M thông thường với specially crafted comments (trên thực tế tệp có thể là tất cả các nhận xét không có mã), sau đó bạn xuất bản tệp để nhận HTML được hiển thị (nó cũng hỗ trợ other targets chẳng hạn như PDF, DOC, LaTeX, v.v ...). Hãy nghĩ về nó như là một phiên bản Markdown cụ thể của Markdown được sử dụng ở đây trên Stack Exchange sites để định dạng bài đăng.

Một khía cạnh bạn không đề cập đến là tích hợp tài liệu được tạo vào Trình xem trợ giúp được tạo sẵn. Điều này được thực hiện bằng cách tạo các tệp info.xmldemos.xml và sắp xếp tài liệu theo cách cụ thể. Bạn cũng có thể làm cho tài liệu tùy chỉnh của mình có thể tìm kiếm được bằng cách xây dựng các tệp chỉ mục Lucene chỉ mục sử dụng chức năng builddocsearchdb (chức năng bên trong đó cung cấp chức năng tìm kiếm trong tài liệu tùy chỉnh MATLAB). Lưu ý rằng việc bạn tạo tài liệu HTML không quan trọng (bạn có thể đã sử dụng publish hoặc thậm chí các tệp HTML được viết thủ công).

Thực tế, luồng công việc dựa trên publish có thể mở rộng và bạn có thể sử dụng theo cách thú vị bằng cách tạo các tệp mẫu XSL tùy chỉnh để chuyển đổi và hiển thị nhận xét được phân tích cú pháp. Ví dụ tôi đã thấy nó được sử dụng để render equations sử dụng MathJax thay vì dựa vào giải pháp tích hợp. Một ví dụ khác là publishing to MediaWiki markup (định dạng được sử dụng bởi Wikipedia). Những người khác sử dụng nó để viết bài đăng trên blog (xem official blogs trên Trung tâm MATLAB đang tạo theo cách này), hoặc thậm chí generate text files sau đó được xử lý bởi máy tạo trang tĩnh (như JekyllOctopress khung công tác).

Theo như tôi biết, không có sẵn các công cụ công khai kiểm tra mã MATLAB ở mức độ sâu hơn và phân tích các tham số chức năng. Tốt nhất tôi có thể nghĩ ra là sử dụng reflection để lấy một số siêu dữ liệu về chức năng và lớp học, mặc dù giải pháp đó không hoàn hảo ...

MathWorks dường như đang sử dụng hệ thống nội bộ của riêng mình để tạo tài liệu HTML. Quá xấu họ không chia sẻ nó với chúng tôi sử dụng :)

+0

Tôi đang tìm kiếm các tệp trợ giúp HTML của MATLAB và tôi nhận thấy các tham chiếu đến một sản phẩm có tên [Arbortext] (http://www.arbortext.com/): https://en.wikipedia.org/wiki/Arbortext_Advanced_Print_Publisher – Amro

3

Tôi nghĩ rằng đây là chính thức santioned cách Mathworks' điểm viết tài liệu: http://www.mathworks.co.uk/help/matlab/matlab_prog/display-custom-documentation.html

Về cơ bản viết HTML, và thêm một bó của tập tin để làm cho nó có thể tìm kiếm và thể hiển thị trong tài liệu MATLAB.

+0

Bạn có thể giải thích về điều này không? Tôi thấy rằng tôi có thể tự viết các tệp HTML. Nhưng bạn có thấy cách tạo các tệp HTML đó từ thông tin được cung cấp trong mã nguồn (tiêu đề, InputParser) không? – Lukas

+0

Cách duy nhất để tạo HTML từ mã theo như tôi biết là sử dụng hàm 'publish' với đánh dấu MathWorks cho mã. – am304

+0

Theo như tôi phát hiện ra bây giờ, nó sẽ thực thi kịch bản. Hầu hết thời gian tôi muốn tài liệu chức năng và đầu vào của họ và không chạy chúng. Bạn có thấy một giải pháp? – Lukas

0

có một cách dễ dàng để sử dụng xuất bản với một chức năng & nó đầu vào tương ứng. xem publish('test',struct('codeToEvaluate','test(inputs);','showCode',false, )).

Các vấn đề liên quan