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

tinytoc

v1.0.5

Published

A very small Table of Contents generator based on h tags

Downloads

3

Readme

tinytoc

A very simple Table of Contents Generator written in TypeScript. tinytoc generates a table of contents based on h tags (h1, ... ,h6) on the website. Table of contents is ceated by appending a list of items to a specified div on the page. A list can be both ordered and unordered. tinytoc by default creats links to the headings as well. Table of contents is unstyled and its up to the user to make style decisions.

Instalation

npm install tinytoc

Usage

First create import tinytoc into the project

import TinyToc from 'tinytoc'

then create a new instance of TinyToc

const contentSelector = "#content"
const targetSelector = "#toc"
const toc = new TinyToc(contentSelector, targetSelector, {})

and finally call generate function which would append Table of Contents to specified div

toc.generate()

Configuration and options

tinytoc requires only 2 things to be specified - tocSource (a string with a selector for element which holds content with headings) and tocTarget (a string with a selector for element which should contain the table of contents) tinytoc also accepts a third argument - an optional object holding additional options.

Arguments

Argument | Type | Required | Default Value | Postion | Explanation ---------|------|----------|---------------|---------|------------ tocSource | string | true | null | 0 | A selector for element which contains headings. Can be any valid JavaScript querySelector. For example for <div id="blog-post"></div> proper selector would be "#blog-post" tocTarget | string | true | null | 1 | A selector for element should contain table of contents. Can be any valid JavaScript querySelector. For example for <div id="blog-toc"></div> proper selector would be "#blog-toc" options | object | true | null | 2 | An object containing addition optionions specified in the table bellow. None of the options are required, however passing an empty object is required.

Additional options

Argument | Type | Required | Default Value | Explanation ---------|------|----------|---------------|------------ tags | Array of strings | false | ['h2', 'h3', 'h4', 'h5', 'h6'] | An array of tag names which specifies which tags should be selected for table of contents. By default selects all headings except h1 listType | string | false | "ul" | Specifies which type of list to create, can be either "ul" or "ol" linkItems | boolean | false | true | Specifies whether to create links to related headings in table of contents

Example with additional settings

import TinyToc from 'tinytoc'
const toc = new TinyToc("#blog-post", "#blog-toc", {
    tags: ["h3", "h4"],
    listType: "ol",
    linkItems: false
})
toc.generate()