- Một định dạng dựa trên văn bản đơn giản đã trở thành ngôn ngữ chung của toàn bộ ngành công nghệ toàn cầu, được sử dụng rộng rãi từ các hệ thống AI đến những ứng dụng ghi chú hằng ngày
- Đây là định dạng do John Gruber tạo ra vào năm 2004 để giải quyết sự bất tiện trong việc biên tập bài blog, giúp bất kỳ ai cũng có thể dễ dàng viết tài liệu web
- Cung cấp cú pháp trực quan và cấu trúc mở cho cả lập trình viên lẫn người dùng phổ thông, nhờ đó được tích hợp vào gần như mọi nền tảng như GitHub, Slack và Apple Notes
- Được tạo ra với tinh thần chia sẻ và hợp tác hơn là vì lợi ích thương mại, cho thấy tính bền vững của hệ sinh thái công nghệ mở
- Ngày nay, đây là định dạng nền tảng của Internet đến mức ngay cả hệ thống điều khiển cốt lõi của ngành AI cũng được viết bằng Markdown
Nguồn gốc và quá trình lan rộng của Markdown
- Markdown là một ngôn ngữ định dạng ngắn gọn được tạo ra để giải quyết vấn đề chỉnh sửa HTML phức tạp trong các công cụ blog vào đầu những năm 2000
- John Gruber khi điều hành blog tập trung vào Apple là Daring Fireball từ năm 2002 đã phát triển nó để giảm bớt sự bất tiện khi viết bài
- Khi đó, các blogger phải tự viết HTML trực tiếp để chèn liên kết hoặc chữ in đậm
- Năm 2004, Gruber cùng với Aaron Swartz tiến hành thử nghiệm beta để tinh chỉnh định dạng này, rồi công bố vào tháng 3
- Phản hồi từ Swartz đã góp phần nâng cao tính ổn định và độ linh hoạt
- Ngay sau khi ra mắt, nó lan rộng không chỉ trong giới blog mà còn cho nhiều mục đích khác nhau, phát triển từ một công cụ cá nhân đơn giản thành định dạng tiêu chuẩn trên toàn bộ web
Nguyên lý và đặc điểm của Markdown
- Một cấu trúc cú pháp trực quan cho phép biểu đạt định dạng web chỉ bằng các ký tự thông thường trên bàn phím
- Ví dụ: dạng
[văn bản liên kết](URL) hoặc # tiêu đề
- Đúng như cái tên “Markdown”, vốn giảm bớt sự phức tạp của “Markup”, giá trị cốt lõi của nó là sự đơn giản và khả năng dễ đọc
- Dễ đến mức ai cũng có thể học trong vài phút, nhưng đồng thời vẫn mang lại khả năng biểu đạt mạnh mẽ
- Về mặt kỹ thuật, việc triển khai cũng đơn giản nên hầu hết các công cụ blog và ứng dụng đều nhanh chóng hỗ trợ
Sự lan rộng ra toàn ngành
- Trong nhiều thập kỷ, Markdown đã trở thành ngôn ngữ cơ bản của ngành phần mềm
- Các ứng dụng lớn như Google Docs (2022), Microsoft Notepad, Apple Notes đều đã bổ sung hỗ trợ
- Nó cũng được dùng trên các nền tảng nhắn tin như Slack, WhatsApp và Discord
- Gần như mọi kho lưu trữ trên GitHub đều có tệp Markdown, và nó được dùng như tiêu chuẩn cho mô tả dự án và tài liệu hóa
- Có hàng tỷ tệp Markdown tồn tại trên ổ cứng và trên đám mây khắp thế giới
- Thậm chí còn xuất hiện trong các hệ thống nhúng như máy chơi game hay tai nghe
Tinh thần công nghệ mở và hợp tác
- Markdown được công bố miễn phí mà không nhằm mục đích thương mại, nên bất kỳ ai cũng có thể tự do sử dụng
- Gruber không yêu cầu đền bù tài chính cho định dạng này
- Trong văn hóa web mở đầu những năm 2000, đây là ví dụ tiêu biểu cho cách phát triển mang tính hợp tác, cùng chia sẻ và cải thiện tiêu chuẩn
- Nhờ tính mở đó, không xuất hiện các lựa chọn thay thế mang tính đóng kín, và Markdown đã trở thành hạ tầng công cộng của Internet
Markdown trong kỷ nguyên AI
- Ngày nay, phần lớn prompt và script điều khiển của mô hình ngôn ngữ lớn (LLM) đều được viết dưới dạng Markdown
- Các chỉ dẫn tác vụ nâng cao trong ChatGPT hay Claude cũng dựa trên Markdown
- Một định dạng văn bản đơn giản đã phát triển thành ngôn ngữ điều khiển cốt lõi của ngành AI
- Định dạng miễn phí do Gruber tạo ra này đang nâng đỡ ngành AI trị giá hàng nghìn tỷ đô la
- Ở nền tảng của tiến bộ công nghệ không phải lúc nào cũng là các tập đoàn khổng lồ, mà là đóng góp của cá nhân được tạo nên bằng đam mê và sự tỉ mỉ
10 lý do kỹ thuật khiến Markdown thành công
- 1. Cái tên xuất sắc: trực quan và dễ nhớ như một khái niệm đối lập với “Markup”
- 2. Giải quyết đúng vấn đề thực tế: xóa bỏ sự bất tiện của việc viết HTML phức tạp
- 3. Dựa trên thói quen sử dụng quen thuộc: tận dụng các ký hiệu đã được dùng trong email và những môi trường khác
- 4. Cấu trúc phát triển mở tương tự RSS: lớn lên cùng văn hóa blog
- 5. Cộng đồng hợp tác: có công nghệ đi trước như Textile của Dean Allen và sự tham gia của Swartz
- 6. Hỗ trợ nhiều biến thể: mở rộng theo từng bối cảnh như CommonMark, GitHub-Flavored
- 7. Nắm bắt đúng thời điểm thay đổi hành vi người dùng: xuất hiện vào lúc blog và mạng xã hội bùng nổ
- 8. Phù hợp với thời đại công cụ build: quá trình chuyển đổi sang HTML rất hợp với workflow tự động hóa
- 9. Giữ triết lý ‘View Source’: ai cũng có thể xem mã nguồn gốc và học hỏi
- 10. Không bị ràng buộc bởi quyền sở hữu trí tuệ: không có hạn chế bằng sáng chế hay giấy phép nên có thể được tiếp nhận tự do
Kết luận
- Markdown đã trở thành ngôn ngữ cơ bản của Internet nhờ sự đơn giản, tính mở và thiết kế lấy con người làm trung tâm
- Nó chứng minh rằng sự sáng tạo cá nhân và tinh thần hợp tác chứ không phải nguồn vốn khổng lồ vẫn có thể dẫn dắt đổi mới công nghệ
- Ngay cả trong cấu trúc cốt lõi của AI và web ngày nay, cội rễ của nó vẫn là một định dạng tệp văn bản do một lập trình viên tạo ra
1 bình luận
Ý kiến trên Hacker News
Bài viết rất tốt. Nhưng lý do lớn nhất khiến tôi thích Markdown là vì về bản chất nó dựa trên văn bản thuần
Không bị ràng buộc bởi định dạng hay nhà cung cấp, và cũng hoàn hảo để đưa vào kho git. Không cần lo một định dạng như OneNote đến năm 2035 còn mở được hay không
Tôi cũng thích việc các LLM về cơ bản hiểu Markdown. Khi yêu cầu tạo tài liệu API từ mã phía server, chúng lập tức hiểu rằng mình muốn một bản tóm tắt dựa trên văn bản
.mdvà chỉnh lại một chút là nó trông đẹp ngayTrước đây tôi từng thêm tính năng hỗ trợ Markdown vào Google Docs như một dự án 20%. Thật vinh dự khi tên mình được nhắc đến trong lịch sử Markdown
alt+/thì thật sự rất tiệnKhông hẳn là việc tự viết HTML quá khó, mà sức hấp dẫn của Markdown nằm ở chỗ chính văn bản gốc cũng dễ đọc
Và xin giới thiệu trình soạn thảo Kraa của tôi, nơi bạn có thể tùy biến “diện mạo” của Markdown
#khiến khó thay đổi kiểu header, và dùng cú pháp checkbox không chuẩn ([]) nên khá bất tiện. UI rất đẹp nhưng với tư cách trình soạn thảo Markdown thì còn thiếu<br>. Ví dụ như ô bảng nhiều dòng thì phải dùng cùng font đơn cáchTôi thật sự rất thích Markdown. Nhưng vẫn ngạc nhiên là đến giờ phần lớn trình duyệt vẫn không mở trực tiếp file
.md. Sẽ rất hay nếu trình duyệt tự chuyển sang HTML để hiển thị.md.htmllà trình duyệt render được ngay. Tôi lưu chúng trên Google Drive và dùng thay cho mọi ứng dụng ghi chúBài viết không nhắc đến câu chuyện Jeff Atwood (nhà sáng lập Stack Overflow) từng đề nghị Gruber chuẩn hóa Markdown
Cuối cùng Gruber đã từ chối, nhưng tôi nghĩ việc ông kiên định với điều mình muốn làm là một ví dụ truyền cảm hứng
Cách nói “có một biến thể phù hợp với mọi ngữ cảnh” thật buồn cười. Markdown không thống nhất nên bold hay bold, italics dễ gây lẫn lộn
Dù vậy tôi vẫn mong CommonMark được dùng rộng rãi hơn
/italics/,_underline_sẽ tốt hơn, giống như ở các định dạng khácCó một định dạng mới là Djot(djot.net), do tác giả của CommonMark và Pandoc tạo ra. Nó hợp lý hơn và dễ phân tích cú pháp hơn
Ưu điểm của Markdown rất rõ ràng
Dựa trên văn bản, thân thiện với git, thân thiện với LLM, khả năng tìm kiếm rất tốt
Nhưng nó không thể xử lý bố cục phức tạp, kiểu chữ tinh vi hay nhúng dữ liệu nhị phân. Tôi tò mò không biết còn hạn chế nào khác nữa không
Lý do Markdown thành công là nhờ đúng thời điểm
AsciiDoc, org-mode và các định dạng khác có cấu trúc tốt hơn nhưng lại thiếu độ phổ biến.
Khi GitHub chọn Markdown, cả cộng đồng mã nguồn mở cũng tự nhiên đi theo.
Giống như cuộc cạnh tranh giữa VHS và Betamax, không phải công nghệ tốt hơn mà là định dạng chiếm chỗ trước đã chiến thắng
Mô tả kiểu “một người khó tính nhưng ấm áp, giờ này có lẽ đang xem phim Kubrick và cổ vũ cho một đội bóng vô lý nào đó” thật ấn tượng