Work in-progress (currently based on the branch for #2071 -- leveraging some of the code introduced there)
Closes #2074
Saving my code as a "checkpoint" since it already does nice things (see screenshots in the referred issue).
In order to support CSL (Citation Style Language), we need to:
[ ] Convert the BibTeX entries to CSL format.
[ ] Use a CSL engine to format the citations and bibliography references. It boils down to:
[ ] Support CSL locales
[ ] Support CSL styles
[ ] Implement the CSL processor/renderer
Regarding the conversion of BibTeX entries, the mappings are not straightforward, but there is some prior art that we can check... None of the implementations I checked did the exact same things, so it's likely a bit messy...
Regarding the CSL engine, there are various existing implementations.
Yet, I had a look at them, and I am not really convinced by their code quality, so I went implementing the CSL 1.0.2 specifications from scratch. Because it's fun, and SILE has the guts to do it. And because I think I can.
Additionally, this would also close several other items.
Closes #2024 = The CSL locales takes care of it.
Closes #2022 = The CSL styles have appropriate fallbacks (substitutes, conditionals, etc.)
Closes #2027 = The CSL styles and locales define how to format localized dates in the selected citation or bibliography style.
Work in-progress (currently based on the branch for #2071 -- leveraging some of the code introduced there)
Closes #2074
Saving my code as a "checkpoint" since it already does nice things (see screenshots in the referred issue).
In order to support CSL (Citation Style Language), we need to:
Regarding the conversion of BibTeX entries, the mappings are not straightforward, but there is some prior art that we can check... None of the implementations I checked did the exact same things, so it's likely a bit messy...
Regarding the CSL engine, there are various existing implementations. Yet, I had a look at them, and I am not really convinced by their code quality, so I went implementing the CSL 1.0.2 specifications from scratch. Because it's fun, and SILE has the guts to do it. And because I think I can.
Additionally, this would also close several other items.
Closes #2024 = The CSL locales takes care of it.
Closes #2022 = The CSL styles have appropriate fallbacks (substitutes, conditionals, etc.)
Closes #2027 = The CSL styles and locales define how to format localized dates in the selected citation or bibliography style.