Code
Code in je MDX-bestanden beheersen
opendocs gebruikt de library rehype-pretty-code
om code in MDX-bestanden te verwerken. Hierdoor kun je de manier waarop code wordt weergegeven uitgebreid aanpassen!
Zie de officiele documentatie en voorbeelden voor meer informatie!
Titels
Voorbeeld:
import { App } from './App';Code:
```js title="apps/web/src/index.tsx"
import { App } from './App';
```Code highlighting
Voorbeeld:
module.exports = {
theme: {
extend: {
colors: {
warning: "hsl(var(--warning))",
"warning-foreground": "hsl(var(--warning-foreground))",
},
},
},
}Code:
```js
module.exports = {
theme: {
extend: {
colors: {
warning: "hsl(var(--warning))",
"warning-foreground": "hsl(var(--warning-foreground))",
},
},
},
}
```Inline code highlighting
Voorbeeld:
Het resultaat van [1, 2, 3].join('-') is '1-2-3'.
Code:
The result of `[1, 2, 3].join('-'){:js}` is `'1-2-3'{:js}`.Contextbewuste inline code highlighting
Als je bijvoorbeeld het volgende codeblok had:
function getStringLength(str) {
return str.length;
}Wanneer we naar getStringLength verwijzen als functie,
kunnen we die ook zo kleuren. Hetzelfde geldt voor function, of
str versus str, enz. Hierdoor kan
inline code semantisch worden gekoppeld aan het dichtstbijzijnde codeblok waarnaar die verwijst.
Code:
When we refer to `getStringLength{:.entity.name.function}` as a function,
we can color it as such. Same with `function{:.keyword}`, or
`str{:.variable.parameter}` vs. `str{:.variable.other.object}`, etc. This allows
semantically link inline code to the nearest block of code it refers to.Woord-highlighting
Voorbeeld:
relative w-full pl-12 rounded-lg borderCode:
```css /pl-12/ /border/
relative w-full pl-12 rounded-lg border
```Regel-highlighting
Voorbeeld:
module.exports = {
theme: {
extend: {
colors: {
warning: "hsl(var(--warning))",
"warning-foreground": "hsl(var(--warning-foreground))",
},
},
},
}Code:
```js {2-4,6}
module.exports = {
theme: {
extend: {
colors: {
warning: "hsl(var(--warning))",
"warning-foreground": "hsl(var(--warning-foreground))",
},
},
},
}
```Regelnummers
Voorbeeld:
module.exports = {
theme: {
extend: {
colors: {
warning: "hsl(var(--warning))",
"warning-foreground": "hsl(var(--warning-foreground))",
},
},
},
}Code:
```js showLineNumbers
module.exports = {
theme: {
extend: {
colors: {
warning: "hsl(var(--warning))",
"warning-foreground": "hsl(var(--warning-foreground))",
},
},
},
}
```Diff
Voorbeeld:
const alertVariants = cva(
- "relative w-full rounded-lg border",
+ "relative w-full pl-12 rounded-lg border"
)Code:
```diff
const alertVariants = cva(
- "relative w-full rounded-lg border",
+ "relative w-full pl-12 rounded-lg border"
)
```ANSI Highlight
Voorbeeld:
vite v5.0.0 dev server running at:
> Local: http://localhost:3000/
> Network: use `--host` to expose
ready in 125ms.
8:38:02 PM [vite] hmr update /src/App.jsxInline ANSI: > Local: http://localhost:3000/
Code:
```ansi
[0;36m vite v5.0.0[0;32m dev server running at:[0m
> Local: [0;36mhttp://localhost:[0;36;1m3000[0;36m/[0m
> Network: [0;2muse `--host` to expose[0m
[0;36mready in 125ms.[0m
[0;2m8:38:02 PM[0m [0;36;1m[vite][0m [0;32mhmr update [0;2m/src/App.jsx
```
Inline ANSI: `> Local: [0;36mhttp://localhost:[0;36;1m3000[0;36m/[0m{:ansi}`Woordgroep-highlighting op id
Plaats na de woorden een id na #.
Hiermee kun je tekens anders kleuren op basis van de opgegeven id.
Voorbeeld:
const [age, setAge] = useState(50);
const [name, setName] = useState("Taylor");Code:
```js /age/#v /name/#v /setAge/#s /setName/#s /50/#i /"Taylor"/#i
const [age, setAge] = useState(50);
const [name, setName] = useState("Taylor");
```Om stijlen te wijzigen of nieuwe stijlen toe te voegen:
[data-chars-id='v'] {
@apply !text-pink-300 bg-rose-800/50 font-bold;
}