diff --git a/examples/swr-site/pages/docs/advanced/cache.ja.mdx b/examples/swr-site/pages/docs/advanced/cache.ja.mdx
index f2c96444ba..21e526ab75 100644
--- a/examples/swr-site/pages/docs/advanced/cache.ja.mdx
+++ b/examples/swr-site/pages/docs/advanced/cache.ja.mdx
@@ -51,7 +51,7 @@ function App() {
上記の例では、 `` コンポーネントが再マウントされると、プロバイダーも再生成します。キャッシュプロバイダーは、コンポーネントツリーの上位、またはレンダリングの外部に配置する必要があります。
-import { Cache } from 'components/diagrams/cache'
+import { Cache } from '@components/diagrams/cache'
diff --git a/examples/swr-site/pages/docs/advanced/cache.ko.mdx b/examples/swr-site/pages/docs/advanced/cache.ko.mdx
index b5fc262f8c..fbd8f53ad5 100644
--- a/examples/swr-site/pages/docs/advanced/cache.ko.mdx
+++ b/examples/swr-site/pages/docs/advanced/cache.ko.mdx
@@ -51,7 +51,7 @@ function App() {
위 예시에서는 `` 컴포넌트가 다시 마운트될 때, 공급자 또한 다시 생성됩니다. 캐시 공급자는 컴포넌트 트리의 상위 또는 렌더링의 외부에 배치해야 합니다.
-import { Cache } from 'components/diagrams/cache'
+import { Cache } from '@components/diagrams/cache'
diff --git a/examples/swr-site/pages/docs/advanced/cache.ru.mdx b/examples/swr-site/pages/docs/advanced/cache.ru.mdx
index de64056657..88da4d5b5e 100644
--- a/examples/swr-site/pages/docs/advanced/cache.ru.mdx
+++ b/examples/swr-site/pages/docs/advanced/cache.ru.mdx
@@ -60,7 +60,7 @@ function App() {
повторно создан. Провайдеры кеша должны быть размещены выше в дереве компонентов или вне рендеринга.
-import { Cache } from 'components/diagrams/cache'
+import { Cache } from '@components/diagrams/cache'
diff --git a/examples/swr-site/pages/docs/advanced/cache.zh-CN.mdx b/examples/swr-site/pages/docs/advanced/cache.zh-CN.mdx
index 62092714d0..7214bcafcd 100644
--- a/examples/swr-site/pages/docs/advanced/cache.zh-CN.mdx
+++ b/examples/swr-site/pages/docs/advanced/cache.zh-CN.mdx
@@ -51,7 +51,7 @@ function App() {
在上面的例子中,当 `` 组件重新挂载时,provider 也会被重新创建。缓存 provider 应该放在组件树的更高位置,或者放在渲染之外。
-import { Cache } from 'components/diagrams/cache'
+import { Cache } from '@components/diagrams/cache'
diff --git a/examples/swr-site/pages/docs/advanced/markdown-import.en-US.mdx b/examples/swr-site/pages/docs/advanced/markdown-import.en-US.mdx
index 13cc753cd2..de06d02453 100644
--- a/examples/swr-site/pages/docs/advanced/markdown-import.en-US.mdx
+++ b/examples/swr-site/pages/docs/advanced/markdown-import.en-US.mdx
@@ -1,4 +1,4 @@
-import External from '../../../components/external.mdx'
+import External from '@components/external.mdx'
import IndexPage from '../../index.en-US.mdx'
# Markdown import
@@ -6,7 +6,7 @@ import IndexPage from '../../index.en-US.mdx'
## Import of markdown file
```mdx
-import External from '../../../components/external.mdx'
+import External from '@components/external.mdx'
```
diff --git a/examples/swr-site/pages/docs/getting-started.en-US.mdx b/examples/swr-site/pages/docs/getting-started.en-US.mdx
index 45467bf53e..ea210b1678 100644
--- a/examples/swr-site/pages/docs/getting-started.en-US.mdx
+++ b/examples/swr-site/pages/docs/getting-started.en-US.mdx
@@ -86,7 +86,7 @@ Instead, your code is more declarative: you just need to specify what data is us
In a real-world example, our website shows a navbar and the content, both depend on `user`:
-import { Welcome } from 'components/diagrams/welcome'
+import { Welcome } from '@components/diagrams/welcome'
diff --git a/examples/swr-site/pages/docs/getting-started.es-ES.mdx b/examples/swr-site/pages/docs/getting-started.es-ES.mdx
index 1299be631b..3083624e3a 100644
--- a/examples/swr-site/pages/docs/getting-started.es-ES.mdx
+++ b/examples/swr-site/pages/docs/getting-started.es-ES.mdx
@@ -87,7 +87,7 @@ que especificar qué datos utiliza el componente.
En un ejemplo del mundo real, nuestro sitio web muestra una barra de navegación y el contenido,
ambos dependen del `user`:
-import { Welcome } from 'components/diagrams/welcome'
+import { Welcome } from '@components/diagrams/welcome'
diff --git a/examples/swr-site/pages/docs/getting-started.ja.mdx b/examples/swr-site/pages/docs/getting-started.ja.mdx
index 6b47af7cfb..f673bafa2f 100644
--- a/examples/swr-site/pages/docs/getting-started.ja.mdx
+++ b/examples/swr-site/pages/docs/getting-started.ja.mdx
@@ -83,7 +83,7 @@ function Avatar ({ id }) {
現実世界の例では、ウェブサイトにナビゲーションバーとコンテンツが表示されています。どちらも `user` に依存しています:
-import { Welcome } from 'components/diagrams/welcome'
+import { Welcome } from '@components/diagrams/welcome'
diff --git a/examples/swr-site/pages/docs/getting-started.ko.mdx b/examples/swr-site/pages/docs/getting-started.ko.mdx
index 269172c81c..29de89fc74 100644
--- a/examples/swr-site/pages/docs/getting-started.ko.mdx
+++ b/examples/swr-site/pages/docs/getting-started.ko.mdx
@@ -84,7 +84,7 @@ function Avatar ({ id }) {
실제 예시로, 저희 웹 사이트는 모두 `user`에 의존하는 navbar와 그 콘텐츠를 보여줍니다.
-import { Welcome } from 'components/diagrams/welcome'
+import { Welcome } from '@components/diagrams/welcome'
diff --git a/examples/swr-site/pages/docs/getting-started.ru.mdx b/examples/swr-site/pages/docs/getting-started.ru.mdx
index 9325bf4cc8..05eea4580a 100644
--- a/examples/swr-site/pages/docs/getting-started.ru.mdx
+++ b/examples/swr-site/pages/docs/getting-started.ru.mdx
@@ -87,7 +87,7 @@ function Avatar ({ id }) {
В реальном примере наш веб-сайт показывает панель навигации и контент, оба зависят от `user`:
-import { Welcome } from 'components/diagrams/welcome'
+import { Welcome } from '@components/diagrams/welcome'
diff --git a/examples/swr-site/pages/docs/getting-started.zh-CN.mdx b/examples/swr-site/pages/docs/getting-started.zh-CN.mdx
index 90ef859f08..d73a110d6d 100644
--- a/examples/swr-site/pages/docs/getting-started.zh-CN.mdx
+++ b/examples/swr-site/pages/docs/getting-started.zh-CN.mdx
@@ -80,7 +80,7 @@ function Avatar({ id }) {
在一个真实的示例中,我们的网站显示一个导航条和内容,都取决于 `user`:
-import { Welcome } from 'components/diagrams/welcome'
+import { Welcome } from '@components/diagrams/welcome'
diff --git a/examples/swr-site/pages/docs/global-configuration.en-US.md b/examples/swr-site/pages/docs/global-configuration.en-US.md
index 57c3eb1d63..d5eb9fd9e4 100644
--- a/examples/swr-site/pages/docs/global-configuration.en-US.md
+++ b/examples/swr-site/pages/docs/global-configuration.en-US.md
@@ -39,7 +39,7 @@ function App () {
### Cache Provider
-Besides all the [options](/docs/options) listed, `SWRConfig` also accepts an optional `provider` function. Please refer to the [Cache](/docs/cache) section for more details.
+Besides, all the [options](/docs/options) listed, `SWRConfig` also accepts an optional `provider` function. Please refer to the [Cache](/docs/cache) section for more details.
```jsx
new Map() }}>
diff --git a/examples/swr-site/pages/docs/meta.en-US.json b/examples/swr-site/pages/docs/meta.en-US.json
index ad214a69a2..4d16884a55 100644
--- a/examples/swr-site/pages/docs/meta.en-US.json
+++ b/examples/swr-site/pages/docs/meta.en-US.json
@@ -40,5 +40,6 @@
"type": "page",
"newWindow": true
},
- "scroll-with-dynamic-height": "Scroll With Dynamic Height"
+ "scroll-with-dynamic-height": "Scroll With Dynamic Height",
+ "404-500": "404/500 Custom Error Pages"
}
diff --git a/examples/swr-site/pages/docs/pagination.en-US.mdx b/examples/swr-site/pages/docs/pagination.en-US.mdx
index 1e376e4dee..8b072e8d3c 100644
--- a/examples/swr-site/pages/docs/pagination.en-US.mdx
+++ b/examples/swr-site/pages/docs/pagination.en-US.mdx
@@ -14,7 +14,7 @@ SWR provides a dedicated API `useSWRInfinite` to support common UI patterns such
First of all, we might **NOT** need `useSWRInfinite` but can use just `useSWR` if we are building something like this:
-import { Pagination } from 'components/diagrams/pagination'
+import { Pagination } from '@components/diagrams/pagination'
@@ -86,7 +86,7 @@ that most scenarios are covered by it.
Sometimes we want to build an **infinite loading** UI, with a "Load More" button that appends data
to the list (or done automatically when you scroll):
-import { Infinite } from 'components/diagrams/infinite'
+import { Infinite } from '@components/diagrams/infinite'
@@ -95,7 +95,7 @@ import { Infinite } from 'components/diagrams/infinite'
To implement this, we need to make **dynamic number of requests** on this page. React Hooks have [a couple of rules](https://reactjs.org/docs/hooks-rules.html),
so we **CANNOT** do something like this:
-```jsx {5,6,7,8,9}
+```jsx {5-9}
function App () {
const [cnt, setCnt] = useState(1)
diff --git a/examples/swr-site/pages/docs/pagination.es-ES.mdx b/examples/swr-site/pages/docs/pagination.es-ES.mdx
index 684084b035..2cd739674a 100644
--- a/examples/swr-site/pages/docs/pagination.es-ES.mdx
+++ b/examples/swr-site/pages/docs/pagination.es-ES.mdx
@@ -15,7 +15,7 @@ SWR proporciona una API dedicada `useSWRInfinite` para admitir patrones de UI co
En primer lugar, es posible que **NO** necesitemos `useSWRInfinite`, sino que podemos utilizar simplemente `useSWR`
si estamos construyendo algo como esto:
-import { Pagination } from 'components/diagrams/pagination'
+import { Pagination } from '@components/diagrams/pagination'
@@ -88,7 +88,7 @@ que la mayoría de los escenarios están cubiertos por él.
A veces queremos construir una UI de **carga infinita**, con un botón "Load More" que añada datos
a la lista (o que lo haga automáticamente al desplazarse):
-import { Infinite } from 'components/diagrams/infinite'
+import { Infinite } from '@components/diagrams/infinite'
@@ -86,7 +86,7 @@ function App () {
「さらに読み込む」ボタンを使用して(またはスクロールすると自動的に実行されて)リストにデータを
追加する**無限ローディング** UI を構築したい場合があります:
-import { Infinite } from 'components/diagrams/infinite'
+import { Infinite } from '@components/diagrams/infinite'
diff --git a/examples/swr-site/pages/docs/pagination.ko.mdx b/examples/swr-site/pages/docs/pagination.ko.mdx
index a4e9b5a486..b5ac5cad56 100644
--- a/examples/swr-site/pages/docs/pagination.ko.mdx
+++ b/examples/swr-site/pages/docs/pagination.ko.mdx
@@ -14,7 +14,7 @@ SWR은 **페이지네이션**과 **인피니트 로딩**과 같은 일반적인
다음과 같은 무언가를 구축한다면 우선 `useSWRInfinite`은 필요하지 **않고** `useSWR`만 사용하면 됩니다.
-import { Pagination } from 'components/diagrams/pagination'
+import { Pagination } from '@components/diagrams/pagination'
@@ -86,7 +86,7 @@ function App () {
리스트에 데이터를 이어 붙이는 "더 보기" 버튼(또는 스크롤할 때 자동으로 완료)으로
**인피니트 로딩** UI를 구축하길 원하는 경우가 있습니다.
-import { Infinite } from 'components/diagrams/infinite'
+import { Infinite } from '@components/diagrams/infinite'
diff --git a/examples/swr-site/pages/docs/pagination.ru.mdx b/examples/swr-site/pages/docs/pagination.ru.mdx
index 8b658d1cdf..b3038695d5 100644
--- a/examples/swr-site/pages/docs/pagination.ru.mdx
+++ b/examples/swr-site/pages/docs/pagination.ru.mdx
@@ -14,7 +14,7 @@ SWR предоставляет специальный API `useSWRInfinite` дл
Для начала, нам может **НЕ** понадобится `useSWRInfinite`, а вместо него использовать просто `useSWR`, если мы создаем что-то вроде этого:
-import { Pagination } from 'components/diagrams/pagination'
+import { Pagination } from '@components/diagrams/pagination'
@@ -86,7 +86,7 @@ function App () {
Иногда мы хотим создать интерфейс **бесконечной загрузки** с кнопкой «Загрузить ещё»,
которая добавляет данные в список (или делает это автоматически при прокрутке):
-import { Infinite } from 'components/diagrams/infinite'
+import { Infinite } from '@components/diagrams/infinite'
diff --git a/examples/swr-site/pages/docs/pagination.zh-CN.mdx b/examples/swr-site/pages/docs/pagination.zh-CN.mdx
index 80355b889e..1643fcca17 100644
--- a/examples/swr-site/pages/docs/pagination.zh-CN.mdx
+++ b/examples/swr-site/pages/docs/pagination.zh-CN.mdx
@@ -14,7 +14,7 @@ SWR 提供了一个专用 API `useSWRInfinite` 来支持常见的 UI 模式,
首先,我们可能 **并不** 需要 `useSWRInfinite`,如果我们正在构建如下内容,可以只使用 `useSWR`:
-import { Pagination } from 'components/diagrams/pagination'
+import { Pagination } from '@components/diagrams/pagination'
@@ -82,7 +82,7 @@ function App () {
有时我们想构建一个**无限加载** UI,用一个 "Load More" 按钮向列表追加数据(或者在滚动时自动完成):
-import { Infinite } from 'components/diagrams/infinite'
+import { Infinite } from '@components/diagrams/infinite'
diff --git a/examples/swr-site/pages/docs/revalidation.en-US.mdx b/examples/swr-site/pages/docs/revalidation.en-US.mdx
index 89a6d59cd8..0e3321347e 100644
--- a/examples/swr-site/pages/docs/revalidation.en-US.mdx
+++ b/examples/swr-site/pages/docs/revalidation.en-US.mdx
@@ -1,4 +1,4 @@
-import Video from 'components/video'
+import Video from '@components/video'
import { Callout, Bleed } from 'nextra-theme-docs'
# Automatic Revalidation
diff --git a/examples/swr-site/pages/docs/revalidation.es-ES.mdx b/examples/swr-site/pages/docs/revalidation.es-ES.mdx
index a1f84f1365..8b20e40872 100644
--- a/examples/swr-site/pages/docs/revalidation.es-ES.mdx
+++ b/examples/swr-site/pages/docs/revalidation.es-ES.mdx
@@ -1,4 +1,4 @@
-import Video from 'components/video'
+import Video from '@components/video'
import { Callout, Bleed } from 'nextra-theme-docs'
# Revalidación Automática
diff --git a/examples/swr-site/pages/docs/revalidation.ja.mdx b/examples/swr-site/pages/docs/revalidation.ja.mdx
index cb5d9dbbe5..d444c94028 100644
--- a/examples/swr-site/pages/docs/revalidation.ja.mdx
+++ b/examples/swr-site/pages/docs/revalidation.ja.mdx
@@ -1,4 +1,4 @@
-import Video from 'components/video'
+import Video from '@components/video'
import { Callout, Bleed } from 'nextra-theme-docs'
# 自動再検証
diff --git a/examples/swr-site/pages/docs/revalidation.ko.mdx b/examples/swr-site/pages/docs/revalidation.ko.mdx
index 4d25860972..50f7fa6594 100644
--- a/examples/swr-site/pages/docs/revalidation.ko.mdx
+++ b/examples/swr-site/pages/docs/revalidation.ko.mdx
@@ -1,4 +1,4 @@
-import Video from 'components/video'
+import Video from '@components/video'
import { Callout, Bleed } from 'nextra-theme-docs'
# 자동 갱신
diff --git a/examples/swr-site/pages/docs/revalidation.ru.mdx b/examples/swr-site/pages/docs/revalidation.ru.mdx
index 94ca71bdc1..d2307c1ab9 100644
--- a/examples/swr-site/pages/docs/revalidation.ru.mdx
+++ b/examples/swr-site/pages/docs/revalidation.ru.mdx
@@ -1,4 +1,4 @@
-import Video from 'components/video'
+import Video from '@components/video'
import { Callout, Bleed } from 'nextra-theme-docs'
# Автоматическая ревалидация
diff --git a/examples/swr-site/pages/docs/revalidation.zh-CN.mdx b/examples/swr-site/pages/docs/revalidation.zh-CN.mdx
index 0ceb779ca4..aa512e299c 100644
--- a/examples/swr-site/pages/docs/revalidation.zh-CN.mdx
+++ b/examples/swr-site/pages/docs/revalidation.zh-CN.mdx
@@ -1,4 +1,4 @@
-import Video from 'components/video'
+import Video from '@components/video'
import { Callout, Bleed } from 'nextra-theme-docs'
# 自动重新请求
diff --git a/examples/swr-site/pages/index.en-US.mdx b/examples/swr-site/pages/index.en-US.mdx
index 79e403a118..e62018fcac 100644
--- a/examples/swr-site/pages/index.en-US.mdx
+++ b/examples/swr-site/pages/index.en-US.mdx
@@ -3,7 +3,7 @@ title: React Hooks for Data Fetching
searchable: false
---
-import Features from 'components/features'
+import Features from '@components/features'
import { Tabs, Tab, Callout } from 'nextra-theme-docs'
{
diff --git a/examples/swr-site/pages/index.es-ES.mdx b/examples/swr-site/pages/index.es-ES.mdx
index 17b4781271..066dd0c49b 100644
--- a/examples/swr-site/pages/index.es-ES.mdx
+++ b/examples/swr-site/pages/index.es-ES.mdx
@@ -3,7 +3,7 @@ title: Biblioteca React Hooks para la obtención de datos
---
import { Callout } from 'nextra-theme-docs'
-import Features from "components/features";
+import Features from "@components/features";
{
// wrapped with {} to mark it as javascript so mdx will not put it under a p tag
diff --git a/examples/swr-site/pages/index.ja.mdx b/examples/swr-site/pages/index.ja.mdx
index 3691d1336f..d37ae07ef5 100644
--- a/examples/swr-site/pages/index.ja.mdx
+++ b/examples/swr-site/pages/index.ja.mdx
@@ -3,7 +3,7 @@ title: データ取得のための React Hooks ライブラリ
---
import { Callout } from 'nextra-theme-docs'
-import Features from 'components/features'
+import Features from '@components/features'
{
// wrapped with {} to mark it as javascript so mdx will not put it under a p tag
diff --git a/examples/swr-site/pages/index.ko.mdx b/examples/swr-site/pages/index.ko.mdx
index 6199e15cc9..a4049bd381 100644
--- a/examples/swr-site/pages/index.ko.mdx
+++ b/examples/swr-site/pages/index.ko.mdx
@@ -3,7 +3,7 @@ title: 데이터 가져오기를 위한 React Hooks
---
import { Callout } from 'nextra-theme-docs'
-import Features from 'components/features'
+import Features from '@components/features'
{
// wrapped with {} to mark it as javascript so mdx will not put it under a p tag
diff --git a/examples/swr-site/pages/index.ru.mdx b/examples/swr-site/pages/index.ru.mdx
index 47fb8dd407..2426eb8cc9 100644
--- a/examples/swr-site/pages/index.ru.mdx
+++ b/examples/swr-site/pages/index.ru.mdx
@@ -3,7 +3,7 @@ title: React хуки для получения данных
---
import { Callout } from 'nextra-theme-docs'
-import Features from 'components/features'
+import Features from '@components/features'
{
// wrapped with {} to mark it as javascript so mdx will not put it under a p tag
diff --git a/examples/swr-site/pages/index.zh-CN.mdx b/examples/swr-site/pages/index.zh-CN.mdx
index 05c3366f3d..491b1c8827 100644
--- a/examples/swr-site/pages/index.zh-CN.mdx
+++ b/examples/swr-site/pages/index.zh-CN.mdx
@@ -3,7 +3,7 @@ title: 用于数据请求的 React Hooks 库
---
import { Callout } from 'nextra-theme-docs'
-import Features from "components/features"
+import Features from "@components/features"
{
// wrapped with {} to mark it as javascript so mdx will not put it under a p tag
diff --git a/examples/swr-site/pages/meta.en-US.json b/examples/swr-site/pages/meta.en-US.json
index 21f84916d9..488a55a48b 100644
--- a/examples/swr-site/pages/meta.en-US.json
+++ b/examples/swr-site/pages/meta.en-US.json
@@ -54,5 +54,14 @@
"href": "https://github.com/shuding/nextra",
"type": "page",
"newWindow": true
+ },
+ "404": {
+ "type": "page"
+ },
+ "500": {
+ "type":"page",
+ "theme": {
+ "layout": "full"
+ }
}
}
diff --git a/examples/swr-site/tailwind.config.js b/examples/swr-site/tailwind.config.js
index 2ef1626c52..82000b1849 100644
--- a/examples/swr-site/tailwind.config.js
+++ b/examples/swr-site/tailwind.config.js
@@ -3,6 +3,6 @@ module.exports = {
content: [
"./components/**/*.js",
"./pages/**/*.{md,mdx}",
- "./theme.config.js",
+ "./theme.config.tsx",
],
};
diff --git a/examples/swr-site/theme.config.js b/examples/swr-site/theme.config.tsx
similarity index 74%
rename from examples/swr-site/theme.config.js
rename to examples/swr-site/theme.config.tsx
index caca543e83..131069b017 100644
--- a/examples/swr-site/theme.config.js
+++ b/examples/swr-site/theme.config.tsx
@@ -1,4 +1,5 @@
import { useRouter } from "next/router";
+import { DocsThemeConfig, useConfig } from "nextra-theme-docs";
const Logo = ({ height }) => (
);
-const Vercel = ({ height = 20 }) => (
-