= WORKLOG

== TODO

* change has_role? to role?
* use empty string in place of nil in interpolated strings (few more still to check)
* add epub3width (or epubwidth) as alternative to scaledwidth for images
* only use the inverted sizes for chapter title if publication-type is not book
* use overflow-wrap consistently
* use same logic for chapter title in document header as in TOC (level-1 section title should not be detected)
* don't add image from front matter if already referenced by chapter
* add document filename to warn messages (added for some)
* allow front-matter.xhtml
* reorder sections in README; needs to flow a bit better...Getting Started is too large & after Structuring your Manuscript
* link to https://medium.com/@sandersk/responsive-ebook-design-a-primer-8bba01328219 in style section in README
* only uppercase document title if detected in CSS
* document more clearly how to provide your own CSS
 ** currently it's not possible to override the epub3-fonts.css (though it should be)
* cleanup this sanitize XML stuff; move to Asciidoctor::Helpers?
 ** also need an upcase_pcdata
* allow role to be applied to chapter (which means the role must be on the document)
* should we enable hyphens in non-Kindle?
 ** we can reenable once we confirm it doesn't crash Kindle for Mac
* part vs chapter? a difference?

* create a video to demonstrate Google Play Books read aloud reading complete sentences in books generated with Asciidoctor EPUB3

.Gem
* Add step in `rake release` to set version back to *.dev

//^
.Converter
* CRITICAL: put e-book reader class on html instead of body
* CRITICAL: surround prose in <span> (e.g., simple <dd>) which is not nested in <p> or <div> so iBooks can change the font
* CRITICAL: don't drop subsequent paragraphs of preamble when abstract is found...need to pass them through
* CRITICAL: try to pull username from author email field; pull avatar from gravatar
* HIGH: revisit the headshot image logic
* HIGH: promote regexps to constants
* HIGH: put shy marks after dashes to allow wrapping to occur in text justification
* MEDIUM: Kindle links to cover page when clicking on first chapter instead of first chapter page
* MEDIUM: add icon & icon placement as attributes on btn macro
* MEDIUM: move client sniffer JavaScript to file and read/include from converter
* MEDIUM: use the dfn element for defining a definition of a term (not just term class); see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dfn
* MEDIUM: create back link in bibliography entry for each reference to it (currently only the first)
* implement checklists

//^
.Packager
* HIGH: add NOTICE.adoc to e-book archive
* HIGH: minimize CSS (and any other assets worth minimizing)
* MEDIUM: add JavaScript to nav.xhtml to add class for epubReadingSystem to body
* MEDIUM: option to add nav.xhtml to navigation flow?
* support subtitle as separate from main title in package metadata
* support collection title in package metadata

.Fonts
* recreate ellipses in M+ 1p to be on baseline

.Stylesheet
* CRITICAL: padding around code in formal listing blocks
* CRITICAL: check style of level 5 and 6 headings (see Groovy docs)
* CRITICAL: use CSS3 filter scheme that allows admonitions to appear correctly on Google Play Books
 ** see if Google Play books supports JavaScript and epubReadingSystem (no, but adds its own class to body)
* CRITICAL: use a following sibling selector for :first-line in abstract so it works when page is partitioned (e.g., in Google Play Books)
* CRITICAL: add support for different numbering systems (lowergreek, etc)
* HIGH: should we restore font size of embed table cell?

 table.table div.embed > *:not(p) { font-size: 1.25em; }

* HIGH: don't set text color so light on monochrome devices (use media query to detect) (#67)
* HIGH: make justify-text a class on body that can be controlled from AsciiDoc attribute
* HIGH: image border option (or add drop shadow to screenshots in README)
* HIGH: review the table border color
* HIGH: style example block
* HIGH: allow theme to be customized using stylesheet attribute
* MEDIUM: headshot has too much top margin when at top of page (not below section title)
* MEDIUM: namo pubtree is justifying preformatted blocks (still true?)
* support both jpg and png avatars
* add docinfo support
* add navigation links in meta, e.g.,

  <link rel="up" href="#{node.attr 'up-uri'}" title="#{node.attr 'up-title'}"/>
  <link rel="prev" href="#{node.attr 'prev-uri'}" title="#{node.attr 'prev-title'}"/>
  <link rel="next" href="#{node.attr 'next-uri'}" title="#{node.attr 'next-title'}"/>

* add title/subtitle delimiter into HTML and hide with CSS?
* use less side padding in sidebar?
* can we remove content wrapper in sidebar?
* manually style ordered list numbers
* reduce vertical margins around basic lists (partially addressed via "brief" class)
* use float trick to fix line spacing for primary title like with the subtitle
* better handling of title without subtitle, particularly HTML and CSS
* add pink theme: http://designplus.co/en/designplus

//^
.Samples
* add example of itemized dlist

//^
.CLI
* augment Asciidoctor::Cli::Options with --validate and --extract options, pass on as attributes

//^
.Asciidoctor
* patch sanitize of any section or block title into Asciidoctor
* generate id for chapter <= make part of Asciidoctor parsing API
* patch Asciidoctor to replace smart quotes w/ unicode chars instead of entities (glyph replacement mode)

//^
== REVIEW

* how custom CSS is specified

== NOTES

* content must be XHTML (not HTML) (this will change in EPUB 3.1)
* Aldiko uses the image on the cover page (or a screenshot of the cover page) as the image in the bookshelf
* use -webkit-transform: translate/translateX/translateY to move objects from origin by relative distances (alternative to relative positioning, which is not permitted on Kindle)
* don't need attributes above header in sub-documents anymore (except for PDF; we'll cross that bridge when we get to it)
* vw is 1% of viewport width (see http://dev.opera.com/articles/view/css-viewport-units/)
* rhythm: 1.5, 1.25, 1.2, 1.05, 1
* webkit gets confused about how to justify text for mixed content (adjacent character data and inline elements)
  - wrap character data to solve
  - alternatively, can use zero-width space (&#8203;) immediately after inline element to signal a separation
* Kindle won't accept fonts that are less than 1K (typically can't create a font with just one or two characters)
* Control+Shift+u to type in a unicode sequent, then press enter to accept
* Calibre gets confused when there are local fonts that closely match font in stylesheet, uses them over embedded styles (in particular M+ weights)
* iBooks info: http://authoradventures.blogspot.com/2013/08/ibooks-tutorial-update-version-30.html
* selector for all prose text (including symbols)

 body p, ul, ol, li, dl, dt, dd, figcaption, caption, footer,
 table.table th, table.table td, div.verse .attribution {}

* selector for prose sentences / phrases

 body p, li, dd, figcaption, caption, th, td, blockquote > footer {}
