3.0.0-alpha.13 • Published 4 months ago

@yozora/react-code-highlighter v3.0.0-alpha.13

Weekly downloads
42
License
MIT
Repository
github
Last release
4 months ago

This package is designed to highlight mdast code type data

Install

  • npm

    npm install --save @yozora/react-code-highlighter
  • yarn

    yarn add @yozora/react-code-highlighter

Usage

  • Basic:

    import React from 'react'
    import CodeHighlighter from '@yozora/react-code-highlighter'
    
    function Wrapper() {
      const [code, setCode] = React.useState<string>('let a: number = 1 + 2;')
      const [lineCount, setLineCount] = React.useState<number>(0)
      const lineNoWidth = `${ Math.max(2, ('' + lineCount).length) + 0.5 }em`
    
      React.useEffect(() => {
        const nextCode = (
          'let a = 1, b = 2\n' +
          Array.from(new Array(100)).map((x, i) => '// ' + i).join('\n') +
          '\nlet c = 3\nconsole.log(\'c:\', c)'
        )
        setCode(nextCode)
      }, [])
    
      return (
        <pre data-line-count={ lineCount }>
          <CodeHighlighter
            lang="typescript"
            value={ code }
            linenoWidth={ lineNoWidth }
            onLineCountChange={ setLineCount }
          />
        </pre>
      )
    }
    
    const wrapper = (<Wrapper />)
  • Props

    NameTypeRequiredDefaultDescription
    valuestringtrue-Code content
    langstringfalse-Code language
    darkenbooleanfalse-Specify the default theme (vcsDarkTheme / vscLightTheme)
    themeIPrismThemefalseDepends on darkenCode highlight theme
    linenoWidthReact.CSSProperties['width']false0Code line number width
    linenoColorReact.CSSProperties['color']false#858585Code line number color
    onLineCountChange(lineCount: number) => voidfalse-Callback of Code line count changing

CSS variables

NameDefault value
--yozora-colors-background-codeHighlighthsla(30deg, 90%, 50%, 0.3)
--yozora-colors-border-codeLinenohsla(0deg, 0%, 80%, 0.8)

FAQ

  • How do I add more language highlighting support?

    See https://github.com/FormidableLabs/prism-react-renderer#faq:

    import Prism from "prismjs";
    
    (typeof global !== "undefined" ? global : window).Prism = Prism;
    
    require("prismjs/components/prism-kotlin");
    require("prismjs/components/prism-csharp");

    The above method will cause errors in vite + React project at this time (2021-07-27). The reason is that the import statement will be lifted to the top when using vite to bundling, resulting in that the assignment statement of window.Prism=Prism has not been executed before loading additional prismjs language components.

Related

3.0.0-alpha.13

4 months ago

3.0.0-alpha.12

4 months ago

3.0.0-alpha.10

9 months ago

3.0.0-alpha.11

8 months ago

3.0.0-alpha.9

1 year ago

3.0.0-alpha.7

2 years ago

3.0.0-alpha.6

2 years ago

3.0.0-alpha.8

2 years ago

3.0.0-alpha.1

2 years ago

3.0.0-alpha.0

2 years ago

3.0.0-alpha.3

2 years ago

3.0.0-alpha.2

2 years ago

3.0.0-alpha.5

2 years ago

3.0.0-alpha.4

2 years ago

2.3.3

2 years ago

2.3.0

2 years ago

2.3.2

2 years ago

2.3.1

2 years ago

2.0.0-alpha.7

3 years ago

2.2.1

2 years ago

2.2.0

2 years ago

2.0.2

3 years ago

2.0.0-alpha.5

3 years ago

2.2.2

2 years ago

2.0.0-alpha.6

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

2.1.0

3 years ago

2.1.0-alpha.4

3 years ago

2.1.0-alpha.3

3 years ago

2.1.0-alpha.2

3 years ago

2.1.0-alpha.1

3 years ago

2.1.0-alpha.0

3 years ago

2.0.0-alpha.3

3 years ago

2.0.0-alpha.4

3 years ago

2.0.0-alpha.0

3 years ago

2.0.0-alpha.1

3 years ago

2.0.0-alpha.2

3 years ago

1.0.0-alpha.38

4 years ago

1.0.0-alpha.39

4 years ago

1.0.0-alpha.40

4 years ago

1.0.0-alpha.37

4 years ago

1.0.0-alpha.34

4 years ago

1.0.0-alpha.36

4 years ago

1.0.0-alpha.35

4 years ago

1.0.0-alpha.33

4 years ago

1.0.0-alpha.32

4 years ago

1.0.0-alpha.31

4 years ago

1.0.0-alpha.30

4 years ago

1.0.0-alpha.29

4 years ago

1.0.0-alpha.28

4 years ago

1.0.0-alpha.27

4 years ago

1.0.0-alpha.26

4 years ago

1.0.0-alpha.25

4 years ago

1.0.0-alpha.24

4 years ago

1.0.0-alpha.23

4 years ago

1.0.0-alpha.21

4 years ago

1.0.0-alpha.22

4 years ago

1.0.0-alpha.20

4 years ago

1.0.0-alpha.19

4 years ago

1.0.0-alpha.18

4 years ago

1.0.0-alpha.17

4 years ago

1.0.0-alpha.16

4 years ago

1.0.0-alpha.15

4 years ago

1.0.0-alpha.14

4 years ago

1.0.0-alpha.13

4 years ago

1.0.0-alpha.9

4 years ago

1.0.0-alpha.8

4 years ago

1.0.0-alpha.7

4 years ago

1.0.0-alpha.6

4 years ago

1.0.0-alpha.10

4 years ago

1.0.0-alpha.5

4 years ago

1.0.0-alpha.4

4 years ago

1.0.0-alpha.3

4 years ago

1.0.0-alpha.12

4 years ago

1.0.0-alpha.11

4 years ago

1.0.0-alpha.2

4 years ago

1.0.0-alpha.1

4 years ago

1.0.0-alpha.0

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago