Mã đánh dấu cú pháp với Javascript [đã đóng]


109

Bạn có thể đề xuất thư viện Javascript nào cho các khối <code> tô sáng cú pháp trong HTML?

(Vui lòng đưa ra một gợi ý cho mỗi câu trả lời).


Câu trả lời:


103

StackOverflow sử dụng thư viện Prettify .


Tôi thứ hai điều này. Google Code sử dụng nó để làm nổi bật repo của riêng họ (kể từ khi họ viết nó) và tự động phát hiện ngôn ngữ.
Karan

Chắc chắn việc sử dụng một ngôn ngữ "tự động" phát hiện ngôn ngữ chỉ đơn giản là đặt nhiều trọng lượng hơn lên máy / trình duyệt của khách hàng ...
James

2
Bạn có thể cung cấp ngôn ngữ cho Prettify nếu bạn biết nó, nó sẽ cải thiện hiệu suất. Điều này chỉ không được sử dụng trong StackOverflow do lượng lớn đối tượng ngôn ngữ.
Vincent Robert

Chỉ cần thêm cái này vào trang web của tôi, thật tuyệt và rất đơn giản để sử dụng!
Lawrence Dol

@Vincent: nó cải thiện nhiều hơn chỉ là hiệu suất ;-)
SamB

44

Gần đây tôi đã phát triển một cái gọi là cầu vồng.

Mục tiêu thiết kế chính là làm cho thư viện lõi thực sự nhỏ và giúp các nhà phát triển mở rộng thực sự dễ dàng.

Xem http://rainbowco.de .


2
Tôi vừa chạy qua Rainbow hôm nay - tôi thấy nó có thể phân biệt rõ ràng hơn Prettify (chẳng hạn như có thể biết khi nào rdf:typeđược sử dụng như một phần tử và khi nào nó là một thuộc tính).
Roger_S

3
Điều này cần phải đi lên hàng đầu, Craig. Tôi đã thử tất cả các giải pháp khác và chỉ Rainbow xử lý Python một cách chính xác và có các biểu định kiểu chủ đề có thể đọc được . Plugin tuyệt vời!
Máy xay sinh tố


15

jQuery Syntax Highlighter là một công cụ mới dựa trên Prettify của Google - một công cụ đánh dấu cú pháp javascript đơn giản thực sự rất phổ biến.

Nó hỗ trợ những thứ như codeprekhối, có thể sử dụng các tên lớp như language-javascriptđể chỉ ra rằng chúng ta muốn nó làm nổi bật, cũng như wordwrap. Bạn có thể sao chép và dán mã bằng cách chọn nó bình thường thay vì phải mở chế độ xem thô như nhiều người khác. Nó có thể được tùy chỉnh thêm bằng cách sử dụng thuộc tính dữ liệu HTML5 data-shhoặc thông qua việc chỉ định các tùy chọn khi khởi tạo. Một sự lựa chọn ổn định tuyệt vời được cập nhật thường xuyên.


Tác giả thực sự nói rằng nó dựa trên Prettify của Google, không phải SyntaxHighlighter. Tuy nhiên, trông giống như SyntaxHighlighter 3, nhưng có vẻ như yêu cầu ít công việc hơn để thiết lập. Cảm ơn các liên kết!
Tieson T.

15

Còn Prism của Lea Verou.

Từ thông báo về bài đăng trên blog của cô ấy vào tháng 6 (2012):

  • Nó nhỏ. Cốt lõi chỉ là 1,5KB được rút gọn và gzipped.
  • Nó cực kỳ có thể mở rộng. Không chỉ dễ dàng thêm các ngôn ngữ mới (đó là điều có sẵn với mọi công cụ đánh dấu cú pháp ngày nay) mà còn để mở rộng các ngôn ngữ hiện có.
  • Nó hỗ trợ song song thông qua Web worker, để có hiệu suất tốt hơn trong một số trường hợp nhất định.
  • Nó không buộc bạn phải sử dụng bất kỳ đánh dấu dành riêng cho Prism, thậm chí không phải là tên lớp dành riêng cho Prism, chỉ có đánh dấu tiêu chuẩn mà bạn nên sử dụng. Vì vậy, bạn có thể dùng thử một thời gian, gỡ bỏ nếu không thích và không để lại dấu vết.

Đây cuối cùng là lựa chọn tốt nhất trong số tất cả các câu trả lời cho tôi vì dễ dàng thêm các định nghĩa ngôn ngữ mới.
Mike Grace


5

Nếu bạn đang sử dụng jQuery, có Chilli:

http://code.google.com/p/jquery-chili-js/

Tất cả những gì bạn phải làm là bao gồm jquery-ớt.js và cooking.js, và làm nổi bật với

$("code").chili();

Nó sẽ tự tìm ra ngôn ngữ.


Các liên kết đến các ví dụ trên trang đó đều dẫn đến một tên miền đã hết hạn chứa đầy quảng cáo, vì vậy sẽ hơi khó khăn để biết được phần đánh dấu này trông như thế nào.
Nathan Osman

5

Tôi rất hài lòng với SHJS . Nó hỗ trợ nhiều ngôn ngữ và có vẻ khá nhanh và chính xác.

Đây là một ví dụ mà tôi sử dụng nó trên blog của mình . Tôi đang sử dụng tệp CSS tùy chỉnh của riêng mình mô phỏng đánh dấu cú pháp của Coda . Gửi email cho tôi nếu bạn muốn sử dụng nó.


4

jQuery.Syntax là một công cụ đánh dấu cú pháp cực kỳ nhanh và nhẹ. Nó có khả năng tải động các tệp nguồn cú pháp và tích hợp rõ ràng bằng cách sử dụng CSS hoặc các mô hình.

Nó được phát triển đặc biệt để lấp đầy một khoảng trống - đó là: một trình phân tích cú pháp phía máy khách nhanh, gọn gàng.


tiếc là nó nghĩ một thông điệp chuẩn FpML là Spam :)
ehosca

@ehosca, bạn có thể giải thích cho tôi về vấn đề bạn đang gặp phải không?
ioquatix

khi tôi dán xml vào goo.gl/PPcDx vào goo.gl/qSqm9, nó cho biết Nội dung không hợp lệ, có vẻ là spam. hi vọng điêu nay co ich.
ehosca 14/09/11

Bạn cần bao gồm một số ngắt dòng trong văn bản, nếu không nó trông giống như spam liên kết. Tôi không thể nhớ chính xác các công thức mà tôi đã sử dụng, nhưng tôi nghĩ nếu bạn có nhiều hơn một URL trên mỗi dòng, văn bản sẽ bị coi là spam - điều này là do hàng đống bot đang gửi thư rác vào hệ thống (theo cú pháp-highlighing.com ).
ioquatix

3

Nếu bạn đang tìm kiếm đánh dấu cú pháp trong trình chỉnh sửa trong trình duyệt, hãy thử CodeMirror .


3

Tôi không tranh luận nhưng chỉ nghĩ rằng điều đáng nói là nếu bạn đang sử dụng CMS hoặc nền tảng blog thì sử dụng công cụ đánh dấu phụ trợ sẽ tốt hơn vì những lý do rõ ràng - Hãy xem Geshi ( http://qbnz.com/highlighter/ ) nếu bạn quan tâm. Trên thực tế, bạn có thể thiết lập máy chủ của mình để phân tích cú pháp nội dung HTML thông qua công nghệ phụ trợ - vì vậy không cần đến các công cụ đánh dấu JS. (Chức năng duy nhất họ thêm vào là khả năng in / sao chép [sử dụng swf].)


2
Nó không rõ ràng đối với tôi. Tại sao sử dụng công cụ đánh dấu phụ trợ lại tốt hơn?
Evan P.

1
Vâng, tôi cũng thực sự muốn biết điều gì là "hiển nhiên" về việc thích gửi phản hồi lớn hơn cho khách hàng ...
ZenMaster

1
Tôi muốn đánh dấu cú pháp vẫn hiện diện trên các thiết bị không bật JS. Ngoài ra, công cụ đánh dấu phía máy khách có chi phí thời gian chạy có thể khá đắt nếu bạn có nhiều mã để đánh dấu. Điều đó nói rằng, nó phụ thuộc vào tình huống sử dụng cụ thể của bạn :)
James

Những thiết bị nào không được bật JS?
Jack Giffin


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.