diff --git a/.claude/launch.json b/.claude/launch.json
new file mode 100644
index 0000000000..1b1e7f9a01
--- /dev/null
+++ b/.claude/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.0.1",
+ "configurations": [
+ {
+ "name": "docs-dev",
+ "runtimeExecutable": "npm",
+ "runtimeArgs": ["run", "dev"],
+ "port": 4321
+ }
+ ]
+}
diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 7015cc2a49..0000000000
--- a/.eslintignore
+++ /dev/null
@@ -1,5 +0,0 @@
-dist
-node_modules
-.github
-.changeset
-*.jsx
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 0bd79f8700..0000000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,77 +0,0 @@
-module.exports = {
- env: {
- node: true,
- es2022: true,
- browser: true,
- },
- extends: ['eslint:recommended', 'plugin:astro/recommended'],
- parserOptions: {
- ecmaVersion: 'latest',
- sourceType: 'module',
- },
- rules: {},
- settings: {
- react: {
- pragma: 'h',
- version: '16.0',
- },
- },
- overrides: [
- {
- files: ['*.astro'],
- parser: 'astro-eslint-parser',
- parserOptions: {
- parser: '@typescript-eslint/parser',
- extraFileExtensions: ['.astro'],
- },
- rules: {},
- },
- {
- files: ['*.ts'],
- parser: '@typescript-eslint/parser',
- extends: ['plugin:@typescript-eslint/recommended'],
- rules: {
- '@typescript-eslint/no-unused-vars': [
- 'error',
- { argsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' },
- ],
- '@typescript-eslint/no-non-null-assertion': 'off',
- },
- },
- {
- files: ['*.d.ts'],
- rules: {
- '@typescript-eslint/triple-slash-reference': 'off',
- },
- },
- {
- files: ['*.tsx'],
- parser: '@typescript-eslint/parser',
- plugins: ['react', '@typescript-eslint'],
- parserOptions: {
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- },
- extends: [
- 'eslint:recommended',
- 'plugin:react/recommended',
- 'plugin:react/jsx-runtime',
- 'plugin:@typescript-eslint/recommended',
- 'plugin:@typescript-eslint/recommended-requiring-type-checking',
- ],
- rules: {
- '@typescript-eslint/no-unused-vars': [
- 'error',
- { argsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' },
- ],
- '@typescript-eslint/no-non-null-assertion': 'off',
- },
- },
- {
- // Define the configuration for `
diff --git a/src/components/Code/Code.astro b/src/components/Code/Code.astro
index b3f965f78f..740c3669e6 100644
--- a/src/components/Code/Code.astro
+++ b/src/components/Code/Code.astro
@@ -1,10 +1,12 @@
---
-import { Code as CodeComponent } from 'astro-expressive-code/components'
+import CodeBlock from '~/components/CodeBlock/CodeBlock.astro';
+
interface Props {
- code: string,
- lang: string,
+ code: string;
+ lang: string;
}
-const props = Astro.props as Props
+
+const { code, lang } = Astro.props as Props;
---
-
\ No newline at end of file
+
diff --git a/src/components/CodeBlock/CodeBlock.astro b/src/components/CodeBlock/CodeBlock.astro
new file mode 100644
index 0000000000..419808d5af
--- /dev/null
+++ b/src/components/CodeBlock/CodeBlock.astro
@@ -0,0 +1,20 @@
+---
+import WebkitCodeBlock from '~/components/webkit/CodeBlock.vue';
+
+interface Props {
+ code: string;
+ lang?: string;
+ fileName?: string;
+ showLineNumbers?: boolean;
+}
+
+const { code, lang, fileName, showLineNumbers } = Astro.props as Props;
+---
+
+
diff --git a/src/components/ContributorList.astro b/src/components/ContributorList.astro
deleted file mode 100644
index b7f39219d3..0000000000
--- a/src/components/ContributorList.astro
+++ /dev/null
@@ -1,92 +0,0 @@
----
-import { cachedFetch } from '../util-server';
-import UIString from './UIString.astro';
-
-export interface Props {
- githubRepo?: `aziontech.docs`;
-}
-
-const { githubRepo = 'aziontech/docs' } = Astro.props as Props;
-const contributorsLink = `https://github.com/aziontech/docs/graphs/contributors`;
-
-const printError = (e: Error) =>
- console.warn(`[error] /src/components/ContributorList.astro\n ${e?.message ?? e}`);
-
-async function getContributors(repo: string, page = 1): Promise<{ login: string; id: number }[]> {
- try {
- const pageSize = 100;
- const url = `https://api.github.com/repos/aziontech/docs/contributors?per_page=${7}&page=${1}`;
-
- const token = import.meta.env.PUBLIC_GITHUB_TOKEN;
-
- const res = await cachedFetch(
- url,
- {
- method: 'GET',
- headers: {
- Authorization: token && `Basic ${Buffer.from(token, 'binary').toString('base64')}`,
- 'User-Agent': 'aziontech.docs/1.0',
- },
- },
- { duration: '15m' }
- );
-
- const data = await res.json();
-
- if (!res.ok) {
- throw new Error(
- `Request to fetch contributors failed. Reason: ${res.statusText}
- Message: ${data?.message}`
- );
- }
-
- // Fetch more contributors recursively if there are more than GitHub's per-page response limit.
- if (data.length === pageSize) {
- const rest = await getContributors(repo, page + 1);
- data.push(...rest);
- }
-
- return data;
- } catch (e: any) {
- printError(e);
- return new Array();
- }
-}
-
-const contributors = await getContributors(githubRepo);
-const filteredContributors = contributors.filter(
- (contributor) => contributor.login !== 'robsongajunior' && contributor.login !== 'lfsigreja'
-);
----
-
-
-
- {
- filteredContributors.map((item) => (
- -
-
-
-
-
- ))
- }
-
-
-
-
diff --git a/src/components/DeployGuidesNav.astro b/src/components/DeployGuidesNav.astro
deleted file mode 100644
index 3a1ef0dbd8..0000000000
--- a/src/components/DeployGuidesNav.astro
+++ /dev/null
@@ -1,139 +0,0 @@
----
-import { getLanguageFromURL } from '~/util';
-import { useTranslations } from '~/i18n/util';
-import CardsNav from './NavGrid/CardsNav.astro';
-import type { LogoKey } from '~/data/logos';
-
-export interface Props {
- minimal?: boolean;
-}
-
-const { minimal } = Astro.props as Props;
-
-const lang = getLanguageFromURL(Astro.url.pathname);
-const t = useTranslations(Astro);
-
-interface Service {
- title: string;
- slug: LogoKey;
- supports: ['ssr', 'static'] | ['ssr'] | ['static'];
-}
-
-const services: Service[] = [
- { title: 'Netlify', slug: 'netlify', supports: ['ssr', 'static'] },
- { title: 'Vercel', slug: 'vercel', supports: ['ssr', 'static'] },
- { title: 'Deno Deploy', slug: 'deno', supports: ['ssr'] },
- { title: 'GitHub Pages', slug: 'github', supports: ['static'] },
- { title: 'GitLab Pages', slug: 'gitlab', supports: ['static'] },
- { title: 'Cloudflare Pages', slug: 'cloudflare', supports: ['ssr', 'static'] },
- { title: 'AWS', slug: 'aws', supports: ['static'] },
- { title: 'AWS via Flightcontrol', slug: 'flightcontrol', supports: ['ssr', 'static'] },
- { title: 'AWS via SST', slug: 'sst', supports: ['ssr', 'static'] },
- { title: 'Google Cloud', slug: 'google-cloud', supports: ['ssr', 'static'] },
- { title: 'Firebase Hosting', slug: 'google-firebase', supports: ['static'] },
- { title: 'Heroku', slug: 'heroku', supports: ['static'] },
- { title: 'Microsoft Azure', slug: 'microsoft-azure', supports: ['static'] },
- { title: 'Buddy', slug: 'buddy', supports: ['static'] },
- { title: 'Edgio', slug: 'edgio', supports: ['ssr', 'static'] },
- { title: 'Render', slug: 'render', supports: ['static'] },
- { title: 'Surge', slug: 'surge', supports: ['static'] },
- { title: 'Cleavr', slug: 'cleavr', supports: ['ssr', 'static'] },
- { title: 'Kinsta', slug: 'kinsta', supports: ['ssr', 'static'] },
- { title: 'Deta Space', slug: 'space', supports: ['ssr', 'static'] },
-];
----
-
- ({
- title,
- href: `/${lang}/guides/deploy/${slug}/`,
- logo: slug,
- tags: Object.fromEntries(supports.map((s) => [s, t(`deploy.${s}Tag`)!])),
- }))}
->
- {minimal ? t('deploy.altSectionTitle') : t('deploy.sectionTitle')}
- {t('deploy.filterLabel')}
-
-
-
-
-
-
-
diff --git a/src/components/FileTree.astro b/src/components/FileTree.astro
deleted file mode 100644
index bb57f9c598..0000000000
--- a/src/components/FileTree.astro
+++ /dev/null
@@ -1,134 +0,0 @@
----
-import { useTranslations } from '../i18n/util';
-import { fileTreeProcessor } from './internal/rehype-file-tree';
-
-const content = await Astro.slots.render('default');
-if (!/^\s*/.test(content)) {
- throw new Error(
- ` component expects its content to be an unordered list but found HTML starting with “${content.slice(
- 0,
- 20
- )}...”`
- );
-}
-
-const t = useTranslations(Astro);
-
-const processedContent = await fileTreeProcessor.process({
- value: content,
- data: { directoryLabel: t('fileTree.directoryLabel') },
-});
----
-
-
-
-
diff --git a/src/components/Footer.vue b/src/components/Footer.vue
index 4404521fab..388d0041cc 100644
--- a/src/components/Footer.vue
+++ b/src/components/Footer.vue
@@ -1,112 +1,112 @@
-