クリック可能なリンクを使用してプレーンテキストをHTMLに変換する方法

クリック可能なリンクを使用してプレーンテキストをHTMLに変換する方法

複数のURLを含むプレーンテキストファイルをクリック可能なリンクを持つhtmlに変換するには?コマンドラインで使用することをお勧めします。

時々私は複数のURLを含むプレーンテキストファイルを受け取ります。通常、1行に1つのURLがあります。たぶんその間に空白行があるかもしれません。時にはテキストがあります。時にはテキストとURLが1行に配置されることもあります。

$ cat foo.txt 
some links
https://stackoverflow.com/
https://superuser.com/
https://askubuntu.com/

best? https://unix.stackexchange.com/

ファイルは人が作成したものなので、正しい形式のファイルを出力するようにソースを構成することはできません。

URLが数個しかない場合は、手動でコピーできます。または、catgnome端末で(これを行うとURLをクリックできるようになります)、リンクをクリックしてください。私もそうすることができますcat foo.txt | xargs firefox

ただし、テキストと混在するか、あまりにも多くのリンクがある場合、これはすべて可能ではありません。

正規表現を使用してURL解析を開始したくありません。sed はテキスト URL を HTML URL に置き換えます。

ベストアンサー1

読書救いに来てください

pandoc -f markdown+autolink_bare_uris+hard_line_breaks foo.txt > foo.html

autolink_bare_urisマークダウン形式でなくてもリンクをクリック可能にする

hard_line_breaks各改行文字を改行文字として扱う

例:

$ cat foo.txt 
some links
https://stackoverflow.com/
https://superuser.com/
https://askubuntu.com/

best? https://unix.stackexchange.com/

$ pandoc -f markdown+autolink_bare_uris+hard_line_breaks foo.txt
<p>some links<br />
<a href="https://stackoverflow.com/" class="uri">https://stackoverflow.com/</a><br />
<a href="https://superuser.com/" class="uri">https://superuser.com/</a><br />
<a href="https://askubuntu.com/" class="uri">https://askubuntu.com/</a></p>
<p>best? <a href="https://unix.stackexchange.com/" class="uri">https://unix.stackexchange.com/</a></p>

pandocの代替案:md4c

pandocほど「重い」というわけではありません。これはqt5-base(archlinuxから)の依存関係なので、システムにすでにインストールされている可能性があります。

$ md2html --fpermissive-url-autolinks foo.txt 
<p>some links
<a href="https://stackoverflow.com/">https://stackoverflow.com/</a>
<a href="https://superuser.com/">https://superuser.com/</a>
<a href="https://askubuntu.com/">https://askubuntu.com/</a></p>
<p>best? <a href="https://unix.stackexchange.com/">https://unix.stackexchange.com/</a></p>

すべての改行文字を改行文字として処理するオプションはないようです。つまり、URL の間に空白行がない場合は、単一の段落で囲みます。

おすすめ記事