Glyph - Changelog

v0.5.3 – October 4 2014

1 Bug Fixed

ID Description

Fix error with SCSS generation

v0.5.2 – November 11th 2012

2 Features Implemented

ID Description

HTML output now indented automatically.


CSS improvements.

2 Bugs Fixed

ID Description

Made Glyph compatible with gli v2.×.


Fixed heading level of aliased macro always set to 2.

v0.5.1 – December 4th 2011

2 Bugs Fixed

ID Description

Fixed error in pubdate macro.


Updated CodeRay stylesheet.

v0.5.0 – August 28th 2011

16 Features Implemented

ID Description

It is now possible to generate a PDF document through HTML5, not only HTML, by setting the output.pdf.through setting to html5.


The fragment macro and the embed macro can be used to delimit and embed text fragments, in a way much similar to snippets.


Introduced the concept of “macro representations”, to make macro code output-independent.


Macro can be composed with other macros via backslashes, provided that containers only take exactly one parameter. The new xml macro dispatcher must be used composed with other macros to create raw XML tags, prepending = to macro names no longer works.


Glyph can now generate ebooks in MOBI and EPUB format – with Calibre’s help.


By using the new let macro macro, it is possible to define lexically scoped “variables” via the attribute: macro, and retrieve them within the scope of the let macro using the attribute macro.


A while macro can be used to execute glyph code multiple times.


The s macro dispatcher can be used to call almost any instance method of the Ruby String class. The match macro cannot be used anymore; use s/match instead.


The old rewrite: macro has been renamed to define:. The new define: macro fully supports recursion.


The add macro, the subtract macro and the multiply macro macro can be used to perform operations on integers.


The lt, gt, lte, gte macros can be used to compare integer values.


The load macro macro can be used to embed the contents of a file without performing any evaluation.


\/ must not be used as invisible space separator, instead of \..


Snippets are no longer managed via a separate snippet.yml file and must be defined within Glyph source files, using the snippet: macro.


Typing glyph -v now prints the current version of Glyph on the screen.


Glyph no longer depends on Jeweler to create and manage its gem.

4 Bugs Fixed

ID Description

Fixed a bug related to Jeweler’s gemspec validation. And for all it matters, Jeweler is no longer a development dependency for Glyph.


Temporary output files are now placed in a temporary folder.


Glyph now handles non-ASCII characters properly with Ruby 1.9 as well.


Fixed a bug that caused incorrect TOC nesting when using the src attribute of the section macro.

v0.4.2 – October 22th 2010

3 Features Implemented

ID Description

A new output? macro can be used to test whether Glyph is compiling to a particular output format.


The conditional macro now support a third parameter (else branch).


A bunch of new aliases and shortcuts are available for the section macro.

1 Bug Fixed

ID Description

No error is raised anymore if less than the required parameters/attributes are supplied to a rewritten macro.

v0.4.1 – September 23th 2010

5 Bugs Fixed

ID Description

*.scss files are now supported by the style macro.


Improved default CodeRay stylesheet.


SCSS now used internally by Glyph to generate default CSS files.


Consecutive escape sequences are now interpreted correctly in topics.


Fixed error causing broken images in web5/html5 output.

v0.4.0 – September 3th 2010

13 Features Implemented

ID Description

A new stats command can be used to display statistics about project files, snippets, macros, bookmarks and links.


It is now possible to validate online HTTP links.


It is now possible to use wkhtmltopdf instead of Prince to generate PDF files from HTML files.


It is now possible to generate documents comprised of multiple files (topics).


It is now possible to define layouts (used when generating multi-file outputs) using Glyph macros.


It is now possible to compile your project to a single HTML5 file (html5 output) or multiple files (web5 output)


Stylesheets can now be linked and imported as well as embedded.


web and web5 output formats inherit html macros.


A new navigation macro can be used in web and web5 outputs to navigate through topics.


A topic-based TOC is generated when compiling to web or web5


Two new validators are now available to check whether a macro has (or doesn’t have) a certain ancestor: within and not_within.


The default stylesheets provided by Glyph are now compatible with HTML5 outputs (html5 and web5).


It is now possible to create custom tasks and commands to extend Glyph functionality.

7 Bugs Fixed

ID Description

Added HTML charset to Glyph documents (utf-8).


Moved utility functions to separate Glyph::Utils module.


Heavily restructured Glyph configuration.


Added Glyph::Macro::Helpers module to avoid code duplication in macros for different output formats.


Prevented non-rb files to be loaded as macros.


Dotfiles are now ignored by init command.


Fixed PDF book download links.

v0.3.0 – June 13th 2010

13 Features Implemented

ID Description

A new outline command is available to display the document outline.


It is now possible to use Glyph language to produce arbitrary XML code.


System settings are now stored within a system.* namespace and cannot be changed via the config: macro or the config command.


It is now possible to use named attributes within Glyph macros.


A new parser was implemented from scratch to improve performance. Treetop gem no longer required.


Some macros have been removed in favor of XML fallback, others have been updated.


The SyntaxNode class has been specialized to differentiate between macros, attributes, parameters, text and escapes.


Implemented new article macro and book macro.


A new rewrite macro has been implemented to create simple macros using just Glyph code.


A new alias macro has been implemented to create macro aliases.


A blacklist for XML tags has been exposed via the language.options.xml_blacklist setting.


The include macro can now be used in lite mode, it can evaluate ruby files and requires relative paths.


A new “safe mode” has been implemented to explicitly forbid certain potentially unsafe macros.

3 Bugs Fixed

ID Description

Performance has been dramatically improved by implementing a parser from scratch (see #119)


Macro encoding/decoding no longer necessary due to the new parser (see #119)


Warning messages have been streamlined.

v0.2.0 – May 9th 2010

11 Features Implemented

ID Description

A new highlight macro is available to highlight source code (CodeRay or UltraViolet required).


It is now possible to use Glyph programmatically via the new Glyph#filter and Glyph#compile methods.


It is now possible to define snippets inside a Glyph source file using the snippet: macro.


It is now possible to change configuration settings inside a Glyph source file using the config: macro (Jabbslad).


It is now possible to compile a single Glyph source file without creating a Glyph project.


6 new macros have been defined to allow conditional processing (condition macro, eq macro, not macro, and macro, or macro, match macro)


It is now possible to add validators to macros, for example to check the number of parameters they take.


The compile command command can now take an extra --auto switch to trigger document auto-regeneration whenever a source file is changed (koraktor).


Added a document.draft setting. If set to true, comments and TODOs are rendered in output files.


Glyph CSS files are no longer copied to new projects, but they can be referenced as if they were (see also #93).


It is now possible to define Glyph macros within Glyph source files using the macro: macro.

8 Bugs Fixed

ID Description

Warning and error messages have been updated, and it is now possible to show additional debug information. Additionally, syntax errors are now handled before the document is processed.


Default css files were not copied when creating a new project. The issue has been resolved by allowing the style macro to reference Glyph’s system styles (see also #100).


The config command did not save data to YAML configuration files. This has been fixed ensuring that internal configuration overrides are not saved to the YAML file too.


Glyph is now fully compatible with Ruby 1.9.1 and JRuby 1.4.0.


Additional tests have been developed to improve Textile support. There should no longer be errors when using textile block elements inside Glyph macros.


Fixed a bug that caused test failures when deleting the test project directory.


Nested Glyph macros calling Macro#interpret no longer ignore escape delimiters.


Added the possibility to encode (using the encode macro) and decode (using the decode macro) macros so that they can be interpreted later.

v0.1.0 – April 8th 2010

Initial release.