[go: up one dir, main page]

Skip to content

🧩 Set of unstyled UI components to build powerful code blocks in React.

License

Notifications You must be signed in to change notification settings

blenderskool/react-code-block

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



React Code Block 🧩

Set of unstyled UI components to build powerful code blocks in React.





React Code Block banner

Features

  • ✅ Unstyled
  • ✅ Syntax highlighting
  • ✅ Line numbers
  • ✅ Line highlighting
  • ✅ Word highlighting
  • ✅ Theming
  • ✅ Shiki support

Getting started

npm i react-code-block prism-react-renderer

Continue with basic example here →

Documentation

You can find the complete documentation at react-code-block.netlify.app

Why?

Let's face it, building code blocks is hard! There are various libraries out there that handle syntax highlighting, but then you realize that you need more than just syntax highlighting. If you are writing a technical blog or documentation, chances are you need features like line numbers, line highlighting, word highlighting and so on. Most of the syntax highlighting libraries don't come with this out-of-the-box, so you have to spend time implementing all this by yourself. Or if they do come with these features, it's incredibly hard to extend and style them according to the way you want it to be.

React Code Block solves all these problems by only providing you with the core functionality without any of the styling. You can compose the primitive components from this library to build any kind of code block you need.

How does it work?

React Code Block uses an existing syntax highlighting library under the hood for syntax highlighting. On top of this, it adds additional features like line numbers, line highlighting, etc. which can be styled through the primitive components this package exposes. Currently supported syntax highlighted libraries:

License

React Code Block is MIT Licensed.