Markdown, Markdown A+ và giải pháp mới cho ngành xuất bản
Tại e-Book Expo Tokyo thứ 17, một trong những sự kiện lớn nhất của ngành sách điện tử thế giới thì Alezaa của Việt Nam đã giới thiệu một giải pháp mới cho ngành chế bản giúp việc biên tập trở nên dễ dàng hơn với tên gọi Markdown A+. Thông qua giải pháp này, ngay cả một người không biết lập trình cũng có thể tự tạo những quyển sách riêng của họ để bán mà không cần vật lộn với hàng đống mã HTML phức tạp. Markdown A+ là một giải pháp nâng cao dựa trên nền ngôn ngữ Markdown, một ngôn ngữ tối giản hoá cho phép chúng ta viết và định dạng đơn giản các văn bản dưới dạng text truyền thống và chuyển sang XHTML/HTML.
Markdown là gì? Trước khi nói về Markdown A+ cũng như giải pháp của Alezaa, bạn cần phải biết Markdown là gì.
Markdown là một ngôn ngữ markup tối giản (lightweight markup language) được phát triển bởi John Gruber và có sự đóng góp lớn từ Aaron Swartz. Gruber là một người rất nổi tiếng, ông hiện đang sở hữu blog công nghệ Daring Fireball và Swartz là người góp phần tạo nên RSS, Reddit, Creative Common (hiện anh đã mất).
Markdown xuất hiện để đơn giản hoá các thao tác mà người dùng phải thực hiện khi viết bài hay biên tập với HTML. Bạn hãy nhìn vào giao diện comment của Tinhte.vn, khi bạn gõ, căn chỉnh trái phải, chèn link hay in nghiêng, đậm.... thì chúng ta sẽ thấy chúng thay đổi theo như hiệu lệnh từ người dùng. Tuy nhiên, sâu bên trong thì những dòng lệnh yêu cầu việc đó cực kỳ phức tạp, hãy bấm vào nút có hình chữ A/A ở góc trên cùng bên tay trái để thấy được những dòng lệnh HTML gốc.
Lấy ví dụ một dòng chữ đơn giản như “Cộng Hoà Xã Hội Chủ Nghĩa Việt Nam” khi viết bằng HTML sẽ có dạng như sau (có tách khoảng trắng để bạn có thể thấy được):
[COLO R=#ff0000]Cộng Hoà Xã Hội Chủ Nghĩa Việt Nam[/CO LOR]
Vấn đề của HTML là đây, người cần chỉnh sửa nâng cao bằng HTML không thể hình dung được những gì họ đang viết, mỗi khi có lỗi thì chỉ có thể xoá toàn bộ format của đoạn đó từ đầu hoặc ngồi dò từng dòng code một. Markdown ra đời để giải quyết vấn đề đó, nó cố gắng làm cho mọi thứ bạn gõ cũng chính là những gì người ta thấy khi soạn thảo xong, ai cũng có thể hiểu và làm được. Nói một cách vui vẻ, markdown là ngôn ngữ người đọc còn HTML để máy đọc sau đó dựng lại một lần nữa cho ngừoi dứoi dạng văn bản (plain text).
Lấy ví dụ về Markdown và HTML, để đặt Headings (tiêu đề của chương/đoạn văn bản...) thì với HTML ta phải gõ: <h1 >Nội dung</h1> còn Markdown chỉ là # Nội dung. Nếu bạn làm Headings cấp 4 thì Markdown là #### yyy còn HTML ta có <h4 >yyy</h4>. Tương tự, để cách đoạn trong Markdown ta thực hiện thao tác rất con người: gõ space 2 lần còn với HTML, người ta phải đặt cặp tag <p> đoạn văn </p> vào đầu mỗi đoạn văn bản.
Đây là những ví dụ đơn giản nhất để bạn hiểu còn tất nhiên có những lệnh phức tạp hơn hàng chục lần.
Giới hạn của Markdown: Như đã nói, do tối giản hết mức có thể mà có rất nhiều tính năng nâng cao mà Markdown không hỗ trợ, ví dụ như format đoạn văn bản với nhiều màu sắc. Có một vài dạng markdown nâng cao ra đời cho phép nhúng HTML vào hoặc gắn thêm các tag HTML để cải thiện khả năng này nhưng khi đó thì ý nghĩa của Markdown đã không còn nữa và gây rối người dùng.
Nhược điểm lớn nhất là Markdown vẫn chưa thật trực quan với người dùng mới. Hầu hết chúng ta vẫn quen với kiểu dùng thanh công cụ bấm vào nút I (italic) để in đậm hơn là kiểu *nội dung*. Dù vậy, một khi đã thật sự quen thì Markdown trở thành một thứ không thể thiếu, rất nhiều trang web lớn sử dụng nó cũng như chúng ta có hàng loạt các phần mềm soạn thảo dùng Markdown.
Có một nhược điểm khác mà HTML và Markdown cùng mắc phải: nó chỉ thích hợp cho những dự án nhỏ lẻ, những bài blog cá nhân vì đòi hỏi công sức quá lớn khi biên tập cho những quyển sách. Lấy ví dụ, có những đoạn văn bạn cần phải gạch dưới, bôi đen, in nghiêng và chuyển màu đỏ trong quyển sách. Đối với Markdown cũng như HTML, bạn phải chỉnh sửa từng đoạn một cực kỳ phức tạp kiểu như: < b style="font-style: italic; font-weight: bold; color: red; text-deconation:underline;">Hello< /b> hay dễ nhất là <b style=“color:red><u><i>Hello</i></u></b> với HTML hay **_Hello_** của Markdown (Markdown không hiểu được lệch gach dưới underline, lệnh màu red và bạn buộc phải dùng HTML cho những cái phức tạp như vậy). Đó chính là lý do mà Alezaa giới thiệu Markdown A+.
Markdown A+: Markdown A+ được Alezaa phát triển nhằm giải quyết những rắc rối trong khâu chế bản, giúp người dùng không gặp rắc rối khi phải đương đầu với HTML trong khi vẫn có đầy đủ tính năng của nó. Lấy ví dụ như đoạn văn trên, cũng với quy định từ phải bôi đỏ, in đậm, in nghiêng, gạch chân thì chúng ta chỉ cần gõ [nội dung][1] là xong. 1 này là tham chiếu mà bạn sẽ tạo trong một file CSS đính kèm và giá trị tuỳ bạn thiết lập, chúng ta có thể đổi tên nó tuỳ thích cho dễ nhớ. Ví dụ như [nội dung][đỏ đậm chân nghiêng] hoặc [nội dung][bài này không dành cho trẻ trâu] .....
Markdown A+ và nội dung hoàn chỉnh
Markdown A+ và HTML
Vấn đề ở đây là gì? Alezaa vẫn giữ nguyên toàn bộ cú pháp của Markdown đồng thời tạo thêm một trường dữ liệu mới gọi là class chứa các tham chiếu trên trong một file CSS riêng lẻ. Bạn hoàn toàn có thể chỉnh sửa và bổ sung các tuỳ chọn vào file CSS đó, chẳng hạn như [1]: class: ".bold .italic .red .underline” có nghĩa là từ/đoạn văn nào có [1] sau lưng sẽ được in nghêng, in đậm, màu đỏ và gạch chân. [2] có thể là canh lề trái, in đậm, màu xanh.... tuỳ ý bạn. Alezaa đã tạo sẵn cho chúng ta một file CSS và bạn toàn quyển xử lý nó theo ý muốn bản thân, rất dễ xài, chỉ cần chỉnh sửa lần đầu tiên và áp dụng trong tất cả những lần sau, không còn tình trạng khi thì format kiểu này khi thì kiểu khác ở một số sách hiện tại.
Không chỉ format mà những tính năng cực kỳ phức tạp với HTML như ghi chú, diễn giải của từ cũng sẽ có thể thao tác rất dễ với Markdown A+, bạn cũng thực hiện theo kiểu [nội dung][2] và bổ sung [2]: note: "abcxyz” ở dưới với abcxyz là diễn giải cho phần nội dung.
Như vậy, chỉ cần chỉnh sửa một lần duy nhất là chúng ta đã có thể dễ dàng sử dụng cho những lần sau, mang tính kế thừa rất cao.
Sau khi đã chỉnh sửa xong thì chúng ta hoàn toàn có thể xuất ra file ePub đem bán trên Store hay file HTML dán ra bất cứ trình duyệt nào cũng có thể hiểu được đầy đủ mà không mất format.
Bạn nên xem video để hiểu rõ hơn vấn đề này.
Kết luận: Giải pháp của Alezaa có thể không phải là mạnh mẽ nhất về tính năng nhưng nó là giải pháp đơn giản nhất mà mình biết tính đến thời điểm này trong việc định dạng một quyển sách hay một bài hướng dẫn theo ý thích của chúng ta. Do được xuất ra dưới dạng HTML hoàn chỉnh nên bạn sẽ không lo bị mất format khi mang tới bất cứ đâu, tình trạng mà những ai xài word copy ra trình duyệt hay gặp phải. Với công cụ này thì bạn hoàn toàn có thể có được những quyển sách đẹp của riêng mình hay đưa những bài giảng, những quyển tự truyên lên Amazon Kindle Store/iBook Store hay cả Alezaa.com bán/chia sẻ với mọi người.