CiteProc

Last updated

CiteProc is the generic name for programs that produce formatted bibliographies and citations based on the metadata of the cited objects and the formatting instructions provided by Citation Style Language (CSL) styles. The first CiteProc implementation used XSLT 2.0, but implementations have been written for other programming languages, including JavaScript, [1] Java, [2] Haskell, [3] PHP, [4] Python, [5] Ruby [6] and Emacs Lisp. [7]

Contents

CiteProc, CSL, and Cite Schema make up the Citation Style Language project, a Creative Commons Attribution Share-Alike licensed effort "to provide a common framework for formatting bibliographies and citations across markup languages and document standards. In an ideal world, one could use the same CSL files to format DocBook, TEI, OpenOffice, WordML ... or even LaTeX documents." [8] [9]

Different implementations of CiteProc are able to use different bibliographic databases; many can use MODS XML.

Notable applications that support CiteProc

Related Research Articles

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.

<span class="mw-page-title-main">Quine (computing)</span> Self-replicating program

A quine is a computer program which takes no input and produces a copy of its own source code as its only output. The standard terms for these programs in the computability theory and computer science literature are "self-replicating programs", "self-reproducing programs", and "self-copying programs".

In computing, serialization is the process of translating a data structure or object state into a format that can be stored or transmitted and reconstructed later. When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object. For many complex objects, such as those that make extensive use of references, this process is not straightforward. Serialization of object-oriented objects does not include any of their associated methods with which they were previously linked.

Bytecode is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.

This is a "genealogy" of programming languages. Languages are categorized under the ancestor language with the strongest influence. Those ancestor languages are listed in alphabetical order. Any such categorization has a large arbitrary element, since programming languages often incorporate major ideas from multiple sources.

In the written form of many languages, an indentation or indent is an empty space at the beginning of a line to signal the start of a new paragraph. Many computer languages have adopted this technique to designate "paragraphs" or other logical blocks in the program.

A lightweight markup language (LML), also termed a simple or humane markup language, is a markup language with simple, unobtrusive syntax. It is designed to be easy to write using any generic text editor and easy to read in its raw form. Lightweight markup languages are used in applications where it may be necessary to read the raw document as well as the final rendered output.

Programming languages are used for controlling the behavior of a machine. Like natural languages, programming languages follow the rules for syntax and semantics.

A foreign function interface (FFI) is a mechanism by which a program written in one programming language can call routines or make use of services written or compiled in another one. An FFI is often used in contexts where calls are made into binary dynamic-link library.

<span class="mw-page-title-main">Web template system</span> System in web publishing

A web template system in web publishing allows web designers and developers work with web templates to automatically generate custom web pages, such as the results from a search. This reuses static web page elements while defining dynamic elements based on web request parameters. Web templates support static content, providing basic structure and appearance. Developers can implement templates from content management systems, web application frameworks, and HTML editors.

This comparison of programming languages compares the features of language syntax (format) for over 50 computer programming languages.

The following tables compare notable reference management software. The comparison includes older applications that may no longer be supported, as well as actively-maintained software.

The Citation Style Language (CSL) is an open XML-based language to describe the formatting of citations and bibliographies. Reference management programs using CSL include Zotero, Mendeley and Papers. The Pandoc lightweight document conversion system also supports citations in CSL, YAML, and JSON formats and can render these using any of the CSL styles listed in the Zotero Style Repository.

Thrift is an interface definition language and binary communication protocol used for defining and creating services for numerous programming languages. It was developed at Facebook for "scalable cross-language services development" and as of 2020 is an open source project in the Apache Software Foundation.

<span class="mw-page-title-main">BibDesk</span> Reference management software

BibDesk is an open-source reference management software package for macOS, used to manage bibliographies and references when writing essays and articles. It can also be used to organize and maintain a library of documents in PDF format and other formats. It is primarily a BibTeX front-end for use with LaTeX, but also offers external bibliographic database connectivity for importing, a variety of means for exporting, and capability for linking to local documents and automatically filing local documents. It takes advantage of many macOS features such as AppleScript and Spotlight.

BSON is a computer data interchange format. The name "BSON" is based on the term JSON and stands for "Binary JSON". It is a binary form for representing simple or complex data structures including associative arrays, integer indexed arrays, and a suite of fundamental scalar types. BSON originated in 2009 at MongoDB. Several scalar data types are of specific interest to MongoDB and the format is used both as a data storage and network transfer format for the MongoDB database, but it can be used independently outside of MongoDB. Implementations are available in a variety of languages such as C, C++, C#, D, Delphi, Erlang, Go, Haskell, Java, JavaScript, Julia, Lua, OCaml, Perl, PHP, Python, Ruby, Rust, Scala, Smalltalk, and Swift.

MessagePack is a computer data interchange format. It is a binary form for representing simple data structures like arrays and associative arrays. MessagePack aims to be as compact and simple as possible. The official implementation is available in a variety of languages such as C, C++, C#, D, Erlang, Go, Haskell, Java, JavaScript (NodeJS), Lua, OCaml, Perl, PHP, Python, Ruby, Scala, Smalltalk, and Swift.

Pandoc is a free-software document converter, widely used as a writing tool and as a basis for publishing workflows. It was created by John MacFarlane, a philosophy professor at the University of California, Berkeley.

References

  1. "fbennett- citeproc-js - wiki - Home — Bitbucket". Atlassian. 18 Mar 2014. Retrieved 19 Apr 2014.
  2. "citeproc-java". Michel Krämer. 27 Feb 2014. Retrieved 19 Apr 2014.
  3. "citeproc-hs - A Haskell Implementation of the Citation Style Language". Andrea Rossato. 17 Mar 2012. Archived from the original on 30 April 2014. Retrieved 19 Apr 2014.
  4. "seboettg / citeproc-php — GitHub". 15 Mar 2013. Retrieved 2 Jun 2016.
  5. "citeproc-py: Python Package Index".
  6. "citeproc-ruby".
  7. "citeproc-el".
  8. "Creative Commons- Attribution-ShareAlike 3.0 Unported- CC BY-SA 3.0". Creative Commons. 25 Mar 2014. Retrieved 19 Apr 2014.
  9. "XBiblio". Bruce D’Arcus. 29 Aug 2010. Retrieved 19 Apr 2014.
  10. "Pandoc - Pandoc User's Guide". pandoc.org. Retrieved 2019-07-10.