Hieroglyph 0.5
During the last week of 2012 I pushed out a new release of Hieroglyph. I realized later that I haven’t really been talking about it here, so I wanted to mention some of the new features and functionality I’ve been working on. When I published the 0.3 release, I said I was planning to work on hooking analytics into the slide viewing so that creators could get a better sense of how their slide decks were being used. I have done some work to that end, but would up getting side tracking.
The 0.4 release consisted primarily of internal cleanups in preparation for
adding analytics support. There were some places where the Javascript or styles
were duplicated, so I put some effort into cleaning that up. I also split up the
Javascript to separate slide control from user interaction. This was done to
support both analytics and the initial implementation of the Presenter’s
Console: a separate window that displays the previous, current, and next slides,
and allows the presenter to control the primary display window. With
Hieroglyph 0.4 and later you can open by pressing c
within a slide
document.
Hieroglyph 0.4 also added support for slide numbering and for applying a theme
to individual documents inside of a project using the slideconf
direction. For
example:
.. slideconf::
:theme: single-level
In December I put together some training for other engineers at Eventbrite
around Python byte and unicode strings, and how to safely work with them both in
our codebase. While I was putting that together, I realized that there was a lot
of text and code samples in the documentation that I wanted to go through
interactively, and not include in slides. I wound up going without slides, and
found that presenting from the Python interactive interpreter was very effective
for this sort of hands on training. That said, it would have been nice to have
had a few key slides: an introduction, a summary of key points, and maybe where
to go next. That’s the sort of content I’d like to keep with the main document
so it doesn’t drift too far out of sync, but Hieroglyph didn’t really support
that approach: it assumed that you wanted to generate a slide per section,
unless you explicitly marked things as notslides
.
Hieroglyph 0.5 adds a couple of features to support these different work modes.
First, it adds an autoslides
configuration parameter, that allows you to
disable automatic slide generation of a project or document level. If
autoslides
is True
(the default), you’ll see the previous Hieroglyph
behavior, one slide per section. If it’s set to False
, you’ll need to write
slides using the second new feature, the slide
directive.
The slide directive describes a single slide, including the title, level (which may be used for styling), and content. An example from the Hieroglyph smoketest document:
.. slide:: The ``slide`` Directive
:level: 2
In addition to headings, you can use the ``..slide::`` directive to
define a slide.
Because the conditional slides
directive differed by only one letter,
Hieroglyph 0.5 also renamed the conditional directives to ifslides
and
ifnotslides
. The previous names will continue to work (at least for a couple
releases), but I’m using the new names myself to make it easier to understand
what’s going on.
Thanks to bug reports filed in the Hieroglyph github project, the 0.5 release also includes fixes for styling nested lists and compatibility with the latex-pdf builder.
At this point Hieroglyph seems to be working pretty well for me and others. There are a few things I’d like to add yet, but for the next couple of months my focus is going to be more on using it rather than developing it. I’m working on more training for new engineers at Eventbrite, and I’ll be giving a tutorial of Effective Django at PyCon this year. I think both of those are going to be good opportunities use Hieroglyph in different contexts and hopefully get some more data on what’s working or not. If you’re using it (or just trying it out) and have comments or feedback, filing a bug is something I find really helpful.