1 votos

¿Convertir el código HTML de los hipervínculos en Markdown (MD) en puro AppleScript?

Tengo un archivo de texto o algún texto para procesar a través del portapapeles. Contiene algunas líneas de código HTML, y me gustaría convertirlo a Markdown puro.

Por ejemplo, de:

This is a link: <a href="https://duck.com">link</a>

a:

This is a link: [link](https://duck.com)

¿Existe un código AppleScript puro (utilizando la sustitución regex) que pueda hacer esto?

Como alternativa, me basta con que AppleScript llame a cualquier herramienta CLI para procesar el texto mediante do shell script si se trata de un texto incorporado que no requiere homebrew o una herramienta de terceros para ser instalado.

1voto

user3439894 Puntos 5883

Aquí hay uno ejemplo :

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

Resultado:

"This is a link: [link](https://duck.com)"

Esto también se puede bajar sin el uso de la do shell script comando , como en este ejemplo :

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

Resultado:

"This is a link: [link](https://duck.com)"

Si This is a link: <a href="https://duck.com">link</a> está en un archivo o en el portapapeles El escapando de se hace automáticamente al asignarlo a un variable . A continuación, sólo hay que escapar de la " en el sed comando como se muestra en el ejemplo arriba.


Otros ejemplos :

Si This is a link: <a href="https://duck.com">link</a> en un archivo:

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

O bien, procesando el archivo directamente:

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 This is a link: <a href="https://duck.com">link</a> está en el portapapeles :

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

Nota: El uso de la findAndReplaceInText() manipulador también puede utilizarse en lugar del do shell script comando en estos otros ejemplos .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X