Aby odczytać zawartość lokalnego pliku Markdown w aplikacji Skróty na Macu, przed użyciem przekonwertuj wejściowy plik na tekst. Sprawdź wynik na tymczasowym przykładzie; jeśli konwersja się nie powiedzie, odczytaj plik za pomocą cat i przekaż jego zawartość do skrótu.

Ten poradnik dotyczy wybierania jednego lokalnego pliku Markdown w Finderze i wyświetlania jego dosłownej treści źródłowej, w tym znaczników nagłówków i znaków interpunkcyjnych list. Warto rozróżnić trzy rzeczy: wybrany plik, jego ścieżkę oraz przechowywany w nim tekst.

Dlaczego skrót otrzymuje plik zamiast jego tekstu?

Finder przekazuje plik jako dane wejściowe. Apple definiuje Files i Text jako odrębne typy danych wejściowych w aplikacji Skróty: plik może być dokumentem dowolnego rodzaju, a tekst to zwykły tekst bez zastosowanego formatowania. Samo przyjmowanie pliku Markdown nie oznacza więc, że następna czynność otrzyma jego zawartość jako tekst. Informacje o typach danych wejściowych w aplikacji Skróty na Macu.

Aplikacja Skróty używa grafu zawartości, aby konwertować dane między typami, gdy czynności tego wymagają. Apple opisuje też jawne ustawienie: kliknij token zmiennej i zmień jej Type. Taka konwersja różni się od wyboru właściwości, takiej jak nazwa pliku. Nazwa lub ścieżka pliku nadal tylko go opisuje. Mechanizm grafu zawartości, Dostosowywanie zmiennych w aplikacji Skróty na Macu.

Przywołany poradnik Apple wyjaśnia mechanizm konwersji, ale nie gwarantuje, że każdy plik z rozszerzeniem .md zostanie przekonwertowany na tekst źródłowy. Sprawdź konwersję na pliku o znanej zawartości. Poniższa metoda z użyciem polecenia zapewnia jawny sposób odczytu pliku, gdy natywna konwersja nie zwraca oczekiwanego tekstu.

Utwórz tymczasowy plik Markdown o znanej zawartości

Użyj tego przykładowego pliku, aby nie pomylić nazwy pliku z udanym odczytem. Wklej całą konfigurację do aplikacji Terminal. Utworzy ona nowy katalog tymczasowy, zapisze w nim przykładowy plik i otworzy ten katalog w Finderze.

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"

Oczekiwana zawartość pliku:

# Sample board

- Blue square
- Green circle

Opcja -d nakazuje mktemp utworzyć katalog, a końcowe znaki X pozwalają mu wybrać unikatową nazwę. Każde poprawne uruchomienie konfiguracji tworzy więc nowy katalog. Jeśli tworzenie się nie powiedzie, łańcuch && uniemożliwi uruchomienie kolejnych poleceń. Apple udostępnia odpowiednią stronę podręcznika mktemp.

Polecenie printf zapisuje przykładowe wiersze, w tym pusty wiersz. Przekierowanie wyjścia tworzy plik sample.md w nowym katalogu. Zwykłe przekierowanie > może nadpisać istniejący plik, dlatego nie zmieniaj miejsca docelowego tej konfiguracji na istniejący dokument. W tym przykładzie nowy katalog chroni przed kolizją nazw. Strona podręcznika printf firmy Apple, Wejście i wyjście powłoki.

Utwórz skrót Findera, który jawnie żąda tekstu

Utwórz skrót o nazwie Read Markdown Text. Apple opisuje tworzenie skrótu za pomocą przycisku dodawania na pasku narzędzi, nadawanie mu nazwy i dodawanie czynności z biblioteki czynności. Tworzenie własnego skrótu na Macu.

Skonfiguruj punkt wejścia z Findera:

  1. Otwórz panel Details skrótu.
  2. Włącz Use as Quick Action i wybierz Finder.
  3. W bloku wejściowym u góry edytora zezwól na Files i Text. Pliki obsługują przepływ pracy z Finderem, a tekst — poniższy sposób awaryjny z użyciem Terminala.
  4. Dla brakujących danych wejściowych wybierz Stop and Respond i wpisz Wybierz jeden przykładowy plik Markdown.

Apple opisuje opcję Findera i zaznacza, że do jej włączenia mogą być konieczne dane wejściowe w postaci pliku lub folderu. Konfiguracja danych wejściowych pozwala też zatrzymać skrót i wyświetlić odpowiedź, gdy nie otrzyma żadnych danych. Uruchamianie skrótu podczas pracy na Macu, Ograniczanie danych wejściowych skrótu na Macu.

Teraz dodaj czynności przetwarzające zawartość:

  1. Dodaj czynność Text.
  2. W jej polu tekstowym umieść tylko zmienną Shortcut Input.
  3. Kliknij token tej zmiennej, otwórz menu Type i wybierz Text. Nie wybieraj właściwości nazwy pliku.
  4. Po czynności Text dodaj Quick Look, korzystając z wyniku czynności Text.

Jawna konwersja zmiennej żąda tekstu w miejscu użycia danych wejściowych. Wynik kolejnej czynności Text to wartość, której należy używać w dalszych etapach przetwarzania tekstu. Apple opisuje zmianę typów zmiennych za pomocą edytora zmiennych. Dostosowywanie zmiennych w aplikacji Skróty na Macu.

Aby sprawdzić działanie w zainstalowanej wersji aplikacji, kliknij ikonę czynności z wciśniętym klawiszem Control i wybierz Show Info. Apple wskazuje, że w ten sposób można sprawdzić akceptowane dane wejściowe i wyniki danej czynności. Jest to szczególnie przydatne podczas dostosowywania istniejącego skrótu, który zawiera kilka zmiennych plikowych i tekstowych. Przeglądanie listy czynności w aplikacji Skróty na Macu.

W Finderze zaznacz tylko sample.md, kliknij go z wciśniętym klawiszem Control i wybierz Quick Actions, a następnie Read Markdown Text. Apple opisuje ten sposób uruchamiania. Jeśli skrótu brakuje, najpierw sprawdź jego ustawienia Findera i akceptowane typy danych wejściowych. Uruchamianie skrótu podczas pracy na Macu.

Poprawny wynik zawiera # Sample board i oba elementy listy. Sam widok sample.md lub jego ścieżki katalogu nie zalicza tego sprawdzenia. Apple zaleca umieszczanie Quick Look między czynnościami, aby sprawdzić zawartość przepływającą przez skrót. Testowanie czynności w aplikacji Skróty na Macu.

Jeśli konwersja się nie powiedzie, odczytaj zawartość przed uruchomieniem Skrótów

Użyj Terminala, aby jawnie wykonać odczyt. W przewodniku Apple dotyczącym Terminala cat wskazano jako narzędzie do wyświetlania zawartości plików tekstowych. W przewodniku Apple dotyczącym wiersza poleceń aplikacji Skróty rozróżniono dane wejściowe w postaci pliku przekazywane za pomocą -i od tekstu przesyłanego potokiem. Wyświetlanie plików tekstowych w Terminalu na Macu, Uruchamianie skrótów z wiersza poleceń.

Poniższy fragment jest kontynuacją przykładowej konfiguracji, a nie niezależnym programem. Uruchom go w tej samej karcie Terminala po pomyślnym zakończeniu konfiguracji, gdy skrót został zapisany pod dokładną nazwą Read Markdown Text:

(
    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
)

Tutaj cat odczytuje plik i zapisuje jego zawartość na standardowe wyjście. Potok przekazuje tę zawartość do skrótu. Ujęcie ścieżki w cudzysłowy pozwala przekazać ją jako jeden argument. Testy -f i -r wymagają, aby istniejący plik był zwykłym plikiem i dało się go odczytać. Wprowadzenie do wiersza poleceń, Strona podręcznika test firmy Apple.

Nawiasy ograniczają zmianę opcji powłoki do tej grupy poleceń. pipefail sprawia, że niepowodzenie dowolnego etapu potoku jest widoczne w statusie wyjścia grupy. Wstępne testy nie gwarantują, że plik pozostanie dostępny podczas późniejszego odczytu; jeśli cat napotka błąd odczytu, sprawdź ten błąd, zamiast uznawać częściowy podgląd za kompletny.

Ten sposób awaryjny zmienia przychodzącą do skrótu zawartość z pliku na tekst. Nie zmienia nazwy pliku Markdown ani nie tworzy przekonwertowanego dokumentu. Istniejące czynności Text i Quick Look mogą sprawdzić ten tekst wejściowy.

Te trzy formy poleceń mają różne znaczenia:

Forma polecenia Co otrzymuje skrót
shortcuts run \"Read Markdown Text\" -i \"$demo_dir/sample.md\" Dane wejściowe w postaci pliku; konwersja w skrócie nadal jest potrzebna.
printf '%s\n' "$demo_dir/sample.md" | shortcuts run "Read Markdown Text" Ścieżkę jako tekst.
`cat "$demo_dir/sample.md" \ shortcuts run "Read Markdown Text"`

Tabela pokazuje opisane przez Apple rozróżnienie między przekazywaniem ścieżek plików za pomocą -i a przekazywaniem tekstu potokiem. To operacja wykonana przed potokiem określa, czy tekst jest ścieżką, czy treścią dokumentu. Uruchamianie skrótów z wiersza poleceń.

Zdiagnozuj wynik przed dodaniem kolejnych czynności

Użyj znanego pliku przykładowego, aby ustalić, co należy poprawić:

  • Pojawia się tylko nazwa pliku: Sprawdź, czy zmienna pobiera właściwość nazwy zamiast żądać tekstu.
  • Pojawia się tylko ścieżka: Sprawdź, czy polecenie wyświetla ścieżkę zamiast odczytywać plik.
  • Konwersja natywna nie działa, ale metoda z Terminalem działa: W tym przepływie pracy użyj jawnej metody odczytu; sama zmiana etykiety danych wejściowych nie rozwiązała problemu konwersji.
  • Nie otrzymano żadnych danych wejściowych: Uruchom skrót z zaznaczonego pliku w Finderze albo za pomocą opisanego polecenia Terminala. Uruchomienie skrótu z Docka nie przekazuje automatycznie zaznaczonego pliku.
  • Źródło jest puste: Porównaj je z plikiem przykładowym. Prawidłowy pusty plik i brak pliku to różne sytuacje.

Apple osobno opisuje właściwości zmiennych i konwersję typów zawartości, a także zaznacza, że skróty uruchamiane z Docka mogą nie otrzymać żadnych początkowych danych wejściowych. Te rozróżnienia pomagają znaleźć przyczynę problemu, zanim zmienisz kolejne czynności. Dostosowywanie zmiennych w aplikacji Skróty na Macu, Ograniczanie danych wejściowych skrótu na Macu.

Podczas testowania ogranicz przepływ pracy do jednego niewielkiego lokalnego pliku tekstowego. Wybór wielu plików wymaga osobnej decyzji, czy przetwarzać każdy plik osobno, czy łączyć ich zawartość. Ten przykład pokazuje, jak uzyskać czytelny tekst źródłowy; nie służy do kopiowania pliku bajt po bajcie.

Gdy podgląd zawiera oczekiwany nagłówek i wiersze listy, podłącz kolejne czynności przetwarzające tekst do wyniku czynności Text. Zachowaj plik przykładowy do czasu, aż cały przepływ zadziała, a następnie usuń jego tymczasowy katalog w Finderze. Najważniejsze jest to, aby następna czynność otrzymała sprawdzoną treść dokumentu.

Źródła