Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite #76

Open
mrombout opened this issue Jul 29, 2023 · 0 comments
Open

Rewrite #76

mrombout opened this issue Jul 29, 2023 · 0 comments

Comments

@mrombout
Copy link
Owner

mrombout commented Jul 29, 2023

Spiner is outdated and hadn't been maintained for a while. It isn't very user friendly and difficult to run because of it being written in Java. This project should either be rewritten, or archived. If I go for the latter option, I've documented some alternatives in #75.

If I'm going to rewrite this tool I will either use Go because I like it and builds self-contained executables, or JavaScript because it's easy for users to use because it simply runs in the browser. My preference goes to Go because I like that language better, if it can be made to work in the browser with WebAssembly that would be great.

It needs to be a self-contained one-stop shop otherwise the pandoc-based solutions are better to use. That means the parsing needs to happen in the application itself. It needs to create an EPUB3 without the need of external tools. And finally, it order to be user-friendly it needs a story-format that supports everything that the converter does, and no more.

Alternatively, it might be an idea implement a custom story format using paged.js which should be able to create nicely formatted PDFs for print. Turning them into EPUB is not supported by default, though.

Go

A native binary will take in the story and use tweego to parse (will have to fork because most is private/internal). It will then render an EPUB internally and write it to a file.

JavaScript

If I can get this to work client-side (with epub-gen-memory for example and put it in a story format it would be very accessible for people using the Twine UI.

It follow a similar process as prepub. Users must use the custom story format, then when they "play" a web-page is generated with a download button to download the EPUB.

For people using Twee it would probably be a two-step process, use tweego to export, then open browser to generate EPUB. Not ideal, but not too complicated either. For automation, I suppose something like Puppeteer could be used with a node.js based CLI to control it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant