これが私がしたいことです:
HTMLファイルフォルダをMarkdownに変換し、YAMLに変換して各HTMLファイルのXMLメタデータをコピーします。
調査した結果、次のコマンドが見つかりました。
find . -name \*.md -type f -exec pandoc -o {}.txt {} \;
- これはここで発見されました、pandocで動作して使用するコマンドですが、ファイル拡張子は「.md」ではなく「.html.md」です。
find / -name "*.md" -type f -exec sh -c 'markdown "${0}" > "${0%.md}.html"' {} \;
- これはここで見つかります。これは明らかに「.html.md」を削除して「.md」に変換しますが、pandocを使用しません。
pandoc -f html -t markdown -s input.html -o output.md
- これはここで見つかります。以下は、明らかにメタデータをコピーしてYAMLに変換するpandocコマンドです。ただし、ファイルフォルダでは開いたときにのみ機能しません。
私にとって必要なのは、変換されたファイルに「.md」を提供するpandocを使用するコマンドです。 .html.mdの代わりに拡張子を使用し、XMLメタデータをYAMLに変換します。これらすべては、これら3つのコマンドを使用して実行できます。これを1つのコマンドにまとめるだけです。
ベストアンサー1
必要なのはxargsです。私はpandocに慣れていませんが、次のように動作するはずです。
$ find . -name \*.html -type f | sed 's/\.html$//' | xargs -I {} pandoc -f html -t markdown -s -o "{}.md" "{}.html"
検索を使用して、選択したディレクトリ(およびすべてのサブディレクトリ)にあるすべての.htmlファイルを一覧表示します。これらはsedにパイプされて ".html"拡張子を削除し、xargsにパイプしてそれをpandocに1つずつ供給し(構文を正しく使用する場合)、各名前を取得します({}に置き換えられます)。 )、各htmlファイルをソースとして使用し、ソースファイルと同じディレクトリに拡張子がmdの新しいファイルとして出力されます。
最終的には、元のhtmlファイルと同じ数の一致するmdファイルが同じディレクトリに存在する必要があります。