Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@react-email/code-block

Package Overview
Dependencies
Maintainers
3
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-email/code-block - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

2

package.json
{
"name": "@react-email/code-block",
"version": "0.0.1",
"version": "0.0.2",
"description": "A code block component that will render code using HTML",

@@ -5,0 +5,0 @@ "sideEffects": false,

@@ -1,5 +0,3 @@

![React Email Hr cover](https://react.email/static/covers/hr.png)
<div align="center"><strong>@react-email/hr</strong></div>
<div align="center">Display a divider that separates content areas in your email.</div>
<div align="center"><strong>@react-email/code-block</strong></div>
<div align="center">Displays code with a selected theme and regex highlighting using prismjs.</div>
<br />

@@ -21,3 +19,3 @@ <div align="center">

```sh
yarn add @react-email/hr -E
yarn add @react-email/code-block -E
```

@@ -28,17 +26,97 @@

```sh
npm install @react-email/hr -E
npm install @react-email/code-block -E
```
## Getting started
## Getting Started
Add the component to your email template. Include styles where needed.
Add the component into your email component as follows.
```jsx
import { Hr } from "@react-email/hr";
import { CodeBlock, dracula } from "@react-email/code-block";
const Email = () => {
return <Hr />;
const code = `export default async (req, res) => {
try {
const html = await renderAsync(
EmailTemplate({ firstName: 'John' })
);
return NextResponse.json({ html });
} catch (error) {
return NextResponse.json({ error });
}
}`;
return (
<CodeBlock
code={code}
lineNumbers // add this so that there are line numbers beside each code line
theme={dracula}
language="javascript"
/>
);
};
```
This should render a code-block with the desired theme.
## Theming
Themes for this component are basically a set of styles for each kind of token that can result from prismjs's tokenization. See [here](https://prismjs.com/tokens.html) for more information on the tokens available.
An example of a theme would be this:
```json
{
"base": {
"color": "#f8f8f2",
"background": "#282a36",
"textShadow": "0 1px rgba(0, 0, 0, 0.3)",
"fontFamily": "Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace",
"textAlign": "left",
"whiteSpace": "pre",
"wordSpacing": "normal",
"wordBreak": "normal",
"wordWrap": "normal",
"lineHeight": "1.5",
"MozTabSize": "4",
"OTabSize": "4",
"tabSize": "4",
"WebkitHyphens": "none",
"MozHyphens": "none",
"MsHyphens": "none",
"hyphens": "none",
"padding": "1em",
"margin": ".5em 0",
"overflow": "auto",
"borderRadius": "0.3em"
},
"comment": {
"color": "#6272a4"
},
"prolog": {
"color": "#6272a4"
},
"doctype": {
"color": "#6272a4"
},
"cdata": {
"color": "#6272a4"
},
"punctuation": {
"color": "#f8f8f2"
},
"property": {
"color": "#ff79c6"
}
// ...
}
```
Each token type can have their own defined styles and for each one of there can be any styles that can be applied directly to `React` elements.
As you can see from the example `dracula` theme though, there is a defined property called `base` which is the styling for the `pre` element that wraps the HTML being rendered.
For you to not need to defined a theme without any basis, or to not define one that already has been defined, we have many default themes exported from `@react-email/code-block`.
These themes were generated by a bit of code that converts a CSS file for a prismjs theme into a object theme of these.
If you want to generate a theme from another existing prismjs theme you can do so by looking into [this](https://github.com/gabrielmfern/from-prismjs-to-react-email-code-block-theme).
## Support

@@ -45,0 +123,0 @@

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc