pypandoc + pandoc-citeproc для преобразования bib в rst

У меня есть файл .bib со ссылками, и я хотел бы отобразить этот файл как реструктурированный текст (другими словами, мой ввод — это файл references.bib, а мой желаемый — файл references.rst). Это преобразование должно быть выполнено с помощью скрипта Python, поэтому я попытался использовать pypandoc (версия 0.9.7). , с версией pandoc 1.13.1) в сочетании с фильтром pandoc-citeproc. pypandoc и pandoc установлены правильно, например. следующие работы

import pypandoc
print(pypandoc.get_pandoc_version())

Моя первая идея состоит в том, чтобы использовать какую-то команду nocite* в файле tex или md и преобразовать ее. (Адаптированный) пример из системы отслеживания проблем pandoc-citeproc работает при использовании из командной строки :

pandoc references.tex  -o references.rst --bibliography references.bib

Но у меня не получилось сделать то же самое из python с pypandoc, особенно мне непонятно, как передать лишние аргументы, т.е. измените поведение там же или укажите стиль CSL (изменение стиля biblatex, похоже, не имеет никакого эффекта).

Также мне не очень нравится обходной путь с файлом .tex. Можно как-то пропустить эту часть?


person matth    schedule 29.04.2015    source источник


Ответы (1)


Для этого вы можете использовать citeproc-py. Вам нужно будет:

  1. создать citeproc.CitationsStyleBibliography, передав ему стиль цитирования, источник цитирования bibtex и средство форматирования reStructuredText;
  2. зарегистрируйте каждый элемент из вашего библиографического источника;
  3. распечатать библиографию.

Вы можете найти примеры для этих шагов в каталоге examples/ на citeproc-py , или в исходном коде bibgen. Обратите внимание, что bibgen позволяет напрямую включать библиографию в документ reStructuredText. (включая исходники Sphinx), см. этот пример.

person Émilien Tlapale    schedule 06.06.2015