0.2.0 • Published 9 months ago

@humandetail/code-viewer v0.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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

PropertyDescriptionTypeDefault
contentThe code stringstring''
languageLanguage of the codestring'PlainText'
width-number0
height-number0
themeModeTheme of the code viewer'light' | 'dark''light'
displayLineNumberWhether the line number is displaybooleanfalse
breakRowWhether break the row if overflowbooleanfalse
overflowXIf 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-booleanfalse

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.

0.2.0

9 months ago

0.1.3

9 months ago

0.1.2

9 months ago

0.1.1

9 months ago

0.1.0

9 months ago

0.0.1

9 months ago