3 votos

¿Cómo puedo combinar estos dos comandos de la shell en un Servicio?

Puedo ejecutar los siguientes comandos en archivos markdown para obtener un bien con formato PDF.

pandoc file.md -o file.html --css=markdown.css 
prince file.html file.pdf
rm file.html

¿Cómo puedo automatizar esto? Me gustaría hacer clic derecho en un archivo markdown, vaya a servicios, y elija convertir las rebajas a PDF.

Sé que debo usar Automator y lo intenté, pero no podía vincular el derecho pasos juntos. En mi ejemplo anterior, el archivo es el nombre del archivo que debe ser el argumento. Llegué tan lejos como el inicio de una nueva Automator servicio, eligiendo Files & Foldersy Get Selected Finder Items y se quedó allí.

Actualización: Pandoc = http://johnmacfarlane.net/pandoc/

El príncipe = http://www.princexml.com/

Actualización #2 para mayor claridad

Si estoy en una carpeta con una rebaja archivo llamado prueba.md, a continuación, la línea de comandos completa de la sintaxis sería:

pandoc --from=markdown --to=html test.md --css=~path/to/css/markdown.css -o test.html

(Nota: he sido capaz de automatizar esto como un servicio y lo han llamado Markdown a HTML)

Aquí está ese código:

 for f in "$@"
 do 
/usr/local/bin/pandoc --from=markdown --to=html "$f" --css=/Users/fooo/Documents/Code/css/markdown.css -o "$f".html 
done

Ahora, para convertir ese poco de html a PDF, es algo que no soy capaz de enlace. Pero la sintaxis de línea de comandos sería:

prince test.html -o test.pdf

3voto

TraFoO Puntos 11

¿Qué acerca de un Automator servicio como este: enter image description here

La carga útil es la secuencia de comandos de shell

 for f in "$@"
 do
    pandoc "$f" --css=markdown.css | prince - "$f".pdf
 done

Cualquiera que sea el archivo o los archivos seleccionados, se ejecuta el servicio de ellos a través de pandoc's de las Rebajas analizador, a continuación, toma el html resultante y de los procesos de con prince, nombrando a la salida de la original nombre de archivo con una .pdf extensión agregó.

La tubería se elimina la necesidad de gestionar los archivos temporales.

0voto

Julius Canute Puntos 26

Ir a Automator y crear un nuevo servicio:
Create new service
A continuación, agregar una secuencia de Comandos de Shell:
Shell script - automator
Información detallada aquí

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