
Research
Security News
Malicious PyPI Package Exploits Deezer API for Coordinated Music Piracy
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
The Table of Contents Generator is a JavaScript library that generates a table of contents based on the headings (e.g., ``, ``, ``) within an HTML document. It provides options for customizing the generated table of contents.
The Table of Contents Generator is a JavaScript library that generates a table of contents based on the headings (e.g., <h1>
, <h2>
, <h3>
) within an HTML document. It provides options for customizing the generated table of contents.
You can install the Table of Contents Generator library using npm:
npm install ah-toc
To use the Table of Contents Generator in your project, follow these steps:
import TableOfContents from 'ah-toc';
TableOfContents
class:const options = {
attributes: ['h1', 'h2', 'h3'],
appendTo: 'body',
containerClassName: 'toc',
ordered: false,
contentSelector: '#content'
};
const tableOfContents = new TableOfContents(options);
init
method to generate the table of contents:tableOfContents.init();
import { useRef } from 'react';
import useTableOfContents from 'table-of-contents-library/hook';
const MyComponent = () => {
const contentRef = useRef();
const tocData = useTableOfContents({ contentRef });
return (
<div>
{/* Your content goes here */}
<div ref={contentRef}>...</div>
{/* Render the table of contents */}
{tocData && (
<ul>
{tocData.children.map((node) => (
<li key={node.id}>
<a href={`#${node.id}`}>{node.content}</a>
</li>
))}
</ul>
)}
</div>
);
};
useTableOfContents
HookcontentRef
: A MutableRefObject
containing a reference to the content element in the HTML document that contains the headers.node
: A NodeType
object representing the table of contents hierarchy. It will be undefined
initially and will be updated once the table of contents is generated.The TableOfContents
class accepts an optional options
object during initialization. The available options are:
Option | Type | Default Value | Optional | Description |
---|---|---|---|---|
attributes | string[] | ['h1', 'h2', 'h3'] | Yes | An array of HTML heading tag names to include in the table of contents. |
appendTo | string | 'body' | Yes | The selector of the element to which the table of contents should be appended. |
containerClassName | string | 'toc' | Yes | The CSS class name to be applied to the container element of the table of contents. |
ordered | boolean | false | Yes | A boolean value indicating whether the generated table of contents should be ordered or unordered. |
contentSelector | string | '#content' | Yes | The selector of the element containing the content to generate the table of contents from. |
Suppose we have the following HTML content:
<div id="content">
<h1>Introduction</h1>
<h2>Section 1</h2>
<h3>Subsection 1.1</h3>
<h3>Subsection 1.2</h3>
<h2>Section 2</h2>
<h3>Subsection 2.1</h3>
<h3>Subsection 2.2</h3>
</div>
After calling the init
method with the default options, the generated table of contents will be appended to the <body>
element and will have the following structure:
<div class="toc">
<ul>
<li>
<a href="#introduction">Introduction</a>
<ul>
<li>
<a href="#section-1">Section 1</a>
<ul>
<li><a href="#subsection-1-1">Subsection 1.1</a
></li>
<li><a href="#subsection-1-2">Subsection 1.2</a></li>
</ul>
</li>
<li>
<a href="#section-2">Section 2</a>
<ul>
<li><a href="#subsection-2-1">Subsection 2.1</a></li>
<li><a href="#subsection-2-2">Subsection 2.2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
Please note that no CSS styles are added by default to keep the library simple and customizable. You can apply your own CSS styles by targeting the generated classes and elements.
This project is licensed under the MIT License.
FAQs
The Table of Contents Generator is a JavaScript library that generates a table of contents based on the headings (e.g., ``, ``, ``) within an HTML document. It provides options for customizing the generated table of contents.
We found that ah-toc demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.
Security News
Newly introduced telemetry in devenv 1.4 sparked a backlash over privacy concerns, leading to the removal of its AI-powered feature after strong community pushback.