User:Miranche/BiblioTex

This page helps me document the work on a bibliography-oriented MediaWiki extension that started as the merger of extensions Biblio and BibTex.

Name
The working name of this extension, BiblioTeX, is a portmanteu of the names of two extensions it is based on. I like the name, but there is a proprietary application that already uses it. Also, since I'm building up from Biblio & am fully backward compatible with it, this work can be seen as leading to a potential new Biblio version.

Summary

 * Completed
 * Extend Biblio parser to recognize plain BibTeX syntax, and to search for and source BibTeX files on the file system.
 * Use a common BibTeX-based back end for all citation data.
 * Build a flexible citation renderer that supports user-defined citation styles.


 * In Progress
 * Integrate Biblio citations with the Cite extension, when present.
 * Emulate citation display formats used in Wikipedia and in the current versions of Biblio and BibTeX.
 * Fully support existing Biblio and Bibtex features.
 * Add a MediaWiki namespace, BibTeX, which serves to store BibTeX code of individual sources locally.
 * Support several standard scholarly citation styles.


 * Next up
 * Support customizable decoration of citations with external and internal links.
 * Provide core functionality in older releases of MediaWiki back to 1.5, and full functionality in versions back to 1.11.
 * Test the extension on all major browsers.
 * Fully document existing and new features.


 * Planned
 * Support author-date ("Harvard") citations.
 * Provide and document an extensible API letting users add their own bibliographic data sources.
 * Support interoperability with other bibliographic MediaWiki extensions wherever feasible.

Completed and In Progress headings are self-explanatory. Next up comprises features I intend to complete for the first beta release, while Planned are ideas for further down the road. Details follow.

Data Sources and Formats

 * Completed
 * Extend PubMed requests to handle DOIs
 * Get rid of dependence on SOAP in favor of CGI requests
 * use SimpleXML to process Web query results rather than purpose-written XML parsers
 * Standardize representation of data retrieved by PubMed & ISBNdb.com requests, using data structures modeled on BibTeX
 * Parse author names correctly depending on data source, breaking them into first, last, "von" and "jr" parts as described in BibTeX documentation (Tame the BeaST)
 * Extend &lt;biblio&gt; tag parser to accept BibTeX entries (already largely implemented in the NMR version) and to recognize and handle plain BibTeX syntax
 * Provide a way to look for and source BibTeX databases from the file system


 * Next up
 * Look for & eliminate possible opportunities for malicious HTML insertion through sourcing files & urls
 * Standardize the handling of special characters
 * Standardize the way source file URLs are generated (see function makeUrl)
 * Google Scholar bibtex compatibility ("hack to remove extra braces?")


 * Planned
 * Get citations from other repositories, see Extension:Bibwiki for possibilities (Amazon, Arxiv etc)
 * Standardize the API for getting citations from external sources and/or files, provide a way for users to program in their own source types.
 * Output COinS: see http://ocoins.info/, Citation and Citation core templates in wp
 * If necessary, consider changing the underlying data structure from BibTeX-based to something more general, and/or provide support for less-than-standard BibTeX entry types. JabRef provides @electronic, @patent, @periodical and @standard.

Display of Citations

 * Completed
 * Write a general bibliography entry renderer expecting a BibTeX-like data structure
 * Unify rendering for BibTex, PubMed and ISBN &lt;biblio&gt; entries
 * Support different citation styles: Chicago author-date & humanities, APA, AMA, MLA
 * Create a citation style ("biblio-2006") that replicates the existing Biblio citation display
 * Create a citation style ("wikipedia") that renders citations using Cite templates. Need: ParserFunctions, templates listed on w:Template:Citation/core/doc


 * In Progress
 * Special characters seem to prevent BibTeX code popup
 * Several citation styles are unfinished:
 * MLA, APA & AMA don't have @inbook, @techreport, @manual


 * Next up
 * Complete all standard cit types above
 * confirm the styles for @techreport
 * of the not-so-standard entry types, @periodical may be the most important
 * Generalize hypertext additions to textual citations into configurable "output decorator" classes
 * Handle bibtex attributes that can decorate the citation with links & popups, e.g. annot, abstract, ps, pdf, url
 * Expand citation styles to meta-styles which include
 * Citation style (how to generate text for a single citation)
 * Footnote style (how to integrate citations into the Wiki page: numeric vs author-date labels, sort order)
 * Decorators (which bells & whistles to add to citation text before, while & after it's created: links, headers & footers)
 * Create meta-styles that fully mimic existing &lt;biblio&gt; and &lt;bibtex&gt; output


 * Planned
 * Provide options to display in-text links in author-date format and to sort bibliography by author name

MediaWiki Integration

 * Completed
 * If Cite/Cite.php is present, provide an option to make Biblio inter-operable with it:
 * Handle &lt;cite&gt; tags as named &lt;ref&gt;s
 * Allow the &lt;biblio&gt; section to appear within &lt;references&gt;, or to double as &lt;references&gt;
 * Add BibTeX namespace, storing individual BibTeX citations
 * When starting a new page in the BibTeX namespace, preload it with the appropriate BibTeX code and a redirect/link to a putative annotation page
 * Create a citation style ("wikititle") that defines the default title style of the annotation page
 * Provide an option to display citation titles as links to pages in the BibTeX namespace. Similar to RefHelper but without automagically creating pages.


 * In Progress
 * Full integration with Cite numbered links
 * Handle &lt;nocite&gt; tags correctly: extend Cite to not complain about citations with no references in the text
 * In absence of Cite, still provide Cite-like anchors links between &lt;biblio&gt; citation list and text


 * Next up
 * Provide option to automagically generate BibTeX namespace pages
 * Investigate whether to unify Cite and Biblio error display
 * Make Biblio & Bibtex CSS consistent with those used in MediaWiki, Extension:Cite and Template:Citation
 * Where appropriate, use DOM, SimpleXml and/or MediaWiki Xml functions to generate XML content


 * Planned
 * Extend Cite class to create author-date in-text links for &lt;ref&gt;s that use appropriate citation templates
 * Investigate the use of "Harvard" citations in Wikipedia
 * Provide option to integrate with the Cite namespace citations generated by RefHelper, where present

Compatibility

 * In Progress
 * Continually make sure original &lt;bibtex&gt; and &lt;biblio&gt; syntax work
 * &lt;biblio&gt;: sourcing URLs: wiki, interwiki & external
 * &lt;bibtex&gt;: in-text citation, help output, pasting bibtex templates into the edit window (probably broken in IE)


 * Next up
 * Test in key older MediaWiki versions, starting with 1.5 or with the oldest version used by existing Biblio users
 * Use parse instead of recursiveTagParse prior to 1.8
 * Test in other browsers, esp. IE7 and IE8


 * Planned
 * Install & test (Apache + PHP +) MediaWiki + this extension on Mac OS X and Windows

Links

 * Mediawiki


 * Extension:Biblio
 * Extension:Bibtex
 * Extension:Bibwiki
 * Extension:Cite/Cite.php
 * Extension:RefHelper


 * Authors and Users


 * http://openwetware.org/wiki/Wikiomics:Biblio
 * http://gsc2.cemif.univ-evry.fr/index.php/Mediawiki_extensions
 * http://nmrwiki.org/wiki/index.php?title=Help:Biblio_Extension
 * http://nmrwiki.org/wiki/index.php?title=Using_BibTex_in_NMRWiki
 * http://www.hodgeslab.org/2010/02/php_mediawiki_biblio_and_nusoa.html (test case on mac)
 * http://neurov.is/on/Help:Creating_citations
 * http://neurov.is/on/Cite:Gray_Atkinson_2003
 * http://neurov.is/w/index.php?title=Special:RefSearch
 * http://neurov.is/w/index.php?title=Special:RefHelper


 * BibTex


 * BibTeX entry types
 * http://www.kfunigraz.ac.at/~binder/texhelp/bibtx-7.html
 * http://www.lsv.ens-cachan.fr/~markey/bibla.php
 * http://artis.imag.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html
 * http://www.math.utah.edu/~beebe/bibliographies.html
 * http://ftp.math.utah.edu/pub//emacs/bibtex-mods.el


 * Citation Style Guides


 * http://www2.liu.edu/cwis/cwp/library/workshop/citation.htm
 * http://library.hsu.edu/Tutorial/
 * http://www.chicagomanualofstyle.org/tools_citationguide.html
 * http://www.umuc.edu/library/guides/chicago.shtml