
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
@nuxt/markdown
Advanced tools
A Nuxt-flavoured fork of @dimerapp/markdown that features granular control unified stream.
npm i @nuxt/markdown --save
import Markdown from '@nuxt/markdown'
const md = new Markdown({ toc: false, sanitize: false })
const contents = await md.toHTML(markdownSourceString)
import Markdown from '@nuxt/markdown'
import remarkContainer from 'remark-container'
const md = new Markdown({
extend({ layers }) {
layers['remark-container'] = remarkContainer
}
})
const rendered = await md.toMarkup(markdownSourceString)
Assigning is equivalent to pushing to the last second position of the internal layers Array.
This is because the last step is rehype-stringify, responsible for the final HTML output, but we still want to be able to customize/remove that if needed.
You can also use Array methods directly:
const md = new Markdown({
extend({ layers }) {
layers.splice(pos, 0, ['remark-container', remarkContainer])
}
})
This is the default layers Array provided to a @nuxt/markdown instance:
const layers = [
['remark-parse', remarkParse],
['remark-slug', remarkSlug],
['remark-autolink-headings', autolinkHeadings],
['remark-macro', macroEngine.transformer],
['remark-squeeze-paragraphs', squeezeParagraphs],
['remark-rehype', remarkRehype, { allowDangerousHTML: true }],
['rehype-raw', rehypeRaw],
['rehype-prism', rehypePrism, { ignoreMissing: true }],
['rehype-stringify', rehypeStringify]
]
Each layer begins with an arbitrary id, to make addressing specific layers easier.
You can also pass in a handlers object to the Markdown constructor to define custom remark-rehype handlers.
See a list of available overridable handlers here.
@nuxt/markdown includes remark-macro, a nifty library that adds macro support to Markdown files. To add macros, use the extend() function like in the previous examples:
import Markdown from '@nuxt/markdown'
const md = new Markdown({
extend({ macros }) {
macros.alert = (content, props, { transformer, eat }) => {
return {
type: 'AlertNode',
data: {
hName: 'div',
hClassNames: ['alert alert-note'],
hChildren: transformer.tokenizeBlock(content, eat.now())
}
}
}
}
})
const markdown = `
# Hello world
[alert]
This is an alert
[/alert]
`
const rendered = await md.toMarkup(markdown)
Example taken from dimerapp/remark-macro.
@nuxt/markdown was created mainly for NuxtPress and is part of its roadmap.
FAQs
Nuxt-flavoured fork of @dimerapp/markdown
The npm package @nuxt/markdown receives a total of 20 weekly downloads. As such, @nuxt/markdown popularity was classified as not popular.
We found that @nuxt/markdown demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 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
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.