hackclub / putting-the-you-in-cpu

A technical explainer by @kognise of how your computer runs programs, from start to finish.
https://cpu.land
MIT License
4.71k stars 145 forks source link

EPUB Version #22

Open ixabolfazl opened 11 months ago

ixabolfazl commented 11 months ago

If possible, I would appreciate it if you could provide an EPUB version of this text as well. I think this format might be more suitable for reading on electronic devices. Thank you for taking the time to make this useful information available to me. I hope you can provide an EPUB copy too.

kognise commented 11 months ago

I definitely want to do this! I haven't really worked with the EPUB format in ages, if I remember properly it might take some time to implement. Would definitely be open to community contributions around this if you're interested in possibly working on this yourself! If not, definitely on the wishlist for me.

I'm currently working on a one-pager and PDF in #11, but I understand that isn't the ideal format for, say, kindles. So sometime in the next couple days I might start hacking on EPUB support.

Bartvelp commented 11 months ago

Here is a shitty one I created from the HTML in the mean time. how_cpus_work.zip

In a zip because github doesn't support uploading .epub.

filmgirl commented 11 months ago

I'm going to try to take a crack at this tomorrow if a better option doesn’t present itself first and nerd-snipe me, but I think there is something I can work with this tool https://github.com/danburzo/percollate, which I've used before and that is very cool

artelse commented 11 months ago

The very useful pandoc tool can also export to epub. You might give it a try.

ericschn commented 10 months ago

I didn't see any activity here for a few days so I decided to give it a go. Created proper chapters and a cover image, most of it looks good on my kindle.

Still working on:

Putting the You in CPU - Lexi Mattick - draft1.zip

kognise commented 10 months ago

Woah, amazing @ericschn! Let me know if I can help with anything, e.g. making e-ink friendly versions of the drawings.

kognise commented 10 months ago

On this: I think the EPUB would ideally be generated via script just like the PDF. Eventually I want to make both an Astro plugin or something, or at least part of CI. @ericschn was your current work manual or did you make progress on / plan to write a script?

(Either way, I am planning on investing time into this myself to polish, and I'm happy to write an EPUB-generating script as part of that.)

ericschn commented 10 months ago

@kognise My work was mainly manual edits on the "one-pager" edition with regex replace-all. A script on the chapters .mdx files would definitely be cool. I was planning to work more on the EPUB this evening, I'll research .mdx conversion too.

artelse commented 10 months ago

@ericschn A few things; on my linux ebook reader Okular, it has formatting errors where text runs thru graphics which in itself seem misplaced. My reMarkable tablet refuses to load the epub entirely, no idea what's going on there. I love this document and would be great when it becomes more portable.

ericschn commented 10 months ago

@artelse Thanks for that feedback, I think some styling I left in that doesn't affect kindle is affecting your devices, I've noted to remove all styles in the next version. Would you mind if I tag you again this evening (~8 hours from now) to test a new version on your devices?

sanchezb commented 10 months ago

I would appreciate too for an EPUB version, and could test it on my KOBO Aura 2.

ericschn commented 10 months ago

@kognise I've made a script for automating epub generation, it's a node script similar to your pdfgen.js. It's a bit messy, maybe an astro plugin could be cleaner. epubgen.js pandoc is then ran on the resulting .md file this script generates to create the epub.

Here's the epub that this script + pandoc creates (unzip first): putting-the-you-in-cpu-draft2.zip

Things missing from epub version:

artelse commented 10 months ago

@ericschn Hi, was away, but if you want me to test a new version, let me know.