Features
This site offers some features to enhance the accessibility.
- Scalability
- The size of the pages can be adapted to personal preferences (in Firefox Ctrl++ and Ctrl+-). The width of the main layout elements (header, navigation, content and footer) follows the selected font size. Also the height of most layout elements follows the font size. The header is kept constant in height in order to use background images.
- Keyboard support
- This site implements S (= skip navigation) and 1 (= home page) access keys. If you run Windows and Firefox you may access these functions by Alt+Shift+S and +1. In addition, you may use Tab to move the focus.
- Mobile devices, text browsers, screen readers
- This site may be viewed without CSS. A clean tagging ensures readability of the pure XHTML version of theses pages. A skip link allows skipping the navigation if you use a screen reader or a mobile device.
- Enhanced navigation
- This site makes use of the <link> tag to establish additional links among pages (start, prev, next, up (=start), help, and search (in publications) are supported). You need a plugin (e.g. Link Widgets) for using this mechanism in Firefox.
Technologies and Tools
This section describes the technologies and tools to develop and run this site.
- Markup using XHTML 1.0 Strict and CSS 2.1
- This site complies with the W3C standards. For revalidation refer to the footer on a page.
- PHP and MySQL
- No surprise, most of the contents of this website reside in a MySQL database and XHTML is generated on request using PHP scripts. In particular, PHP is used to generate the XHTML markup for the navigation and it is used to generate all sorts of reference lists from the MySQL database. The main question is how to efficiently maintain a MySQL database of literature references?
- JabRef and SQL transformation
- The JabRef tool provides a comfortable frontend GUI for maintaining literature references in the widely used BibTeX format. Moreover, it allows providing customized transformation rules to transform the BibTeX references into arbitrary text formats. I've written transformation rules which transform BibTeX into SQL code. All I have to do when I add a new reference via JabRef is to export the references to SQL (before-mentioned transformation rules are applied) and to load the SQL file into the MySQL database using some MySQL admin tool. Read more ...
- Notepad++
- These pages were created using Notepad++, a syntax-highlighting text editor in order to produce lean, understandable code.
Generating Proper Literature References
This section describes how to dynamically generate HTML reference lists from BibTeX files using PHP and MySQL.
- BibTeX
- For about two decades, I store my literature references in a BibTeX file. BibTeX is a tool for formatting lists of references and is typically used together with the LaTeX document preparation system. The original BibTeX specification is available at CTAN. BibTeX is still in wide-spread use and tools are available to use BibTeX references in MS Word and other word processors.
- Transformation approaches
- How to generate proper references from BibTeX? Many standards exist how to cite literature references and how to format a list of references (e.g., Harvard, Chicago or APA styles to name a few). Ideally, the task of generating references according to a particular standard is left to BibTeX, but this would require a LaTeX environment. Several projects developed transformation approaches for BibTeX. The BibTeX-XML-HTML approach is to convert BibTeX in XML and then use XSLT to transform it into the desired format. The same workflow has been also chosen by BibTeXML. Bib2x allows to directly transforming BibTeX into an arbitrary text format.
- Transformation using JabRef
- For reasons of simplicity, I decided to stay with JabRef. I've written transformation rules in JabRef, which transform BibTeX into SQL code. The approach that I have taken is to map all BibTeX fields into SQL. The rich database allows all kinds of dynamic filtering and sorting when a HTML reference list is generated by PHP (e.g., book chapters are ordered by year, then by book title, and finally several chapters in the same book are ordered by chapter number). I added an additional database attribute, which captures the pre-formatted reference in HTML code. This decision makes the PHP code quite simple (just echoing this attribute). The complexity lies in the JabRef transformation rules for generating this attribute. My transformation rules reproduce BibTeX's Plain style; they are available on request.