Tôi đã thiết lập tài liệu Sphinx cho dự án của mình và muốn trích xuất chuỗi tài liệu cho các tệp nguồn và nhúng chúng vào tài liệu cuối cùng. Thật không may, ngôn ngữ của tệp nguồn (VHDL) không được Sphinx hỗ trợ. Dường như không có miền Sphinx cho VHDL.Làm thế nào để xử lý trước các tệp nguồn trong khi Sphinx chạy?
Vì vậy, ý tưởng của tôi là như sau:
- Hook vào Sphinx chạy và thực hiện một số mã Python trước Sphinx
- Các mã Python chiết xuất khối văn bản từ mỗi tập tin nguồn (the-nhất trên nhiều dòng khối nhận xét) và tập hợp một tệp reST cho mỗi tệp nguồn, bao gồm khối nhận xét này và một số đánh dấu lại khác.
- Tất cả các tệp nguồn được liệt kê trong một
index.rst
, để tạo chỉ thị.. toctree::
thích hợp. - Việc trích xuất và chuyển đổi văn bản được thực hiện đệ quy cho mỗi thư mục mã nguồn.
Vì vậy, câu hỏi chính là: Cách móc vào Spinx?
Hoặc tôi chỉ nên nhập và chạy cấu hình của riêng mình trong conf.py
?
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
from my_preprocessor import my_proc
proc = my_proc()
proc.run()
#
# Test documentation build configuration file, created by
# sphinx-quickstart on Tue May 24 11:28:20 2016.
# ....
tôi không thể sửa đổi các tập tin quá trình xây dựng: Makefile
và make.bat
, bởi vì quá trình xây dựng thực chạy trên ReadTheDocs.org. RTD chỉ thực hiện conf.py
.
Bất kỳ lý do nào bạn không thể [tạo tiện ích mở rộng] (http://www.sphinx-doc.org/en/stable/extdev/index.html#dev-extensions) và [thêm nó vào dự án của bạn] (http://www.sphinx-doc.org/en/stable/extensions.html#where-to-put-your-own-extensions)? –
Rất phức tạp để viết phần mở rộng (trình phân tích cú pháp, bộ điều hợp mô hình đối tượng) cho ngôn ngữ đích của tôi ... quá trình xử lý trước có thể dễ dàng hơn. – Paebbels