npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

epub-from-element

v0.0.2

Published

Creates ePub export for e-readers from selected html element(s)

Downloads

4

Readme

Epub from element v 0.2

Creates ePub export for e-readers from selected html element(s) like html element (article, div, … , or whole body if you want)

Just vanilla javascript. Example style (.css) and html example, and server side endpoint example included in repo.

What's new in version 0.2 ?

  • script settings by json file
  • automatically include images into ePub

Use

Polyfill is in single javascript module file epub-from-element.mjs. And server side endpoint (example in PHP). Include it into your site like this:

<button id="print" disabled>Print article</button>
<button id="epub" title="Export into ePub format (for eReaders like Kindle, Kobo, Nook, …)" disabled>Export into ePub</button>
<dialog id="epub-response"></dialog>
<script type="text/json" id="epub-from-element-settings">
	{
		"modulesImportPath": "/modules",
		"exportElementQuerySelectors": [ "body" ],
		"ePubServerSideEndpoints": [ "/endpoint-example/php/index.php" ],
		"toggleEPubElementId": "epub",
		"togglePrintElementId": "print",
		"resultsElementId": "epub-response",
		"ePubTempPathPrefix": "https://domain.tld/epubs/",
		"serverSideHeaders": {
			"creator": "Me :)"
		},
		"texts": {
			"closeButtonTitle": "Close popup with ePub result"
		}
	}
</script>
<script type="module" src="/modules/dialogicPolyfill.mjs" crossorigin="anonymous" integrity="sha256-tcuKQ/zHdgYxhMhX4ouXfqnqtOMXek83f//3owjsOe0="></script>
<script type="module" src="/epub-from-element.mjs?v=0.2" crossorigin="anonymous" integrity="sha256-ZDlCa5wROr98OYWcaopb2heJ8WXQxW2tAtrPh/7K8lw="></script>

Server side example is in folder endpoint-example/php it's using TPEpubCreator library from Luiz Otávio Miranda ( Github repo : https://github.com/luizomf/php-epub-creator ) not included in this repo.

There's also dialog polyfill, because dialog element function it's currently not supported in Firefox. After time and incoming support you can delete script from origin /modules/dialogicPolyfill.mjs.

Other files like example-usage.html and epub-from-element.css are there to help, but they are not needed for script function.

Print function just simple release the browser's print dialog. And ePub button creates ePub request (POST data) and send it into server side endpoint (also part of this example). Endpoint creates ePub file, returns it into script and also store it into folder. So next times returns already created ePub from cache.

Feature requests

  • Currently in Chrome ePub file cannot be shared (it works with all picture formats, mp3, pdf… but not ePub). So share button must share link to file but not file itself :( . Maybe in future.
  • Work without server side. This whole script can be maid only in frontend, so next times.

Possible problems?

The mjs extension must have the correct mime type set to text/javascript, if it is too laborious, rename the suffix from .mjs to .js.

Services

Unpkg: https://unpkg.com/epub-from-element

NPM: https://www.npmjs.com/package/epub-from-element

Licence

CC BY-SA 4.0

This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.


more info at https://iiic.dev/epub-from-element