anchor.diff:  = WORKLOG
   
  -* use Groovy language specification as case study to find corner cases
  -  - perhaps progit2 as well; others?
  -
   == TODO
   
  +* fix labels in issue tracker to match other projects; in particular, enhancement should be green.
   * start the README with a proper introduction to Asciidoctor PDF (and not so focused on Prawn)
   * setup asciidoctor-mathoid project, then mention it in the STEM support section
   
   * QUESTION should we show keys with hyphens instead of underscores in theming guide?
   
  -* attribute or role to control table shading (all, even, odd) (or call it striped like bootstrap?) (#724)
  +* part/chapter/section start pages are calculated twice, once for each running content; should be shared
  +* SIMPLE: add note to README that Prawn will dynamically subset any fonts provided
  +* UPSTREAM: highlighting of CSS w/ rouge seems messed up; don't recognize keywords
  + ** compare with pygments
  + ** rouge also incorrectly identifies an endline in a schemaLocation attribute as an error
  +* should we drop "<font>" handler in formatted text transform?
  +* FILE ISSUE: implement text_transform key for table_header_cell (in body)
  +* implement text transform for running content (#702)
  +* FILE ISSUE: implement line number offset in source listing (rouge)
  + ** shouldn't this be fixed in core at the same time?
  +* implement line highlighting in rouge (#681)
  +* only nest outline inside of root if doctype=article (still valid?)
   * warn if image in running content can't be found (#731)
  -* FILE ISSUE: only report failure to embed image in running content once
  + ** only report failure to embed image in running content once
   * allow vertical_align to be numeric in running content
  -  - Prawn formatted_text_box doesn't support a numeric value for :valign; need to add upstream (or patch)
  + ** Prawn formatted_text_box doesn't support a numeric value for :valign; need to add upstream (or patch)
   * allow color and string template to be specified for alt text (#730)
  -* part/chapter/section start pages are calculated twice, once for each running content; should be shared
   * if image fails to load, could draw a box with an X in it to indicate it's broken
   * enable fit=scale-down (or fit=contain) for title logo image; otherwise, just let it get clipped (will require passing at option to embed_image to prevent page from advancing)
   * make section depth for section-title attribute in running content configurable (#726)
   * add ability to set watermark_image which goes on top of each (non-imported) page instead of bottom (#727)
   * AsciiDoc table cell leaves padding below last block (due to no margin collapsing)
  -* don't show table of contents if empty
   * M+ 1mn box drawings have width of 1000 instead of 500, so they don't draw box correctly (see https://github.com/prawnpdf/prawn/issues/1002)
  -  - looks like we're going to have to patch the font to draw the box lines correctly in a 500x860 space
  -  - might want to file this upstream
  + ** looks like we're going to have to patch the font to draw the box lines correctly in a 500x860 space
  + ** might want to file this upstream
   * rewrite optimize-pdf using rghost (#535) (also see #21 and #22)
  -  - prototype implemented!
  -  - add Optimizer class; wire to cli (separate issue?)
  -  - we could recommend using HexaPDF with some sample code in README, but we can't integrate it since it's AGPL
  + ** prototype implemented!
  + ** add Optimizer class; wire to cli (separate issue?)
  + ** we could recommend using HexaPDF with some sample code in README, but we can't integrate it since it's AGPL
   * QUESTION: should we defer image dimension assignments to calc_image_dimensions for raster images (similar to resize from Prawn SVG)
   * passing align to layout_heading leads to ugly code
   * we could support the big and small roles on phrase by mapping to base_font_size_large and base_font_size_small
   * allow height of inline image to be set to line height (perhaps 1em?) (#711)
  -* should we drop "<font>" handler in formatted text transform?
   * add support for file root / web requests for inline SVGs (#683)
  -  - also, disable file requests when safe mode is secure
  + ** also, disable file requests when safe mode is secure
   * FILE ISSUE: support transparent background colors (e.g, f5f5f580)
  -  - might have to switch to rgb, rgba, cmyk, cmyka instead of arrays; or 2D array?
  + ** might have to switch to rgb, rgba, cmyk, cmyka instead of arrays; or 2D array?
   * what should we set as the border color if the source highlighting theme has a background color?
   * use fdiv instead of forcing numeric to float
  -* UPSTREAM: highlighting of CSS w/ rouge seems messed up; don't recognize keywords
  -  - compare with pygments
  -  - rouge also incorrectly identifies an endline in a schemaLocation attribute as an error
   * make sure any state is cleared after conversion, including attributes assigned
  -* implement text_transform key for table_header_cell (in body)
  -* implement line number offset in source listing (rouge)
  -* implement line highlighting in rouge (#681)
   * height of listing block not calculated correctly when string of contiguous characters exceeds length of line
  -  - put listing block with very long line inside of sidebar; see that sidebar height is incorrect (too large)
  -  - is this because source highlighting is not done in scratch document?
  + ** put listing block with very long line inside of sidebar; see that sidebar height is incorrect (too large)
  + ** is this because source highlighting is not done in scratch document?
   * rework resolve_image_path API so it's more logical; override based on type of first argument; document as option
   * rename text-alignment attribute to text-align? (change is within alpha.14, so still a chance to change)
   * report cursor / bounding box bug in column_box
  
positive.code: * devise a way to specify a value as a string literal (variable replacement only) in theme
  * apply calculated theme values after loading?
  * allow "content" in place of recto_content & verso_content for running header/footer
    - still relevant after restructuring?
  * be more specific in theming guide as to where prose_margin_top and prose_margin_bottom apply
  * allow valign value to be a number (requires change to Prawn)
  * layout SVG without using keep_together (since we know all the dimensions)
    - fix SVG to a single page (check height + caption height)
  * allow background color to be set for chapter / heading
  * allow border to be set around block image
  * file issue in prawn to dispatch to image handler for images it doesn't know about
  * add brief mention in theming guide that deeper customizations can be achieved by extending the converter
    - see sandbox/asciidoctor_pdf_extensions.rb
    - reference infoq-minibook repo & blog post
    - document how to extend the converter, use Prawn
    - document how to override the Ruby code to get custom styling in the theming guide
  * is https://github.com/packetmonkey/prawn-pdfimage a safer way than prawn-templates to import PDF as image?
  * rename ThemeLoader to ThemeReader (or ThemeManager)?
  * normalize step leaves space after endline (i.e., `\n `) at a hard line break (doesn't seem to affect flow)
  * *margin per heading level* (#176)
  * need a single object to hold complete font properties; different from font family/style object
  * font method should support a single argument that's a font object or font hash
    - in general, the way font properties are set needs to be cleaned up
  * allow font size in theme to be specified in em or %
    - should multiply value being inherited
  * can't put margin top on chapter (chapter_top?) (#576)
  * convenience method to check if there's enough room for another line on page
  * allow dynamic background image with page number in path
  * running header/footer covers content (perhaps just a limitation that needs to be documented)
  * document that palette-based transparent in PNGs is not supported in older version of Prawn
  * FILE ISSUE: for prawn to preserve space (even w/ guards, spaces don't preserve over wrapped lines)
    - if this is fixed, we can remove all the guard indent code
    - we also have a problem that soft hyphens in wrapped content get dropped
  * FILE ISSUE: for prawn to support spacer fragments with fixed width / height and no text (or text is ignored in calculations)
    - needed for arranging inline objects
  * document limitations in README (such as no linear gradients in SVG, etc)
  * document all permutations of image sizing
  * set vposition on title page logo image explicitly to avoid page overrun?
  
negative.code: * we always leave cursor on start of page we're about to write on; certain checks rely on this fact
  * "section title" is the semantic element; "heading" is the structural element
  * /PageLabels/Nums must have entry for every page in front matter, even if a blank page
   ** in fact, must account for every page or else numbering lags behind when scrolling document
  * if we set the vposition on image to a numeric value, it skips the overrun check that happens internally
  * any instance variables referenced by converter methods for inline nodes could get accessed before the converter for document is called
  * Evince throws warning when printing PDF if & is used in document title; but this is valid according to the PDF specification
  * Prawn drops fragments with empty text (hence the need to use zero-width space)
   ** analyze_glyphs_for_fallback_font_support drops fragments with empty text
   ** later on, initialize_wrap drops fragment with empty text
  * use term "page number label" to refer to the visible, printed page number (not the implicit page number)
  * vertical alignment of text doesn't work properly in Prawn; better to calculate alignment manually, if possible
  
  