2012-11-24 4 views
15

Как автоматически создать список цитат из файла bibtex, желательно в формате уценки (точнее, pandoc)?Автоматически создавать библиографию из bibtex в pandoc/markdown без встроенных ссылок

Я в процессе создания своего личного академического веб-сайта. Как и большинство личных, академических сайтов, я включаю страницу, в которой перечислены мои публикации. Тем не менее, я действительно не хочу писать каждую цитату вручную, поэтому я пытаюсь найти автоматизированный метод создания цитат из одного или нескольких файлов bibtex.

В идеале был бы инструмент, который я мог бы просто передать файл bibtex, содержащий мои публикации, и он выплевывал бы уценку (я использую pandoc + makefile для создания сайта). В настоящее время я не знаю о таком инструменте.

Дальнейшее усложнение моих потребностей заключается в том, что простого плоского списка публикаций недостаточно. Мне нужно иметь возможность перечислить различные публикации по разным категориям (экспертные оценки и независимые экспертные оценки по крайней мере). Хотя если бы такой инструмент, как я хотел, был выше, я мог бы легко поддерживать несколько файлов bibtex и использовать некоторые bash-fu для достижения этого.

ответ

8

Я хотел то же самое по той же причине (создание сайта с использованием Hakyll), и я нашел «проблему»: файл CSL.

Pandoc, на самом деле, это делает работу отлично и the solution provided by MacFarlane правильно, но ему не хватает объяснений по правилу CSL файла-это то, что определяет, если вы собираетесь иметь пронумерованные ссылку в середине текста со списком публикаций в конце или нет.

Julien Tanguy создал CSL style that puts the publication simplied information from BibTeX in the place where the reference is cited, полученный из Чикаго. Конечно, вы можете использовать его (он лицензируется в соответствии с Creative Commons Attribution-Share Alike 3.0), но вы также можете создавать свои.

Итак, теперь (после того, как вы разместили вопрос), я надеюсь, что у вас есть полный ответ.

10

Вы можете использовать собственную поддержку цитаты pandoc для этого. Создайте файл уценки по следующим направлениям:

# Peer-reviewed papers 

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

# Non-peer-reviewed papers 

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

где me1999 и т.д. ключи в файле BibTeX. Затем найти или создать файл CSL, который форматирует цитаты так, как вы хотели бы, и процесс с pandoc:

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

Или вы можете добавить -t markdown и получить версию уценки, если вы хотите.

Если вы не хотите вручную создавать файл разметки ввода, вы, вероятно, могли бы написать сценарий для его генерации из вашего файла bibtex, если он содержит достаточные метаданные, чтобы отличать рецензируемые экспертные оценки от неопубликованных документов ,

+1

Это то, что я первоначально пытался. То, что происходило в том, что он помещал в текстовой цитате в месте расположения ключей, например (Me 2001), а не в полной библиографической цитате. Полная библиография была поставлена ​​в конце документа. Это только из-за CSL, который я использовал? – cledoux

+0

это все еще работает с Джоном? У меня возникают проблемы с обработкой цитат при переходе с .md на .md, код, приведенный выше, не работает для меня. – sebpardo

+0

Вы можете использовать «уценки-цитаты» fo rmat для этого. См. Здесь: https://groups.google.com/d/msg/pandoc-discuss/DJ_XxxvkJEg/KjJ6iDiVAwAJ – twsh

0

Я использую bibtexbrowser для моего личного сайта. Это PHP-скрипт, который легко интегрируется в другие веб-сайты (до тех пор, пока сервер поддерживает PHP). Это решение, к сожалению, не создает уценку, но оно довольно гибкое и имеет преимущество в том, что непосредственно читает файл бибтекса.

В качестве альтернативы вы можете использовать bibtex2html (или аналогичный инструмент) для генерации HTML. Pandoc объединяет несколько входных файлов, и вы можете использовать raw html в Markdown, поэтому его следует включать в любое место, где вам нужно. Вы также можете использовать Pandoc для преобразования HTML в Markdown, если Markdown должен быть вашим окончательным результатом.

1

Как указывали другие, самым простым способом для этого является использование соответствующего файла CSL. Kieran Healy предоставляет такой файл в своем репозитории pandoc-templates, hosted on GitHub.

Чикагский-syllabus.csl файл делает крошечные изменения в стандартной Чикаго Notes файл CSL, так что вы можете использовать его для вывода цитате информации в тексте документа. Это делает его полезным для списков ссылок в резюме и курсах.

Просто скачайте файл и передать опцию --csl==<link to CSL-file> в pandoc (где <link to CSL-file> путь туда, где вы еще сохранили загруженный файл.