Cách sử dụng pandoc để chuyển đổi tệp trên dòng lệnh Linux

Spread the love

Bạn có thể sử dụng pandoc trên Linux để chuyển đổi giữa hơn 40 định dạng tệp. Bạn cũng có thể sử dụng nó để tạo một hệ thống tài liệu dưới dạng mã đơn giản bằng cách viết trong Markdown, lưu trữ trong git và xuất bản ở bất kỳ định dạng nào được hỗ trợ.

Chuyển đổi tài liệu và tài liệu dưới dạng mã

Nếu bạn có một tài liệu trong bất kỳ tài liệu nào của pandoc nhiều định dạng tệp được hỗ trợ, chuyển đổi nó sang bất kỳ cái nào khác là một điều khó hiểu. Đó là một công cụ hữu ích cần có!

Nhưng sức mạnh thực sự của pandoc trở nên rõ ràng khi bạn sử dụng nó làm cơ sở của một hệ thống tài liệu dưới dạng mã đơn giản. Tiền đề của docs-as-code là áp dụng một số kỹ thuật và nguyên tắc phát triển phần mềm và áp dụng chúng vào việc viết tài liệu, đặc biệt là cho các dự án phát triển phần mềm. Tuy nhiên, bạn có thể áp dụng nó để phát triển bất kỳ loại tài liệu nào.

Các nhà phát triển phần mềm sử dụng trình soạn thảo yêu thích của họ hoặc môi trường phát triển tích hợp (IDE) để viết chương trình của họ. Mã họ nhập được lưu trong các tệp văn bản. Những thứ này chứa mã nguồn cho chương trình.

Họ sử dụng một hệ thống kiểm soát phiên bảnhoặc VCS (Git là phổ biến nhất), để nắm bắt các thay đổi đối với mã nguồn khi nó được phát triển và nâng cao. Điều này có nghĩa là lập trình viên có lịch sử đầy đủ của tất cả các phiên bản của tệp mã nguồn. Người đó có thể nhanh chóng truy cập vào bất kỳ phiên bản nào trước đó của tệp. Git lưu trữ các tệp trong một kho lưu trữ. Có một kho lưu trữ cục bộ trên máy tính của mỗi nhà phát triển và một kho lưu trữ trung tâm, chia sẻ, từ xa thường được lưu trữ trên đám mây.

Khi họ sẵn sàng tạo ra một phiên bản hoạt động của chương trình, họ sử dụng trình biên dịch để đọc mã nguồn và tạo tệp thực thi nhị phân.

Bằng cách viết các tài liệu của bạn bằng ngôn ngữ đánh dấu dựa trên văn bản, nhẹ, bạn có thể sử dụng VCS để kiểm soát phiên bản của mình. Khi bạn đã sẵn sàng phân phối hoặc xuất bản một tài liệu, bạn có thể sử dụng pandoc để tạo nhiều phiên bản tài liệu khác nhau tùy ý, bao gồm cả dựa trên web (HTML), xử lý văn bản hoặc sắp chữ (LibreOffice, Phần mềm soạn thảo văn bản, TeX), định dạng tài liệu di động (PDF), sách điện tử (ePub), và như thế.

Bạn có thể thực hiện tất cả những điều này từ một tập hợp các tệp văn bản nhẹ, được kiểm soát phiên bản.

Cài đặt pandoc

Để cài đặt pandoc trên Ubuntu, hãy sử dụng lệnh sau:

sudo apt-get install pandoc

Trên Fedora, lệnh bạn cần như sau:

sudo dnf install pandoc

Trên Manjaro, bạn cần nhập:

sudo pacman -Syu pandoc

Bạn có thể kiểm tra phiên bản mình đã cài đặt bằng cách sử dụng tùy chọn –version:

pandoc --version

Sử dụng pandoc không có tệp

Nếu bạn sử dụng pandoc mà không có bất kỳ tùy chọn dòng lệnh nào, nó cũng chấp nhận đầu vào đã nhập. Bạn chỉ cần nhấn Ctrl + D để cho biết bạn đã nhập xong. pandoc mong bạn nhập định dạng Markdown và nó tạo ra đầu ra HTML.

  Cách thiết lập công cụ phát triển Android trên Linux

Hãy xem một ví dụ:

pandoc

Chúng tôi đã nhập một vài dòng Markdown và sắp nhấn Ctrl + D.

Ngay sau khi chúng tôi thực hiện, pandoc sẽ tạo ra đầu ra HTML tương đương.

Tuy nhiên, để làm bất cứ điều gì hữu ích với pandoc, chúng ta thực sự cần sử dụng tệp.

Cơ bản về Markdown

Markdown là một ngôn ngữ đánh dấu nhẹ và có ý nghĩa đặc biệt cho các ký tự nhất định. Bạn có thể sử dụng trình soạn thảo văn bản thuần túy để tạo tệp Markdown.

Markdown có thể được đọc một cách dễ dàng, vì không có các thẻ rườm rà trực quan để phân tâm khỏi văn bản. Định dạng trong tài liệu Markdown giống với định dạng mà nó đại diện. Dưới đây là một số điều cơ bản:

Để nhấn mạnh văn bản bằng chữ in nghiêng, hãy đặt nó bằng dấu hoa thị. * Điều này sẽ được nhấn mạnh *
Để in đậm văn bản, hãy sử dụng hai dấu hoa thị. ** Điều này sẽ được in đậm **
Các tiêu đề được thể hiện bằng dấu số / dấu thăng (#). Văn bản được ngăn cách với hàm băm bởi một khoảng trắng. Sử dụng một băm cho tiêu đề cấp cao nhất, hai cho cấp hai, v.v.
Để tạo danh sách có dấu đầu dòng, hãy bắt đầu mỗi dòng của danh sách bằng dấu hoa thị và chèn khoảng trắng trước văn bản.
Để tạo danh sách được đánh số, hãy bắt đầu mỗi dòng bằng một chữ số theo sau là dấu chấm, sau đó chèn khoảng trắng trước văn bản.
Để tạo siêu kết nối, hãy đặt tên của trang web trong dấu ngoặc vuông ([]) và URL trong ngoặc đơn [()] như vậy: [Link to How to Geek](https://www.wdzwdz.com/).
Để chèn hình ảnh, hãy nhập dấu chấm than ngay trước dấu ngoặc (![]). Nhập bất kỳ văn bản thay thế nào cho hình ảnh trong dấu ngoặc. Sau đó, đặt đường dẫn đến hình ảnh trong dấu ngoặc đơn [()“]. Đây là một ví dụ:![The Geek](HTG.png).

Chúng tôi sẽ trình bày thêm các ví dụ về tất cả những điều này trong phần tiếp theo.

Chuyển đổi tệp

Chuyển đổi tệp rất đơn giản. pandoc thường có thể tìm ra định dạng tệp bạn đang làm việc từ tên tệp của chúng. Ở đây, chúng tôi sẽ tạo tệp HTML từ tệp Markdown. Tùy chọn -o (đầu ra) cho pandoc biết tên của tệp chúng tôi muốn tạo:

pandoc -o sample.html sample.md

Tệp Markdown mẫu của chúng tôi, sample.md, chứa phần ngắn của Markdown được hiển thị trong hình ảnh bên dưới.

Một tệp có tên là sample.html được tạo. Khi chúng tôi nhấp đúp vào tệp, trình duyệt mặc định của chúng tôi sẽ mở nó.

Bây giờ, hãy tạo một Mở định dạng tài liệu tài liệu văn bản chúng ta có thể mở trong LibreOffice Writer:

pandoc -o sample.odt sample.md

Tệp ODT có cùng nội dung với tệp HTML.

Một liên lạc gọn gàng là văn bản thay thế cho hình ảnh cũng được sử dụng để tự động tạo chú thích cho hình.

Chỉ định định dạng tệp

Các tùy chọn -f (from) và -t (to) được sử dụng để cho pandoc biết bạn muốn chuyển đổi từ và sang các định dạng tệp nào. Điều này có thể hữu ích nếu bạn đang làm việc với định dạng tệp chia sẻ phần mở rộng tệp với các định dạng có liên quan khác. Ví dụ, TeX, và Mủ cao su cả hai đều sử dụng phần mở rộng “.tex”.

  Cách ghi lại màn hình nền Linux của bạn với Kooha

Chúng tôi cũng đang sử dụng tùy chọn -s (độc lập) để pandoc sẽ tạo tất cả phần mở đầu LaTeX cần thiết để một tài liệu trở thành một tài liệu LaTeX hoàn chỉnh, độc lập và được định dạng tốt. Nếu không có tùy chọn -s (độc lập), đầu ra sẽ vẫn là LaTeX được định dạng tốt có thể được ghép vào một tài liệu LaTeX khác, nó sẽ không phân tích cú pháp đúng như một tài liệu LaTeX độc lập.

Chúng tôi gõ như sau:

pandoc -f markdown -t latex -s -o sample.tex sample.md

Nếu bạn mở tệp “sample.tex” trong trình soạn thảo văn bản, bạn sẽ thấy LaTeX được tạo. Nếu bạn có trình soạn thảo LaTeX, bạn có thể mở tệp TEX để xem bản xem trước về cách diễn giải các lệnh sắp chữ LaTeX. Việc thu nhỏ cửa sổ để vừa với hình ảnh bên dưới khiến màn hình trông chật chội, nhưng trên thực tế, nó vẫn ổn.

Chúng tôi đã sử dụng một trình soạn thảo LaTeX có tên là Texmaker. Nếu bạn muốn cài đặt nó trong Ubuntu, hãy nhập như sau:

sudo apt-get install texmaker

Trong Fedora, lệnh là:

sudo dnf install texmaker

Trong Manjaro, sử dụng:

sudo pacman -Syu texmaker

Chuyển đổi tệp bằng mẫu

Có lẽ bạn đang bắt đầu hiểu tính linh hoạt mà pandoc cung cấp. Bạn có thể viết một lần và xuất bản ở hầu hết mọi định dạng. Đó là một kỳ công tuyệt vời, nhưng các tài liệu trông hơi vani.

Với các mẫu, bạn có thể chỉ định kiểu mà pandoc sử dụng khi tạo tài liệu. Ví dụ: bạn có thể yêu cầu pandoc sử dụng các kiểu được xác định trong Cascading Style Sheets (CSS) với tùy chọn –css.

Chúng tôi đã tạo một tệp CSS nhỏ có chứa văn bản bên dưới. Nó thay đổi khoảng cách trên và dưới tiêu đề cấp một kiểu. Nó cũng thay đổi màu văn bản thành màu trắng và màu nền thành màu xanh lam:

h1 {
  color: #FFFFFF;
  background-color: #3C33FF;
  margin-top: 0px;
  margin-bottom: 1px;
}

Lệnh đầy đủ bên dưới — lưu ý rằng chúng tôi cũng đã sử dụng tùy chọn độc lập (-s):

pandoc -o sample.html -s --css sample.css sample.md

pandoc sử dụng kiểu đơn từ tệp CSS tối giản của chúng tôi và áp dụng nó cho tiêu đề cấp một.

Một tùy chọn tinh chỉnh khác mà bạn có sẵn khi làm việc với các tệp HTML là bao gồm đánh dấu HTML trong tệp Markdown của bạn. Điều này sẽ được chuyển qua tệp HTML được tạo dưới dạng đánh dấu HTML tiêu chuẩn.

Tuy nhiên, kỹ thuật này nên được dành riêng cho khi bạn chỉ tạo đầu ra HTML. Nếu bạn đang làm việc với nhiều định dạng tệp, pandoc sẽ bỏ qua đánh dấu HTML cho các tệp không phải HTML và nó sẽ được chuyển cho những định dạng đó dưới dạng văn bản.

Chúng tôi cũng có thể chỉ định kiểu nào được sử dụng khi tạo tệp ODT. Mở tài liệu LibreOffice Writer trống và điều chỉnh tiêu đề và kiểu phông chữ cho phù hợp với nhu cầu của bạn. Trong ví dụ của chúng tôi, chúng tôi cũng đã thêm đầu trang và chân trang. Lưu tài liệu của bạn dưới dạng “odt-template.odt.”

Bây giờ chúng ta có thể sử dụng cái này làm mẫu với tùy chọn –reference-doc:

pandoc -o sample.odt --reference-doc=odt-template.odt sample.md

So sánh điều này với ví dụ ODT trước đó. Tài liệu này sử dụng một phông chữ khác, có các tiêu đề màu và bao gồm đầu trang và chân trang. Tuy nhiên, nó được tạo từ cùng một tệp Markdown “sample.md”.

  Cách mã hóa và giải mã tập tin bằng GPG trên Linux

Các mẫu tài liệu tham khảo có thể được sử dụng để chỉ ra các giai đoạn khác nhau của quá trình sản xuất tài liệu. Ví dụ: bạn có thể có các mẫu có hình mờ “Bản nháp” hoặc “Để xem xét”. Một mẫu không có hình mờ sẽ được sử dụng cho một tài liệu đã hoàn thiện.

Tạo tệp PDF

Theo mặc định, pandoc sử dụng công cụ PDF LaTeX để tạo tệp PDF. Cách dễ nhất để đảm bảo bạn có thỏa mãn các phần phụ thuộc LaTeX thích hợp là cài đặt một trình soạn thảo LaTeX, chẳng hạn như Texmaker.

Tuy nhiên, đó là một bản cài đặt khá lớn — Tex và LaTeX đều khá đắt. Nếu dung lượng ổ cứng của bạn bị hạn chế hoặc bạn biết rằng bạn sẽ không bao giờ sử dụng TeX hoặc LaTeX, bạn có thể muốn tạo tệp ODT. Sau đó, bạn chỉ cần mở nó trong LibreOffice Writer và lưu nó dưới dạng PDF.

Docs-as-Code

Có một số lợi ích khi sử dụng Markdown làm ngôn ngữ viết của bạn, bao gồm những điều sau:

Làm việc trong các tệp văn bản thuần túy rất nhanh: Chúng tải nhanh hơn các tệp trình xử lý văn bản có kích thước tương tự và cũng có xu hướng di chuyển qua tài liệu nhanh hơn. Nhiều trình soạn thảo, bao gồm gedit, Vim và Emacs, sử dụng đánh dấu cú pháp với văn bản Markdown.
Bạn sẽ có lịch trình của tất cả các phiên bản tài liệu của mình: Nếu bạn lưu trữ tài liệu của mình trong VCS, chẳng hạn như Git, bạn có thể dễ dàng thấy sự khác biệt giữa hai phiên bản bất kỳ của cùng một tệp. Tuy nhiên, điều này chỉ thực sự hoạt động khi các tệp là văn bản thuần túy, vì đó là những gì VCS mong đợi hoạt động.
VCS có thể ghi lại ai đã thực hiện bất kỳ thay đổi nào và khi nào: Điều này đặc biệt hữu ích nếu bạn thường cộng tác với những người khác trong các dự án lớn. Nó cũng cung cấp một kho lưu trữ trung tâm cho chính các tài liệu. Nhiều dịch vụ Git được lưu trữ trên đám mây, chẳng hạn như GitHub, GitLab, và Cai Xô nhỏ, có các cấp miễn phí trong các mô hình định giá của họ.
Bạn có thể tạo tài liệu của mình ở nhiều định dạng: Chỉ với một vài tập lệnh shell đơn giản, bạn có thể lấy các kiểu từ CSS và tài liệu tham chiếu. Nếu bạn lưu trữ tài liệu của mình trong kho lưu trữ VCS tích hợp với Tích hợp liên tục và triển khai liên tục (CI / CD), chúng có thể được tạo tự động bất cứ khi nào phần mềm được xây dựng.

Lời kết

Có nhiều tùy chọn và tính năng khác trong pandoc hơn những gì chúng tôi đã đề cập ở đây. Quá trình chuyển đổi cho hầu hết các loại tệp có thể được tinh chỉnh và tinh chỉnh. Để tìm hiểu thêm, hãy xem các ví dụ xuất sắc trên trang chính thức (và cực kỳ chi tiết) trang web pandoc.

x