|ca08d18235||3 months ago|
|.gitignore||3 months ago|
|README.md||3 months ago|
|go.mod||3 months ago|
|go.sum||3 months ago|
|gpub.go||3 months ago|
|main.go||3 months ago|
The slightly misnamed, but grandfathered in, epub-to-md can convert an epub to a markdown file or a gempub file.
There are a few caveats to the generated content:
- Links are removed and only their inner text remains
- This is not true for gpub documents, they retain links which are set up as reference links (a number next to the link) and the actual link is found at the end of each chapter next to the given reference number. This allows for gemtext style link lines
- When generating a gpub gemtext links are also used for the table of contents
- Images and svg elements are removed
- Cover images are retained in gpub documents unless the
-nocoverflag is passed
Both of the above are done in order to retain a self-sufficient file containing the content of the text. The goal of this converter is to convert novels and other works of fiction, which do not generally require many links or images. It may not be the best tool for all types of written work.
The converter can also wrap markdown text at arbitrary widths greater than zero.
When greating a gpub file the converter still converts to markdown. As such any bold or italics in the text will have markdown style formatting that may not render as formatting in gempub readers. At present there are few readers for the format. The two that I know of are: lagrange and gpr. Both are able to read gempub files generated by epub-to-md. Unlike the conversion to markdown, converting to gempub does retain the cover image as a part of the gempub file output. To save on file size, especially in text only environments, the cover can be omitted from the gpub file with the
-nocover flag. If a cover is included and an svg is used in the original epub file, epub-to-md will attempt to call out to
inkscape to convert the file to a png. If inkscape is not present, building the cover will fail since svg is not a valid filetype for a gempub cover. Lastly, since gemtext uses
* at the beginning of a line to denote a list item, the markdown that is generated for the gpub will follow suit. To avoid confusion both italics and bold will use their underscore form rather than the form involving asterisks.
epub-to-md [options] [[path]] -h display help -gpub Generate a gpub file from an epub input -nocover Do not include a cover when generating a gpub -o string Output file location (default "stdout") -w int Wrap text to the given width The path can be omitted to use the current directory as if it were an uncompressed epub file. If a path is given, it should be a path to an epub file or a path to a directory representing an epub (it will have a 'content.opf' file in it somewhere). If the -gpub flag is given, the -w option will have no effect. Examples: epub-to-md -w 80 -o book.md ./book.epub epub-to-md -o book.md ./my-book-project/ epub-to-md -o book.md epub-to-md -gpub -o book.gpub ./book.epub epub-to-md -gpub -nocover ./book.epub