Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
The doctoc npm package is a tool that automatically generates a table of contents for markdown files. It is particularly useful for projects with extensive documentation, as it helps in organizing and navigating through the content efficiently.
Generate Table of Contents
This command generates a table of contents for the specified markdown file (e.g., README.md). It scans the file for headers and creates a structured list with links to each section, which is then inserted at the top of the file.
doctoc README.md
Recursive Directory Processing
By running this command in a directory, doctoc will recursively process all markdown files within that directory, generating and updating tables of contents for each file. This is useful for projects with multiple documentation files.
doctoc .
Customizable TOC Title
This feature allows users to specify a custom title for the table of contents. By using the --title option, you can define how the TOC header should appear in the markdown file.
doctoc README.md --title '## Table of Contents'
The markdown-toc package is another tool for generating tables of contents for markdown files. It offers similar functionality to doctoc, such as generating TOCs based on headers. However, markdown-toc provides more customization options for the format and style of the TOC, making it a good choice for users who need more control over the output.
This package is a plugin for the markdown-it parser, which generates a table of contents for markdown files. It is designed to be used in environments where markdown-it is already in use, providing seamless integration. Compared to doctoc, it is more suitable for dynamic content generation scenarios, such as web applications that render markdown on the fly.
Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites via a command line flag.
Table of Contents generated with DocToc
git
hooknpm install -g doctoc
In its simplest usage, you can pass one or more files or folders to the
doctoc
command. This will update the TOCs of each file specified as well as of
each markdown file found by recursively searching each folder. Below are some
examples.
Go into the directory that contains you local git project and type:
doctoc .
This will update all markdown files in the current directory and all its subdirectories with a table of content that will point at the anchors generated by the markdown parser. Doctoc defaults to using the GitHub parser, but other modes can be specified.
In order to ignore a specific file when running doctoc
on an entire directory, just add <!-- DOCTOC SKIP -->
to the top of the file you wish to ignore.
If you already have a TOC inserted by doctoc, it will automatically be updated by running the command (rather than inserting a duplicate toc). Doctoc locates the TOC by the <!-- START doctoc -->
and <!-- END doctoc -->
comments, so you can also move a generated TOC to any other portion of your document and it will be updated there.
If you want to convert only specific files, do:
doctoc /path/to/file [...]
doctoc README.md
doctoc CONTRIBUTING.md LICENSE.md
In order to add a table of contents whose links are compatible other sites add the appropriate mode flag:
Available modes are:
--bitbucket bitbucket.org
--nodejs nodejs.org
--github github.com
--gitlab gitlab.com
--ghost ghost.org
doctoc README.md --bitbucket
By default, doctoc places the toc at the top of the file. You can indicate to have it placed elsewhere with the following format:
<!-- START doctoc -->
<!-- END doctoc -->
You place this code directly in your .md file. For example:
// my_new_post.md
Here we are, introducing the post. It's going to be great!
But first: a TOC for easy reference.
<!-- START doctoc -->
<!-- END doctoc -->
# Section One
Here we'll discuss...
Running doctoc will insert the toc at that location.
Use the --title
option to specify a (Markdown-formatted) custom TOC title; e.g., doctoc --title '**Contents**' .
From then on, you can simply run doctoc <file>
and doctoc will will keep the title you specified.
Alternatively, to blank out the title, use the --notitle
option. This will simply remove the title from the TOC.
Use the --maxlevel
option to limit TOC entries to headings only up to the specified level; e.g., doctoc --maxlevel 3 .
By default,
You can print to stdout by using the -s
or --stdout
option.
Use --update-only
or -u
to only update the existing ToC. That is, the Markdown files without ToC will be left untouched. It is good if you want to use doctoc
with lint-staged
.
git
hookdoctoc can be used as a pre-commit hook by using the following configuration:
repos:
- repo: https://github.com/thlorenz/doctoc
rev: ... # substitute a tagged version
hooks:
- id: doctoc
This will run doctoc
against markdown files when committing to ensure the
TOC stays up-to-date.
There's an unofficial Docker image project for doctoc, if you'd like to use doctoc via Docker or other container based CI/CD pipeline, you can take a look at PeterDaveHello/docker-doctoc
FAQs
Generates TOC for markdown files of local git repo.
We found that doctoc demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers 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
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.