lib/jekyll/zettel/references.rb in jekyll-zettel-0.6.10 vs lib/jekyll/zettel/references.rb in jekyll-zettel-0.7.0
- old
+ new
@@ -40,16 +40,32 @@
register_reference(doc, file)
end
def register_reference(doc, file)
- if doc.data['reference'].include?('id')
- @site.data['references'][doc.data['reference']['id']] = doc.data['reference']
+ if doc.data['reference'].include?('citation-key') && doc.data['reference'].include?('id')
+ #
+ # Citeproc erwartet sich eine id, die dem citation-key entspricht,
+ # in den References (references.json) brauche ich jedoch die id des
+ # Zettels, um in diversen Anwendungen darauf referenzieren zu können.
+ # Also wird die id des Zettels zwischengespeichert und für die
+ # Registrierung bei Citeproc durch den citation-key ersetzt.
+ #
+ # ACHTUNG!
+ # Beim Übernehmen einer Reference aus Citavi muss die id manuell auf
+ # die id des Zettels gesetzt werden!
+ #
+ # store
+ id = doc.data['reference']['id']
+ @site.data['references'][doc.data['reference']['citation-key']] = doc.data['reference']
+ # set id for Citeproc and register Item
+ doc.data['reference']['id'] = doc.data['reference']['citation-key']
@site.config['citeproc'].register doc.data['reference']
- doc.data['citekey'] = doc.data['reference']['id']
+ # restore
+ doc.data['reference']['id'] = id
else
- Jekyll.logger.warn LOG_KEY, 'missing property @id'
- Jekyll.logger.warn '', "./#{file}"
+ Jekyll.logger.warn LOG_KEY, 'missing property @citation-key'
+ Jekyll.logger.warn '', file
end
end
end
end