Nitro API

Nitro Hooks

Last updated by Harlan Wilton in fix!: rework module.

'ai-ready:markdown'

Type: (ctx: MarkdownContext) => void | Promise<void>

Called during runtime HTML→markdown conversion. Modify markdown before response.

server/plugins/markdown-footer.ts
export default defineNitroPlugin((nitroApp) => {
  nitroApp.hooks.hook('ai-ready:markdown', (ctx) => {
    ctx.markdown += '\n\n---\n*Generated with mdream*'
  })
})

MarkdownContext:

PropertyTypeDescription
htmlstringOriginal HTML
markdownstringGenerated markdown (modify this)
routestringRoute being processed
titlestringPage title
descriptionstringPage description
isPrerenderbooleanWhether during prerendering
eventH3EventH3 event object

'ai-ready:mdreamConfig'

Type: (config: HTMLToMarkdownOptions) => void | Promise<void>

Called before HTML→markdown conversion. Modify mdream options per-request.

server/plugins/mdream-config.ts
export default defineNitroPlugin((nitroApp) => {
  nitroApp.hooks.hook('ai-ready:mdreamConfig', (config) => {
    // Check origin from config.origin if available
    if (config.origin?.includes('/blog/'))
      config.ignoreElements = [...(config.ignoreElements || []), '.author-bio']
  })
})

Add custom plugins:

server/plugins/custom-mdream.ts
export default defineNitroPlugin((nitroApp) => {
  nitroApp.hooks.hook('ai-ready:mdreamConfig', (config) => {
    config.plugins = config.plugins || []
    config.plugins.push(myCustomPlugin())
  })
})
Did this page help you?