# ebukafy

The `ebukafy` utility will convert a plain text file into a nicely 
formatted html file to be used as a chapter in an epub.

## Usage
It is recommended that you use `ebukafy` in conjunction with Calibre. If 
you do, read the [Use with Calibre](#use-with-calibre) section first.

`Usage: ebukafy [-h] [-p paragraph-separator] [-s section-separator] 
filename...`

### Options
1. `paragraph-separator`: sequence of characters that will 
delimit paragraphs. Default value: "\t".

2. `section-seperator`: the sequence of characters that will delimit 
a section (the things I'm calling 'sections' are usually delimited by an 
empty line in paper books. In other words, sections are the chunks 
bigger than paragraphs and smaller than chapters). Default value: 
"\n\n". If the text only has one section, just make this something
random that won't appear in the text.

NOTE: If you want to change these two separators, make sure to use ANSI
C like strings. These are used like so: `$'string'`. For example: if you 
want to use `ebukafy` with `\n\n` as the `paragraph-separator` and 
`\n\n\n` as the `section-separator`, you would call it like so:

`ebukafy -p $'\n\n' -s $'\n\n\n' filename...`

3. `-h`: print out usage statement

### Args
After these options, include as many files as you want to `ebukafy`.

### Output
The output of this utility will be a folder called `ebukafy_index` 
filled with files named `index_n.html`, with n starting at 1 and 
incrementing for each `filename` you include when calling `ebukafy`. 
These are the nicely formatted html files that you can use in your 
epub. Additionally, the folder will include a copy of 
`stylesheet_additions.css` that you can find in this repository.

## Use with Calibre
This utility is meant to be used in conjunction with [Calibre](
https://calibre-ebook.com/).

1. Create an empty txt file anywhere.
2. In Calibre, in the upper left corner, click "Add books", which should 
open a file selector.
3. In the file selector, navigate to the empty txt file you created, and 
open it.
4. This should create a new empty book in Calibre. If you want to, you 
can add the metadata for the book such as the title, author, cover, etc.
5. In Calibre, convert the book you created to an EPUB.
6. After converting, select the book in the library and click "Edit 
book" in the top right corner.
7. On the left side you'll see the files that were created. Remove the 
one called index.html, if one exists. You probably want to keep the 
title page (titlepage.xhtml) since most books need a cover.
8. **IMPORTANT**: All EPUBs use a css file called stylesheet.css to give 
greater control over the formatting of the book. `ebukafy` uses its own 
stylesheet to format the html. To find it, look at the 
`stylesheet_additions.css` file in this repo (or in the `ebukafy_index`
folder created by `ebukafy` after you run it) and add its contents to 
the stylesheet.css of the EPUB. In Calibre, you can find this stylesheet 
in the "Edit book" editor.

9. At this point, the boilerplate code is set up and you need to run 
`ebukafy`. Look at [Usage](#usage) section.

10. Click the "Add file" button in the top left of the "Edit book" 
editor. You should name it `index_n.html` where n is a number that 
increments with each file you add (first file is `index_1.html`, second 
file is `index_2.html`, etc.). Into each file, you put the html created 
by `ebukafy`.

## Use without Calibre
`ebukafy` generates nicely formatted html documents based on a provided
txt file. Though it is much easier to put these files into an actual
epub with Calibre, it is not necessary if you know what you're doing.
Just make sure to read the [Usage](#usage) section.

**IMPORTANT**: All EPUBs use a css file called stylesheet.css to give 
greater control over the formatting of the book. `ebukafy` uses its own 
stylesheet to format the html. To find it, look at the 
`stylesheet_additions.css` file in this repo (or in the`ebukafy_index` 
folder created by `ebukafy` after you run it) and add its contents to 
the stylesheet.css of the EPUB. 
