2012-03-21 33 views
6

Khi tôi chạy rst2html.py chống lại nguồn Text ReStructured của tôi, với chỉ thị khối mã của nó, nó thêm tất cả các nhịp và các lớp vào các bit của mã trong HTML, nhưng CSS để thực sự tô màu các nhịp đó là vắng mặt. Có thể tải RST để thêm liên kết CSS hoặc nhúng CSS vào tệp HTML không?Tôi làm cách nào để có được rst2html.py bao gồm CSS để làm nổi bật cú pháp?

+0

Tôi không chắc chắn chính xác những gì bạn đang yêu cầu: làm bạn muốn nhận được cú pháp nổi bật trong đầu ra HTML của bạn, hay bạn có CSS ​​để áp dụng cú pháp này làm nổi bật nhưng không biết làm thế nào để kết hợp phong cách CSS tùy chỉnh vào quá trình xây dựng? – Chris

+0

Tôi muốn làm nổi bật cú pháp trong đầu ra HTML. Tất cả các thuộc tính lớp đều có (ví dụ: ), nhưng không có CSS ​​kèm theo được thêm vào bởi quá trình xây dựng. –

Trả lời

7

Kể từ Docutils 0.9, bạn có thể sử dụng code directive. Từ ví dụ trên trang này:

.. code:: python 

def my_function(): 
    "just a test" 
    print 8/2 

Hoặc, bạn có thể sử dụng Pygments để làm nổi bật cú pháp. Xem Using Pygments in ReST documentsthis câu trả lời SO.

Cuối cùng, bạn cũng có thể sử dụng mã trong this hoặc this blogpost.

Cập nhật Như đã thảo luận trong các ý kiến, để có được các tập tin theo phong cách được sử dụng bởi Pygments sử dụng lệnh

pygmentize -S default -f html -a .highlight > style.css 

mà sẽ tạo ra Pygments CSS phong cách tập style.css.

+0

Có, nhưng không có kiểu CSS cho tất cả các lớp span được thêm vào. Làm thế nào để có được CSS? –

+0

Tôi vẫn không chắc mình hiểu chính xác câu hỏi. Bạn đang sử dụng Pygments hoặc chỉ thị 'code'? Nếu như vậy lệnh 'pygmentize -S default -f html -a .highlight> style.css' sẽ tạo tệp kiểu CSS Pygments' style.css', mà sau đó bạn sử dụng trong quá trình xây dựng của mình bằng cách sử dụng '--stylesheet' lệnh (hoặc tương tự) hoặc 'rst2html.py'. – Chris

+0

Đó là lệnh pygmentize mà tôi đang tìm kiếm, cảm ơn. –

5

Trong tài liệu 0.9 và 0.10, nó không bị mờ nếu bạn sử dụng mã, mã khối hoặc mã nguồn. Tất cả các chỉ thị được coi là code role.

Lệnh này sẽ tạo css có thể được nhúng vào html bởi rst2html.py.

pygmentize -S default -f html -a .code > syntax.css 

Lệnh này sẽ tạo ra html:

rst2html.py --stylesheet=syntax.css in.txt > out.html 

Theo mặc định, kết quả đầu ra rst2html.py kéo dài với tên lớp như comment, number, integer, và operator. Nếu bạn có một docutils.conf hoặc trong cùng thư mục với các nguồn, hoặc /etc, hoặc trong ~/.docutils với

[parsers] 
[restructuredtext parser] 
syntax_highlight=short 

... thì tên lớp sẽ c, m, mi, và o mà phù hợp syntax.css được tạo ra bởi pygmentize.

See syntax-highlight in docutils documentation

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