Um den Inhalt einer lokalen Markdown-Datei in Mac-Kurzbefehlen zu lesen, wandle die Dateieingabe vor der Verwendung in Text um. Prüfe das Ergebnis mit einer entbehrlichen Beispieldatei. Falls die Umwandlung fehlschlägt, lies die Datei mit cat aus und leite ihren Inhalt in den Kurzbefehl weiter.

Diese Anleitung zeigt, wie du im Finder eine einzelne lokale Markdown-Datei auswählst und ihren unveränderten Quelltext anzeigst, einschließlich Überschriftenzeichen und Aufzählungszeichen. Entscheidend ist die Unterscheidung zwischen drei Dingen: der ausgewählten Datei, ihrem Pfad und dem darin gespeicherten Text.

Warum erhält der Kurzbefehl eine Datei statt ihres Textes?

Der Finder übergibt eine Dateieingabe. Apple definiert Files und Text als getrennte Eingabetypen in Kurzbefehlen: Eine Datei kann ein Dokument beliebiger Art sein, während Text einfacher Text ohne angewandte Formatierung ist. Die Annahme einer Markdown-Datei stellt daher für sich genommen nicht sicher, dass die nächste Aktion ihren Inhalt als Text erhält. Eingabetypen in Kurzbefehlen auf dem Mac verstehen.

Kurzbefehle verwendet seinen Content Graph, um zwischen Typen umzuwandeln, wenn Aktionen dies erfordern. Apple dokumentiert außerdem eine explizite Einstellung: Klicke auf ein Variablen-Token und ändere dessen Type. Diese Umwandlung unterscheidet sich von der Auswahl einer Eigenschaft wie dem Dateinamen. Ein Name oder Dateipfad beschreibt die Datei lediglich. Die Content-Graph-Engine, Variablen in Kurzbefehlen auf dem Mac anpassen.

Apples zitierte Anleitung erklärt den Umwandlungsmechanismus, garantiert aber nicht, dass jede Datei mit der Endung .md in ihren Quelltext umgewandelt wird. Prüfe die Umwandlung anhand eines bekannten Inhalts. Die unten beschriebene Befehlsmethode bietet einen expliziten Weg zum Lesen der Datei, falls die native Umwandlung nicht den erwarteten Text liefert.

Eine entbehrliche Markdown-Datei mit bekanntem Inhalt erstellen

Verwende diese synthetische Testdatei, damit ein Dateiname nicht fälschlich als erfolgreicher Lesevorgang gilt. Füge die vollständige Einrichtung in Terminal ein. Sie erstellt ein neues temporäres Verzeichnis, schreibt eine Beispieldatei und öffnet das Verzeichnis im Finder.

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"

Der erwartete Dateiinhalt lautet:

# Sample board

- Blue square
- Green circle

Die Option -d weist mktemp an, ein Verzeichnis zu erstellen, und die abschließenden Zeichen X lassen das Programm einen eindeutigen Namen wählen. Jede erfolgreiche Einrichtung erhält dadurch ein neues Verzeichnis. Schlägt die Erstellung fehl, verhindert die &&-Kette, dass die nachfolgenden Befehle ausgeführt werden. Apple stellt das entsprechende mktemp-Handbuch bereit.

Der Befehl printf schreibt die synthetischen Zeilen einschließlich der Leerzeile. Durch die Ausgabeumleitung wird sample.md im neuen Verzeichnis erstellt. Eine gewöhnliche Umleitung mit > kann eine vorhandene Datei überschreiben. Behalte diese Einrichtung daher unverändert bei, statt das Ziel auf ein vorhandenes Dokument zu ändern. Das neue Verzeichnis verhindert in diesem Beispiel Namenskonflikte. Apples printf-Handbuch, Shell-Eingabe und -Ausgabe.

Einen Finder-Kurzbefehl erstellen, der ausdrücklich Text anfordert

Erstelle einen Kurzbefehl mit dem Namen Read Markdown Text. Apple beschreibt, wie du über die Hinzufügen-Schaltfläche in der Symbolleiste einen Kurzbefehl erstellst, ihm einen Namen gibst und Aktionen aus der Aktionsbibliothek hinzufügst. Einen eigenen Kurzbefehl auf dem Mac erstellen.

Richte den Einstieg über den Finder ein:

  1. Öffne den Bereich Details des Kurzbefehls.
  2. Aktiviere Use as Quick Action und wähle Finder aus.
  3. Erlaube im Eingabeblock oben im Editor Files und Text. Dateien werden für den Finder-Ablauf benötigt; Text wird für die unten beschriebene Terminal-Ausweichmethode benötigt.
  4. Wähle unter „Bei fehlender Eingabe“ die Option Stop and Respond und gib Wähle eine Markdown-Beispieldatei aus. ein.

Apple dokumentiert die Finder-Option und weist darauf hin, dass Datei- oder Ordnereingaben erforderlich sein können, um sie zu aktivieren. Die Eingabeeinstellungen unterstützen außerdem das Beenden mit einer Antwort, wenn keine Eingabe empfangen wird. Einen Kurzbefehl verwenden, während du auf dem Mac arbeitest, Die Eingabe für einen Kurzbefehl begrenzen.

Füge nun die Aktionen zur Inhaltsverarbeitung hinzu:

  1. Füge eine Text-Aktion hinzu.
  2. Füge in ihr Textfeld ausschließlich die Variable Shortcut Input ein.
  3. Klicke auf dieses Variablen-Token, öffne das Menü Type und wähle Text aus. Wähle keine Dateinameneigenschaft aus.
  4. Füge nach der Text-Aktion Quick Look hinzu und verwende die Ausgabe der Text-Aktion.

Durch die explizite Variablenumwandlung wird an der Stelle, an der die Eingabe verarbeitet wird, Text angefordert. Die Ausgabe der nachfolgenden Text-Aktion ist der Wert, der in späteren Textverarbeitungsschritten verwendet werden soll. Apple beschreibt, wie Variablentypen im Variableneditor geändert werden. Variablen in Kurzbefehlen auf dem Mac anpassen.

Zur Kontrolle in deiner installierten Version klicke bei gedrückter Ctrl-Taste auf das Symbol einer Aktion und wähle Show Info. Laut Apple kannst du so die akzeptierten Eingaben und erzeugten Ausgaben einer Aktion prüfen. Das ist besonders nützlich, wenn du einen bestehenden Kurzbefehl mit mehreren Datei- und Textvariablen anpasst. In der Aktionsliste von Kurzbefehlen auf dem Mac navigieren.

Wähle im Finder nur sample.md aus, klicke bei gedrückter Ctrl-Taste darauf und wähle Quick Actions und dann Read Markdown Text. Apple dokumentiert diese Aufrufmethode. Fehlt der Kurzbefehl, prüfe zuerst die Finder-Einstellung und die akzeptierten Eingabetypen. Einen Kurzbefehl verwenden, während du auf dem Mac arbeitest.

Ein erfolgreiches Ergebnis enthält # Sample board und beide Aufzählungspunkte. Wird nur sample.md oder dessen Verzeichnispfad angezeigt, ist die Prüfung nicht bestanden. Apple empfiehlt, Quick Look zwischen Aktionen einzufügen, um den durch einen Kurzbefehl fließenden Inhalt zu prüfen. Aktionen in Kurzbefehlen auf dem Mac testen.

Falls die Umwandlung fehlschlägt, den Inhalt vor dem Aufruf von Kurzbefehle auslesen

Verwende Terminal, um den Lesevorgang explizit auszuführen. In Apples Terminal-Anleitung wird cat als Werkzeug zum Anzeigen des Inhalts von Textdateien beschrieben. In Apples Anleitung zur Befehlszeile für Kurzbefehle wird zwischen der mit -i übergebenen Dateieingabe und Text unterschieden, der über eine Pipe eingespeist wird. Textdateien in Terminal auf dem Mac anzeigen, Kurzbefehle über die Befehlszeile ausführen.

Der folgende Befehl setzt das Einrichtungsbeispiel fort und ist kein eigenständiges Programm. Führe ihn im selben Terminal-Tab aus, nachdem die Einrichtung erfolgreich war, und speichere den Kurzbefehl unter dem exakten Namen 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
)

Hier liest cat die Datei und schreibt ihren Inhalt in die Standardausgabe. Die Pipe übergibt diesen Inhalt an den Kurzbefehl. Durch das Anführungszeichen bleibt der Pfad ein einzelnes Argument. Die Prüfungen mit -f und -r setzen voraus, dass eine vorhandene reguläre Datei lesbar ist. Einführung in die Befehlszeile, Apples test-Handbuch.

Die Klammern beschränken die Änderung der Shell-Option auf diese Befehlsgruppe. pipefail sorgt dafür, dass ein fehlgeschlagener Teil der Pipeline im Exit-Status der Gruppe erkennbar ist. Die vorbereitenden Prüfungen garantieren nicht, dass die Datei beim späteren Lesen noch verfügbar ist. Wenn cat beim Lesen einen Fehler meldet, prüfe diesen Fehler, statt eine unvollständige Vorschau als vollständig anzusehen.

Diese Ausweichmethode ändert den Inhalt, den der Kurzbefehl erhält: Statt einer Datei erhält er Text. Sie benennt die Markdown-Datei nicht um und erstellt kein umgewandeltes Dokument. Mit den vorhandenen Aktionen Text und Quick Look lässt sich der eingehende Text prüfen.

Diese drei Befehlsformen haben unterschiedliche Bedeutungen:

Befehlsform Was der Kurzbefehl erhält
shortcuts run \"Read Markdown Text\" -i \"$demo_dir/sample.md\" Dateieingabe; im Kurzbefehl ist weiterhin eine Umwandlung erforderlich.
printf '%s\n' "$demo_dir/sample.md" | shortcuts run "Read Markdown Text" Den Dateipfad als Text.
`cat "$demo_dir/sample.md" \ shortcuts run "Read Markdown Text"`

Die Tabelle veranschaulicht Apples dokumentierte Unterscheidung zwischen der Übergabe von Dateipfaden mit -i und der Übergabe von Text über eine Pipe. Der Vorgang vor der Pipe bestimmt, ob der Text ein Pfad oder der Dokumentinhalt ist. Kurzbefehle über die Befehlszeile ausführen.

Das Ergebnis prüfen, bevor weitere Aktionen hinzugefügt werden

Verwende die bekannte Testdatei, um zu entscheiden, was korrigiert werden muss:

  • Es erscheint nur ein Dateiname: Prüfe, ob die Variable eine Namenseigenschaft abruft, statt Text anzufordern.
  • Es erscheint nur ein Dateipfad: Prüfe, ob der Befehl den Pfad ausgibt, statt die Datei zu lesen.
  • Die native Umwandlung schlägt fehl, die Terminal-Methode funktioniert aber: Verwende für diesen Ablauf die explizite Lesemethode. Eine Änderung der Eingabebezeichnung allein hat das Umwandlungsproblem nicht gelöst.
  • Es wird keine Eingabe empfangen: Starte den Kurzbefehl über die ausgewählte Finder-Datei oder den dokumentierten Terminal-Befehl. Ein Start über das Dock übergibt die ausgewählte Datei nicht automatisch.
  • Der Quelltext ist leer: Vergleiche das Ergebnis mit der Testdatei. Eine gültige leere Datei und eine fehlende Datei sind unterschiedliche Fälle.

Apple beschreibt Variableneigenschaften getrennt von der Umwandlung des Inhaltstyps und weist darauf hin, dass beim Start von Kurzbefehlen über das Dock keine Anfangseingabe übergeben werden kann. Diese Unterscheidungen helfen, die Fehlerursache zu finden, bevor spätere Aktionen geändert werden. Variablen in Kurzbefehlen auf dem Mac anpassen, Die Eingabe für einen Kurzbefehl begrenzen.

Beschränke den Ablauf beim Testen auf eine kleine lokale Textdatei. Bei mehreren ausgewählten Dateien muss gesondert entschieden werden, ob jede Datei einzeln verarbeitet oder ihr Inhalt zusammengeführt wird. Dieses Beispiel zeigt, wie lesbarer Quelltext erzeugt wird; es ist kein Verfahren zum bytegenauen Kopieren von Dateien.

Sobald die Vorschau die erwartete Überschrift und die Aufzählungszeilen enthält, verbinde nachfolgende Textverarbeitungsaktionen mit der Ausgabe der Text-Aktion. Behalte die Testdatei bei, bis dieser gesamte Ablauf funktioniert, und entferne anschließend ihr entbehrliches Verzeichnis im Finder. Entscheidend ist, dass die nächste Aktion den von dir geprüften Dokumentinhalt erhält.

Quellen