md-html
md-html
is a tool for rendering Markdown files to HTML, using GitHub-style Markdown and syntax highlighting. It also integrates marked-alert
and marked-katex-extension
plugins for handling alerts and mathematical formulas.
- Custom Templates: Supports custom HTML templates.
- Syntax Highlighting: Uses
highlight.js
for syntax highlighting. - GitHub-style Markdown: Supports GitHub-style Markdown.
- Alerts: Integrates
marked-alert
plugin for Markdown alerts. - Mathematical Formulas: Integrates
marked-katex-extension
plugin for KaTeX mathematical formula rendering.
Install using npm:
npm install @karinjs/md-html
Here is a basic usage example:
import { markdown } from '@karinjs/md-html'
const markdownText = '# Hello, Markdown!'
const html = markdown(markdownText, {})
console.log(html)
You can pass a configuration object to customize the rendering behavior:
import { markdown } from '@karinjs/md-html'
const options = {
template: 'path/to/custom/template.html',
katex: { throwOnError: false },
gitcss: 'github-markdown-dark.css', // Use GitHub-style dark theme
highlight: 'atom-one-dark', // Use Atom One Dark syntax highlighting theme
}
const markdownText = '# Hello, Markdown!'
const html = markdown(markdownText, options)
console.log(html)
import karin, { render, segment } from 'node-karin'
import { markdown } from '@karinjs/md-html'
import fs from 'node:fs'
export const hello = karin.command(/^#test$/, async (e) => {
// define plugin path
const pluginPath = process.cwd() + '/plugins/karin-plugin-basic'
// read the markdown file
const markdownText = fs.readFileSync(`${pluginPath}/README.md`, 'utf8')
// generate html text
const html = markdown(markdownText, {})
// write to html file
fs.writeFileSync(`${pluginPath}/README.html`, html, 'utf8')
// render picture
const image = await render.renderHtml(`${pluginPath}/README.html`)
// send pictures
e.reply(segment.image(image))
return true
})
The Options
interface defines configurable options:
template
(optional): Path to a custom HTML template file or template string.katex
(optional): KaTeX configuration options. Refer to the KaTeX documentation for details.gitcss
(optional): GitHub Markdown style theme. Possible values are in theGithubMarkdownThemes
enum.highlight
(optional): Syntax highlighting theme. Possible values are in theHighlightJsThemes
enum.
@karinjs/md-html/
├── src/
│ ├── index.ts
│ ├── styles.ts
├── package.json
├── README.md
└── ...
npm run build
: Build the project.
Feel free to submit issues and pull requests to contribute to the project.
This project is licensed under the MIT License. See the LICENSE file for details.