Định dạng Markdown và những điều bạn cần biết - CommonMark Spec

Định dạng Markdown và những điều bạn cần biết - CommonMark Spec

Những mẩu tin ngắn hàng ngày dành cho bạn
  • countless.dev là một trang web khá thú vị khi mà nó so sánh giá tiền sử dụng các mô hình LLMs của các nhà cung cấp khác nhau.

    Tại đây bạn có thể nhìn thấy tất cả các mô hình ngôn ngữ lớn phổ biến bởi các nhà cung cấp như OpenAI, Azure, Mistral... Bảng giá cho mỗi 1M tokens đầu vào/ra. Hoặc thậm chí có thể so sánh chúng với nhau để tìm ra nhà cung cấp hoặc mô hình rẻ nhất tuỳ theo mục đích sử dụng.

    » Xem thêm
  • 1,2 năm trước, Kubernetes (k8s) tự nhiên được nhắc đến như một hiện tượng, chắc vì nó bá quá nên ai cũng muốn học và sử dụng. Nó là một công cụ "Automating deployment, scaling, and management of containerized applications" - Vâng! nghe hay ho đấy chứ 🤤.

    Hồi đó thì mình đang đam mê với Docker, đặc biệt là Docker Swarm, cũng tương tự như k8s ý nhưng ở quy mô nhỏ hơn. Docker Swarm thì có vẻ ít phức tạp hơn nhiều so với k8s. Mà như thế cũng tốt vì nó đã và đang đáp ứng rất tốt nhu cầu sử dụng của mình lúc đó, lại còn bớt đi phần phức tạp, lằng nhằng.

    Ấy thế mà 1-2 tháng trở lại đây, các bài viết có tiêu đề "bạn có thực sự cần đến Kubernetes" lại đang nổi lên với tần suất dày hơn. Quả thật k8s rất mạnh nhưng cũng quá phức tạp. Tại sao phải cố dùng dao "mổ trâu để giết gà" cơ chứ? Trừ khi bạn lường trước được độ phức tạp khi muốn áp dụng một công nghệ. Một cái nữa k8s tiêu tốn tài nguyên và nguồn lực ghê ghớm, để vận hành được nó không đơn giản là dựng lên được là xong mà còn phải có rất nhiều nhiều kiến thức nữa 😨.

    À, chắc cũng một phần nữa là do các "ông lớn" đang tập trung đẩy mạnh vào Serverless, giảm bớt sự phức tạp trong khâu vận hành đi, thay vào đó là nên tập trung vào phát triển ứng dụng.

    Bên cạnh đó, thì cái tên WASM cũng đang được nhắc đến rất là nhiều 🤔

    Do you really need Kubernetes in your company/startup? | dev.to

    Do You Really Need Kubernetes?

    » Xem thêm
  • Trước mình cứ khen lấy khen để Serverless, rằng tối ưu chi phí xuống 0đ để duy trì blog các thứ. Đúng là như vậy thật! Nhưng bên cạnh đó serverless cũng có các mặt tối đáng để lưu tâm đấy!

    Hôm kia mình phải mất ngày trời để truy tìm và khắc phục sự cố chỉ vì gọi hàm build-in của Cloudflare KV. Cụ thể là hàm list với limit 1000 - tức là một lần gọi nó trả về 1000 keys của KV. Cơ mà đời không như là mơ. Con số 1000 chỉ là trên lý thuyết. Lúc thì trả về vài trăm, lúc thì vài chục, thậm chí lúc thì lẹt đẹt có vài cái. Thế là làm tắc nghẽn cả hệ thống. À mà cũng không phải là nghẽn mà là hệ thống "nhàn rỗi" quá không có việc gì để làm, trong khi thực tế đáng ra nó phải xử lý cả trăm ngàn cái keys cơ 🥲

    » Xem thêm

Vấn đề

Rất lâu về trước, khi tải một công cụ gì đó trên mạng về, giải nén ra thì thường sẽ có một tệp có tên "README.MD" và người đăng thì luôn khuyên rằng nên đọc trước nội dung có trong đó để biết cách sử dụng. Lúc đó, tôi chỉ có thắc mắc về cái đuôi .MD, vì nó chỉ là một tệp văn bản bình thường thôi thì tại sao lại không .TXT!?

Lớn hơn một chút, khi biết cách sử dụng Github, tôi đọc được nhiều lời khuyên rằng nên tạo một tệp "README.MD" để mô tả ngắn gọn về dự án. Khi đó, cách tôi viết chỉ đơn giản là những gạch đầu dòng tóm tắt lại ý chính. Tôi bắt đầu để ý đến những repo khác trên Github, bởi vì khi truy cập, đập vào mắt là phần mô tả hết sức khoa học mà còn đẹp mắt. Đó là lúc tôi được biết đến định dạng Markdown.

Trải qua một thời gian sử dụng, tôi nhận ra Markdown quả là một ý tưởng tuyệt vời, khi nó mang lại rất nhiều lợi ích cho mình. Vì thế, ngày hôm nay tôi xin phép được viết một bài nói về định dạng này, vì sao nên sử dụng, cũng như cho nhiều bạn lâu nay đã biết mà không để ý đến Markdown có nhiều cơ hội tìm hiểu kĩ hơn về loại định dạng này.

Markdown là gì?

Markdown là một ngôn ngữ đánh dấu văn bản (Markup Language) đơn giản, được tạo ra bởi John Gruber vào năm 2004 với mục đích dễ dàng viết và đọc các tài liệu, có thể chuyển đổi sang HTML hoặc các định dạng khác.

Markdown cho phép bạn tạo văn bản một cách dễ dàng, chỉ sử dụng các ký tự để đánh dấu kiểu chữ, kích thước, định dạng, liên kết, hình ảnh... Markdown có thể được sử dụng trong nhiều trường hợp, bao gồm viết blog, tài liệu kỹ thuật, bài viết trên diễn đàn, ghi chú...

Bạn sẽ thấy Markdown xuất hiện rất nhiều trong mã nguồn của phần mềm, dự án. Một phần vì nó dễ viết, phần nữa là khả năng chuyển đổi từ những dòng văn bản đơn điệu thành một phiên bản hiển thị trên web rất sống động.

Github README.MD

Tại sao nên sử dụng Markdown?

Markdown giúp cho người viết tập trung vào viết nội dung thay vì phải lo lắng về định dạng của văn bản. Khi sử dụng một phần mềm soạn thảo thông dụng như Word, bạn sẽ phải vừa viết, vừa sử dụng các nút tính năng hoặc công cụ để căn lề, định dạng, tạo thẻ tiêu đề, danh sách... thì với Markdown bạn không có gì ngoài những quy tắc, kẹp văn bản giữa các kí tự đại diện cho hành động định dạng. Bên cạnh đó, Markdown cũng dễ dàng để học và sử dụng, không yêu cầu nhiều kiến thức kỹ thuật.

Ví dụ một đoạn văn bản được định dạng là thẻ tiêu đề trong Markdown sẽ là:

# Tiêu đề
## Tiêu đề con
### Tiêu đề con của con

Có nhiều lý do tại sao nên sử dụng Markdown. Dưới đây là một trong số đó:

  • Dễ học và viết: Markdown là một ngôn ngữ đánh dấu đơn giản và dễ học, viết văn bản bằng Markdown cũng rất dễ dàng và nhanh chóng, không cần phải sử dụng phần mềm phức tạp. Bất cứ thứ gì, miễn là có thể tạo và lưu tệp kí tự.
  • Dễ dàng chuyển đổi sang các định dạng khác: Markdown có thể được chuyển đổi sang nhiều định dạng khác nhau như HTML, PDF, LaTex, EPUB...
  • Tập trung vào nội dung: người viết chỉ cần tập trung vào viết thay vì lo lắng về định dạng văn bản.
  • Hỗ trợ nhiều kiểu định dạng: Markdown hỗ trợ nhiều tính năng như tạo tiêu đề, đánh dấu chữ in đậm, in nghiêng, tạo danh sách, tạo liên kết, chèn hình ảnh, chèn mã nguồn, tạo bảng, v.v.
  • Dễ dàng quản lý: Markdown là một định dạng văn bản đơn giản, dễ dàng quản lý, theo dõi và sửa đổi. Có nhiều công cụ phần mềm hỗ trợ quản lý các tệp Markdown rất tốt.

Tóm lại, việc sử dụng Markdown có nhiều lợi ích, giúp người viết tập trung vào viết nội dung, dễ dàng chuyển đổi sang các định dạng khác nhau và phù hợp với nhiều mục đích sử dụng.

Hạn chế của Markdown

Mặc dù Markdown có nhiều lợi ích, nhưng nó cũng có một số hạn chế.

Vì chỉ là một tệp văn bản đơn giản, nó khó mà đáp ứng được nhiều định dạng như khi sử dụng một phần mềm soạn thảo văn bản thông thường. Bạn không thể căn chỉnh lề, dãn chữ, dãn dòng... và rất nhiều thứ khác.

Nếu không có một công cụ để chuyển đổi real-time văn bản viết bằng định dạng Markdown sang một định dạng khác như HTML, thì những kí tự dùng để định dạng sẽ gây cản trở quá trình đọc hiểu văn bản mà bạn đang viết.

Tóm lại, với những trường hợp đòi hỏi khả năng định dạng phức tạp, Markdown có thể không phù hợp. Ngược lại, nếu chỉ cần tập trung vào nội dung, nó sẽ trở nên rất hữu ích.

CommonMark Spec

Markdown được tạo ra bởi John Gruber, thế nên có lẽ đó là phiên bản tiêu chuẩn nhất. Thực tế, nếu chỉ dựa vào nó thì có rất nhiều hạn chế về tính năng. Đặc biệt là ngày nay, nhu cầu định dạng ngày càng phong phú.

Vì thế có nhiều cá nhân, tổ chức... cố gắng nâng cấp thêm tính năng cho Markdown. Trong đó đặc biệt nổi tiếng là CommonMark - một phiên bản "tiêu chuẩn" của Markdown, được tạo ra nhằm đảm bảo tính nhất quán giữa các trình biên tập Markdown khác nhau, giúp cho việc tạo và hiển thị tài liệu Markdown trở nên đồng nhất hơn.

CommonMark cung cấp một bộ quy tắc chung cho các tài liệu Markdown, giúp các trình biên tập Markdown hiểu và hiển thị các định dạng tài liệu này một cách đồng nhất.

Nói cách khác, CommonMark được đánh giá là một tiêu chuẩn Markdown chất lượng cao và đáng tin cậy. Các trình biên tập Markdown như Visual Studio Code, Atom, Sublime Text và Emacs đều hỗ trợ CommonMark và các tính năng mới của nó.

Vì thế, nếu bạn đang sử dụng Markdown làm định dạng để viết, hoặc đăng tải trên nhiều nền tảng hỗ trợ thì hãy xem xét sử dụng CommonMark để có thêm nhiều định dạng phong phú hơn cho tài liệu của bạn.

Kết luận

Markdown - một ngôn ngữ đánh dấu văn bản đơn giản, được sử dụng rộng rãi để tạo tài liệu trên nhiều nền tảng. Markdown rất dễ học, dễ viết với một vài hạn chế, ưu điểm nó mang lại. CommonMark là một trong những "nỗ lực" tạo ra một tiêu chuẩn cho định dạng Markdown nhằm thống nhất cách viết cũng như cách hiển thị văn bản trong môi trường khác nhau.

Cao cấp
Hello

Bí mật ngăn xếp của Blog

Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!

Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.
Author

Xin chào, tôi tên là Hoài - một anh Dev kể chuyện bằng cách viết ✍️ và làm sản phẩm 🚀. Với nhiều năm kinh nghiệm lập trình, tôi đã đóng góp một phần công sức cho nhiều sản phẩm mang lại giá trị cho người dùng tại nơi đang làm việc, cũng như cho chính bản thân. Sở thích của tôi là đọc, viết, nghiên cứu... Tôi tạo ra trang Blog này với sứ mệnh mang đến những bài viết chất lượng cho độc giả của 2coffee.dev.Hãy theo dõi tôi qua các kênh LinkedIn, Facebook, Instagram, Telegram.

Bạn thấy bài viết này có ích?
Không

Bình luận (0)

Nội dung bình luận...