Blob Blame History Raw
2017-12-13  David Tardon  <dtardon@redhat.com>  [593447a1a855a6470dc0d7c5e8d8d60a55c1e693]

	WaE: remove unused function


2017-12-13  David Tardon  <dtardon@redhat.com>  [f4514f4ad225b87a8ded9b7ff965568eb7827fe6]

	prepare for a release


2017-12-01  Miklos Vajna  <vmiklos@collabora.co.uk>  [99f0e7ec6fbaef4ff71d51e3ff700e3038f88748]

	Move EPUBSplitMethod from the generator constructors

	To a case of setOption(). Also check for version >= 30, and not for ==
	30, so e.g. 31 defaults to 30 and not 20 (in an else branch).

2017-12-01  Miklos Vajna  <vmiklos@collabora.co.uk>  [75c4fb3bb96c6e6777a4dc6e6b035b494daa9116]

	EPUBTextGenerator: setOptions() -> setOption() to keep it simple


2017-12-01  Miklos Vajna  <vmiklos@collabora.co.uk>  [2ecb8443af7769df0764f41a4b23af9ba6d22c98]

	EPUBTextGenerator: default to EPUB3

	The next release will be an API-breaking one anyway.

2017-12-01  Miklos Vajna  <vmiklos@collabora.co.uk>  [f9386051137c0f20bb5b0558262a6020636a8518]

	NEWS: prepare for a release


2017-12-01  Miklos Vajna  <vmiklos@collabora.co.uk>  [35407d886084160415c6e96416d71a02804a16ca]

	EPUBTextGenerator: replace set*Method() with setOptions()

	These were not in a release yet, so cheap to remove. OTOH adding a
	generic function allows addition of further options without an ABI break
	in the future.

2017-12-01  Miklos Vajna  <vmiklos@collabora.co.uk>  [fce595008f94e91d18448275dc3c2d6370eec5c7]

	Fixed layout: spine items are pages, not sections


2017-11-30  Miklos Vajna  <vmiklos@collabora.co.uk>  [88b9d9a1efb9b064ea99c57ec273f76712d361ff]

	EPUBTextGenerator: allow a single image on a page


2017-11-29  Miklos Vajna  <vmiklos@collabora.co.uk>  [d9921c47befa3eabcfc916e26e273667232be637]

	EPUBTextGenerator: page-break=auto is not a page break


2017-11-29  Miklos Vajna  <vmiklos@collabora.co.uk>  [38aa728708641942371507b975193f0ab60f0b50]

	EPUBGenerator: fixed layout implies split on page break


2017-11-28  Miklos Vajna  <vmiklos@collabora.co.uk>  [bd49e1672d0e914736824dadc8f89c26ae955088]

	[ABI CHANGE] optionally support the EPUB3 fixed layout

	Default is still the reflowable method, of course.

2017-11-24  Miklos Vajna  <vmiklos@collabora.co.uk>  [6e094bbe9fd8c1784ef3c348d04e2add8b48fc67]

	EPUBHTMLGenerator: support image popup for text

	And also make sure that the popup anchor is not superscript.

2017-11-24  Miklos Vajna  <vmiklos@collabora.co.uk>  [bc80bf98172e8e0f8c803dec0b8e74e233ac482e]

	EPUBHTMLGenerator: support image popup for images

	If the user of the lib uses the librevenge:mime-type and
	office:binary-data keys (instead of xlink:href) for a link around an
	image, then open that image in a popup (using the footnote markup).

	The usual assumption is that the footnote anchor is trivial (just a
	string) and the content is complex, but here the situation is the
	opposite: the anchor can be something complex, OTOH the footnote content
	is always a single inline image -- this requires the new
	closeAnchor mode when adding the footnote label.

2017-11-24  Miklos Vajna  <vmiklos@collabora.co.uk>  [cdf53305d151cf177257821b21cd9895321a86e5]

	EPUBTextSink: remove this, dead code

	< vmiklos> dtardon: is EPUBTextSink dead code?
	<@dtardon> vmiklos, i don't remember :-(

2017-11-24  Miklos Vajna  <vmiklos@collabora.co.uk>  [a8444b113df52769849ad45ea440def8d1884b15]

	EPUBHTMLGenerator: implement custom footnote anchor text

	Try to avoid our default F<N> anchor text if possible, which only makes
	sense in English.

2017-11-24  Miklos Vajna  <vmiklos@collabora.co.uk>  [502948041df07729572bf4f2b222e03073baa6c8]

	EPUBHTMLGenerator: implement EPUB3 footnote markup

	The main difference is that in the EPUB3 case the footnote has an
	explicit end.

2017-11-23  Miklos Vajna  <vmiklos@collabora.co.uk>  [9c723bbe42673906d8d0faf5083a186cf86d05ce]

	EPUBHTMLGenerator: avoid <title> in EPUB3 XHTML content documents

	- there were multiple of them, which is invalid
	- just don't write them, content.opf has the same info

2017-11-23  Miklos Vajna  <vmiklos@collabora.co.uk>  [8c447caee18b4400170ecce36ea3714fdc377989]

	EPUBHTMLGenerator: fix footnotes/endnotes/comments

	There were two problems here:

	- when working with two sinks (footnote and main), make sure that we
	  save the main one before the push of the sink stack

	- when handing out a non-const xml sink reference, make sure there is no
	  parallel empty bool that tracks its size, otherwise these can out of
	  sync (empty is still true, even if there is footnote content)

2017-11-21  Miklos Vajna  <vmiklos@collabora.co.uk>  [631b21834883aa8f2ee83a20717dd37900331696]

	EPUBGenerator: allow overwriting dc:identifier default

	All other types had a way to be overwritten.

2017-11-17  Miklos Vajna  <vmiklos@collabora.co.uk>  [0d06b60d45b3e1465976eb027c3fde31fccdc025]

	EPUBGenerator: add support for cover image metadata

	The librevenge:cover-images key can't have a property list as a value,
	so go with a list of cover images, though in practice more than one
	won't result in a valid EPUB3 file.

2017-11-16  Miklos Vajna  <vmiklos@collabora.co.uk>  [889add1be67b8ddcd93c9dd306f2b73275ead5a0]

	EPUBFontManager: map ODF mime type to EPUB mime type


2017-11-16  David Tardon  <dtardon@redhat.com>  [73f5e40c90c32f8a48fef037558146a126cdab3a]

	WaE: suggest braces around empty body in an 'if' statement


2017-11-15  Miklos Vajna  <vmiklos@collabora.co.uk>  [9e571ba79d782d3e780f657c745b0447d45e51e6]

	EPUBFontManager: fold this into EPUBImageManager

	After all it's a small class, sounds like it is not worth having that
	much boilerplate for it.

2017-11-15  Miklos Vajna  <vmiklos@collabora.co.uk>  [ee5201290e8160c28fca45ebb79acad1d1ee705a]

	Add a font manager for initial embedded font support

	The epubcheck validator insists on opentype as for the format of the
	font, but as far as I see at least Calibre is happy with the same data
	as it's in ODF already, so no need to do any heavy font conversion.

2017-11-10  Miklos Vajna  <vmiklos@collabora.co.uk>  [3da66e7b1fbda75e43b3ab63502d66097f39ef7a]

	EPUBImageManager: handle text box wrap types

	By sharing the image and textbox wrap code.

2017-11-10  Miklos Vajna  <vmiklos@collabora.co.uk>  [da840df8eaacfcfbd93d82751a774371d7e5c9b9]

	EPUBHTMLGenerator: avoid wrap type for as-char anchored images


2017-11-10  Miklos Vajna  <vmiklos@collabora.co.uk>  [40111db25a92537c922a768dd04916cb5edd0239]

	EPUBHTMLGenerator: map TextBox to <div>

	This way e.g. image with caption is no longer lost from the text
	generator. This generalizes image and textbox styles as "frame" styles.

2017-11-10  Miklos Vajna  <vmiklos@collabora.co.uk>  [3d47458738729c86992a1ed0002726cba5ec315c]

	EPUBImageManager: initial wrap type handling

	You could assume that the wrap is the opposide of clear, but given it's
	an attribute on the next element, they are the same at the end in case
	of left and right.

2017-11-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [0f5073481b094562f2c78481475a660fb6826cdb]

	EPUBImageManager: initial horizontal positioning

	For now position everything to the left, except for explicit "right".

2017-11-08  Miklos Vajna  <vmiklos@collabora.co.uk>  [094db625e36b91b57e152296a1f7db1bdcc682c5]

	EPUBHTMLGenerator: add missing rel attribute for CSS reference

	Turns out a number of readers (checked Calibre and Aldiko on Android) do
	support taking formatting from an external CSS, but only in case this
	attribute is present.

2017-11-08  Miklos Vajna  <vmiklos@collabora.co.uk>  [801367ee905aa70bb2ba2ad5b8257cd2a25bed9b]

	EPUBImageManager: add support for borders

	The properties are on the frame, but the inner binary object emits the
	"img" element that has the properties in XHTML. Solve this by
	maintaining a stack of currently opened frames, with their properties.

2017-11-06  Miklos Vajna  <vmiklos@collabora.co.uk>  [d5bd8c9078eeb63769ff1807be1a9571430eaed1]

	EPUBTableStyleManager: handle table props

	Other than column properties. Only width and relative width for now.

2017-11-03  Miklos Vajna  <vmiklos@collabora.co.uk>  [20930e2d8151fd2ec44feb9cdb8ca502df99365f]

	EPUBTableStyleManager: handle style:rel-column-width col prop

	Previously only fixed width was supported, but relative width works
	better for reflowable formats and ODF has markup to express this.

2017-11-03  Miklos Vajna  <vmiklos@collabora.co.uk>  [85fe982b2ad158f6e050c15e4a59d51d863cc28d]

	columWidths -> columnWidths


2017-11-03  Miklos Vajna  <vmiklos@collabora.co.uk>  [45bf16a8b384010814148538d86ee584b9295c7a]

	Witdh -> Width


2017-11-02  Miklos Vajna  <vmiklos@collabora.co.uk>  [6c8e86ccebb11df7ece32d10da2894c6698c5515]

	EPUBTableStyleManager: witdh -> width


2017-10-31  Miklos Vajna  <vmiklos@collabora.co.uk>  [258dcc4a98405238f4e32f89d122a7ccbb9a1357]

	EPUBTableStyleManager: handle EPUB_STYLES_METHOD_INLINE for cells

	So that a typical table has an empty CSS when requested.

2017-10-31  Miklos Vajna  <vmiklos@collabora.co.uk>  [c5e32608ecea8410b11760284d49e1f1958c6f75]

	EPUBTableStyleManager: handle EPUB_STYLES_METHOD_INLINE for rows

	This was working for paragraphs and spans only previously.

2017-10-31  Miklos Vajna  <vmiklos@collabora.co.uk>  [f3a04df200d818b4aaa9d54910b670cd6cf3149f]

	EPUBHTMLGenerator: librevenge:type -> xlink:type

	That's what libetonyek and LO's librevenge producer generates, also
	matches librevenge documentation. This isn't really a behavior change,
	just makes the warning go away in the xlink case.

2017-10-31  Fridrich Štrba  <fridrich.strba@bluewin.ch>  [2c6375ab025f61e8412b6e63998a7b89084d09f4]

	doxygen -u


2017-10-26  Miklos Vajna  <vmiklos@collabora.co.uk>  [2349199cc17a989ec2491245f446241dbfc30c50]

	Use auto when declaring iterators and when initializing with a cast


2017-10-18  Miklos Vajna  <vmiklos@collabora.co.uk>  [c5bb9ad8922c9f537f0d613d42c33487717455c3]

	EPUBHTMLGenerator: better handling of tabs

	Mapping ODF/librevenge tab to \t in HTML is not a great idea, as it's
	ignorable whitespace. Go with NBSPs and a breakable space instead, that
	is much closer visually (15 is just an arbitrary number, it's what MS
	Word uses in its HTML export, LO Writer HTML export doesn't handle
	this).

	Adapt the empty paragraph case to also use NBSP for consistency.

2017-10-18  Miklos Vajna  <vmiklos@collabora.co.uk>  [8166fc972e3d4b930ad0baab164f99b3c717252e]

	EPUBTextGenerator: handle headings inside sections

	On one hand, we don't want to split inside a section as there might be
	elements we need to close/open at split boundary, OTOH this is currently
	not a problem as we don't produce any output for sections.

	So remove the level management for sections (this way allowing headings
	to split inside sections), let's get back to this when there is a
	concept how e.g. multiple columns would be represented in EPUB.

	Use case is when sections are used to just group paragraph together and
	mark all of them read-only: in this case it's unexpected that headings
	are handled differently to not-in-section ones.

2017-10-17  Miklos Vajna  <vmiklos@collabora.co.uk>  [383f315b067e9fc1aa840913c581e7451949c2db]

	EPUBHTMLGenerator: better handling of empty paragraphs

	The ODF/librevenge concept is that empty paragraphs still take their
	vertical space, i.e. inserting lots of them is a (poor) equivalent of a
	page break.

	HTML collapses empty paragraphs by default, so empty paragraphs need
	some content to preserve this effect. Do the same trick what LibreOffice
	Writer does: if the text has no content, add a <br/> element inside the
	paragraph.

2017-10-17  Miklos Vajna  <vmiklos@collabora.co.uk>  [4f46bc715a5fc8a0e13bb1596f6f5dbb55ca0632]

	EPUBSpanStyleManager: ignore underline type/style 'none'

	This is similar to commit 7be89d1881e175182039ca93a1546d79933cab85
	(EPUBSpanStyleManager: ignore line though type/style 'none',
	2017-09-11).

2017-09-18  Miklos Vajna  <vmiklos@collabora.co.uk>  [d8ee84ff50a6113f49105a70f946b23acfa2566f]

	[ABI CHANGE] optionally support not writing formatting to CSS files

	This should help a number of poor readers, which don't support the old
	method. Examples:

	- Sigil
	- Readium
	- Moon+ reader
	- Calibre
	- MS Edge

2017-09-11  Miklos Vajna  <vmiklos@collabora.co.uk>  [7be89d1881e175182039ca93a1546d79933cab85]

	EPUBSpanStyleManager: ignore line though type/style 'none'

	In CSS this is a boolean property, but in ODF it's an enum, so map none
	to false and everything else to true.

2017-09-08  Miklos Vajna  <vmiklos@collabora.co.uk>  [7cf3c6541a61f9d74cd51fb2a01344df783cb26d]

	EPUBTextGenerator: ignore invalid media types

	This assumes there is no image type that is valid in EPUB2, but not in
	EPUB3.

2017-09-08  Miklos Vajna  <vmiklos@collabora.co.uk>  [bce7c05a18a4c5089d5ac77bc61b9f6978e7224b]

	EPUBHTMLGenerator: write un-escaped NBSP

	Package implementations are supposed to take care of escaping, like it
	was already a requirement for normal text.

2017-09-04  Miklos Vajna  <vmiklos@collabora.co.uk>  [7e3b5186616326534b1ae95c6d2d188c5e522c7f]

	EPUBGenerator: always write author and title

	Some EPUB3 readers categorize books by author and then title, so if
	these are empty, then it's next to impossible to reach the export result
	there.

2017-08-25  Miklos Vajna  <vmiklos@collabora.co.uk>  [143a470f190aaf2f420d2f84b5f08e9b01b40473]

	Export generator


2017-08-25  Miklos Vajna  <vmiklos@collabora.co.uk>  [e012273d304e5f70b96e53712239efabdacdb065]

	EPUBTextGeneratorTest: clean up unintentional Hungarian notation


2017-08-24  Miklos Vajna  <vmiklos@collabora.co.uk>  [28e5e30c20aba54dff6505df4c03d6a3da0ee0f3]

	EPUBHTMLGenerator: sanitize URLs a bit in openLink()

	epubcheck warns on this:

		WARNING(RSC-023): large.epub/OEBPS/sections/section0018.xhtml(2,5171): The URL 'https:///www.fsf.org' is missing 1 slash(es) '/' after the protocol 'https:'

2017-08-24  Miklos Vajna  <vmiklos@collabora.co.uk>  [89ae3e392890b9360d271f1c1796cb27e36be26f]

	EPUBTextGenerator: empty mime type is the same as no mime type

	epubcheck says:

		ERROR(RSC-005): image.epub/OEBPS/content.opf(11,69): Error while parsing file: value of attribute "media-type" is invalid; must be a string matching the regular expression "[a-zA-Z0-9!#$&+\-\^_]+/[a-zA-Z0-9!#$&+\-\^_]+.*"

2017-08-23  Miklos Vajna  <vmiklos@collabora.co.uk>  [f23707df299cb91643a8af6877596a35bd3e6850]

	Add EPUB_SPLIT_METHOD_PAGE_BREAK testcase

	Fails with commit 39470cf360cfc67f2dd078646162a63168a84c05
	(EPUBSplitGuard: fix tracking current size, 2017-08-15) reverted.

2017-08-22  Miklos Vajna  <vmiklos@collabora.co.uk>  [12a583e980cf97ee4fa82650ec77a8278074c256]

	EPUBHTMLGenerator image validation fix testcase

	Fails with the previous commit reverted.

2017-08-22  Miklos Vajna  <vmiklos@collabora.co.uk>  [1376b91046ad50f3a443b6fd4887252c1922870c]

	EPUBHTMLGenerator: fix validation problem with non-page anchored images

	In most cases (except for at-page anchored images) there is a paragraph
	already opened, and writing <p> inside <span> results in a validation
	error.

	So just write <p> in case we're not in paragraph already.

2017-08-22  Miklos Vajna  <vmiklos@collabora.co.uk>  [2a0a1086fa782c478ba5babccc9b4663f4b658ae]

	First chapter name special handling testcase

	Fails with the previous commit.

2017-08-22  Miklos Vajna  <vmiklos@collabora.co.uk>  [a4e85e191813e7c8f4e6b5bcf2458504f9d06aeb]

	EPUB_SPLIT_METHOD_HEADING: fix unexpected first chapter name

	If the structure of the document is like this:

	 Heading 2
	Heading 1
	 Heading 2
	Heading 1
	 Heading 2

	Then this resulted in 3 chapters: Section 1, Heading 1 and Heading 1.
	The first one is unexpected; so in case we don't have a heading 1
	paragraph for the first section, then fall back to any other heading.

2017-08-17  Miklos Vajna  <vmiklos@collabora.co.uk>  [00d151dec482192b20729cc369f2a99fc1ce713e]

	Add chapter names testcase

	Fails with the previous commit reverted.

2017-08-17  Miklos Vajna  <vmiklos@collabora.co.uk>  [8a3cc9733f567864ad0658cf1a25c60d5e7205a6]

	EPUB_SPLIT_METHOD_HEADING: fix unexpected text in chapter names

	We used to add text for all headings for the chapter name, but if we
	split on heading 1, then text of heading2+ should not be included.

2017-08-16  Miklos Vajna  <vmiklos@collabora.co.uk>  [576c2472e384ea1a71739b15f42561cd34de5bba]

	EPUB_SPLIT_METHOD_HEADING: try to use real chapter names, not Section N

	What users call "chapter title" is the text of a paragraph with an
	outline level set.

	To keep this simple just handle the text after opening such a paragraph,
	but no other paragraph is opened, i.e. assume that in:

	<para outline=y>A<para outline=n>B</para>C</para>

	only A is interesting, but not B, neither C. (Which could happen with an
	at-character anchored frame inside a heading text e.g.)

2017-08-15  Miklos Vajna  <vmiklos@collabora.co.uk>  [3155cb6164f04fa8170dd9912c579ad90586c8a8]

	EPUBTextGenerator: handle EPUB_SPLIT_METHOD_HEADING

	It seems to me this was unimplemented so far.

2017-08-15  Miklos Vajna  <vmiklos@collabora.co.uk>  [39470cf360cfc67f2dd078646162a63168a84c05]

	EPUBSplitGuard: fix tracking current size

	In case incrementing size and split affects the reference size, the
	current size won't be ever greather than zero in
	EPUBSplitGuard::canSplit(), and it will always return false.

	With this, EPUB_SPLIT_METHOD_PAGE_BREAK works again.

2017-08-11  Miklos Vajna  <vmiklos@collabora.co.uk>  [c28f02f21a6d80ad258cf8f052705508567e2418]

	Fix image mime-type key

	libepubgen expected librevenge:mimetype, but:

	1) LO's ODF output has loext:mime-type
	2) libabw generates librevenge:mime-type
	3) libodfgen expects librevenge:mime-type

	So probably this one has to be adjusted.

2017-08-11  Miklos Vajna  <vmiklos@collabora.co.uk>  [c8cba54a7025ee0f1129233912f6e9ceda254c64]

	EPUB3: fix validation error with doc modified date format

	ERROR(RSC-005): test.epub/OEBPS/content.opf(2,420): Error while parsing file: dcterms:modified illegal syntax (expecting: 'CCYY-MM-DDThh:mm:ssZ')

	Both of them looked like XML date formats, but actually librevenge is
	more precise, so truncate it.

2017-08-11  Miklos Vajna  <vmiklos@collabora.co.uk>  [14da42819f1f96b87b2337da395e5ad6639dcebe]

	EPUBGenerator: write language and modification date into content.opf

	With this, all metadata which had a hardcoded value is now parsed and
	the old values are just defaults.

2017-08-11  Miklos Vajna  <vmiklos@collabora.co.uk>  [d855721de6b4e55fb0b2a02a6a1132802dba5f63]

	EPUBGenerator: write title into content.opf


2017-08-11  Miklos Vajna  <vmiklos@collabora.co.uk>  [c30bc184c18837203e9f249386711e9cd616c9f0]

	EPUB3: write the deprecated NCX navication as well

	<http://www.idpf.org/epub/30/spec/epub30-changes.html#sec-new-changed-nav>
	"3.2 Navigation" says:

		EPUB 3 Publications may include the EPUB 2 NCX for EPUB 2 Reading System
		forward compatibility purposes.

2017-08-10  Miklos Vajna  <vmiklos@collabora.co.uk>  [2e9e9af9f49a78cca75d3c862c8dd4b5f7cc7eb2]

	Use .xhtml for XHTML content

	The EPUB3 validator warns:

	WARNING(HTM-014a): test30.epub/OEBPS/content.opf(2,718): XHTML Content Document file name 'OEBPS/sections/section0001.html' should have the extension '.xhtml'.

	And it does not hurt for EPUB2, either.

2017-08-10  Miklos Vajna  <vmiklos@collabora.co.uk>  [28090aa5d57162302122686cb020d4bf2231cab4]

	EPUB3: implement navigation document

	As
	<http://www.idpf.org/epub/30/spec/epub30-changes.html#sec-new-changed-nav>
	says, EPUB 3 defines a new grammar for navigation based on XHTML, which
	replaces the old NCX grammar -- so use that in EPUB3 mode.

	With this, a hello world input in EPUB3 mode results in 0 errors in the
	validator.

2017-08-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [575a09f637b5afe4d61387c7be3c8b2b67039ccb]

	EPUB3: add missing nav property on first HTML stream

	ERROR(RSC-005): test30.epub/OEBPS/content.opf(2,459): Error while parsing file: Exactly one manifest item must declare the 'nav' property (number of 'nav' items: 0).

	This is the last error in OEBPS/content.opf in case of EPUB3.

2017-08-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [cfd57f50c9d33781f90018d40902ccce68a13a5c]

	EPUB3: write missing modification date

	ERROR(RSC-005): test.epub/OEBPS/content.opf(2,236): Error while parsing file: package dcterms:modified meta element must occur exactly once

	But not for EPUB2, which doesn't allow so.

	(Similar story as with dc:title: later commit should read the this
	optional info from librevenge.)

2017-08-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [862ec6735c25760edadf05d83717daaf65f39f99]

	[ABI CHANGE] optionally support generating EPUB3 output

	Versions are 20 and 30 to be consistent with
	<https://github.com/idpf/epubcheck/tree/master/src/main/resources/com/adobe/epubcheck/schema/>.

2017-08-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [a4585b8f35c76472eb91688c9177b9f532c290d8]

	EPUBGenerator: avoid empty dc:language element

	Same story as with dc:title:

	ERROR(RSC-005): test.epub/OEBPS/content.opf(2,362): Error while parsing file: character content of element "dc:language" invalid; must be an RFC 3066 language identifier

	(This is a warning for EPUB2, but it'll be an error for EPUB3; this is optional
	for ODF; later commit should read the this info, though.)

2017-08-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [aa71784fcee0404c2f136f035887ca4c52d0e756]

	EPUBGenerator: avoid empty dc:title element

	This is a warning for EPUB2, but it'll be an error for EPUB3:

	ERROR(RSC-005): test.epub/OEBPS/content.opf(2,337): Error while parsing file: character content of element "dc:title" invalid; must be a string with length at least 1 (actual length was 0)

	The problem is that for ODF/librevenge this element is optional, so work
	it around by adding a zero-width space.

	A later commit should read the optional title of declared with a
	librevenge API call, though.

2017-08-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [8ca1fe2b9db9bacd6e868e69a0909a441fb6a7f8]

	EPUBGenerator: avoid opf:scheme attribute when writing the UUID

	This will be an error for EPUB3:

	ERROR(RSC-005): test.epub/OEBPS/content.opf(2,292): Error while parsing file: found attribute "opf:scheme", but no attributes allowed here

	But it's optional for EPUB2 already.

2017-08-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [17b4d0a2b595d1504f3d957268e2085ae0f80db7]

	EPUBGenerator: avoid container version roundtrip to double

	This will be an error for EPUB3:

	ERROR(RSC-005): test.epub/META-INF/container.xml(2,85): Error while parsing file: value of attribute "version" is invalid; must be equal to "1.0"

	But it does not hurt for EPUB2, either.

2017-08-09  Miklos Vajna  <vmiklos@collabora.co.uk>  [8b43a3c1db56f11f661726476f4893ff0f974c7d]

	EPUBGenerator: add missing include

	This broke the MSVC build.

2017-08-08  Miklos Vajna  <vmiklos@collabora.co.uk>  [9041ef42f9e0a5c4bc3b0a912d36683c4e10ca84]

	EPUBHTMLManager: fix value of <navPoint playOrder"...">

	<http://www.niso.org/workrooms/daisy/Z39-86-2005.html#NCXplay> "8.4.3
	playOrder Attribute" says:

		playOrder is a positive integer; the first playOrder value in a document
		shall be 1.

	So instead of writing an empty attribute, write the same number that's
	already used for <navPoint id="...">.

2017-08-08  Miklos Vajna  <vmiklos@collabora.co.uk>  [2e51fb9163bbc6b9a27fa524382c5aad9700dd0d]

	EPUBGenerator: don't write empty guide element

	<http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.6> "2.6:
	Guide" requires:

		Within the package there may be one guide element, containing one or
		more reference elements.

	Given that we never wrote reference child-elements, just don't write the
	guide element at all, especially seeing that it's deprecated in OPF3.

2017-08-08  Miklos Vajna  <vmiklos@collabora.co.uk>  [96e9786f5aba1078251f36e58feefc8d953cdea0]

	EPUBGenerator: fix validation error with empty dc:identifier element

	<http://www.idpf.org/epub/31/spec/epub-packages.html#sec-opf-dcidentifier>
	"3.4.3.2.1 The identifier Element" says that the character content is
	not optional, so write it.

2017-08-03  Miklos Vajna  <vmiklos@collabora.co.uk>  [a027c71d1c1d18e9fc0bc223c84203b0f480fbc3]

	EPUBPackage: document insertCharacters vs insertText difference


2017-08-02  Miklos Vajna  <vmiklos@collabora.co.uk>  [49f6461d4751d3b16e32ab8f9c93a3856b33be49]

	m4: MSVC defines __cplusplus as 199711L still

	See e.g.
	<https://stackoverflow.com/questions/37503029/cplusplus-is-equal-to-199711-in-msvc-does-it-support-c11>,
	on MSVC we can't depend on the value of __cplusplus, since that one is a
	too low value, even if everything else works fine.

2017-08-02  David Tardon  <dtardon@redhat.com>  [28b77fcf685e3c7a246297063273303ef4c87efb]

	BUILD_EXTRA_DIST does not exist


2017-08-02  David Tardon  <dtardon@redhat.com>  [e53039f89ccf49e3927d415a6e837e1de807dd4b]

	these files are distributed automatically


2017-08-02  David Tardon  <dtardon@redhat.com>  [e4fef18225f89b68077d6fad7a6dd6385d71ec73]

	prepare for a release


2017-08-02  David Tardon  <dtardon@redhat.com>  [a215111cbdd64c1c870cfd7b558eb9fad7733ee9]

	look for macros in m4/


2017-07-18  Miklos Vajna  <vmiklos@collabora.co.uk>  [fe5fb9ebe9714e5a833225b9643b9f3ddde9f07e]

	Convert explicit for loops to range-based ones where possible

	This is most useful in EPUBTableStyleManager::extractCellProperties() to
	avoid repeating ourselves.

2017-07-17  Miklos Vajna  <vmiklos@collabora.co.uk>  [37bbf7e7e8822a1be4ac4a48eaa85531015a6176]

	Convert 0 to nullptr where it's used as a pointer value

	To make the code easier to read, because this means the remaining zeros
	all mean numbers.

2017-07-14  Miklos Vajna  <vmiklos@collabora.co.uk>  [dba4dd2d2bd8cac2367a3ce0ff01ae5927db347d]

	Mark overriding member functions as 'override'

	This does not affect the generated code (API or ABI), but:

	1) Makes sure that in case the signature of one of these functions would
	change by accident, the build breaks as the function no longer overrides
	a base function.

	2) Makes the code readable by explicitly marking all overriding
	functions as 'override', where previously the reader had to read the
	interface of the base class(es) as well to find out if the function is
	virtual or not.

	3) Since 'override' implies 'virtual', remove the 'virtual' keyword
	where 'override' is present.

2017-07-14  Miklos Vajna  <vmiklos@collabora.co.uk>  [fc5b1e1fd8f7f6a5a20277ea4c74df2f862e0c24]

	Remove unused using declarations


2017-04-25  David Tardon  <dtardon@redhat.com>  [2af63eebee98bbf01cd0086192f8e83b9da5035f]

	replace a dumb pointer by a smart one


2017-04-25  David Tardon  <dtardon@redhat.com>  [425202b6e5ab68ec88bca17f10e70752d81fe8fd]

	use std::stack for stack


2017-04-25  David Tardon  <dtardon@redhat.com>  [20091543f3e0d8f8bb47afde28dace32c2c03673]

	replace a dumb pointer by a smart one


2017-04-25  David Tardon  <dtardon@redhat.com>  [ed44836767dd658bdffe866bee474e488c91ea44]

	replace a dumb pointer by a smart one


2017-04-25  David Tardon  <dtardon@redhat.com>  [c96c323ebc449232c82150c5668991143a4ed39a]

	drop unused files


2017-04-25  David Tardon  <dtardon@redhat.com>  [0b6dcd1668c9e028808e6d5b6b6a3b9acd29a28d]

	drop dead code


2017-04-25  David Tardon  <dtardon@redhat.com>  [5445474673a15d343a91770bf3befd8b24c8f91e]

	replace boost::assign with C++11 code


2017-04-25  David Tardon  <dtardon@redhat.com>  [6657770ce1c86788cfd98a46bc32a0cd68a57c40]

	boost::unordered_map -> std::unordered_map

	This conversion would look better if the standard actually bothered to
	provide hash function for its container types...

2017-04-25  David Tardon  <dtardon@redhat.com>  [fbb9844ec0de727f3683f0f483821da2a125e44b]

	replace manual def. of int types by boost


2017-04-25  David Tardon  <dtardon@redhat.com>  [170b454c446ecd42caf860c69757eb30403c40b5]

	drop verbose debug


2017-04-25  David Tardon  <dtardon@redhat.com>  [cec6405d9f946482534cb7087611f32ec73a4104]

	boost::shared_ptr -> std::shared_ptr


2017-04-25  David Tardon  <dtardon@redhat.com>  [e911706502f426eba9111b7bf6e9c942f2e98011]

	use for-each loop


2017-04-25  David Tardon  <dtardon@redhat.com>  [4c17c5677886d6ac93bc9a3772987ca7c780c85e]

	drop unused boost headers from configure check


2017-04-25  David Tardon  <dtardon@redhat.com>  [97bb74c589fefbc65ec8462cad87c5ff425f2ec2]

	move check for __attribute__((format)) to configure


2017-04-25  David Tardon  <dtardon@redhat.com>  [9a56b66b65ff9d7434688618a6ba7c095c18adfb]

	switch to C++11


2017-04-25  David Tardon  <dtardon@redhat.com>  [5e146e1d1c6a0fb8807fc3e13397189f873a50a7]

	only ignore auto-updated files in m4


2016-07-03  Fridrich Štrba  <fridrich.strba@bluewin.ch>  [4ded0352c730b906db9a4dee8e52b7efa6272063]

	-Werror=unused-function


2015-12-27  David Tardon  <dtardon@redhat.com>  [2a25ba477bada25604cfc9855dbc2e151ae082b8]

	print debug output to stderr


2015-12-27  David Tardon  <dtardon@redhat.com>  [785a2452dcadd2ea6e27f3eadd29370715fe4a38]

	simplify dist. and inst. of headers


2015-03-12  David Tardon  <dtardon@redhat.com>  [28891005308793f507dd00c4c8c310817f9c7308]

	add make target for astyle


2015-03-12  David Tardon  <dtardon@redhat.com>  [d0f90f3f53ed3c42cf9db7b9e4b33dafda72e367]

	do not assert


2015-02-02  David Tardon  <dtardon@redhat.com>  [17f2b28d1e7961a3a60db9eeef0be83fe19c0705]

	remove bashism


2015-01-05  osnola  <alonso@loria.fr>  [10c72fd24b75684da4e068f4dd1704d05cef3200]

	Merge libepubgen_@EPUBGEN_MAJOR_VERSION@_@EPUBGEN_MINOR_VERSION@_la_LIBADD definitions :-)


2014-12-01  Fridrich Štrba  <fridrich.strba@bluewin.ch>  [1cf137ab0d86311290832a1f36cf3fca7ea859d9]

	Dist errors


2014-11-24  David Tardon  <dtardon@redhat.com>  [b94f1e816ffd87d4d31c4a03f500befe9c6bbca0]

	only export public symbols


2014-11-24  David Tardon  <dtardon@redhat.com>  [6adad68441614bef8f56ea71eda175fa2e392317]

	unused function


2014-11-24  David Tardon  <dtardon@redhat.com>  [d58963141379dd8e0a0335645cc8ca50055df0b0]

	add compile to .gitignore


2014-07-10  David Tardon  <dtardon@redhat.com>  [95aa4c92480ed9a684c3e129ed795e1ea7b1fa07]

	pass value by const ref


2014-07-08  David Tardon  <dtardon@redhat.com>  [54a037324e591629319b58c1daf5108bf61e688b]

	escaping should be done by the generator


2014-07-08  Fridrich Štrba  <fridrich.strba@bluewin.ch>  [5529501d1486fc3916f102384bb7fb869f0d5300]

	This will be escaped in writerperfect


2014-07-05  David Tardon  <dtardon@redhat.com>  [6f44b89f82afd1f15febff78a51a567698c76afd]

	add some TODO items


2014-07-05  David Tardon  <dtardon@redhat.com>  [e7543ba616d2a81231503c488730a8f5c68d6ac3]

	prepare for a release


2014-07-05  David Tardon  <dtardon@redhat.com>  [603a762c5da3d1fb145b31d71542907e2da2c01b]

	write README


2014-07-05  David Tardon  <dtardon@redhat.com>  [e1d79ee3bb8f031b5949788941bd86baed607c0c]

	improve documentation


2014-07-05  David Tardon  <dtardon@redhat.com>  [981630b5be9d31bcd1e51ae39f7e9957b6166c00]

	handle splitting to files on page break


2014-06-29  David Tardon  <dtardon@redhat.com>  [316be1caa89177da9bf8140005fb32c7b9dfbc7d]

	rename class to avoid confusion


2014-06-29  David Tardon  <dtardon@redhat.com>  [1d3bc8c8f7bfb1db0e3536f51019b8a4ed2cf646]

	use existing typedef


2014-06-29  David Tardon  <dtardon@redhat.com>  [98bcac802c14815fbe0fb904bf0819f0000ad7b4]

	drop unneeded include


2014-06-29  David Tardon  <dtardon@redhat.com>  [50c660a825691a030aca5d23490cd928cd550946]

	rename class; there will be no other HTML generators


2014-06-29  David Tardon  <dtardon@redhat.com>  [40d0dd866539e3af2e6342a086b16e7a46e15cdd]

	allow to register image handlers for all generators


2014-06-29  David Tardon  <dtardon@redhat.com>  [10a52e2386c4c60ea32e68812505aebd65a91806]

	add API for HTML splitting


2014-06-29  David Tardon  <dtardon@redhat.com>  [600f784d0df2b2bcc1c42b97b39018ab69c2d1fd]

	impl. ctors


2014-06-29  David Tardon  <dtardon@redhat.com>  [c000ce3ffcc2b2667098ec93259e5b37dca4060f]

	drop broken win32 project files


2014-06-29  David Tardon  <dtardon@redhat.com>  [77a7fe0868ce13ffcef8ef96754cb07770923c03]

	one-param. ctors should be explicit


2014-06-29  David Tardon  <dtardon@redhat.com>  [90087f3165859d7a2972e87890c5f06ff300bd8f]

	add support for embedded images and objects


2014-06-29  David Tardon  <dtardon@redhat.com>  [c4548090a5a0765e8c52582883c1f5491d43557a]

	handle text blocks of page-based interfaces


2014-06-29  David Tardon  <dtardon@redhat.com>  [f0ff01bdf92bea628b323740afb4d028d5b00aec]

	move handling of text size to the common class too


2014-06-29  David Tardon  <dtardon@redhat.com>  [c9fb74c86096667338fdccfb8a734b36a50c0ed7]

	provide common impl. for page-based generators


2014-06-29  David Tardon  <dtardon@redhat.com>  [433f72f4c7edbb824527921ca55977c5397487a1]

	distribute and install libepubgen-api.h


2014-06-29  David Tardon  <dtardon@redhat.com>  [2b5d3fa1fa01ac5a588c9163387b07ba111753df]

	put the common parts of EPUB creation to a class


2014-06-29  David Tardon  <dtardon@redhat.com>  [a85587b1a6a5f62b5403fc255fbcdfd793e735ac]

	add collecting class for page elements

	For future use.

2014-06-29  David Tardon  <dtardon@redhat.com>  [5bd80f1971ebe40312826139d5c47ca83d54fa51]

	rename class


2014-06-28  David Tardon  <dtardon@redhat.com>  [9daab5ce0acbb3af66b615203a25e7e7cb0d082c]

	group the functions by purpose


2014-06-28  David Tardon  <dtardon@redhat.com>  [36b775d40dd31b4a9ec3f27e74cbaffefc121525]

	output to text files is useful after all

	It can be used for writing SVG images.

2014-06-28  David Tardon  <dtardon@redhat.com>  [6b945868291fa3a287afdfe547949d873e809ac2]

	clean old cruft


2014-06-28  David Tardon  <dtardon@redhat.com>  [8a3573a288cecb750e796fee13e77aea0af6e472]

	add presentation generator (dummy impl. for now)


2014-06-28  David Tardon  <dtardon@redhat.com>  [bb3f5b28660f870f8ed5ba802be3c2cc39ba4652]

	add drawing generator (dummy impl. for now)


2014-06-23  David Tardon  <dtardon@redhat.com>  [01d0e4bc5df67a9afb1a69dace5f0676bf8e22db]

	bah, forgot to implement two functions


2014-06-22  David Tardon  <dtardon@redhat.com>  [5755f94d17fd2c3e087fb71a9a610395ac31ae14]

	split HTML content into smaller files


2014-06-22  David Tardon  <dtardon@redhat.com>  [79fd359b7115ff2f2f41c95bb9e202c1d0481188]

	there is no need to create text files in the package


2014-06-22  David Tardon  <dtardon@redhat.com>  [994d733a9847b8dd6acfbd933abc0c02bdd46757]

	struct -> class in forward decl


2014-06-22  David Tardon  <dtardon@redhat.com>  [a846255a2f48c739ea26c53044ae79ac3bfbc3b1]

	check for all used boost headers


2014-06-22  David Tardon  <dtardon@redhat.com>  [f711a7f348b8dc5c066377f4848b135f785f3603]

	keep CSS props in a map


2014-06-22  David Tardon  <dtardon@redhat.com>  [a4b6632c0cde956546a4cc45995dd5ae08e9eee7]

	add a separate interface functions for CSS files

	This will replace the text functions in near future, as CSS is the only
	text-based file that is needed.

2014-06-22  David Tardon  <dtardon@redhat.com>  [49094cf981efd53c953a4b68cb409ad34db6034b]

	write separate stylesheet file


2014-06-22  David Tardon  <dtardon@redhat.com>  [b2f632bc0e866a6e86d1d506388015bf0075938d]

	rename style generating classes


2014-06-21  David Tardon  <dtardon@redhat.com>  [6a0965e2517192b922e5078f3f1f0bf1cd5d587e]

	follow the recommendation from OCF 2.0.1


2014-06-21  David Tardon  <dtardon@redhat.com>  [a74584212e46b56d5487ab2ff2d1d21888079d87]

	reformat


2014-06-21  David Tardon  <dtardon@redhat.com>  [859074650571b4ca6a04ea1a1d93756c78450efa]

	start using path


2014-06-21  David Tardon  <dtardon@redhat.com>  [394452d1d6f430a4146ca3feb5a1959a868dfe32]

	add helper class for handling internal paths


2014-06-21  David Tardon  <dtardon@redhat.com>  [cc9146c8190b68481e0b4430a679add226882547]

	produce valid XHTML


2014-06-21  David Tardon  <dtardon@redhat.com>  [9dbc267e70a7c92715f688b910fe66f8429148eb]

	really insert images to the output


2014-06-19  David Tardon  <dtardon@redhat.com>  [f9fd161967a677c495a6a37f241864e31b45f1ca]

	coverity#12665 dereference null return value


2014-06-15  David Tardon  <dtardon@redhat.com>  [b1866629b945f87c889bc8da7b6f05eded361107]

	add support for images


2014-06-15  David Tardon  <dtardon@redhat.com>  [bba55bc5e493012f3cc7ce57b47f5157f951929b]

	handle manifest in a centralized way


2014-06-15  David Tardon  <dtardon@redhat.com>  [4e3442bd9bd23ec73d7dc180f21e236635e0cef7]

	simplify insertion of empty elements


2014-06-15  David Tardon  <dtardon@redhat.com>  [6fad06043d60467f828051a6b216b094a1b9bf90]

	simplify creation of elements without attributes


2014-06-15  David Tardon  <dtardon@redhat.com>  [557e491ad757c3451f5c9da62084946a6c014fcd]

	the typedef does not neet to be accessible from outside


2014-06-13  David Tardon  <dtardon@redhat.com>  [5d30cbc9b4840c652d2449bcd19daf670eab617e]

	produce conforming ePub 2.0


2014-06-13  David Tardon  <dtardon@redhat.com>  [4fea820c2e35271258b5057d0b4fad183691aa16]

	remove functions to better match purpose


2014-06-11  David Tardon  <dtardon@redhat.com>  [0b5e300ac4997820f5f934a22e8b9cf074d1ab90]

	write out ePub package


2014-06-11  David Tardon  <dtardon@redhat.com>  [6763280ecad73b08524fd396584fa09e5c409fa1]

	produce (nearly) valid XHTML


2014-06-08  David Tardon  <dtardon@redhat.com>  [13155daa10b1bb595463c030cddec3e90f3a3db1]

	copy HTML text generator from librevenge

	I would really rather use librevenge-generators, but the code will need
	some modifications. First thing, the generator produces HTML, not XHTML.
	Second, it only produces one output file, while I need any number of
	XHTML files and one CSS file. Last but not least, it drops images.

2014-06-08  David Tardon  <dtardon@redhat.com>  [607828da0035cb4db6ad18402700ae26cf26ef77]

	create a new project