Code Viewer
This is a library that utilizes Canvas to showcase code snippets, allowing you to visually display your code on web pages in an engaging way.
English | 简体中文
Features
-
Utilizes Canvas technology to draw code snippets, supporting custom styles and colors.
-
Supports syntax highlighting for improved code readability.
-
Can be embedded into your web page using a simple API.
Playground
Here's a playground.
Installation
# add code-viewer
npm i @humandetail/code-viewer
# add highlight.js
npm i highlight.js
Usage
import { CodeViewer } from '@humandetail/code-viewer'
const cv = new CodeViewer({
content: 'Your code string.',
language: 'language'
})
cv.mount(document.querySelector('#container'))
.render()
Options
new CodeViewer(options?: ViewerOptions, theme?: CodeViewerTheme)
ViewerOptions
Property | Description | Type | Default |
---|---|---|---|
content | The code string | string | '' |
language | Language of the code | string | 'PlainText' |
width | - | number | 0 |
height | - | number | 0 |
themeMode | Theme of the code viewer | 'light' | 'dark' | 'light' |
displayLineNumber | Whether the line number is display | boolean | false |
breakRow | Whether break the row if overflow | boolean | false |
overflowX | If overflowX is auto and breakRow is false. The canvas width will follow the maximum width of the row. If overflowX is scroll and breakRow is false. A horizontal scroll bar will be displayed. |
'auto' | 'scroll' | 'hidden' | 'auto' |
overflowY | - | 'auto' | 'scroll' | 'hidden' | 'auto' |
headerBarSetting | - | { visible?: boolean, displayLanguage?: boolean, collapsible?: boolean, copyable?: boolean } | visible: false, displayLanguage: false, collapsible: false, copyable: false |
isCollapsed | - | boolean | false |
CodeViewerTheme
If you want to customize the theme, check out the type declaration file.
API
-
setTheme(theme: CodeViewerTheme, themeMode?: 'light' | 'dark'): CodeViewer
-
reset(options?: ViewerOptions, them?: CodeViewerTheme): void
-
update(content?: string, language?: string, resetScroll?: boolean): void
-
render(): CodeViewer
-
resize(width: number, height: number): void
-
mount(el: string | Element): CodeViewer
-
unmount(): void
Contributing
If you encounter any issues or wish to improve this library, feel free to submit issues and pull requests. Your contributions will be greatly appreciated!
LICENSE
This project is licensed under the MIT License.