Mac Kestirmeleri’nde yerel bir Markdown dosyasının içeriğini okumak için kullanmadan önce dosya girdisini metne dönüştürün. Sonucu geçici bir örnekle kontrol edin; dönüştürme başarısız olursa dosyayı cat ile okuyup içeriğini kestirmeye aktarın.

Bu anlatım, Finder’da tek bir yerel Markdown dosyasını seçip başlık işaretleri ve liste noktalama işaretleri de dahil olmak üzere kaynak metnini olduğu gibi görüntülemeye yöneliktir. Buradaki önemli ayrım üç şey arasındadır: seçilen dosya, dosyanın yolu ve içinde saklanan metin.

Kestirmeye neden metin yerine dosya geliyor?

Finder dosya girdisi sağlar. Apple, Files ve Text türlerini Kestirmeler’de ayrı girdi türleri olarak tanımlar: dosya herhangi bir türde belge olabilirken metin, biçimlendirme uygulanmamış düz metindir. Bu nedenle bir Markdown dosyasını kabul etmek, sonraki eylemin içeriği metin olarak alacağını tek başına garanti etmez. Mac’te Kestirmeler’de girdi türlerini anlama.

Eylemler gerektirdiğinde Kestirmeler, türler arasında dönüşüm yapmak için İçerik Grafiği’ni kullanır. Apple ayrıca açık bir denetim de belgeler: değişken simgesine tıklayıp Type değerini değiştirin. Bu dönüşüm, dosyanın adı gibi bir özelliği seçmekten farklıdır. Ad veya dosya yolu, dosyanın yalnızca bir tanımıdır. İçerik Grafiği altyapısı, Mac’te Kestirmeler’de değişkenleri ayarlama.

Apple’ın atıfta bulunulan kılavuzu dönüşüm mekanizmasını açıklar, ancak .md uzantısı taşıyan her dosyanın kaynak metnine dönüştürüleceğini garanti etmez. Dönüşümü, bilinen içeriklerle doğrulanması gereken bir işlem olarak değerlendirin. Aşağıdaki komut tabanlı yöntem, yerel dönüşüm beklenen metni üretmediğinde dosyayı okumak için açık bir yol sağlar.

İçeriği bilinen geçici bir Markdown dosyası oluşturun

Dosya adını başarılı bir okumayla karıştırmamak için bu yapay test verisini kullanın. Kurulumun tamamını Terminal’e yapıştırın. Yeni bir geçici dizin oluşturur, içine bir örnek dosya yazar ve bu dizini Finder’da açar.

demo_dir=$(/usr/bin/mktemp -d /tmp/markdown-shortcuts.XXXXXX) &&
printf '%s\n' '# Sample board' '' '- Blue square' '- Green circle' > "$demo_dir/sample.md" &&
/usr/bin/open "$demo_dir"

Beklenen dosya içeriği şöyledir:

# Sample board

- Blue square
- Green circle

-d seçeneği, mktemp komutuna bir dizin oluşturmasını söyler; sondaki X karakterleri ise benzersiz bir ad seçmesini sağlar. Böylece her başarılı kurulum yeni bir dizin elde eder. Oluşturma başarısız olursa && zinciri sonraki komutların çalışmasını engeller. Apple ilgili mktemp kılavuzunu yayımlar.

printf komutu boş satır da dahil olmak üzere yapay örnek satırları yazar. Çıktı yönlendirmesi yeni dizinin içinde sample.md dosyasını oluşturur. Normal > yönlendirmesi mevcut bir dosyanın üzerine yazabilir; bu nedenle hedefini mevcut bir belgeyle değiştirmek yerine bu kurulumu olduğu gibi kullanın. Bu örnekte ad çakışmasına karşı korumayı yeni dizin sağlar. Apple’ın printf kılavuzu, Kabuk Girdisi ve Çıktısı.

Açıkça metin isteyen bir Finder kestirmesi oluşturun

Read Markdown Text adlı bir kestirme oluşturun. Apple, araç çubuğundaki ekle düğmesini kullanarak kestirme oluşturmayı, adlandırmayı ve eylem arşivinden eylem eklemeyi belgeler. Mac’te özel kestirme oluşturma.

Finder giriş noktasını ayarlayın:

  1. Kestirmenin Details panelini açın.
  2. Use as Quick Action seçeneğini etkinleştirip Finder’ı seçin.
  3. Düzenleyicinin üstündeki girdi bloğunda Files ve Text türlerine izin verin. Dosyalar Finder iş akışını, metin ise aşağıdaki Terminal yedek yöntemini destekler.
  4. Eksik girdi için Stop and Respond seçeneğini belirleyip Bir örnek Markdown dosyası seçin. yazın.

Apple, Finder seçeneğini belgeler ve bunu etkinleştirmek için dosya veya klasör girdisinin gerekebileceğini belirtir. Girdi ayarları, hiçbir şey alınmadığında yanıt vererek durmayı da destekler. Mac’te çalışırken kestirme çalıştırma, Bir kestirmenin girdisini sınırlama.

Şimdi içerik işleme eylemlerini ekleyin:

  1. Bir Text eylemi ekleyin.
  2. Metin alanına yalnızca Shortcut Input değişkenini yerleştirin.
  3. Bu değişken simgesine tıklayıp Type menüsünü açın ve Text seçeneğini belirleyin. Dosya adı özelliğini seçmeyin.
  4. Text eyleminden sonra, bu eylemin çıktısını kullanan bir Quick Look eylemi ekleyin.

Açık değişken dönüşümü, girdi kullanıldığı noktada metin ister. Sonraki Text eyleminin çıktısı, sonraki metin işleme adımlarında kullanılacak değerdir. Apple, değişken türlerinin değişken düzenleyicisi üzerinden değiştirilmesini belgeler. Mac’te Kestirmeler’de değişkenleri ayarlama.

Yüklü sürümünüzde doğrulama yapmak için bir eylemin simgesine Control tuşuyla tıklayıp Show Info seçeneğini belirleyin. Apple bunu, bir eylemin kabul ettiği girdileri ve ürettiği çıktıları inceleme yöntemi olarak belgeler. Bu, özellikle birden fazla dosya ve metin değişkeni içeren mevcut bir kestirmeyi uyarlarken yararlıdır. Mac’te Kestirmeler’de eylem listesinde gezinme.

Finder’da yalnızca sample.md dosyasını seçin, Control tuşuyla tıklayın ve Quick Actions ardından Read Markdown Text seçeneğini belirleyin. Apple bu çalıştırma yöntemini belgeler. Kestirme görünmüyorsa önce Finder ayarını ve kabul edilen girdi türlerini kontrol edin. Mac’te çalışırken kestirme çalıştırma.

Başarılı bir sonuçta # Sample board ve her iki liste öğesi bulunur. Yalnızca sample.md veya dizin yolunu görmek bu kontrolden geçmez. Apple, kestirme üzerinden akan içeriği incelemek için eylemlerin arasına Quick Look eklenmesini önerir. Mac’te Kestirmeler’de eylemlerinizi test etme.

Dönüştürme başarısız olursa Kestirmeler’i çalıştırmadan önce içeriği okuyun

Okuma işlemini açıkça belirtmek için Terminal’i kullanın. Apple’ın Terminal kılavuzu, cat komutunu metin dosyalarının içeriğini görüntüleme aracı olarak tanımlar. Kestirmeler’in komut satırı kılavuzu ise -i ile sağlanan dosya girdisiyle bir boru üzerinden sağlanan metni birbirinden ayırır. Mac’te Terminal’de metin dosyalarını görüntüleme, Komut satırından kestirmeleri çalıştırma.

Aşağıdaki komut bağımsız bir program değil, kurulum örneğinin devamıdır. Kurulum başarıyla tamamlandıktan sonra, kestirme tam olarak Read Markdown Text adıyla kaydedilmişken aynı Terminal sekmesinde çalıştırın:

(
    set -o pipefail

    if [ -f "$demo_dir/sample.md" ] && [ -r "$demo_dir/sample.md" ]; then
        /bin/cat "$demo_dir/sample.md" |
            /usr/bin/shortcuts run "Read Markdown Text"
    else
        printf '%s\n' 'The example file is missing or unreadable.' >&2
        exit 1
    fi
)

Burada cat dosyayı okur ve içeriğini standart çıktıya yazar. Boru, bu içeriği kestirmeye iletir. Dosya yolunu tırnak içine almak, tek bir bağımsız değişken olarak kalmasını sağlar. -f ve -r denetimleri, mevcut, normal bir dosyanın okunabilir olmasını şart koşar. Komut Satırına Giriş, Apple’ın test kılavuzu.

Parantezler, kabuk seçeneğindeki değişikliği bu komut grubuyla sınırlar. pipefail, başarısız bir boru aşamasının grup çıkış durumunda görünmesini sağlar. Ön denetimler, daha sonraki bir okuma sırasında dosyanın hâlâ kullanılabilir olacağını garanti etmez; cat bir okuma hatasıyla karşılaşırsa, kısmi önizlemeyi tamamlanmış kabul etmek yerine hatayı inceleyin.

Bu yedek yöntem, kestirmenin aldığı içeriği dosyadan metne dönüştürür. Markdown dosyasının adını değiştirmez veya dönüştürülmüş bir belge oluşturmaz. Mevcut Text ve Quick Look eylemleri, alınan bu metni inceleyebilir.

Bu üç komut biçiminin anlamları farklıdır:

Komut biçimi Kestirmenin aldığı girdi
shortcuts run "Read Markdown Text" -i "$demo_dir/sample.md" Dosya girdisi; kestirmenin içinde yine dönüştürme gerekir.
printf '%s\n' "$demo_dir/sample.md" | shortcuts run "Read Markdown Text" Metin olarak dosya yolu.
cat "$demo_dir/sample.md" | shortcuts run "Read Markdown Text" Dosyanın standart girdi üzerinden aktarılan içeriği.

Tablo, -i ile dosya yolu aktarma ve boru üzerinden metin aktarma arasındaki Apple tarafından belgelenmiş ayrımı gösterir. Borudan önceki işlem, bu metnin dosya yolu mu yoksa belge içeriği mi olduğunu belirler. Komut satırından kestirmeleri çalıştırma.

Daha fazla eylem eklemeden önce sonucu teşhis edin

Neyi düzeltmeniz gerektiğine karar vermek için bilinen test verisini kullanın:

  • Yalnızca dosya adı görünüyor: Değişkenin metin istemek yerine ad özelliğini alıp almadığını kontrol edin.
  • Yalnızca dosya yolu görünüyor: Komutun dosyayı okumak yerine yolu yazdırıp yazdırmadığını kontrol edin.
  • Yerel dönüştürme başarısız oluyor ama Terminal yöntemi çalışıyor: Bu iş akışı için açık okuma yöntemini kullanın; yalnızca girdi etiketini değiştirmek dönüşüm sorununu çözmemiştir.
  • Hiç girdi alınmıyor: Seçili Finder dosyasından veya belgelenmiş Terminal komutundan çalıştırın. Kestirmeyi Dock’tan başlatmak, seçili dosyayı otomatik olarak sağlamaz.
  • Kaynak boş: Test verisiyle karşılaştırın. Geçerli boş bir dosya ile eksik bir dosya farklı durumlardır.

Apple, değişken özelliklerini içerik türü dönüşümünden ayrı olarak belgeler ve Dock’tan başlatılan kestirmelerin başlangıç girdisi almayabileceğini belirtir. Bu ayrımlar, sonraki eylemleri değiştirmeden önce sorunun yerini bulmaya yardımcı olur. Mac’te Kestirmeler’de değişkenleri ayarlama, Bir kestirmenin girdisini sınırlama.

Test sırasında iş akışını küçük, yerel tek bir metin dosyasıyla sınırlı tutun. Birden fazla dosya seçildiğinde her dosyanın ayrı ayrı mı işleneceği yoksa içeriklerinin mi birleştirileceği ayrıca kararlaştırılmalıdır. Bu örnek okunabilir kaynak metnini sağlar; bayt bayt dosya kopyalama yöntemi değildir.

Önizleme beklenen başlık ve liste satırlarını içerdiğinde sonraki metin işleme eylemlerini Text eyleminin çıktısına bağlayın. Bu yolun tamamı çalışana kadar yapay test verisini tutun, ardından geçici dizinini Finder’da silin. Temel kontrol noktası basittir: sonraki eylem, doğruladığınız belge içeriğini almalıdır.

Kaynaklar