markdown.ts 444 B

12345678910111213141516
  1. import { marked, type Tokens } from "marked"
  2. const renderer = new marked.Renderer()
  3. renderer.link = ({ href, title, text }: Tokens.Link) => {
  4. const titleAttr = title ? ` title="${title}"` : ""
  5. return `<a href="${href}"${titleAttr} class="external-link" target="_blank" rel="noopener noreferrer">${text}</a>`
  6. }
  7. export function parseMarkdown(input: string) {
  8. return marked(input, {
  9. renderer,
  10. breaks: false,
  11. gfm: true,
  12. })
  13. }