Comments (2)
+1 for this, it will be very useful for me.
from epub-gen.
I did this using the option customHtmlTocTemplatePath
with the following custom template:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xml:lang="<%- lang %>" lang="<%- lang %>">
<head>
<title><%= title %></title>
<meta charset="UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h1 class="h1"><%= tocTitle %></h1>
<nav id="toc" epub:type="toc">
<%
// sort content into Parts, Chapters and Sections, hierarchically
// each part has multiple chapters, each chapter has multiple sections...
const hierarchical = [];
const cm = /^Chapter/
const sm = /^Section/
let lastPart;
let lastChapter;
for (const c of content) {
if (!sm.test(c.title) && !cm.test(c.title)) {
lastPart = {
title: c.title,
url: c.url,
href: c.href,
chapters: []
};
hierarchical.push(lastPart);
} else if (cm.test(c.title)) {
lastChapter = {
title: c.title,
url: c.url,
href: c.href,
sections: []
};
lastPart.chapters.push(lastChapter);
} else {
lastChapter.sections.push({
title: c.title,
url: c.url,
href: c.href,
})
}
}
// display hierarchically organized parts, chapters, and sections in TOC
hierarchical.forEach(({ title, href, chapters }, i) => {
%>
<h2><a href="<%= href %>">Part <%= i+1 %>: <%= title %></a></h2>
<%
chapters.forEach(({ title, href, sections }) => {
%>
<h3><a href="<%= href %>"><%= title %></a></h3>
<ul>
<%
sections.forEach(({ title, href }) => {
%>
<li><a href="<%= href %>"><%= title %></a></li>
<%
})
%>
</ul>
<%
})
})
%>
</nav>
</body>
</html>
The above template is just an example, you need to tweak it to your specific needs. Hope this helps.
from epub-gen.
Related Issues (20)
- Alternative: cpiber/epub-gen-memory for both node and browser
- Error with image URL HOT 3
- Custom fonts not getting applied in Epub Reader/Kindle Previewer
- The process randomly stop when downloading lots of images HOT 2
- Epub to html HOT 1
- Handle images which starts with relative path HOT 2
- Missing Hard timeout & Retry mechanism when downloading images. HOT 2
- insert video or audio into epub HOT 2
- Error: ENOTDIR, not a directory HOT 2
- fixed layout or reflowable layout
- Images and fonts do not appear on Apple Books HOT 3
- Custom ids gets converted to something another
- verbose: false outputs some logs
- verbose: false not working
- Showing different pub on different reader.
- Add tempDir option to documentation HOT 1
- a couple of bugs when using epub-gen HOT 1
- Object prototype may only be an Object or null: undefined
- [Question] Remove Table of Contents
- Please mark epub-gen as deprecated if it's no longer maintained. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from epub-gen.