Github-Flavored Markdown'ı PDF'ye Nasıl Dönüştürebilirim?


147

Son zamanlarda dokümantasyonla kullanım için Markdown'ı öğrenmeye başladım ve birkaç Markdown sayfa yazdırmam gerekiyor. Github-flavored Markdown'ı PDF'ye dönüştürmeme izin veren bir komut satırı, Terminal vb. Yardımcı program kullanmak istiyorum. Doğru sözdizimi vurgulaması gerekir ve korkunç görünmemelidir. Herhangi bir yardım için teşekkürler.


GitHub'daki sözdizimi rengi GitHub Flavored Markdown'un bir parçası değildir. En azından bildiğim kadarıyla.
Der Hochstapler

@OliverSalzburg Github, sözdizimi vurgulaması için Linguist'i kullanır .
DanteTheEgregore,

@dillmo, Önce HTML'ye dönüştür , sonra pdf'e yazdırmak için Chrome'u kullan.
Pacerier

Yanıtlar:


149

Chrome'da etiketlemeyi göstermek için kavramayı başardım ve ardından Yazdır iletişim kutusundaki Chrome'un "PDF Olarak Kaydet" seçeneğini kullanın.

pip install grip  
grip your_markdown.md

grip, localhost: 5000 'de etiketleme işlevini yerine getirecektir. Hazır olunca yazdırın.

Bu, pandoc'tan daha güvenilir bir sunum sağladı ve lateks kurulumundan daha hafif (pdfoc için pandoc tarafından talep edildi).

Baskı bu cevaptaki komut satırı değildir, ancak yine de bunu daha kolay / daha güvenilir bulmuştur (nispeten bağlantılı görüntüler ve kod vurgulama dahil uzun bir belge için% 100 Github'a benziyordu).


2
bu yeterince kolaydır.
s2t2

15
grip your_markdown.md --export your_markdown.htmlBurada yararlı bir seçenek. Wthtmltopdf gibi bir şey kullanarak komut satırından basılabilen html dosyasına aktarır.
Luke Exton

1
Ne yazık ki kavrama GitHub'a erişim gerektiriyor. Çevrimdışı çalışmıyor
nowox

6
Alternatif olarak (ücretsiz!) Atom'u ( atom.io ) indirebilir, dosyanızı Atom'da açabilir, önizlemede görüntülemek için control + shift + M tuşlarını kullanın, html olarak kaydedin, sonra html'yi Chrome tarayıcınızda açın ve pdf olarak kaydedin.
Andrew Carter

6
Bu, etrafındaki Github benzeri çerçeve ile geliyor. PDF'ye yazdırmanın, kenarlıkları / başlık çubuğunu kaldırarak (yani çerçevenin içindeki her şeyi yazdırma) bir yolu var mı?
Joost

56

Ayrıca Node.js tabanlı markdown-pdf kullanabilirsiniz.

npm install -g markdown-pdf
markdown-pdf /path/to/markdown

2
Bu oldukça harika ve gerçekten kolay. Bağlantı sorunu, kendi stil sayfanızda yorumlayabileceğiniz ya da geçersiz kılabileceğiniz html5 kazan plakasının baskı css'inden geliyor.
Robert,

Bu çok iyi bir Unicode desteğiyle birlikte olduğunu da eklemek isterim.
Niek

GitHub'ın CSS dosyasını kullanmak istiyorsanız, github-markdown-css ' ı da kurabilirsiniz .
jpmc26

@ jpmc26 nasıl kullanabilirsiniz, javascript veya npm hakkında bilgim yok?
Abhishek Bhatia

1
@AbhishekBhatia Bu, Google "npm tanıtımı" için yaptığım ilk sonuç: smalljs.org/package-managers/npm . Sadece onu yükledikten sonra node_modules içinde gömülü bir dosya.
jpmc26

39

Pandoc'a bir bak . Sözdizimi vurgulama var. Belgenizde kendi markör lezzetine sahip olduğu için belgenizde (küçük) değişiklikler yapmanız gerekebilir ve GitHub lezzetine ne kadar yakın uyduğunu bilmiyorum.


3
Teşekkürler. Koşmak pandoc -hGitHub Flavored Markdown için geri döndü, bu yüzden bu soruyu çözülmüş olarak işaretliyorum.
dillmo

2
pandocFedora Linux'a kurmaya çalıştım ve bağımlılık kabusuyla karşılaştım - özellikle LaTex'le ilgili. Benim tavsiyem pandok'u atlayıp önce diğer seçenekleri
denemektir

ASCII olmayan harfler kullananlar ve kaybolanlar için: pandocşunun gibi yazı tipi seçenekleri ekleyin :--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
gluk47

4
Birisi sadece komutları arıyorsa: sudo apt install pandoc texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf(Ubuntu'da, muhtemelen hepsi gerekli değildir), o zamanpandoc --variable urlcolor=cyan myfile.md -o myfile.pdf
Tor Klingberg

@TorKlingberg Teşekkürler, bence en iyi cevap bu!
thc

12

Markdown dosyası github depo barındırılan ise, gitprint pdf / baskı oluşturmak için ilginç bir seçenektir.

Tek yapmanız gereken tek şey değiştirmektir github.comtarafından gitprint.comadressen. Gitprint'in ana sayfasından bir örnek .

Ne yazık ki, markdown markaları üzerinde çalışmaz ve sadece depodaki markdown dosyaları ile çalışır.


4
Görüntülerle de çalışmaz. :(
Adam Arold

... ve kötü biçimlendirilmiş :(
Moebius

İlginç bir seçenek. Artıları: Dış bağlantılar çıktıdan korunur ve erişilebilir durumdadır. Eksileri: çıktı siyah ve beyaz, bağlantı bağlantıları kaldırıldı, dış bağlantılar görsel olarak gösterilmiyor, çünkü bunlar s / b.
Rodey

7

Http://www.markdowntopdf.com adresinde mevcut bir çevrimiçi çevirici var.
Bu, kutudan çıkan sözdizimini sağlar ve şu ana kadar gördüğüm en basit çözümdür. Ayrıca, GFM'ye özgü tabloları gibi diğer özellikleri de doğru bir şekilde işler.


4
Ayrı dosyalardaki görüntüleri işlemez.
Larry K

güzel çalışıyor
shadi

6

Yorumumda belirttiğim gibi, Github sözdizimi vurgulaması için Linguist kullanıyor . Github'da, bunun gibi sözdizimini vurgulamak için bunu kullanabilirsiniz:

```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
```

Ne yazık ki, Markdown'u doğrudan sözdizimi vurgulamasıyla bir PDF dosyasına dönüştürmenin iyi bir yolu yoktur.

Alternatifler:

Vim :

Vim'iniz varsa, aşağıdakileri bir terminalden çalıştırarak sözdizimi vurgulamayı kolayca yapabilirsiniz:

vim -c hardcopy -c quit /path/to/file.ps

Veya vim'in içinde:

:hardcopy >/path/to/file.ps

Bu, örneğin ps2pdf kullanarak pdf'e dönüştürülebilen bir PostScript dosyası üretecektir:

ps2pdf /path/to/file.ps

Kaynak vurgusu :

Bunun yerine HTML veya LaTeX’in rotasına gitmek isterseniz, bunun yerine Source-highlight'ı deneyebilirsiniz . Source-highlight tarafından desteklenen tüm dillerin bir listesini burada bulabilirsiniz .

Birkaç örnek Kaynak-vurgulama komutu şunları içerir:

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

Bu girdi dosyasını kullanma

Ve her biri kendi HTML dosyasını çıkaran:

Hello1.html
Hello2.html
Merhaba3.html

Kaynak vurgusu kullanımına ilişkin diğer örnekleri burada bulabilirsiniz.

Windows :

Vim , ps2pdf ( Ghostscript tarafından sağlanır ) ve Source-highlight özelliklerine Cygwin aracılığıyla erişilebilir .


4

Linux kullananlar için pandoc kullanın .

Yüklemek:

sudo apt install pandoc texlive-latex-extra

Evet, -extrayazı tipleri nedeniyle pakete ihtiyacınız var .

Dönüştürmek:

pandoc --from markdown -o output.pdf my-file.md

Gibi herhangi bir resim, link ve göz ardı şeyler içermiyordu <font color="red">olsa
derHugo

3

Geçenlerde markdown belgelerini PDF'ye dönüştürmek için bir hizmet yarattım. Github aromalı etiketlemenin yanı sıra sözdizimi vurgulamayı da destekler. Hizmetin bulunduğu yer: http://markdown2pdf.com


zip dosyası ile çalışmaz: Biri varken arşivdeki markdown dosyasını bulamadı.
Moebius,

"pdf dönüştürmede hata" var. Kullanılması markdowntopdf.com kevgathuku yerine
Shadi

1

Mine çözüm: ile fiyat indirimlerini dönüştürmek pandochtml (unutma Pandoc için css kullanmak tablo sınırlarını göstermek için) daha sonra ile açın, libreofficebir seçenek belirleyin export as pdf.

Not : burada ve İnternet çözümleri üzerinde hiçbiri benim için çalışmamış: 1) tarayıcı tabanlı çözümler (örneğin, tutma) , fazla bilgi ekliyor, sayfa numaralarını (örneğin , kaldırmayı başaramadım, 2) pandoc'u pdf'ye çevirme kırılmış, benim için boş bir masa oluşturur (belki de unicode yüzünden ve evet, xetex kullanacak şekilde yapılandırdım) , 3) site tabanlı çözümler (yani gitprint.com) ayrıca github benzeri marjlar gibi gereksiz şeyler de ekliyor. Awk ile oluşturduğum basit bir tabloya ihtiyacım var!


1
pandocsizin için seçeneklerle çalışmalı--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
gluk47

@ gluk47 havalı, işe yarıyor!
Hi-Angel,

Markdown'ı PDF'ye (veya yazdırmak için) markdownprint.com'a dönüştürmek için tavsiye edebilirim .
Johan O

@JohanO markdownprint.com aşağı gibi görünüyor
derHugo

1

Birkaç krom eklentisini ve çevrimiçi dönüştürücüyü denedim.
MDtr2PDF en iyisidir. Github-flavored-markdown ve unicode'u destekler.


1
Diğer dosyalarda depolanan görüntüleri destekliyor mu?
Larry K

Artık çalışmıyor gibi görünüyor ve TLS ile güvende değil.
David Oliver,

1

Ben rafine bu pasajı benim kişisel ihtiyaçları için:

# 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}')

Farklı /usr/local/bin/md2pdfve sudo chmod +x /usr/local/bin/md2pdfsonra kaydedin .

Kullanımı:

  • md2pdf README.md dosyasını README.md.pdf dosyasına dönüştürür

  • md2pdf foo.md foo.md dosyasını foo.md.pdf dosyasına dönüştürür

  • md2pdf foo.md bar.pdf foo.md dosyasını bar.pdf dosyasına dönüştürür

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.