2012-03-09 24 views
8

Tôi đang phát triển một wiki với Python/Django, một phần cho mục đích giáo dục. Cho đến giờ tôi vẫn thiếu ngôn ngữ đánh dấu đúng. Tôi đã thử một cái nhìn khá, bao gồm cả Creole và Markdown, mà làm việc tốt, ngoại trừ hỗ trợ bảng. Các ngôn ngữ đánh dấu wiki phổ biến dường như chỉ hỗ trợ các bảng thô sơ, tức là một dòng đơn trên mỗi ô hoặc không có đánh dấu phức tạp trong các ô. Nhưng những người sử dụng wiki của tôi muốn có thể tạo ra các bảng với văn bản và danh sách định dạng lớn hơn trong các ô. Tôi có vấn đề với việc tìm kiếm một ngôn ngữ đánh dấu mà thực sự có thể làm được điều này.Ngôn ngữ đánh dấu wiki với hỗ trợ bảng tuyệt vời

Tôi đã nhìn vào ngôn ngữ đánh dấu MediaWiki mà dường như để hỗ trợ tất cả mọi thứ nhưng tôi nghĩ rằng sử dụng này sẽ là quá mức cần thiết. Phần còn lại của đánh dấu có thể khá đơn giản với việc tập trung vào khả năng viết dễ dàng của đánh dấu (thỉnh thoảng tôi tìm thấy đánh dấu MediaWiki đôi khi xấu xí). Hơn nữa, phải có một mô-đun Python để dịch đánh dấu thành HTML mà tôi có thể sử dụng trong webapp. Tôi vẫn đang tìm kiếm một đánh dấu cho MediaWiki.

Một lựa chọn khác sẽ được đổ ngôn ngữ đánh dấu wiki ở tất cả và thay vào đó cho phép một tập hợp các thẻ HTML được định nghĩa cho đánh dấu. Nhưng điều đó làm cho việc viết các bài viết wiki trở nên khó khăn hơn, vì HTML không được phát minh để sử dụng như vậy. và cũng tìm và thoát HTML bị cấm có thể khá phức tạp. Tôi thà có một ngôn ngữ đánh dấu tốt đẹp với một thực thi Python nhẹ.

Có ai biết của một ngôn ngữ đánh dấu với sự hỗ trợ bảng mở rộng và thực hiện bằng Python mà tôi có thể sử dụng không?

Cảm ơn trước!

Trả lời

1

Tôi đã tìm được giải pháp cho bản thân vì tôi thấy REST phức tạp để sử dụng cho người dùng thiếu kinh nghiệm về mặt kỹ thuật. Tôi có thể là một chút phức tạp nhưng nó làm việc cho tôi.

Khóa là phần mở rộng cho ngôn ngữ đánh dấu hiện có. Tôi thấy Markdown khá dễ chịu, mặc dù thiếu sự hỗ trợ bảng. Sử dụng Python-Markdown, here là mọi thứ bạn cần biết để viết phần mở rộng của riêng bạn. Nó không phải là phức tạp. Tôi đã tấn công một cái gì đó với nhau trong nửa giờ và nó thực sự hoạt động cho đến nay. Tôi sẽ hiển thị mã ở đây nhưng tôi không thực sự tự hào về nó;) Về cơ bản, bạn phân tích một khối đánh dấu và chèn các phần tử bảng trong DOM như bạn muốn.

Tôi đoán mỗi thực hiện có thể sử dụng một ngôn ngữ đánh dấu nên có một số loại cơ chế mở rộng, vì vậy chúng ta có thể viết các phần mở rộng cho các ngôn ngữ và hiện thực khác, quá. Đó không phải là giải pháp thuận tiện nhất nhưng vẫn tốt hơn sử dụng một số ngôn ngữ xấu xí chỉ vì lợi ích của tính năng.

4

Tôi không biết nếu nó Thịt nhu cầu của bạn, nhưng bạn có thể sử dụng reStructuredText. Sphinx tạo html từ nó cho tài liệu python và được viết bằng python, vì vậy nó nên dễ sử dụng cho mục đích này. Tôi thấy nó rất gọn gàng và dễ đọc, vì nó được thiết kế và nó có thể làm các bảng khá phức tạp.

+0

+1 mặc dù tôi không chắc chắn nếu 'phần còn lại' là ngôn ngữ đánh dấu. – Simon

+0

Tôi cho rằng định nghĩa chính xác của ngôn ngữ đánh dấu hơi khác nhau, vì vậy tôi không biết liệu 'phần còn lại có nằm trong danh mục này hay không nhưng dễ viết, dễ đọc và biên dịch cho html đẹp, vì vậy nó có thể là một ứng cử viên tốt cho loại sử dụng này. – aquavitae

+0

Cảm ơn bạn đã đề xuất. ReST thực sự hỗ trợ mọi thứ tôi cần và thậm chí còn tích hợp trong Django. Tuy nhiên, tôi không thấy nó dễ đọc đối với những người không phải là công nghệ cao và thậm chí còn khó viết hơn, nếu bạn nhìn vào đánh dấu thực tế cho một bảng phức tạp. Ít nhất, tôi không muốn bị buộc phải thích ứng với toàn bộ cột nếu một tế bào đã phát triển một chút. Tôi muốn biết làm thế nào các nhà phát triển Python làm điều đó;) Dù sao, cảm ơn bạn! – j0ker

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