![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@md-plugins/md-plugin-containers
Advanced tools
A markdown-it plugin for handling custom containers.
A Markdown-It plugin that provides custom container support for enhanced Markdown rendering. Containers allow you to create stylized blocks with custom rendering logic, ideal for notes, warnings, callouts, and other visual elements.
Install the plugin via your preferred package manager:
# With npm:
npm install @md-plugins/md-plugin-containers
# Or with Yarn:
yarn add @md-plugins/md-plugin-containers
# Or with pnpm:
pnpm add @md-plugins/md-plugin-containers
import MarkdownIt from 'markdown-it'
import { containersPlugin } from '@md-plugins/md-plugin-containers'
import container from 'markdown-it-container'
const md = new MarkdownIt()
const containers = [
{ type: 'warning', defaultTitle: 'Warning' },
{ type: 'tip', defaultTitle: 'Tip' },
{ type: 'details', defaultTitle: 'Details' },
]
function createContainer(container, containerType, defaultTitle) {
const containerTypeLen = containerType.length
return [
container,
containerType,
{
render(tokens, idx) {
const token = tokens[idx]
const title = token.info.trim().slice(containerTypeLen).trim() || defaultTitle
if (containerType === 'details') {
return token.nesting === 1
? `<details class="markdown-note markdown-note--${containerType}"><summary class="markdown-note__title">${title}</summary>\n`
: '</details>\n'
}
return token.nesting === 1
? `<div class="markdown-note markdown-note--${containerType}"><p class="markdown-note__title">${title}</p>\n`
: '</div>\n'
},
},
]
}
md.use(containersPlugin, containers, createContainer)
const markdownContent = `
:::note
This is a note.
:::
:::warning
This is a warning!
:::
`
const renderedOutput = md.render(markdownContent)
console.log('Rendered Output:', renderedOutput)
The rendered output will look like this:
<div class="note">
<p>This is a note.</p>
</div>
<div class="warning">
<p>This is a warning!</p>
</div>
The md-plugin-containers
plugin supports the following options:
Option | Type | Default | Description |
---|---|---|---|
containers | Array<{ type: string; defaultTitle: string }> | [] | List of containers with their types and default titles. |
render | Function | null | Custom rendering function for containers. |
You can define custom containers with their own styles or components:
function createContainer(container, containerType, defaultTitle) {
const containerTypeLen = containerType.length
return [
container,
containerType,
{
render(tokens, idx) {
const token = tokens[idx]
const title = token.info.trim().slice(containerTypeLen).trim() || defaultTitle
if (containerType === 'details') {
return token.nesting === 1
? `<details class="markdown-note markdown-note--${containerType}"><summary class="markdown-note__title">${title}</summary>\n`
: '</details>\n'
}
return token.nesting === 1
? `<div class="markdown-note markdown-note--${containerType}"><p class="markdown-note__title">${title}</p>\n`
: '</div>\n'
},
},
]
}
Containers can include titles by default or allow custom titles to be specified:
:::note Custom Note Title
This is a custom note with a title.
:::
Rendered Output:
<div class="note">
<strong>Custom Note Title</strong>
<p>This is a custom note with a title.</p>
</div>
Containers can be nested if your rendering logic supports it:
:::note Outer Note
:::warning Inner Warning
Be cautious!
::::::
Rendered Output:
<div class="note">
<p>Outer Note</p>
<div class="warning">
<p>Be cautious!</p>
</div>
</div>
To run the tests for this plugin, use the following command:
pnpm test
In case this README falls out of date, please refer to the documentation for the latest information.
This plugin is licensed under the MIT License. See the LICENSE file for details.
FAQs
A markdown-it plugin for handling custom containers.
The npm package @md-plugins/md-plugin-containers receives a total of 120 weekly downloads. As such, @md-plugins/md-plugin-containers popularity was classified as not popular.
We found that @md-plugins/md-plugin-containers demonstrated a healthy version release cadence and project activity because the last version was released less than 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
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.