Compare commits

..

2 commits

Author SHA1 Message Date
Sarah Rainsberger
b58c6012c1
fix typo 2023-05-02 11:13:22 -03:00
Sarah Rainsberger
a41259daad
[markdoc README] note re: article tag
Trying to clean up a docs issue ( https://github.com/withastro/docs/issues/2904 ), and I think something like this will do it!
2023-05-02 11:07:41 -03:00
2456 changed files with 57024 additions and 138833 deletions

8
.Dockerfile Normal file
View file

@ -0,0 +1,8 @@
FROM gitpod/workspace-node
# Install latest pnpm
RUN curl -fsSL https://get.pnpm.io/install.sh | SHELL=`which bash` bash -
# Install deno in gitpod
RUN curl -fsSL https://deno.land/x/install/install.sh | sh
RUN /home/gitpod/.deno/bin/deno completions bash > /home/gitpod/.bashrc.d/90-deno && echo 'export DENO_INSTALL="/home/gitpod/.deno"' >> /home/gitpod/.bashrc.d/90-deno && echo 'export PATH="$DENO_INSTALL/bin:$PATH"' >> /home/gitpod/.bashrc.d/90-deno

View file

@ -1,5 +0,0 @@
---
'astro': patch
---
Fixed an issue where the transitions router did not work within framework components.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Fix getImage type

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Changed where various parts of the build pipeline look to decide if a page should be prerendered. They now exclusively consider PageBuildData, allowing integrations to participate in the decision.

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Inline `process.env` boolean values (`0`, `1`, `true`, `false`) during the build. This helps with DCE and allows for better `export const prerender` detection.

View file

@ -0,0 +1,6 @@
---
'@astrojs/image': patch
'astro': patch
---
Update allowed Sharp versions to support 0.32.0

View file

@ -1,5 +0,0 @@
---
'@astrojs/cloudflare': patch
---
fixes `AdvancedRuntime` & `DirectoryRuntime` types to work woth Cloudflare caches

View file

@ -0,0 +1,5 @@
---
'@astrojs/vercel': minor
---
Add support for using the Vercel Image Optimization API through `astro:assets`

View file

@ -6,6 +6,10 @@ RUN npm install -g @playwright/test
# Install latest pnpm # Install latest pnpm
RUN npm install -g pnpm RUN npm install -g pnpm
# Install deno
ENV DENO_INSTALL=/usr/local
RUN curl -fsSL https://deno.land/x/install/install.sh | sh
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& curl -sSL https://dl.google.com/linux/direct/google-chrome-stable_current_$(dpkg --print-architecture).deb -o /tmp/chrome.deb \ && curl -sSL https://dl.google.com/linux/direct/google-chrome-stable_current_$(dpkg --print-architecture).deb -o /tmp/chrome.deb \
&& apt-get -y install /tmp/chrome.deb && apt-get -y install /tmp/chrome.deb

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/basics", "workspaceFolder": "/workspaces/astro/examples/basics",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/blog", "workspaceFolder": "/workspaces/astro/examples/blog",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -0,0 +1,34 @@
{
"name": "Deno",
"build": {
"dockerfile": "../examples.deno.Dockerfile"
},
"workspaceFolder": "/workspaces/astro/examples/deno",
"portsAttributes": {
"3000": {
"label": "Application",
"onAutoForward": "openPreview"
}
},
"forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",
"waitFor": "postCreateCommand",
"postAttachCommand": {
"Server": "pnpm start --host"
},
"customizations": {
"codespaces": {
"openFiles": ["src/pages/index.astro"]
},
"vscode": {
"extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
}
}
}

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/docs", "workspaceFolder": "/workspaces/astro/examples/docs",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -0,0 +1,10 @@
FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
# Install latest pnpm
RUN npm install -g pnpm
# Install deno
ENV DENO_INSTALL=/usr/local
RUN curl -fsSL https://deno.land/x/install/install.sh | sh
COPY example-welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-alpine", "workspaceFolder": "/workspaces/astro/examples/framework-alpine",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-lit", "workspaceFolder": "/workspaces/astro/examples/framework-lit",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-multiple", "workspaceFolder": "/workspaces/astro/examples/framework-multiple",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-preact", "workspaceFolder": "/workspaces/astro/examples/framework-preact",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-react", "workspaceFolder": "/workspaces/astro/examples/framework-react",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-solid", "workspaceFolder": "/workspaces/astro/examples/framework-solid",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-svelte", "workspaceFolder": "/workspaces/astro/examples/framework-svelte",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/framework-vue", "workspaceFolder": "/workspaces/astro/examples/framework-vue",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/hackernews", "workspaceFolder": "/workspaces/astro/examples/hackernews",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/minimal", "workspaceFolder": "/workspaces/astro/examples/minimal",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/non-html-pages", "workspaceFolder": "/workspaces/astro/examples/non-html-pages",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/portfolio", "workspaceFolder": "/workspaces/astro/examples/portfolio",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/ssr", "workspaceFolder": "/workspaces/astro/examples/ssr",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-markdown-plugins", "workspaceFolder": "/workspaces/astro/examples/with-markdown-plugins",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-markdown-shiki", "workspaceFolder": "/workspaces/astro/examples/with-markdown-shiki",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-mdx", "workspaceFolder": "/workspaces/astro/examples/with-mdx",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-nanostores", "workspaceFolder": "/workspaces/astro/examples/with-nanostores",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-tailwindcss", "workspaceFolder": "/workspaces/astro/examples/with-tailwindcss",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-vite-plugin-pwa", "workspaceFolder": "/workspaces/astro/examples/with-vite-plugin-pwa",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -7,13 +7,13 @@
"workspaceFolder": "/workspaces/astro/examples/with-vitest", "workspaceFolder": "/workspaces/astro/examples/with-vitest",
"portsAttributes": { "portsAttributes": {
"4321": { "3000": {
"label": "Application", "label": "Application",
"onAutoForward": "openPreview" "onAutoForward": "openPreview"
} }
}, },
"forwardPorts": [4321], "forwardPorts": [3000],
"postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build", "postCreateCommand": "pnpm install && cd /workspaces/astro && pnpm run build",

View file

@ -1,7 +1,7 @@
**/*.d.ts **/*.d.ts
packages/**/*.min.js
packages/**/dist/**/* packages/**/dist/**/*
packages/**/fixtures/**/* packages/**/fixtures/**/*
packages/webapi/**/*
packages/astro/vendor/vite/**/* packages/astro/vendor/vite/**/*
examples/**/* examples/**/*
scripts/**/* scripts/**/*

View file

@ -1,74 +1,25 @@
const { builtinModules } = require('module');
module.exports = { module.exports = {
extends: [
'plugin:@typescript-eslint/recommended-type-checked',
'plugin:@typescript-eslint/stylistic-type-checked',
'prettier',
],
parser: '@typescript-eslint/parser', parser: '@typescript-eslint/parser',
parserOptions: { extends: ['plugin:@typescript-eslint/recommended', 'prettier'],
project: ['./packages/*/tsconfig.json', './tsconfig.eslint.json'],
tsconfigRootDir: __dirname,
},
plugins: ['@typescript-eslint', 'prettier', 'no-only-tests'], plugins: ['@typescript-eslint', 'prettier', 'no-only-tests'],
rules: { rules: {
// These off/configured-differently-by-default rules fit well for us
'@typescript-eslint/array-type': ['error', { default: 'array-simple' }],
'@typescript-eslint/no-unused-vars': [
'error',
{ argsIgnorePattern: '^_', ignoreRestSiblings: true },
],
'no-only-tests/no-only-tests': 'error',
'@typescript-eslint/no-shadow': ['error'],
'no-console': 'warn',
// Todo: do we want these?
'@typescript-eslint/array-type': 'off',
'@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/class-literal-property-style': 'off', '@typescript-eslint/camelcase': 'off',
'@typescript-eslint/consistent-indexed-object-style': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/consistent-type-definitions': 'off',
'@typescript-eslint/dot-notation': 'off',
'@typescript-eslint/no-base-to-string': 'off',
'@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': 'off',
'@typescript-eslint/no-redundant-type-constituents': 'off',
'@typescript-eslint/no-this-alias': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/prefer-nullish-coalescing': 'off',
'@typescript-eslint/prefer-optional-chain': 'off',
'@typescript-eslint/prefer-string-starts-ends-with': 'off',
'@typescript-eslint/require-await': 'off',
'@typescript-eslint/restrict-plus-operands': 'off',
'@typescript-eslint/restrict-template-expressions': 'off',
'@typescript-eslint/sort-type-constituents': 'off',
'@typescript-eslint/unbound-method': 'off',
'@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-non-null-assertion': 'off',
// These rules enabled by the preset configs don't work well for us '@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/await-thenable': 'off', '@typescript-eslint/no-use-before-define': 'off',
'@typescript-eslint/no-var-requires': 'off',
'@typescript-eslint/no-this-alias': 'off',
'no-console': 'warn',
'prefer-const': 'off', 'prefer-const': 'off',
'no-shadow': 'off',
'@typescript-eslint/no-shadow': ['error'],
'no-only-tests/no-only-tests': 'error',
}, },
overrides: [ overrides: [
{
// Ensure Node builtins aren't included in Astro's server runtime
files: ['packages/astro/src/runtime/**/*.ts'],
rules: {
'no-restricted-imports': [
'error',
{
paths: [...builtinModules],
patterns: ['node:*'],
},
],
},
},
{ {
files: ['packages/**/test/*.js', 'packages/**/*.js'], files: ['packages/**/test/*.js', 'packages/**/*.js'],
env: { env: {
@ -90,7 +41,6 @@ module.exports = {
{ {
files: ['benchmark/**/*.js'], files: ['benchmark/**/*.js'],
rules: { rules: {
'@typescript-eslint/no-unused-vars': 'off',
'no-console': 'off', 'no-console': 'off',
}, },
}, },

View file

@ -10,20 +10,42 @@ body:
Thank you for taking the time to file a bug report! Please fill out this form as completely as possible. Thank you for taking the time to file a bug report! Please fill out this form as completely as possible.
✅ I am using the **latest version of Astro** and all plugins. ✅ I am using the **latest version of Astro** and all plugins.
✅ I am using a version of Node that Astro supports (`>=18.14.1`) ✅ I am using a version of Node that supports ESM (`v14.18.0+`, or `v16.12.0+`)
- type: textarea - type: input
id: astro-info id: astro-version
attributes: attributes:
label: Astro Info label: What version of `astro` are you using?
description: Run the command `astro info` in your terminal and paste the output here. Please review the data before submitting in case there is any sensitive information you don't want to share. placeholder: 0.0.0
render: block validations:
required: true
- type: input
id: ssr-adapter
attributes:
label: Are you using an SSR adapter? If so, which one?
placeholder: None, or Netlify, Vercel, Cloudflare, etc.
validations:
required: true
- type: input
id: package-manager
attributes:
label: What package manager are you using?
placeholder: npm, yarn, pnpm
validations:
required: true
- type: input
id: os
attributes:
label: What operating system are you using?
placeholder: Mac, Windows, Linux
validations: validations:
required: true required: true
- type: input - type: input
id: browser id: browser
attributes: attributes:
label: If this issue only occurs in one browser, which browser is a problem? label: What browser are you using?
placeholder: Chrome, Firefox, Safari placeholder: Chrome, Firefox, Safari
validations:
required: true
- type: textarea - type: textarea
id: bug-description id: bug-description
attributes: attributes:
@ -31,13 +53,6 @@ body:
description: A clear and concise description of what the bug is. description: A clear and concise description of what the bug is.
validations: validations:
required: true required: true
- type: textarea
id: bug-expectation
attributes:
label: What's the expected result?
description: Describe what you expect to happen.
validations:
required: true
- type: input - type: input
id: bug-reproduction id: bug-reproduction
attributes: attributes:

View file

@ -4,7 +4,7 @@ contact_links:
url: https://github.com/withastro/docs url: https://github.com/withastro/docs
about: File an issue or make an improvement to the docs website. about: File an issue or make an improvement to the docs website.
- name: 💡 Ideas for New Features, Improvements and RFCs - name: 💡 Ideas for New Features, Improvements and RFCs
url: https://github.com/withastro/roadmap/discussions url: https://github.com/withastro/rfcs/discussions
about: Propose and discuss future improvements to Astro about: Propose and discuss future improvements to Astro
- name: 👾 Chat - name: 👾 Chat
url: https://astro.build/chat url: https://astro.build/chat

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 13 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1 +1,11 @@
<svg fill="none" height="40" viewBox="0 0 240 40" width="240" xmlns="http://www.w3.org/2000/svg"><g fill="#fff"><path clip-rule="evenodd" d="m31 40-4-10.6-4 10.6h-2l5-13.2-4-10.5-9 23.7h-2l10-26.4-4.5-11.8-14.5 38.2h-2l15.2-40h2.6l4.2 11 4.2-11h2.6l3.7 9.7 3.7-9.7h2.6l4.2 11 4.2-11h2.6l15.2 40h-2l-14.5-38.2-4.5 11.8 10 26.4h-2l-9-23.7-4 10.5 5 13.2h-2l-4-10.6-4 10.6zm1.5-25-4.5 11.7 4.5 11.9 4.5-11.8zm-5-13.2-4.5 11.8 4 10.6 4.5-11.9zm10 0-4 10.5 4.5 11.9 4-10.6z" fill-rule="evenodd"/><path d="m97.7259 17.956v11.044h2.7061v-15.4h-2.8821l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/><path d="m121.687 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.547-1.2833-2.53-1.694c-.982-.4253-2.068-.638-3.256-.638s-2.273.2127-3.256.638c-.982.4253-1.833 1.0047-2.552 1.738-.718.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.548 1.2907 2.53 1.716c.983.4107 2.068.616 3.256.616s2.274-.2127 3.256-.638c.983-.4253 1.834-.9973 2.552-1.716.719-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.249.66-.601 1.2393-1.056 1.738-.454.484-1.004.8727-1.65 1.166-.63.2787-1.327.418-2.09.418-.762 0-1.466-.1467-2.112-.44-.645-.2933-1.202-.6893-1.672-1.188-.454-.4987-.814-1.078-1.078-1.738-.249-.6747-.374-1.386-.374-2.134s.125-1.452.374-2.112c.264-.6747.624-1.254 1.078-1.738.455-.4987.998-.8873 1.628-1.166.646-.2933 1.35-.44 2.112-.44.763 0 1.467.1467 2.112.44.646.2933 1.196.6893 1.65 1.188.47.4987.829 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m137.585 24.248-8.25-10.648h-2.508v15.4h2.662v-10.956l8.492 10.956h2.266v-15.4h-2.662z"/><path d="m161.5 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.548-1.2833-2.53-1.694c-.983-.4253-2.068-.638-3.256-.638s-2.274.2127-3.256.638c-.983.4253-1.834 1.0047-2.552 1.738-.719.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.547 1.2907 2.53 1.716c.982.4107 2.068.616 3.256.616s2.273-.2127 3.256-.638c.982-.4253 1.833-.9973 2.552-1.716.718-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.25.66-.602 1.2393-1.056 1.738-.455.484-1.005.8727-1.65 1.166-.631.2787-1.328.418-2.09.418-.763 0-1.467-.1467-2.112-.44-.646-.2933-1.203-.6893-1.672-1.188-.455-.4987-.814-1.078-1.078-1.738-.25-.6747-.374-1.386-.374-2.134s.124-1.452.374-2.112c.264-.6747.623-1.254 1.078-1.738.454-.4987.997-.8873 1.628-1.166.645-.2933 1.349-.44 2.112-.44.762 0 1.466.1467 2.112.44.645.2933 1.195.6893 1.65 1.188.469.4987.828 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m180.367 26.866v-6.468h-6.556v2.354h3.938v2.882c-.469.352-1.027.638-1.672.858-.631.2053-1.313.308-2.046.308-.792 0-1.511-.1393-2.156-.418-.631-.2787-1.181-.66-1.65-1.144-.455-.4987-.807-1.0853-1.056-1.76s-.374-1.408-.374-2.2c0-.748.125-1.452.374-2.112.264-.66.616-1.2393 1.056-1.738.455-.4987.983-.8873 1.584-1.166.616-.2933 1.276-.44 1.98-.44.484 0 .924.044 1.32.132.411.0733.785.1833 1.122.33.337.132.66.3007.968.506s.609.4327.902.682l1.716-2.046c-.396-.3373-.807-.6307-1.232-.88-.411-.264-.851-.484-1.32-.66s-.983-.308-1.54-.396c-.543-.1027-1.151-.154-1.826-.154-1.159 0-2.229.2127-3.212.638-.968.4253-1.804 1.0047-2.508 1.738-.704.7187-1.254 1.562-1.65 2.53-.381.968-.572 1.9947-.572 3.08 0 1.1293.191 2.178.572 3.146s.917 1.8113 1.606 2.53c.704.704 1.547 1.2613 2.53 1.672.983.396 2.075.594 3.278.594.675 0 1.32-.066 1.936-.198.616-.1173 1.188-.286 1.716-.506.543-.22 1.041-.4767 1.496-.77.469-.2933.895-.6013 1.276-.924z"/><path d="m198.829 29-4.158-5.83c.543-.1467 1.034-.352 1.474-.616.455-.2787.843-.6087 1.166-.99.323-.396.572-.8433.748-1.342.191-.5133.286-1.0927.286-1.738 0-.748-.132-1.4227-.396-2.024-.264-.616-.645-1.1293-1.144-1.54-.484-.4253-1.085-.748-1.804-.968-.704-.2347-1.496-.352-2.376-.352h-6.864v15.4h2.706v-5.368h3.388l3.784 5.368zm-3.234-10.362c0 .792-.286 1.4227-.858 1.892s-1.342.704-2.31.704h-3.96v-5.17h3.938c1.012 0 1.797.22 2.354.66.557.4253.836 1.0633.836 1.914z"/><path d="m211.934 13.49h-2.508l-6.776 15.51h2.772l1.584-3.718h7.282l1.562 3.718h2.86zm1.364 9.394h-5.302l2.64-6.16z"/><path d="m236.31 17.956v11.044h2.706v-15.4h-2.882l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/></g></svg> <svg width="240" height="40" viewBox="0 0 240 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M31 40L27 29.4L23 40H21L26 26.8L22 16.3L13 40H11L21 13.6L16.5 1.8L2 40H0L15.2 0H17.8L22 11L26.2 0H28.8L32.5 9.7L36.2 0H38.8L43 11L47.2 0H49.8L65 40H63L48.5 1.8L44 13.6L54 40H52L43 16.3L39 26.8L44 40H42L38 29.4L34 40H31ZM32.5 15L28 26.7L32.5 38.6L37 26.8L32.5 15ZM27.5 1.8L23 13.6L27 24.2L31.5 12.3L27.5 1.8ZM37.5 1.8L33.5 12.3L38 24.2L42 13.6L37.5 1.8Z" fill="#FFFFFF"/>
<path d="M97.7259 17.956V29H100.432V13.6H97.5499L92.8639 20.882L88.1779 13.6H85.2959V29H87.9579V18L92.7759 25.216H92.8639L97.7259 17.956Z" fill="#FFFFFF"/>
<path d="M121.687 21.278C121.687 20.1927 121.489 19.166 121.093 18.198C120.697 17.23 120.147 16.3867 119.443 15.668C118.739 14.9493 117.896 14.3847 116.913 13.974C115.931 13.5487 114.845 13.336 113.657 13.336C112.469 13.336 111.384 13.5487 110.401 13.974C109.419 14.3993 108.568 14.9787 107.849 15.712C107.131 16.4307 106.573 17.274 106.177 18.242C105.781 19.21 105.583 20.2367 105.583 21.322C105.583 22.4073 105.781 23.434 106.177 24.402C106.573 25.37 107.123 26.2133 107.827 26.932C108.531 27.6507 109.375 28.2227 110.357 28.648C111.34 29.0587 112.425 29.264 113.613 29.264C114.801 29.264 115.887 29.0513 116.869 28.626C117.852 28.2007 118.703 27.6287 119.421 26.91C120.14 26.1767 120.697 25.326 121.093 24.358C121.489 23.39 121.687 22.3633 121.687 21.278ZM118.849 21.322C118.849 22.07 118.717 22.7813 118.453 23.456C118.204 24.116 117.852 24.6953 117.397 25.194C116.943 25.678 116.393 26.0667 115.747 26.36C115.117 26.6387 114.42 26.778 113.657 26.778C112.895 26.778 112.191 26.6313 111.545 26.338C110.9 26.0447 110.343 25.6487 109.873 25.15C109.419 24.6513 109.059 24.072 108.795 23.412C108.546 22.7373 108.421 22.026 108.421 21.278C108.421 20.53 108.546 19.826 108.795 19.166C109.059 18.4913 109.419 17.912 109.873 17.428C110.328 16.9293 110.871 16.5407 111.501 16.262C112.147 15.9687 112.851 15.822 113.613 15.822C114.376 15.822 115.08 15.9687 115.725 16.262C116.371 16.5553 116.921 16.9513 117.375 17.45C117.845 17.9487 118.204 18.5353 118.453 19.21C118.717 19.87 118.849 20.574 118.849 21.322Z" fill="#FFFFFF"/>
<path d="M137.585 24.248L129.335 13.6H126.827V29H129.489V18.044L137.981 29H140.247V13.6H137.585V24.248Z" fill="#FFFFFF"/>
<path d="M161.5 21.278C161.5 20.1927 161.302 19.166 160.906 18.198C160.51 17.23 159.96 16.3867 159.256 15.668C158.552 14.9493 157.708 14.3847 156.726 13.974C155.743 13.5487 154.658 13.336 153.47 13.336C152.282 13.336 151.196 13.5487 150.214 13.974C149.231 14.3993 148.38 14.9787 147.662 15.712C146.943 16.4307 146.386 17.274 145.99 18.242C145.594 19.21 145.396 20.2367 145.396 21.322C145.396 22.4073 145.594 23.434 145.99 24.402C146.386 25.37 146.936 26.2133 147.64 26.932C148.344 27.6507 149.187 28.2227 150.17 28.648C151.152 29.0587 152.238 29.264 153.426 29.264C154.614 29.264 155.699 29.0513 156.682 28.626C157.664 28.2007 158.515 27.6287 159.234 26.91C159.952 26.1767 160.51 25.326 160.906 24.358C161.302 23.39 161.5 22.3633 161.5 21.278ZM158.662 21.322C158.662 22.07 158.53 22.7813 158.266 23.456C158.016 24.116 157.664 24.6953 157.21 25.194C156.755 25.678 156.205 26.0667 155.56 26.36C154.929 26.6387 154.232 26.778 153.47 26.778C152.707 26.778 152.003 26.6313 151.358 26.338C150.712 26.0447 150.155 25.6487 149.686 25.15C149.231 24.6513 148.872 24.072 148.608 23.412C148.358 22.7373 148.234 22.026 148.234 21.278C148.234 20.53 148.358 19.826 148.608 19.166C148.872 18.4913 149.231 17.912 149.686 17.428C150.14 16.9293 150.683 16.5407 151.314 16.262C151.959 15.9687 152.663 15.822 153.426 15.822C154.188 15.822 154.892 15.9687 155.538 16.262C156.183 16.5553 156.733 16.9513 157.188 17.45C157.657 17.9487 158.016 18.5353 158.266 19.21C158.53 19.87 158.662 20.574 158.662 21.322Z" fill="#FFFFFF"/>
<path d="M180.367 26.866V20.398H173.811V22.752H177.749V25.634C177.28 25.986 176.722 26.272 176.077 26.492C175.446 26.6973 174.764 26.8 174.031 26.8C173.239 26.8 172.52 26.6607 171.875 26.382C171.244 26.1033 170.694 25.722 170.225 25.238C169.77 24.7393 169.418 24.1527 169.169 23.478C168.92 22.8033 168.795 22.07 168.795 21.278C168.795 20.53 168.92 19.826 169.169 19.166C169.433 18.506 169.785 17.9267 170.225 17.428C170.68 16.9293 171.208 16.5407 171.809 16.262C172.425 15.9687 173.085 15.822 173.789 15.822C174.273 15.822 174.713 15.866 175.109 15.954C175.52 16.0273 175.894 16.1373 176.231 16.284C176.568 16.416 176.891 16.5847 177.199 16.79C177.507 16.9953 177.808 17.2227 178.101 17.472L179.817 15.426C179.421 15.0887 179.01 14.7953 178.585 14.546C178.174 14.282 177.734 14.062 177.265 13.886C176.796 13.71 176.282 13.578 175.725 13.49C175.182 13.3873 174.574 13.336 173.899 13.336C172.74 13.336 171.67 13.5487 170.687 13.974C169.719 14.3993 168.883 14.9787 168.179 15.712C167.475 16.4307 166.925 17.274 166.529 18.242C166.148 19.21 165.957 20.2367 165.957 21.322C165.957 22.4513 166.148 23.5 166.529 24.468C166.91 25.436 167.446 26.2793 168.135 26.998C168.839 27.702 169.682 28.2593 170.665 28.67C171.648 29.066 172.74 29.264 173.943 29.264C174.618 29.264 175.263 29.198 175.879 29.066C176.495 28.9487 177.067 28.78 177.595 28.56C178.138 28.34 178.636 28.0833 179.091 27.79C179.56 27.4967 179.986 27.1887 180.367 26.866Z" fill="#FFFFFF"/>
<path d="M198.829 29L194.671 23.17C195.214 23.0233 195.705 22.818 196.145 22.554C196.6 22.2753 196.988 21.9453 197.311 21.564C197.634 21.168 197.883 20.7207 198.059 20.222C198.25 19.7087 198.345 19.1293 198.345 18.484C198.345 17.736 198.213 17.0613 197.949 16.46C197.685 15.844 197.304 15.3307 196.805 14.92C196.321 14.4947 195.72 14.172 195.001 13.952C194.297 13.7173 193.505 13.6 192.625 13.6H185.761V29H188.467V23.632H191.855L195.639 29H198.829ZM195.595 18.638C195.595 19.43 195.309 20.0607 194.737 20.53C194.165 20.9993 193.395 21.234 192.427 21.234H188.467V16.064H192.405C193.417 16.064 194.202 16.284 194.759 16.724C195.316 17.1493 195.595 17.7873 195.595 18.638Z" fill="#FFFFFF"/>
<path d="M211.934 13.49H209.426L202.65 29H205.422L207.006 25.282H214.288L215.85 29H218.71L211.934 13.49ZM213.298 22.884H207.996L210.636 16.724L213.298 22.884Z" fill="#FFFFFF"/>
<path d="M236.31 17.956V29H239.016V13.6H236.134L231.448 20.882L226.762 13.6H223.88V29H226.542V18L231.36 25.216H231.448L236.31 17.956Z" fill="#FFFFFF"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -1 +1,11 @@
<svg fill="none" height="40" viewBox="0 0 240 40" width="240" xmlns="http://www.w3.org/2000/svg"><g fill="#000"><path clip-rule="evenodd" d="m31 40-4-10.6-4 10.6h-2l5-13.2-4-10.5-9 23.7h-2l10-26.4-4.5-11.8-14.5 38.2h-2l15.2-40h2.6l4.2 11 4.2-11h2.6l3.7 9.7 3.7-9.7h2.6l4.2 11 4.2-11h2.6l15.2 40h-2l-14.5-38.2-4.5 11.8 10 26.4h-2l-9-23.7-4 10.5 5 13.2h-2l-4-10.6-4 10.6zm1.5-25-4.5 11.7 4.5 11.9 4.5-11.8zm-5-13.2-4.5 11.8 4 10.6 4.5-11.9zm10 0-4 10.5 4.5 11.9 4-10.6z" fill-rule="evenodd"/><path d="m97.7259 17.956v11.044h2.7061v-15.4h-2.8821l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/><path d="m121.687 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.547-1.2833-2.53-1.694c-.982-.4253-2.068-.638-3.256-.638s-2.273.2127-3.256.638c-.982.4253-1.833 1.0047-2.552 1.738-.718.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.548 1.2907 2.53 1.716c.983.4107 2.068.616 3.256.616s2.274-.2127 3.256-.638c.983-.4253 1.834-.9973 2.552-1.716.719-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.249.66-.601 1.2393-1.056 1.738-.454.484-1.004.8727-1.65 1.166-.63.2787-1.327.418-2.09.418-.762 0-1.466-.1467-2.112-.44-.645-.2933-1.202-.6893-1.672-1.188-.454-.4987-.814-1.078-1.078-1.738-.249-.6747-.374-1.386-.374-2.134s.125-1.452.374-2.112c.264-.6747.624-1.254 1.078-1.738.455-.4987.998-.8873 1.628-1.166.646-.2933 1.35-.44 2.112-.44.763 0 1.467.1467 2.112.44.646.2933 1.196.6893 1.65 1.188.47.4987.829 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m137.585 24.248-8.25-10.648h-2.508v15.4h2.662v-10.956l8.492 10.956h2.266v-15.4h-2.662z"/><path d="m161.5 21.278c0-1.0853-.198-2.112-.594-3.08s-.946-1.8113-1.65-2.53-1.548-1.2833-2.53-1.694c-.983-.4253-2.068-.638-3.256-.638s-2.274.2127-3.256.638c-.983.4253-1.834 1.0047-2.552 1.738-.719.7187-1.276 1.562-1.672 2.53s-.594 1.9947-.594 3.08.198 2.112.594 3.08.946 1.8113 1.65 2.53 1.547 1.2907 2.53 1.716c.982.4107 2.068.616 3.256.616s2.273-.2127 3.256-.638c.982-.4253 1.833-.9973 2.552-1.716.718-.7333 1.276-1.584 1.672-2.552s.594-1.9947.594-3.08zm-2.838.044c0 .748-.132 1.4593-.396 2.134-.25.66-.602 1.2393-1.056 1.738-.455.484-1.005.8727-1.65 1.166-.631.2787-1.328.418-2.09.418-.763 0-1.467-.1467-2.112-.44-.646-.2933-1.203-.6893-1.672-1.188-.455-.4987-.814-1.078-1.078-1.738-.25-.6747-.374-1.386-.374-2.134s.124-1.452.374-2.112c.264-.6747.623-1.254 1.078-1.738.454-.4987.997-.8873 1.628-1.166.645-.2933 1.349-.44 2.112-.44.762 0 1.466.1467 2.112.44.645.2933 1.195.6893 1.65 1.188.469.4987.828 1.0853 1.078 1.76.264.66.396 1.364.396 2.112z"/><path d="m180.367 26.866v-6.468h-6.556v2.354h3.938v2.882c-.469.352-1.027.638-1.672.858-.631.2053-1.313.308-2.046.308-.792 0-1.511-.1393-2.156-.418-.631-.2787-1.181-.66-1.65-1.144-.455-.4987-.807-1.0853-1.056-1.76s-.374-1.408-.374-2.2c0-.748.125-1.452.374-2.112.264-.66.616-1.2393 1.056-1.738.455-.4987.983-.8873 1.584-1.166.616-.2933 1.276-.44 1.98-.44.484 0 .924.044 1.32.132.411.0733.785.1833 1.122.33.337.132.66.3007.968.506s.609.4327.902.682l1.716-2.046c-.396-.3373-.807-.6307-1.232-.88-.411-.264-.851-.484-1.32-.66s-.983-.308-1.54-.396c-.543-.1027-1.151-.154-1.826-.154-1.159 0-2.229.2127-3.212.638-.968.4253-1.804 1.0047-2.508 1.738-.704.7187-1.254 1.562-1.65 2.53-.381.968-.572 1.9947-.572 3.08 0 1.1293.191 2.178.572 3.146s.917 1.8113 1.606 2.53c.704.704 1.547 1.2613 2.53 1.672.983.396 2.075.594 3.278.594.675 0 1.32-.066 1.936-.198.616-.1173 1.188-.286 1.716-.506.543-.22 1.041-.4767 1.496-.77.469-.2933.895-.6013 1.276-.924z"/><path d="m198.829 29-4.158-5.83c.543-.1467 1.034-.352 1.474-.616.455-.2787.843-.6087 1.166-.99.323-.396.572-.8433.748-1.342.191-.5133.286-1.0927.286-1.738 0-.748-.132-1.4227-.396-2.024-.264-.616-.645-1.1293-1.144-1.54-.484-.4253-1.085-.748-1.804-.968-.704-.2347-1.496-.352-2.376-.352h-6.864v15.4h2.706v-5.368h3.388l3.784 5.368zm-3.234-10.362c0 .792-.286 1.4227-.858 1.892s-1.342.704-2.31.704h-3.96v-5.17h3.938c1.012 0 1.797.22 2.354.66.557.4253.836 1.0633.836 1.914z"/><path d="m211.934 13.49h-2.508l-6.776 15.51h2.772l1.584-3.718h7.282l1.562 3.718h2.86zm1.364 9.394h-5.302l2.64-6.16z"/><path d="m236.31 17.956v11.044h2.706v-15.4h-2.882l-4.686 7.282-4.686-7.282h-2.882v15.4h2.662v-11l4.818 7.216h.088z"/></g></svg> <svg width="240" height="40" viewBox="0 0 240 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M31 40L27 29.4L23 40H21L26 26.8L22 16.3L13 40H11L21 13.6L16.5 1.8L2 40H0L15.2 0H17.8L22 11L26.2 0H28.8L32.5 9.7L36.2 0H38.8L43 11L47.2 0H49.8L65 40H63L48.5 1.8L44 13.6L54 40H52L43 16.3L39 26.8L44 40H42L38 29.4L34 40H31ZM32.5 15L28 26.7L32.5 38.6L37 26.8L32.5 15ZM27.5 1.8L23 13.6L27 24.2L31.5 12.3L27.5 1.8ZM37.5 1.8L33.5 12.3L38 24.2L42 13.6L37.5 1.8Z" fill="#000000"/>
<path d="M97.7259 17.956V29H100.432V13.6H97.5499L92.8639 20.882L88.1779 13.6H85.2959V29H87.9579V18L92.7759 25.216H92.8639L97.7259 17.956Z" fill="#000000"/>
<path d="M121.687 21.278C121.687 20.1927 121.489 19.166 121.093 18.198C120.697 17.23 120.147 16.3867 119.443 15.668C118.739 14.9493 117.896 14.3847 116.913 13.974C115.931 13.5487 114.845 13.336 113.657 13.336C112.469 13.336 111.384 13.5487 110.401 13.974C109.419 14.3993 108.568 14.9787 107.849 15.712C107.131 16.4307 106.573 17.274 106.177 18.242C105.781 19.21 105.583 20.2367 105.583 21.322C105.583 22.4073 105.781 23.434 106.177 24.402C106.573 25.37 107.123 26.2133 107.827 26.932C108.531 27.6507 109.375 28.2227 110.357 28.648C111.34 29.0587 112.425 29.264 113.613 29.264C114.801 29.264 115.887 29.0513 116.869 28.626C117.852 28.2007 118.703 27.6287 119.421 26.91C120.14 26.1767 120.697 25.326 121.093 24.358C121.489 23.39 121.687 22.3633 121.687 21.278ZM118.849 21.322C118.849 22.07 118.717 22.7813 118.453 23.456C118.204 24.116 117.852 24.6953 117.397 25.194C116.943 25.678 116.393 26.0667 115.747 26.36C115.117 26.6387 114.42 26.778 113.657 26.778C112.895 26.778 112.191 26.6313 111.545 26.338C110.9 26.0447 110.343 25.6487 109.873 25.15C109.419 24.6513 109.059 24.072 108.795 23.412C108.546 22.7373 108.421 22.026 108.421 21.278C108.421 20.53 108.546 19.826 108.795 19.166C109.059 18.4913 109.419 17.912 109.873 17.428C110.328 16.9293 110.871 16.5407 111.501 16.262C112.147 15.9687 112.851 15.822 113.613 15.822C114.376 15.822 115.08 15.9687 115.725 16.262C116.371 16.5553 116.921 16.9513 117.375 17.45C117.845 17.9487 118.204 18.5353 118.453 19.21C118.717 19.87 118.849 20.574 118.849 21.322Z" fill="#000000"/>
<path d="M137.585 24.248L129.335 13.6H126.827V29H129.489V18.044L137.981 29H140.247V13.6H137.585V24.248Z" fill="#000000"/>
<path d="M161.5 21.278C161.5 20.1927 161.302 19.166 160.906 18.198C160.51 17.23 159.96 16.3867 159.256 15.668C158.552 14.9493 157.708 14.3847 156.726 13.974C155.743 13.5487 154.658 13.336 153.47 13.336C152.282 13.336 151.196 13.5487 150.214 13.974C149.231 14.3993 148.38 14.9787 147.662 15.712C146.943 16.4307 146.386 17.274 145.99 18.242C145.594 19.21 145.396 20.2367 145.396 21.322C145.396 22.4073 145.594 23.434 145.99 24.402C146.386 25.37 146.936 26.2133 147.64 26.932C148.344 27.6507 149.187 28.2227 150.17 28.648C151.152 29.0587 152.238 29.264 153.426 29.264C154.614 29.264 155.699 29.0513 156.682 28.626C157.664 28.2007 158.515 27.6287 159.234 26.91C159.952 26.1767 160.51 25.326 160.906 24.358C161.302 23.39 161.5 22.3633 161.5 21.278ZM158.662 21.322C158.662 22.07 158.53 22.7813 158.266 23.456C158.016 24.116 157.664 24.6953 157.21 25.194C156.755 25.678 156.205 26.0667 155.56 26.36C154.929 26.6387 154.232 26.778 153.47 26.778C152.707 26.778 152.003 26.6313 151.358 26.338C150.712 26.0447 150.155 25.6487 149.686 25.15C149.231 24.6513 148.872 24.072 148.608 23.412C148.358 22.7373 148.234 22.026 148.234 21.278C148.234 20.53 148.358 19.826 148.608 19.166C148.872 18.4913 149.231 17.912 149.686 17.428C150.14 16.9293 150.683 16.5407 151.314 16.262C151.959 15.9687 152.663 15.822 153.426 15.822C154.188 15.822 154.892 15.9687 155.538 16.262C156.183 16.5553 156.733 16.9513 157.188 17.45C157.657 17.9487 158.016 18.5353 158.266 19.21C158.53 19.87 158.662 20.574 158.662 21.322Z" fill="#000000"/>
<path d="M180.367 26.866V20.398H173.811V22.752H177.749V25.634C177.28 25.986 176.722 26.272 176.077 26.492C175.446 26.6973 174.764 26.8 174.031 26.8C173.239 26.8 172.52 26.6607 171.875 26.382C171.244 26.1033 170.694 25.722 170.225 25.238C169.77 24.7393 169.418 24.1527 169.169 23.478C168.92 22.8033 168.795 22.07 168.795 21.278C168.795 20.53 168.92 19.826 169.169 19.166C169.433 18.506 169.785 17.9267 170.225 17.428C170.68 16.9293 171.208 16.5407 171.809 16.262C172.425 15.9687 173.085 15.822 173.789 15.822C174.273 15.822 174.713 15.866 175.109 15.954C175.52 16.0273 175.894 16.1373 176.231 16.284C176.568 16.416 176.891 16.5847 177.199 16.79C177.507 16.9953 177.808 17.2227 178.101 17.472L179.817 15.426C179.421 15.0887 179.01 14.7953 178.585 14.546C178.174 14.282 177.734 14.062 177.265 13.886C176.796 13.71 176.282 13.578 175.725 13.49C175.182 13.3873 174.574 13.336 173.899 13.336C172.74 13.336 171.67 13.5487 170.687 13.974C169.719 14.3993 168.883 14.9787 168.179 15.712C167.475 16.4307 166.925 17.274 166.529 18.242C166.148 19.21 165.957 20.2367 165.957 21.322C165.957 22.4513 166.148 23.5 166.529 24.468C166.91 25.436 167.446 26.2793 168.135 26.998C168.839 27.702 169.682 28.2593 170.665 28.67C171.648 29.066 172.74 29.264 173.943 29.264C174.618 29.264 175.263 29.198 175.879 29.066C176.495 28.9487 177.067 28.78 177.595 28.56C178.138 28.34 178.636 28.0833 179.091 27.79C179.56 27.4967 179.986 27.1887 180.367 26.866Z" fill="#000000"/>
<path d="M198.829 29L194.671 23.17C195.214 23.0233 195.705 22.818 196.145 22.554C196.6 22.2753 196.988 21.9453 197.311 21.564C197.634 21.168 197.883 20.7207 198.059 20.222C198.25 19.7087 198.345 19.1293 198.345 18.484C198.345 17.736 198.213 17.0613 197.949 16.46C197.685 15.844 197.304 15.3307 196.805 14.92C196.321 14.4947 195.72 14.172 195.001 13.952C194.297 13.7173 193.505 13.6 192.625 13.6H185.761V29H188.467V23.632H191.855L195.639 29H198.829ZM195.595 18.638C195.595 19.43 195.309 20.0607 194.737 20.53C194.165 20.9993 193.395 21.234 192.427 21.234H188.467V16.064H192.405C193.417 16.064 194.202 16.284 194.759 16.724C195.316 17.1493 195.595 17.7873 195.595 18.638Z" fill="#000000"/>
<path d="M211.934 13.49H209.426L202.65 29H205.422L207.006 25.282H214.288L215.85 29H218.71L211.934 13.49ZM213.298 22.884H207.996L210.636 16.724L213.298 22.884Z" fill="#000000"/>
<path d="M236.31 17.956V29H239.016V13.6H236.134L231.448 20.882L226.762 13.6H223.88V29H226.542V18L231.36 25.216H231.448L236.31 17.956Z" fill="#000000"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -1 +1 @@
<svg viewBox="0 0 147 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><radialGradient id="a" cx="-779.0521" cy="1839.7205" gradientTransform="matrix(0 38.301 44.1228 0 -81154.2578 29839.2441)" gradientUnits="userSpaceOnUse" r="1.0011"><stop offset="0" stop-color="#20c6b7"/><stop offset="1" stop-color="#4d9abf"/></radialGradient><path clip-rule="evenodd" d="m53.37 12.98.12 2.2c1.4-1.7 3.24-2.55 5.53-2.55 3.95 0 5.96 2.27 6.03 6.8v12.57h-4.26v-12.32c0-1.21-.26-2.1-.78-2.68s-1.37-.87-2.55-.87c-1.72 0-3 .78-3.84 2.34v13.53h-4.26v-19.02zm24.38 19.37c-2.7 0-4.89-.85-6.57-2.56-1.68-1.7-2.52-3.98-2.52-6.81v-.53c0-1.9.36-3.59 1.1-5.09.73-1.49 1.76-2.66 3.08-3.49s2.79-1.25 4.42-1.25c2.58 0 4.58.83 5.99 2.48s2.11 3.99 2.11 7.01v1.72h-12.4c.13 1.57.65 2.81 1.57 3.73s2.07 1.37 3.46 1.37c1.95 0 3.54-.79 4.77-2.37l2.3 2.2c-.76 1.14-1.77 2.02-3.04 2.65s-2.69.94-4.27.94zm-.51-16.29c-1.17 0-2.11.41-2.83 1.23s-1.18 1.96-1.38 3.43h8.12v-.32c-.09-1.43-.47-2.51-1.14-3.24-.67-.74-1.59-1.1-2.77-1.1zm16.76-7.7v4.62h3.35v3.16h-3.35v10.62c0 .73.14 1.25.43 1.57s.8.48 1.54.48c.5 0 1-.06 1.49-.18v3.31c-.97.27-1.9.4-2.81.4-3.27 0-4.91-1.81-4.91-5.43v-10.77h-3.12v-3.16h3.12v-4.63zm11.14 23.64h-4.26v-27h4.26zm9.17 0h-4.26v-19.02h4.26zm-4.52-23.96c0-.65.21-1.2.62-1.63.42-.43 1.01-.65 1.78-.65s1.37.22 1.79.65.63.98.63 1.64c0 .64-.21 1.18-.63 1.61s-1.02.64-1.79.64-1.36-.21-1.78-.64c-.41-.44-.62-.98-.62-1.62zm10.66 23.96v-15.86h-2.89v-3.16h2.89v-1.74c0-2.11.58-3.74 1.75-4.89s2.81-1.72 4.91-1.72c.75 0 1.54.11 2.39.32l-.1 3.34c-.54-.1-1.08-.15-1.63-.14-2.04 0-3.05 1.05-3.05 3.15v1.69h3.86v3.16h-3.86v15.85zm17.87-6.12 3.86-12.9h4.54l-7.54 21.9c-1.16 3.2-3.12 4.8-5.89 4.8-.62 0-1.3-.11-2.05-.32v-3.31l.81.05c1.07 0 1.88-.2 2.43-.59.54-.39.97-1.05 1.29-1.98l.61-1.64-6.66-18.93h4.6z" fill="#fff" fill-rule="evenodd"/><path d="m27.89 14.14-.01-.01c-.01 0-.02-.01-.02-.01-.02-.02-.03-.06-.03-.09l.77-4.73 3.62 3.63-3.77 1.6c-.01 0-.02.01-.03.01h-.02s-.01-.01-.02-.02c-.14-.16-.31-.29-.49-.38zm5.26-.29 3.88 3.88c.81.81 1.21 1.21 1.35 1.67.02.07.04.14.05.21l-9.26-3.92s-.01 0-.01-.01c-.04-.02-.08-.03-.08-.07s.04-.06.08-.07l.01-.01zm5.12 7c-.2.38-.59.77-1.25 1.43l-4.37 4.37-5.65-1.18-.03-.01c-.05-.01-.1-.02-.1-.06-.04-.47-.28-.9-.66-1.19-.02-.02-.02-.06-.01-.09v-.01l1.06-6.53v-.02c.01-.05.01-.11.06-.11.46-.06.88-.3 1.16-.67.01-.01.01-.02.03-.03.03-.01.07 0 .1.01zm-6.62 6.8-7.19 7.19 1.23-7.56v-.01c0-.01 0-.02.01-.03.01-.02.04-.03.06-.04h.01c.27-.11.51-.29.69-.52.02-.03.05-.06.09-.06h.03zm-8.71 8.71-.81.81-8.95-12.94s-.01-.01-.01-.01c-.01-.02-.03-.04-.03-.06s.01-.03.02-.04l.01-.01c.03-.04.05-.08.07-.12l.02-.03c.01-.02.03-.05.05-.06s.05-.01.07 0l9.92 2.05c.03 0 .05.02.08.03.01.01.02.03.02.04.14.53.52.97 1.03 1.17.03.01.02.05 0 .08-.01.01-.01.03-.01.05-.12.74-1.19 7.27-1.48 9.04zm-1.69 1.69c-.6.59-.95.9-1.35 1.03-.39.12-.81.12-1.21 0-.47-.15-.87-.55-1.67-1.36l-8.99-8.99 2.35-3.64c.01-.02.02-.03.04-.05s.06-.01.09 0c.54.16 1.12.13 1.64-.08.03-.01.05-.02.07 0l.03.03zm-14.09-10.19-2.06-2.06 4.07-1.74c.01 0 .02-.01.03-.01.03 0 .05.03.07.07.04.06.08.12.13.18l.01.02c.01.02 0 .03-.01.05zm-2.98-2.97-2.61-2.61c-.44-.44-.77-.77-.99-1.04l7.94 1.65h.03c.05.01.1.02.1.06 0 .05-.06.07-.11.09l-.02.01zm-4.05-5c.01-.17.04-.33.09-.5.15-.47.55-.87 1.36-1.67l3.34-3.34c1.54 2.23 3.08 4.46 4.63 6.69.03.04.06.08.03.11-.15.16-.29.34-.4.53-.01.02-.03.05-.05.06-.01.01-.03 0-.04 0zm5.68-6.4 4.49-4.49c.42.19 1.96.83 3.33 1.41 1.04.44 1.99.84 2.29.97.03.01.06.02.07.05.01.02 0 .04 0 .06-.14.66.05 1.35.52 1.83.03.03 0 .07-.03.11l-.01.02-4.56 7.06c-.01.02-.02.04-.04.05s-.06.01-.09 0c-.18-.05-.36-.07-.54-.07-.16 0-.34.03-.52.06-.02 0-.04.01-.05 0-.02-.01-.03-.03-.05-.05zm5.4-5.4 5.81-5.81c.81-.81 1.21-1.21 1.67-1.36.39-.12.81-.12 1.21 0 .47.15.87.55 1.67 1.36l1.26 1.26-4.14 6.4c-.01.02-.02.03-.04.05s-.06.01-.09 0c-.66-.2-1.38-.06-1.92.37-.03.03-.07.01-.1 0-.53-.24-4.73-2.01-5.33-2.27zm12.5-3.67 3.82 3.82-.92 5.7v.02c0 .01 0 .03-.01.04-.01.02-.03.02-.05.03-.2.06-.38.15-.55.27-.01.01-.01.01-.02.02s-.02.02-.04.02c-.01 0-.03 0-.04-.01l-5.82-2.47-.01-.01c-.04-.02-.08-.03-.08-.07-.03-.32-.14-.64-.31-.91-.03-.05-.06-.09-.03-.14zm-3.93 8.6 5.45 2.31c.03.01.06.03.08.06.01.02.01.04 0 .06-.02.08-.03.17-.03.26v.15c0 .04-.04.05-.08.07h-.01c-.86.37-12.13 5.17-12.15 5.17s-.03 0-.05-.02c-.03-.03 0-.07.03-.11 0-.01.01-.01.01-.02l4.48-6.94.01-.01c.03-.04.06-.09.1-.09l.05.01c.1.01.19.03.28.03.68 0 1.31-.33 1.69-.9.01-.02.02-.03.03-.04.04-.01.08 0 .11.01zm-6.25 9.19 12.28-5.24s.02 0 .03.02c.07.07.12.11.18.15l.03.02c.02.01.05.03.05.06v.02l-1.05 6.46v.03c-.01.05-.01.11-.06.11-.57.04-1.08.36-1.37.85v.01c-.01.02-.03.05-.05.06s-.05.01-.07 0l-9.79-2.02c-.02-.02-.16-.53-.18-.53z" fill="url(#a)"/></svg> <svg viewBox="0 0 147 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><radialGradient id="a" cx="-779.0521" cy="1839.7205" gradientTransform="matrix(0 38.301 44.1228 0 -81154.2578 29839.2441)" gradientUnits="userSpaceOnUse" r="1.0011"><stop offset="0" stop-color="#20c6b7"/><stop offset="1" stop-color="#4d9abf"/></radialGradient><path clip-rule="evenodd" d="m53.37 12.98.12 2.2c1.4-1.7 3.24-2.55 5.53-2.55 3.95 0 5.96 2.27 6.03 6.8v12.57h-4.26v-12.32c0-1.21-.26-2.1-.78-2.68s-1.37-.87-2.55-.87c-1.72 0-3 .78-3.84 2.34v13.53h-4.26v-19.02zm24.38 19.37c-2.7 0-4.89-.85-6.57-2.56-1.68-1.7-2.52-3.98-2.52-6.81v-.53c0-1.9.36-3.59 1.1-5.09.73-1.49 1.76-2.66 3.08-3.49s2.79-1.25 4.42-1.25c2.58 0 4.58.83 5.99 2.48s2.11 3.99 2.11 7.01v1.72h-12.4c.13 1.57.65 2.81 1.57 3.73s2.07 1.37 3.46 1.37c1.95 0 3.54-.79 4.77-2.37l2.3 2.2c-.76 1.14-1.77 2.02-3.04 2.65s-2.69.94-4.27.94zm-.51-16.29c-1.17 0-2.11.41-2.83 1.23s-1.18 1.96-1.38 3.43h8.12v-.32c-.09-1.43-.47-2.51-1.14-3.24-.67-.74-1.59-1.1-2.77-1.1zm16.76-7.7v4.62h3.35v3.16h-3.35v10.62c0 .73.14 1.25.43 1.57s.8.48 1.54.48c.5 0 1-.06 1.49-.18v3.31c-.97.27-1.9.4-2.81.4-3.27 0-4.91-1.81-4.91-5.43v-10.77h-3.12v-3.16h3.12v-4.63zm11.14 23.64h-4.26v-27h4.26zm9.17 0h-4.26v-19.02h4.26zm-4.52-23.96c0-.65.21-1.2.62-1.63.42-.43 1.01-.65 1.78-.65s1.37.22 1.79.65.63.98.63 1.64c0 .64-.21 1.18-.63 1.61s-1.02.64-1.79.64-1.36-.21-1.78-.64c-.41-.44-.62-.98-.62-1.62zm10.66 23.96v-15.86h-2.89v-3.16h2.89v-1.74c0-2.11.58-3.74 1.75-4.89s2.81-1.72 4.91-1.72c.75 0 1.54.11 2.39.32l-.1 3.34c-.54-.1-1.08-.15-1.63-.14-2.04 0-3.05 1.05-3.05 3.15v1.69h3.86v3.16h-3.86v15.85zm17.87-6.12 3.86-12.9h4.54l-7.54 21.9c-1.16 3.2-3.12 4.8-5.89 4.8-.62 0-1.3-.11-2.05-.32v-3.31l.81.05c1.07 0 1.88-.2 2.43-.59.54-.39.97-1.05 1.29-1.98l.61-1.64-6.66-18.93h4.6z" fill="#ffffff" fill-rule="evenodd"/><path d="m27.89 14.14-.01-.01c-.01 0-.02-.01-.02-.01-.02-.02-.03-.06-.03-.09l.77-4.73 3.62 3.63-3.77 1.6c-.01 0-.02.01-.03.01h-.02s-.01-.01-.02-.02c-.14-.16-.31-.29-.49-.38zm5.26-.29 3.88 3.88c.81.81 1.21 1.21 1.35 1.67.02.07.04.14.05.21l-9.26-3.92s-.01 0-.01-.01c-.04-.02-.08-.03-.08-.07s.04-.06.08-.07l.01-.01zm5.12 7c-.2.38-.59.77-1.25 1.43l-4.37 4.37-5.65-1.18-.03-.01c-.05-.01-.1-.02-.1-.06-.04-.47-.28-.9-.66-1.19-.02-.02-.02-.06-.01-.09v-.01l1.06-6.53v-.02c.01-.05.01-.11.06-.11.46-.06.88-.3 1.16-.67.01-.01.01-.02.03-.03.03-.01.07 0 .1.01zm-6.62 6.8-7.19 7.19 1.23-7.56v-.01c0-.01 0-.02.01-.03.01-.02.04-.03.06-.04h.01c.27-.11.51-.29.69-.52.02-.03.05-.06.09-.06h.03zm-8.71 8.71-.81.81-8.95-12.94s-.01-.01-.01-.01c-.01-.02-.03-.04-.03-.06s.01-.03.02-.04l.01-.01c.03-.04.05-.08.07-.12l.02-.03c.01-.02.03-.05.05-.06s.05-.01.07 0l9.92 2.05c.03 0 .05.02.08.03.01.01.02.03.02.04.14.53.52.97 1.03 1.17.03.01.02.05 0 .08-.01.01-.01.03-.01.05-.12.74-1.19 7.27-1.48 9.04zm-1.69 1.69c-.6.59-.95.9-1.35 1.03-.39.12-.81.12-1.21 0-.47-.15-.87-.55-1.67-1.36l-8.99-8.99 2.35-3.64c.01-.02.02-.03.04-.05s.06-.01.09 0c.54.16 1.12.13 1.64-.08.03-.01.05-.02.07 0l.03.03zm-14.09-10.19-2.06-2.06 4.07-1.74c.01 0 .02-.01.03-.01.03 0 .05.03.07.07.04.06.08.12.13.18l.01.02c.01.02 0 .03-.01.05zm-2.98-2.97-2.61-2.61c-.44-.44-.77-.77-.99-1.04l7.94 1.65h.03c.05.01.1.02.1.06 0 .05-.06.07-.11.09l-.02.01zm-4.05-5c.01-.17.04-.33.09-.5.15-.47.55-.87 1.36-1.67l3.34-3.34c1.54 2.23 3.08 4.46 4.63 6.69.03.04.06.08.03.11-.15.16-.29.34-.4.53-.01.02-.03.05-.05.06-.01.01-.03 0-.04 0zm5.68-6.4 4.49-4.49c.42.19 1.96.83 3.33 1.41 1.04.44 1.99.84 2.29.97.03.01.06.02.07.05.01.02 0 .04 0 .06-.14.66.05 1.35.52 1.83.03.03 0 .07-.03.11l-.01.02-4.56 7.06c-.01.02-.02.04-.04.05s-.06.01-.09 0c-.18-.05-.36-.07-.54-.07-.16 0-.34.03-.52.06-.02 0-.04.01-.05 0-.02-.01-.03-.03-.05-.05zm5.4-5.4 5.81-5.81c.81-.81 1.21-1.21 1.67-1.36.39-.12.81-.12 1.21 0 .47.15.87.55 1.67 1.36l1.26 1.26-4.14 6.4c-.01.02-.02.03-.04.05s-.06.01-.09 0c-.66-.2-1.38-.06-1.92.37-.03.03-.07.01-.1 0-.53-.24-4.73-2.01-5.33-2.27zm12.5-3.67 3.82 3.82-.92 5.7v.02c0 .01 0 .03-.01.04-.01.02-.03.02-.05.03-.2.06-.38.15-.55.27-.01.01-.01.01-.02.02s-.02.02-.04.02c-.01 0-.03 0-.04-.01l-5.82-2.47-.01-.01c-.04-.02-.08-.03-.08-.07-.03-.32-.14-.64-.31-.91-.03-.05-.06-.09-.03-.14zm-3.93 8.6 5.45 2.31c.03.01.06.03.08.06.01.02.01.04 0 .06-.02.08-.03.17-.03.26v.15c0 .04-.04.05-.08.07h-.01c-.86.37-12.13 5.17-12.15 5.17s-.03 0-.05-.02c-.03-.03 0-.07.03-.11 0-.01.01-.01.01-.02l4.48-6.94.01-.01c.03-.04.06-.09.1-.09l.05.01c.1.01.19.03.28.03.68 0 1.31-.33 1.69-.9.01-.02.02-.03.03-.04.04-.01.08 0 .11.01zm-6.25 9.19 12.28-5.24s.02 0 .03.02c.07.07.12.11.18.15l.03.02c.02.01.05.03.05.06v.02l-1.05 6.46v.03c-.01.05-.01.11-.06.11-.57.04-1.08.36-1.37.85v.01c-.01.02-.03.05-.05.06s-.05.01-.07 0l-9.79-2.02c-.02-.02-.16-.53-.18-.53z" fill="url(#a)"/></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -1 +1 @@
<svg viewBox="0 0 147 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><radialGradient id="a" cx="-779.0521" cy="1839.7205" gradientTransform="matrix(0 38.301 44.1228 0 -81154.2578 29839.2441)" gradientUnits="userSpaceOnUse" r="1.0011"><stop offset="0" stop-color="#20c6b7"/><stop offset="1" stop-color="#4d9abf"/></radialGradient><path clip-rule="evenodd" d="m53.37 12.98.12 2.2c1.4-1.7 3.24-2.55 5.53-2.55 3.95 0 5.96 2.27 6.03 6.8v12.57h-4.26v-12.32c0-1.21-.26-2.1-.78-2.68s-1.37-.87-2.55-.87c-1.72 0-3 .78-3.84 2.34v13.53h-4.26v-19.02zm24.38 19.37c-2.7 0-4.89-.85-6.57-2.56-1.68-1.7-2.52-3.98-2.52-6.81v-.53c0-1.9.36-3.59 1.1-5.09.73-1.49 1.76-2.66 3.08-3.49s2.79-1.25 4.42-1.25c2.58 0 4.58.83 5.99 2.48s2.11 3.99 2.11 7.01v1.72h-12.4c.13 1.57.65 2.81 1.57 3.73s2.07 1.37 3.46 1.37c1.95 0 3.54-.79 4.77-2.37l2.3 2.2c-.76 1.14-1.77 2.02-3.04 2.65s-2.69.94-4.27.94zm-.51-16.29c-1.17 0-2.11.41-2.83 1.23s-1.18 1.96-1.38 3.43h8.12v-.32c-.09-1.43-.47-2.51-1.14-3.24-.67-.74-1.59-1.1-2.77-1.1zm16.76-7.7v4.62h3.35v3.16h-3.35v10.62c0 .73.14 1.25.43 1.57s.8.48 1.54.48c.5 0 1-.06 1.49-.18v3.31c-.97.27-1.9.4-2.81.4-3.27 0-4.91-1.81-4.91-5.43v-10.77h-3.12v-3.16h3.12v-4.63zm11.14 23.64h-4.26v-27h4.26zm9.17 0h-4.26v-19.02h4.26zm-4.52-23.96c0-.65.21-1.2.62-1.63.42-.43 1.01-.65 1.78-.65s1.37.22 1.79.65.63.98.63 1.64c0 .64-.21 1.18-.63 1.61s-1.02.64-1.79.64-1.36-.21-1.78-.64c-.41-.44-.62-.98-.62-1.62zm10.66 23.96v-15.86h-2.89v-3.16h2.89v-1.74c0-2.11.58-3.74 1.75-4.89s2.81-1.72 4.91-1.72c.75 0 1.54.11 2.39.32l-.1 3.34c-.54-.1-1.08-.15-1.63-.14-2.04 0-3.05 1.05-3.05 3.15v1.69h3.86v3.16h-3.86v15.85zm17.87-6.12 3.86-12.9h4.54l-7.54 21.9c-1.16 3.2-3.12 4.8-5.89 4.8-.62 0-1.3-.11-2.05-.32v-3.31l.81.05c1.07 0 1.88-.2 2.43-.59.54-.39.97-1.05 1.29-1.98l.61-1.64-6.66-18.93h4.6z" fill="#0e1e25" fill-rule="evenodd"/><path d="m27.89 14.14-.01-.01c-.01 0-.02-.01-.02-.01-.02-.02-.03-.06-.03-.09l.77-4.73 3.62 3.63-3.77 1.6c-.01 0-.02.01-.03.01h-.02s-.01-.01-.02-.02c-.14-.16-.31-.29-.49-.38zm5.26-.29 3.88 3.88c.81.81 1.21 1.21 1.35 1.67.02.07.04.14.05.21l-9.26-3.92s-.01 0-.01-.01c-.04-.02-.08-.03-.08-.07s.04-.06.08-.07l.01-.01zm5.12 7c-.2.38-.59.77-1.25 1.43l-4.37 4.37-5.65-1.18-.03-.01c-.05-.01-.1-.02-.1-.06-.04-.47-.28-.9-.66-1.19-.02-.02-.02-.06-.01-.09v-.01l1.06-6.53v-.02c.01-.05.01-.11.06-.11.46-.06.88-.3 1.16-.67.01-.01.01-.02.03-.03.03-.01.07 0 .1.01zm-6.62 6.8-7.19 7.19 1.23-7.56v-.01c0-.01 0-.02.01-.03.01-.02.04-.03.06-.04h.01c.27-.11.51-.29.69-.52.02-.03.05-.06.09-.06h.03zm-8.71 8.71-.81.81-8.95-12.94s-.01-.01-.01-.01c-.01-.02-.03-.04-.03-.06s.01-.03.02-.04l.01-.01c.03-.04.05-.08.07-.12l.02-.03c.01-.02.03-.05.05-.06s.05-.01.07 0l9.92 2.05c.03 0 .05.02.08.03.01.01.02.03.02.04.14.53.52.97 1.03 1.17.03.01.02.05 0 .08-.01.01-.01.03-.01.05-.12.74-1.19 7.27-1.48 9.04zm-1.69 1.69c-.6.59-.95.9-1.35 1.03-.39.12-.81.12-1.21 0-.47-.15-.87-.55-1.67-1.36l-8.99-8.99 2.35-3.64c.01-.02.02-.03.04-.05s.06-.01.09 0c.54.16 1.12.13 1.64-.08.03-.01.05-.02.07 0l.03.03zm-14.09-10.19-2.06-2.06 4.07-1.74c.01 0 .02-.01.03-.01.03 0 .05.03.07.07.04.06.08.12.13.18l.01.02c.01.02 0 .03-.01.05zm-2.98-2.97-2.61-2.61c-.44-.44-.77-.77-.99-1.04l7.94 1.65h.03c.05.01.1.02.1.06 0 .05-.06.07-.11.09l-.02.01zm-4.05-5c.01-.17.04-.33.09-.5.15-.47.55-.87 1.36-1.67l3.34-3.34c1.54 2.23 3.08 4.46 4.63 6.69.03.04.06.08.03.11-.15.16-.29.34-.4.53-.01.02-.03.05-.05.06-.01.01-.03 0-.04 0zm5.68-6.4 4.49-4.49c.42.19 1.96.83 3.33 1.41 1.04.44 1.99.84 2.29.97.03.01.06.02.07.05.01.02 0 .04 0 .06-.14.66.05 1.35.52 1.83.03.03 0 .07-.03.11l-.01.02-4.56 7.06c-.01.02-.02.04-.04.05s-.06.01-.09 0c-.18-.05-.36-.07-.54-.07-.16 0-.34.03-.52.06-.02 0-.04.01-.05 0-.02-.01-.03-.03-.05-.05zm5.4-5.4 5.81-5.81c.81-.81 1.21-1.21 1.67-1.36.39-.12.81-.12 1.21 0 .47.15.87.55 1.67 1.36l1.26 1.26-4.14 6.4c-.01.02-.02.03-.04.05s-.06.01-.09 0c-.66-.2-1.38-.06-1.92.37-.03.03-.07.01-.1 0-.53-.24-4.73-2.01-5.33-2.27zm12.5-3.67 3.82 3.82-.92 5.7v.02c0 .01 0 .03-.01.04-.01.02-.03.02-.05.03-.2.06-.38.15-.55.27-.01.01-.01.01-.02.02s-.02.02-.04.02c-.01 0-.03 0-.04-.01l-5.82-2.47-.01-.01c-.04-.02-.08-.03-.08-.07-.03-.32-.14-.64-.31-.91-.03-.05-.06-.09-.03-.14zm-3.93 8.6 5.45 2.31c.03.01.06.03.08.06.01.02.01.04 0 .06-.02.08-.03.17-.03.26v.15c0 .04-.04.05-.08.07h-.01c-.86.37-12.13 5.17-12.15 5.17s-.03 0-.05-.02c-.03-.03 0-.07.03-.11 0-.01.01-.01.01-.02l4.48-6.94.01-.01c.03-.04.06-.09.1-.09l.05.01c.1.01.19.03.28.03.68 0 1.31-.33 1.69-.9.01-.02.02-.03.03-.04.04-.01.08 0 .11.01zm-6.25 9.19 12.28-5.24s.02 0 .03.02c.07.07.12.11.18.15l.03.02c.02.01.05.03.05.06v.02l-1.05 6.46v.03c-.01.05-.01.11-.06.11-.57.04-1.08.36-1.37.85v.01c-.01.02-.03.05-.05.06s-.05.01-.07 0l-9.79-2.02c-.02-.02-.16-.53-.18-.53z" fill="url(#a)"/></svg> <svg viewBox="0 0 147 40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><radialGradient id="a" cx="-779.0521" cy="1839.7205" gradientTransform="matrix(0 38.301 44.1228 0 -81154.2578 29839.2441)" gradientUnits="userSpaceOnUse" r="1.0011"><stop offset="0" stop-color="#20c6b7"/><stop offset="1" stop-color="#4d9abf"/></radialGradient><path clip-rule="evenodd" d="m53.37 12.98.12 2.2c1.4-1.7 3.24-2.55 5.53-2.55 3.95 0 5.96 2.27 6.03 6.8v12.57h-4.26v-12.32c0-1.21-.26-2.1-.78-2.68s-1.37-.87-2.55-.87c-1.72 0-3 .78-3.84 2.34v13.53h-4.26v-19.02zm24.38 19.37c-2.7 0-4.89-.85-6.57-2.56-1.68-1.7-2.52-3.98-2.52-6.81v-.53c0-1.9.36-3.59 1.1-5.09.73-1.49 1.76-2.66 3.08-3.49s2.79-1.25 4.42-1.25c2.58 0 4.58.83 5.99 2.48s2.11 3.99 2.11 7.01v1.72h-12.4c.13 1.57.65 2.81 1.57 3.73s2.07 1.37 3.46 1.37c1.95 0 3.54-.79 4.77-2.37l2.3 2.2c-.76 1.14-1.77 2.02-3.04 2.65s-2.69.94-4.27.94zm-.51-16.29c-1.17 0-2.11.41-2.83 1.23s-1.18 1.96-1.38 3.43h8.12v-.32c-.09-1.43-.47-2.51-1.14-3.24-.67-.74-1.59-1.1-2.77-1.1zm16.76-7.7v4.62h3.35v3.16h-3.35v10.62c0 .73.14 1.25.43 1.57s.8.48 1.54.48c.5 0 1-.06 1.49-.18v3.31c-.97.27-1.9.4-2.81.4-3.27 0-4.91-1.81-4.91-5.43v-10.77h-3.12v-3.16h3.12v-4.63zm11.14 23.64h-4.26v-27h4.26zm9.17 0h-4.26v-19.02h4.26zm-4.52-23.96c0-.65.21-1.2.62-1.63.42-.43 1.01-.65 1.78-.65s1.37.22 1.79.65.63.98.63 1.64c0 .64-.21 1.18-.63 1.61s-1.02.64-1.79.64-1.36-.21-1.78-.64c-.41-.44-.62-.98-.62-1.62zm10.66 23.96v-15.86h-2.89v-3.16h2.89v-1.74c0-2.11.58-3.74 1.75-4.89s2.81-1.72 4.91-1.72c.75 0 1.54.11 2.39.32l-.1 3.34c-.54-.1-1.08-.15-1.63-.14-2.04 0-3.05 1.05-3.05 3.15v1.69h3.86v3.16h-3.86v15.85zm17.87-6.12 3.86-12.9h4.54l-7.54 21.9c-1.16 3.2-3.12 4.8-5.89 4.8-.62 0-1.3-.11-2.05-.32v-3.31l.81.05c1.07 0 1.88-.2 2.43-.59.54-.39.97-1.05 1.29-1.98l.61-1.64-6.66-18.93h4.6z" fill="#0e1e25" fill-rule="evenodd"/><path d="m27.89 14.14-.01-.01c-.01 0-.02-.01-.02-.01-.02-.02-.03-.06-.03-.09l.77-4.73 3.62 3.63-3.77 1.6c-.01 0-.02.01-.03.01h-.02s-.01-.01-.02-.02c-.14-.16-.31-.29-.49-.38zm5.26-.29 3.88 3.88c.81.81 1.21 1.21 1.35 1.67.02.07.04.14.05.21l-9.26-3.92s-.01 0-.01-.01c-.04-.02-.08-.03-.08-.07s.04-.06.08-.07l.01-.01zm5.12 7c-.2.38-.59.77-1.25 1.43l-4.37 4.37-5.65-1.18-.03-.01c-.05-.01-.1-.02-.1-.06-.04-.47-.28-.9-.66-1.19-.02-.02-.02-.06-.01-.09v-.01l1.06-6.53v-.02c.01-.05.01-.11.06-.11.46-.06.88-.3 1.16-.67.01-.01.01-.02.03-.03.03-.01.07 0 .1.01zm-6.62 6.8-7.19 7.19 1.23-7.56v-.01c0-.01 0-.02.01-.03.01-.02.04-.03.06-.04h.01c.27-.11.51-.29.69-.52.02-.03.05-.06.09-.06h.03zm-8.71 8.71-.81.81-8.95-12.94s-.01-.01-.01-.01c-.01-.02-.03-.04-.03-.06s.01-.03.02-.04l.01-.01c.03-.04.05-.08.07-.12l.02-.03c.01-.02.03-.05.05-.06s.05-.01.07 0l9.92 2.05c.03 0 .05.02.08.03.01.01.02.03.02.04.14.53.52.97 1.03 1.17.03.01.02.05 0 .08-.01.01-.01.03-.01.05-.12.74-1.19 7.27-1.48 9.04zm-1.69 1.69c-.6.59-.95.9-1.35 1.03-.39.12-.81.12-1.21 0-.47-.15-.87-.55-1.67-1.36l-8.99-8.99 2.35-3.64c.01-.02.02-.03.04-.05s.06-.01.09 0c.54.16 1.12.13 1.64-.08.03-.01.05-.02.07 0l.03.03zm-14.09-10.19-2.06-2.06 4.07-1.74c.01 0 .02-.01.03-.01.03 0 .05.03.07.07.04.06.08.12.13.18l.01.02c.01.02 0 .03-.01.05zm-2.98-2.97-2.61-2.61c-.44-.44-.77-.77-.99-1.04l7.94 1.65h.03c.05.01.1.02.1.06 0 .05-.06.07-.11.09l-.02.01zm-4.05-5c.01-.17.04-.33.09-.5.15-.47.55-.87 1.36-1.67l3.34-3.34c1.54 2.23 3.08 4.46 4.63 6.69.03.04.06.08.03.11-.15.16-.29.34-.4.53-.01.02-.03.05-.05.06-.01.01-.03 0-.04 0zm5.68-6.4 4.49-4.49c.42.19 1.96.83 3.33 1.41 1.04.44 1.99.84 2.29.97.03.01.06.02.07.05.01.02 0 .04 0 .06-.14.66.05 1.35.52 1.83.03.03 0 .07-.03.11l-.01.02-4.56 7.06c-.01.02-.02.04-.04.05s-.06.01-.09 0c-.18-.05-.36-.07-.54-.07-.16 0-.34.03-.52.06-.02 0-.04.01-.05 0-.02-.01-.03-.03-.05-.05zm5.4-5.4 5.81-5.81c.81-.81 1.21-1.21 1.67-1.36.39-.12.81-.12 1.21 0 .47.15.87.55 1.67 1.36l1.26 1.26-4.14 6.4c-.01.02-.02.03-.04.05s-.06.01-.09 0c-.66-.2-1.38-.06-1.92.37-.03.03-.07.01-.1 0-.53-.24-4.73-2.01-5.33-2.27zm12.5-3.67 3.82 3.82-.92 5.7v.02c0 .01 0 .03-.01.04-.01.02-.03.02-.05.03-.2.06-.38.15-.55.27-.01.01-.01.01-.02.02s-.02.02-.04.02c-.01 0-.03 0-.04-.01l-5.82-2.47-.01-.01c-.04-.02-.08-.03-.08-.07-.03-.32-.14-.64-.31-.91-.03-.05-.06-.09-.03-.14zm-3.93 8.6 5.45 2.31c.03.01.06.03.08.06.01.02.01.04 0 .06-.02.08-.03.17-.03.26v.15c0 .04-.04.05-.08.07h-.01c-.86.37-12.13 5.17-12.15 5.17s-.03 0-.05-.02c-.03-.03 0-.07.03-.11 0-.01.01-.01.01-.02l4.48-6.94.01-.01c.03-.04.06-.09.1-.09l.05.01c.1.01.19.03.28.03.68 0 1.31-.33 1.69-.9.01-.02.02-.03.03-.04.04-.01.08 0 .11.01zm-6.25 9.19 12.28-5.24s.02 0 .03.02c.07.07.12.11.18.15l.03.02c.02.01.05.03.05.06v.02l-1.05 6.46v.03c-.01.05-.01.11-.06.11-.57.04-1.08.36-1.37.85v.01c-.01.02-.03.05-.05.06s-.05.01-.07 0l-9.79-2.02c-.02-.02-.16-.53-.18-.53z" fill="url(#a)"/></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -1 +1 @@
<svg viewBox="0 0 360.27 79.35" xmlns="http://www.w3.org/2000/svg"><g fill="#fff"><path d="m52.16 4.07c-2.4-3.98-7.57-5.26-11.55-2.86-1.17.71-2.16 1.69-2.86 2.86l-11.86 20.31c18.43 9.2 30.6 27.48 31.98 48.04h-8.32c-1.38-17.62-11.98-33.19-27.86-40.94l-10.97 18.97c8.92 4 15.18 12.26 16.63 21.93h-19.12c-.75-.05-1.32-.71-1.27-1.46.01-.19.07-.37.15-.54l5.3-9.01c-1.79-1.5-3.85-2.66-6.05-3.42l-5.24 9.01c-2.28 3.9-.96 8.91 2.95 11.19.03.02.07.04.1.06 1.24.7 2.64 1.07 4.07 1.08h26.18c.98-12.21-4.49-24.04-14.42-31.2l4.16-7.21c12.54 8.61 19.6 23.22 18.56 38.4h22.18c1.05-23-10.21-44.83-29.57-57.3l8.41-14.41c.39-.65 1.23-.87 1.89-.49.96.52 36.57 62.65 37.23 63.37.37.66.13 1.49-.53 1.86-.21.12-.45.18-.7.17h-8.58c.11 2.29.11 4.58 0 6.86h8.61c4.57.03 8.29-3.65 8.32-8.22 0-.03 0-.06 0-.09 0-1.44-.38-2.86-1.12-4.11z"/><path d="m223.91 50.96-26.59-34.34h-6.63v46.04h6.72v-35.29l27.35 35.28h5.87v-46.04h-6.72zm-66.98-8.54h23.84v-5.98h-23.86v-13.86h26.9v-5.98h-33.75v46.05h34.09v-5.98h-27.24zm-28.03-5.84c-9.28-2.23-11.87-4-11.87-8.29 0-3.86 3.41-6.47 8.49-6.47 4.63.14 9.09 1.75 12.74 4.59l3.6-5.1c-4.62-3.62-10.35-5.53-16.22-5.41-9.12 0-15.48 5.41-15.48 13.1 0 8.29 5.41 11.15 15.24 13.55 8.76 2.02 11.44 3.89 11.44 8.09s-3.6 6.79-9.17 6.79c-5.54-.03-10.88-2.12-14.95-5.87l-4.05 4.85c5.22 4.49 11.89 6.95 18.77 6.94 9.87 0 16.22-5.32 16.22-13.53-.06-6.95-4.17-10.68-14.76-13.24zm223.62-19.97-13.86 21.62-13.76-21.62h-8.04l18.18 27.84v18.22h6.92v-18.43l18.31-27.62zm-116.45 6.24h15.08v39.82h6.92v-39.82h15.08v-6.23h-37.06zm69.08 21.84c6.95-1.93 10.81-6.79 10.81-13.75 0-8.85-6.47-14.41-16.9-14.41h-20.47v46.11h6.85v-16.55h11.62l11.68 16.58h8l-12.61-17.69zm-19.73-4.51v-17.48h12.92c6.74 0 10.59 3.19 10.59 8.72s-4.13 8.76-10.52 8.76z"/></g></svg> <svg viewBox="0 0 360.27 79.35" xmlns="http://www.w3.org/2000/svg"><g fill="#FFFFFF"><path d="m52.16 4.07c-2.4-3.98-7.57-5.26-11.55-2.86-1.17.71-2.16 1.69-2.86 2.86l-11.86 20.31c18.43 9.2 30.6 27.48 31.98 48.04h-8.32c-1.38-17.62-11.98-33.19-27.86-40.94l-10.97 18.97c8.92 4 15.18 12.26 16.63 21.93h-19.12c-.75-.05-1.32-.71-1.27-1.46.01-.19.07-.37.15-.54l5.3-9.01c-1.79-1.5-3.85-2.66-6.05-3.42l-5.24 9.01c-2.28 3.9-.96 8.91 2.95 11.19.03.02.07.04.1.06 1.24.7 2.64 1.07 4.07 1.08h26.18c.98-12.21-4.49-24.04-14.42-31.2l4.16-7.21c12.54 8.61 19.6 23.22 18.56 38.4h22.18c1.05-23-10.21-44.83-29.57-57.3l8.41-14.41c.39-.65 1.23-.87 1.89-.49.96.52 36.57 62.65 37.23 63.37.37.66.13 1.49-.53 1.86-.21.12-.45.18-.7.17h-8.58c.11 2.29.11 4.58 0 6.86h8.61c4.57.03 8.29-3.65 8.32-8.22 0-.03 0-.06 0-.09 0-1.44-.38-2.86-1.12-4.11z"/><path d="m223.91 50.96-26.59-34.34h-6.63v46.04h6.72v-35.29l27.35 35.28h5.87v-46.04h-6.72zm-66.98-8.54h23.84v-5.98h-23.86v-13.86h26.9v-5.98h-33.75v46.05h34.09v-5.98h-27.24zm-28.03-5.84c-9.28-2.23-11.87-4-11.87-8.29 0-3.86 3.41-6.47 8.49-6.47 4.63.14 9.09 1.75 12.74 4.59l3.6-5.1c-4.62-3.62-10.35-5.53-16.22-5.41-9.12 0-15.48 5.41-15.48 13.1 0 8.29 5.41 11.15 15.24 13.55 8.76 2.02 11.44 3.89 11.44 8.09s-3.6 6.79-9.17 6.79c-5.54-.03-10.88-2.12-14.95-5.87l-4.05 4.85c5.22 4.49 11.89 6.95 18.77 6.94 9.87 0 16.22-5.32 16.22-13.53-.06-6.95-4.17-10.68-14.76-13.24zm223.62-19.97-13.86 21.62-13.76-21.62h-8.04l18.18 27.84v18.22h6.92v-18.43l18.31-27.62zm-116.45 6.24h15.08v39.82h6.92v-39.82h15.08v-6.23h-37.06zm69.08 21.84c6.95-1.93 10.81-6.79 10.81-13.75 0-8.85-6.47-14.41-16.9-14.41h-20.47v46.11h6.85v-16.55h11.62l11.68 16.58h8l-12.61-17.69zm-19.73-4.51v-17.48h12.92c6.74 0 10.59 3.19 10.59 8.72s-4.13 8.76-10.52 8.76z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -1 +1 @@
<svg viewBox="0 0 360.27 79.35" xmlns="http://www.w3.org/2000/svg"><g fill="#362d59"><path d="m52.16 4.07c-2.4-3.98-7.57-5.26-11.55-2.86-1.17.71-2.16 1.69-2.86 2.86l-11.86 20.31c18.43 9.2 30.6 27.48 31.98 48.04h-8.32c-1.38-17.62-11.98-33.19-27.86-40.94l-10.97 18.97c8.92 4 15.18 12.26 16.63 21.93h-19.12c-.75-.05-1.32-.71-1.27-1.46.01-.19.07-.37.15-.54l5.3-9.01c-1.79-1.5-3.85-2.66-6.05-3.42l-5.24 9.01c-2.28 3.9-.96 8.91 2.95 11.19.03.02.07.04.1.06 1.24.7 2.64 1.07 4.07 1.08h26.18c.98-12.21-4.49-24.04-14.42-31.2l4.16-7.21c12.54 8.61 19.6 23.22 18.56 38.4h22.18c1.05-23-10.21-44.83-29.57-57.3l8.41-14.41c.39-.65 1.23-.87 1.89-.49.96.52 36.57 62.65 37.23 63.37.37.66.13 1.49-.53 1.86-.21.12-.45.18-.7.17h-8.58c.11 2.29.11 4.58 0 6.86h8.61c4.57.03 8.29-3.65 8.32-8.22 0-.03 0-.06 0-.09 0-1.44-.38-2.86-1.12-4.11z"/><path d="m223.91 50.96-26.59-34.34h-6.63v46.04h6.72v-35.29l27.35 35.28h5.87v-46.04h-6.72zm-66.98-8.54h23.84v-5.98h-23.86v-13.86h26.9v-5.98h-33.75v46.05h34.09v-5.98h-27.24zm-28.03-5.84c-9.28-2.23-11.87-4-11.87-8.29 0-3.86 3.41-6.47 8.49-6.47 4.63.14 9.09 1.75 12.74 4.59l3.6-5.1c-4.62-3.62-10.35-5.53-16.22-5.41-9.12 0-15.48 5.41-15.48 13.1 0 8.29 5.41 11.15 15.24 13.55 8.76 2.02 11.44 3.89 11.44 8.09s-3.6 6.79-9.17 6.79c-5.54-.03-10.88-2.12-14.95-5.87l-4.05 4.85c5.22 4.49 11.89 6.95 18.77 6.94 9.87 0 16.22-5.32 16.22-13.53-.06-6.95-4.17-10.68-14.76-13.24zm223.62-19.97-13.86 21.62-13.76-21.62h-8.04l18.18 27.84v18.22h6.92v-18.43l18.31-27.62zm-116.45 6.24h15.08v39.82h6.92v-39.82h15.08v-6.23h-37.06zm69.08 21.84c6.95-1.93 10.81-6.79 10.81-13.75 0-8.85-6.47-14.41-16.9-14.41h-20.47v46.11h6.85v-16.55h11.62l11.68 16.58h8l-12.61-17.69zm-19.73-4.51v-17.48h12.92c6.74 0 10.59 3.19 10.59 8.72s-4.13 8.76-10.52 8.76z"/></g></svg> <svg viewBox="0 0 360.27 79.35" xmlns="http://www.w3.org/2000/svg"><g fill="#362d59"><path d="m52.16 4.07c-2.4-3.98-7.57-5.26-11.55-2.86-1.17.71-2.16 1.69-2.86 2.86l-11.86 20.31c18.43 9.2 30.6 27.48 31.98 48.04h-8.32c-1.38-17.62-11.98-33.19-27.86-40.94l-10.97 18.97c8.92 4 15.18 12.26 16.63 21.93h-19.12c-.75-.05-1.32-.71-1.27-1.46.01-.19.07-.37.15-.54l5.3-9.01c-1.79-1.5-3.85-2.66-6.05-3.42l-5.24 9.01c-2.28 3.9-.96 8.91 2.95 11.19.03.02.07.04.1.06 1.24.7 2.64 1.07 4.07 1.08h26.18c.98-12.21-4.49-24.04-14.42-31.2l4.16-7.21c12.54 8.61 19.6 23.22 18.56 38.4h22.18c1.05-23-10.21-44.83-29.57-57.3l8.41-14.41c.39-.65 1.23-.87 1.89-.49.96.52 36.57 62.65 37.23 63.37.37.66.13 1.49-.53 1.86-.21.12-.45.18-.7.17h-8.58c.11 2.29.11 4.58 0 6.86h8.61c4.57.03 8.29-3.65 8.32-8.22 0-.03 0-.06 0-.09 0-1.44-.38-2.86-1.12-4.11z"/><path d="m223.91 50.96-26.59-34.34h-6.63v46.04h6.72v-35.29l27.35 35.28h5.87v-46.04h-6.72zm-66.98-8.54h23.84v-5.98h-23.86v-13.86h26.9v-5.98h-33.75v46.05h34.09v-5.98h-27.24zm-28.03-5.84c-9.28-2.23-11.87-4-11.87-8.29 0-3.86 3.41-6.47 8.49-6.47 4.63.14 9.09 1.75 12.74 4.59l3.6-5.1c-4.62-3.62-10.35-5.53-16.22-5.41-9.12 0-15.48 5.41-15.48 13.1 0 8.29 5.41 11.15 15.24 13.55 8.76 2.02 11.44 3.89 11.44 8.09s-3.6 6.79-9.17 6.79c-5.54-.03-10.88-2.12-14.95-5.87l-4.05 4.85c5.22 4.49 11.89 6.95 18.77 6.94 9.87 0 16.22-5.32 16.22-13.53-.06-6.95-4.17-10.68-14.76-13.24zm223.62-19.97-13.86 21.62-13.76-21.62h-8.04l18.18 27.84v18.22h6.92v-18.43l18.31-27.62zm-116.45 6.24h15.08v39.82h6.92v-39.82h15.08v-6.23h-37.06zm69.08 21.84c6.95-1.93 10.81-6.79 10.81-13.75 0-8.85-6.47-14.41-16.9-14.41h-20.47v46.11h6.85v-16.55h11.62l11.68 16.58h8l-12.61-17.69zm-19.73-4.51v-17.48h12.92c6.74 0 10.59 3.19 10.59 8.72s-4.13 8.76-10.52 8.76z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -1 +1 @@
<svg fill="#fff" viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99s-19 7.2-19 18 8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg> <svg fill="#ffffff" viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1 +1 @@
<svg viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99s-19 7.2-19 18 8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg> <svg viewBox="0 0 284 65" xmlns="http://www.w3.org/2000/svg"><path d="m37.59.25 36.95 64h-73.9z"/><path d="m129.97 5.25-27.71 48-27.71-48h10.39l17.32 30 17.32-30z"/><path d="m188.88 17.25v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10v14.8h-9v-34h9v9.2c0-5.08 5.91-9.2 13.2-9.2z"/><path d="m200.88 34.25c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10z"/><path d="m274.36 5.25h9v46h-9z"/><path d="m268.36 34.24c0-10.79-7.96-17.99-19-17.99-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5zm-28.45-3.49c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/><path d="m141.68 16.25c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5z"/></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

22
.github/labeler.yml vendored
View file

@ -1,37 +1,37 @@
# See https://github.com/actions/labeler # See https://github.com/actions/labeler
'pkg: example': example:
- examples/**/* - examples/**/*
'🚨 action': '🚨 action':
- .github/workflows/** - .github/workflows/**
'pkg: astro': core:
- packages/astro/** - packages/astro/**
'pkg: create-astro': create-astro:
- packages/create-astro/** - packages/create-astro/**
'feat: markdown': markdown:
- packages/markdown/** - packages/markdown/**
'pkg: integration': integration:
- packages/integrations/** - packages/integrations/**
'pkg: lit': framework-lit:
- packages/integrations/lit/** - packages/integrations/lit/**
'pkg: preact': framework-preact:
- packages/integrations/preact/** - packages/integrations/preact/**
'pkg: react': framework-react:
- packages/integrations/react/** - packages/integrations/react/**
'pkg: solid': framework-solid:
- packages/integrations/solid/** - packages/integrations/solid/**
'pkg: svelte': framework-svelte:
- packages/integrations/svelte/** - packages/integrations/svelte/**
'pkg: vue': framework-vue:
- packages/integrations/vue/** - packages/integrations/vue/**

View file

@ -1,5 +1,5 @@
import { build } from 'esbuild'; import { build } from 'esbuild';
import { existsSync } from 'node:fs'; import { existsSync } from 'fs';
const CLIENT_RUNTIME_PATH = 'packages/astro/src/runtime/client/'; const CLIENT_RUNTIME_PATH = 'packages/astro/src/runtime/client/';
@ -23,17 +23,15 @@ export default async function checkBundleSize({ github, context }) {
...context.repo, ...context.repo,
pull_number: PR_NUM, pull_number: PR_NUM,
}); });
const clientRuntimeFiles = files.filter((file) => { const clientRuntimeFiles = files.filter(({ filename }) => filename.startsWith(CLIENT_RUNTIME_PATH));
return file.filename.startsWith(CLIENT_RUNTIME_PATH) && file.status !== 'removed'
});
if (clientRuntimeFiles.length === 0) return; if (clientRuntimeFiles.length === 0) return;
const table = [ const table = [
'| File | Old Size | New Size | Change |', '| File | Old Size | New Size | Change |',
'| ---- | -------- | -------- | ------ |', '| ---- | -------- | -------- | ------ |',
]; ];
const output = await bundle(clientRuntimeFiles); const output = await bundle(clientRuntimeFiles);
for (let [filename, { oldSize, newSize, sourceFile }] of Object.entries(output)) { for (let [filename, { oldSize, newSize, sourceFile }] of Object.entries(output)) {
filename = ['idle', 'load', 'media', 'only', 'visible'].includes(filename) ? `client:${filename}` : filename; filename = ['idle', 'load', 'media', 'only', 'visible'].includes(filename) ? `client:${filename}` : filename;
const prefix = (newSize - oldSize) === 0 ? '' : (newSize - oldSize) > 0 ? '+ ' : '- '; const prefix = (newSize - oldSize) === 0 ? '' : (newSize - oldSize) > 0 ? '+ ' : '- ';
@ -60,7 +58,7 @@ ${table.join('\n')}`,
} }
async function bundle(files) { async function bundle(files) {
const { metafile } = await build({ const { metafile } = await build({
entryPoints: [...files.map(({ filename }) => filename), ...files.map(({ filename }) => `main/${filename}`).filter(f => existsSync(f))], entryPoints: [...files.map(({ filename }) => filename), ...files.map(({ filename }) => `main/${filename}`).filter(f => existsSync(f))],
bundle: true, bundle: true,

View file

@ -43,11 +43,8 @@ jobs:
- name: Get bench command - name: Get bench command
id: bench-command id: bench-command
env:
# protects from untrusted user input and command injection
COMMENT: ${{ github.event.comment.body }}
run: | run: |
benchcmd=$(echo "$COMMENT" | grep '!bench' | awk -F ' ' '{print $2}') benchcmd=$(echo "${{ github.event.comment.body }}" | grep '!bench' | awk -F ' ' '{print $2}')
echo "bench=$benchcmd" >> $GITHUB_OUTPUT echo "bench=$benchcmd" >> $GITHUB_OUTPUT
shell: bash shell: bash

View file

@ -1,53 +1,48 @@
name: Check mergeability name: Check mergeability
on: pull_request on: pull_request # run on pull request events
permissions: permissions:
# grant write permission on the pull-requests endpoint
pull-requests: write pull-requests: write
checks: write
statuses: write
jobs: jobs:
check: check:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check if there is already a block on this PR - name: Check if there is already a block on this PR
id: blocked id: set-blocks
uses: actions/github-script@v6 uses: actions/github-script@v6
env:
issue_number: ${{ github.event.number }}
with: with:
script: | script: |
const { data: reviews } = await github.rest.pulls.listReviews({ const url = 'https://api.github.com/repos/' + context.repo.owner + '/' + context.repo.repo + '/pulls/' + context.issue.number + '/reviews';
owner: context.repo.owner, console.log('reviews URL', url);
repo: context.repo.repo, const result = await github.request(url);
pull_number: process.env.issue_number, console.log(result);
}); const reviews = result.data;
for(const review of reviews) {
for (const review of reviews) { if(review.user.id === 41898282 && review.state === 'CHANGES_REQUESTED') {
if (review.user.login === 'github-actions[bot]' && review.state === 'CHANGES_REQUESTED') { return 'block';
return 'true'
} }
} }
return 'false' return '';
result-encoding: string result-encoding: string
- uses: actions/checkout@v3 - uses: actions/checkout@v3
if: steps.blocked.outputs.result != 'true' if: steps.set-blocks.outputs.blocks == ''
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Get changed files in the .changeset folder - name: Get changed files in the .changeset folder
id: changed-files id: changed-files
uses: tj-actions/changed-files@v35 uses: tj-actions/changed-files@v29
if: steps.blocked.outputs.result != 'true' if: steps.set-blocks.outputs.blocks == ''
with: with:
files: | files: |
.changeset/**/*.md .changeset/**/*.md
- name: Check if any changesets contain minor changes - name: Check if any changesets contain minor changes
id: minor id: find-blockers
if: steps.blocked.outputs.result != 'true' if: steps.set-blocks.outputs.blocks == ''
run: | run: |
echo "Checking for changesets marked as minor" echo "Checking for changesets marked as minor"
echo '::set-output name=found::false' echo '::set-output name=found::false'
@ -59,30 +54,38 @@ jobs:
done done
- name: Add label - name: Add label
uses: actions/github-script@v6 if: steps.find-blockers.outputs.found == 'true'
if: steps.minor.outputs.found == 'true' run: |
env: curl --request POST \
issue_number: ${{ github.event.number }} --url https://api.github.com/repos/${{github.repository}}/issues/${{github.event.number}}/labels \
with: --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
script: | --header 'content-type: application/json' \
github.rest.issues.addLabels({ -d '["semver minor"]'
issue_number: process.env.issue_number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ['semver: minor']
});
- name: Change PR Status
uses: actions/github-script@v6 - name: Find Comment
if: steps.minor.outputs.found == 'true' uses: peter-evans/find-comment@v2
env: id: fc
issue_number: ${{ github.event.number }}
with: with:
script: | issue-number: ${{ github.event.number }}
github.rest.pulls.createReview({ comment-author: 'github-actions[bot]'
owner: context.repo.owner,
repo: context.repo.repo, - name: Send PR review
pull_number: process.env.issue_number, if: steps.find-blockers.outputs.found == 'true'
event: 'REQUEST_CHANGES', uses: peter-evans/create-or-update-comment@v3
body: 'This PR is blocked because it contains a `minor` changeset. A reviewer will merge this at the next release if approved.' continue-on-error: true
}); with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.number }}
body: |
This PR is blocked because it contains a `minor` changeset. A reviewer will merge this at the next release if approved.
edit-mode: replace
- name: Change PR status
if: steps.find-blockers.outputs.found == 'true'
run: |
curl --request POST \
--url https://api.github.com/repos/${{github.repository}}/pulls/${{github.event.number}}/reviews \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
-d '{"event":"REQUEST_CHANGES"}'

View file

@ -23,7 +23,6 @@ jobs:
check: check:
name: astro check name: astro check
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 7
steps: steps:
- name: Check out repository - name: Check out repository
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -34,7 +33,7 @@ jobs:
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 18 node-version: 16
cache: "pnpm" cache: "pnpm"
- name: Install dependencies - name: Install dependencies

View file

@ -10,7 +10,6 @@ on:
paths-ignore: paths-ignore:
- ".vscode/**" - ".vscode/**"
- "**/*.md" - "**/*.md"
- ".github/ISSUE_TEMPLATE/**"
# Automatically cancel older in-progress jobs on the same branch # Automatically cancel older in-progress jobs on the same branch
concurrency: concurrency:
@ -30,6 +29,53 @@ env:
NODE_OPTIONS: --max-old-space-size=6144 NODE_OPTIONS: --max-old-space-size=6144
jobs: jobs:
lint:
name: Lint
timeout-minutes: 3
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
cache: "pnpm"
- name: Install dependencies
run: pnpm install
# Lint autofix cannot run on forks, so just skip those! See https://github.com/wearerequired/lint-action/issues/13
- name: Lint (External)
if: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.owner.login != github.repository_owner }}
run: pnpm run lint
# Otherwise, run lint autofixer
- name: Lint
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.owner.login == github.repository_owner }}
uses: wearerequired/lint-action@v2.1.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
eslint: true
eslint_extensions: js,ts,cts,mts,cjs,mjs
prettier: false
auto_fix: false
git_name: fredkbot
git_email: fred+astrobot@astro.build
commit_message: "chore(lint): ${linter} fix"
github_token: ${{ secrets.GITHUB_TOKEN }}
neutral_check_on_warning: true
# Checks that the formatter runs successfully on all files
# In the future, we may have this fail PRs on unformatted code
- name: Format Check
run: pnpm run format --check
# Build primes out Turbo build cache and pnpm cache # Build primes out Turbo build cache and pnpm cache
build: build:
name: "Build: ${{ matrix.os }}" name: "Build: ${{ matrix.os }}"
@ -38,7 +84,7 @@ jobs:
strategy: strategy:
matrix: matrix:
OS: [ubuntu-latest, windows-latest] OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [18] NODE_VERSION: [16]
fail-fast: true fail-fast: true
steps: steps:
# Disable crlf so all OS can share the same Turbo cache # Disable crlf so all OS can share the same Turbo cache
@ -61,45 +107,11 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: pnpm install run: pnpm install
# Only build in ubuntu as windows can share the build cache. # Only build in ubuntu as windows can share the build cache
# Also only build in core repo as forks don't have access to the Turbo cache.
- name: Build Packages - name: Build Packages
if: ${{ matrix.os == 'ubuntu-latest' && github.repository_owner == 'withastro' }} if: ${{ matrix.os == 'ubuntu-latest' }}
run: pnpm run build run: pnpm run build
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 5
needs: build
steps:
- name: Disable git crlf
run: git config --global core.autocrlf false
- name: Checkout
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build Packages
run: pnpm run build
- name: Lint
run: pnpm run lint
- name: Format Check
run: pnpm run format --check
test: test:
name: "Test: ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})" name: "Test: ${{ matrix.os }} (node@${{ matrix.NODE_VERSION }})"
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
@ -108,12 +120,12 @@ jobs:
strategy: strategy:
matrix: matrix:
OS: [ubuntu-latest] OS: [ubuntu-latest]
NODE_VERSION: [18, 20.5.1] NODE_VERSION: [16, 18]
include: include:
- os: macos-latest - os: macos-latest
NODE_VERSION: 18 NODE_VERSION: 16
- os: windows-latest - os: windows-latest
NODE_VERSION: 18.17.1 NODE_VERSION: 16
fail-fast: false fail-fast: false
env: env:
NODE_VERSION: ${{ matrix.NODE_VERSION }} NODE_VERSION: ${{ matrix.NODE_VERSION }}
@ -133,6 +145,11 @@ jobs:
node-version: ${{ matrix.NODE_VERSION }} node-version: ${{ matrix.NODE_VERSION }}
cache: "pnpm" cache: "pnpm"
- name: Use Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.26.1
- name: Install dependencies - name: Install dependencies
run: pnpm install run: pnpm install
@ -150,7 +167,7 @@ jobs:
strategy: strategy:
matrix: matrix:
OS: [ubuntu-latest, windows-latest] OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [18.17.1] NODE_VERSION: [16]
fail-fast: false fail-fast: false
env: env:
NODE_VERSION: ${{ matrix.NODE_VERSION }} NODE_VERSION: ${{ matrix.NODE_VERSION }}
@ -187,7 +204,7 @@ jobs:
strategy: strategy:
matrix: matrix:
OS: [ubuntu-latest, windows-latest] OS: [ubuntu-latest, windows-latest]
NODE_VERSION: [18] NODE_VERSION: [16]
env: env:
NODE_VERSION: ${{ matrix.NODE_VERSION }} NODE_VERSION: ${{ matrix.NODE_VERSION }}
steps: steps:
@ -225,24 +242,6 @@ jobs:
- name: Remove docs translations except for English and Korean - name: Remove docs translations except for English and Korean
run: find smoke/docs/src/content/docs ! -name 'en' ! -name 'ko' -type d -mindepth 1 -maxdepth 1 -exec rm -rf {} + run: find smoke/docs/src/content/docs ! -name 'en' ! -name 'ko' -type d -mindepth 1 -maxdepth 1 -exec rm -rf {} +
- name: Check if docs changed
id: changes
uses: dorny/paths-filter@v2
with:
filters: |
docs:
- 'packages/integrations/*/README.md'
- 'packages/astro/src/@types/astro.ts'
- 'packages/astro/src/core/errors/errors-data.ts'
- name: Build autogenerated docs pages from current astro branch
if: ${{ steps.changes.outputs.docs == 'true' }}
run: cd smoke/docs && pnpm docgen && pnpm docgen:errors && pnpm docgen:integrations
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SOURCE_REPO: ${{ github.event.pull_request.head.repo.full_name || github.event.repository.full_name }}
SOURCE_BRANCH: ${{ github.head_ref || github.ref_name }}
- name: Test - name: Test
run: pnpm run test:smoke run: pnpm run test:smoke
env: env:

View file

@ -1,44 +0,0 @@
name: Cleanup cache
on:
schedule:
- cron: "0 11 * * *"
pull_request:
types:
- closed
jobs:
cleanup:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Cleanup caches older than 5 days
if: github.event_name == 'schedule'
uses: MyAlbum/purge-cache@v2
with:
max-age: 432000
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#force-deleting-cache-entries
- name: Cleanup on PR close
if: github.event_name == 'pull_request'
run: |
gh extension install actions/gh-actions-cache
REPO=${{ github.repository }}
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
echo "Fetching list of cache key"
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH -L 100 | cut -f 1 )
## Setting this to not fail the workflow while deleting cache keys.
set +e
echo "Deleting caches..."
for cacheKey in $cacheKeysForPR
do
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
done
echo "Done"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,4 +1,4 @@
name: Format name: "Format Code"
on: on:
workflow_dispatch: workflow_dispatch:
@ -7,9 +7,33 @@ on:
- main - main
jobs: jobs:
prettier: format:
if: github.repository_owner == 'withastro' if: github.repository_owner == 'withastro'
uses: withastro/automation/.github/workflows/format.yml@main runs-on: ubuntu-latest
with: env:
command: "format:ci" NODE_OPTIONS: "--max_old_space_size=4096"
secrets: inherit steps:
- name: Check out code using Git
uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }}
# Needs access to push to main
token: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Format code
run: pnpm run format:ci
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "[ci] format"
branch: ${{ github.head_ref }}
commit_user_name: fredkbot
commit_user_email: fred+astrobot@astro.build

View file

@ -1,30 +0,0 @@
name: Issue Labeled
on:
issues:
types: [labeled]
jobs:
reply-labeled:
if: github.repository == 'withastro/astro'
runs-on: ubuntu-latest
steps:
- name: remove triage
if: contains(github.event.label.description, '(priority)') && contains(github.event.issue.labels.*.name, 'needs triage')
uses: actions-cool/issues-helper@v3
with:
actions: "remove-labels"
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
labels: "needs triage"
- name: needs repro
if: github.event.label.name == 'needs repro'
uses: actions-cool/issues-helper@v3
with:
actions: "create-comment, remove-labels"
token: ${{ secrets.GITHUB_TOKEN }}
issue-number: ${{ github.event.issue.number }}
body: |
Hello @${{ github.event.issue.user.login }}. Please provide a [minimal reproduction](https://stackoverflow.com/help/minimal-reproducible-example) using a GitHub repository or [StackBlitz](https://astro.new). Issues marked with `needs repro` will be closed if they have no activity within 3 days.
labels: "needs triage"

View file

@ -1,18 +0,0 @@
name: Close Issues (needs repro)
on:
schedule:
- cron: "0 0 * * *"
jobs:
close-issues:
if: github.repository == 'withastro/astro'
runs-on: ubuntu-latest
steps:
- name: needs repro
uses: actions-cool/issues-helper@v3
with:
actions: "close-issues"
token: ${{ secrets.GITHUB_TOKEN }}
labels: "needs repro"
inactive-day: 3

View file

@ -1,23 +0,0 @@
name: Label issues
on:
issues:
types:
- reopened
- opened
jobs:
label_issues:
runs-on: ubuntu-latest
if: github.repository == 'withastro/astro'
permissions:
issues: write
steps:
- uses: actions/github-script@v6
with:
script: |
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: ["needs triage"]
})

34
.github/workflows/issue.yml vendored Normal file
View file

@ -0,0 +1,34 @@
name: Auto Assign Issues to Project
on:
issues:
types: [opened]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
auto_assign_issues:
runs-on: ubuntu-latest
name: Auto-assign new issues to projects
steps:
- name: Assign Bugs to the Bug Tracker
uses: srggrs/assign-one-project-github-action@1.3.1
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '🐛 BUG:')
with:
project: 'https://github.com/withastro/astro/projects/2'
column_name: 'Needs Triage'
- name: Assign RFCs to the RFC Tracker
uses: srggrs/assign-one-project-github-action@1.3.1
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '💡 RFC:')
with:
project: 'https://github.com/withastro/astro/projects/3'
column_name: 'Discussing'
- name: Assign RFCs to the Docs Tracker
uses: srggrs/assign-one-project-github-action@1.3.1
if: github.event.action == 'opened' && startsWith(github.event.issue.title, '📘 DOC:')
with:
project: 'https://github.com/withastro/astro/projects/5'
column_name: 'TODO'

View file

@ -17,12 +17,22 @@ concurrency:
jobs: jobs:
congrats: congrats:
name: congratsbot name: congratsbot
if: ${{ github.repository_owner == 'withastro' && github.event.head_commit.message != '[ci] format' }} if: ${{ github.repository_owner == 'withastro' }}
uses: withastro/automation/.github/workflows/congratsbot.yml@main runs-on: ubuntu-latest
with: steps:
EMOJIS: '🎉,🎊,🧑‍🚀,🥳,🙌,🚀,👏,<:houston_golden:1068575433647456447>,<:astrocoin:894990669515489301>,<:astro_pride:1130501345326157854>' - id: setup
secrets: env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_CONGRATS }} MESSAGE: ${{ github.event.commits[0].message }}
run: |
TRIMMED=$(echo "$MESSAGE" | sed '1!d;q')
echo "::set-output name=COMMIT_MSG::${TRIMMED}"
- name: Send a Discord notification when a PR is merged
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK_CONGRATS }}
# DISCORD_AVATAR: ${{ github.event.pull_request.user.avatar_url }}
uses: Ilshidur/action-discord@0.3.2
with:
args: "**Merged!** ${{ github.event.commits[0].author.name }}: [`${{ steps.setup.outputs.COMMIT_MSG }}`](<https://github.com/withastro/astro/commit/${{ github.event.commits[0].id }}>)"
check_for_update: check_for_update:
name: Check for Updates name: Check for Updates
@ -38,7 +48,7 @@ jobs:
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 18 node-version: 16
cache: "pnpm" cache: "pnpm"
- name: Install dependencies - name: Install dependencies

View file

@ -1,13 +1,76 @@
name: Nightly name: "Nightly"
on: on:
schedule: schedule:
# Run every Monday at 12:00 UTC # * is a special character in YAML so you have to quote this string
- cron: "0 12 * * 1" - cron: "0 12 * * *"
workflow_dispatch: workflow_dispatch:
jobs: jobs:
stat:
if: github.repository_owner == 'withastro'
runs-on: ubuntu-latest
steps:
- name: Check out code using Git
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Collect stats
run: node scripts/stats/index.js
env:
# Needs access to collect stats from the GitHub API
GITHUB_TOKEN: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "[ci] collect stats"
branch: ${{ github.head_ref }}
# Needs access to push to main
token: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
lockfile: lockfile:
if: github.repository_owner == 'withastro' if: github.repository_owner == 'withastro'
uses: withastro/automation/.github/workflows/lockfile.yml@main runs-on: ubuntu-latest
secrets: inherit steps:
- name: Check out code using Git
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 16
cache: "pnpm"
- name: Delete the existing pnpm-lock.yaml file
run: rm pnpm-lock.yaml
- name: Create a fresh pnpm lockfile (no install)
run: pnpm install --lockfile-only
- name: Create Pull Request
id: createpr
uses: peter-evans/create-pull-request@v3
with:
branch: ci/lockfile
# Access token is needed to trigger CI on this PR
token: ${{ secrets.FREDKBOT_GITHUB_TOKEN }}
commit-message: "[ci] update lockfile"
title: "[ci] update lockfile"
body: >
This PR is auto-generated by a nightly GitHub action.
It should automatically be merged if tests pass.

View file

@ -5,8 +5,6 @@ on:
branches: branches:
- main - main
- "1-legacy" - "1-legacy"
- "2-legacy"
- next
defaults: defaults:
run: run:
@ -22,9 +20,6 @@ jobs:
name: Changelog PR or Release name: Changelog PR or Release
if: ${{ github.repository_owner == 'withastro' }} if: ${{ github.repository_owner == 'withastro' }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -34,7 +29,7 @@ jobs:
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 18 node-version: 16
cache: "pnpm" cache: "pnpm"
- name: Install dependencies - name: Install dependencies

View file

@ -37,7 +37,7 @@ jobs:
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 18 node-version: 16
cache: "pnpm" cache: "pnpm"
- name: Install dependencies - name: Install dependencies

View file

@ -19,11 +19,6 @@ jobs:
name: Create a snapshot release of a pull request name: Create a snapshot release of a pull request
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!preview') }} if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!preview') }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
issues: write
pull-requests: write
steps: steps:
- name: "Check if user has admin access (only admins can publish snapshot releases)." - name: "Check if user has admin access (only admins can publish snapshot releases)."
uses: "lannonbr/repo-permission-check-action@2.0.0" uses: "lannonbr/repo-permission-check-action@2.0.0"
@ -63,7 +58,7 @@ jobs:
- name: Setup Node - name: Setup Node
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 18 node-version: 16
registry-url: "https://registry.npmjs.org" registry-url: "https://registry.npmjs.org"
cache: "pnpm" cache: "pnpm"
@ -86,8 +81,6 @@ jobs:
id: publish id: publish
run: | run: |
pnpm run release --tag next--${{ steps.getSnapshotName.outputs.result }} > publish.output.txt 2>&1 pnpm run release --tag next--${{ steps.getSnapshotName.outputs.result }} > publish.output.txt 2>&1
echo "Release complete"
cat publish.output.txt
echo ::set-output name=result::`cat publish.output.txt` echo ::set-output name=result::`cat publish.output.txt`
env: env:
# Needs access to publish to npm # Needs access to publish to npm

View file

@ -1,51 +0,0 @@
name: Hosted tests
on:
schedule:
- cron: '0 0 * * 0'
env:
ASTRO_TELEMETRY_DISABLED: true
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
VERCEL_ORG_ID: ${{ secrets.VERCEL_TEST_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_TEST_PROJECT_ID }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TEST_TOKEN }}
FORCE_COLOR: true
jobs:
test:
name: Run tests
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Setup PNPM
uses: pnpm/action-setup@v2
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install
- name: Build Astro
run: pnpm turbo build --filter astro --filter @astrojs/vercel
- name: Build test project
working-directory: ./packages/integrations/vercel/test/hosted/hosted-astro-project
run:
pnpm run build
- name: Deploy to Vercel
working-directory: ./packages/integrations/vercel/test/hosted/hosted-astro-project
run:
pnpm dlx vercel --prod --prebuilt
- name: Test
run:
pnpm run test:e2e:hosts

1
.gitignore vendored
View file

@ -3,7 +3,6 @@ dist/
*.tsbuildinfo *.tsbuildinfo
.DS_Store .DS_Store
.vercel .vercel
.netlify
_site/ _site/
scripts/smoke/*-main/ scripts/smoke/*-main/
scripts/memory/project/src/pages/ scripts/memory/project/src/pages/

View file

@ -1,4 +1,6 @@
--- ---
image:
file: .Dockerfile
# Commands to start on workspace startup # Commands to start on workspace startup
tasks: tasks:
- before: | - before: |
@ -16,7 +18,7 @@ vscode:
- esbenp.prettier-vscode - esbenp.prettier-vscode
- dbaeumer.vscode-eslint - dbaeumer.vscode-eslint
ports: ports:
- port: 4321 - port: 3000
onOpen: open-preview onOpen: open-preview
github: github:
prebuilds: prebuilds:

View file

@ -3,9 +3,6 @@
# Convert context URL to an array # Convert context URL to an array
mapfile -t CONTEXT_URL_ITEMS < <(echo "$GITPOD_WORKSPACE_CONTEXT_URL" | tr '/' '\n') mapfile -t CONTEXT_URL_ITEMS < <(echo "$GITPOD_WORKSPACE_CONTEXT_URL" | tr '/' '\n')
# Install latest pnpm
curl -fsSL https://get.pnpm.io/install.sh | SHELL=`which bash` bash -
# Check if Gitpod started from a specific example directory in the repository # Check if Gitpod started from a specific example directory in the repository
if [ "${CONTEXT_URL_ITEMS[7]}" = "examples" ]; then if [ "${CONTEXT_URL_ITEMS[7]}" = "examples" ]; then
EXAMPLE_PROJECT=${CONTEXT_URL_ITEMS[8]} EXAMPLE_PROJECT=${CONTEXT_URL_ITEMS[8]}
@ -20,7 +17,7 @@ fi
# Wait for VSCode to be ready (port 23000) # Wait for VSCode to be ready (port 23000)
gp ports await 23000 > /dev/null 2>&1 gp ports await 23000 > /dev/null 2>&1
echo "Loading example project: $EXAMPLE_PROJECT" echo "Loading example project:" $EXAMPLE_PROJECT
# Go to the requested example project # Go to the requested example project
cd "$GITPOD_REPO_ROOT"/examples/"$EXAMPLE_PROJECT" || exit cd "$GITPOD_REPO_ROOT"/examples/"$EXAMPLE_PROJECT" || exit

2
.nvmrc
View file

@ -1 +1 @@
18.14.1 16.19.0

View file

@ -1,6 +1,9 @@
# Benchmark artifacts # Ignoring these files for now due to https://github.com/withastro/compiler/issues/585
benchmark/projects/ examples/basics/src/layouts
benchmark/results/ examples/with-nanostores/src/layouts
# Ignoring this file for now due to https://github.com/withastro/compiler/issues/485
packages/markdown/component/Markdown.astro
# Deep Directories # Deep Directories
**/dist **/dist
@ -9,10 +12,14 @@ benchmark/results/
**/fixtures **/fixtures
**/vendor **/vendor
**/.vercel **/.vercel
examples/docs/**/*.md
examples/blog/**/*.md
# Directories # Directories
.github .github
.changeset .changeset
# Files # Files
README.md
packages/webapi/mod.d.ts
pnpm-lock.yaml pnpm-lock.yaml

23
.prettierrc.cjs Normal file
View file

@ -0,0 +1,23 @@
module.exports = {
printWidth: 100,
semi: true,
singleQuote: true,
tabWidth: 2,
trailingComma: 'es5',
useTabs: true,
plugins: ['./node_modules/prettier-plugin-astro'],
overrides: [
{
files: ['.*', '*.json', '*.md', '*.toml', '*.yml'],
options: {
useTabs: false,
},
},
{
files: ['**/*.astro'],
options: {
parser: 'astro',
},
},
],
};

View file

@ -10,8 +10,8 @@ We welcome contributions of any size and skill level. As an open source project,
### Prerequisites ### Prerequisites
```shell ```shell
node: "^>=18.14.1" node: "^>=16.12.0"
pnpm: "^8.6.12" pnpm: "^8.2.0"
# otherwise, your build will fail # otherwise, your build will fail
``` ```

View file

@ -8,6 +8,7 @@
<br/><br/> <br/><br/>
</p> </p>
## Install ## Install
The **recommended** way to install the latest version of Astro is by running the command below: The **recommended** way to install the latest version of Astro is by running the command below:
@ -22,10 +23,9 @@ You can also install Astro **manually** by running this command instead:
npm install --save-dev astro npm install --save-dev astro
``` ```
Looking for help? Start with our [Getting Started](https://docs.astro.build/en/getting-started/) guide. Looking for help? Start with our [Getting Started](https://docs.astro.build/en/getting-started/) guide.
Looking for quick examples? [Open a starter project](https://astro.new/) right in your browser. Looking for quick examples? [Open a starter project](https://astro.new/) right in your browser.
## Documentation ## Documentation
Visit our [official documentation](https://docs.astro.build/). Visit our [official documentation](https://docs.astro.build/).
@ -33,10 +33,9 @@ Visit our [official documentation](https://docs.astro.build/).
## Support ## Support
Having trouble? Get help in the official [Astro Discord](https://astro.build/chat). Having trouble? Get help in the official [Astro Discord](https://astro.build/chat).
## Contributing ## Contributing
**New contributors welcome!** Check out our [Contributors Guide](CONTRIBUTING.md) for help getting started. **New contributors welcome!** Check out our [Contributors Guide](CONTRIBUTING.md) for help getting started.
Join us on [Discord](https://astro.build/chat) to meet other maintainers. We'll help you get your first contribution in no time! Join us on [Discord](https://astro.build/chat) to meet other maintainers. We'll help you get your first contribution in no time!
@ -48,19 +47,23 @@ Join us on [Discord](https://astro.build/chat) to meet other maintainers. We'll
| [create-astro](packages/create-astro) | [![create-astro version](https://img.shields.io/npm/v/create-astro.svg?label=%20)](packages/create-astro/CHANGELOG.md) | | [create-astro](packages/create-astro) | [![create-astro version](https://img.shields.io/npm/v/create-astro.svg?label=%20)](packages/create-astro/CHANGELOG.md) |
| [@astrojs/react](packages/integrations/react) | [![astro version](https://img.shields.io/npm/v/@astrojs/react.svg?label=%20)](packages/integrations/react/CHANGELOG.md) | | [@astrojs/react](packages/integrations/react) | [![astro version](https://img.shields.io/npm/v/@astrojs/react.svg?label=%20)](packages/integrations/react/CHANGELOG.md) |
| [@astrojs/preact](packages/integrations/preact) | [![astro version](https://img.shields.io/npm/v/@astrojs/preact.svg?label=%20)](packages/integrations/preact/CHANGELOG.md) | | [@astrojs/preact](packages/integrations/preact) | [![astro version](https://img.shields.io/npm/v/@astrojs/preact.svg?label=%20)](packages/integrations/preact/CHANGELOG.md) |
| [@astrojs/solid-js](packages/integrations/solid) | [![astro version](https://img.shields.io/npm/v/@astrojs/solid-js.svg?label=%20)](packages/integrations/solid/CHANGELOG.md) | | [@astrojs/solid-js](packages/integrations/solid) | [![astro version](https://img.shields.io/npm/v/@astrojs/solid-js.svg?label=%20)](packages/integrations/solid/CHANGELOG.md) |
| [@astrojs/svelte](packages/integrations/svelte) | [![astro version](https://img.shields.io/npm/v/@astrojs/svelte.svg?label=%20)](packages/integrations/svelte/CHANGELOG.md) | | [@astrojs/svelte](packages/integrations/svelte) | [![astro version](https://img.shields.io/npm/v/@astrojs/svelte.svg?label=%20)](packages/integrations/svelte/CHANGELOG.md) |
| [@astrojs/vue](packages/integrations/vue) | [![astro version](https://img.shields.io/npm/v/@astrojs/vue.svg?label=%20)](packages/integrations/vue/CHANGELOG.md) | | [@astrojs/vue](packages/integrations/vue) | [![astro version](https://img.shields.io/npm/v/@astrojs/vue.svg?label=%20)](packages/integrations/vue/CHANGELOG.md) |
| [@astrojs/lit](packages/integrations/lit) | [![astro version](https://img.shields.io/npm/v/@astrojs/lit.svg?label=%20)](packages/integrations/lit/CHANGELOG.md) | | [@astrojs/lit](packages/integrations/lit) | [![astro version](https://img.shields.io/npm/v/@astrojs/lit.svg?label=%20)](packages/integrations/lit/CHANGELOG.md) |
| [@astrojs/node](packages/integrations/node) | [![astro version](https://img.shields.io/npm/v/@astrojs/node.svg?label=%20)](packages/integrations/node/CHANGELOG.md) | | [@astrojs/deno](packages/integrations/deno) | [![astro version](https://img.shields.io/npm/v/@astrojs/deno.svg?label=%20)](packages/integrations/deno/CHANGELOG.md) |
| [@astrojs/netlify](packages/integrations/netlify) | [![astro version](https://img.shields.io/npm/v/@astrojs/netlify.svg?label=%20)](packages/integrations/netlify/CHANGELOG.md) |
| [@astrojs/node](packages/integrations/node) | [![astro version](https://img.shields.io/npm/v/@astrojs/node.svg?label=%20)](packages/integrations/node/CHANGELOG.md) |
| [@astrojs/vercel](packages/integrations/vercel) | [![astro version](https://img.shields.io/npm/v/@astrojs/vercel.svg?label=%20)](packages/integrations/vercel/CHANGELOG.md) | | [@astrojs/vercel](packages/integrations/vercel) | [![astro version](https://img.shields.io/npm/v/@astrojs/vercel.svg?label=%20)](packages/integrations/vercel/CHANGELOG.md) |
| [@astrojs/cloudflare](packages/integrations/cloudflare) | [![astro version](https://img.shields.io/npm/v/@astrojs/cloudflare.svg?label=%20)](packages/integrations/cloudflare/CHANGELOG.md) | | [@astrojs/cloudflare](packages/integrations/cloudflare) | [![astro version](https://img.shields.io/npm/v/@astrojs/cloudflare.svg?label=%20)](packages/integrations/cloudflare/CHANGELOG.md) |
| [@astrojs/partytown](packages/integrations/partytown) | [![astro version](https://img.shields.io/npm/v/@astrojs/partytown.svg?label=%20)](packages/integrations/partytown/CHANGELOG.md) | | [@astrojs/partytown](packages/integrations/partytown) | [![astro version](https://img.shields.io/npm/v/@astrojs/partytown.svg?label=%20)](packages/integrations/partytown/CHANGELOG.md) |
| [@astrojs/sitemap](packages/integrations/sitemap) | [![astro version](https://img.shields.io/npm/v/@astrojs/sitemap.svg?label=%20)](packages/integrations/sitemap/CHANGELOG.md) | | [@astrojs/sitemap](packages/integrations/sitemap) | [![astro version](https://img.shields.io/npm/v/@astrojs/sitemap.svg?label=%20)](packages/integrations/sitemap/CHANGELOG.md) |
| [@astrojs/tailwind](packages/integrations/tailwind) | [![astro version](https://img.shields.io/npm/v/@astrojs/tailwind.svg?label=%20)](packages/integrations/tailwind/CHANGELOG.md) | | [@astrojs/tailwind](packages/integrations/tailwind) | [![astro version](https://img.shields.io/npm/v/@astrojs/tailwind.svg?label=%20)](packages/integrations/tailwind/CHANGELOG.md) |
| [@astrojs/alpinejs](packages/integrations/alpinejs) | [![astro version](https://img.shields.io/npm/v/@astrojs/alpinejs.svg?label=%20)](packages/integrations/alpinejs/CHANGELOG.md) | | [@astrojs/turbolinks](packages/integrations/turbolinks) | [![astro version](https://img.shields.io/npm/v/@astrojs/turbolinks.svg?label=%20)](packages/integrations/turbolinks/CHANGELOG.md) |
| [@astrojs/mdx](packages/integrations/mdx) | [![astro version](https://img.shields.io/npm/v/@astrojs/mdx.svg?label=%20)](packages/integrations/mdx/CHANGELOG.md) | | [@astrojs/alpinejs](packages/integrations/alpinejs) | [![astro version](https://img.shields.io/npm/v/@astrojs/alpinejs.svg?label=%20)](packages/integrations/alpinejs/CHANGELOG.md) |
| [@astrojs/prefetch](packages/integrations/prefetch) | [![astro version](https://img.shields.io/npm/v/@astrojs/prefetch.svg?label=%20)](packages/integrations/prefetch/CHANGELOG.md) | | [@astrojs/image](packages/integrations/image) | [![astro version](https://img.shields.io/npm/v/@astrojs/image.svg?label=%20)](packages/integrations/image/CHANGELOG.md) |
| [@astrojs/mdx](packages/integrations/mdx) | [![astro version](https://img.shields.io/npm/v/@astrojs/mdx.svg?label=%20)](packages/integrations/mdx/CHANGELOG.md) |
| [@astrojs/prefetch](packages/integrations/prefetch) | [![astro version](https://img.shields.io/npm/v/@astrojs/prefetch.svg?label=%20)](packages/integrations/prefetch/CHANGELOG.md) |
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6178/badge)](https://bestpractices.coreinfrastructure.org/projects/6178) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6178/badge)](https://bestpractices.coreinfrastructure.org/projects/6178)
@ -68,9 +71,10 @@ Several official projects are maintained outside of this repo:
| Project | Repository | | Project | Repository |
| ------------------------------------------------------------------- | ----------------------------------------------------------------------- | | ------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [@astrojs/compiler](https://github.com/withastro/compiler) | [withastro/compiler](https://github.com/withastro/compiler) | | [@astrojs/compiler](https://github.com/withastro/compiler) | [withastro/compiler](https://github.com/withastro/compiler) |
| [Astro Language Tools](https://github.com/withastro/language-tools) | [withastro/language-tools](https://github.com/withastro/language-tools) | | [Astro Language Tools](https://github.com/withastro/language-tools) | [withastro/language-tools](https://github.com/withastro/language-tools) |
## Links ## Links
- [License (MIT)](LICENSE) - [License (MIT)](LICENSE)
@ -81,16 +85,17 @@ Several official projects are maintained outside of this repo:
## Sponsors ## Sponsors
Astro is free, open source software made possible by these wonderful sponsors. Astro is generously supported by Netlify, Storyblok, and several other amazing organizations.
[❤️ Sponsor Astro! ❤️](https://github.com/withastro/.github/blob/main/FUNDING.md) [❤️ Sponsor Astro! ❤️](https://github.com/withastro/.github/blob/main/FUNDING.md)
<p align="center"> <p align="center">
<a target="_blank" href="https://github.com/sponsors/withastro"> <a target="_blank" href="https://github.com/sponsors/withastro">
[![Astro's sponsors.](https://astro.build/sponsors.png "Astro's sponsors. [![Astro's sponsors.](https://astro.build/sponsors.png
Platinum sponsors: Vercel, storyblok, Netlify, Ship Shape, Google Chrome "Astro's sponsors.
Gold sponsors: divRIOTS, DEEPGRAM, Transloadit, CloudCannon Platinum sponsors: Netlify, storyblok, Vercel, Ship Shape, Google Chrome
Gold sponsors: divRIOTS, DEEPGRAM, CloudCannon
Sponsors: Monogram, Qoddi, Dimension")](https://github.com/sponsors/withastro) Sponsors: Monogram, Qoddi, Dimension")](https://github.com/sponsors/withastro)
</a> </a>

View file

@ -1,21 +1,3 @@
import { createRequire } from 'node:module'; import { createRequire } from 'module';
import path from 'node:path';
const astroPkgPath = createRequire(import.meta.url).resolve('astro/package.json'); export const astroBin = createRequire(import.meta.url).resolve('astro');
export const astroBin = path.resolve(astroPkgPath, '../astro.js');
/** @typedef {{ avg: number, stdev: number, max: number }} Stat */
/**
* @param {number[]} numbers
* @returns {Stat}
*/
export function calculateStat(numbers) {
const avg = numbers.reduce((a, b) => a + b, 0) / numbers.length;
const stdev = Math.sqrt(
numbers.map((x) => Math.pow(x - avg, 2)).reduce((a, b) => a + b, 0) / numbers.length
);
const max = Math.max(...numbers);
return { avg, stdev, max };
}

View file

@ -1,73 +0,0 @@
import { fileURLToPath } from 'node:url';
import { execaCommand } from 'execa';
import { markdownTable } from 'markdown-table';
import { astroBin, calculateStat } from './_util.js';
/** Default project to run for this benchmark if not specified */
export const defaultProject = 'render-default';
/**
* @param {URL} projectDir
* @param {URL} outputFile
*/
export async function run(projectDir, outputFile) {
const root = fileURLToPath(projectDir);
console.log('Benchmarking `astro --help`...');
const helpStat = await benchmarkCommand(`node ${astroBin} --help`, root);
console.log('Done');
console.log('Benchmarking `astro info`...');
const infoStat = await benchmarkCommand(`node ${astroBin} info`, root);
console.log('Done');
console.log('Result preview:');
console.log('='.repeat(10));
console.log(`#### CLI Startup\n\n`);
console.log(
printResult({
'astro --help': helpStat,
'astro info': infoStat,
})
);
console.log('='.repeat(10));
}
/**
* @param {string} command
* @param {string} root
* @returns {Promise<import('./_util.js').Stat>}
*/
async function benchmarkCommand(command, root) {
/** @type {number[]} */
const durations = [];
for (let i = 0; i < 10; i++) {
const start = performance.now();
await execaCommand(command, { cwd: root });
durations.push(performance.now() - start);
}
// From the 10 durations, calculate average, standard deviation, and max value
return calculateStat(durations);
}
/**
* @param {Record<string, import('./_util.js').Stat>} result
*/
function printResult(result) {
return markdownTable(
[
['Command', 'Avg (ms)', 'Stdev (ms)', 'Max (ms)'],
...Object.entries(result).map(([command, { avg, stdev, max }]) => [
command,
avg.toFixed(2),
stdev.toFixed(2),
max.toFixed(2),
]),
],
{
align: ['l', 'r', 'r', 'r'],
}
);
}

View file

@ -1,7 +1,7 @@
import fs from 'fs/promises';
import { fileURLToPath } from 'url';
import { execaCommand } from 'execa'; import { execaCommand } from 'execa';
import { markdownTable } from 'markdown-table'; import { markdownTable } from 'markdown-table';
import fs from 'node:fs/promises';
import { fileURLToPath } from 'node:url';
import { astroBin } from './_util.js'; import { astroBin } from './_util.js';
/** @typedef {Record<string, import('../../packages/astro/src/core/config/timer').Stat>} AstroTimerStat */ /** @typedef {Record<string, import('../../packages/astro/src/core/config/timer').Stat>} AstroTimerStat */

View file

@ -1,17 +1,19 @@
import fs from 'fs/promises';
import http from 'http';
import path from 'path';
import { fileURLToPath } from 'url';
import { execaCommand } from 'execa'; import { execaCommand } from 'execa';
import { markdownTable } from 'markdown-table';
import fs from 'node:fs/promises';
import http from 'node:http';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import { waitUntilBusy } from 'port-authority'; import { waitUntilBusy } from 'port-authority';
import { calculateStat, astroBin } from './_util.js'; import { markdownTable } from 'markdown-table';
import { renderFiles } from '../make-project/render-default.js'; import { renderFiles } from '../make-project/render-default.js';
import { astroBin } from './_util.js';
const port = 4322; const port = 4322;
export const defaultProject = 'render-default'; export const defaultProject = 'render-default';
/** @typedef {{ avg: number, stdev: number, max: number }} Stat */
/** /**
* @param {URL} projectDir * @param {URL} projectDir
* @param {URL} outputFile * @param {URL} outputFile
@ -66,17 +68,22 @@ async function benchmarkRenderTime() {
result[pathname].push(renderTime); result[pathname].push(renderTime);
} }
} }
/** @type {Record<string, import('./_util.js').Stat>} */ /** @type {Record<string, Stat>} */
const processedResult = {}; const processedResult = {};
for (const [pathname, times] of Object.entries(result)) { for (const [pathname, times] of Object.entries(result)) {
// From the 100 results, calculate average, standard deviation, and max value // From the 100 results, calculate average, standard deviation, and max value
processedResult[pathname] = calculateStat(times); const avg = times.reduce((a, b) => a + b, 0) / times.length;
const stdev = Math.sqrt(
times.map((x) => Math.pow(x - avg, 2)).reduce((a, b) => a + b, 0) / times.length
);
const max = Math.max(...times);
processedResult[pathname] = { avg, stdev, max };
} }
return processedResult; return processedResult;
} }
/** /**
* @param {Record<string, import('./_util.js').Stat>} result * @param {Record<string, Stat>} result
*/ */
function printResult(result) { function printResult(result) {
return markdownTable( return markdownTable(

View file

@ -1,9 +1,9 @@
import fs from 'fs/promises';
import { fileURLToPath } from 'url';
import autocannon from 'autocannon'; import autocannon from 'autocannon';
import { execaCommand } from 'execa'; import { execaCommand } from 'execa';
import { markdownTable } from 'markdown-table';
import fs from 'node:fs/promises';
import { fileURLToPath } from 'node:url';
import { waitUntilBusy } from 'port-authority'; import { waitUntilBusy } from 'port-authority';
import { markdownTable } from 'markdown-table';
import pb from 'pretty-bytes'; import pb from 'pretty-bytes';
import { astroBin } from './_util.js'; import { astroBin } from './_util.js';

View file

@ -1,7 +1,7 @@
import fs from 'fs/promises';
import path from 'path';
import { pathToFileURL } from 'url';
import mri from 'mri'; import mri from 'mri';
import fs from 'node:fs/promises';
import path from 'node:path';
import { pathToFileURL } from 'node:url';
const args = mri(process.argv.slice(2)); const args = mri(process.argv.slice(2));
@ -14,7 +14,6 @@ Command
memory Run build memory and speed test memory Run build memory and speed test
render Run rendering speed test render Run rendering speed test
server-stress Run server stress test server-stress Run server stress test
cli-startup Run CLI startup speed test
Options Options
--project <project-name> Project to use for benchmark, see benchmark/make-project/ for available names --project <project-name> Project to use for benchmark, see benchmark/make-project/ for available names
@ -28,7 +27,6 @@ const benchmarks = {
memory: () => import('./bench/memory.js'), memory: () => import('./bench/memory.js'),
render: () => import('./bench/render.js'), render: () => import('./bench/render.js'),
'server-stress': () => import('./bench/server-stress.js'), 'server-stress': () => import('./bench/server-stress.js'),
'cli-startup': () => import('./bench/cli-startup.js'),
}; };
if (commandName && !(commandName in benchmarks)) { if (commandName && !(commandName in benchmarks)) {

View file

@ -1,4 +1,4 @@
import fs from 'node:fs/promises'; import fs from 'fs/promises';
import { loremIpsum } from './_util.js'; import { loremIpsum } from './_util.js';
/** /**

View file

@ -1,4 +1,4 @@
import fs from 'node:fs/promises'; import fs from 'fs/promises';
import { loremIpsumHtml, loremIpsumMd } from './_util.js'; import { loremIpsumHtml, loremIpsumMd } from './_util.js';
// Map of files to be generated and tested for rendering. // Map of files to be generated and tested for rendering.

View file

@ -1,4 +1,4 @@
import fs from 'node:fs/promises'; import fs from 'fs/promises';
import { loremIpsum } from './_util.js'; import { loremIpsum } from './_util.js';
/** /**
@ -7,13 +7,11 @@ import { loremIpsum } from './_util.js';
export async function run(projectDir) { export async function run(projectDir) {
await fs.rm(projectDir, { recursive: true, force: true }); await fs.rm(projectDir, { recursive: true, force: true });
await fs.mkdir(new URL('./src/pages', projectDir), { recursive: true }); await fs.mkdir(new URL('./src/pages', projectDir), { recursive: true });
await fs.mkdir(new URL('./src/components', projectDir), { recursive: true });
await fs.writeFile( await fs.writeFile(
new URL('./src/pages/index.astro', projectDir), new URL('./src/pages/index.astro', projectDir),
`\ `\
--- ---
import Paragraph from '../components/Paragraph.astro'
const content = "${loremIpsum}" const content = "${loremIpsum}"
--- ---
@ -27,26 +25,13 @@ const content = "${loremIpsum}"
<body> <body>
<h1>Astro</h1> <h1>Astro</h1>
<div> <div>
${Array.from({ length: 100 }) ${Array.from({ length: 60 }).map(() => '<p>{content}</p>')}
.map(() => '<p>{content}</p>')
.join('\n')}
</div>
<div>
${Array.from({ length: 50 })
.map((_, i) => '<Paragraph num={' + i + '} str={content} />')
.join('\n')}
</div> </div>
</body> </body>
</html>`, </html>`,
'utf-8' 'utf-8'
); );
await fs.writeFile(
new URL('./src/components/Paragraph.astro', projectDir),
`<div>{Astro.props.num} {Astro.props.str}</div>`,
'utf-8'
);
await fs.writeFile( await fs.writeFile(
new URL('./astro.config.js', projectDir), new URL('./astro.config.js', projectDir),
`\ `\

View file

@ -11,11 +11,11 @@
"@astrojs/node": "workspace:*", "@astrojs/node": "workspace:*",
"@benchmark/timer": "workspace:*", "@benchmark/timer": "workspace:*",
"astro": "workspace:*", "astro": "workspace:*",
"autocannon": "^7.12.0", "autocannon": "^7.10.0",
"execa": "^8.0.1", "execa": "^6.1.0",
"markdown-table": "^3.0.3", "markdown-table": "^3.0.3",
"mri": "^1.2.0", "mri": "^1.2.0",
"port-authority": "^2.0.1", "port-authority": "^2.0.1",
"pretty-bytes": "^6.1.1" "pretty-bytes": "^6.0.0"
} }
} }

View file

@ -23,6 +23,7 @@
"dev": "astro-scripts dev \"src/**/*.ts\"" "dev": "astro-scripts dev \"src/**/*.ts\""
}, },
"dependencies": { "dependencies": {
"@astrojs/webapi": "workspace:*",
"server-destroy": "^1.0.1" "server-destroy": "^1.0.1"
}, },
"peerDependencies": { "peerDependencies": {

View file

@ -1,5 +1,5 @@
import type { CreatePreviewServer } from 'astro'; import type { CreatePreviewServer } from 'astro';
import { createServer } from 'node:http'; import { createServer } from 'http';
import enableDestroy from 'server-destroy'; import enableDestroy from 'server-destroy';
const preview: CreatePreviewServer = async function ({ serverEntrypoint, host, port }) { const preview: CreatePreviewServer = async function ({ serverEntrypoint, host, port }) {

View file

@ -1,8 +1,11 @@
import { polyfill } from '@astrojs/webapi';
import type { SSRManifest } from 'astro'; import type { SSRManifest } from 'astro';
import { NodeApp, applyPolyfills } from 'astro/app/node'; import { NodeApp } from 'astro/app/node';
import type { IncomingMessage, ServerResponse } from 'node:http'; import type { IncomingMessage, ServerResponse } from 'http';
applyPolyfills(); polyfill(globalThis, {
exclude: 'window document',
});
export function createExports(manifest: SSRManifest) { export function createExports(manifest: SSRManifest) {
const app = new NodeApp(manifest); const app = new NodeApp(manifest);

View file

@ -2,6 +2,9 @@
"extends": "../../../tsconfig.base.json", "extends": "../../../tsconfig.base.json",
"include": ["src"], "include": ["src"],
"compilerOptions": { "compilerOptions": {
"outDir": "./dist" "allowJs": true,
"module": "ES2020",
"outDir": "./dist",
"target": "ES2020"
} }
} }

View file

@ -2,7 +2,7 @@
The easiest way to check out one of these examples on your machine is by running this command in an empty directory: The easiest way to check out one of these examples on your machine is by running this command in an empty directory:
```sh ```
npm create astro@latest -- --template [EXAMPLE_NAME] npm create astro@latest -- --template [EXAMPLE_NAME]
``` ```
@ -10,12 +10,12 @@ npm create astro@latest -- --template [EXAMPLE_NAME]
Visit [awesome-astro](https://github.com/one-aalam/awesome-astro) for a full list of community examples. You can use `npm create astro@latest` to check out any community examples: Visit [awesome-astro](https://github.com/one-aalam/awesome-astro) for a full list of community examples. You can use `npm create astro@latest` to check out any community examples:
```sh ```
npm create astro@latest -- --template [GITHUB_USER]/[REPO_NAME] npm create astro@latest -- --template [GITHUB_USER]/[REPO_NAME]
``` ```
Paths to examples nested inside of a repo are also supported: Paths to examples nested inside of a repo are also supported:
```sh ```
npm create astro@latest -- --template [GITHUB_USER]/[REPO_NAME]/path/to/example npm create astro@latest -- --template [GITHUB_USER]/[REPO_NAME]/path/to/example
``` ```

View file

@ -1 +0,0 @@
FROM node:18-bullseye

View file

@ -1,6 +1,6 @@
# Astro Starter Kit: Basics # Astro Starter Kit: Basics
```sh ```
npm create astro@latest -- --template basics npm create astro@latest -- --template basics
``` ```
@ -10,13 +10,14 @@ npm create astro@latest -- --template basics
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun! > 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
![just-the-basics](https://github.com/withastro/astro/assets/2244813/a0a5533c-a856-4198-8470-2d67b1d7c554) ![basics](https://user-images.githubusercontent.com/4677417/186188965-73453154-fdec-4d6b-9c34-cb35c248ae5b.png)
## 🚀 Project Structure ## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files: Inside of your Astro project, you'll see the following folders and files:
```text ```
/ /
├── public/ ├── public/
│ └── favicon.svg │ └── favicon.svg
@ -43,7 +44,7 @@ All commands are run from the root of the project, from a terminal:
| Command | Action | | Command | Action |
| :------------------------ | :----------------------------------------------- | | :------------------------ | :----------------------------------------------- |
| `npm install` | Installs dependencies | | `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:4321` | | `npm run dev` | Starts local dev server at `localhost:3000` |
| `npm run build` | Build your production site to `./dist/` | | `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying | | `npm run preview` | Preview your build locally, before deploying |
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | | `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |

Some files were not shown because too many files have changed in this diff Show more