Có bất kỳ thư viện hoặc điều khiển Javascript Markdown tốt nào không? [đóng cửa]


89

Tôi muốn xây dựng một trang web nơi người dùng có thể nhập văn bản và định dạng nó trong Markdown. Lý do tôi muốn có giải pháp Javascript là vì tôi muốn hiển thị bản xem trước trực tiếp, giống như trên StackOverflow.

Tuy nhiên, trang web của tôi không nhắm mục tiêu đến các nhà phát triển, do đó, một quyền kiểm soát của người biên tập sẽ là lý tưởng.

Tôi thu thập rằng trên StackOverflow, trình soạn thảo WMD đang được sử dụng.

Một tìm kiếm nhanh trên Google cũng cho thấy thư viện Showdown, mà tôi nghĩ thực sự đang được sử dụng bởi WMD.

Có sự lựa chọn nào khác không? WMD / Showdown đã có những công cụ tuyệt vời chưa? Bạn đã trải nghiệm gì với các tùy chọn khác nhau?

Câu trả lời:


33

Nếu bạn không thích sử dụng Ajax để tạo bản xem trước trực tiếp, thì một tùy chọn khác là markItUp! . markItUp! là một trình biên tập đánh dấu phổ biến và rất linh hoạt. Nó cung cấp một cách dễ dàng để tạo một trình chỉnh sửa đánh dấu, nhưng không giống như WMD, nó không cung cấp bản xem trước trực tiếp của riêng mình.

Tôi đã sử dụng markItUp !, cùng với một JSP đơn giản (sử dụng MarkdownJ ) cho một trong những dự án mã nguồn mở của tôi (một plugin Markdown cho Roller ). Nếu bạn đang sử dụng công nghệ phía máy chủ khác, hãy thay thế JSP đơn giản đó nếu thích hợp.

Tôi thực sự bắt đầu sử dụng cái này trước khi tôi bắt gặp WMD. Tôi đồng ý, WMD rất tuyệt, nhưng mới chỉ là nguồn mở và ở giai đoạn này, việc tùy chỉnh hành vi của nó khó hơn.


MarkItUp! không xử lý lựa chọn chuyển đổi và cố định. Đây là trình soạn thảo văn bản Markdown mã nguồn mở của tôi dựa trên JavaScript. Nó hỗ trợ phím tắt, hộp thoại tùy chỉnh, thả tùy chỉnh và cũng hỗ trợ một số lựa chọn văn bản thông minh gọn gàng để khuyến khích người dùng viết cú pháp Markdown ở định dạng tốt: github.com/tovic/markdown-text-editor
Taufik Nurrohman

65

Chúng tôi rất hài lòng với WMD. Tuy nhiên, có một vài lỗi nhỏ trong đó. Không có gì chính, nhưng tôi rất thích nếu John Fraser (tác giả) tạo mã nguồn mở để chúng tôi có thể sửa một số trong số chúng. Anh ấy đã hứa sẽ làm như vậy nhưng các dự án đời thực khác đang cản trở.

Tôi theo dõi John hàng tuần. Tôi sẽ đăng trên blog sau khi nguồn WMD cuối cùng có sẵn. Tôi đã không thể liên lạc với John Fraser trong hơn một năm nay.

Chúng tôi đã mở nguồn cả thư viện JavaScript Markdown

http://code.google.com/p/pagedown/

và thư viện C # Markdown phía máy chủ

http://code.google.com/p/markdownsharp/


Cảm ơn câu trả lời Jeff. Tôi thậm chí còn không nhận ra WMD không phải là mã nguồn mở ... Tôi sẽ tiếp tục chú ý.
webmat 26/09/08

2
Bạn đã làm gì với lỗ hổng bảo mật? Ví dụ: <div onmouseover = "alert ('hi');"> hi </div> Phần trên hoạt động trong bản trình diễn WMD!
andrewrk

1
@ superjoe30 Nội dung đó được lọc trên máy chủ.
epochwolf

@ superjoe30: Xem meta.stackexchange.com/questions/95821/… - điều tương tự cũng áp dụng cho phiên bản JavaScript
balpha

1
@DisgruntledGoat nhìn vào stackexchange.github.io, bạn có thể thấy rằng nó nằm trong danh sách và lần cam kết gần đây nhất là 6 tháng trước (2015 rồi).
Loïc Faure-Lacroix.

12

Tôi khuyên bạn nên đánh dấu , có dung lượng nhẹ, hiệu quả, dễ sử dụng và hỗ trợ cả GitHub Flavored Markdown (GFM). Nó có thể được sử dụng ở cả hai phía máy chủ (nodejs) hoặc máy khách (trình duyệt).


đánh dấu vẫn đang được phát triển và phiên bản thu nhỏ chỉ có dung lượng 23 KB.
Peter T.

7

Theo như tôi biết thực sự không có bất kỳ trình chỉnh sửa dựa trên trình duyệt nào khác cho Markdown, ít nhất là không có trình chỉnh sửa nào mở rộng như trình chỉnh sửa WMD.

Showdown là một công cụ chuyển đổi Markdown trong JS, tạo cơ sở cho bản xem trước HTML của WMD. Cả hai đều được tạo bởi http://attacklab.net/ .

Và theo như tôi biết thì chưa có bất kỳ phàn nàn nào lớn về cả hai (ít nhất là không có trong danh sách gửi thư Markdown). Vì vậy, đi cho nó.



4

Strapdown.js, được phát hành gần đây , "khiến việc tạo các tài liệu Markdown trang nhã trở nên đơn giản đến mức khó tin. Không cần biên dịch phía máy chủ."



3

Câu hỏi này thậm chí còn cổ xưa hơn nhưng cũng phù hợp hơn vì phần lớn mã được đề cập đã lỗi thời vài năm.

Tuy nhiên, tôi đã tìm thấy một số vẫn còn tồn tại:

Jquery-Markedit - Cái này đã được tách ra từ wmd-edit cách đây khá lâu và được cấu trúc lại để sử dụng jQuery. Có vẻ tốt ngay từ cái nhìn đầu tiên.

EpicEditor - cũng vẫn được duy trì, có trình phân tích cú pháp linh hoạt và như bạn có thể thấy bên dưới, tác giả có khả năng phản hồi cao (xem bên dưới). CNTT dường như cũng có tài liệu tốt. Đáng tiếc là không hoạt động với IE9.

MarkdownDeep là một tùy chọn thứ ba vẫn còn tồn tại. Điểm thú vị với cái này là hỗ trợ cho Markdown Extra. Có sự phụ thuộc vào JQuery (thực ra bạn cũng có thể triển khai mà không cần JQuery). Dựa trên phiên bản .NET, tài liệu hướng dẫn phù hợp hơn so với phiên bản JS. Điều này cũng hoạt động với IE9. Nó rất dễ sử dụng (với JQuery) và rất đơn giản. Không có sự phát triển đáng kể nào xảy ra với điều này mặc dù theo như tôi có thể thấy.

js-markdown-extra là một cổng khá chính xác của thư viện PHP và vẫn đang được bảo trì. Tất nhiên, nó hỗ trợ Markdown Extra.


1
Xem trước trực tiếp hoạt động tốt với trình chỉnh sửa của tôi :) mở toàn màn hình làm ví dụ hoặc chỉ đơn giản là chạy preview()khi nhấn phím hoặc hết thời gian chờ. Nó được xây dựng cho bất kỳ loại tùy chỉnh nào.
Oscar Godson

1
Vì vậy, dưới trình chỉnh sửa là cách nó hoạt động bây giờ. Khi bạn nhấp vào xem trước, nó sẽ hiển thị trình xem trước ẩn được cập nhật với những gì bạn đã viết. Toàn màn hình thực hiện nó (sorta) khi bạn nhập. Để tạo trình xem trước của riêng bạn, bạn có thể làm như sau: jsbin.com/otuyub/edit#javascript,html
Oscar Godson

1
Đánh chặn? Bạn có thể làm: editor.on('save', function(file) { console.log(file.content) })nếu đó là ý của bạn. Điều đó sẽ đưa ra nội dung tệp bất cứ khi nào tệp được lưu.
Oscar Godson

1
Ngoài ra, bạn có thể muốn sử dụng on('update')thay vì lưu. Lưu sẽ kích hoạt rất nhiều nếu bạn bật tự động lưu. Cập nhật sẽ chỉ kích hoạt khi có gì đó thay đổi. epicesitor.com/#events
Oscar Godson

1
Tôi cho bất kỳ ai đang đọc nội dung này: github.com/OscarGodson/EpicEditor/issues/137 - vấn đề là nó đang cố chạy cục bộ và IE9 có các hạn chế bảo mật đối với việc sử dụng localStorage cục bộ qua tệp: \\\
Oscar Godson

2

Câu hỏi rất cổ nhưng hy vọng điều này có thể giúp ích cho ai đó. Tôi vừa mới xuất bản phiên bản làm việc của trình chỉnh sửa đánh dấu Javascript của riêng tôi, uedit . Bạn có thể tìm thấy mã nguồn ở đây . Nó hoạt động trên hầu hết các trình duyệt (bao gồm IE6 +) và không phụ thuộc vào bất kỳ thư viện JS bên ngoài nào.


2

Sau khi thử với một số plugin để giải quyết nhu cầu của riêng tôi về việc cung cấp MarkDown seudo-WYSIWYG, tôi đã kết thúc việc triển khai một plugin của riêng mình:

Có thể không mạnh bằng tất cả các giải pháp được nhận xét ở đây nhưng tôi nghĩ rằng không có giải pháp nào đơn giản và dễ dàng tích hợp và tùy chỉnh .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.