최근에 문서와 함께 사용하기 위해 Markdown을 배우기 시작했으며 Markdown 페이지 중 일부를 인쇄해야합니다. Github-flavored Markdown을 PDF로 변환 할 수있는 명령 줄, 터미널 등 유틸리티를 사용하고 싶습니다. 적절한 구문 강조가 필요하며 끔찍해 보이지 않아야합니다. 도움을 주셔서 감사합니다.
최근에 문서와 함께 사용하기 위해 Markdown을 배우기 시작했으며 Markdown 페이지 중 일부를 인쇄해야합니다. Github-flavored Markdown을 PDF로 변환 할 수있는 명령 줄, 터미널 등 유틸리티를 사용하고 싶습니다. 적절한 구문 강조가 필요하며 끔찍해 보이지 않아야합니다. 도움을 주셔서 감사합니다.
답변:
Chrome에서 그립 을 사용하여 마크 다운을 표시 한 다음 인쇄 대화 상자에서 Chrome의 "PDF로 저장"옵션을 사용했습니다.
pip install grip
grip your_markdown.md
그립은 localhost : 5000에서 마크 다운을 렌더링합니다. 브라우저를 편집하고 새로 고치십시오. 준비되면 인쇄하십시오.
이것은 pandoc보다 더 신뢰할만한 표현을했으며 라텍스를 설치하는 것보다 가볍습니다 (pdf 생성을 위해 pandoc에 필요).
이 답변의 인쇄는 명령 줄이 아니지만 여전히 더 쉽고 안정적입니다 (상대적으로 연결된 이미지 및 코드 강조 표시를 포함한 긴 문서의 경우 Github와 100 %로 보임).
grip your_markdown.md --export your_markdown.html
여기 유용한 옵션입니다. 파일을 html 파일로 내 보낸 다음 wkhtmltopdf와 같은 것을 사용하여 명령 행에서 인쇄 할 수 있습니다.
Node.js 기반 markdown-pdf를 사용할 수도 있습니다.
npm install -g markdown-pdf
markdown-pdf /path/to/markdown
pandoc을 살펴 보십시오 . 구문 강조 기능이 있습니다. 마크 다운 자체의 풍미가 있으므로 문서를 약간 변경해야 할 수도 있으며 GitHub 풍미와 얼마나 밀접하게 일치하는지 모르겠습니다.
pandoc -h
은 GitHub Flavored Markdown에 대한 지원을 반환했기 때문에이 질문을 해결 된 것으로 표시합니다.
pandoc
Fedora Linux 에 설치 를 시도 하고 의존성 악몽에 부딪 쳤습니다. 주로 LaTex와 관련이 있습니다. 내 조언은 pandoc을 건너 뛰고 다른 옵션을 먼저 시도하는 것입니다
pandoc
다음과 같이 글꼴 옵션을 추가하십시오 .--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
sudo apt install pandoc texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf
(우분투에서, 아마도 모든 것이 필요한 것은 아님)pandoc --variable urlcolor=cyan myfile.md -o myfile.pdf
마크 다운 파일이 github 리포지토리에서 호스팅 된 경우 gitprint 는 pdf / print를 만드는 흥미로운 옵션입니다.
당신이해야 할 모든 대체하는 것입니다 github.com
하여 gitprint.com
URL에. 다음은 gitprint 홈페이지 의 예 입니다.
불행히도 마크 다운 요지에서는 작동하지 않으며 리포지토리의 마크 다운 파일에서만 작동합니다.
내 의견에서 언급했듯이 Github은 Linguist 를 사용하여 구문 강조를 제공합니다. Github에서이를 사용하여 다음과 같이 구문 강조를 지정할 수 있습니다.
```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```
불행히도, 구문 강조 표시를 사용하여 Markdown을 PDF 파일로 직접 변환하는 좋은 방법은 없습니다.
Vim :
vim이있는 경우 터미널에서 다음을 실행하여 구문 강조를 쉽게 수행 할 수 있습니다.
vim -c hardcopy -c quit /path/to/file.ps
또는 vim 내부 :
:hardcopy >/path/to/file.ps
예를 들어 ps2pdf를 사용하여 pdf로 변환 할 수있는 PostScript 파일이 생성됩니다.
ps2pdf /path/to/file.ps
소스 하이라이트 :
HTML 또는 LaTeX의 경로를 대신 사용하려면 대신 Source-highlight 를 사용해보십시오 . Source-highlight가 지원하는 모든 언어 목록은 여기 에서 찾을 수 있습니다 .
몇 가지 소스 강조 명령의 예는 다음과 같습니다.
source-highlight -s java -f html -i Hello.java -o Hello1.html
source-highlight -s java -f html --input Hello.java --output Hello2.html --doc
source-highlight -s java -f html -i Hello.java -o Hello3.html --title "Happy Java with java2html :-)" --tab 3
사용 이 입력 파일을
그리고 각각 자체 HTML 파일을 출력합니다.
Hello1.html
Hello2.html
Hello3.html
Source-highlight 사용법의 추가 예는 여기 에서 찾을 수 있습니다.
윈도우 :
Vim , ps2pdf ( Ghostscript 제공 ) 및 Source-highlight 는 모두 Cygwin을 통해 제공됩니다 .
최근에 마크 다운 문서를 PDF로 변환하는 서비스를 만들었습니다. Github 풍미 마크 다운 및 구문 강조를 지원합니다. 서비스는 http://markdown2pdf.com에 있습니다.
내 솔루션 : 마크 다운 pandoc
을 html 로 변환하고 ( pandoc 에 CSS를 사용 하여 테이블 테두리를 표시 하는 것을 잊지 마십시오 ) 으로 열고 libreoffice
옵션을 선택하십시오 export as pdf
.
NB : 여기에 언급되지 않은 인터넷 솔루션 중 어느 것도 나를 위해 일하지 않았습니다 .1) 브라우저 기반 솔루션 (예 : 그립) 은 제거 할 수없는 페이지 번호와 같은 과도한 정보를 추가하고 있습니다 .2) docdoc는 PDF로 변환됩니다. 나에게 그것은 빈 테이블을 생성한다. (아마 유니 코드로 인해 xetex를 사용하도록 구성했다.) 3) 사이트 기반 솔루션 (예 : gitprint.com) 도 github와 같은 여백과 같은 중복 항목을 추가하고있다. awk로 생성 한 간단한 테이블이 필요합니다!
pandoc
같은 옵션을 당신을 위해 일한다--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
몇 가지 크롬 플러그인과 온라인 변환기를 사용해 보았습니다.
MDtr2PDF 가 가장 좋습니다. Github 풍미 마크 다운 및 유니 코드를 지원합니다.
나는 나의 개인적인 필요를 위해이 스 니펫 을 수정했다 :
# sudo apt install grip wkhtmltopdf
MD=${1:-README.md}
PDF=${2:-"$MD".pdf}
PORT=8971
DELAY=10
printf "Converting $MD to $PDF on port $PORT\n"
printf "Waiting $DELAY seconds for server to start...\n"
grip "$MD" localhost:$PORT &
sleep $DELAY
wkhtmltopdf http://localhost:$PORT "$PDF"
kill $(ps -eo pid,command | grep grip | grep -v grep | awk '{print $1}')
다른 이름으로 저장 /usr/local/bin/md2pdf
하고 sudo chmod +x /usr/local/bin/md2pdf
나중에.
용법:
md2pdf
README.md를 README.md.pdf로 변환
md2pdf foo.md
foo.md를 foo.md.pdf로 변환
md2pdf foo.md bar.pdf
foo.md를 bar.pdf로 변환