Age | Commit message (Collapse) | Author |
|
Many websites employ the [MathJax](https://www.mathjax.org/) library for dynamically rendering LaTeX math expressions on the client side. I expect to require support for doing just that in the future. But as with syntax highlighting I am of the opinion that this kind of stuff should be performed once during site compilation instead of wasting ressources by forcing each client to do this job for every single page request.
Luckily there is a [MathJax-node](https://github.com/mathjax/MathJax-node) module that allows using the _MathJax_ library on the server side.
This commit adds support for rendering math expressions written in Markdown respectively LaTeX as follows: `$$1 + 1 \neq 0$$` on the server side.
This required the introduction of a new `math_highlighter` helper template in `formatter.xsl` based on the `tex2html` utility provided by _MathJax-node_. This formatter is matched against the (Markdown parser generated) `script` node in `formatter.xsl`'s _embellish_ mode. The HTML rendering of the expression is then embedded in a `p class="math"` node. This explicit labeling allows `master.xsl` to include the `math.css` rules only for pages that actually contain math expressions.
Note that the XHTML rendering utility stylesheet `xhtml.xsl` currently adds a XML comment to each `span` node. This is a workaround to prevent _Xalan_ from collapsing "empty" `span` tag pairs into single nodes which otherwise leads to rendering errors as it is not valid HTML and is interpreted as a wrong tree structure by the browser.
Note that the CSS rules declared in `math.css` are explicitly not part of the MIT licensed part of this repository but where generated by _MathJax_.
As there is currently no _productive_ content making use of math expressions a demo page is available under `page/math_test/`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
…otherwise various browsers correctly complain about unencrypted ressources if the website is accessed via `https`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* updated _about_ page
|
|
* added link to blog article to _TypeAsValue_ page
|
|
|
|
* fixed grammar of _StaticXSLT_ page
|
|
|
|
|
|
|
|
|
|
* this was done to match the recent extraction of the generic static site generation framework into a separate project
|
|
|
|
* changed page source accordingly
|
|
|
|
* added age and further language information
* fixed grammar problems
* converted image tag to kramdown syntax
|
|
|
|
|
|
|
|
* XHTML elements "h2" and "h3" are replaced with "h3" and "h4" respectively
** modified all existing contents accordingly
** this was done to avoid the gap between the primary heading and subheadings in the markdown depiction of the contents
* fleshed out the InputXSLT project page with further information
|
|
* modified master transformation accordingly
* fixed small syntax and grammer error in about page content
** missing dot and missing "and"
|
|
|
|
* basic legal information is provided in English
** further information is provided in German of a separate page
|
|
* _obfuscated_ addresses used "punkt" and "ät" instead of "dot" and "at" to symbolize special characters
* cgit link was missing a closing colon
|
|
|
|
* the article "2014-07-11_mapping_arrays_using_tuples_in_cpp11" contained a full link to blog.kummerlaender.eu instead of an relative one
* the page "input_xslt" contained a wrong cgit link
|
|
* fixed prettylist CSS to work in both WebKit and Gecko
|
|
* recent changes in InputXSLT revamped "external-text-formatter" into a general "external-command" function
* this changes were implemented to enable e.g. symlinking and copying files from the source to the target
|
|
* e.g. linked Github and cgit repositories
|
|
|
|
* expanded "02_data/pages.xsl" transformation to include pages in subfolders
* "03_meta/categories.xsl" transformation generates a categorized view of all pages simmilar to the one provided for tags by "03_meta/tags.xsl"
* "99_result/category/category.xsl" transformation generates category overview pages
* added basic project related pages inside the "projects" category
|
|
* this should be the last one, as the remaining articles are not really worth preserving
** at least that is my current assessment
* updated contact page with actual content instead of filler text
|
|
* "source" directory contains layers as subdirectories
** ordered by their name
** e.g. layer 0 is "00_content" and contains the content alongside some metadata
* transformations contained within the "source" layers are processed sequentally
* transformations define their requirements in a "meta" variable
** the "meta" variable is interpreted by the core transformation "generate.xsl"
* requirements are currently datasources and target information
** every transformation may have one datasource of type "main"
*** this data source offers e.g. the option to iterate over it
** every transformation may have a arbitrary number of "support" datasources
*** e.g. "meta" is a support datasource
** the target node may provide a fixed target path or a Xpath to be evaluated
* the result of each transformation is written to the appropriate layer of the "result" directory
* this approach to XSLT based static site generation should be quite flexible and offer good expandability
** e.g. adding new datasource options and types
|