2008-08-20 40 views
25

Tôi đang viết một số tài liệu trong Đánh dấu và tạo tệp riêng cho từng phần của tài liệu. Tôi muốn có thể chuyển đổi tất cả các tệp thành HTML trong một lần, nhưng tôi không thể tìm thấy bất kỳ ai khác đã thử cùng một điều. Tôi đang ở trên máy Mac, vì vậy tôi nghĩ một kịch bản bash đơn giản sẽ có khả năng xử lý nó, nhưng tôi chưa bao giờ làm bất cứ điều gì trong bash và không có may mắn. Có vẻ như việc viết một cái gì đó đơn giản nên tôi chỉ có thể chạy:Làm cách nào để chuyển đổi tài liệu Markdown thành HTML en masse?

markdown-batch ./*.markdown 

Bất kỳ ý tưởng nào?

Trả lời

17

Đây là cách bạn sẽ làm điều đó trong Bash.

for i in ./*.markdown; do perl markdown.pl --html4tags $i > $i.html; done; 

Tất nhiên, bạn cần Markdown script.

+7

Giải pháp này là tốt nhưng 'index.md' sẽ trở thành' index.md.html'. Nếu bạn muốn nó trở thành 'index.html', hãy dùng nó:' for i in ./*.md; làm perl Markdown.pl --html4tags $ i> đầu ra/$ {i%. *}. html; được thực hiện; ' – Maxime

1

tôi sử dụng điều này trong một tập tin .bat:

@echo off 
for %i in (*.txt) python markdown.py "%i" 
+6

Bạn đang off-topic: Câu hỏi này được gắn thẻ 'bash'. –

36

Sử dụng pandoc - đó là công cụ dòng lệnh cho phép bạn chuyển đổi từ định dạng này sang định dạng khác. Công cụ này hỗ trợ Markdown thành HTML và ngược lại.

Ví dụ: để tạo HTML từ Markdown, chạy:

pandoc -f markdown index.md > index.html 
+3

+1 cho pandoc ... vì anh ta viết nó trong các phần, sử dụng pandoc để nối các phần cần thiết vào một tệp html, nếu cần. – Mica

+0

'cho tôi trong /some/directory/*.md; làm pandoc -f markdown -t html -s "$ i"> "$ i" .html; thực hiện; 'Để chuyển đổi tất cả các tập tin bên trong một số thư mục. – eridani

-1

// sử dụng Bash trong mac

for i in *.md; do asciidoc $i; done; 
+0

Điều này không trả lời câu hỏi - câu hỏi hỏi về Markdown, không phải về AsciiDoc (mặc dù cả hai đều giống nhau). Ngoài ra, bạn phải báo giá '$ i', nếu không điều này sẽ không hoạt động đối với các tệp có ký tự đặc biệt trong tên. – sleske

Các vấn đề liên quan