2012-10-23 22 views
10

Tôi đang sử dụng sphinx để tạo tài liệu html cho một dự án. Tôi sử dụng rộng rãi field lists.Ghi đè giới hạn tên trường mặc định bằng sphinx/docutils

Khi tạo html, mỗi cặp nhãn/giá trị được hiển thị dưới dạng hàng một hàng với hai ô nếu chiều dài của nhãn tối đa là 14 ký tự.

Nếu nhãn của một cặp dài hơn 14 ký tự, nhãn/giá trị được hiển thị dưới dạng hai hàng của bảng.

Tôi muốn tăng giới hạn gói lên một giá trị lớn hơn (ví dụ 40). Tôi đã thấy rằng giới hạn được kiểm soát bởi tùy chọn --field-name-limit của các tài liệu. Tuy nhiên, tôi không thể tìm cách thiết lập giá trị này thông qua nhân sư.

tôi đã tạo ra một tập tin docutils.conf trong thư mục gốc tài liệu với nội dung sau:

[general] 
dump_settings: 1 
dump_internals: 1 

[html4css1 writer] 
field_name_limit: 40 

Các tập tin được đọc khi tôi chạy Sphinx. Cài đặt và nội bộ được in - vì các giá trị trong phần [general]. Trong số các giá trị được in, field_name_limit được in để có giá trị 40. Mặc dù vậy, gói tôi mô tả vẫn xuất hiện trong đầu ra html.

Làm cách nào để đặt giá trị field_name_limit để tôi nhận được kết quả mong muốn?

+1

bạn đã thử phương pháp tiếp cận từ câu trả lời của tôi chưa? – bmu

+0

FWIW, trong phiên bản Sphinx v 1.6.6 thiết lập từ docutils.conf được tôn trọng. – collapsar

Trả lời

0

Tôi nghĩ rằng cách tiếp cận của bạn không hoạt động vì nhân sư sử dụng trình ghi html của chính nó.

Tuy nhiên tôi nghĩ rằng nó sẽ hoạt động, nếu bạn thích ứng với kiểu cho field_name. Tôi (một lần) đã sử dụng tệp css tùy chỉnh với

.field-name { 
    white-space: nowrap; 
} 

hoặc đặt thành chiều rộng cố định.

+0

Trong Nhân sư 1.6.6, cách tiếp cận đó sẽ không thể thực hiện được khi Writer hiển thị tên trường và giá trị trong 2 hàng của bảng khác nhau. – collapsar

+0

Điều này không hoạt động vì gói được triển khai trong trình soạn thảo html docutils, tạo ra một phần tử html khác, xem: https://github.com/docutils/docutils/blob/84f7b36275804d110e05ac75688960e6f340e698/docutils/docutils/writers/html4css1/ __init __. py # L916 – marbu

0

Một cách để thực hiện điều này là ghi đè cài đặt trong lớp trình xây dựng nhân sư tùy chỉnh mở rộng trình tạo html gốc và đặt self.settings.field_name_limit = 0 trong chức năng prepare_writing(self, docnames). Điều đó nói rằng, đây là một chút quá mức cần thiết, trừ khi bạn đã có một lớp người xây dựng tùy chỉnh ...