0.1.0 • Published 5 years ago
react-table-of-contents v0.1.0
Kickoff
npm install react-table-of-contents
# or
yarn add react-table-of-contentsOutput:
- A React component of table-of-contents
- An HTML script to express the same list
React Element
import TableOfContents from "react-table-of-contents"
...
<TableOfContents headings={[
{ level: 1, id: "1-1", content: "Heading 1-1" },
{ level: 2, id: "2" , content: "Heading 2" },
{ level: 3, id: "3-1", content: "Heading 3-1" },
{ level: 3, id: "3-2", content: "Heading 3-2" },
{ level: 1, id: "1-2", content: "Heading 1-2" },
]}>
// React component to render...
// * Heading 1-1
// * Heading 2
// * Heading 3-1
// * Heading 3-2
// * Heading 1-1HTML string
import TableOfContents from "react-table-of-contents"
const toc = TableOfContents({
headings: [
{ level: 1, id: "1-1", content: "Heading 1" },
{ level: 2, id: "2" , content: "Heading 2" },
{ level: 3, id: "3-1", content: "Heading 3-1" },
{ level: 3, id: "3-2", content: "Heading 3-2" },
{ level: 1, id: "1-2", content: "Heading 1" },
]
})
console.log(toc.toHtml())
// Note: You can decide your class names. See below for detail.
// <ul>
// <li class="toc-item toc-h1">
// <a href="#1-1">Heading 1-1</a>
// </li>
// <ul>
// <li class="toc-item toc-h2">
// <a href="#2">Heading 2</a>
// </li>
// <ul>
// <li class="toc-item toc-h3">
// <a href="#3-1">Heading 3-1</a>
// </li>
// <li class="toc-item toc-h3">
// <a href="#3-2">Heading 3-2</a>
// </li>
// </ul>
// </ul>
// <li class="toc-item toc-h1">
// <a href="#1-2">Heading 1-2</a>
// </li>
// </ul>Input
headings: Type{ id: string, level: 1|2|3|4|5|6, content: string }[]id:idattribute of the target H1~H6 element to linklevel: Hx tag's x, has to be 1 - 6content: the link text
classnames: TypePartial<{ item: string, h1: string, ..., h6: string }>item: every list element of the table of contents has this classname (default:toc-item)h*: list elements withlevel: *will have this classname (default:toc-h*)- if any of the above is not specified, use default classname and corresponding CSS config
0.1.0
5 years ago