클릭 가능한 링크를 사용하여 일반 텍스트를 HTML로 변환하는 방법

클릭 가능한 링크를 사용하여 일반 텍스트를 HTML로 변환하는 방법

여러 URL이 포함된 일반 텍스트 파일을 클릭 가능한 링크가 있는 html로 변환하는 방법은 무엇입니까? 명령줄에서 사용하는 것이 좋습니다.

가끔씩 나는 여러 개의 URL이 포함된 일반 텍스트 파일을 받습니다. 일반적으로 한 줄에 하나의 URL이 있습니다. 어쩌면 그 사이에 빈 줄이 있을 수도 있습니다. 때로는 텍스트가 있습니다. 때로는 텍스트와 URL이 한 줄에 배치되기도 합니다.

$ 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 사이에 빈 줄이 없으면 단일 단락으로 묶입니다.

답변2

foo.txt위의 예를 편집하면깃털 쿠션편집자, 클릭 가능한 링크로 표시됩니다.

관련 정보