Linux Komut Satırında Dosyaları Dönüştürmek için pandoc Nasıl Kullanılır
Yayınlanan: 2022-01-29 pandoc
Linux'ta 40'tan fazla dosya formatı arasında dönüştürmek için kullanabilirsiniz. Markdown'da yazarak, git
depolayarak ve desteklenen biçimlerinden herhangi birinde yayınlayarak basit bir kod olarak belgeler sistemi oluşturmak için de kullanabilirsiniz.
Belge Dönüştürme ve Kod Olarak Belgeler
pandoc's
birçok desteklenen dosya formatından herhangi birinde bir belgeniz varsa, onu diğerlerinden herhangi birine dönüştürmek çocuk oyuncağıdır. Bu sahip olmak için kullanışlı bir araçtır!
Ancak pandoc
gerçek gücü, onu basit bir kod olarak dokümanlar sisteminin temeli olarak kullandığınızda ortaya çıkar. Kod olarak dokümanın amacı, yazılım geliştirmenin bazı tekniklerini ve ilkelerini benimsemek ve bunları, özellikle yazılım geliştirme projeleri için belge yazmaya uygulamaktır. Yine de, her türlü belgenin geliştirilmesine uygulayabilirsiniz.
Yazılım geliştiriciler, programlarını yazmak için favori düzenleyicilerini veya entegre geliştirme ortamını (IDE) kullanır. Yazdıkları kod metin dosyalarına kaydedilir. Bunlar programın kaynak kodunu içerir.
Kaynak kodunda yapılan değişiklikleri geliştirilip iyileştirildikçe yakalamak için bir sürüm kontrol sistemi veya VCS (Git en popüler olanıdır) kullanırlar. Bu, programcının kaynak kod dosyalarının tüm sürümlerinin eksiksiz bir geçmişine sahip olduğu anlamına gelir. Bir dosyanın önceki herhangi bir sürümüne hızlı bir şekilde erişebilir. Git, dosyaları bir havuzda saklar. Her geliştiricinin bilgisayarında yerel bir havuz ve genellikle bulutta barındırılan merkezi, paylaşılan, uzak bir havuz vardır.
Programın çalışan bir sürümünü oluşturmaya hazır olduklarında, kaynak kodunu okumak ve bir ikili yürütülebilir dosya oluşturmak için bir derleyici kullanırlar.
Belgelerinizi basit, metin tabanlı bir biçimlendirme dilinde yazarak, yazınızı sürüm kontrolü için bir VCS kullanabilirsiniz. Bir belgeyi dağıtmaya veya yayınlamaya hazır olduğunuzda, web tabanlı (HTML), kelime işlemli veya dizgi (LibreOffice, Microsoft Word, TeX) dahil olmak üzere belgelerinizin istediğiniz kadar farklı sürümünü oluşturmak için pandoc
kullanabilirsiniz. , taşınabilir belge formatı (PDF), e-kitap (ePub) vb.
Tüm bunları, sürüm kontrollü, hafif metin dosyalarından oluşan bir setten yapabilirsiniz.
pandoc yükleme
pandoc
Ubuntu'ya kurmak için şu komutu kullanın:
sudo apt-get kurulum pandoc
Fedora'da ihtiyacınız olan komut şudur:
sudo dnf pandoc'u kurun
Manjaro'da şunları yazmanız gerekir:
sudo pacman -Syu pandoc
--version
seçeneğini kullanarak hangi sürümü yüklediğinizi kontrol edebilirsiniz:
pandoc --versiyon
Dosyasız pandoc kullanma
Herhangi bir komut satırı seçeneği olmadan pandoc
kullanırsanız, yazılan girişi de kabul eder. Yazmayı bitirdiğinizi belirtmek için Ctrl+D tuşlarına basmanız yeterlidir. pandoc
, Markdown biçiminde yazmanızı bekler ve HTML çıktısı oluşturur.
Bir örneğe bakalım:
pandok
Birkaç satır Markdown yazdık ve Ctrl+D'ye basmak üzereyiz.
Yaptığımız anda, pandoc
eşdeğer HTML çıktısını oluşturur.
Ancak pandoc
ile faydalı bir şey yapmak için gerçekten dosyaları kullanmamız gerekiyor.
Markdown Temelleri
Markdown, hafif bir biçimlendirme dilidir ve belirli karakterlere özel anlam verilir. Bir Markdown dosyası oluşturmak için düz bir metin düzenleyici kullanabilirsiniz.
Metinden dikkati dağıtacak görsel olarak hantal etiketler olmadığından, işaretleme kolayca okunabilir. Markdown belgelerinde biçimlendirme, temsil ettiği biçimlendirmeye benzer. Aşağıda bazı temel bilgiler verilmiştir:
- Metni italik olarak vurgulamak için yıldız işareti içine alın.
*This will be emphasized*
- Metni kalınlaştırmak için iki yıldız işareti kullanın.
**This will be in bold**
- Başlıklar, sayı işareti/kare işareti (
#
) ile gösterilir. Metin, karmadan bir boşlukla ayrılır. Üst düzey başlık için bir, ikinci düzey için iki karma vb. kullanın. - Madde işaretli bir liste oluşturmak için listenin her satırına bir yıldız işaretiyle başlayın ve metnin önüne bir boşluk bırakın.
- Numaralandırılmış bir liste oluşturmak için, her satıra bir rakam ve ardından bir nokta ile başlayın ve ardından metnin önüne bir boşluk ekleyin.
- Bir köprü oluşturmak için sitenin adını köşeli parantez (
[]
) içine ve URL'yi parantez [()
] içine alın:[Link to How to Geek](https://www.howtogeek.com/)
. - Bir görüntü eklemek için parantezlerden (
![]
) hemen önce bir ünlem işareti yazın. Görüntü için herhangi bir alternatif metni parantez içine yazın. Ardından, görüntünün yolunu parantez [()
“] içine alın. İşte bir örnek:![The Geek](HTG.png)
.
Bir sonraki bölümde tüm bunların daha fazla örneğini ele alacağız.
İLGİLİ: Markdown Nedir ve Nasıl Kullanırsınız?
Dosyaları Dönüştürme
Dosya dönüştürme işlemleri basittir. pandoc
, genellikle dosya adlarından hangi dosya biçimleriyle çalıştığınızı bulabilir. Burada, bir Markdown dosyasından bir HTML dosyası oluşturacağız. -o
(çıkış) seçeneği, pandoc
oluşturmak istediğimiz dosyanın adını söyler:
pandoc -o sample.html sample.md
Örnek Markdown dosyamız sample.md, aşağıdaki resimde gösterilen Markdown'ın kısa bölümünü içerir.
sample.html adlı bir dosya oluşturulur. Dosyaya çift tıkladığımızda varsayılan tarayıcımız dosyayı açacaktır.
Şimdi LibreOffice Writer'da açabileceğimiz bir Open Document Format metin belgesi oluşturalım:
pandoc -o sample.odt sample.md
ODT dosyası, HTML dosyasıyla aynı içeriğe sahiptir.
Düzgün bir dokunuş, resim için alternatif metindir, ayrıca şekil için otomatik olarak bir resim yazısı oluşturmak için kullanılır.
Dosya Biçimlerini Belirtme
-f
(from) ve -t
(to) seçenekleri, pandoc
hangi dosya biçimlerini dönüştürmek istediğinizi söylemek için kullanılır. Dosya uzantısını diğer ilgili biçimlerle paylaşan bir dosya biçimiyle çalışıyorsanız bu yararlı olabilir. Örneğin, TeX ve LaTeX, ".tex" uzantısını kullanır.
Ayrıca -s
(bağımsız) seçeneğini kullanıyoruz, böylece pandoc
bir belgenin eksiksiz, bağımsız ve iyi biçimlendirilmiş bir LaTeX belgesi olması için gereken tüm LaTeX önsözünü oluşturacaktır. -s
(bağımsız) seçeneği olmadan, çıktı yine de başka bir LaTeX belgesine yerleştirilebilen iyi biçimlendirilmiş LaTeX olurdu, bağımsız bir LaTeX belgesi olarak düzgün şekilde ayrıştırılmazdı.
Aşağıdakileri yazıyoruz:
pandoc -f markdown -t lateks -s -o sample.tex sample.md
“sample.tex” dosyasını bir metin düzenleyicide açarsanız, oluşturulan LaTeX'i görürsünüz. Bir LaTeX düzenleyiciniz varsa, LaTeX dizgi komutlarının nasıl yorumlandığının bir önizlemesini görmek için TEX dosyasını açabilirsiniz. Aşağıdaki resme sığdırmak için pencereyi küçültmek, ekranın sıkışık görünmesine neden oldu, ancak gerçekte sorun yoktu.
Texmaker adında bir LaTeX editörü kullandık. Ubuntu'ya kurmak istiyorsanız, aşağıdakini yazın:
sudo apt-get install texmaker
Fedora'da komut şudur:
sudo dnf texmaker'ı kurun
Manjaro'da şunu kullanın:
sudo pacman -Syu texmaker
Dosyaları Şablonlarla Dönüştürme
Muhtemelen pandoc
sağladığı esnekliği anlamaya başlıyorsunuz. Bir kez yazabilir ve hemen hemen her biçimde yayınlayabilirsiniz. Bu harika bir başarı, ancak belgeler biraz vanilya gibi görünüyor.
Şablonlarla, pandoc
belgeleri oluştururken hangi stilleri kullanacağını belirleyebilirsiniz. Örneğin, --css
pandoc
Basamaklı Stil Sayfaları (CSS) dosyasında tanımlanan stilleri kullanmasını söyleyebilirsiniz.
Aşağıdaki metni içeren küçük bir CSS dosyası oluşturduk. Düzey başlığının üstündeki ve altındaki aralığı bir stil olarak değiştirir. Ayrıca metin rengini beyaza ve arka plan rengini mavi gölgeye değiştirir:
h1 { renk: #FFFFFF; arka plan rengi: #3C33FF; üst kenar boşluğu: 0px; kenar boşluğu-alt: 1 piksel; }
Tam komut aşağıdadır; bağımsız seçeneği de ( -s
) kullandığımızı unutmayın:
pandoc -o sample.html -s --css sample.css sample.md
pandoc
, minimalist CSS dosyamızdaki tek stili kullanır ve bunu birinci düzey başlığa uygular.
HTML dosyalarıyla çalışırken sahip olduğunuz diğer bir ince ayar seçeneği, Markdown dosyanıza HTML işaretlemesi eklemektir. Bu, oluşturulan HTML dosyasına standart HTML işaretlemesi olarak iletilecektir.
Yine de bu teknik, yalnızca HTML çıktısı oluşturduğunuzda kullanılmalıdır. Birden çok dosya biçimiyle çalışıyorsanız, pandoc
, HTML olmayan dosyalar için HTML işaretlemesini yok sayar ve bunlara metin olarak iletilir.
ODT dosyaları oluşturulurken hangi stillerin kullanılacağını da belirleyebiliriz. Boş bir LibreOffice Writer belgesi açın ve başlık ve yazı tipi stillerini ihtiyaçlarınıza göre ayarlayın. Örneğimizde ayrıca bir üst bilgi ve alt bilgi ekledik. Belgenizi “odt-template.odt” olarak kaydedin.
Şimdi bunu --reference-doc
seçeneğiyle şablon olarak kullanabiliriz:
pandoc -o sample.odt --reference-doc=odt-template.odt sample.md
Bunu daha önceki ODT örneğiyle karşılaştırın. Bu belge farklı bir yazı tipi kullanır, renkli başlıklara sahiptir ve üstbilgi ve altbilgi içerir. Ancak, tam olarak aynı "sample.md" Markdown dosyasından oluşturuldu.
Referans belge şablonları, bir belgenin üretiminin farklı aşamalarını belirtmek için kullanılabilir. Örneğin, "Taslak" veya "İnceleme İçin" filigranları olan şablonlarınız olabilir. Nihai bir belge için filigran içermeyen bir şablon kullanılacaktır.
PDF oluşturma
Varsayılan olarak pandoc
, PDF dosyaları oluşturmak için LaTeX PDF motorunu kullanır. Uygun LaTeX bağımlılıklarına sahip olduğunuzdan emin olmanın en kolay yolu, Texmaker gibi bir LaTeX düzenleyicisi kurmaktır.
Yine de bu oldukça büyük bir kurulum - Tex ve LaTeX'in ikisi de oldukça ağır. Sabit disk alanınız sınırlıysa veya asla TeX veya LaTeX kullanmayacağınızı biliyorsanız, bir ODT dosyası oluşturmayı tercih edebilirsiniz. Ardından, LibreOffice Writer'da açıp PDF olarak kaydedebilirsiniz.
Kod Olarak Belgeler
Markdown'ı yazma diliniz olarak kullanmanın aşağıdakiler de dahil olmak üzere çeşitli avantajları vardır:
- Düz metin dosyalarında çalışmak hızlıdır: Benzer boyuttaki kelime işlemci dosyalarından daha hızlı yüklenirler ve belgede daha hızlı hareket etme eğilimindedirler.
gedit
,Vim
veEmacs
dahil birçok düzenleyici, Markdown metniyle sözdizimi vurgulamayı kullanır. - Belgelerinizin tüm sürümlerinin zaman çizelgesine sahip olursunuz: Belgelerinizi Git gibi bir VCS'de saklarsanız, aynı dosyanın herhangi iki sürümü arasındaki farkları kolayca görebilirsiniz. Ancak, bu yalnızca dosyalar düz metin olduğunda gerçekten işe yarar, çünkü bir VCS'nin çalışmayı beklediği şey budur.
- Bir VCS, değişiklikleri kimin ve ne zaman yaptığını kaydedebilir: Bu, özellikle büyük projelerde başkalarıyla sık sık işbirliği yapıyorsanız yararlıdır. Ayrıca belgelerin kendileri için merkezi bir depo sağlar. GitHub, GitLab ve BitBucket gibi bulutta barındırılan birçok Git hizmetinin fiyatlandırma modellerinde ücretsiz katmanlar bulunur.
- Belgelerinizi birden çok biçimde oluşturabilirsiniz: Yalnızca birkaç basit kabuk komut dosyasıyla, stilleri CSS'den ve referans belgelerinden alabilirsiniz. Belgelerinizi Sürekli Entegrasyon ve Sürekli Dağıtım (CI/CD) platformlarıyla entegre olan bir VCS deposunda saklarsanız, yazılım oluşturulduğunda otomatik olarak oluşturulabilirler.
İLGİLİ: GitHub Nedir ve Ne İçin Kullanılır?
Son düşünceler
Pandoc'ta burada ele aldıklarımızdan çok daha fazla seçenek ve özellik var. Çoğu dosya türü için dönüştürme işlemleri ince ayar yapılabilir ve ince ayar yapılabilir. Daha fazlasını öğrenmek için resmi (ve son derece ayrıntılı) pandoc web sayfasındaki mükemmel örneklere göz atın.
Linux Komutları | ||
Dosyalar | tar · pv · kedi · tac · chmod · grep · diff · sed · ar · adam · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · birleştirme · jq · katlama · uniq · dergictl · kuyruk · stat · ls · fstab · yankı · daha az · chgrp · chown · rev · bak · diziler · tür · yeniden adlandır · zip · unzip · mount · umount · yükle · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · yama · dönüştürmek · rclone · parçalamak · srm | |
süreçler | takma ad · ekran · üst · güzel · renice · ilerleme · strace · systemd · tmux · chsh · geçmiş · at · toplu · ücretsiz · hangi · dmesg · chfn · usermod · ps · chroot · xargs · tty · pembemsi · lsof · vmstat · zaman aşımı · duvar · evet · öldür · uyku · sudo · su · zaman · groupadd · usermod · gruplar · lshw · kapatma · yeniden başlatma · durdurma · güç kapatma · passwd · lscpu · crontab · tarih · bg · fg | |
ağ | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · kazmak · parmak · nmap · ftp · curl · wget · kim · whoami · w · iptables · ssh-keygen · ufw |
İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar