2012-07-01 16 views
7

Đối với giao diện người dùng web của tôi, tôi phải triển khai các tập con của cú pháp wiki trong hệ thống của mình. Tôi có cần chỉ định quy tắc theo cách thủ công và tạo lại bánh xe không? Có một thư viện javascript hoặc plugin jquery hiện có có thể giúp đỡ với nó?Giải pháp Jquery/Javascript để chuyển đổi văn bản wiki thành HTML và ngược lại?

Ví dụ người dùng nhập == Header == Từ điều này cần phải được chuyển đổi sang một tiêu đề vừa ví dụ (vừa giả định được định nghĩa trong bối cảnh này là một khoảng như sau)

<span class="mediumHeader" id = "Header">Header</span> 

Bây giờ khi người dùng chỉnh sửa trên văn bản tôi đoán nó sẽ liên quan đến việc thay thế

<span...> ... </span> với ==...==

Bây giờ cho mỗi hệ thống tôi thiết kế này sẽ theo 'quy tắc của tôi' một d sẽ hầu như luôn luôn phải tái tạo lại bánh xe. Có một cái gì đó mà tôi có thể sử dụng để dễ dàng wiki này đến/từ chuyển đổi HTML bằng cách sử dụng Jquery/Javascript? Tôi chắc chắn đó là một vấn đề với một giải pháp đã biết.

Tôi muốn tùy chỉnh nội dung có thể chấp nhận được và không phải là nghĩa là tôi không dịch mọi thứ sang cú pháp wiki (hoặc HTML) chỉ các tập con của nó. Tôi có nên chỉ cuộn cho ứng dụng của mình không?

+0

Phương ngữ của wikitext? Có rất nhiều và trả lời câu hỏi không phải là rất có thể nếu không có thông tin đó.Bạn đang nói về định dạng MediaWiki như được sử dụng trong Wikipedia? – hippietrail

Trả lời

5

Đã đủ lâu để bạn có thể không cần điều này, nhưng bạn là SO đầu trang khi tôi bắt đầu xem xét nó.

Có một vài tùy chọn javascript - có thể bạn đang xem instaview (hãy kiểm tra test/test.js) hoặc có thể Wiky.js (tài liệu ít được ghi đầy đủ hơn).

Nếu bạn không bị giới hạn ở Javascript, hãy xem danh sách đầy đủ các trình phân tích cú pháp của MediaWiki tại http://www.mediawiki.org/wiki/Alternative_parsers - nhiều công cụ cho C++, Java, Perl, ruby ​​và hơn thế nữa. Đó là liên kết để xem những phát triển mới.

3

Tại thời điểm viết, Parsoid có vẻ là người duy nhất dịch theo cả hai hướng. Điều này cũng hỗ trợ trình soạn thảo trực quan trên Wikipedia. Nhưng đây không phải là trang web tiện ích của khách hàng để đưa vào ứng dụng của bạn, mà là một bộ máy chủ phân tích cú pháp và chuyển đổi toàn diện. Một phiên bản sản xuất của Parsoid trên cụm Wikimedia có thể được truy cập tại http://parsoid-lb.eqiad.wikimedia.org/.

Thư viện Javascript khác, được dịch từ wikitext sang HTML chỉ (theo yêu cầu của sự nổi tiếng), bao gồm:

  • Wiky.js - không hỗ trợ cú pháp wikitext đầy đủ. (bởi tanin47, không được nhầm lẫn với Wiki.js từ Requarks - một dự án khác hoàn toàn)
  • wtf_wikipedia - không dịch trực tiếp sang HTML nhưng JSON, dẫn đến khả năng mạnh hơn nhiều (ví dụ: hộp thông tin như khóa) cặp giá trị). Đây là thư viện cập nhật nhất và "kết hợp giữa instaview, txtwiki và sử dụng dữ liệu liên ngôn ngữ từ trình phân tích cú pháp JavaScript Parsoid."
  • instaview - không có cập nhật nào trong 2 năm qua.

Đồng thời kiểm tra danh sách hiện tại và đầy đủ của alternative MediaWiki parsers.

+1

Câu hỏi hay và đầy đủ. Đây sẽ là câu trả lời được chấp nhận. – Sebastialonso