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

feat: Support adding sections for generated ToC documents #484

Open
wants to merge 18 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
29 changes: 15 additions & 14 deletions examples/table-of-contents/README.md
@@ -1,9 +1,13 @@
# Example of Table of Contents

With the `toc` option, we can generate a file with a table of contents.
<img src="image.png" alt="ToC example" width="400">

- If the `true` is set, `index.html` will be written for a table of contents.
- If string value is set, a HTML file of table of contents will be written on the specified path.
With the `toc` option, we can generate a file with a table of contents. The `toc` option can be a string, boolean or an object with the following properties.

- `title`: Specify the title of the generated ToC document. (default: Table of Contents)
- `htmlPath`: Specify the location where the generated ToC document will be saved. (default: index.html)
- `sectionDepth`: Specify the depth of the section to be included in the ToC document. (default: 0)
- `transformDocumentList`, `transformSectionList`: Specify the transform function to be used when generating the ToC document.

#### vivliostyle.config.js

Expand All @@ -13,19 +17,16 @@ module.exports = {
author: 'spring-raining',
language: 'en',
size: 'A4',
theme: 'default-style.css',
entry: [
'./manuscript/prelude.md',
{
path: './manuscript/cadence.html',
encodingFormat: 'text/html',
},
{
path: './manuscript/finale.md',
theme: 'custom-style.css',
},
'./manuscript/01_Computing Paradigms.md',
'./manuscript/02_Algorithm Design and Analysis.md',
'./manuscript/03_Systems and Architecture.md',
],
output: 'draft.pdf',
toc: true,
toc: {
title: 'Table of Contents',
htmlPath: 'index.html',
sectionDepth: 4,
},
};
```
4 changes: 0 additions & 4 deletions examples/table-of-contents/custom-style.css

This file was deleted.

4 changes: 0 additions & 4 deletions examples/table-of-contents/default-style.css

This file was deleted.

Binary file added examples/table-of-contents/image.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
231 changes: 227 additions & 4 deletions examples/table-of-contents/index.html
Expand Up @@ -7,16 +7,239 @@
rel="publication"
type="application/ld+json"
/>
<link type="text/css" href="default-style.css" rel="stylesheet" />
</head>
<body>
<h1>Example of Table of Contents</h1>
<nav id="toc" role="doc-toc">
<h2>Table of Contents</h2>
<ol>
<li><a href="manuscript/prelude.html">The first chapter</a></li>
<li><a href="manuscript/cadence.html">The second chapter</a></li>
<li><a href="manuscript/finale.html">The third chapter</a></li>
<li data-section-level="1">
<a href="manuscript/01_Computing%20Paradigms.html#computing-paradigms"
>Computing Paradigms</a
>
<ol>
<li data-section-level="2">
<a
href="manuscript/01_Computing%20Paradigms.html#introduction-to-computational-thinking"
>Introduction to Computational Thinking</a
>
<ol>
<li data-section-level="3">
<a
href="manuscript/01_Computing%20Paradigms.html#problem-solving-techniques"
>Problem Solving Techniques</a
>
</li>
<li data-section-level="3">
<a
href="manuscript/01_Computing%20Paradigms.html#computational-abstraction"
>Computational Abstraction</a
>
<ol>
<li data-section-level="4">
<a
href="manuscript/01_Computing%20Paradigms.html#algorithmic-efficiency"
>Algorithmic Efficiency</a
>
</li>
<li data-section-level="4">
<a
href="manuscript/01_Computing%20Paradigms.html#data-abstraction"
>Data Abstraction</a
>
</li>
</ol>
</li>
</ol>
</li>
<li data-section-level="2">
<a
href="manuscript/01_Computing%20Paradigms.html#programming-language-concepts"
>Programming Language Concepts</a
>
<ol>
<li data-section-level="3">
<a
href="manuscript/01_Computing%20Paradigms.html#syntax-and-semantics"
>Syntax and Semantics</a
>
</li>
<li data-section-level="3">
<a
href="manuscript/01_Computing%20Paradigms.html#type-systems-and-static-analysis"
>Type Systems and Static Analysis</a
>
<ol>
<li data-section-level="4">
<a
href="manuscript/01_Computing%20Paradigms.html#type-inference"
>Type Inference</a
>
</li>
<li data-section-level="4">
<a
href="manuscript/01_Computing%20Paradigms.html#polymorphism-and-generics"
>Polymorphism and Generics</a
>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li data-section-level="1">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#algorithm-design-and-analysis"
>Algorithm Design and Analysis</a
>
<ol>
<li data-section-level="2">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#introduction-to-algorithms"
>Introduction to Algorithms</a
>
<ol>
<li data-section-level="3">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#algorithmic-complexity"
>Algorithmic Complexity</a
>
</li>
<li data-section-level="3">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#asymptotic-analysis"
>Asymptotic Analysis</a
>
<ol>
<li data-section-level="4">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#big-o-notation"
>Big O Notation</a
>
</li>
<li data-section-level="4">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#algorithmic-paradigms-divide-and-conquer"
>Algorithmic Paradigms: Divide and Conquer</a
>
</li>
</ol>
</li>
</ol>
</li>
<li data-section-level="2">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#data-structures"
>Data Structures</a
>
<ol>
<li data-section-level="3">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#arrays-and-linked-lists"
>Arrays and Linked Lists</a
>
</li>
<li data-section-level="3">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#trees-and-graphs"
>Trees and Graphs</a
>
<ol>
<li data-section-level="4">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#binary-search-trees"
>Binary Search Trees</a
>
</li>
<li data-section-level="4">
<a
href="manuscript/02_Algorithm%20Design%20and%20Analysis.html#depth-first-search-and-breadth-first-search"
>Depth-First Search and Breadth-First Search</a
>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li data-section-level="1">
<a
href="manuscript/03_Systems%20and%20Architecture.html#systems-and-architecture"
>Systems and Architecture</a
>
<ol>
<li data-section-level="2">
<a
href="manuscript/03_Systems%20and%20Architecture.html#computer-organization"
>Computer Organization</a
>
<ol>
<li data-section-level="3">
<a
href="manuscript/03_Systems%20and%20Architecture.html#cpu-architecture-and-instruction-set-design"
>CPU Architecture and Instruction Set Design</a
>
</li>
<li data-section-level="3">
<a
href="manuscript/03_Systems%20and%20Architecture.html#memory-hierarchy-caches-and-virtual-memory"
>Memory Hierarchy: Caches and Virtual Memory</a
>
<ol>
<li data-section-level="4">
<a
href="manuscript/03_Systems%20and%20Architecture.html#cache-coherence"
>Cache Coherence</a
>
</li>
<li data-section-level="4">
<a
href="manuscript/03_Systems%20and%20Architecture.html#page-replacement-algorithms"
>Page Replacement Algorithms</a
>
</li>
</ol>
</li>
</ol>
</li>
<li data-section-level="2">
<a
href="manuscript/03_Systems%20and%20Architecture.html#operating-systems"
>Operating Systems</a
>
<ol>
<li data-section-level="3">
<a
href="manuscript/03_Systems%20and%20Architecture.html#process-management-and-scheduling"
>Process Management and Scheduling</a
>
</li>
<li data-section-level="3">
<a
href="manuscript/03_Systems%20and%20Architecture.html#file-systems-and-disk-management"
>File Systems and Disk Management</a
>
<ol>
<li data-section-level="4">
<a
href="manuscript/03_Systems%20and%20Architecture.html#raid-redundant-array-of-independent-disks"
>RAID: Redundant Array of Independent Disks</a
>
</li>
<li data-section-level="4">
<a
href="manuscript/03_Systems%20and%20Architecture.html#disk-scheduling-algorithms"
>Disk Scheduling Algorithms</a
>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
</ol>
</nav>
</body>
Expand Down
@@ -0,0 +1,53 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Computing Paradigms</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<section class="level1" aria-labelledby="computing-paradigms">
<h1 id="computing-paradigms">Computing Paradigms</h1>
<section class="level2" aria-labelledby="introduction-to-computational-thinking">
<h2 id="introduction-to-computational-thinking">Introduction to Computational Thinking</h2>
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cupiditate molestiae ut repellendus vero modi molestias perferendis fugiat laboriosam aperiam incidunt! Magnam non hic error aliquam ut velit, provident odit beatae!</p>
<section class="level3" aria-labelledby="problem-solving-techniques">
<h3 id="problem-solving-techniques">Problem Solving Techniques</h3>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Consequuntur veniam officia provident sed labore eius ratione corporis soluta accusantium, optio maxime quam ipsam repudiandae eos blanditiis quia quasi quae fugiat.</p>
</section>
<section class="level3" aria-labelledby="computational-abstraction">
<h3 id="computational-abstraction">Computational Abstraction</h3>
<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Fugit, repudiandae. Possimus voluptatem suscipit a iste, eum, placeat cum repudiandae dignissimos fugit alias nemo! Quas molestias dolor omnis excepturi laudantium quaerat.</p>
<section class="level4" aria-labelledby="algorithmic-efficiency">
<h4 id="algorithmic-efficiency">Algorithmic Efficiency</h4>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus numquam cumque dolores, dolor quam similique nisi cupiditate obcaecati, in laboriosam id minus sit tenetur odit ipsa, eligendi voluptas repellat iste?</p>
</section>
<section class="level4" aria-labelledby="data-abstraction">
<h4 id="data-abstraction">Data Abstraction</h4>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa deleniti iure aliquid sed! Dolore odio, sint aliquid quasi ipsam deleniti temporibus nostrum quidem, magni voluptatibus optio porro minus saepe vero?</p>
</section>
</section>
</section>
<section class="level2" aria-labelledby="programming-language-concepts">
<h2 id="programming-language-concepts">Programming Language Concepts</h2>
<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. At mollitia aperiam fuga, consequatur esse quod ratione, hic minus vitae blanditiis officiis ea! Minus rem hic omnis repellat possimus reprehenderit corporis!</p>
<section class="level3" aria-labelledby="syntax-and-semantics">
<h3 id="syntax-and-semantics">Syntax and Semantics</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus, consequuntur expedita voluptas eligendi eius deserunt nobis placeat maiores eos, sunt quidem! Asperiores ab eos eligendi sit dolores, consectetur perferendis nulla?</p>
</section>
<section class="level3" aria-labelledby="type-systems-and-static-analysis">
<h3 id="type-systems-and-static-analysis">Type Systems and Static Analysis</h3>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Sint voluptas iure sapiente nesciunt minima corrupti explicabo fugiat asperiores ullam, debitis omnis tenetur? Ipsum quibusdam mollitia voluptas nemo voluptatibus, harum id?</p>
<section class="level4" aria-labelledby="type-inference">
<h4 id="type-inference">Type Inference</h4>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit molestias fugiat nisi vitae maxime quisquam porro quaerat aut vero officiis velit tempora, atque optio temporibus corporis rerum explicabo autem fuga.</p>
</section>
<section class="level4" aria-labelledby="polymorphism-and-generics">
<h4 id="polymorphism-and-generics">Polymorphism and Generics</h4>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti beatae, quam est asperiores repellat culpa reprehenderit numquam nemo laudantium placeat, inventore exercitationem voluptatibus similique quia assumenda saepe at, pariatur suscipit.</p>
</section>
</section>
</section>
</section>
</body>
</html>
45 changes: 45 additions & 0 deletions examples/table-of-contents/manuscript/01_Computing Paradigms.md
@@ -0,0 +1,45 @@
---
title: Computing Paradigms
---

# Computing Paradigms

## Introduction to Computational Thinking

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cupiditate molestiae ut repellendus vero modi molestias perferendis fugiat laboriosam aperiam incidunt! Magnam non hic error aliquam ut velit, provident odit beatae!

### Problem Solving Techniques

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Consequuntur veniam officia provident sed labore eius ratione corporis soluta accusantium, optio maxime quam ipsam repudiandae eos blanditiis quia quasi quae fugiat.

### Computational Abstraction

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Fugit, repudiandae. Possimus voluptatem suscipit a iste, eum, placeat cum repudiandae dignissimos fugit alias nemo! Quas molestias dolor omnis excepturi laudantium quaerat.

#### Algorithmic Efficiency

Lorem ipsum dolor sit amet consectetur adipisicing elit. Voluptatibus numquam cumque dolores, dolor quam similique nisi cupiditate obcaecati, in laboriosam id minus sit tenetur odit ipsa, eligendi voluptas repellat iste?

#### Data Abstraction

Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa deleniti iure aliquid sed! Dolore odio, sint aliquid quasi ipsam deleniti temporibus nostrum quidem, magni voluptatibus optio porro minus saepe vero?

## Programming Language Concepts

Lorem ipsum dolor sit amet consectetur, adipisicing elit. At mollitia aperiam fuga, consequatur esse quod ratione, hic minus vitae blanditiis officiis ea! Minus rem hic omnis repellat possimus reprehenderit corporis!

### Syntax and Semantics

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Possimus, consequuntur expedita voluptas eligendi eius deserunt nobis placeat maiores eos, sunt quidem! Asperiores ab eos eligendi sit dolores, consectetur perferendis nulla?

### Type Systems and Static Analysis

Lorem ipsum dolor sit amet consectetur adipisicing elit. Sint voluptas iure sapiente nesciunt minima corrupti explicabo fugiat asperiores ullam, debitis omnis tenetur? Ipsum quibusdam mollitia voluptas nemo voluptatibus, harum id?

#### Type Inference

Lorem ipsum dolor sit amet consectetur adipisicing elit. Suscipit molestias fugiat nisi vitae maxime quisquam porro quaerat aut vero officiis velit tempora, atque optio temporibus corporis rerum explicabo autem fuga.

#### Polymorphism and Generics

Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti beatae, quam est asperiores repellat culpa reprehenderit numquam nemo laudantium placeat, inventore exercitationem voluptatibus similique quia assumenda saepe at, pariatur suscipit.