Làm nổi bật Code với thư viện Javascript SyntaxHighlighter
2. SyntaxHighlighter là gì?
SyntaxHighlighter là một mã khép kín với đầy đủ chức năng được phát triển trên JavaScript bởi Alex Gorbatchev năm 2004. Kể từ khi nó được phát minh, nó đã được sử dụng rộng rãi bởi cả hai trang web lớn và nhỏ và các ứng dụng như Apache, Aptana, Mozilla, Yahoo, WordPress, Bug Labs, Freshbooks.
Làm nổi bật cú pháp (Syntax highlighting) là một tính năng của một số trình soạn thảo văn bản hiển thị văn bản, đặc biệt là mã nguồn được hiển thị theo các màu sắc khác nhau và các phông chữ theo các thể loại từ ngữ. Tính năng này giúp giảm bớt phải viết bằng một ngôn ngữ đánh dấu (markup language) để làm nổi bật một đoạn code. Highlighting không ảnh hưởng đến ý nghĩa của các văn bản gốc, nó chỉ dành cho nguời đọc dễ dàng đọc nội dung code, và các biên tập viên viết bài.

4. Sử dụng SyntaxHighlighter
Giải nén file bạn vừa download được:

SyntaxHighlighter 3.0.83 hỗ trợ làm nổi bật cú pháp mã cho các ngôn ngữ lập trình:
- AppleScript
- AS3
- Bash
- ColdFusion
- .....
- Java
- JScript
- ....
Bạn có thể nhìn thấy các file javascript để làm nổi bật code cho các ngôn ngữ lập trình khác nhau tại:
- <SyntaxHightlighter>/scripts

Tạo thư mục examples, các ví dụ trong tài liệu này sẽ được đặt tại thư mục này.

Hãy xem một ví dụ làm nổi bật mã cho mã JavaScript.
example_javascript_default.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SyntaxHighlighter - JavaScript example</title>
<!-- Thư viện cơ bản của SyntaxHighlighter -->
<script type="text/javascript" src="../scripts/shCore.js"></script>
<!-- Thư viện Highlight cho Javascript -->
<script type="text/javascript" src="../scripts/shBrushJScript.js"></script>
<!-- Sử dụng Style mặc định -->
<link type="text/css" rel="stylesheet" href="../styles/shCoreDefault.css"/>
</head>
<body>
<h2>Highlight JavaScript Code - Default Style</h2>
<h3>JavaScript Code:</h3>
<pre class="brush: js;">
function helloSyntaxHighlighter()
{
return "hi!";
}
</pre>
<!-- Highlight tất cả các code -->
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
</body>
</html>
Thử trực tuyến:
Ví dụ làm nổi bật code Java & Javascript:
example_sh_default.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SyntaxHighlighter - JavaScript + Java example</title>
<!-- Thư viện cơ bản của SyntaxHighlighter -->
<script type="text/javascript" src="../scripts/shCore.js"></script>
<!-- Thư viện Highlight cho Javascript -->
<script type="text/javascript" src="../scripts/shBrushJScript.js"></script>
<!-- Thư viện Highlight cho Java -->
<script type="text/javascript" src="../scripts/shBrushJava.js"></script>
<!-- Sử dụng Theme mặc định -->
<link type="text/css" rel="stylesheet" href="../styles/shCoreDefault.css"/>
</head>
<body>
<h2>Highlight Java, JavaScript Code - Default theme</h2>
<h3>JavaScript Code:</h3>
<pre class="brush: js;">
function helloSyntaxHighlighter()
{
return "hi!";
}
</pre>
<h3>Java Code:</h3>
<pre class="brush: java;">
public class JavaClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
</pre>
<!-- Highlight tất cả các code -->
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
</body>
</html>
Thử trực tuyến:
5. Thay đổi Style
Bạn hãy xem và so sánh "Code Javascript" hiển thị trên style (kiểu dáng) mặc định và Eclipse style, Django style.

SyntaxHighlighter cung cấp cho bạn rất nhiều các style, bạn có thể nhìn thấy trong thư mục:
- <SyntaxHighlighter>/styles

Ví dụ Eclipse style:
example_sh_eclipse.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SyntaxHighlighter - JavaScript + Java example</title>
<!-- Thư viện cơ bản của SyntaxHighlighter -->
<script type="text/javascript" src="../scripts/shCore.js"></script>
<!-- Thư viện Highlight cho Javascript -->
<script type="text/javascript" src="../scripts/shBrushJScript.js"></script>
<!-- Thư viện Highlight cho Java -->
<script type="text/javascript" src="../scripts/shBrushJava.js"></script>
<!-- Sử dụng Eclipse Style -->
<link type="text/css" rel="stylesheet" href="../styles/shCoreEclipse.css"/>
</head>
<body>
<h2>Highlight Java, JavaScript Code - Eclipse style</h2>
<h3>JavaScript Code:</h3>
<pre class="brush: js;">
function helloSyntaxHighlighter()
{
return "hi!";
}
</pre>
<h3>Java Code:</h3>
<pre class="brush: java;">
public class JavaClass {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
</pre>
<!-- Highlight tất cả các code -->
<script type="text/javascript">
SyntaxHighlighter.all();
</script>
</body>
</html>
Thử trực tuyến:
6. CKEditor-SyntaxHighlight Plugin
CKEditor-SyntaxHighlight là một addon (phần thêm vào) của CKEditor, nó có thể tích hợp vào trình soạn thảo văn bản CKEditor cho phép bạn soạn thảo ra văn bản có thể được nổi bật hóa (Highlighting) bởi SyntaxHighlighter mà bạn đang xem trong tài liệu này.
Bạn có thể xem hướng dẫn tich hợp CKEditor-SyntaxHighlight vào CKEditor tại:
Các hướng dẫn ECMAScript, Javascript
- Giới thiệu về Javascript và ECMAScript
- Bắt đầu nhanh với Javascript
- Hộp thoại Alert, Confirm, Prompt trong Javascript
- Bắt đầu nhanh với JavaScript
- Biến (Variable) trong JavaScript
- Các toán tử Bitwise
- Mảng (Array) trong JavaScript
- Vòng lặp trong JavaScript
- Hàm trong JavaScript
- Hướng dẫn và ví dụ JavaScript Number
- Hướng dẫn và ví dụ JavaScript Boolean
- Hướng dẫn và ví dụ JavaScript String
- Câu lệnh rẽ nhánh if/else trong JavaScript
- Câu lệnh rẽ nhánh switch trong JavaScript
- Hướng dẫn xử lý lỗi trong JavaScript
- Hướng dẫn và ví dụ JavaScript Date
- Hướng dẫn và ví dụ JavaScript Module
- Lịch sử phát triển của module trong JavaScript
- Hàm setTimeout và setInterval trong JavaScript
- Hướng dẫn và ví dụ Javascript Form Validation
- Hướng dẫn và ví dụ JavaScript Web Cookie
- Từ khóa void trong JavaScript
- Lớp và đối tượng trong JavaScript
- Kỹ thuật mô phỏng lớp và kế thừa trong JavaScript
- Thừa kế và đa hình trong JavaScript
- Tìm hiểu về Duck Typing trong JavaScript
- Hướng dẫn và ví dụ JavaScript Symbol
- Hướng dẫn JavaScript Set Collection
- Hướng dẫn JavaScript Map Collection
- Tìm hiểu về JavaScript Iterable và Iterator
- Hướng dẫn sử dụng biểu thức chính quy trong JavaScript
- Hướng dẫn và ví dụ JavaScript Promise, Async Await
- Hướng dẫn và ví dụ Javascript Window
- Hướng dẫn và ví dụ Javascript Console
- Hướng dẫn và ví dụ Javascript Screen
- Hướng dẫn và ví dụ Javascript Navigator
- Hướng dẫn và ví dụ Javascript Geolocation API
- Hướng dẫn và ví dụ Javascript Location
- Hướng dẫn và ví dụ Javascript History API
- Hướng dẫn và ví dụ Javascript Statusbar
- Hướng dẫn và ví dụ Javascript Locationbar
- Hướng dẫn và ví dụ Javascript Scrollbars
- Hướng dẫn và ví dụ Javascript Menubar
- Hướng dẫn xử lý JSON trong JavaScript
- Xử lý sự kiện (Event) trong Javascript
- Hướng dẫn và ví dụ Javascript MouseEvent
- Hướng dẫn và ví dụ Javascript WheelEvent
- Hướng dẫn và ví dụ Javascript KeyboardEvent
- Hướng dẫn và ví dụ Javascript FocusEvent
- Hướng dẫn và ví dụ Javascript InputEvent
- Hướng dẫn và ví dụ Javascript ChangeEvent
- Hướng dẫn và ví dụ Javascript DragEvent
- Hướng dẫn và ví dụ Javascript HashChangeEvent
- Hướng dẫn và ví dụ Javascript URL Encoding
- Hướng dẫn và ví dụ Javascript FileReader
- Hướng dẫn và ví dụ Javascript XMLHttpRequest
- Hướng dẫn và ví dụ Javascript Fetch API
- Phân tích XML trong Javascript với DOMParser
- Giới thiệu về Javascript HTML5 Canvas API
- Làm nổi bật Code với thư viện Javascript SyntaxHighlighter
- Polyfill là gì trong khoa học lập trình?
Show More
Có thể bạn quan tâm
Đây là các khóa học trực tuyến bên ngoài website openplanning.net mà chúng tôi giới thiệu, nó có thể bao gồm các khóa học miễn phí hoặc giảm giá.
Khóa học Javascript Chuyên Sâu
Learn Javascript ECMAscript ES6, ES7, ES8, and Beyond Course
Learn JavaScript Fundamentals
Become a Highly Paid JavaScript Developer in 2 Weeks
The Web Development Course: HTML5, CSS3, JavaScript
The Complete JavaScript Course - Beginner to Professional
Starting with JavaScript Unit Testing
Learn ECMAScript 2015 - ES6 Best Course
Getting started with javascript and its core concepts
2D Game Development With HTML5 Canvas, JS - Tic Tac Toe Game
The complete beginner JavaScript ES5, ES6 and JQuery Course
Learn JavaScript From Scratch:Become Top Rated Web Developer
ES6 / EcmaScript 6 for beginners - the essentials
JavaScript in 55 Minutes
Javascript ES6 : From Zero To Hero
JavaScript Fundamentals: A Course for Absolute Beginners
Learn Javascript from Scratch - JS Tutorial for beginners
Build a Real Time Chat App with JavaScript and Firebase
HTML5, CSS3 And JavaScript Fundamentals 2016
Learning ECMAScript 6: Moving to the New JavaScript
JavaScript Dynamic Quiz Application from Scratch JSON AJAX
Learn JavaScript for Web Development
Master ECMAScript 2015 (ES6)
VueJS V1 Introduction to VueJS JavaScript Framework
The Complete JavaScript Bootcamp
JavaScript in Action JavaScript Projects
Start 3D GIS Web Development in JavaScript
Byte-Sized-Chunks: Dynamic Prototypes in Javascript
Learn Google Maps JavaScript API
JavaScript For Beginners - Learn JavaScript From Scratch
HTML CSS JavaScript: Most popular ways to code HTML CSS JS
Quick JavaScript Core learning Course JavaScript Essentials
JavaScript projects Welcome to the DOM Useful Code Snippets
JavaScript Tricks how to create code projects from scratch
Master ExpressJS to Build Web Apps with NodeJS&JavaScript
Getting really good at JavaScript and TypeScript
JavaScript 101 Gain insights how to code with JavaScript
Introductory To JavaScript - Learn The Basics of JavaScript
Essentials of JavaScript Practice Coding Exercises Tips
JavaScript Intro to learning JavaScript web programming
JavaScript for Beginning Web Developers
JavaScript - Start Developing Applications in 2 Hours Free!
1 Hour JavaScript
Learning JavaScript Programming Tutorial. A Definitive Guide
Kids Coding - Introduction to HTML, CSS and JavaScript!
Javascript for Beginners
Show More