Don't worry, I'm not offended. You mostly just made me realize that even if Bookbind is mostly "done," it needs a lot of documentation work still. :)

But, your workflow sounds *close* to that of the book I wrote Bookbind to create, with the exception of the images, as I didn't have any of those. My chapters were in Markdown but the front matter was in straight HTML, and I wrote my own CSS. Bookbind doesn't generate any CSS at all; it just includes the files you point it to. The only files it generates are the EPUB-specific ones, and of course HTML files produced by processing with Markdown -- but it can include HTML files directly without processing them. (And, of course, Markdown can include embedded HTML. In my book I occasionally included <span class="smallcaps">Small Caps</span> for certain passages, and that works just fine.)

I don't want to "advertise" Bookbind, but if nothing else, you might want to see if there are bits of code you want to use, since it looked like you were also writing in Python.

Eelco Deuling <mailto:[email protected]>
August 9, 2012 23:01
Hello Wats Martin,

I am sorry if I did sound offensive: that was not my intention. I "more or less" understand what Bookbind tries to do but for me it won't work, because Markdown has not enough support for classes, id's etc.

I usually start with a InDesign document (a "completed" book for print) where I use grep to place Markdown tags. I copy/paste the text in BBEdit, convert Markdown to HTML and divide the document into chapters. I could do this with your program, and for a textbook this would be enough. After this I start to expand the markup using classes, especially for the different kind of images (with text-wrap, as page-sized, etc). If I am happy with the result I can "pack" it as an epub, where I look at this part of the process as the last part: like generating the PDF-X1 flattened file print houses in the Netherlands demand.

So: I want to be able to make HTML/CSS *before* the generation of the epub, in your solution it is generated *during* the process.
--
--
You received this message because you are subscribed to the
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
<http://groups.google.com/group/bbedit?hl=en>
If you have a feature request or would like to report a problem,
please email "[email protected]" rather than posting to the group.
Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>



Watts Martin <mailto:[email protected]>
August 9, 2012 9:33
I'll express a *mild* objection here. :) Bookbind is designed to let you use your own stylesheet for a book and even to override individual pages if necessary. While the main reason I wrote it is because I write prose in Markdown these days, being able to do custom styling was pretty important to me; I was a professional typesetter many years ago and have done magazine and book design in the past.

Clearly I'm going to have to start writing actual documentation sometime soon...

At any rate, I know that Pandoc can also let you include a stylesheet, although IIRC it's not as flexible. (But it may -- ahem -- have better documentation.)
Eelco Deuling <mailto:[email protected]>
August 9, 2012 1:29
Hello Maarten,

Thank you for "cleaning up" my script, and thank you for pointing out to http://code.google.com/p/python-epub-builder/ <http://code.google.com/p/python-epub-builder/>.

I did find this myself before, but I staggered mentally when I read the introduction in the Wiki to "create a epub in five minutes", as I hardly understand a word in it (and this is just using the "simple API").

The problem is I cannot find a solution that does /just/ what I want it to do and /nothing more/. I have tried all the WYSIWYG epub editors and generators, and they all fail me some way or another: they mess up my CSS, refuse to work with my media or generate a non valid epub.

Most solutions posted here (like the python-epub-builder, Bookbind by Watts Martin, etc.) are good to generate epub's from text documents, converting those on-the-fly from Markdown or a similar markup language. Unfortunately they will not work for me, as they tend to use more or less /generic/ CSS and not the /custom/ HTML and CSS I want to use (as a designer I want to make not only readable books but they should look great as well and every book should have it's own CSS).

With regards,

Eelco
--
--
You received this message because you are subscribed to the
"BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
<http://groups.google.com/group/bbedit?hl=en>
If you have a feature request or would like to report a problem,
please email "[email protected]" rather than posting to the group.
Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>



Maarten Sneep <mailto:[email protected]>
August 8, 2012 12:31
Hi,

On 8 aug. 2012, at 14:03, Eelco Deuling<[email protected]>  wrote:

I have finished "part one": make a directory structure and all the necessary 
files for an epub.
As this is my first-ever python script there should be some things wrong, but 
it works:

Let me help you out. The script is not too shabby, but could use some cleanup.


#!/usr/bin/env python
#>>  This uses the system python. Slightly more flexible.

####################################################################
# call the operating system (?)
#>>  Load the 'os' module in python.
#>>  This contains a lot of functionality for interaction with the os
####################################################################
import os

####################################################################
# create the directory structure
####################################################################
My_Epub = "epub"
if not os.path.exists(My_Epub):
     os.mkdir(My_Epub)

root_path = "./epub/"
folders = ["META-INF", "OEBPS", "OEBPS/texts", "OEBPS/css", "OEBPS/media", 
"OEBPS/fonts"]
for folder in folders:
    os.mkdir(os.path.join(root_path,folder))

####################################################################
# create the mimetype file
#>>  Use os.path.join() here too
#>>  Your version didn't close the file (explicitly).
#>>  It was implicitly closed on script-end.
####################################################################
with open(os.path.join(My_Epub, "mimetype"), "w") as fp:
     fp.write("application/epub+zip")

####################################################################
# create the container xml file
####################################################################
My_Container_xml = """<?xml version="1.0" ?>
<container version="1.0" 
xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
<rootfiles>
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml" 
/>
</rootfiles>
</container>
"""

with open(os.path.join(My_Epub, "META-INF", "container.xml"),"w") as fp:
     fp.write(My_Container_xml)

####################################################################
# create empty toc.ncx and empty content.opf
####################################################################
with open(os.path.join(My_Epub, "OEBPS", "toc.ncx"), "w") as fp:
     fp.write("")
with open(os.path.join(My_Epub, "OEBPS", "content.opf"), "w") as fp:
     fp.write("")

----
This gives me the chance to copy all html files, my css, images, fonts and 
movie files to the right directories.
Now I will have to fill the empty toc.ncx and content.opf files with the right 
content: maybe with os.listdir...

This will be continued (hopefully!).
All help would be welcome!

There is an epub python package. No need to reinvent the wheel.
http://code.google.com/p/python-epub-builder/
(I've never used this code, no idea how good this is).

Best,

Maarten


--
--
You received this message because you are subscribed to the "BBEdit Talk" discussion group on Google Groups.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
<http://groups.google.com/group/bbedit?hl=en>
If you have a feature request or would like to report a problem, please email "[email protected]" rather than posting to the group.
Follow @bbedit on Twitter: <http://www.twitter.com/bbedit>



Reply via email to