diff --git a/src/content/editoria-backup.html b/src/content/editoria-backup.html new file mode 100644 index 0000000000000000000000000000000000000000..9cd3309c0045c1e82cd718d1b6b14efaca2087fb --- /dev/null +++ b/src/content/editoria-backup.html @@ -0,0 +1,121 @@ + + + + + + hello test + + + + + + + + + + + +
+

Front Matter Title

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et mag + + 1. + + nis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem + + 2. + + ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+

Some Part Title One

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+

Some Chapter Title One

+

Lorem ipsum dolor sit amet, c + + 1. + + onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+

Some Part Title Two

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+

Some Chapter Title Two

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+

Some Part Title Three

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+

Some Chapter Title Three

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+
+

Appendix A

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+

Notes

+

Front Matter Title

+
    +
  1. asdfasdfasdasdf
  2. +
  3. asdfasdfasdf
  4. +
+

Some Chapter Title One

+
    +
  1. asdfasdfasdfasdf
  2. +
+
+ + + + + + \ No newline at end of file diff --git a/src/content/editoria.html b/src/content/editoria.html new file mode 100644 index 0000000000000000000000000000000000000000..6bb6e8cf3ea96de9b27fca2faa2fe6674eb18e99 --- /dev/null +++ b/src/content/editoria.html @@ -0,0 +1,223 @@ + + + + + + hello test + + + + + + + + + + + + + + + + + + +
+
+

Contents

+
+
    +
  1. Front Matter Title
  2. +
  3. Some Part Title One
  4. +
  5. Some Chapter Title One
  6. +
  7. Some Part Title Two
  8. +
  9. Some Chapter Title Two
  10. +
  11. Some Part Title Three
  12. +
  13. Some Chapter Title Three
  14. +
  15. b02_ch1
  16. +
  17. b02_ch2
  18. +
  19. Appendix A
  20. +
  21. Notes
  22. +
+
+
+
+

Some Chapter Title One

+
+

Lorem ipsum dolor sit amet, c + + 1. + + onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+

onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+

onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+

onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+

onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+

onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+

onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+

onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+ +
+
+

Front Matter Title

+

dsvxzcvzxvzc

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et mag + + 1. + + nis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem + + 2. + + ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Part Title One

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Chapter Title One

+
+

Lorem ipsum dolor sit amet, c + + 1. + + onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Part Title Two

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Chapter Title Two

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Chapter Title Two

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Chapter Title Two

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Chapter Title Two

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Chapter Title Two

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Chapter Title Two

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Part Title Three

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Some Chapter Title Three

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+
+
+

Appendix A

+
+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

+
+
+
+

Notes

+
+

Front Matter Title

+
    +
  1. asdfasdfasdasdf
  2. +
  3. asdfasdfasdf
  4. +
+

Some Chapter Title One

+
    +
  1. asdfasdfasdfasdf
  2. +
+
+ + + + + + \ No newline at end of file diff --git a/src/content/editoria2.html b/src/content/editoria2.html new file mode 100644 index 0000000000000000000000000000000000000000..eddd92380da687dd185918424e2b6de26a2abce0 --- /dev/null +++ b/src/content/editoria2.html @@ -0,0 +1,14 @@ +hello test +

Contents

  1. Front Matter Title
  2. Some Part Title One
  3. Some Chapter Title One
  4. Some Part Title Two
  5. Some Chapter Title Two
  6. Some Part Title Three
  7. Some Chapter Title Three
  8. b02_ch1
  9. b02_ch2
  10. Appendix A
  11. Notes

Front Matter Title

dsvxzcvzxvzc

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et mag + + 1. + + nis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem + + 2. + + ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

hello

Some Part Title One

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

Some Chapter Title One

Lorem ipsum dolor sit amet, c + + 1. + + onsectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

Some Part Title Two

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

Some Chapter Title Two

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

Some Part Title Three

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

Some Chapter Title Three

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

Appendix A

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi magna turpis, sagittis vel sagittis vitae, accumsan eleifend quam. Donec vitae dapibus arcu, a congue orci. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque non cursus ipsum. Vestibulum faucibus sit amet velit imperdiet congue. Proin consequat nec risus elementum iaculis. Ut elit nisl, posuere ac ligula id, ultricies auctor eros. Ut nec lorem a lacus hendrerit scelerisque nec sit amet purus.Vivamus nec enim sit amet quam ultricies condimentum ac in risus. Phasellus nibh risus, consequat id venenatis a, tempor a nunc. Duis malesuada faucibus ipsum, sodales auctor est aliquet nec. Nulla egestas neque at lacus lobortis, ut ornare neque volutpat. Cras blandit sagittis congue. Sed luctus in mi in tincidunt. Quisque nec mollis sem, sit amet suscipit elit. Maecenas posuere ante non semper pharetra. Phasellus in scelerisque tellus. Fusce gravida erat quis odio aliquam aliquam. Sed ullamcorper, tellus in varius viverra, odio justo accumsan nulla, quis auctor est lorem sit amet ex. In at viverra orci, nec iaculis orci. Ut mattis augue a ex semper, quis interdum leo sollicitudin. Quisque leo ligula, accumsan et hendrerit at, ornare nec diam. Etiam mattis eget quam eget vehicula. Suspendisse potenti.Praesent euismod ante sed eros gravida bibendum. Praesent ut faucibus nibh, condimentum congue metus. Duis placerat purus sed risus ultrices fringilla. Fusce leo nisi, imperdiet nec magna at, vulputate imperdiet erat. Vivamus non ligula vel velit convallis pretium ut ut nisi. Pellentesque cursus venenatis augue, et congue diam sollicitudin ut. Morbi tincidunt erat at sem volutpat, vel elementum arcu pellentesque. Quisque pretium dolor a nibh efficitur faucibus. Nulla facilisi. Nunc semper vestibulum orci eget hendrerit. Cras ullamcorper purus tortor, vitae blandit urna volutpat et. Nulla sed orci metus. Vestibulum odio sem, posuere sed pellentesque a, interdum quis ligula. Nam iaculis dui id libero mollis maximus. Fusce scelerisque magna non lectus gravida, vitae malesuada lorem eleifend.Integer eget maximus odio. Morbi ultricies vitae dolor vitae scelerisque. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin hendrerit nulla vel pellentesque consequat. Sed lobortis, ante fermentum malesuada tincidunt, augue nulla volutpat nisi, interdum pharetra turpis urna ut neque. Phasellus molestie mi at magna finibus auctor. Quisque tempor accumsan nisl non feugiat. Quisque a arcu et purus sollicitudin mollis. Proin eu sapien neque. Donec at lectus aliquet, bibendum ante et, porttitor ex.Mauris ac tellus id felis posuere hendrerit. Morbi eget mattis nisi, non ullamcorper tellus. In diam quam, viverra eget est quis, commodo auctor leo. Nam rhoncus, metus eget placerat elementum, risus nulla imperdiet mi, eget scelerisque mi odio sit amet tellus. Phasellus vitae lorem fringilla, semper nisi vitae, condimentum arcu. Morbi non nisl congue, ornare nisi nec, blandit lacus. Praesent sed ante dictum, porta mi eget, auctor magna. Pellentesque volutpat in velit vel condimentum. Etiam ac nisi sagittis, feugiat felis vel, tempus odio. Aenean malesuada quam vel dui venenatis luctus.

Notes

Front Matter Title

  1. asdfasdfasdasdf
  2. asdfasdfasdf

Some Chapter Title One

  1. asdfasdfasdfasdf
\ No newline at end of file diff --git a/src/content/editoriaFull-no.html b/src/content/editoriaFull-no.html new file mode 100644 index 0000000000000000000000000000000000000000..323a3e904b73831274b4ee20d0068451456cef09 --- /dev/null +++ b/src/content/editoriaFull-no.html @@ -0,0 +1,1024 @@ + + + + + hello test + + + + + + + + +
+
+

The status of what we can do with Editoria and Pagedjs today

+
+
+
+
+

Contents

+
+
    +
  1. Front Matter Title
  2. +
  3. Font matter 2
  4. +
  5. Chapter with no number!
  6. +
  7. Part 1
  8. +
  9. For this is a chapter and it has a long name
  10. +
  11. Chapter with a subtitle
  12. +
  13. For this is a chapter and it has a long name
  14. +
  15. Chapter with a subtitle
  16. +
  17. For this is a chapter and it has a long name
  18. +
  19. Chapter with a subtitle
  20. +
  21. For this is a chapter and it has a long name
  22. +
  23. Chapter with a subtitle
  24. +
  25. For this is a chapter and it has a long name
  26. +
  27. Chapter with a subtitle
  28. +
  29. For this is a chapter and it has a long name
  30. +
  31. Chapter with a subtitle
  32. +
  33. For this is a chapter and it has a long name
  34. +
  35. Chapter with a subtitle
  36. +
  37. For this is a chapter and it has a long name
  38. +
  39. Chapter with a subtitle
  40. +
  41. For this is a chapter and it has a long name
  42. +
  43. Chapter with a subtitle
  44. +
  45. For this is a chapter and it has a long name
  46. +
  47. Chapter with a subtitle
  48. +
  49. For this is a chapter and it has a long name
  50. +
  51. Chapter with a subtitle
  52. +
  53. For this is a chapter and it has a long name
  54. +
  55. Chapter with a subtitle
  56. +
  57. For this is a chapter and it has a long name
  58. +
  59. Chapter with a subtitle
  60. +
  61. For this is a chapter and it has a long name
  62. +
  63. Chapter with a subtitle
  64. +
  65. For this is a chapter and it has a long name
  66. +
  67. Chapter with a subtitle
  68. +
  69. For this is a chapter and it has a long name
  70. +
  71. Chapter with a subtitle
  72. +
  73. For this is a chapter and it has a long name
  74. +
  75. Chapter with a subtitle
  76. +
  77. For this is a chapter and it has a long name
  78. +
  79. Chapter with a subtitle
  80. +
  81. For this is a chapter and it has a long name
  82. +
  83. Chapter with a subtitle
  84. +
  85. For this is a chapter and it has a long name
  86. +
  87. Chapter with a subtitle
  88. +
  89. For this is a chapter and it has a long name
  90. +
  91. Chapter with a subtitle
  92. +
  93. For this is a chapter and it has a long name
  94. +
  95. Chapter with a subtitle
  96. +
  97. For this is a chapter and it has a long name
  98. +
  99. Chapter with a subtitle
  100. +
  101. For this is a chapter and it has a long name
  102. +
  103. Chapter with a subtitle
  104. +
  105. For this is a chapter and it has a long name
  106. +
  107. Chapter with a subtitle
  108. +
  109. For this is a chapter and it has a long name
  110. +
  111. Chapter with a subtitle
  112. +
  113. For this is a chapter and it has a long name
  114. +
  115. Chapter with a subtitle
  116. +
  117. For this is a chapter and it has a long name
  118. +
  119. Chapter with a subtitle
  120. +
  121. For this is a chapter and it has a long name
  122. +
  123. Chapter with a subtitle
  124. +
  125. For this is a chapter and it has a long name
  126. +
  127. Chapter with a subtitle
  128. +
  129. For this is a chapter and it has a long name
  130. +
  131. Chapter with a subtitle
  132. +
  133. For this is a chapter and it has a long name
  134. +
  135. Chapter with a subtitle
  136. +
  137. For this is a chapter and it has a long name
  138. +
  139. Chapter with a subtitle
  140. +
  141. For this is a chapter and it has a long name
  142. +
  143. Chapter with a subtitle
  144. +
  145. For this is a chapter and it has a long name
  146. +
  147. Chapter with a subtitle
  148. +
  149. For this is a chapter and it has a long name
  150. +
  151. Chapter with a subtitle
  152. +
  153. For this is a chapter and it has a long name
  154. +
  155. Chapter with a subtitle
  156. +
  157. For this is a chapter and it has a long name
  158. +
  159. Chapter with a subtitle
  160. +
  161. For this is a chapter and it has a long name
  162. +
  163. Chapter with a subtitle
  164. +
  165. For this is a chapter and it has a long name
  166. +
  167. Chapter with a subtitle
  168. +
  169. For this is a chapter and it has a long name
  170. +
  171. Chapter with a subtitle
  172. +
  173. For this is a chapter and it has a long name
  174. +
  175. Chapter with a subtitle
  176. +
  177. For this is a chapter and it has a long name
  178. +
  179. Chapter with a subtitle
  180. +
  181. part 2
  182. +
  183. null
  184. +
  185. CHAPTER! CHAPTERS EVERYWHERE!
  186. +
  187. What the hell happened to my chapters!
  188. +
  189. Back Matter Title
  190. +
  191. Notes
  192. +
+
+
+
+

Front Matter Title

+
+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book + + 1. + + . It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset + + 2. + + sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

+
+
+
+

Font matter 2

+
+

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap + + 1. + + into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia + + 2. + + , looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Chapter with no number!

+
+

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. + + 1. + +

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Part 1

+
+

+

+
+
+
+

For this is a chapter and it has a long name

+
+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Chapter with a subtitle

+

Front matter Subtitle

+
+

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

part 2

+
+
+
+

This chapter has no title. However it can happens in the specs. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

CHAPTER! CHAPTERS EVERYWHERE!

+

Front matter Subtitle

+
+
Epigraph: Prose
source note for the epigraph +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

What the hell happened to my chapters!

+
+
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Back Matter Title

+

Back matter Subtitle

+
+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Notes

+
+

Front Matter Title

+
    +
  1. A type specimen book is a book with contains specimen of type. It shows the character as they should be used, and how they look.
  2. +
  3. Note from the translator. “The best thing on earth. PERIOD.”
  4. +
+

Font matter 2

+
    +
  1. Note from fm2 - Really!
  2. +
  3. Not Virginia Woolfe. Virginia, the state.
  4. +
+

Chapter with no number!

+
    +
  1. adding note in the chapter with no number
  2. +
+
+ + + \ No newline at end of file diff --git a/src/content/editoriaFull.html b/src/content/editoriaFull.html new file mode 100644 index 0000000000000000000000000000000000000000..9339c18537c8a489d3da5cd8208b174c520bd3bf --- /dev/null +++ b/src/content/editoriaFull.html @@ -0,0 +1,956 @@ + + + + + hello test + + + + + + + + + +
+
+

Contents

+
+
    +
  1. Front Matter Title
  2. +
  3. Font matter 2
  4. +
  5. Chapter with no number!
  6. +
  7. Part 1
  8. +
  9. For this is a chapter and it has a long name
  10. +
  11. Chapter with a subtitle
  12. +
  13. part 2
  14. +
  15. null
  16. +
  17. CHAPTER! CHAPTERS EVERYWHERE!
  18. +
  19. What the hell happened to my chapters!
  20. +
  21. Back Matter Title
  22. +
  23. Notes
  24. +
+
+
+
+

Front Matter Title

+

Front matter Subtitle

+
+ + +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book + + 1. + + . It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset + + 2. + + sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

This is a single line This is a single line

+

This is a single heading 2 This is a single heading 2 This is a single heading 2

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
  9. numbered list item 1
  10. +
  11. numbered list item 2
  12. +
  13. numbered list item 3
  14. +
  15. numbered list item 4
  16. +
  17. numbered list item 1
  18. +
  19. numbered list item 2
  20. +
  21. numbered list item 3
  22. +
  23. numbered list item 4
  24. +
  25. numbered list item 1
  26. +
  27. numbered list item 2
  28. +
  29. numbered list item 3
  30. +
  31. numbered list item 4
  32. +
  33. numbered list item 1
  34. +
  35. numbered list item 2
  36. +
  37. numbered list item 3
  38. +
  39. numbered list item 4
  40. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

+
+
+
+

Font matter 2

+
+

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap + + 1. + + into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia + + 2. + + , looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Chapter with no number!

+
+

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. + + 1. + +

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Part 1

+
+

+

+
+
+
+

For this is a chapter and it has a long name

+
+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Chapter with a subtitle

+

Chapter Subtitle

+
+

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

part 2

+
+
+
+

This chapter has no title. However it can happens in the specs. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

CHAPTER! CHAPTERS EVERYWHERE!

+

Chapter Subtitle

+
+
Epigraph: Prose
source note for the epigraph +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

What the hell happened to my chapters!

+
+
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Back Matter Title

+

Back matter Subtitle

+
+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+

Front Matter Title

+

Front matter Subtitle

+
Epigraph: Prose
source note for the epigraph +
Epigraph: Poetry
Source Note +

Heading 1

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book​. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

Heading 2

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset​ sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
+

Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et Malorum" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit amet..", comes from a line in section 1.10.32.

+

The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum" by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.

+

Heading 3

+

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+

e=mc2. I don't like (not really) superscript and subscript.

+
    +
  1. numbered list item 1
  2. +
  3. numbered list item 2
  4. +
  5. numbered list item 3
  6. +
  7. numbered list item 4
  8. +
+

General Text Cont'd: Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

+
Extract: prose
Source note for the extract prose +
Extract: poetry
Source note for the extract poetry +

Bibliography Entry

+

Lamott, Anne. Bird by Bird: Some Instructions on Writing and Life. Anchor Books, 1995.

+

Johson, Robert. Some like it red hot. Anchor Books, 1995.

+

Lavinn, Christine. Regretting What I Said to You When You Called Me 11:00 On a Friday Morning to Tell Me that at 1:00 Friday Afternoon You're Gonna Leave Your Office, Go Downstairs, Hail a Cab to Go Out to the Airport to Catch a Plane to Go Skiing in the Alps for Two Weeks, Not that I Wanted to Go With You, I Wasn't Able to Leave Town, I'm Not a Very Good Skier, I Couldn't Expect You to Pay My Way, But After Going Out With You for Three Years I DON'T Like Surprises!! Subtitled: A Musical Apology, 1975.

+

Dialogue

+
    +
  1. Questions
  2. +
  3. Answers
  4. +
  5. long Questions: blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah ? blah blah blah ?
  6. +
  7. Answers: Yes. But no. But yes. Maybe. Maybe? Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe?Yes. But no. But yes. Maybe. Maybe!
  8. +
+

List!

+ +

What happens here is a small tricky thing: a list without any butllet!

+
    +
  1. but still a list
  2. +
  3. i don't see when you need that.
  4. +
+
+
+
+

Notes

+
+

Front Matter Title

+
    +
  1. A type specimen book is a book with contains specimen of type. It shows the character as they should be used, and how they look.
  2. +
  3. Note from the translator. “The best thing on earth. PERIOD.”
  4. +
+

Font matter 2

+
    +
  1. Note from fm2 - Really!
  2. +
  3. Not Virginia Woolfe. Virginia, the state.
  4. +
+

Chapter with no number!

+
    +
  1. adding note in the chapter with no number
  2. +
+
+ + + \ No newline at end of file diff --git a/src/css/layout/pagedjs/elements/runningHeaders.css b/src/css/layout/pagedjs/elements/runningHeaders.css index 53d2f8d3dd9d154d5501d66732f31c555e5f1744..f5813fc673155b759c434f70be1774c68dd9a428 100644 --- a/src/css/layout/pagedjs/elements/runningHeaders.css +++ b/src/css/layout/pagedjs/elements/runningHeaders.css @@ -1,26 +1,26 @@ /* the booktitle is set once in the book */ .booktitle { - position: running(bookTitleRun); + } /* The running-chapter class is the duplicated chapter title for the running headers */ -.running-chapter { - display: none; - string-set: chapterTitleRun content(text); - font-variant: all-small-caps; +.body-chapter .ct, .front-component .ct { + /* string-set:chapterTitleRun content(text); */ + /* font-variant: all-small-caps; font-size: 9pt; line-height: 17px; - letter-spacing: 0.05em + letter-spacing: 0.05em */ } /* The running-part class is the duplicated chapter title for the running headers */ -.running-part { - position: running(partTitleRun); - font-variant: all-small-caps; +.body-part .ct { + /* string-set: partTitleRun content(text); */ + + /* font-variant: all-small-caps; font-size: 9pt; line-height: 17px; - letter-spacing: 0.05em + letter-spacing: 0.05em */ } diff --git a/src/css/layout/pagedjs/interface/baseline.css b/src/css/layout/pagedjs/interface/baseline.css new file mode 100644 index 0000000000000000000000000000000000000000..e35c27e5ae7c4c7cbfbed853e679842d54816eee --- /dev/null +++ b/src/css/layout/pagedjs/interface/baseline.css @@ -0,0 +1,40 @@ +:root { + --baseline: 16px; + --baseline-color: rgba(0, 200, 80, 0.6); + /* --baseline-color: white; */ +} + +.pagedjs_page { + /* grid baseline */ + background: + repeating-linear-gradient( + white 0, + white calc(var(--font-lineHeight) - 1px), + var(--baseline-color) calc(var(--font-lineHeight))); + background-size: cover; + background-repeat: repeat-y; + /* start of the first baseline: 30pt from top: putted it as 40px */ + background-position-y: 40px; + &::after { + background: url(../img/grid2.png); + /* background: url(../img/contents.png); */ + /* background: url(../img/frontmatter.png); */ + } +} + + +/* line calculators */ + +.pagedjs_page_content { + &::after { + content: "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44"; + line-height: var(--font-lineHeight); + position: absolute; + top: 0; + right: -4em; + color: red; + display: block; + text-align: right; + width: 2ch; + } +} \ No newline at end of file diff --git a/src/css/layout/pagedjs/interface/hack.css b/src/css/layout/pagedjs/interface/hack.css index 506e53dd4a909fdf6579540c4e743335ee396e16..0007af10164542a43ed996508441f638da83e996 100644 --- a/src/css/layout/pagedjs/interface/hack.css +++ b/src/css/layout/pagedjs/interface/hack.css @@ -23,52 +23,22 @@ /* simple break solution */ .break { - break-before: page; - height: 0; - position: relative; -} - -/* adding a baseline grid to update the book to a baseline */ - -:root { - --baseline: 34px; - --baseline-color: rgba(0, 200, 80, 0.1); - --baseline-color: white; -} - -.pagedjs_page { - /* grid baseline */ - background: - linear-gradient( - white 0%, - white 100%), linear-gradient( white 0%, - white 50%, - var(--baseline-color) 50%, - var(--baseline-color) 100%); - background-size: 100% calc(17px * 7), 100% var(--baseline); - background-repeat: no-repeat, repeat-y; - background-position-y: 0, 8px; - &:first-of-type::after { - /* background: url(../img/grid2.png); */ - /* background: url(../img/contents.png); */ - /* background: url(../img/frontmatter.png); */ - width: 100%; - height: 100%; - display: block; - position: absolute; - content: ' '; - } -} + break-before: page; + height: 0; + position: relative; +} html { - /* addin a margin to the html can break the pagination when printing. */ - /* margin-top: 2em; */ - /* transform: scale(1.5); */ + /* addin a margin to the html can break the pagination when printing. */ + /* margin-top: 2em; */ + /* transform: scale(1.5); */ } - /* data split */ + /* hack for the justification of the first part of a paragraph splitted */ + p[data-split-original="true"] { - text-align-last: justify; -} \ No newline at end of file + text-align-last: justify; +} + diff --git a/src/css/layout/pagedjs/interface/interface.css b/src/css/layout/pagedjs/interface/interface.css index f9f909c2c61868408dcc57c1720add934af125bc..39bb07f24a598a919627e56bdf78ee276a7abe87 100644 --- a/src/css/layout/pagedjs/interface/interface.css +++ b/src/css/layout/pagedjs/interface/interface.css @@ -1,4 +1,4 @@ - +@import "baseline.css"; /* To define how the book look on the screen: */ @media screen { @@ -24,12 +24,6 @@ margin-left: var(--width); } - /* show the margin-box */ - - .pagedjs_margin-content - { - box-shadow: 0 0 0 1px inset var(--color-marginBox); - } /* uncomment for recto/verso book. diff --git a/src/css/layout/pagedjs/page/chapter.css b/src/css/layout/pagedjs/page/chapter.css index 0e3a004b5dc8d30dc60396d66475276285719548..309bfc9e4de91b45b098f4b0784fc6b298b799fc 100644 --- a/src/css/layout/pagedjs/page/chapter.css +++ b/src/css/layout/pagedjs/page/chapter.css @@ -1,34 +1,30 @@ -/* Table of content - chapter page +/* Table of content - body-chapter page ------------------------------------*/ -.chapter { +.body-chapter { page: chapter; + /* color: darkcyan; */ } + @page chapter :first { - @top-left-corner { content: " "; - color: transparent; } @top-left { content: " "; - color: transparent; } @top-center { content: " "; - color: transparent; } @top-right-corner { content: " "; - color: transparent; } @top-right { content: " "; - color: transparent; } @bottom-center { content: counter(page); font-size: 8pt; - margin-top: -2.5em; + /* margin-top: -57px; */ } } \ No newline at end of file diff --git a/src/css/layout/pagedjs/page/fmbody.css b/src/css/layout/pagedjs/page/fmbody.css index 198e7182cb2c8cc9c8c88156882bcac6f9ad643c..b0a3c69c6db1cacf80f0261a0e86ebfcd7d01e02 100644 --- a/src/css/layout/pagedjs/page/fmbody.css +++ b/src/css/layout/pagedjs/page/fmbody.css @@ -1,26 +1,51 @@ /* Front matter - pages ------------------------------------*/ -.fm-body { - page: fmbody; +.front-component, .back-component { + page: frontmatter; } -@page fmbody { - /* background: white; */ + + +@page frontmatter :right { + @top-right { + content: string(chapterTitleRun, first) "\00A0\00A0\00A0\00A0\00A0" counter(page); + padding-top: 2.6em; + font-variant: oldstyle-nums all-small-caps; + text-align: right; + } + /* @top-center { + margin-top: 1.15em; + content: element(chapterTitleRun); + margin-right: -2em; + text-align: right; + } */ } -@page fmbody :first { + +@page frontmatter :left { + @top-left { + content: counter(page) "\00A0\00A0\00A0\00A0\00A0" string(chapterTitleRun, first) ; + padding-top: 2.6em; + font-variant: oldstyle-nums all-small-caps; + text-align: left; + } + /* @top-center { + margin-top: 1.15em; + content: element(chapterTitleRun); + margin-right: -2em; + text-align: right; + } */ +} +@page frontmatter :first { @top-right-corner { - content: " "; - opacity: 0; + content: none; } @top-right { - content: " "; - opacity: 0; + content: none; } @top-center { - content: " "; - opacity: 0; + content: none; } @top-left-corner { content: " "; @@ -31,6 +56,5 @@ @bottom-center { content: counter(page); font-size: 8pt; - margin-top: -2.5em; } } \ No newline at end of file diff --git a/src/css/layout/pagedjs/page/pages.css b/src/css/layout/pagedjs/page/pages.css index d1e8c332ddca93b09baecc715312fec7de4bdcec..9034373953968559e769ce03844c32e02e3e43b6 100644 --- a/src/css/layout/pagedjs/page/pages.css +++ b/src/css/layout/pagedjs/page/pages.css @@ -3,7 +3,8 @@ @page { size: 6in 9in; - margin: 62pt 0.75in 0.75in 0.75in; + margin: 78px 72px 80px 72px; + /* background: url('../img/grid2.png'), white; */ /* margin: 83px 71.811024px 96px; */ /* background: url(../img/grid.png); */ /* background-size: 100% 100%; */ @@ -13,8 +14,11 @@ @top-right { content: string(chapterTitleRun, first) "\00A0\00A0\00A0\00A0\00A0" counter(page); padding-top: 2.6em; - font-variant: oldstyle-nums all-small-caps; text-align: right; + font-variant: oldstyle-nums all-small-caps; + font-size: 9pt; + line-height: 17px; + letter-spacing: 0.05em } /* @top-center { margin-top: 1.15em; @@ -31,6 +35,10 @@ font-size: 9pt; line-height: 17px; font-variant: oldstyle-nums all-small-caps; + font-size: 9pt; + line-height: 17px; + letter-spacing: 0.05em + } /* @top-center { margin-top: 1.15em; diff --git a/src/css/layout/pagedjs/page/part.css b/src/css/layout/pagedjs/page/part.css index c6538091d38a6a576ce2f042dce9a1d6a894ff38..9f01ef4e7e37a0543d8bfbc26de21828e102854f 100644 --- a/src/css/layout/pagedjs/page/part.css +++ b/src/css/layout/pagedjs/page/part.css @@ -1,32 +1,37 @@ -/* Part - pages +/* Table of content - body-part page ------------------------------------*/ -.part { +.body-part { page: part; -} - -.part { - /* break-before: right; */ -} - -@page part { - @top-right-corner { - content: " "; - color: transparent; - } - @top-right { - content: " "; - color: transparent; + .cn { + display: none; } + } + @page part :first { + @top-left-corner { - content: " "; - color: transparent; + content: " "; + color: transparent; } @top-left { - content: " "; - color: transparent; + content: " "; + color: transparent; } - background: #4FC4B9; - color: white; -} - + @top-center { + content: " "; + color: transparent; + } + @top-right-corner { + content: " "; + color: transparent; + } + @top-right { + content: " "; + color: transparent; + } + @bottom-center { + content: counter(page); + font-size: 8pt; + margin-top: -2.5em; + } + } \ No newline at end of file diff --git a/src/css/layout/pagedjs/page/partBis.css b/src/css/layout/pagedjs/page/partBis.css new file mode 100644 index 0000000000000000000000000000000000000000..6d79e9695e0ea468b01f2fd5d8352fea847c359b --- /dev/null +++ b/src/css/layout/pagedjs/page/partBis.css @@ -0,0 +1,34 @@ +/* Table of content - body-chapter page +------------------------------------*/ + +.body-part { + page: part; +} +@page part :first { + + @top-left-corner { + content: " "; + color: transparent; + } + @top-left { + content: " "; + color: transparent; + } + @top-center { + content: " "; + color: transparent; + } + @top-right-corner { + content: " "; + color: transparent; + } + @top-right { + content: " "; + color: transparent; + } + @bottom-center { + content: counter(page); + font-size: 8pt; + margin-top: -2.5em; + } +} \ No newline at end of file diff --git a/src/css/layout/pagedjs/page/title.css b/src/css/layout/pagedjs/page/title.css index 8b8106c6cf3987bcc101861e1c0910c23c94a8ff..fc4b67dfa69cd601987ef4ad5f1ba26dd95fa988 100644 --- a/src/css/layout/pagedjs/page/title.css +++ b/src/css/layout/pagedjs/page/title.css @@ -1,7 +1,7 @@ /* Title pages ------------------------------------*/ -section.titlepage { +.titlepage { page: title; } diff --git a/src/css/layout/pagedjs/page/toc.css b/src/css/layout/pagedjs/page/toc.css index d6506b0d67c45397333a686f88125d23df7b7b83..17b9d866aec56c9e911a6a263fb5b40bb1d52216 100644 --- a/src/css/layout/pagedjs/page/toc.css +++ b/src/css/layout/pagedjs/page/toc.css @@ -2,65 +2,48 @@ ------------------------------------*/ .toc { - page: toc; + page: toc; } @page toc { /* background: white; */ @top-left-corner { content: none; - color: transparent; - } @top-right-corner { content: none; - color: transparent; - } @top-left { content: none; - color: transparent; - } @top-right { content: none; - color: transparent; - } - } @page toc :right { - @top-right { - content: none; - } + @top-right { + content: none; + } } @page toc :left { - @top-left { - content: none; - } + @top-left { + content: none; + } } @page toc :first { @top-left-corner { content: none; - color: transparent; - /* hack for the content none */ } @top-right-corner { content: none; - color: transparent; - /* hack for the content none */ } @top-left { content: none; - color: transparent; - /* hack for the content none */ } @top-right { content: none; - color: transparent; - /* hack for the content none */ } } \ No newline at end of file diff --git a/src/css/layout/pagedjs/pagedjs.css b/src/css/layout/pagedjs/pagedjs.css index 3abaf58f6faa00562b14af88b0f8d22abf561152..bd1024a5df9b4518a35e694a21c816fd116fa4e7 100644 --- a/src/css/layout/pagedjs/pagedjs.css +++ b/src/css/layout/pagedjs/pagedjs.css @@ -14,7 +14,8 @@ @import "page/dedication.css"; @import "page/toc.css"; @import "page/fmbody.css"; -@import "page/chapter.css"; +@import "page/fmbody.css"; @import "page/part.css"; +@import "page/chapter.css"; /* @import "elements/demo.css"; */ diff --git a/src/css/main.css b/src/css/main.css index 9b7cbc47c3f506ecf77743b9dd8653e937c2d5b7..fbd62c1374cfeaef9252ef46349a00b1c1341787 100644 --- a/src/css/main.css +++ b/src/css/main.css @@ -5,4 +5,4 @@ @import "layout/pagedjs/pagedjs.css"; -/* @import "theme/specific.css"; */ +/* @import "theme/specific.css"; */ \ No newline at end of file diff --git a/src/css/theme/book.css b/src/css/theme/book.css index 276a667b0d263fc4320a55eaaf487364eb0e45e6..7e3cd549584f580f95e7dfb49a821ae9fd7ba0db 100755 --- a/src/css/theme/book.css +++ b/src/css/theme/book.css @@ -38,4 +38,5 @@ @import './modules/pictures.css'; @import './modules/reset.css'; /* @import './modules/startChapter.css'; */ -@import './modules/table.css'; \ No newline at end of file +@import './modules/table.css'; + diff --git a/src/css/theme/modules/body.css b/src/css/theme/modules/body.css index e0d0f15cf116d6366c5f9a9d8fe94d516831db03..b5ae83950790c4671e42faf5fa94e7a58fe89488 100755 --- a/src/css/theme/modules/body.css +++ b/src/css/theme/modules/body.css @@ -16,6 +16,8 @@ p { margin: 0; padding: 0; hyphens: auto; + orphans: 0; + widow: 0; &:first-of-type { text-indent: 0; } @@ -46,7 +48,6 @@ a { font-style: inherit; &:hover { color: var(--color-secondary); - border-bottom: 2px solid var(--color-secondary); } } @@ -101,15 +102,15 @@ sup { hr { &:after { content: "* * *"; - height: 17px; + height: var(--font-lineHeight); display: block; text-align: center; - font-size: 9px; - letter-spacing: 1em; + font-size: 13px; + letter-spacing: 0.3em; } break-before: avoid; margin-top: 5px; - margin-bottom: 29px; + margin-bottom: 27px; border: none; &.ls { height: 0px; @@ -117,6 +118,9 @@ hr { content: "\2002"; } } + + p { + text-indent: 0; + } } .small-caps { diff --git a/src/css/theme/modules/chains.css b/src/css/theme/modules/chains.css index ba8513fc714a0d7964baac362dd85ed18ff10f9a..f9ea9d5e0f0c4c11c7acdb4e29d6c835ec8cdc12 100755 --- a/src/css/theme/modules/chains.css +++ b/src/css/theme/modules/chains.css @@ -17,8 +17,9 @@ h3, h4, h5, h6 { - /* widows: 2; */ + widows: 2; hyphens: none; + break-after: avoid; } /* pagebreak avoid */ @@ -102,7 +103,7 @@ h5 + ul > li:first-of-type, h6 + ul > li:first-of-type, li ul, li ol { - page-break-before: avoid; + break-before: avoid; } h1 + p, diff --git a/src/css/theme/modules/endnotes.css b/src/css/theme/modules/endnotes.css index b3c4057d1f3ec23ba514f45c1bff6536977623e6..b5420a6588718764fe4d8b4889a80668f4ed6660 100644 --- a/src/css/theme/modules/endnotes.css +++ b/src/css/theme/modules/endnotes.css @@ -32,4 +32,11 @@ .footnoteRef { font-style: normal; +} + + +.inline-note-callout { + /* color: red; */ + /* font-size: 5em; */ + line-height: 0; } \ No newline at end of file diff --git a/src/css/theme/modules/frontMatter.css b/src/css/theme/modules/frontMatter.css index 993a9fc0768fad408a84523d1da579cdc2981466..e523ddfeb64e24dde1e48d33901cea93d068152d 100644 --- a/src/css/theme/modules/frontMatter.css +++ b/src/css/theme/modules/frontMatter.css @@ -1,18 +1,28 @@ .fm-body, +.front-component, .toc, -.notes { +.notes, +.back-component, +.body-part { header { margin: 0; - padding-top: 38px; - min-height: 289px; + padding-top: 0; + /* start on line 18 */ + min-height: 272px; + padding-top: 46px; /* to test the heading */ /* background-color: rgba(0, 0, 0, 0.5); */ - h1.fmh { + .cn::after { + border: none; + } + h1.fmh, h1.ct { font-size: 16px; line-height: 1; + /* font-feature-settings: "smcp", "c2sc"; */ font-variant: all-small-caps; - font-feature-settings: "smcp", "c2sc"; - letter-spacing: 0.5pt; + /* track 100 */ + letter-spacing: 0.1em; + margin-top: 0; margin-bottom: 0; text-align: center; font-weight: 400; @@ -80,28 +90,6 @@ } } -.toc { - ul { - font-size: 13px; - line-height: 17px; - list-style-type: none; - text-indent: 0; - li { - margin-bottom: 0; - margin-left: 0; - padding-top: 0; - line-height: var(--font-lineHeight); - font-size: var(--font-size); - text-indent: 0; - &:before { - content: ""; - font-size: 12px; - padding-right: 0; - color: var(--color-primary); - } - } - } -} .crossRef li p { &:after { diff --git a/src/css/theme/modules/header.css b/src/css/theme/modules/header.css index 31ffd569e878031f0bd50d76d42c39d777ecebf3..05deba6ec71e26beb1f0a00e311f3ebcdb608386 100755 --- a/src/css/theme/modules/header.css +++ b/src/css/theme/modules/header.css @@ -9,30 +9,41 @@ section { /* // as known as h1 in the word doc */ - h2 { + h1 { /* // when font stuff will be used: font-variant-caps: all-small-caps; */ font-family: var(--font-body); font-size: 12px; margin: 0 auto; max-width: 361px; break-inside: avoid; - line-height: 17px; + line-height: var(--font-lineHeight); break-after: avoid; text-align: center; - letter-spacing: 2pt; - text-transform: uppercase; - /* // margin-top: 34px; */ + letter-spacing: 0.1em; + text-transform: lowercase; + font-variant: all-small-caps; font-weight: 400; + margin-top: calc(var(--font-lineHeight) * 1); + margin-bottom: calc(var(--font-lineHeight) * 1); &:first-of-type { - /* // margin-top: 0; */ } + + + & + h2 { + margin-top: -12px; + } + } + + + header + h1 { + margin-top: 0; } /* // as known as h2 in the word document */ - h3 { + h2 { font-size: 12px; - line-height: 17px; + line-height: var(--font-lineHeight); font-style: italic; margin: 0 auto; @@ -40,7 +51,9 @@ section { text-align: center; font-weight: 400; /* @extend .old-style-figures; */ - + margin-top: calc(var(--font-lineHeight) * 1); + margin-top: calc(20px * 1); + margin-bottom: calc(12px); em { font-style: normal; } @@ -53,16 +66,18 @@ section { } /* // as known as h3 in the word document */ - h4 { + h3 { font-size: 13px; - line-height: 13pt; - margin-top: 26pt; + line-height: var(--font-lineHeight); + margin-top: calc(var(--font-lineHeight) * 1); font-style: italic; text-align: left; - display: inline-bloc; + display: inline-block; + font-weight: 400; + margin-bottom: 0; &:after { - content: ". "; + content: ". "; display: inline-block; } diff --git a/src/css/theme/modules/list.css b/src/css/theme/modules/list.css index 3bf4640893c1ae870b37535a9bb81997c52b1e86..b421b1a799cfeb88c6657dd7e36b535b4fba5878 100755 --- a/src/css/theme/modules/list.css +++ b/src/css/theme/modules/list.css @@ -3,7 +3,6 @@ ul, ol { margin: 0; - /* // margin-bottom: 17px; */ padding: 0; text-indent: 0; ul, @@ -22,31 +21,23 @@ ol, ul { list-style-position: outside; font-variant-numeric: oldstyle-nums; font-feature-settings: "onum"; - lh.lpti { + /* lh.lpti { margin-left: 1.5em; letter-spacing: 1px; - /* // margin-top: 10px; */ - /* // margin-bottom: 3px; */ - margin-top: 16px; - margin-bottom: 2px; - @extend .small-caps; + margin-top: 16px; + margin-bottom: 2px; + display: block; & + li { margin-top: 0; } - } + } */ li { margin-left: 1.5em; - /* // margin-left: 1em; */ - } - & > li:first-of-type { - margin-top: 17px; - /* // background: red; */ } - li:nth-of-type(n + 9) { - margin-left: 1.5em; } -} + + /* // unordered list */ ul { @@ -61,5 +52,57 @@ ul { } +/* ordered list */ + +ol { + counter-reset: list; + list-style-type: none; + margin-top: calc(var(--font-lineHeight) * 0.5); +} +ol li { + margin-left: 6ch; + position: relative; + counter-increment: list; + &::before { + position: absolute; + content: counter(list) "."; + /* margin-right: 1.5ch; */ + width: 2ch; + text-align: right; + padding-right: 1em; + background: white; + top: 0; + left: -4ch; + } + &:last-of-type { + margin-bottom: calc(var(--font-lineHeight) * 0.5); + } + } + + ol li:first-of-type { + margin-top: calc(var(--font-lineHeight) * 0.5); + } + + + + /* question and answers */ + + .di { + li { + &::before { + content: "Q."; + } + &:nth-of-type(2n){ + &::before { + content: "A."; + } + } + } + } + + + +/* orphan and widows for list */ +li:first-of-type { break-after: avoid;} diff --git a/src/css/theme/modules/page-part.css b/src/css/theme/modules/page-part.css index b00932d03bd52d7de3930a7bf75fe8ffdb3183ea..c9146b44e42bdb9aae937f1d35e4e4ae48efca8c 100644 --- a/src/css/theme/modules/page-part.css +++ b/src/css/theme/modules/page-part.css @@ -1,4 +1,5 @@ .part, +.body-part, [data-type="part"] { header { background: rgba(0.0.0.0, 5); @@ -7,52 +8,13 @@ } h1.ct { font-style: normal; - font-size: 3em; - line-height: 1.3; - color: white; - font-weight: 200; - margin-top: 0; - } - blockquote { - color: #7E479A; - text-align: center; - font-size: 2em; - margin: 0; - line-height: 34px; - } - blockquote + p { - /* margin-top: 0.8em ; - */ - } - blockquote+p:before { - content: ""; - border-bottom: 1px solid #7E479A; - display: block; - width: 32px; - height: 15px; - margin: auto; - } - p { - color: #7E479A; - text-align: center; - font-style: italic; - font-size: 1.5em; - margin-top: 1em; - line-height: 1.2; - - } - cite { - font-size: 1em; - display: block; + font-size: 15pt; text-align: center; - color: #7E479A; - font-style: normal; - margin-top: 34px; - &:before { - content: ""; - } + line-height: 16pt; + font-weight: 200; + margin-top: 0; } .part-number { display: none; } -} \ No newline at end of file +} diff --git a/src/css/theme/modules/page-title.css b/src/css/theme/modules/page-title.css index c8c80ebf141ec4537b35ce593ee51ac952e34166..a7a00924d430270af6588e0948331a488d20581f 100644 --- a/src/css/theme/modules/page-title.css +++ b/src/css/theme/modules/page-title.css @@ -1,132 +1,112 @@ .titlepage { - text-indent: 0; - - header { - width: 20pc; - margin: 0 auto; - margin-top: 35px; - .ti { - font-size: 34px; - line-height: 39px; - text-align: center; - font-weight: 400; - margin-top: 0; - margin-bottom: 0; - /* // background: var(--tester); */ - - &:after { - /* // @include ruler(8pc, 0.8pcpc); */ - - } - } - - p.sti { - font-size: 14pt; - line-height: 17pt; - text-align: center; - font-weight: 400; - margin-top: 8.8pt; - font-style: italic; - - &:after { - /* // @include ruler(8pc, -0.48pc); */ - } - } - - &:after { - /* // insert torn here */ - /* // left: 10.5pc; */ - content: ' '; - display: flex; - width: 2pc; - margin: 0 auto; - margin-top: 33pt; - height: 0; - box-shadow: 0 0 0 0.3px; - /* border-bottom: 1px solid black; // was 0.3pt */ - } + text-indent: 0; + string-set: booktitle content(text); + header { + width: 20pc; + margin: 0 auto; + h1.booktitle { + /* 26pt */ + font-size: 34px; + /* 29pt */ + line-height: calc(var(--font-lineHeight) * 2.5); + text-align: center; + font-weight: 400; + margin-top: 30px; + margin-bottom: 0; + /* // background: var(--tester); */ } - - .torn { - /* // for now, torn is placed after the header to keep the chaining of element running. */ - /* width: 2pc; + /* book subtitle */ + p.sti { + font-size: 14pt; + line-height: 17pt; + text-align: center; + font-weight: 400; + margin-top: 8.8pt; + font-style: italic; + &:after {} + } + &:after { + content: ' '; + display: flex; + width: 2pc; + margin: 0 auto; + margin-top: 33pt; + height: 0; + box-shadow: 0 0 0 0.3px; + } + } + .torn { + /* // for now, torn is placed after the header to keep the chaining of element running. */ + /* width: 2pc; margin: 0 auto; margin-top: 4pc; text-align: center; margin-top: 2.17pc; height: 1pt; border-bottom: 0.3pt solid black; */ - - } - - .edby { - font-size: 12px; - line-height: 16px; - /* margin-top: 6pc; */ - margin-top: 48px; - font-style: italic; - text-align: center; - text-indent: 0; - - &:before { - /* // @include ruler(24pt, 0.66pc); */ - } - } - - .au { - font-weight: 400; - font-size: 16pt; - line-height: 22pt; - text-align: center; - margin: 0 auto; - text-indent: 0; - width: 20pc; - - &:after { - /* // @include ruler(22pt, -7.2pt); */ - } - } - - /* // chains for placing the author */ - .edby + .au { - margin-top: 5.3pt; - } - - header + .au { - margin-top: 6.3pc; + } + /* edited by */ + .edby { + font-size: 12px; + line-height: 16px; + /* margin-top: 6pc; */ + margin-top: 48px; + font-style: italic; + text-align: center; + text-indent: 0; + &:before { + /* // @include ruler(24pt, 0.66pc); */ } - - /* // additionnal contrib */ - - .aux { - font-size: 12px; - line-height: 16px; - font-style: italic; - text-align: center; - text-indent: 0; - margin: 0 auto; - margin-top: 0.56pc; - width: 20pc; + } + /* author */ + .au { + font-weight: 400; + font-size: 16pt; + line-height: 22pt; + text-align: center; + margin: 0 auto; + text-indent: 0; + width: 20pc; + &:after { + /* // @include ruler(22pt, -7.2pt); */ } + } + /* // chains for placing the author */ + .edby+.au { + margin-top: 5.3pt; + } + header+.au { + margin-top: 6.3pc; + } + /* // additionnal contrib */ + /* additionals contrbutors */ + .aux { + font-size: 12px; + line-height: 16px; + font-style: italic; + text-align: center; + text-indent: 0; + margin: 0 auto; + margin-top: 0.56pc; + width: 20pc; + } } +/* publisher and logos are out of the section. Should be added in the html template */ -/* // publisher and logos are out of the section. */ .publisher { - p.pub { - font-size: 13px; - letter-spacing: 0.75pt; - text-transform: uppercase; - text-align: center; - margin-top: 1.3pc - } - - #ucp-logo svg { - display: block; - margin: 0 auto; - - &:after { - /* // @include ruler(28pt , -4pt) */ - } + p.pub { + font-size: 13px; + letter-spacing: 0.75pt; + text-transform: uppercase; + text-align: center; + margin-top: 1.3pc + } + #ucp-logo svg { + display: block; + margin: 0 auto; + &:after { + /* // @include ruler(28pt , -4pt) */ } + } } \ No newline at end of file diff --git a/src/css/theme/modules/page-toc.css b/src/css/theme/modules/page-toc.css index 7fcdd4a4b9201e61b13b474029251828e73b2857..cbe5ec2469175a7b62800ec9871ccd0b0a57d093 100644 --- a/src/css/theme/modules/page-toc.css +++ b/src/css/theme/modules/page-toc.css @@ -1,62 +1,95 @@ -.toc ul { - counter-reset: part; -} - -.c-one { - font-style: italic; - text-align: left; - font-size: 13px; - line-height: 17px; -} - -.c-two { - & > p { - margin-top: 11px; - counter-increment: part; - - /* @extend .small-caps; */ - - font-size: 13px; - line-height: 17px; - letter-spacing: 2px; - margin-left: 0; - - &:before { - content: "part " counter(part, upper-roman); - font-variant: all-small-caps; - } - } -} - -.c-three { +.toc { + counter-reset: toc-part toc-chapter; + ol, + ul { + list-style-type: none; margin-left: 0; padding-left: 0; - - p { - font-size: 13px; - line-height: 17px; + margin: 0; + li { + margin: 0; + position: relative; + } + } + .toc-part { + margin-top: var(--font-lineHeight); + } + .toc-front, + .toc-chapter, + .toc-part, + .toc-back { + position: relative; + a { + display: inline-block; + width: 80%; + &::after { + content: "000"; + font-weight: 400; + font-style: italic; + content: target-counter(attr(href), page); + letter-spacing: 0; + float: right; + /* z-index: ; */ + z-index: 2000; + background: white; text-indent: 0; - padding-left: 0; - list-style-position: outside; + width: 4ch; + position: absolute; + text-align: right; + right: 0; + } } + } + .toc-front, + .toc-back { + font-style: italic; + margin-top: 0; + &+.toc-body { + margin-top: var(--font-lineHeight); + } + } + .toc-part { + font-variant: all-small-caps; + letter-spacing: 0.1em; + /* if reset per chapter, uncomment the next line */ + counter-reset: toc-chapter; + margin: 0; + margin-top: calc(var(--font-lineHeight) * 2); + &::before { + content: none; + } + } + .toc-chapter { + margin-top: var(--font-lineHeight); + counter-increment: toc-chapter; + margin-top: 16px; + margin-left: 3em; + text-indent: 0; + &:nth-of-type(n+9) { + margin-left: 3em; + } + &:before { + display: inline-block; + position: absolute; + z-index: 43000; + content: counter(toc-chapter) "."; + /* margin-right: 1.5ch; */ + width: 4ch; + text-align: right; + padding-right: 1em; + background: white; + top: 0; + left: -7ch; + } + } + .toc-chapter+.toc-back, + .toc-part+.toc-back { + margin-top: calc(var(--font-lineHeight) * 2); + } } -.c-four { - font-size: 12px; - line-height: 17px; -} - -.c-five { -} - -.toc ul + ul.c-three { - margin-left: 0; -} - -.toc ul { - margin-left: 0; -} - -.toc ul > li:first-of-type { - margin-top: 0;; +.toc-back, .toc-front, .toc-unnumbered { + &::before { + content: none; + } } \ No newline at end of file diff --git a/src/css/theme/modules/startChapter.css b/src/css/theme/modules/startChapter.css index e52dd845601a2bef07cd394a299420a4a953b325..09254838bd3e95d1368199ff50d0e8e86bfb9c2a 100644 --- a/src/css/theme/modules/startChapter.css +++ b/src/css/theme/modules/startChapter.css @@ -1,59 +1,68 @@ +.body-chapter header, .chapter header { - /* // minimum height to get the starter */ - min-height: calc(var(--font-lineHeight) * 17); - /* // minimum padding bottom, set to start the beginning of the chapter */ - padding-bottom: calc(var(--font-lineHeight)* 4); - /* box-shadow: 0 0 0 1px red; */ - padding-top: 42px; + min-height: calc(var(--font-lineHeight) * 16); + /* // minimum padding bottom, set to start the beginning of the chapter */ + padding-bottom: calc(var(--font-lineHeight) * 4); + /* box-shadow: 0 0 0 1px red; */ + padding-top: 42px; } .chapter-number, .cn { - - /* // chapter Number : 12 pt Minion Pro old style figures, centered on 4th text line. Omit word “chapter.” */ - - text-align: center; - font-size: 16px; - letter-spacing: -0.1px; - /* // border-bottom: 0.5px solid black; */ - - display: block; - margin: 0 auto; - margin-top: 7px; - text-align: center; - letter-spacing: -1px; - clear: both; - width: 32px; - height: 31px; + /* // chapter Number : 12 pt Minion Pro old style figures, centered on 4th text line. Omit word “chapter.” */ + text-align: center; + font-size: 16px; + letter-spacing: -0.1px; + /* // border-bottom: 0.5px solid black; */ + display: block; + margin: 0 auto; + margin-top: 7px; + text-align: center; + letter-spacing: -1px; + clear: both; + width: 32px; + height: 31px; + position: relative; +} + +.cn::after { + border-bottom: 1px solid black; + width: 100%; + height: 0; + position: absolute; + display: block; + content: ' '; + bottom: 7px; } .cn+.ct { - margin-top: 12px; + margin-top: 7px; } -.ct { - padding: 0 45px; - font-size: 20px; - line-height: calc(var(--font-lineHeight) * 2); - font-size: 24px; - text-transform: none; - font-weight: 400; - text-align: center; - text-transform: capitalize; +.body-chapter .ct { + padding: 0 45px; + font-size: 20px; + line-height: calc(var(--font-lineHeight) * 2); + font-size: 24px; + text-transform: none; + font-weight: 400; + text-align: center; + text-transform: capitalize; + text-align: center; } .ct+.cst { - margin-top: 10px; + margin-top: 10px; } .cst { - padding: 0 55px; - font-size: var(--font-lineHeight); - line-height: var(--font-lineHeight); - font-style: italic; - text-align: center; - text-transform: capitalize; + padding: 0 55px; + font-size: var(--font-lineHeight); + line-height: var(--font-lineHeight); + font-style: italic; + text-align: center; + text-transform: capitalize; } /* // no author for now @@ -66,62 +75,56 @@ text-indent: 0; text-align: center; } */ -.cst + blockquote { - margin-top: 35px; + +.cst+blockquote { + margin-top: 35px; } blockquote { margin: 0 auto; - & + blockquote { + &+blockquote { margin-top: calc(var(--font-lineHeight) * 2); } } -.cep { +.cep, .sep { width: 352px; - - p { - font-size: 12px; - line-height: var(--font-lineHeight); - font-style: italic; - text-align: justify; - text-indent: 0; - em { - font-style: normal; - } + + font-size: 12px; + line-height: var(--font-lineHeight); + font-style: italic; + text-align: justify; + text-indent: 0; + em { + font-style: normal; } } - -.cepo { - width: 252px; - - p { - font-size: 12px; - line-height: var(--font-lineHeight); - font-style: italic; - text-align: left; - white-space: pre-wrap; - text-indent: 0; - margin-left: 12px; - text-indent: -12px; - em { - font-style: normal; - } +.cepo, .sepo { + width: 252px; + font-size: 12px; + line-height: var(--font-lineHeight); + font-style: italic; + text-align: left; + white-space: pre-wrap; + text-indent: 0; + margin-left: 12px; + text-indent: -12px; + em { + font-style: normal; } } - -.cepsn { - @extend .small-caps; - font-size: 11px; - line-height: var(--font-lineHeight); - font-style: normal; - letter-spacing: 0.5px; - margin: 0 auto; - text-align: justify; - text-indent: 0; - padding-bottom: 15px; +.cepsn, .sepsn , .cepo + cite , .sepo + cite ,{ + font-size: 11px; + line-height: var(--font-lineHeight); + font-style: normal; + letter-spacing: 0.1em; + margin: 0 auto; + text-align: justify; + text-indent: 0; + padding-bottom: 15px; + font-variant: all-small-caps } .ct+p, @@ -131,21 +134,26 @@ blockquote { .cepo+p, .cepsn+p, header+p { - text-indent: 0; + text-indent: 0; } /* when there is a chapter-number header starting point when the last element of the header is a chapter title */ + header :last-child.ct { - padding-bottom: 8px; + padding-bottom: 8px; } /* when the last element of the header is a chapter subtitle */ + header :last-child.cst { - padding-bottom: 1px; + padding-bottom: 1px; } header :last-child.cepsn { - padding-bottom: 1px; -} \ No newline at end of file + padding-bottom: 1px; +} + + + diff --git a/src/css/theme/modules/vars.css b/src/css/theme/modules/vars.css index fffc0b372f066106503b35840dc65a6d294bdabd..d6bb98fd93823e668d51d95c3d6be9d448ade8ae 100755 --- a/src/css/theme/modules/vars.css +++ b/src/css/theme/modules/vars.css @@ -7,7 +7,6 @@ --font-code: "Courier New"; --font-toc: "Minion Pro", sans-serif; --font-smallCaps: "Minion Pro", sans-serif; - --font-bodyLink: var(--font-head); @@ -46,8 +45,16 @@ /* lumino -> font-size: 10 pt */ /* lumino line height: 12.5pt */ + + + + /* pixel: 13px - 9.75 pt */ + /* --font-size: 13px; */ + /* pixel 12 px - 17px */ + /* --font-lineHeight: 17px; */ --font-size: 13px; /* 9.75 pt*/ - --font-lineHeight: 17px; /* 12 pt*/ + --font-lineHeight: 16px; /* 12 pt*/ + --textAlign: justify; --letterSpacing: 0; diff --git a/src/css/theme/page/page-part.css b/src/css/theme/page/page-part.css deleted file mode 100644 index b00932d03bd52d7de3930a7bf75fe8ffdb3183ea..0000000000000000000000000000000000000000 --- a/src/css/theme/page/page-part.css +++ /dev/null @@ -1,58 +0,0 @@ -.part, -[data-type="part"] { - header { - background: rgba(0.0.0.0, 5); - min-height: 240px; - padding-top: 6em; - } - h1.ct { - font-style: normal; - font-size: 3em; - line-height: 1.3; - color: white; - font-weight: 200; - margin-top: 0; - } - blockquote { - color: #7E479A; - text-align: center; - font-size: 2em; - margin: 0; - line-height: 34px; - } - blockquote + p { - /* margin-top: 0.8em ; - */ - } - blockquote+p:before { - content: ""; - border-bottom: 1px solid #7E479A; - display: block; - width: 32px; - height: 15px; - margin: auto; - } - p { - color: #7E479A; - text-align: center; - font-style: italic; - font-size: 1.5em; - margin-top: 1em; - line-height: 1.2; - - } - cite { - font-size: 1em; - display: block; - text-align: center; - color: #7E479A; - font-style: normal; - margin-top: 34px; - &:before { - content: ""; - } - } - .part-number { - display: none; - } -} \ No newline at end of file diff --git a/src/fonts/MinionPro-Bold.otf b/src/fonts/MinionPro-Bold.otf new file mode 100644 index 0000000000000000000000000000000000000000..b0aed20e087df38ad6879228b0bf54dd77f84837 Binary files /dev/null and b/src/fonts/MinionPro-Bold.otf differ diff --git a/src/fonts/MinionPro-BoldIt.otf b/src/fonts/MinionPro-BoldIt.otf new file mode 100644 index 0000000000000000000000000000000000000000..58d0a68bf14ea31fd3d45f7a0d12e61e188677ec Binary files /dev/null and b/src/fonts/MinionPro-BoldIt.otf differ diff --git a/src/fonts/MinionPro-It.otf b/src/fonts/MinionPro-It.otf new file mode 100644 index 0000000000000000000000000000000000000000..b6acf8ffcebc35beac5bb0778a5aa86355e57263 Binary files /dev/null and b/src/fonts/MinionPro-It.otf differ diff --git a/src/fonts/MinionPro-Medium.otf b/src/fonts/MinionPro-Medium.otf new file mode 100644 index 0000000000000000000000000000000000000000..50e612e40c2b1f420796616583cae6d9668904c3 Binary files /dev/null and b/src/fonts/MinionPro-Medium.otf differ diff --git a/src/fonts/MinionPro-MediumIt.otf b/src/fonts/MinionPro-MediumIt.otf new file mode 100644 index 0000000000000000000000000000000000000000..f3fc21539a39ed7229d5517a3e3e93dfacb671c5 Binary files /dev/null and b/src/fonts/MinionPro-MediumIt.otf differ diff --git a/src/fonts/MinionPro-Regular.otf b/src/fonts/MinionPro-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..546e91d0f49730020bb3cb1b436c5c79c090c5f3 Binary files /dev/null and b/src/fonts/MinionPro-Regular.otf differ diff --git a/src/fonts/MinionPro-Semibold.otf b/src/fonts/MinionPro-Semibold.otf new file mode 100644 index 0000000000000000000000000000000000000000..731f798721ee7af39f310ce672762ae146eab66d Binary files /dev/null and b/src/fonts/MinionPro-Semibold.otf differ diff --git a/src/fonts/MinionPro-SemiboldIt.otf b/src/fonts/MinionPro-SemiboldIt.otf new file mode 100644 index 0000000000000000000000000000000000000000..1d39423cd87bc04c64fe9b5e623fa4c483ab09b5 Binary files /dev/null and b/src/fonts/MinionPro-SemiboldIt.otf differ diff --git a/src/js/numberingHeaders.js b/src/js/numberingHeaders.js new file mode 100644 index 0000000000000000000000000000000000000000..9fc7505c4e9cd177dd5c62c6c46cea352b864bfd --- /dev/null +++ b/src/js/numberingHeaders.js @@ -0,0 +1,22 @@ +function numHead() { + const titles = document.querySelectorAll('.ct'); + let i = 0; + let j = 0; + titles.forEach(title => { + const num = document.createElement('div'); + num.classList.add('cn'); + + if ( title.closest('section').classList.contains("body-part") ) { + i = 1; + j= j + 1; + num.textContent = j; + + } + else if (title.closest('section').classList.contains("body-chapter")) { + num.textContent = i; + i++; + } + const locator = title.parentNode; + locator.insertBefore(num, title); + }) +} diff --git a/src/js/paged.js b/src/js/paged.js index 01d805404c8867a7e6026ad24104952e481808bc..dc1dd7e982852c15a392a0bcc2edbf4babd05325 100644 --- a/src/js/paged.js +++ b/src/js/paged.js @@ -45,6 +45,14 @@ } } + function isElement(node) { + return node && node.nodeType === 1; + } + + function isText(node) { + return node && node.nodeType === 3; + } + function *walk(start, limiter) { let node = start; @@ -102,6 +110,30 @@ return after; } + function nodeBefore(node, limiter) { + let before = node; + if (before.previousSibling) { + if (limiter && node === limiter) { + return; + } + before = before.previousSibling; + } else { + while (before) { + before = before.parentNode; + if (limiter && before === limiter) { + before = undefined; + break; + } + if (before && before.previousSibling) { + before = prev.previousSibling; + break; + } + } + } + + return before; + } + function elementAfter(node, limiter) { let after = nodeAfter(node); @@ -112,19 +144,6 @@ return after; } - function stackChildren(currentNode, stacked) { - let stack = stacked || []; - - stack.unshift(currentNode); - - let children = currentNode.children; - for (var i = 0, length = children.length; i < length; i++) { - stackChildren(children[i], stack); - } - - return stack; - } - function rebuildAncestors(node) { let parent, ancestor; let ancestors = []; @@ -174,6 +193,55 @@ return fragment; } + /* + export function split(bound, cutElement, breakAfter) { + let needsRemoval = []; + let index = indexOf(cutElement); + + if (!breakAfter && index === 0) { + return; + } + + if (breakAfter && index === (cutElement.parentNode.children.length - 1)) { + return; + } + + // Create a fragment with rebuilt ancestors + let fragment = rebuildAncestors(cutElement); + + // Clone cut + if (!breakAfter) { + let clone = cutElement.cloneNode(true); + let ref = cutElement.parentNode.getAttribute('data-ref'); + let parent = fragment.querySelector("[data-ref='" + ref + "']"); + parent.appendChild(clone); + needsRemoval.push(cutElement); + } + + // Remove all after cut + let next = nodeAfter(cutElement, bound); + while (next) { + let clone = next.cloneNode(true); + let ref = next.parentNode.getAttribute('data-ref'); + let parent = fragment.querySelector("[data-ref='" + ref + "']"); + parent.appendChild(clone); + needsRemoval.push(next); + next = nodeAfter(next, bound); + } + + // Remove originals + needsRemoval.forEach((node) => { + if (node) { + node.remove(); + } + }); + + // Insert after bounds + bound.parentNode.insertBefore(fragment, bound.nextSibling); + return [bound, bound.nextSibling]; + } + */ + function needsBreakBefore(node) { if( typeof node !== "undefined" && typeof node.dataset !== "undefined" && @@ -219,6 +287,195 @@ return false; } + function *words(node) { + let currentText = node.nodeValue; + let max = currentText.length; + let currentOffset = 0; + let currentLetter; + + let range; + + while(currentOffset < max) { + currentLetter = currentText[currentOffset]; + if (/^\S$/.test(currentLetter)) { + if (!range) { + range = document.createRange(); + range.setStart(node, currentOffset); + } + } else { + if (range) { + range.setEnd(node, currentOffset); + yield range; + range = undefined; + } + } + + currentOffset += 1; + } + + if (range) { + range.setEnd(node, currentOffset); + yield range; + range = undefined; + } + } + + function *letters(wordRange) { + let currentText = wordRange.startContainer; + let max = currentText.length; + let currentOffset = wordRange.startOffset; + let currentLetter; + + let range; + + while(currentOffset < max) { + currentLetter = currentText[currentOffset]; + range = document.createRange(); + range.setStart(currentText, currentOffset); + range.setEnd(currentText, currentOffset+1); + + yield range; + + currentOffset += 1; + } + } + + function isContainer(node) { + let container; + + if (typeof node.tagName === "undefined") { + return true; + } + + if (node.style.display === "none") { + return false; + } + + switch (node.tagName) { + // Inline + case "A": + case "ABBR": + case "ACRONYM": + case "B": + case "BDO": + case "BIG": + case "BR": + case "BUTTON": + case "CITE": + case "CODE": + case "DFN": + case "EM": + case "I": + case "IMG": + case "INPUT": + case "KBD": + case "LABEL": + case "MAP": + case "OBJECT": + case "Q": + case "SAMP": + case "SCRIPT": + case "SELECT": + case "SMALL": + case "SPAN": + case "STRONG": + case "SUB": + case "SUP": + case "TEXTAREA": + case "TIME": + case "TT": + case "VAR": + // Content + case "P": + case "H1": + case "H2": + case "H3": + case "H4": + case "H5": + case "H6": + case "FIGCAPTION": + case "BLOCKQUOTE": + case "PRE": + case "LI": + case "TR": + case "DT": + case "DD": + case "VIDEO": + case "CANVAS": + container = false; + break; + default: + container = true; + } + + return container; + } + + function cloneNode(n, deep=false) { + return n.cloneNode(deep); + } + + function findElement(node, doc) { + const ref = node.getAttribute("data-ref"); + return findRef(ref, doc); + } + + function findRef(ref, doc) { + return doc.querySelector(`[data-ref='${ref}']`); + } + + function validNode(node) { + if (isText(node)) { + return true; + } + + if (isElement(node) && node.dataset.ref) { + return true; + } + + return false; + } + + function prevValidNode(node) { + while (!validNode(node)) { + if (node.previousSibling) { + node = node.previousSibling; + } else { + node = node.parentNode; + } + + if (!node) { + break; + } + } + + return node; + } + + + function indexOf(node) { + let parent = node.parentNode; + if (!parent) { + return 0; + } + return Array.prototype.indexOf.call(parent.childNodes, node); + } + + function child(node, index) { + return node.childNodes[index]; + } + + function isVisible(node) { + if (isElement(node) && window.getComputedStyle(node).display !== "none") { + return true; + } else if (isText(node) && + node.textContent.trim().length && + window.getComputedStyle(node.parentNode).display !== "none") { + return true; + } + return false; + } + function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } @@ -317,10 +574,10 @@ return (str.contains("dwa") === true) && (str.contains("foo") === false); }; - var indexOf = String.prototype.indexOf; + var indexOf$1 = String.prototype.indexOf; var shim$2 = function (searchString/*, position*/) { - return indexOf.call(this, searchString, arguments[1]) > -1; + return indexOf$1.call(this, searchString, arguments[1]) > -1; }; var contains = isImplemented$2() @@ -588,8 +845,6 @@ } } - const _requestIdleCallback = 'requestIdleCallback' in window ? requestIdleCallback : requestAnimationFrame; - const PER_PAGE_CHECK = 4; /** @@ -598,250 +853,142 @@ */ class Layout { - constructor(element, wrapper, hooks) { + constructor(element, hooks) { this.element = element; - this.wrapper = wrapper; - let space = this.element.getBoundingClientRect(); - this.width = Math.round(space.width); + this.bounds = this.element.getBoundingClientRect(); if (hooks) { this.hooks = hooks; } else { this.hooks = {}; + this.hooks.layout = new Hook(); this.hooks.renderNode = new Hook(); this.hooks.layoutNode = new Hook(); this.hooks.overflow = new Hook(); } - } - - getStart(content, breakToken) { - let start = content; - let node = breakToken.node; - - if (node) { - start = node; - } - - return start; - } - - isContainer(node) { - let container; - - if (typeof node.tagName === "undefined") { - return true; - } - - if (node.style.display === "none") { - return false; - } - - switch (node.tagName) { - // Inline - case "A": - case "ABBR": - case "ACRONYM": - case "B": - case "BDO": - case "BIG": - case "BR": - case "BUTTON": - case "CITE": - case "CODE": - case "DFN": - case "EM": - case "I": - case "IMG": - case "INPUT": - case "KBD": - case "LABEL": - case "MAP": - case "OBJECT": - case "Q": - case "SAMP": - case "SCRIPT": - case "SELECT": - case "SMALL": - case "SPAN": - case "STRONG": - case "SUB": - case "SUP": - case "TEXTAREA": - case "TIME": - case "TT": - case "VAR": - // Content - case "P": - case "H1": - case "H2": - case "H3": - case "H4": - case "H5": - case "H6": - case "FIGCAPTION": - case "BLOCKQUOTE": - case "PRE": - case "LI": - case "TR": - case "DT": - case "DD": - case "VIDEO": - case "CANVAS": - container = false; - break; - default: - container = true; - } - return container; } - layout(space, content, styleMap, edges, breakToken) { - let start = content; - if (breakToken.node) { - start = this.getStart(content, breakToken); - } - - let walker = walk(start, content); + renderTo(wrapper, source, breakToken, bounds=this.bounds) { + let start = this.getStart(source, breakToken); + let walker = walk(start, source); let node; let done; let next; - let hasOverflow = false; + let hasContent = false; let newBreakToken; - let after; let check = 0; - let dest = document.createDocumentFragment(); - - let rendered; - let shallow = true; - - while (!done && !hasOverflow) { + while (!done && !newBreakToken) { next = walker.next(); node = next.value; done = next.done; - if (node) { - this.hooks.layoutNode.trigger(node); - - // Check if the rendered element has a breakBefore set - if (hasContent && (needsBreakBefore(node) || needsPreviousBreakAfter(node) || needsPageBreak(node))) { - // Check for overflow - hasOverflow = this.hasOverflow(); - - if (hasOverflow) { - let overflow = this.overflow(this.element); + if (!node) { + newBreakToken = this.findBreakToken(wrapper, source, bounds); + return newBreakToken; + } - if (overflow) { + /* + let exists; + if (isElement(node)) { + exists = findElement(node, wrapper); + } else { + exists = false; + } - newBreakToken = this.findBreakToken(overflow, content); + if (exists) { + console.log("found", exists); + break; + } + */ - if (newBreakToken && newBreakToken.node) { - this.removeOverflow(overflow); - } + this.hooks && this.hooks.layoutNode.trigger(node); - break; + // Check if the rendered element has a break set + if (hasContent && this.shouldBreak(node)) { + newBreakToken = this.findBreakToken(wrapper, source, bounds); - } - } else { - // Break layout with current node - newBreakToken = { - node: node, - offset: 0 - }; - break; - } + if (!newBreakToken) { + newBreakToken = this.breakAt(node); } - shallow = this.isContainer(node); + break; + } - rendered = this.render(node, this.wrapper, breakToken, shallow); + // Should the Node be a shallow or deep clone + let shallow = isContainer(node); - if (!hasContent) { - // Only register visible content - if (rendered.nodeType === 1 && window.getComputedStyle(rendered).display !== "none") { - hasContent = true; - } else if (rendered.nodeType === 3 && - rendered.textContent.trim().length && - window.getComputedStyle(rendered.parentNode).display !== "none") { - hasContent = true; - } - } - - if (!shallow) { - after = nodeAfter(node, content); - walker = walk(after, content); - } + let rendered = this.append(node, wrapper, breakToken, shallow); + // Check if layout has content yet + if (!hasContent) { + hasContent = isVisible(node); + } - } else { - check = 1000; // Force check + // Skip to the next node if a deep clone was rendered + if (!shallow) { + walker = walk(nodeAfter(node, source), source); } - // Only check every 4 elements + // Only check every few elements if (check >= PER_PAGE_CHECK) { check = 0; - hasOverflow = this.hasOverflow(); - } - - if (hasOverflow) { - - let overflow = this.overflow(this.element); - if (overflow) { - - newBreakToken = this.findBreakToken(overflow, content); - - if (newBreakToken && newBreakToken.node) { - this.removeOverflow(overflow); - } - - break; - - } else { - // Underflow - hasOverflow = false; - } + this.hooks && this.hooks.layout.trigger(wrapper, this); + newBreakToken = this.findBreakToken(wrapper, source, bounds); } check += 1; } - _requestIdleCallback(() => { - this.listened = this.listeners(); - }); - - return newBreakToken; + } + breakAt(node, offset=0) { + return { + node, + offset + } } - hasOverflow() { - let width = Math.max(Math.floor(this.wrapper.getBoundingClientRect().width), this.element.scrollWidth); - return this.width < width; + shouldBreak(node) { + return needsBreakBefore(node) || needsPreviousBreakAfter(node) || needsPageBreak(node); } - render(node, dest, breakToken, shallow=true, rebuild=true) { + getStart(source, breakToken) { + let start; + let node = breakToken && breakToken.node; - let clone = this.createDOMNode(node, !shallow); + if (node) { + start = node; + } else { + start = source.firstChild; + } - this.hooks.renderNode.trigger(clone); + return start; + } - if (node.parentNode && node.parentNode.nodeType === 1) { - let parent = dest.querySelector("[data-ref='" + node.parentNode.getAttribute("data-ref") + "']"); + append(node, dest, breakToken, shallow=true, rebuild=true) { + let clone = cloneNode(node, !shallow); + + if (node.parentNode && isElement(node.parentNode)) { + let parent = findElement(node.parentNode, dest); // Rebuild chain if (parent) { parent.appendChild(clone); } else if (rebuild) { let fragment = rebuildAncestors(node); - parent = fragment.querySelector("[data-ref='" + node.parentNode.getAttribute("data-ref") + "']"); - if (breakToken && breakToken.node.nodeType === 3 && breakToken.offset > 0) { + parent = findElement(node.parentNode, fragment); + if (!parent) { + dest.appendChild(clone); + } else if (breakToken && isText(breakToken.node) && breakToken.offset > 0) { clone.textContent = clone.textContent.substring(breakToken.offset); parent.appendChild(clone); } else { @@ -858,51 +1005,76 @@ dest.appendChild(clone); } - // if (!shallow && node.childNodes) { - // for (let child of node.childNodes) { - // this.render(child, dest, breakToken, shallow, rebuild); - // } - // } + this.hooks && this.hooks.renderNode.trigger(clone); return clone; } - createDOMNode(n, deep=false) { - let node = n.cloneNode(deep); + avoidBreakInside(node, limiter) { + let breakNode; - return node; + if (node === limiter) { + return; + } + + while (node.parentNode) { + node = node.parentNode; + + if (node === limiter) { + break; + } + + if(window.getComputedStyle(node)["break-inside"] === "avoid") { + breakNode = node; + break; + } + + } + return breakNode; } - findBreakToken(overflow, content) { + createBreakToken(overflow, rendered, source) { + let container = overflow.startContainer; let offset = overflow.startOffset; - let node, renderedNode, ref, parent, index, temp, startOffset; + let node, renderedNode, parent, index, temp, startOffset; - if (overflow.startContainer.nodeType === 1) { - // node = children.querySelector("[data-ref='" + overflow.startContainer.childNodes[offset].getAttribute("data-ref") + "']"); - temp = overflow.startContainer.childNodes[offset]; + if (isElement(container)) { + temp = child(container, offset); + + if (isElement(temp)) { + renderedNode = findElement(temp, rendered); + + if (!renderedNode) { + // Find closest element with data-ref + renderedNode = findElement(prevValidNode(temp), rendered); + return; + } - if (temp.nodeType === 1) { - ref = temp.getAttribute("data-ref"); - // node = this.parser.find(ref); - renderedNode = this.wrapper.querySelector("[data-ref='" + ref + "']"); - node = content.querySelector("[data-ref='"+ renderedNode.getAttribute("data-ref") +"']"); + node = findElement(renderedNode, source); offset = 0; } else { - index = Array.prototype.indexOf.call(overflow.startContainer.childNodes, temp); - ref = overflow.startContainer.getAttribute("data-ref"); - renderedNode = this.wrapper.querySelector("[data-ref='" + ref + "']"); - parent = content.querySelector("[data-ref='"+ renderedNode.getAttribute("data-ref") +"']"); - node = parent.childNodes[index]; + renderedNode = findElement(container, rendered); + + if (!renderedNode) { + renderedNode = findElement(prevValidNode(container), rendered); + } + + parent = findElement(renderedNode, source); + index = indexOf(temp); + node = child(parent, index); offset = 0; } } else { - index = Array.prototype.indexOf.call(overflow.startContainer.parentNode.childNodes, overflow.startContainer); - // let parent = children.querySelector("[data-ref='" + overflow.startContainer.parentNode.getAttribute("data-ref") + "']"); - ref = overflow.startContainer.parentNode.getAttribute("data-ref"); - renderedNode = this.wrapper.querySelector("[data-ref='" + ref + "']"); - parent = content.querySelector("[data-ref='"+ renderedNode.getAttribute("data-ref") +"']"); - node = parent.childNodes[index]; - startOffset = overflow.startContainer.textContent.slice(offset); + renderedNode = findElement(container.parentNode, rendered); + + if (!renderedNode) { + renderedNode = findElement(prevValidNode(container.parentNode), rendered); + } + + parent = findElement(renderedNode, source); + index = indexOf(container); + node = child(parent, index); + startOffset = container.textContent.slice(offset); offset = parent.textContent.indexOf(startOffset); } @@ -917,137 +1089,74 @@ } - removeOverflow(overflow) { - - if (overflow.startContainer.nodeType === 3 && overflow.startOffset > 0) { - let startText = overflow.startContainer.textContent; - let startOffset = overflow.startOffset; - let prevLetter = startText[startOffset-1]; - - // Add a hyphen if previous character is a letter or soft hyphen - if (/^\w|\u00AD$/.test(prevLetter)) { - overflow.startContainer.textContent = startText.slice(0, startOffset) + "\u2010"; - overflow.setStart(overflow.startContainer, startOffset + 1); - } - } - - - // _requestIdleCallback(() => this.removeEmpty()); - return overflow.extractContents(); - } - - removeEmpty() { - // Clean Empty Nodes - let stack = stackChildren(this.wrapper); + findBreakToken(rendered, source, bounds=this.bounds, extract=true) { + let overflow = this.findOverflow(rendered, bounds); + let breakToken; - stack.forEach((currentNode) => { - - if (!currentNode) { - return; - } + if (overflow) { + breakToken = this.createBreakToken(overflow, rendered, source); - if (currentNode.childNodes.length === 0) { - // Check in original - let original = currentNode.getAttribute("data-children"); - if (original != 0) { - currentNode.remove(); - } - } else if (currentNode.textContent.trim().length === 0) { - let original = currentNode.getAttribute("data-text"); - if (original != 0) { - currentNode.remove(); - } + if (breakToken && breakToken.node && extract) { + this.removeOverflow(overflow); } - }); - - stack = undefined; - _requestIdleCallback(() => this.floats()); - } - - floats(area) { - let bounds = getBoundingClientRect(this.element); - - let start = Math.round(bounds.left); - let end = Math.round(bounds.right); - - let range; - - let walker = walk(this.wrapper.firstChild, this.wrapper); - let next, done, node; - while (!done) { - next = walker.next(); - done = next.done; - node = next.value; - - if (node) { - let pos = getBoundingClientRect(node); - let left = Math.floor(pos.left); - let right = Math.floor(pos.right); - - if (left >= end) { - range = document.createRange(); - range.selectNode(node); - // let extracted = range.extractContents(); - let extracted = this.removeOverflow(range); - this._onOverflow && this._onOverflow(extracted); - } - - } } - - } - - onEnter(node) { - - } - - onExit(node) { - - } - - onOverflow(func) { - this._onOverflow = func; + return breakToken; } - onUnderflow(func) { - this._onUnderflow = func; + hasOverflow(element, bounds=this.bounds) { + let constrainingElement = element.parentNode; // this gets the element, instead of the wrapper for the width workaround + let { width } = element.getBoundingClientRect(); + let { scrollWidth } = constrainingElement; + return Math.max(Math.floor(width), scrollWidth) > Math.round(bounds.width); } - overflow(area) { - let bounds = getBoundingClientRect(this.element); + findOverflow(rendered, bounds=this.bounds) { + if (!this.hasOverflow(rendered, bounds)) return; let start = Math.round(bounds.left); let end = Math.round(bounds.right); let range; - let walker = walk(this.wrapper.firstChild, this.wrapper); - let next, done, node, offset; + let walker = walk(rendered.firstChild, rendered); + let next, done, node, offset, skip, breakAvoid, prev; while (!done) { next = walker.next(); done = next.done; node = next.value; + skip = false; + breakAvoid = false; + prev = undefined; if (node) { let pos = getBoundingClientRect(node); let left = Math.floor(pos.left); let right = Math.floor(pos.right); - + // console.log(node); if (!range && left >= end) { // Check if it is a float let isFloat = false; - if (node.nodeType === 1) { + if (isElement(node)) { let styles = window.getComputedStyle(node); isFloat = styles.getPropertyValue("float") !== "none"; + skip = styles.getPropertyValue("break-inside") === "avoid"; + breakAvoid = node.dataset.breakBefore === "avoid" || node.dataset.previousBreakAfter === "avoid"; + prev = breakAvoid && nodeBefore(node, rendered); } - if (!isFloat && node.nodeType === 1) { + if (prev) { + range = document.createRange(); + range.setStartBefore(prev); + break; + } + + if (!isFloat && isElement(node)) { range = document.createRange(); range.setStartBefore(node); break; } - if (node.nodeType === 3 && node.textContent.trim().length) { + if (isText(node) && node.textContent.trim().length) { range = document.createRange(); range.setStartBefore(node); break; @@ -1055,7 +1164,9 @@ } - if (!range && node.nodeType === 3 && right > end && node.textContent.trim().length) { + if (!range && isText(node) && + right > end && node.textContent.trim().length && + window.getComputedStyle(node.parentNode)["break-inside"] !== "avoid") { range = document.createRange(); offset = this.textBreak(node, start, end); if (!offset) { @@ -1067,29 +1178,70 @@ } // Skip children - if (right < end) { + if (skip || right < end) { - next = nodeAfter(node, this.wrapper); + next = nodeAfter(node, rendered); if (next) { - walker = walk(next, this.wrapper); + walker = walk(next, rendered); } } } } + + // Find End if (range) { - range.setEndAfter(this.wrapper.lastChild); + range.setEndAfter(rendered.lastChild); + return range; + } - this.hooks.overflow.trigger(range); + } - return range; + findEndToken(rendered, source, bounds=this.bounds) { + if (rendered.childNodes.length === 0) { + return; + } + + let lastChild = rendered.lastChild; + + let lastNodeIndex; + while (lastChild && lastChild.lastChild) { + if (!validNode(lastChild)) { + // Only get elements with refs + lastChild = lastChild.previousSibling; + } else if(!validNode(lastChild.lastChild)) { + // Deal with invalid dom items + lastChild = prevValidNode(lastChild.lastChild); + break; + } else { + lastChild = lastChild.lastChild; + } + } + + if (isText(lastChild)) { + + if (lastChild.parentNode.dataset.ref) { + lastNodeIndex = indexOf(lastChild); + lastChild = lastChild.parentNode; + } else { + lastChild = lastChild.previousSibling; + } + } + + let original = findElement(lastChild, source); + + if (lastNodeIndex) { + original = original.childNodes[lastNodeIndex]; } + let after = nodeAfter(original); + + return this.breakAt(after); } textBreak(node, start, end) { - let wordwalker = this.words(node); + let wordwalker = words(node); let left = 0; let right = 0; let word, next, done, pos; @@ -1114,7 +1266,7 @@ } if (right > end) { - let letterwalker = this.letters(word); + let letterwalker = letters(word); let letter, nextLetter, doneLetter; while (!doneLetter) { @@ -1143,187 +1295,25 @@ return offset; } - *words(node) { - let currentText = node.nodeValue; - let max = currentText.length; - let currentOffset = 0; - let currentLetter; - - let range; - - while(currentOffset < max) { - currentLetter = currentText[currentOffset]; - if (/^\S$/.test(currentLetter)) { - if (!range) { - range = document.createRange(); - range.setStart(node, currentOffset); - } - } else { - if (range) { - range.setEnd(node, currentOffset); - yield range; - range = undefined; - } - } - - currentOffset += 1; - } - - if (range) { - range.setEnd(node, currentOffset); - yield range; - range = undefined; - } - } - - *letters(wordRange) { - let currentText = wordRange.startContainer; - let max = currentText.length; - let currentOffset = wordRange.startOffset; - let currentLetter; - - let range; - - while(currentOffset < max) { - currentLetter = currentText[currentOffset]; - range = document.createRange(); - range.setStart(currentText, currentOffset); - range.setEnd(currentText, currentOffset+1); - - yield range; + removeOverflow(overflow) { + this.hyphenateAtBreak(overflow); - currentOffset += 1; - } + return overflow.extractContents(); } - prepend(fragment, rebuild=true) { - if (!fragment) { - return; - } - let walker = walk(fragment.firstChild, this.wrapper); - let next, node, done; - let parent; - while (!done) { - next = walker.next(); - node = next.value; - done = next.done; - - if (!node) { - break; - } - - let exists = false; - - if (node.nodeType === 1) { - exists = this.wrapper.querySelector("[data-ref='" + node.getAttribute("data-ref") + "']"); - } - - if (exists) { - parent = exists; - } else { - if(parent) { - parent.insertBefore(node, parent.firstChild); - break; - } else { - this.wrapper.insertBefore(node, this.wrapper.firstChild); - } - } - } - - let hasOverflow = this.hasOverflow(); - - if (hasOverflow) { - - let overflow = this.overflow(this.element); + hyphenateAtBreak(overflow) { + if (isText(overflow.startContainer) && overflow.startOffset > 0) { + let startText = overflow.startContainer.textContent; + let startOffset = overflow.startOffset; + let prevLetter = startText[startOffset-1]; - if (overflow) { - // let extracted = overflow.extractContents(); - let extracted = this.removeOverflow(overflow); - this._onOverflow && this._onOverflow(extracted); + // Add a hyphen if previous character is a letter or soft hyphen + if (/^\w|\u00AD$/.test(prevLetter)) { + overflow.startContainer.textContent = startText.slice(0, startOffset) + "\u2010"; + overflow.setStart(overflow.startContainer, startOffset + 1); } } - - if (!this.listened) { - this.listened = this.listeners(); - } - } - - getOverflow() { - let overflow = this.overflow(this.element); - - if (overflow) { - // let extracted = overflow.extractContents(); - let extracted = this.removeOverflow(overflow); - this._onOverflow && this._onOverflow(extracted); - } } - - getUnderflow() { - this._onUnderflow && this._onUnderflow(); - } - - listeners() { - if (typeof ResizeObserver !== "undefined") { - this.addResizeObserver(); - } else { - this.element.addEventListener("overflow", this.getOverflow.bind(this), false); - this.element.addEventListener("underflow", this.getUnderflow.bind(this), false); - } - // TODO: fall back to mutation observer? - - - // Key scroll width from changing - this.element.addEventListener("scroll", () => { - this.element.scrollLeft = 0; - }); - - return true; - } - - addResizeObserver() { - let wrapper = this.wrapper; - let prevHeight = wrapper.getBoundingClientRect().height; - this.ro = new ResizeObserver( entries => { - for (let entry of entries) { - const cr = entry.contentRect; - - if (cr.height > prevHeight) { - let hasOverflow = this.hasOverflow(); - - if (hasOverflow) { - - let overflow = this.overflow(this.element); - - if (overflow) { - // let extracted = overflow.extractContents(); - let extracted = this.removeOverflow(overflow); - this._onOverflow && this._onOverflow(extracted); - prevHeight = wrapper.getBoundingClientRect().height; - } - } else { - prevHeight = cr.height; - } - - } else if (cr.height < prevHeight ) { // TODO: calc line height && (prevHeight - cr.height) >= 22 - this._onUnderflow && this._onUnderflow(); - prevHeight = cr.height; - } - } - }); - - this.ro.observe(wrapper); - } - - destroy() { - this.element.removeEventListener("overflow", this.getOverflow.bind(this), false); - this.element.removeEventListener("underflow", this.getUnderflow.bind(this), false); - - this.ro.disconnect(); - - this.element = element; - this.wrapper = wrapper; - } - } eventEmitter(Layout.prototype); @@ -1379,15 +1369,17 @@ this.element = page; this.area = area; + return page; + } + + createWrapper() { let wrapper = document.createElement("div"); - // wrapper.setAttribute("contenteditable", true); - // wrapper.style.outline = "none"; this.area.appendChild(wrapper); this.wrapper = wrapper; - return page; + return wrapper; } index(pgnum) { @@ -1438,18 +1430,24 @@ layout(contents, breakToken) { // console.log("layout page", this.id); - let size = this.area.getBoundingClientRect(); - this.l = new Layout(this.area, this.wrapper, this.hooks); + this.clear(); - this.l.onOverflow((overflow) => { - this._onOverflow && this._onOverflow(overflow); - }); + this.layoutMethod = new Layout(this.area, this.hooks); - this.l.onUnderflow((overflow) => { - this._onUnderflow && this._onUnderflow(overflow); - }); + breakToken = this.layoutMethod.renderTo(this.wrapper, contents, breakToken); - breakToken = this.l.layout(size, contents, {}, {}, breakToken); + this.addListeners(contents); + + return breakToken; + } + + append(contents, breakToken) { + + if (!this.layoutMethod) { + return this.layout(contents, breakToken); + } + + breakToken = this.layoutMethod.renderTo(this.wrapper, contents, breakToken); return breakToken; } @@ -1473,29 +1471,104 @@ this._onUnderflow = func; } - prepend(fragment) { - if (!this.l) { - this.l = new Layout(this.area, this.wrapper, this.hooks); + clear() { + this.removeListeners(); + this.wrapper && this.wrapper.remove(); + this.createWrapper(); + } - this.l.onOverflow((overflow) => { - this._onOverflow && this._onOverflow(overflow); - }); + addListeners(contents) { + if (typeof ResizeObserver !== "undefined") { + this.addResizeObserver(contents); + } else { + this.element.addEventListener("overflow", this.checkOverflowAfterResize.bind(this, contents), false); + this.element.addEventListener("underflow", this.checkOverflowAfterResize.bind(this, contents), false); + } + // TODO: fall back to mutation observer? - this.l.onUnderflow((overflow) => { - this._onUnderflow && this._onUnderflow(overflow); - }); + + // Key scroll width from changing + this.element.addEventListener("scroll", () => { + if(this.listening) { + this.element.scrollLeft = 0; + } + }); + + this.listening = true; + + return true; + } + + removeListeners() { + this.listening = false; + // clearTimeout(this.timeoutAfterResize); + + if (this.element) { + this.element.removeEventListener("overflow", this.checkOverflowAfterResize.bind(this), false); + this.element.removeEventListener("underflow", this.checkOverflowAfterResize.bind(this), false); } - this.l.prepend(fragment); + if (this.ro) { + this.ro.disconnect(); + } } - append() { + addResizeObserver(contents) { + let wrapper = this.wrapper; + let prevHeight = wrapper.getBoundingClientRect().height; + this.ro = new ResizeObserver( entries => { + + if (!this.listening) { + return; + } + for (let entry of entries) { + const cr = entry.contentRect; + + if (cr.height > prevHeight) { + this.checkOverflowAfterResize(contents); + prevHeight = wrapper.getBoundingClientRect().height; + } else if (cr.height < prevHeight ) { // TODO: calc line height && (prevHeight - cr.height) >= 22 + this.checkUnderflowAfterResize(contents); + prevHeight = cr.height; + } + } + }); + + this.ro.observe(wrapper); + } + + checkOverflowAfterResize(contents) { + if (!this.listening || !this.layoutMethod) { + return; + } + + let newBreakToken = this.layoutMethod.findBreakToken(this.wrapper, contents); + + if (newBreakToken) { + this._onOverflow && this._onOverflow(newBreakToken); + } } + checkUnderflowAfterResize(contents) { + if (!this.listening || !this.layoutMethod) { + return; + } + + let endToken = this.layoutMethod.findEndToken(this.wrapper, contents); + + // let newBreakToken = this.layoutMethod.findBreakToken(this.wrapper, contents); + + if (endToken) { + this._onUnderflow && this._onUnderflow(endToken); + } + } destroy() { + this.removeListeners(); + this.element = undefined; + this.wrapper = undefined; } } @@ -1555,15 +1628,19 @@ let node; while(node = treeWalker.nextNode()) { - let uuid = UUID(); - node.setAttribute("data-ref", uuid); + if (!node.hasAttribute("data-ref")) { + let uuid = UUID(); + node.setAttribute("data-ref", uuid); + } + if (node.id) { node.setAttribute("data-id", node.id); } - node.setAttribute("data-children", node.childNodes.length); - node.setAttribute("data-text", node.textContent.trim().length); + // node.setAttribute("data-children", node.childNodes.length); + + // node.setAttribute("data-text", node.textContent.trim().length); } } @@ -1672,6 +1749,7 @@ // this.preview = preview; this.hooks = {}; + this.hooks.beforeParsed = new Hook(this); this.hooks.afterParsed = new Hook(this); this.hooks.beforePageLayout = new Hook(this); this.hooks.layout = new Hook(this); @@ -1706,7 +1784,13 @@ } async flow(content, renderTo) { - let parsed = new ContentParser(content); + let parsed; + + await this.hooks.beforeParsed.trigger(content, this); + + parsed = new ContentParser(content); + + this.source = parsed; this.setup(renderTo); @@ -1792,7 +1876,7 @@ if (page) { await this.hooks.beforePageLayout.trigger(page, undefined, undefined, this); this.emit("page", page); - await this.hooks.layout.trigger(page.element, page, undefined, this); + // await this.hooks.layout.trigger(page.element, page, undefined, this); await this.hooks.afterPageLayout.trigger(page.element, page, undefined, this); this.emit("renderedPage", page); } @@ -1817,7 +1901,7 @@ // Layout content in the page, starting from the breakToken breakToken = page.layout(content, breakToken); - await this.hooks.layout.trigger(page.element, page, breakToken, this); + // await this.hooks.layout.trigger(page.element, page, breakToken, this); await this.hooks.afterPageLayout.trigger(page.element, page, breakToken, this); this.emit("renderedPage", page); @@ -1843,24 +1927,26 @@ if (!blank) { // Listen for page overflow - page.onOverflow((overflow) => { - _requestIdleCallback$1(() => { - let index = this.pages.indexOf(page) + 1; - if (index < this.pages.length && - (this.pages[index].breakBefore || this.pages[index].previousBreakAfter)) { - let newPage = this.insertPage(index - 1); - newPage.prepend(overflow); - } else if (index < this.pages.length) { - this.pages[index].prepend(overflow); - } else { - let newPage = this.addPage(); - newPage.prepend(overflow); - } - }); + page.onOverflow((overflowToken) => { + // console.log("overflow on", page.id, overflowToken); + let index = this.pages.indexOf(page) + 1; + if (index < this.pages.length && + (this.pages[index].breakBefore || this.pages[index].previousBreakAfter)) { + let newPage = this.insertPage(index - 1); + newPage.layout(this.source, overflowToken); + } else if (index < this.pages.length) { + this.pages[index].layout(this.source, overflowToken); + } else { + let newPage = this.addPage(); + newPage.layout(this.source, overflowToken); + } }); - page.onUnderflow(() => { - // console.log("underflow on", page.id); + page.onUnderflow((overflowToken) => { + // console.log("underflow on", page.id, overflowToken); + + // page.append(this.source, overflowToken); + }); } @@ -1887,15 +1973,13 @@ if (!blank) { // Listen for page overflow - page.onOverflow((overflow) => { - _requestIdleCallback$1(() => { - if (total < this.pages.length) { - this.pages[total].prepend(overflow); - } else { - let newPage = this.addPage(); - newPage.prepend(overflow); - } - }); + page.onOverflow((overflowToken) => { + if (total < this.pages.length) { + this.pages[total].layout(this.source, overflowToken); + } else { + let newPage = this.addPage(); + newPage.layout(this.source, overflowToken); + } }); page.onUnderflow(() => { @@ -22220,7 +22304,7 @@ // https://drafts.csswg.org/css-images-4/#element-notation // https://developer.mozilla.org/en-US/docs/Web/CSS/element - var element$1 = function() { + var element = function() { this.scanner.skipSC(); var children = this.createSingleNodeList( @@ -22283,8 +22367,8 @@ var value = { getNode: _default, - '-moz-element': element$1, - 'element': element$1, + '-moz-element': element, + 'element': element, 'expression': expression$1, 'var': _var }; @@ -23310,7 +23394,7 @@ class Handler { constructor(chunker, polisher, caller) { - let hooks = Object.assign({}, chunker && chunker.hooks, polisher && polisher.hooks); + let hooks = Object.assign({}, chunker && chunker.hooks, polisher && polisher.hooks, caller && caller.hooks); this.chunker = chunker; this.polisher = polisher; this.caller = caller; @@ -24393,7 +24477,7 @@ marginGroup.style["grid-template-columns"] = leftWidth + " 1fr " + leftWidth; } }else{ - if(rightWidth !== "none" && rightWidth !== "auto"){ + if(rightWidth !== "none" && rightWidth !== "auto"){ marginGroup.style["grid-template-columns"] = rightWidth + " 1fr " + rightWidth; }else{ marginGroup.style["grid-template-columns"] = "auto auto 1fr"; @@ -24431,7 +24515,7 @@ right.style["white-space"] = "normal"; center.style["white-space"] = "normal"; } - } + } }else if(centerWidth !== "none" && centerWidth !== "auto"){ if(leftContent && leftWidth !== "none" && leftWidth !== "auto"){ marginGroup.style["grid-template-columns"] = leftWidth + " " + centerWidth + " 1fr"; @@ -24446,14 +24530,14 @@ }else{ if(leftContent){ if(!rightContent){ - marginGroup.style["grid-template-columns"] = "1fr 0 0"; + marginGroup.style["grid-template-columns"] = "1fr 0 0"; }else{ if(leftWidth !== "none" && leftWidth !== "auto"){ if(rightWidth !== "none" && rightWidth !== "auto"){ marginGroup.style["grid-template-columns"] = leftWidth + " 1fr " + rightWidth; }else{ marginGroup.style["grid-template-columns"] = leftWidth + " 0 1fr"; - } + } }else{ if(rightWidth !== "none" && rightWidth !== "auto"){ marginGroup.style["grid-template-columns"] = "1fr 0 " + rightWidth; @@ -24468,16 +24552,16 @@ marginGroup.style["grid-template-columns"] = "minmax(16.66%, " + newLeftWidth + "%) 0 1fr"; left.style["white-space"] = "normal"; right.style["white-space"] = "normal"; - } - } + } + } } }else{ if(rightWidth !== "none" && rightWidth !== "auto"){ marginGroup.style["grid-template-columns"] = "1fr 0 " + rightWidth; }else{ marginGroup.style["grid-template-columns"] = "0 0 1fr"; - } - } + } + } } }); @@ -24518,7 +24602,7 @@ marginGroup.style["grid-template-rows"] = topHeight + " calc(100% - " + topHeight + "*2) " + topHeight; } }else{ - if(bottomHeight !== "none" && bottomHeight !== "auto"){ + if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = bottomHeight + " calc(100% - " + bottomHeight + "*2) " + bottomHeight; } } @@ -24527,7 +24611,7 @@ if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = bottomHeight + " calc(100% - " + bottomHeight + "*2) " + bottomHeight; } - } + } }else{ if(topContent && topHeight !== "none" && topHeight !== "auto"){ marginGroup.style["grid-template-rows"] = topHeight +" " + middleHeight + " calc(100% - (" + topHeight + " + " + middleHeight + "))"; @@ -24542,33 +24626,33 @@ }else{ if(topContent){ if(!bottomContent){ - marginGroup.style["grid-template-rows"] = "1fr 0 0"; + marginGroup.style["grid-template-rows"] = "1fr 0 0"; }else{ if(topHeight !== "none" && topHeight !== "auto"){ if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = topHeight + " 1fr " + bottomHeight; }else{ marginGroup.style["grid-template-rows"] = topHeight + " 0 1fr"; - } + } }else{ if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = "1fr 0 " + bottomHeight; }else{ marginGroup.style["grid-template-rows"] = "1fr 0 1fr"; - } - } + } + } } }else{ if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = "1fr 0 " + bottomHeight; }else{ marginGroup.style["grid-template-rows"] = "0 0 1fr"; - } - } + } + } } - + }); } @@ -24781,8 +24865,8 @@ property === "page-break-before" || property === "page-break-after" ) { - let child = declaration.value.children.first(); - let value = child.name; + let child$$1 = declaration.value.children.first(); + let value = child$$1.name; let selector = lib.generate(rule.ruleNode.prelude); if (property === "page-break-before") { @@ -24825,6 +24909,8 @@ if (prop.property === "break-after") { let nodeAfter$$1 = elementAfter(elements[i], parsed); + elements[i].setAttribute("data-break-after", prop.value); + if (nodeAfter$$1) { nodeAfter$$1.setAttribute("data-previous-break-after", prop.value); } @@ -24887,7 +24973,7 @@ } } - layout(pageElement, page) { + afterLayout(pageElement, page) { this.addBreakAttributes(page); } } @@ -25797,14 +25883,14 @@ ? Number.isNaN : shim$5; - var indexOf$1 = Array.prototype.indexOf + var indexOf$2 = Array.prototype.indexOf , objHasOwnProperty = Object.prototype.hasOwnProperty , abs$1 = Math.abs , floor$1 = Math.floor; var eIndexOf = function (searchElement /*, fromIndex*/) { var i, length, fromIndex, val; - if (!isNan(searchElement)) return indexOf$1.apply(this, arguments); + if (!isNan(searchElement)) return indexOf$2.apply(this, arguments); length = toPosInteger(validValue(this).length); fromIndex = arguments[1]; @@ -25919,6 +26005,9 @@ // Chunk contents this.chunker = new Chunker(); + // Hooks + this.hooks = {}; + // default size this.size = { width: { @@ -25993,16 +26082,16 @@ return template.content; } - removeStyles() { + removeStyles(doc=document) { // Get all stylesheets - let stylesheets = Array.from(document.querySelectorAll("link[rel='stylesheet']")); + let stylesheets = Array.from(doc.querySelectorAll("link[rel='stylesheet']")); let hrefs = stylesheets.map((sheet) => { sheet.remove(); return sheet.href; }); // Get inline styles - let inlineStyles = Array.from(document.querySelectorAll("style:not([data-pagedjs-inserted-styles])")); + let inlineStyles = Array.from(doc.querySelectorAll("style:not([data-pagedjs-inserted-styles])")); inlineStyles.forEach((inlineStyle) => { let obj = {}; obj[window.location.href] = inlineStyle.textContent; @@ -26014,14 +26103,15 @@ } async preview(content, stylesheets, renderTo) { - if (!stylesheets) { - stylesheets = this.removeStyles(); - } if (!content) { content = this.wrapContent(); } + if (!stylesheets) { + stylesheets = this.removeStyles(); + } + this.polisher.setup(); let handlers = this.initializeHandlers(); diff --git a/src/js/paged.polyfill.js b/src/js/paged.polyfill.js index 777ba107e86d6012c7437384e6a3ca58d176a6b7..c38b6f469010536d7cb195c4b1e65eb5d165f1c1 100644 --- a/src/js/paged.polyfill.js +++ b/src/js/paged.polyfill.js @@ -1,8 +1,8 @@ (function(l, i, v, e) { v = l.createElement(i); v.async = 1; v.src = '//' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; e = l.getElementsByTagName(i)[0]; e.parentNode.insertBefore(v, e)})(document, 'script'); (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory() : + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : - (factory()); + (global.PagedPolyfill = factory()); }(this, (function () { 'use strict'; function createCommonjsModule(fn, module) { @@ -310,6 +310,70 @@ }); var eventEmitter_1 = eventEmitter.methods; + /** + * Hooks allow for injecting functions that must all complete in order before finishing + * They will execute in parallel but all must finish before continuing + * Functions may return a promise if they are asycn. + * From epubjs/src/utils/hooks + * @param {any} context scope of this + * @example this.content = new Hook(this); + */ + class Hook { + constructor(context){ + this.context = context || this; + this.hooks = []; + } + + /** + * Adds a function to be run before a hook completes + * @example this.content.register(function(){...}); + */ + register(){ + for(var i = 0; i < arguments.length; ++i) { + if (typeof arguments[i] === "function") { + this.hooks.push(arguments[i]); + } else { + // unpack array + for(var j = 0; j < arguments[i].length; ++j) { + this.hooks.push(arguments[i][j]); + } + } + } + } + + /** + * Triggers a hook to run all functions + * @example this.content.trigger(args).then(function(){...}); + */ + trigger(){ + var args = arguments; + var context = this.context; + var promises = []; + + this.hooks.forEach(function(task) { + var executing = task.apply(context, args); + + if(executing && typeof executing["then"] === "function") { + // Task is a function that returns a promise + promises.push(executing); + } + // Otherwise Task resolves immediately, continue + }); + + + return Promise.all(promises); + } + + // Adds a function to be run before a hook completes + list(){ + return this.hooks; + } + + clear(){ + return this.hooks = []; + } + } + function getBoundingClientRect(element) { if (!element) { return; @@ -350,6 +414,14 @@ } } + function isElement(node) { + return node && node.nodeType === 1; + } + + function isText(node) { + return node && node.nodeType === 3; + } + function *walk(start, limiter) { let node = start; @@ -407,6 +479,30 @@ return after; } + function nodeBefore(node, limiter) { + let before = node; + if (before.previousSibling) { + if (limiter && node === limiter) { + return; + } + before = before.previousSibling; + } else { + while (before) { + before = before.parentNode; + if (limiter && before === limiter) { + before = undefined; + break; + } + if (before && before.previousSibling) { + before = prev.previousSibling; + break; + } + } + } + + return before; + } + function elementAfter(node, limiter) { let after = nodeAfter(node); @@ -417,19 +513,6 @@ return after; } - function stackChildren(currentNode, stacked) { - let stack = stacked || []; - - stack.unshift(currentNode); - - let children = currentNode.children; - for (var i = 0, length = children.length; i < length; i++) { - stackChildren(children[i], stack); - } - - return stack; - } - function rebuildAncestors(node) { let parent, ancestor; let ancestors = []; @@ -479,6 +562,55 @@ return fragment; } + /* + export function split(bound, cutElement, breakAfter) { + let needsRemoval = []; + let index = indexOf(cutElement); + + if (!breakAfter && index === 0) { + return; + } + + if (breakAfter && index === (cutElement.parentNode.children.length - 1)) { + return; + } + + // Create a fragment with rebuilt ancestors + let fragment = rebuildAncestors(cutElement); + + // Clone cut + if (!breakAfter) { + let clone = cutElement.cloneNode(true); + let ref = cutElement.parentNode.getAttribute('data-ref'); + let parent = fragment.querySelector("[data-ref='" + ref + "']"); + parent.appendChild(clone); + needsRemoval.push(cutElement); + } + + // Remove all after cut + let next = nodeAfter(cutElement, bound); + while (next) { + let clone = next.cloneNode(true); + let ref = next.parentNode.getAttribute('data-ref'); + let parent = fragment.querySelector("[data-ref='" + ref + "']"); + parent.appendChild(clone); + needsRemoval.push(next); + next = nodeAfter(next, bound); + } + + // Remove originals + needsRemoval.forEach((node) => { + if (node) { + node.remove(); + } + }); + + // Insert after bounds + bound.parentNode.insertBefore(fragment, bound.nextSibling); + return [bound, bound.nextSibling]; + } + */ + function needsBreakBefore(node) { if( typeof node !== "undefined" && typeof node.dataset !== "undefined" && @@ -524,71 +656,194 @@ return false; } - /** - * Hooks allow for injecting functions that must all complete in order before finishing - * They will execute in parallel but all must finish before continuing - * Functions may return a promise if they are asycn. - * From epubjs/src/utils/hooks - * @param {any} context scope of this - * @example this.content = new Hook(this); - */ - class Hook { - constructor(context){ - this.context = context || this; - this.hooks = []; + function *words(node) { + let currentText = node.nodeValue; + let max = currentText.length; + let currentOffset = 0; + let currentLetter; + + let range; + + while(currentOffset < max) { + currentLetter = currentText[currentOffset]; + if (/^\S$/.test(currentLetter)) { + if (!range) { + range = document.createRange(); + range.setStart(node, currentOffset); + } + } else { + if (range) { + range.setEnd(node, currentOffset); + yield range; + range = undefined; + } + } + + currentOffset += 1; } - /** - * Adds a function to be run before a hook completes - * @example this.content.register(function(){...}); - */ - register(){ - for(var i = 0; i < arguments.length; ++i) { - if (typeof arguments[i] === "function") { - this.hooks.push(arguments[i]); - } else { - // unpack array - for(var j = 0; j < arguments[i].length; ++j) { - this.hooks.push(arguments[i][j]); - } - } - } + if (range) { + range.setEnd(node, currentOffset); + yield range; + range = undefined; } + } - /** - * Triggers a hook to run all functions - * @example this.content.trigger(args).then(function(){...}); - */ - trigger(){ - var args = arguments; - var context = this.context; - var promises = []; + function *letters(wordRange) { + let currentText = wordRange.startContainer; + let max = currentText.length; + let currentOffset = wordRange.startOffset; + let currentLetter; - this.hooks.forEach(function(task) { - var executing = task.apply(context, args); + let range; - if(executing && typeof executing["then"] === "function") { - // Task is a function that returns a promise - promises.push(executing); - } - // Otherwise Task resolves immediately, continue - }); + while(currentOffset < max) { + currentLetter = currentText[currentOffset]; + range = document.createRange(); + range.setStart(currentText, currentOffset); + range.setEnd(currentText, currentOffset+1); + yield range; - return Promise.all(promises); + currentOffset += 1; } + } - // Adds a function to be run before a hook completes - list(){ - return this.hooks; + function isContainer(node) { + let container; + + if (typeof node.tagName === "undefined") { + return true; + } + + if (node.style.display === "none") { + return false; + } + + switch (node.tagName) { + // Inline + case "A": + case "ABBR": + case "ACRONYM": + case "B": + case "BDO": + case "BIG": + case "BR": + case "BUTTON": + case "CITE": + case "CODE": + case "DFN": + case "EM": + case "I": + case "IMG": + case "INPUT": + case "KBD": + case "LABEL": + case "MAP": + case "OBJECT": + case "Q": + case "SAMP": + case "SCRIPT": + case "SELECT": + case "SMALL": + case "SPAN": + case "STRONG": + case "SUB": + case "SUP": + case "TEXTAREA": + case "TIME": + case "TT": + case "VAR": + // Content + case "P": + case "H1": + case "H2": + case "H3": + case "H4": + case "H5": + case "H6": + case "FIGCAPTION": + case "BLOCKQUOTE": + case "PRE": + case "LI": + case "TR": + case "DT": + case "DD": + case "VIDEO": + case "CANVAS": + container = false; + break; + default: + container = true; + } + + return container; + } + + function cloneNode(n, deep=false) { + return n.cloneNode(deep); + } + + function findElement(node, doc) { + const ref = node.getAttribute("data-ref"); + return findRef(ref, doc); + } + + function findRef(ref, doc) { + return doc.querySelector(`[data-ref='${ref}']`); + } + + function validNode(node) { + if (isText(node)) { + return true; } - clear(){ - return this.hooks = []; + if (isElement(node) && node.dataset.ref) { + return true; + } + + return false; + } + + function prevValidNode(node) { + while (!validNode(node)) { + if (node.previousSibling) { + node = node.previousSibling; + } else { + node = node.parentNode; + } + + if (!node) { + break; + } } + + return node; } - const _requestIdleCallback = 'requestIdleCallback' in window ? requestIdleCallback : requestAnimationFrame; + + function indexOf$1(node) { + let parent = node.parentNode; + if (!parent) { + return 0; + } + return Array.prototype.indexOf.call(parent.childNodes, node); + } + + function child(node, index) { + return node.childNodes[index]; + } + + function isVisible(node) { + if (isElement(node) && window.getComputedStyle(node).display !== "none") { + return true; + } else if (isText(node) && + node.textContent.trim().length && + window.getComputedStyle(node.parentNode).display !== "none") { + return true; + } + return false; + } const PER_PAGE_CHECK = 4; @@ -598,250 +853,142 @@ */ class Layout { - constructor(element, wrapper, hooks) { + constructor(element, hooks) { this.element = element; - this.wrapper = wrapper; - let space = this.element.getBoundingClientRect(); - this.width = Math.round(space.width); + this.bounds = this.element.getBoundingClientRect(); if (hooks) { this.hooks = hooks; } else { this.hooks = {}; + this.hooks.layout = new Hook(); this.hooks.renderNode = new Hook(); this.hooks.layoutNode = new Hook(); this.hooks.overflow = new Hook(); } - } - - getStart(content, breakToken) { - let start = content; - let node = breakToken.node; - - if (node) { - start = node; - } - - return start; - } - - isContainer(node) { - let container; - - if (typeof node.tagName === "undefined") { - return true; - } - - if (node.style.display === "none") { - return false; - } - - switch (node.tagName) { - // Inline - case "A": - case "ABBR": - case "ACRONYM": - case "B": - case "BDO": - case "BIG": - case "BR": - case "BUTTON": - case "CITE": - case "CODE": - case "DFN": - case "EM": - case "I": - case "IMG": - case "INPUT": - case "KBD": - case "LABEL": - case "MAP": - case "OBJECT": - case "Q": - case "SAMP": - case "SCRIPT": - case "SELECT": - case "SMALL": - case "SPAN": - case "STRONG": - case "SUB": - case "SUP": - case "TEXTAREA": - case "TIME": - case "TT": - case "VAR": - // Content - case "P": - case "H1": - case "H2": - case "H3": - case "H4": - case "H5": - case "H6": - case "FIGCAPTION": - case "BLOCKQUOTE": - case "PRE": - case "LI": - case "TR": - case "DT": - case "DD": - case "VIDEO": - case "CANVAS": - container = false; - break; - default: - container = true; - } - return container; } - layout(space, content, styleMap, edges, breakToken) { - let start = content; - if (breakToken.node) { - start = this.getStart(content, breakToken); - } - - let walker = walk(start, content); + renderTo(wrapper, source, breakToken, bounds=this.bounds) { + let start = this.getStart(source, breakToken); + let walker = walk(start, source); let node; let done; let next; - let hasOverflow = false; + let hasContent = false; let newBreakToken; - let after; let check = 0; - let dest = document.createDocumentFragment(); - - let rendered; - let shallow = true; - - while (!done && !hasOverflow) { + while (!done && !newBreakToken) { next = walker.next(); node = next.value; done = next.done; - if (node) { - this.hooks.layoutNode.trigger(node); - - // Check if the rendered element has a breakBefore set - if (hasContent && (needsBreakBefore(node) || needsPreviousBreakAfter(node) || needsPageBreak(node))) { - // Check for overflow - hasOverflow = this.hasOverflow(); - - if (hasOverflow) { - let overflow = this.overflow(this.element); + if (!node) { + newBreakToken = this.findBreakToken(wrapper, source, bounds); + return newBreakToken; + } - if (overflow) { + /* + let exists; + if (isElement(node)) { + exists = findElement(node, wrapper); + } else { + exists = false; + } - newBreakToken = this.findBreakToken(overflow, content); + if (exists) { + console.log("found", exists); + break; + } + */ - if (newBreakToken && newBreakToken.node) { - this.removeOverflow(overflow); - } + this.hooks && this.hooks.layoutNode.trigger(node); - break; + // Check if the rendered element has a break set + if (hasContent && this.shouldBreak(node)) { + newBreakToken = this.findBreakToken(wrapper, source, bounds); - } - } else { - // Break layout with current node - newBreakToken = { - node: node, - offset: 0 - }; - break; - } + if (!newBreakToken) { + newBreakToken = this.breakAt(node); } - shallow = this.isContainer(node); - - rendered = this.render(node, this.wrapper, breakToken, shallow); + break; + } - if (!hasContent) { - // Only register visible content - if (rendered.nodeType === 1 && window.getComputedStyle(rendered).display !== "none") { - hasContent = true; - } else if (rendered.nodeType === 3 && - rendered.textContent.trim().length && - window.getComputedStyle(rendered.parentNode).display !== "none") { - hasContent = true; - } - } + // Should the Node be a shallow or deep clone + let shallow = isContainer(node); - if (!shallow) { - after = nodeAfter(node, content); - walker = walk(after, content); - } + let rendered = this.append(node, wrapper, breakToken, shallow); + // Check if layout has content yet + if (!hasContent) { + hasContent = isVisible(node); + } - } else { - check = 1000; // Force check + // Skip to the next node if a deep clone was rendered + if (!shallow) { + walker = walk(nodeAfter(node, source), source); } - // Only check every 4 elements + // Only check every few elements if (check >= PER_PAGE_CHECK) { check = 0; - hasOverflow = this.hasOverflow(); - } - - if (hasOverflow) { - - let overflow = this.overflow(this.element); - - if (overflow) { - - newBreakToken = this.findBreakToken(overflow, content); - if (newBreakToken && newBreakToken.node) { - this.removeOverflow(overflow); - } - - break; - - } else { - // Underflow - hasOverflow = false; - } + this.hooks && this.hooks.layout.trigger(wrapper, this); + newBreakToken = this.findBreakToken(wrapper, source, bounds); } check += 1; } - _requestIdleCallback(() => { - this.listened = this.listeners(); - }); - - return newBreakToken; + } + breakAt(node, offset=0) { + return { + node, + offset + } } - hasOverflow() { - let width = Math.max(Math.floor(this.wrapper.getBoundingClientRect().width), this.element.scrollWidth); - return this.width < width; + shouldBreak(node) { + return needsBreakBefore(node) || needsPreviousBreakAfter(node) || needsPageBreak(node); } - render(node, dest, breakToken, shallow=true, rebuild=true) { + getStart(source, breakToken) { + let start; + let node = breakToken && breakToken.node; - let clone = this.createDOMNode(node, !shallow); + if (node) { + start = node; + } else { + start = source.firstChild; + } - this.hooks.renderNode.trigger(clone); + return start; + } - if (node.parentNode && node.parentNode.nodeType === 1) { - let parent = dest.querySelector("[data-ref='" + node.parentNode.getAttribute("data-ref") + "']"); + append(node, dest, breakToken, shallow=true, rebuild=true) { + let clone = cloneNode(node, !shallow); + + if (node.parentNode && isElement(node.parentNode)) { + let parent = findElement(node.parentNode, dest); // Rebuild chain if (parent) { parent.appendChild(clone); } else if (rebuild) { let fragment = rebuildAncestors(node); - parent = fragment.querySelector("[data-ref='" + node.parentNode.getAttribute("data-ref") + "']"); - if (breakToken && breakToken.node.nodeType === 3 && breakToken.offset > 0) { + parent = findElement(node.parentNode, fragment); + if (!parent) { + dest.appendChild(clone); + } else if (breakToken && isText(breakToken.node) && breakToken.offset > 0) { clone.textContent = clone.textContent.substring(breakToken.offset); parent.appendChild(clone); } else { @@ -858,51 +1005,76 @@ dest.appendChild(clone); } - // if (!shallow && node.childNodes) { - // for (let child of node.childNodes) { - // this.render(child, dest, breakToken, shallow, rebuild); - // } - // } + this.hooks && this.hooks.renderNode.trigger(clone); return clone; } - createDOMNode(n, deep=false) { - let node = n.cloneNode(deep); + avoidBreakInside(node, limiter) { + let breakNode; - return node; + if (node === limiter) { + return; + } + + while (node.parentNode) { + node = node.parentNode; + + if (node === limiter) { + break; + } + + if(window.getComputedStyle(node)["break-inside"] === "avoid") { + breakNode = node; + break; + } + + } + return breakNode; } - findBreakToken(overflow, content) { + createBreakToken(overflow, rendered, source) { + let container = overflow.startContainer; let offset = overflow.startOffset; - let node, renderedNode, ref, parent, index, temp, startOffset; + let node, renderedNode, parent, index, temp, startOffset; - if (overflow.startContainer.nodeType === 1) { - // node = children.querySelector("[data-ref='" + overflow.startContainer.childNodes[offset].getAttribute("data-ref") + "']"); - temp = overflow.startContainer.childNodes[offset]; + if (isElement(container)) { + temp = child(container, offset); - if (temp.nodeType === 1) { - ref = temp.getAttribute("data-ref"); - // node = this.parser.find(ref); - renderedNode = this.wrapper.querySelector("[data-ref='" + ref + "']"); - node = content.querySelector("[data-ref='"+ renderedNode.getAttribute("data-ref") +"']"); + if (isElement(temp)) { + renderedNode = findElement(temp, rendered); + + if (!renderedNode) { + // Find closest element with data-ref + renderedNode = findElement(prevValidNode(temp), rendered); + return; + } + + node = findElement(renderedNode, source); offset = 0; } else { - index = Array.prototype.indexOf.call(overflow.startContainer.childNodes, temp); - ref = overflow.startContainer.getAttribute("data-ref"); - renderedNode = this.wrapper.querySelector("[data-ref='" + ref + "']"); - parent = content.querySelector("[data-ref='"+ renderedNode.getAttribute("data-ref") +"']"); - node = parent.childNodes[index]; + renderedNode = findElement(container, rendered); + + if (!renderedNode) { + renderedNode = findElement(prevValidNode(container), rendered); + } + + parent = findElement(renderedNode, source); + index = indexOf$1(temp); + node = child(parent, index); offset = 0; } } else { - index = Array.prototype.indexOf.call(overflow.startContainer.parentNode.childNodes, overflow.startContainer); - // let parent = children.querySelector("[data-ref='" + overflow.startContainer.parentNode.getAttribute("data-ref") + "']"); - ref = overflow.startContainer.parentNode.getAttribute("data-ref"); - renderedNode = this.wrapper.querySelector("[data-ref='" + ref + "']"); - parent = content.querySelector("[data-ref='"+ renderedNode.getAttribute("data-ref") +"']"); - node = parent.childNodes[index]; - startOffset = overflow.startContainer.textContent.slice(offset); + renderedNode = findElement(container.parentNode, rendered); + + if (!renderedNode) { + renderedNode = findElement(prevValidNode(container.parentNode), rendered); + } + + parent = findElement(renderedNode, source); + index = indexOf$1(container); + node = child(parent, index); + startOffset = container.textContent.slice(offset); offset = parent.textContent.indexOf(startOffset); } @@ -917,137 +1089,74 @@ } - removeOverflow(overflow) { - - if (overflow.startContainer.nodeType === 3 && overflow.startOffset > 0) { - let startText = overflow.startContainer.textContent; - let startOffset = overflow.startOffset; - let prevLetter = startText[startOffset-1]; - - // Add a hyphen if previous character is a letter or soft hyphen - if (/^\w|\u00AD$/.test(prevLetter)) { - overflow.startContainer.textContent = startText.slice(0, startOffset) + "\u2010"; - overflow.setStart(overflow.startContainer, startOffset + 1); - } - } - - - // _requestIdleCallback(() => this.removeEmpty()); - return overflow.extractContents(); - } - - removeEmpty() { - // Clean Empty Nodes - let stack = stackChildren(this.wrapper); - - stack.forEach((currentNode) => { - - if (!currentNode) { - return; - } - - if (currentNode.childNodes.length === 0) { - // Check in original - let original = currentNode.getAttribute("data-children"); - if (original != 0) { - currentNode.remove(); - } - } else if (currentNode.textContent.trim().length === 0) { - let original = currentNode.getAttribute("data-text"); - if (original != 0) { - currentNode.remove(); - } - } - }); - - stack = undefined; - _requestIdleCallback(() => this.floats()); - - } - - floats(area) { - let bounds = getBoundingClientRect(this.element); - - let start = Math.round(bounds.left); - let end = Math.round(bounds.right); - - let range; - - let walker = walk(this.wrapper.firstChild, this.wrapper); - let next, done, node; - while (!done) { - next = walker.next(); - done = next.done; - node = next.value; - - if (node) { - let pos = getBoundingClientRect(node); - let left = Math.floor(pos.left); - let right = Math.floor(pos.right); - - if (left >= end) { - range = document.createRange(); - range.selectNode(node); - // let extracted = range.extractContents(); - let extracted = this.removeOverflow(range); - this._onOverflow && this._onOverflow(extracted); - } - - } - } - - } - - onEnter(node) { - - } + findBreakToken(rendered, source, bounds=this.bounds, extract=true) { + let overflow = this.findOverflow(rendered, bounds); + let breakToken; - onExit(node) { + if (overflow) { + breakToken = this.createBreakToken(overflow, rendered, source); - } + if (breakToken && breakToken.node && extract) { + this.removeOverflow(overflow); + } - onOverflow(func) { - this._onOverflow = func; + } + return breakToken; } - onUnderflow(func) { - this._onUnderflow = func; + hasOverflow(element, bounds=this.bounds) { + let constrainingElement = element.parentNode; // this gets the element, instead of the wrapper for the width workaround + let { width } = element.getBoundingClientRect(); + let { scrollWidth } = constrainingElement; + return Math.max(Math.floor(width), scrollWidth) > Math.round(bounds.width); } - overflow(area) { - let bounds = getBoundingClientRect(this.element); + findOverflow(rendered, bounds=this.bounds) { + if (!this.hasOverflow(rendered, bounds)) return; let start = Math.round(bounds.left); let end = Math.round(bounds.right); let range; - let walker = walk(this.wrapper.firstChild, this.wrapper); - let next, done, node, offset; + let walker = walk(rendered.firstChild, rendered); + let next, done, node, offset, skip, breakAvoid, prev; while (!done) { next = walker.next(); done = next.done; node = next.value; + skip = false; + breakAvoid = false; + prev = undefined; if (node) { let pos = getBoundingClientRect(node); let left = Math.floor(pos.left); let right = Math.floor(pos.right); - + // console.log(node); if (!range && left >= end) { // Check if it is a float let isFloat = false; - if (node.nodeType === 1) { + if (isElement(node)) { let styles = window.getComputedStyle(node); isFloat = styles.getPropertyValue("float") !== "none"; + skip = styles.getPropertyValue("break-inside") === "avoid"; + breakAvoid = node.dataset.breakBefore === "avoid" || node.dataset.previousBreakAfter === "avoid"; + prev = breakAvoid && nodeBefore(node, rendered); + } + + if (prev) { + range = document.createRange(); + range.setStartBefore(prev); + break; } - if (!isFloat && node.nodeType === 1) { + if (!isFloat && isElement(node)) { range = document.createRange(); range.setStartBefore(node); break; } - if (node.nodeType === 3 && node.textContent.trim().length) { + if (isText(node) && node.textContent.trim().length) { range = document.createRange(); range.setStartBefore(node); break; @@ -1055,7 +1164,9 @@ } - if (!range && node.nodeType === 3 && right > end && node.textContent.trim().length) { + if (!range && isText(node) && + right > end && node.textContent.trim().length && + window.getComputedStyle(node.parentNode)["break-inside"] !== "avoid") { range = document.createRange(); offset = this.textBreak(node, start, end); if (!offset) { @@ -1067,29 +1178,70 @@ } // Skip children - if (right < end) { + if (skip || right < end) { - next = nodeAfter(node, this.wrapper); + next = nodeAfter(node, rendered); if (next) { - walker = walk(next, this.wrapper); + walker = walk(next, rendered); } } } } + + // Find End if (range) { - range.setEndAfter(this.wrapper.lastChild); + range.setEndAfter(rendered.lastChild); + return range; + } - this.hooks.overflow.trigger(range); + } - return range; + findEndToken(rendered, source, bounds=this.bounds) { + if (rendered.childNodes.length === 0) { + return; + } + + let lastChild = rendered.lastChild; + + let lastNodeIndex; + while (lastChild && lastChild.lastChild) { + if (!validNode(lastChild)) { + // Only get elements with refs + lastChild = lastChild.previousSibling; + } else if(!validNode(lastChild.lastChild)) { + // Deal with invalid dom items + lastChild = prevValidNode(lastChild.lastChild); + break; + } else { + lastChild = lastChild.lastChild; + } + } + + if (isText(lastChild)) { + + if (lastChild.parentNode.dataset.ref) { + lastNodeIndex = indexOf$1(lastChild); + lastChild = lastChild.parentNode; + } else { + lastChild = lastChild.previousSibling; + } + } + + let original = findElement(lastChild, source); + + if (lastNodeIndex) { + original = original.childNodes[lastNodeIndex]; } + let after = nodeAfter(original); + + return this.breakAt(after); } textBreak(node, start, end) { - let wordwalker = this.words(node); + let wordwalker = words(node); let left = 0; let right = 0; let word, next, done, pos; @@ -1114,7 +1266,7 @@ } if (right > end) { - let letterwalker = this.letters(word); + let letterwalker = letters(word); let letter, nextLetter, doneLetter; while (!doneLetter) { @@ -1143,187 +1295,25 @@ return offset; } - *words(node) { - let currentText = node.nodeValue; - let max = currentText.length; - let currentOffset = 0; - let currentLetter; - - let range; - - while(currentOffset < max) { - currentLetter = currentText[currentOffset]; - if (/^\S$/.test(currentLetter)) { - if (!range) { - range = document.createRange(); - range.setStart(node, currentOffset); - } - } else { - if (range) { - range.setEnd(node, currentOffset); - yield range; - range = undefined; - } - } - - currentOffset += 1; - } - - if (range) { - range.setEnd(node, currentOffset); - yield range; - range = undefined; - } - } - - *letters(wordRange) { - let currentText = wordRange.startContainer; - let max = currentText.length; - let currentOffset = wordRange.startOffset; - let currentLetter; - - let range; - - while(currentOffset < max) { - currentLetter = currentText[currentOffset]; - range = document.createRange(); - range.setStart(currentText, currentOffset); - range.setEnd(currentText, currentOffset+1); - - yield range; + removeOverflow(overflow) { + this.hyphenateAtBreak(overflow); - currentOffset += 1; - } + return overflow.extractContents(); } - prepend(fragment, rebuild=true) { - if (!fragment) { - return; - } - let walker = walk(fragment.firstChild, this.wrapper); - let next, node, done; - let parent; - while (!done) { - next = walker.next(); - node = next.value; - done = next.done; - - if (!node) { - break; - } - - let exists = false; - - if (node.nodeType === 1) { - exists = this.wrapper.querySelector("[data-ref='" + node.getAttribute("data-ref") + "']"); - } - - if (exists) { - parent = exists; - } else { - if(parent) { - parent.insertBefore(node, parent.firstChild); - break; - } else { - this.wrapper.insertBefore(node, this.wrapper.firstChild); - } - } - } - - let hasOverflow = this.hasOverflow(); - - if (hasOverflow) { - - let overflow = this.overflow(this.element); + hyphenateAtBreak(overflow) { + if (isText(overflow.startContainer) && overflow.startOffset > 0) { + let startText = overflow.startContainer.textContent; + let startOffset = overflow.startOffset; + let prevLetter = startText[startOffset-1]; - if (overflow) { - // let extracted = overflow.extractContents(); - let extracted = this.removeOverflow(overflow); - this._onOverflow && this._onOverflow(extracted); + // Add a hyphen if previous character is a letter or soft hyphen + if (/^\w|\u00AD$/.test(prevLetter)) { + overflow.startContainer.textContent = startText.slice(0, startOffset) + "\u2010"; + overflow.setStart(overflow.startContainer, startOffset + 1); } } - - if (!this.listened) { - this.listened = this.listeners(); - } - } - - getOverflow() { - let overflow = this.overflow(this.element); - - if (overflow) { - // let extracted = overflow.extractContents(); - let extracted = this.removeOverflow(overflow); - this._onOverflow && this._onOverflow(extracted); - } - } - - getUnderflow() { - this._onUnderflow && this._onUnderflow(); - } - - listeners() { - if (typeof ResizeObserver !== "undefined") { - this.addResizeObserver(); - } else { - this.element.addEventListener("overflow", this.getOverflow.bind(this), false); - this.element.addEventListener("underflow", this.getUnderflow.bind(this), false); - } - // TODO: fall back to mutation observer? - - - // Key scroll width from changing - this.element.addEventListener("scroll", () => { - this.element.scrollLeft = 0; - }); - - return true; - } - - addResizeObserver() { - let wrapper = this.wrapper; - let prevHeight = wrapper.getBoundingClientRect().height; - this.ro = new ResizeObserver( entries => { - for (let entry of entries) { - const cr = entry.contentRect; - - if (cr.height > prevHeight) { - let hasOverflow = this.hasOverflow(); - - if (hasOverflow) { - - let overflow = this.overflow(this.element); - - if (overflow) { - // let extracted = overflow.extractContents(); - let extracted = this.removeOverflow(overflow); - this._onOverflow && this._onOverflow(extracted); - prevHeight = wrapper.getBoundingClientRect().height; - } - } else { - prevHeight = cr.height; - } - - } else if (cr.height < prevHeight ) { // TODO: calc line height && (prevHeight - cr.height) >= 22 - this._onUnderflow && this._onUnderflow(); - prevHeight = cr.height; - } - } - }); - - this.ro.observe(wrapper); } - - destroy() { - this.element.removeEventListener("overflow", this.getOverflow.bind(this), false); - this.element.removeEventListener("underflow", this.getUnderflow.bind(this), false); - - this.ro.disconnect(); - - this.element = element; - this.wrapper = wrapper; - } - } eventEmitter(Layout.prototype); @@ -1379,15 +1369,17 @@ this.element = page; this.area = area; + return page; + } + + createWrapper() { let wrapper = document.createElement("div"); - // wrapper.setAttribute("contenteditable", true); - // wrapper.style.outline = "none"; this.area.appendChild(wrapper); this.wrapper = wrapper; - return page; + return wrapper; } index(pgnum) { @@ -1438,18 +1430,24 @@ layout(contents, breakToken) { // console.log("layout page", this.id); - let size = this.area.getBoundingClientRect(); - this.l = new Layout(this.area, this.wrapper, this.hooks); + this.clear(); - this.l.onOverflow((overflow) => { - this._onOverflow && this._onOverflow(overflow); - }); + this.layoutMethod = new Layout(this.area, this.hooks); - this.l.onUnderflow((overflow) => { - this._onUnderflow && this._onUnderflow(overflow); - }); + breakToken = this.layoutMethod.renderTo(this.wrapper, contents, breakToken); + + this.addListeners(contents); + + return breakToken; + } + + append(contents, breakToken) { + + if (!this.layoutMethod) { + return this.layout(contents, breakToken); + } - breakToken = this.l.layout(size, contents, {}, {}, breakToken); + breakToken = this.layoutMethod.renderTo(this.wrapper, contents, breakToken); return breakToken; } @@ -1473,29 +1471,104 @@ this._onUnderflow = func; } - prepend(fragment) { - if (!this.l) { - this.l = new Layout(this.area, this.wrapper, this.hooks); + clear() { + this.removeListeners(); + this.wrapper && this.wrapper.remove(); + this.createWrapper(); + } - this.l.onOverflow((overflow) => { - this._onOverflow && this._onOverflow(overflow); - }); + addListeners(contents) { + if (typeof ResizeObserver !== "undefined") { + this.addResizeObserver(contents); + } else { + this.element.addEventListener("overflow", this.checkOverflowAfterResize.bind(this, contents), false); + this.element.addEventListener("underflow", this.checkOverflowAfterResize.bind(this, contents), false); + } + // TODO: fall back to mutation observer? - this.l.onUnderflow((overflow) => { - this._onUnderflow && this._onUnderflow(overflow); - }); + + // Key scroll width from changing + this.element.addEventListener("scroll", () => { + if(this.listening) { + this.element.scrollLeft = 0; + } + }); + + this.listening = true; + + return true; + } + + removeListeners() { + this.listening = false; + // clearTimeout(this.timeoutAfterResize); + + if (this.element) { + this.element.removeEventListener("overflow", this.checkOverflowAfterResize.bind(this), false); + this.element.removeEventListener("underflow", this.checkOverflowAfterResize.bind(this), false); + } + + if (this.ro) { + this.ro.disconnect(); } + } + + addResizeObserver(contents) { + let wrapper = this.wrapper; + let prevHeight = wrapper.getBoundingClientRect().height; + this.ro = new ResizeObserver( entries => { + + if (!this.listening) { + return; + } + + for (let entry of entries) { + const cr = entry.contentRect; + + if (cr.height > prevHeight) { + this.checkOverflowAfterResize(contents); + prevHeight = wrapper.getBoundingClientRect().height; + } else if (cr.height < prevHeight ) { // TODO: calc line height && (prevHeight - cr.height) >= 22 + this.checkUnderflowAfterResize(contents); + prevHeight = cr.height; + } + } + }); - this.l.prepend(fragment); + this.ro.observe(wrapper); } - append() { + checkOverflowAfterResize(contents) { + if (!this.listening || !this.layoutMethod) { + return; + } + let newBreakToken = this.layoutMethod.findBreakToken(this.wrapper, contents); + + if (newBreakToken) { + this._onOverflow && this._onOverflow(newBreakToken); + } } + checkUnderflowAfterResize(contents) { + if (!this.listening || !this.layoutMethod) { + return; + } + + let endToken = this.layoutMethod.findEndToken(this.wrapper, contents); + + // let newBreakToken = this.layoutMethod.findBreakToken(this.wrapper, contents); + + if (endToken) { + this._onUnderflow && this._onUnderflow(endToken); + } + } destroy() { + this.removeListeners(); + this.element = undefined; + this.wrapper = undefined; } } @@ -1555,15 +1628,19 @@ let node; while(node = treeWalker.nextNode()) { - let uuid = UUID(); - node.setAttribute("data-ref", uuid); + if (!node.hasAttribute("data-ref")) { + let uuid = UUID(); + node.setAttribute("data-ref", uuid); + } + if (node.id) { node.setAttribute("data-id", node.id); } - node.setAttribute("data-children", node.childNodes.length); - node.setAttribute("data-text", node.textContent.trim().length); + // node.setAttribute("data-children", node.childNodes.length); + + // node.setAttribute("data-text", node.textContent.trim().length); } } @@ -1672,6 +1749,7 @@ // this.preview = preview; this.hooks = {}; + this.hooks.beforeParsed = new Hook(this); this.hooks.afterParsed = new Hook(this); this.hooks.beforePageLayout = new Hook(this); this.hooks.layout = new Hook(this); @@ -1706,7 +1784,13 @@ } async flow(content, renderTo) { - let parsed = new ContentParser(content); + let parsed; + + await this.hooks.beforeParsed.trigger(content, this); + + parsed = new ContentParser(content); + + this.source = parsed; this.setup(renderTo); @@ -1792,7 +1876,7 @@ if (page) { await this.hooks.beforePageLayout.trigger(page, undefined, undefined, this); this.emit("page", page); - await this.hooks.layout.trigger(page.element, page, undefined, this); + // await this.hooks.layout.trigger(page.element, page, undefined, this); await this.hooks.afterPageLayout.trigger(page.element, page, undefined, this); this.emit("renderedPage", page); } @@ -1817,7 +1901,7 @@ // Layout content in the page, starting from the breakToken breakToken = page.layout(content, breakToken); - await this.hooks.layout.trigger(page.element, page, breakToken, this); + // await this.hooks.layout.trigger(page.element, page, breakToken, this); await this.hooks.afterPageLayout.trigger(page.element, page, breakToken, this); this.emit("renderedPage", page); @@ -1843,24 +1927,26 @@ if (!blank) { // Listen for page overflow - page.onOverflow((overflow) => { - _requestIdleCallback$1(() => { - let index = this.pages.indexOf(page) + 1; - if (index < this.pages.length && - (this.pages[index].breakBefore || this.pages[index].previousBreakAfter)) { - let newPage = this.insertPage(index - 1); - newPage.prepend(overflow); - } else if (index < this.pages.length) { - this.pages[index].prepend(overflow); - } else { - let newPage = this.addPage(); - newPage.prepend(overflow); - } - }); + page.onOverflow((overflowToken) => { + // console.log("overflow on", page.id, overflowToken); + let index = this.pages.indexOf(page) + 1; + if (index < this.pages.length && + (this.pages[index].breakBefore || this.pages[index].previousBreakAfter)) { + let newPage = this.insertPage(index - 1); + newPage.layout(this.source, overflowToken); + } else if (index < this.pages.length) { + this.pages[index].layout(this.source, overflowToken); + } else { + let newPage = this.addPage(); + newPage.layout(this.source, overflowToken); + } }); - page.onUnderflow(() => { - // console.log("underflow on", page.id); + page.onUnderflow((overflowToken) => { + // console.log("underflow on", page.id, overflowToken); + + // page.append(this.source, overflowToken); + }); } @@ -1887,15 +1973,13 @@ if (!blank) { // Listen for page overflow - page.onOverflow((overflow) => { - _requestIdleCallback$1(() => { - if (total < this.pages.length) { - this.pages[total].prepend(overflow); - } else { - let newPage = this.addPage(); - newPage.prepend(overflow); - } - }); + page.onOverflow((overflowToken) => { + if (total < this.pages.length) { + this.pages[total].layout(this.source, overflowToken); + } else { + let newPage = this.addPage(); + newPage.layout(this.source, overflowToken); + } }); page.onUnderflow(() => { @@ -22220,7 +22304,7 @@ // https://drafts.csswg.org/css-images-4/#element-notation // https://developer.mozilla.org/en-US/docs/Web/CSS/element - var element$1 = function() { + var element = function() { this.scanner.skipSC(); var children = this.createSingleNodeList( @@ -22283,8 +22367,8 @@ var value = { getNode: _default, - '-moz-element': element$1, - 'element': element$1, + '-moz-element': element, + 'element': element, 'expression': expression$1, 'var': _var }; @@ -23310,7 +23394,7 @@ class Handler { constructor(chunker, polisher, caller) { - let hooks = Object.assign({}, chunker && chunker.hooks, polisher && polisher.hooks); + let hooks = Object.assign({}, chunker && chunker.hooks, polisher && polisher.hooks, caller && caller.hooks); this.chunker = chunker; this.polisher = polisher; this.caller = caller; @@ -24393,7 +24477,7 @@ marginGroup.style["grid-template-columns"] = leftWidth + " 1fr " + leftWidth; } }else{ - if(rightWidth !== "none" && rightWidth !== "auto"){ + if(rightWidth !== "none" && rightWidth !== "auto"){ marginGroup.style["grid-template-columns"] = rightWidth + " 1fr " + rightWidth; }else{ marginGroup.style["grid-template-columns"] = "auto auto 1fr"; @@ -24431,7 +24515,7 @@ right.style["white-space"] = "normal"; center.style["white-space"] = "normal"; } - } + } }else if(centerWidth !== "none" && centerWidth !== "auto"){ if(leftContent && leftWidth !== "none" && leftWidth !== "auto"){ marginGroup.style["grid-template-columns"] = leftWidth + " " + centerWidth + " 1fr"; @@ -24446,14 +24530,14 @@ }else{ if(leftContent){ if(!rightContent){ - marginGroup.style["grid-template-columns"] = "1fr 0 0"; + marginGroup.style["grid-template-columns"] = "1fr 0 0"; }else{ if(leftWidth !== "none" && leftWidth !== "auto"){ if(rightWidth !== "none" && rightWidth !== "auto"){ marginGroup.style["grid-template-columns"] = leftWidth + " 1fr " + rightWidth; }else{ marginGroup.style["grid-template-columns"] = leftWidth + " 0 1fr"; - } + } }else{ if(rightWidth !== "none" && rightWidth !== "auto"){ marginGroup.style["grid-template-columns"] = "1fr 0 " + rightWidth; @@ -24468,16 +24552,16 @@ marginGroup.style["grid-template-columns"] = "minmax(16.66%, " + newLeftWidth + "%) 0 1fr"; left.style["white-space"] = "normal"; right.style["white-space"] = "normal"; - } - } + } + } } }else{ if(rightWidth !== "none" && rightWidth !== "auto"){ marginGroup.style["grid-template-columns"] = "1fr 0 " + rightWidth; }else{ marginGroup.style["grid-template-columns"] = "0 0 1fr"; - } - } + } + } } }); @@ -24518,7 +24602,7 @@ marginGroup.style["grid-template-rows"] = topHeight + " calc(100% - " + topHeight + "*2) " + topHeight; } }else{ - if(bottomHeight !== "none" && bottomHeight !== "auto"){ + if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = bottomHeight + " calc(100% - " + bottomHeight + "*2) " + bottomHeight; } } @@ -24527,7 +24611,7 @@ if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = bottomHeight + " calc(100% - " + bottomHeight + "*2) " + bottomHeight; } - } + } }else{ if(topContent && topHeight !== "none" && topHeight !== "auto"){ marginGroup.style["grid-template-rows"] = topHeight +" " + middleHeight + " calc(100% - (" + topHeight + " + " + middleHeight + "))"; @@ -24542,33 +24626,33 @@ }else{ if(topContent){ if(!bottomContent){ - marginGroup.style["grid-template-rows"] = "1fr 0 0"; + marginGroup.style["grid-template-rows"] = "1fr 0 0"; }else{ if(topHeight !== "none" && topHeight !== "auto"){ if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = topHeight + " 1fr " + bottomHeight; }else{ marginGroup.style["grid-template-rows"] = topHeight + " 0 1fr"; - } + } }else{ if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = "1fr 0 " + bottomHeight; }else{ marginGroup.style["grid-template-rows"] = "1fr 0 1fr"; - } - } + } + } } }else{ if(bottomHeight !== "none" && bottomHeight !== "auto"){ marginGroup.style["grid-template-rows"] = "1fr 0 " + bottomHeight; }else{ marginGroup.style["grid-template-rows"] = "0 0 1fr"; - } - } + } + } } - + }); } @@ -24781,8 +24865,8 @@ property === "page-break-before" || property === "page-break-after" ) { - let child = declaration.value.children.first(); - let value = child.name; + let child$$1 = declaration.value.children.first(); + let value = child$$1.name; let selector = lib.generate(rule.ruleNode.prelude); if (property === "page-break-before") { @@ -24825,6 +24909,8 @@ if (prop.property === "break-after") { let nodeAfter$$1 = elementAfter(elements[i], parsed); + elements[i].setAttribute("data-break-after", prop.value); + if (nodeAfter$$1) { nodeAfter$$1.setAttribute("data-previous-break-after", prop.value); } @@ -24887,7 +24973,7 @@ } } - layout(pageElement, page) { + afterLayout(pageElement, page) { this.addBreakAttributes(page); } } @@ -25797,14 +25883,14 @@ ? Number.isNaN : shim$5; - var indexOf$1 = Array.prototype.indexOf + var indexOf$2 = Array.prototype.indexOf , objHasOwnProperty = Object.prototype.hasOwnProperty , abs$1 = Math.abs , floor$1 = Math.floor; var eIndexOf = function (searchElement /*, fromIndex*/) { var i, length, fromIndex, val; - if (!isNan(searchElement)) return indexOf$1.apply(this, arguments); + if (!isNan(searchElement)) return indexOf$2.apply(this, arguments); length = toPosInteger(validValue(this).length); fromIndex = arguments[1]; @@ -25919,6 +26005,9 @@ // Chunk contents this.chunker = new Chunker(); + // Hooks + this.hooks = {}; + // default size this.size = { width: { @@ -25993,16 +26082,16 @@ return template.content; } - removeStyles() { + removeStyles(doc=document) { // Get all stylesheets - let stylesheets = Array.from(document.querySelectorAll("link[rel='stylesheet']")); + let stylesheets = Array.from(doc.querySelectorAll("link[rel='stylesheet']")); let hrefs = stylesheets.map((sheet) => { sheet.remove(); return sheet.href; }); // Get inline styles - let inlineStyles = Array.from(document.querySelectorAll("style:not([data-pagedjs-inserted-styles])")); + let inlineStyles = Array.from(doc.querySelectorAll("style:not([data-pagedjs-inserted-styles])")); inlineStyles.forEach((inlineStyle) => { let obj = {}; obj[window.location.href] = inlineStyle.textContent; @@ -26014,14 +26103,15 @@ } async preview(content, stylesheets, renderTo) { - if (!stylesheets) { - stylesheets = this.removeStyles(); - } if (!content) { content = this.wrapContent(); } + if (!stylesheets) { + stylesheets = this.removeStyles(); + } + this.polisher.setup(); let handlers = this.initializeHandlers(); @@ -26058,6 +26148,8 @@ initializeHandlers: initializeHandlers }); + window.Paged = Paged; + let ready = new Promise(function(resolve, reject){ if (document.readyState === "interactive" || document.readyState === "complete") { resolve(document.readyState); @@ -26071,13 +26163,34 @@ }; }); - let previewer = new Previewer(); + let config = window.PagedConfig || { + auto: true, + before: undefined, + after: undefined, + content: undefined, + stylesheets: undefined, + renderTo: undefined + }; + + let previewer = new Previewer(config.content, config.stylesheets, config.renderTo); - window.PagedPolyfill = previewer; - window.Paged = Paged; ready.then(async function () { - await previewer.preview(); + let done; + if (config.before) { + await config.before(); + } + + if(config.auto !== false) { + done = await previewer.preview(); + } + + + if (config.after) { + await config.after(done); + } }); + return previewer; + })));