2012-11-24 14 views
15

Come posso creare automaticamente un elenco di citazioni da un file bibtex, preferibilmente in formato markdown (più specificamente, pandoc)?Crea automaticamente bibliografia da bibtex in pandoc/markdown senza citazioni in linea

Sono in procinto di costruire il mio sito personale, accademico. Come la maggior parte dei siti web personali e accademici, includo una pagina che elenca le mie pubblicazioni. Tuttavia, non voglio davvero scrivere ogni citazione a mano, quindi sto cercando di trovare un metodo automatico per creare le citazioni da uno o più file bibtex.

Idealmente ci sarebbe uno strumento in cui potrei semplicemente consegnare un file bibtex contenente le mie pubblicazioni e sputerebbe il markdown (sto usando pandoc + makefile per creare il sito). Attualmente non sono a conoscenza di alcuno di questi strumenti.

Un ulteriore complicazione delle mie esigenze è il fatto che un semplice elenco di pubblicazioni non è sufficiente. Devo essere in grado di elencare diverse pubblicazioni in diverse categorie (peer reviewed e peer reviewed al minimo). Anche se esiste uno strumento come quello che desideravo sopra, potrei facilmente mantenere più file bibtex e usare alcuni bash-fu per realizzare questo.

risposta

8

Volevo la stessa cosa per lo stesso motivo (creazione di un sito Web utilizzando Hakyll) e ho trovato il "problema": il file CSL.

Pandoc, infatti, fa questo lavoro alla perfezione e the solution provided by MacFarlane è corretto, ma manca una spiegazione sulla regola del CSL file è ciò che definisce se avete intenzione di avere un riferimento numerate nel testo di mezzo con un elenco di pubblicazioni alla fine o no.

Julien Tanguy ha creato uno CSL style that puts the publication simplied information from BibTeX in the place where the reference is cited, derivato dallo stile di Chicago. Certamente puoi usarlo (è concesso in licenza Creative Commons Attribution-Share Alike 3.0) ma puoi anche creare il tuo.

Così, ora (molto tempo dopo aver postato la domanda), spero che tu abbia la risposta completa.

10

È possibile utilizzare il supporto di citazione proprio di pandoc per questo. Creare un file Markdown secondo le seguenti linee:

# Peer-reviewed papers 

1. [@me2001] 
2. [@me2002] 

# Non-peer-reviewed papers 

1. [@me1999] 
2. [@me1998] 

dove me1999 ecc sono le chiavi nel file BibTeX. Poi trovare o creare un file CSL che formatta le citazioni nel modo in cui vorreste, e il processo con Pandoc:

pandoc --bibliography mybiblio.bib --csl mycsl.csl -o citations.html -s citations.txt 

Oppure è possibile aggiungere -t markdown e ottenere una versione Markdown, se lo si desidera.

Se non si desidera creare manualmente il file di markdown di input, è possibile scrivere uno script per generarlo dal file bibtex, se contiene metadati sufficienti per distinguere peer-reviewed da documenti non sottoposti a peer-review .

+1

Questo è quello che ho inizialmente provato. Quello che stava accadendo era che stava mettendo una citazione in testo nella posizione dei tasti, come (Me 2001), piuttosto che la citazione bibliografica completa.La bibliografia completa è stata messa alla fine del documento.È solo a causa del CSL che ho usato? – cledoux

+0

Does questo funziona ancora John? Sto avendo problemi a ottenere le citazioni analizzate durante la conversione da .md a .md; il codice sopra non funziona per me. – sebpardo

+0

Puoi usare il 'markdown-citations' per rmat per questo. Vedi qui: https://groups.google.com/d/msg/pandoc-discuss/DJ_XxxvkJEg/KjJ6iDiVAwAJ – twsh

0

Sto usando bibtexbrowser per il mio sito personale. È uno script PHP che è facile da integrare in altri siti web (purché il server supporti PHP). Questa soluzione purtroppo non genera markdown, ma è abbastanza flessibile e ha il vantaggio di leggere direttamente il file bibtex.

In alternativa è possibile utilizzare bibtex2html (o uno strumento simile) per generare HTML. Pandoc concatena più file di input e puoi usare raw HTML in Markdown, quindi dovrebbe essere semplice includerlo ovunque ti serva. Puoi anche usare Pandoc per convertire l'HTML in Markdown se Markdown deve essere il tuo output finale.

1

Come altri hanno sottolineato, il modo più semplice per farlo è utilizzare un file CSL appropriato. Kieran Healy fornisce un tale file nel suo repository pandoc-templates, hosted on GitHub.

Il file di Chicago-syllabus.csl fa una piccola modifica a un file CSL Chicago Note standard in modo che si può utilizzare per la citazione di uscita informazioni nel corpo del testo di un documento. Ciò lo rende utile per gli elenchi di riferimenti nei CV e nei programmi del corso.

Basta scaricare il file e passare l'opzione --csl==<link to CSL-file> a Pandoc (dove <link to CSL-file> è il percorso in cui il tuo hanno memorizzato il file scaricato.

Problemi correlati