Come faccio a combinare questi due comandi di shell in un servizio?

3

Eseguo i seguenti due comandi nei file di markdown per ottenere un PDF formattato con cura.

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

Come posso automatizzare questo? Vorrei fare clic con il pulsante destro del mouse su un file di markdown, accedere ai servizi e scegliere Converti markdown in PDF.

So che dovrei usare Automator e ho provato ma non sono riuscito a collegare insieme i passaggi corretti. Nel mio esempio sopra, il file è il nome del file che deve essere l'argomento. Sono arrivato ad avviare un nuovo servizio di Automator, scegliendo Files & Folders e Get Selected Finder Items e sono rimasto bloccato lì.

Aggiornamento : Pandoc = link

Prince = link

Aggiornamento n. 2 per chiarezza

Se sono in una cartella con un file markdown chiamato test.md, la sintassi della riga di comando completa sarebbe:

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

(Nota: sono stato in grado di automatizzarlo come servizio e lo ho chiamato Markdown in HTML)

Ecco il codice:

 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

Ora per convertire quel bit di html in PDF è qualcosa che non riesco a collegare. Ma la sintassi della riga di comando sarebbe:

prince test.html -o test.pdf
    
posta Maiasaura 03.02.2012 - 19:35
fonte

2 risposte

3

Che dire di un servizio di Automator come questo:

Ilpayloadèloscriptdishell

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

Indipendentemente dal file o dai file selezionati, il servizio li esegue tramite il parser di Markdown di pandoc , quindi accetta l'html risultante e lo elabora con prince , assegnando all'output il nome del file originale con un'estensione .pdf aggiunta.

Il piping rimuove la necessità di gestire i file temporanei.

    
risposta data 03.02.2012 - 21:10
fonte
0

Vai su Automator e crea un nuovo servizio:

Quindiaggiungereunoscriptdishell:

Informazioni dettagliate qui

    
risposta data 03.02.2012 - 19:47
fonte

Leggi altre domande sui tag