
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
remark-gfm-configurable
Advanced tools
remark plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists) with configurable plugin options
A fork of remark-gfm with configurable plugin options to enable or disable specific GitHub Flavored Markdown (GFM) features.
By default, remark-gfm enables all underlying features: autolink literals, footnotes, strikethrough, tables, and task list items.
This fork lets you configure which features are enabled by specifying them through a unified options object, offering more granular control over GitHub Flavored Markdown (GFM) features and their behavior.
remark-gfm-configurable is a remark plugin that adds support for GitHub Flavored Markdown (GFM) with the ability to configure which features are enabled. The options are unified into a single object, making it easy to swap this module with the original remark-gfm without changing your code structure.
remark-gfm.Install via npm:
npm install remark-gfm-configurable
Or with Yarn:
yarn add remark-gfm-configurable
import { remark } from 'remark';
import remarkGfm from 'remark-gfm-configurable';
const markdown = `
This is a ~~strikethrough~~ text with a task list:
- [x] Task 1
- [ ] Task 2
`;
remark()
.use(remarkGfm)
.process(markdown)
.then((file) => {
console.log(String(file));
});
You can customize both plugin features and extension options by passing an options object to remarkGfm. The options object can include plugin enable/disable settings under the plugins property and extension-specific options at the top level.
import { remark } from 'remark';
import remarkGfm from 'remark-gfm-configurable';
const options = {
plugins: {
table: false, // Disable tables
footnote: false, // Disable footnotes
},
singleTilde: true, // Extension option for strikethrough
tableCellPadding: false, // Extension option for tables (ignored since tables are disabled)
};
remark()
.use(remarkGfm, options)
.process(markdown)
.then((file) => {
console.log(String(file));
});
In this example:
table and footnote features by setting them to false under the plugins property.singleTilde: true to allow single tilde strikethrough.The options object passed to remarkGfm can contain both plugin options (to enable or disable specific GFM features) and extension options (for fine-grained control over individual extensions).
interface Options extends MicromarkStrikethroughOptions, MdastTableOptions {
plugins?: PluginOptions;
}
Plugin options are provided under the plugins property within the options object. All features are enabled by default.
interface PluginOptions {
autolinkLiteral?: boolean; // Default: true
footnote?: boolean; // Default: true
strikethrough?: boolean; // Default: true
table?: boolean; // Default: true
tasklist?: boolean; // Default: true
}
autolinkLiteral: Enable or disable autolink literals.footnote: Enable or disable footnotes.strikethrough: Enable or disable strikethrough.table: Enable or disable tables.tasklist: Enable or disable task list items.Extension options are provided at the top level of the options object. These options are directly passed to the corresponding GFM extensions.
interface MicromarkStrikethroughOptions {
singleTilde?: boolean; // Default: false
}
singleTilde: When set to true, allows single tilde (~like this~) to be used for strikethrough, in addition to double tildes (~~like this~~).interface MdastTableOptions {
tableCellPadding?: boolean; // Default: true
tablePipeAlign?: boolean; // Default: false
}
tableCellPadding: When set to false, disables padding in table cells when generating Markdown.tablePipeAlign: When set to true, alignment markers (:) are placed next to the pipes in tables.Note: Even if you provide extension options for a feature, they will be ignored if the corresponding plugin is disabled.
const options = {
plugins: {
autolinkLiteral: true,
footnote: false, // Disable footnotes
strikethrough: true,
table: true,
tasklist: true,
},
// Extension options
singleTilde: true, // Strikethrough option
tableCellPadding: false, // Table option
tablePipeAlign: true, // Table option
};
remark-gfm, this package uses a unified options object that includes both plugin and extension options, simplifying configuration.plugins property.options object.remark-gfm without significant code changes.Contributions are welcome! If you have suggestions or find a bug, please open an issue or submit a pull request on GitHub.
To set up the development environment:
Clone the repository:
git clone https://github.com/escherlies/remark-gfm-configurable.git
Install dependencies:
cd remark-gfm-configurable
npm install
Run tests:
npm test
remark-gfm package.FAQs
remark plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists) with configurable plugin options
The npm package remark-gfm-configurable receives a total of 844 weekly downloads. As such, remark-gfm-configurable popularity was classified as not popular.
We found that remark-gfm-configurable demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.