HTML-Hyperlink-Code in reinem AppleScript in Markdown (MD) konvertieren?
Ich habe eine Textdatei oder einen Text, der über die Zwischenablage verarbeitet werden soll. Es enthält ein paar Zeilen HTML-Code und ich möchte ihn in reinen Markdown konvertieren.
ZB von:
This is a link: <a href="https://duck.com">link</a>
zu:
This is a link: [link](https://duck.com)
Gibt es reinen AppleScript-Code (mit Regex-Substitution), der dies kann?
Alternativ bin ich damit zufrieden, dass AppleScript ein CLI-Tool aufruft, um den Text zu verarbeiten, do shell scriptwenn es sich um einen integrierten Text handelt, für den kein homebrewDrittanbieter-Tool installiert werden muss.
Antworten
Hier ist ein Beispiel :
set htmlString to "This is a link: <a href=\"https://duck.com\">link</a>"
set mdString to do shell script "/usr/bin/sed -E -e 's|<a href=\"|[link](|g' -e 's|\">link</a>|)|g' <<< " & htmlString's quoted form
Ergebnis:
"This is a link: [link](https://duck.com)"
Dies kann auch ohne Verwendung des do shell script Befehls nicht möglich sein , wie in diesem Beispiel :
set htmlString to "This is a link: <a href=\"https://duck.com\">link</a>"
set htmlString to findAndReplaceInText(htmlString, "<a href=\"", "[link](")
set htmlString to findAndReplaceInText(htmlString, "\">link</a>", ")")
on findAndReplaceInText(theText, theSearchString, theReplacementString)
set AppleScript's text item delimiters to theSearchString
set theTextItems to every text item of theText
set AppleScript's text item delimiters to theReplacementString
set theText to theTextItems as string
set AppleScript's text item delimiters to ""
return theText
end findAndReplaceInText
Ergebnis:
"This is a link: [link](https://duck.com)"
Befindet This is a link: <a href="https://duck.com">link</a>es sich in einer Datei oder in der Zwischenablage , erfolgt das Escapezeichen automatisch, wenn es einer Variablen zugewiesen wird . Sie brauchen dann nur die entkommen "in dem sed Befehl , wie in dem gezeigten Beispiel oben.
Andere Beispiele :
Wenn This is a link: <a href="https://duck.com">link</a>in einer Datei:
set htmlFile to "/path/to/filename/ext"
set htmlString to read htmlFile
set mdString to do shell script "/usr/bin/sed -E -e 's|<a href=\"|[link](|g' -e 's|\">link</a>|)|g' <<< " & htmlString's quoted form
Oder verarbeiten Sie die Datei direkt:
set htmlFile to "/path/to/filename.ext"
set mdString to do shell script "/usr/bin/sed -E -e 's|<a href=\"|[link](|g' -e 's|\">link</a>|)|g'" & space & htmlFile's quoted form
Wenn This is a link: <a href="https://duck.com">link</a>ist in der Zwischenablage :
set htmlString to (the clipboard as text)
set mdString to do shell script "/usr/bin/sed -E -e 's|<a href=\"|[link](|g' -e 's|\">link</a>|)|g' <<< " & htmlString's quoted form
Hinweis: Die Verwendung des findAndReplaceInText() Handlers kann in diesen anderen Beispielen auch anstelle des do shell script Befehls verwendet werden .
- Siehe auch Bearbeiten von Text im Mac Automation Scripting Guide .