Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/customcommander/fahrenheit-lang

Domain-specific Language for Citation Styles
https://github.com/customcommander/fahrenheit-lang

academic-writing bibliography citation-style-language citation-styles domain-specific-language

Last synced: about 11 hours ago
JSON representation

Domain-specific Language for Citation Styles

Awesome Lists containing this project

README

        

⚠️ Until further notice `fahrenheit` remains an experiment in language design and is under active development. I would be extremely thankful for any feedback!

# fahrenheit-lang

`fahrenheit` is a domain-specific language for authoring citations and bibliographies styles. It compiles to [CSL][].

## Why?

[CSL][] has become the _de facto_ standard for codifying citations and bibliographies styles. It is widely adopted and has excellent documentation. I have no intention to change that.

However authoring citations and bibliographies styles in XML can be tedious and/or verbose. The `fahrenheit` language aims to offer an improved styles authoring experience whilst complying to the [CSL][] specification.

Here's a contrived example:

```clojure
{:about
{:id "http://www.zotero.org/styles/apa"
:title [:en "American Psychological Association 7th edition"]
:title-short "APA"}}
```

The above code compiles to:

```xml

<info>
<id>http://www.zotero.org/styles/apa</id>
<title xml:lang="en">American Psychological Association 7th edition</title>
<title-short>APA</title-short>
</info>

```

[CSL]: https://citationstyles.org/