DocumentaçãoComeçandoMDXCódigo

Código

Masterizando códigos em seus arquivos MDX

O opendocs utiliza a biblioteca rehype-pretty-code para lidar com os códigos em arquivos MDX. Isso permite que você customize bastante a forma como os códigos são exibidos!

Para mais informações, consulte a documentação e exemplos oficiais!

Títulos

Exemplo:

apps/web/src/index.tsx
import { App } from './App';

Código:

```js title="apps/web/src/index.tsx"
import { App } from './App';
```

Destaque de código

Exemplo:

module.exports = {
  theme: {
    extend: {
      colors: {
        warning: "hsl(var(--warning))",
        "warning-foreground": "hsl(var(--warning-foreground))",
      },
    },
  },
}

Código:

```js
module.exports = {
  theme: {
    extend: {
      colors: {
        warning: "hsl(var(--warning))",
        "warning-foreground": "hsl(var(--warning-foreground))",
      },
    },
  },
}
```

Destaque de código inline

Exemplo:

The result of [1, 2, 3].join('-') is '1-2-3'.

Código:

The result of `[1, 2, 3].join('-'){:js}` is `'1-2-3'{:js}`.

Destaque de código inline com reconhecimento de contexto

Por exemplo, se você tivesse o seguinte bloco de código:

function getStringLength(str) {
  return str.length;
}

Quando referirmos getStringLength como uma função, nós podemos colorir ela como tal. O mesmo com function, ou str vs. str, etc. Isso permite vincular semanticamente o código inline ao bloco de código mais próximo ao qual ele se refere.

Código:

Quando referirmos `getStringLength{:.entity.name.function}` como uma função,
nós podemos colorir ela como tal. O mesmo com `function{:.keyword}`, ou
`str{:.variable.parameter}` vs. `str{:.variable.other.object}`, etc. Isso permite
vincular semanticamente o código inline ao bloco de código mais próximo ao qual ele se refere.

Destaque de palavras

Exemplo:

relative w-full pl-12 rounded-lg border

Código:

```css /pl-12/ /border/
relative w-full pl-12 rounded-lg border
```

Destaque de linhas

Exemplo:

module.exports = {
  theme: {
    extend: {
      colors: {
        warning: "hsl(var(--warning))",
        "warning-foreground": "hsl(var(--warning-foreground))",
      },
    },
  },
}

Código:

```js {2-4,6}
module.exports = {
  theme: {
    extend: {
      colors: {
        warning: "hsl(var(--warning))",
        "warning-foreground": "hsl(var(--warning-foreground))",
      },
    },
  },
}
```

Numeração de linhas

Exemplo:

module.exports = {
  theme: {
    extend: {
      colors: {
        warning: "hsl(var(--warning))",
        "warning-foreground": "hsl(var(--warning-foreground))",
      },
    },
  },
}

Código:

```js showLineNumbers
module.exports = {
  theme: {
    extend: {
      colors: {
        warning: "hsl(var(--warning))",
        "warning-foreground": "hsl(var(--warning-foreground))",
      },
    },
  },
}
```

Diff

Exemplo:

const alertVariants = cva(
- "relative w-full rounded-lg border",
+ "relative w-full pl-12 rounded-lg border"
)

Código:

```diff
const alertVariants = cva(
- "relative w-full rounded-lg border",
+ "relative w-full pl-12 rounded-lg border"
)
```

Destaque em ANSI

Exemplo:

  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.jsx

Inline ANSI: > Local: http://localhost:3000/

Código:

```ansi
  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.jsx
```
 
Inline ANSI: `> Local: http://localhost:3000/{:ansi}`

Destaque de grupo de palavras por id

Coloque um id após # depois das palavras. Isso permite colorir caracteres de formas diferentes com base no id fornecido.

Exemplo:

const [age, setAge] = useState(50);
const [name, setName] = useState("Taylor");

Código:

```js /age/#v /name/#v /setAge/#s /setName/#s /50/#i /"Taylor"/#i
const [age, setAge] = useState(50);
const [name, setName] = useState("Taylor");
```

Para alterar ou adicionar novos estilos:

apps/web/src/styles/mdx.css
[data-chars-id='v'] {
  @apply !text-pink-300 bg-rose-800/50 font-bold;
}

Quran Alone Institute

Quran Alone Islamic Studies

Stay Connected

contact@quranalone.institute

© 2025 Quran Alone. All rights reserved.