Convertir le code d'hyperlien HTML en Markdown (MD) en pur AppleScript?
J'ai un fichier texte ou du texte à traiter via le presse-papiers. Il contient quelques lignes de code HTML et j'aimerais le convertir en pur Markdown.
Par exemple de:
This is a link: <a href="https://duck.com">link</a>
à:
This is a link: [link](https://duck.com)
Existe-t-il du code AppleScript pur (utilisant la substitution regex) qui peut faire cela?
Alternativement, je suis heureux que AppleScript appelle n'importe quel outil CLI pour traiter le texte via do shell scripts'il s'agit d'un texte intégré qui ne nécessite pas l' homebrewinstallation d'un outil tiers.
Réponses
Voici un exemple :
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
Résultat:
"This is a link: [link](https://duck.com)"
Cela peut également être en panne sans l'utilisation de la do shell script commande , comme dans cet exemple :
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
Résultat:
"This is a link: [link](https://duck.com)"
S'il se This is a link: <a href="https://duck.com">link</a>trouve dans un fichier ou dans le presse - papiers , l' échappement se fait automatiquement lors de son affectation à une variable . Il vous suffit ensuite d'échapper "à la sed commande comme indiqué dans l' exemple ci-dessus.
Autres exemples :
Si This is a link: <a href="https://duck.com">link</a>dans un fichier:
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
Ou, en traitant directement le fichier :
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
Si se This is a link: <a href="https://duck.com">link</a>trouve dans le presse - papiers :
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
Remarque: l'utilisation du findAndReplaceInText() gestionnaire peut également être utilisée à la place de la do shell script commande dans ces autres exemples .
- Voir également, Manipuler du texte dans le Guide de scripting Mac Automation .