import { render } from "@comark/ansi"; import highlight from "@comark/ansi/plugins/highlight"; import bash from "@shikijs/langs/bash"; import c from "@shikijs/langs/c"; import cpp from "@shikijs/langs/cpp"; import csharp from "@shikijs/langs/csharp"; import css from "@shikijs/langs/css"; import docker from "@shikijs/langs/docker"; import elixir from "@shikijs/langs/elixir"; import fish from "@shikijs/langs/fish"; import golang from "@shikijs/langs/go"; import groovy from "@shikijs/langs/groovy"; import hcl from "@shikijs/langs/hcl"; import html from "@shikijs/langs/html"; import java from "@shikijs/langs/java"; import javascript from "@shikijs/langs/javascript"; import json from "@shikijs/langs/json"; import jsx from "@shikijs/langs/jsx"; import kotlin from "@shikijs/langs/kotlin"; import lua from "@shikijs/langs/lua"; import markdown from "@shikijs/langs/markdown"; import mdc from "@shikijs/langs/mdc"; import objc from "@shikijs/langs/objc"; import ocaml from "@shikijs/langs/ocaml"; import perl from "@shikijs/langs/perl"; import php from "@shikijs/langs/php"; import powershell from "@shikijs/langs/powershell"; import proto from "@shikijs/langs/proto"; import python from "@shikijs/langs/python"; import r from "@shikijs/langs/r"; import ruby from "@shikijs/langs/ruby"; import rust from "@shikijs/langs/rust"; import sql from "@shikijs/langs/sql"; import svelte from "@shikijs/langs/svelte"; import swift from "@shikijs/langs/swift"; import terraform from "@shikijs/langs/terraform"; import toml from "@shikijs/langs/toml"; import tsx from "@shikijs/langs/tsx"; import typescript from "@shikijs/langs/typescript"; import vim from "@shikijs/langs/vim"; import vue from "@shikijs/langs/vue"; import xml from "@shikijs/langs/xml"; import yaml from "@shikijs/langs/yaml"; import zig from "@shikijs/langs/zig"; import zsh from "@shikijs/langs/zsh"; import kanagawaLotus from "@shikijs/themes/kanagawa-lotus"; import kanagawaWave from "@shikijs/themes/kanagawa-wave"; export async function renderMarkdown( text: PromiseLike | string, columns: number, ) { return render(await text, { width: columns, plugins: [ highlight({ themes: { dark: kanagawaWave, light: kanagawaLotus }, registerDefaultThemes: false, registerDefaultLanguages: false, languages: [ bash, c, cpp, csharp, css, docker, elixir, fish, golang, groovy, hcl, html, java, javascript, json, jsx, kotlin, lua, markdown, mdc, objc, ocaml, perl, php, powershell, proto, python, r, ruby, rust, sql, svelte, swift, terraform, toml, tsx, typescript, vim, vue, xml, yaml, zig, zsh, ], }), ], }); }