+
+
diff --git a/docs/src/components/Examples/card.scss b/docs/src/components/Examples/card.scss
new file mode 100644
index 000000000..8debf2dd5
--- /dev/null
+++ b/docs/src/components/Examples/card.scss
@@ -0,0 +1,167 @@
+.card-wrapper {
+ width: clamp(215px, 48%, 45%);
+ border-radius: 60px 60px 100px 100px/60px 60px 20px 20px;
+ flex-grow: 1;
+ padding-bottom: 0.5rem;
+ background: var(--theme-card-bg);
+ box-shadow: var(--theme-card-box-shadow);
+ transition: all 0.25s cubic-bezier(0, 0, 0.75, 0.24);
+ &:hover{
+ transform: translateY(-0.25rem);
+ }
+}
+.card {
+ position: relative;
+ width: 100%;
+ flex-basis: 1;
+}
+.card-body {
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+ min-width: fit-content;
+ padding: 1rem;
+}
+.hotlinks {
+ display: flex;
+ flex-wrap: nowrap;
+ flex-direction: row;
+ align-content: center;
+ align-items: normal;
+ justify-content: space-between;
+ transform: translateY(-1rem);
+
+ & .hot-btn {
+ border-left: 1px solid var(--theme-card-divider);
+ border-right: 1px solid var(--theme-card-divider);
+ border-radius: 0;
+ flex-basis: 1;
+ transition: all 0.25s ease-in-out;
+ cursor: pointer;
+ background-color: transparent;
+ & :active {
+ transform: scale(0.9);
+ }
+ & .hot-link {
+ }
+ & .hot-icon {
+ display: block;
+ color: var(--theme-accent);
+ width: 2rem;
+ height: 2rem;
+ }
+ }
+}
+
+// .frosted-glass {
+// display: block;
+// height: 13rem;
+// border-bottom: 5px solid linear-gradient(var(--theme-divider));
+// background: linear-gradient(
+// 133deg,
+// rgb(59 56 73 / 78%),
+// transparent 70%,
+// #000000d4 100%
+// );
+// box-shadow: inset 5px -2px 7px 0px rgb(185 188 231 / 37%),
+// 0px 8px 0px 0px var(--theme-divider);
+// border-radius: 60px 60px 100px 100px / 60px 60px 20px 20px;
+// width: 100%;
+
+// }
+// .space-image {
+// width: 100%;
+// height: 13rem;
+// filter: blur( 10px );
+// //width:100%;
+// border-radius: 60px 60px 100px 100px / 60px 60px 20px 20px;
+// //margin-bottom:1rem;
+// position: relative;
+// -webkit-filter: blur( 10px );
+// }
+
+.card-content {
+ display: flex;
+ flex-direction: column;
+ justify-content: space-around;
+ flex-wrap: nowrap;
+ align-content: space-around;
+ align-items: center;
+ transform: translateY(-3rem);
+ line-height: 1.5rem;
+ > * {
+ margin: 0.5rem;
+ border-radius: 60px 60px 20px 20px, 60px 60px 20px 20px;
+ }
+ .title {
+ display: block;
+ margin: 0;
+ width: fit-content;
+ margin: auto;
+ font-size: xx-large;
+ text-decoration: none;
+ }
+ .main-link {
+ text-decoration: none;
+ }
+}
+.card-avatar {
+ position: relative;
+ transform: translateY(-4rem);
+ left: 0;
+ border: 0.25rem solid var(--theme-divider);
+ display: block;
+ width: clamp(5rem, 8rem, 7rem);
+ height: clamp(5rem, 8rem, 7rem);
+ margin: 0;
+ border-radius: 50%;
+}
+.heroImg{
+ display: block;
+ --hero-radius: 50px 50px 100px 100px / 60px 60px 20px 20px;
+ border-radius: var(--hero-radius);
+ width: 100%;
+ height:15rem;
+ box-shadow: inset 5px -2px 7px 0px rgb(185 188 231 / 37%),
+ 0px 8px 0px 0px var(--theme-divider);
+ border-radius: var(--hero-radius);
+ object-fit: cover;
+}
+.tooltip {
+ position: relative;
+ display: inline-block;
+ border-bottom: 1px dotted black;
+}
+
+.tooltip .tooltip-text {
+ visibility: hidden;
+ width: 120px;
+ background-color: black;
+ color: #fff;
+ text-align: center;
+ border-radius: 6px;
+ padding: 5px 0;
+ position: absolute;
+ z-index: 1;
+ bottom: 150%;
+ left: 50%;
+ margin-left: -60px;
+}
+
+.tooltip .tooltip-text::after {
+ content: "";
+ position: absolute;
+ top: 100%;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px;
+ border-style: solid;
+ border-color: black transparent transparent transparent;
+}
+
+.tooltip:hover .tooltip-text {
+ visibility: visible;
+}
\ No newline at end of file
diff --git a/docs/src/components/Examples/templatesList.ts b/docs/src/components/Examples/templatesList.ts
new file mode 100644
index 000000000..91f5083bd
--- /dev/null
+++ b/docs/src/components/Examples/templatesList.ts
@@ -0,0 +1,151 @@
+export const templatesList=[
+ {
+ category:"Templates",
+ title:"create-astro Templates",
+
+ children:[
+ {
+ text: "Starter Template",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/starter",
+ demo:"https://youtu.be/dQw4w9WgXcQ?t=42",
+ blurb:"Astro's Default Starter Project, an open-air sandbox. Letting you build your Astro Project as you see fit.",
+ command:"npm init astro my-astro-project -- --template starter"
+ },
+ {
+ text: "Doc\'s",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/docs",
+ demo:"",
+ blurb:"Astro's Documentation Template, is an example of a Documentation site built using Astro.",
+ command:"npm init astro my-astro-project -- --template docs"
+ },
+ {
+ text: "Blog",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/blog",
+ demo:"",
+ blurb:"Astro's Blog Template, is an example of a Blogging site built using Astro.",
+ command:"npm init astro my-astro-project -- --template blog"
+ },
+ {
+ text: "Blog with Multiple Authors",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/blog-multiple-authors",
+ demo:"",
+ blurb:"Astro's Multiple Authors Blogging Template, is an example of a Blogging site for Multiple Authors built using Astro.",
+ command:"npm init astro my-astro-project -- --template blog"
+ },
+ {
+ text: "Portfolio",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/portfolio",
+ demo:"",
+ blurb:"Astro's Portfolio Template, an example of a Portfolio site built using Astro.",
+ command:"npm init astro my-astro-project -- --template portfolio"
+ },
+ ]
+ },
+ {
+ category:"Framework's",
+ title:"UI Frameworks",
+ children:[
+ {
+ text: "React + Astro",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/framework-react",
+ demo:"",
+ blurb:"An example on how to use React alongside Astro.",
+ command:"npm init astro my-astro-project -- --template framework-react"
+ },
+ {
+ text: "Vue + Astro",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/framework-vue",
+ demo:"",
+ blurb:"An example on how to use Vue with Astro.",
+ command:"npm init astro my-astro-project -- --template framework-vue"
+ },
+ {
+ text: "Svelte + Astro",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/framework-svelte",
+ demo:"",
+ blurb:"An example on how to use Svelte and Astro together.",
+ command:"npm init astro my-astro-project -- --template framework-svelte"
+ },
+ {
+ text: "Preact + Astro",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/framework-preact",
+ demo:"",
+ blurb:"An example on how to use Preact along with Astro.",
+ command:"npm init astro my-astro-project -- --template framework-preact"
+ },
+ {
+ text: "Solid + Astro",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/framework-solid",
+ demo:"",
+ blurb:"An example on how to use Solid together with Astro.",
+ command:"npm init astro my-astro-project -- --template framework-solid"
+ },
+ {
+ text: "Lit + Astro",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/framework-lit",
+ demo:"",
+ blurb:"An example on how to use Lit together with Astro.",
+ command:"npm init astro my-astro-project -- --template framework-lit"
+ },
+ {
+ text: "Multiple UI Frameworks Together As One, only with Astro",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/framework-multiple",
+ demo:"",
+ blurb:"Showcasing Astro's ability to utilise more than one framework at a time. \nHere we are demonstrating applying a combination of: React, Preact, Svelte & Vue Components all into one Astro project",
+ command:"npm init astro my-astro-project -- --template framework-multiple"
+ },
+
+ ]
+ },
+ {
+ category:"Further Examples",
+ title:"Examples",
+ children:[
+ {
+ text: "Astro with Markdown",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/with-markdown",
+ demo:"",
+ blurb:"An example on how to use Markdown inside an Astro project.",
+ command:"npm init astro my-astro-project -- --template with-markdown"
+ },
+ {
+ text: "Astro with Markdown Plugins",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/with-markdown-plugins",
+ demo:"",
+ blurb:"An example on how to use the Markdown plugin: Rehype with Astro.",
+ command:"npm init astro my-astro-project -- --template with-markdown-plugins"
+ },
+ {
+ text: "Astro with NanoStores",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/with-nanostores",
+ demo:"",
+ blurb:"An example on how share state between components from different frameworks inside Astro, using the excellent 'NanoStores' state utility package.",
+ command:"npm init astro my-astro-project -- --template with-nanostores"
+ },
+ {
+ text: "Astro & TailwindCSS",
+ github: "https://github.com/snowpackjs/astro/tree/main/examples/with-tailwindcss",
+ demo:"",
+ blurb:"Astro comes with Tailwind support out of the box, this is an example of how TailwindCSS is used inside an Astro project.",
+ command:"npm init astro my-astro-project -- --template with-tailwindcss"
+ },
+
+
+ ]
+
+ },
+ // {
+ // text:"Community Built Examples",
+ // children:[
+ // // {
+ // // text: '',
+ // // github: '',
+ // // demo:"",
+ // // blurb:"",
+ // // command:"npm init astro my-astro-project -- --template"
+ // // },
+
+ // ]
+
+ // },
+]
\ No newline at end of file
diff --git a/docs/src/layouts/ExamplesLayout.astro b/docs/src/layouts/ExamplesLayout.astro
new file mode 100644
index 000000000..e1315b362
--- /dev/null
+++ b/docs/src/layouts/ExamplesLayout.astro
@@ -0,0 +1,129 @@
+---
+import HeadCommon from "../components/HeadCommon.astro";
+import HeadSEO from "../components/HeadSEO.astro";
+import Header from '../components/Header/Header.astro';
+import Footer from '../components/Footer/Footer.astro';
+import PageContent from '../components/PageContent/PageContent.astro';
+import LeftSidebar from '../components/LeftSidebar/LeftSidebar.astro';
+import MoreMenu from '../components/RightSidebar/MoreMenu.astro'
+import { SITE } from "../config.ts";
+import ContainerQuery from '../components/ContainerQuery.astro'
+const { content = {}, page= Astro.request.url.pathname } = Astro.props;
+const currentPage =page;
+// const currentFile = `src/pages${currentPage.replace(/\/$/, "")}.md`;
+const githubEditUrl = `https://github.com/snowpackjs/astro/blob/main/docs/${page}`;
+---
+
+
+
+
+
+
+ {content.title ? `${content.title} 🚀 ${SITE.title}` : SITE.title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/src/pages/demo.astro b/docs/src/pages/demo.astro
new file mode 100644
index 000000000..c60a9e05d
--- /dev/null
+++ b/docs/src/pages/demo.astro
@@ -0,0 +1,14 @@
+---
+import Layout from '../layouts/ExamplesLayout.astro'
+import templateData from '../components/Examples/function-generate-examples-data.js'
+import Card from '../components/Examples/Card.astro'
+
+let data = await templateData()
+
+---
+
+
+ {data.filter(item=> (item.pkgJSON?.keywords?.includes('create-astro')))
+ .sort((a,b)=> ((a.name === 'starter')? -1 : 1))
+ .map((item)=>())}
+
diff --git a/docs/src/pages/examples-and-templates.astro b/docs/src/pages/examples-and-templates.astro
new file mode 100644
index 000000000..aff58a932
--- /dev/null
+++ b/docs/src/pages/examples-and-templates.astro
@@ -0,0 +1,33 @@
+---
+
+import Layout from '../layouts/MainLayout.astro';
+import {Markdown} from 'astro/components'
+import Examples from '../components/Examples/Examples.astro'
+
+import Thumbnail from '../components/Examples/Thumbnail.astro'
+const githubEditUrl = "https://github.com/snowpackjs/astro/tree/main/docs/src/pages/examples-and-templates.astro"
+const title = 'Examples & Templates'
+
+
+---
+
+
+
+
+ We encourage you to freely explore our collection of ready-made templates containing a multitude of examples on how to apply Astro to a variety of use-cases. i.e: various UI frameworks, State Management Tools, and of course TailwindCSS
+
+
+
+
+
+ ## Community Templates
+
+ Visit [Awesome-Astro](https://github.com/one-aalam/awesome-astro) for a full list of community examples. You can use `npm init astro` to check out any of the community examples
+
+ ```bash
+ npm init astro -- --template [GITHUB_USER]/[REPO_NAME]
+ npm init astro -- --template [GITHUB_USER]/[REPO_NAME]/path/to/example
+ ```
+
+
+
diff --git a/docs/src/pages/examples.astro b/docs/src/pages/examples.astro
new file mode 100644
index 000000000..6128b2e20
--- /dev/null
+++ b/docs/src/pages/examples.astro
@@ -0,0 +1,87 @@
+---
+import Layout from '../layouts/ExamplesLayout.astro'
+import Card from '../components/Examples/Card.astro'
+import {Markdown} from 'astro/components'
+import templateData from '../components/Examples/Functions/get-examples-data.js'
+let data = await templateData()
+let headers = {}
+---
+
+
+ # Examples & Templates
+ We encourage you to freely explore our collection of ready-made templates containing a multitude of examples on how to apply Astro to a variety of use-cases. i.e: various UI frameworks, State Management Tools, and of course TailwindCSS.
+
+
+ To use any one of our templates simply instruct `create-astro`by using:
+
+ ```bash
+ npm init astro my-astro-project -- -- template [template]
+ ```
+
+
+ ## `create-astro` Templates
+
+ Below is a list of Astro's templates that are available directly through the [`create-astro`](/installation) install wizard.
+
+
+
+ ## UI Frameworks
+
+ Astro is always growing its support for the vast plethora of UI frameworks that exist within the JavaScript ecosystem. Below are demonstrations on how UI frameworks work inside Astro
+
+
+
+ ## Kitchen Sink
+
+ Here is a further set of examples that have been created by our developer team, to help our users with working examples on using Markdown with Astro. Support for plugins such as Nanostores and TailwindCSS
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/blog-multiple-authors/README.md b/examples/blog-multiple-authors/README.md
index 68f2e536b..39ae19683 100644
--- a/examples/blog-multiple-authors/README.md
+++ b/examples/blog-multiple-authors/README.md
@@ -1,8 +1,10 @@
# Astro Starter Kit: Blog with Multiple Authors
-```
-npm init astro -- --template blog-multiple-authors
-```
+Our Blog with Multiple Authors Template, is a working example of our Blog template being adapted to narrate the story of "Sancho Panza" and "Don Quixote".
+
+Here we display how you can use Astro to provide individual content for both Sancho Panza and Don Quixote. This is a great working example of our Collections API in action.
+
+We hope you enjoy this with a small Santeria, remember to build responsibly...
> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
@@ -18,23 +20,48 @@ Features:
Inside of your Astro project, you'll see the following folders and files:
```
-/
├── public/
-│ ├── robots.txt
+│ ├── assets/
+│ ├── blog.scss
+│ ├── global.scss
+│ ├── social.png
+│ ├── social.jpg
│ └── favicon.ico
├── src/
│ ├── components/
-│ │ └── Tour.astro
+│ │ └── MainHead.astro
+│ │ └── Nav.astro
+│ │ └── Pagination.astro
+│ │ └── PostPreview.astro
+│ └── layouts/
+│ │ └── post.astro
│ └── pages/
+│ ├── posts/
+│ │ └── Series of Markdown files
+│ └── $author.astro
+│ └── $posts.astro
+│ └── about.astro
│ └── index.astro
└── package.json
```
-Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
+Files located within the public directory are static assets such as; stylesheets, images, fonts files etc.
-There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
+Located within the `src/` directory is the `components/` `layout/` and `pages/` directories.
-Any static assets, like images, can be placed in the `public/` directory.
+The `src/components/` directory is where all you UI components are stored, this includes components from your framework of choice, whether they be:
+
+- Astro Components
+- React
+- Preact
+- Solid
+- Svelte Or Vue.
+
+ You can visit our [Astro Components](https://docs.astro.build/core-concepts/astro-components) page for more information on creating your own components.
+
+Astro used [file-based routing](https://docs.astro.build/core-concepts/routing), this is done by having Astro look for `.astro` or `.md` files in the `src/pages/` directory. Each page is then exposed as a route based on its file name.
+
+To find out more about using [Pages with Astro](https://docs.astro.build/core-concepts/astro-pages) and how our file-based routing works.
## 🧞 Commands
@@ -48,4 +75,8 @@ All commands are run from the root of the project, from a terminal:
## 👀 Want to learn more?
-Feel free to check [our documentation](https://github.com/snowpackjs/astro) or jump into our [Discord server](https://astro.build/chat).
+This Template can be used as a solid platform to get your own Blog site up and running with little effort as possible. Or as a educational demonstration.
+
+Regardless of your intentions, we simply wish for you to truly explore and learn how to get the most from Astro and this template has been created in such a way to allow you to do so.
+
+Feel free to check [our documentation](https://github.com/snowpackjs/astro) if you get stuck or jump into our [Discord server](https://astro.build/chat) to speak with other Astronauts.
diff --git a/examples/blog-multiple-authors/package.json b/examples/blog-multiple-authors/package.json
index 899294217..f52dca4af 100644
--- a/examples/blog-multiple-authors/package.json
+++ b/examples/blog-multiple-authors/package.json
@@ -2,6 +2,14 @@
"name": "@example/blog-multiple-authors",
"version": "0.0.1",
"private": true,
+ "description": "Use Case: Multiple Authors Blogging Site built using Astro",
+ "keywords": ["kitchen-sink","template","astro"],
+ "repository": {
+ "directory": "/examples/blog-multiple-authors",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
+
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/blog/README.md b/examples/blog/README.md
index 09673cc3d..17657d99e 100644
--- a/examples/blog/README.md
+++ b/examples/blog/README.md
@@ -1,10 +1,8 @@
-# Astro Starter Kit: Blog
+# Astro's Starter Kit: Blog
-```
-npm init astro -- --template blog
-```
+Welcome to Astro's Blog's Readme. This template is a straight forward way to launch your own Blogging site using Astro. We highly encourage you to explore the contents of this template and play about with it to make it your own.
-> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
+> 🧑🚀 **Seasoned Astronaut?** Delete this file. Have fun!
Features:
@@ -17,24 +15,47 @@ Features:
Inside of your Astro project, you'll see the following folders and files:
-```
+```bash
/
├── public/
-│ ├── robots.txt
+│ ├── assets/
+│ ├── blog.scss
+│ ├── global.scss
+│ ├── social.png
+│ ├── social.jpg
│ └── favicon.ico
├── src/
│ ├── components/
-│ │ └── Tour.astro
+│ │ └── Author.astro
+│ │ └── BaseHead.astro
+│ │ └── BlogHeader.astro
+│ │ └── BlogPost.astro
+│ │ └── BlogPostPreview.astro
+│ │ └── Logo.astro
+│ └── layouts/
+│ │ └── BlogPost.astro
│ └── pages/
+│ ├── posts/
+│ │ └── introducing-astro.astro
│ └── index.astro
└── package.json
```
-Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
+Files located within the public directory are static assets such as; stylesheets, images, fonts files etc.
-There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
+Located within the `src/` directory is the `components/` `layout/` and `pages/` directories.
-Any static assets, like images, can be placed in the `public/` directory.
+The `src/components/` directory is where all you UI components are stored, this includes components from your framework of choice, whether they be:
+
+- Astro Components
+- React
+- Preact
+- Solid
+- Svelte Or Vue.
+
+ You can visit our [Astro Components](https://docs.astro.build/core-concepts/astro-components) page for more information on creating your own components.
+
+Astro used file-based routing, this is done by having Astro look for `.astro` or `.md` files in the `src/pages/` directory. Each page is then exposed as a route based on its file name. To find out more about using [Pages with Astro](https://docs.astro.build/core-concepts/astro-pages) and how our file-based routing works.
## 🧞 Commands
@@ -48,4 +69,8 @@ All commands are run from the root of the project, from a terminal:
## 👀 Want to learn more?
-Feel free to check [our documentation](https://github.com/snowpackjs/astro) or jump into our [Discord server](https://astro.build/chat).
+This Template can be used as a primary launch pad to get your own Blog site up and running with little effort as possible. Or as a educational demonstration.
+
+Regardless of your intentions, we simply wish for you to truly explore and learn how to get the most from Astro and this template has been created in such a way to allow you to do so.
+
+Feel free to check [our documentation](https://github.com/snowpackjs/astro) if you get stuck or jump into our [Discord server](https://astro.build/chat) to speak with other Astronauts.
diff --git a/examples/blog/package.json b/examples/blog/package.json
index e9ab01903..d6adae7a3 100644
--- a/examples/blog/package.json
+++ b/examples/blog/package.json
@@ -2,6 +2,13 @@
"name": "@example/blog",
"version": "0.0.1",
"private": true,
+ "description": "Blog Site built using Astro. Use this Template to setup your own Blog",
+ "keywords": ["create-astro","template","astro"],
+ "repository": {
+ "directory": "/examples/blog",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
@@ -14,4 +21,5 @@
"snowpack": {
"workspaceRoot": "../.."
}
+
}
diff --git a/examples/blog/sandbox.config.json b/examples/blog/sandbox.config.json
new file mode 100644
index 000000000..1027d5e6c
--- /dev/null
+++ b/examples/blog/sandbox.config.json
@@ -0,0 +1,11 @@
+{
+ "infiniteLoopProtection": true,
+ "hardReloadOnChange": false,
+ "view": "browser",
+ "template": "node",
+ "container": {
+ "port": 3000,
+ "startScript": "start",
+ "node": "14"
+ }
+}
\ No newline at end of file
diff --git a/examples/docs/package.json b/examples/docs/package.json
index fbe9a654c..e27eb942f 100644
--- a/examples/docs/package.json
+++ b/examples/docs/package.json
@@ -2,6 +2,14 @@
"name": "@example/docs",
"version": "0.0.1",
"private": true,
+ "description": "Documentation Site built using Astro. Our own Doc's site is based of this template!",
+ "keywords": ["create-astro","template","astro"],
+ "repository": {
+ "directory": "/examples/docs",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
+
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json
index 6af44efa6..e7c74b07d 100644
--- a/examples/framework-lit/package.json
+++ b/examples/framework-lit/package.json
@@ -2,6 +2,13 @@
"name": "@example/framework-lit",
"version": "0.0.1",
"private": true,
+ "description": "An example on how to use Lit's Web Components within Astro to build your site",
+ "keywords": ["framework","template","astro"],
+ "repository": {
+ "directory": "/examples/framework-lit",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json
index 1f5702cdb..c1876bf3f 100644
--- a/examples/framework-multiple/package.json
+++ b/examples/framework-multiple/package.json
@@ -2,6 +2,14 @@
"name": "@example/framework-multiple",
"version": "0.0.1",
"private": true,
+ "description": "A Demonstration of using Multiple UI Frameworks such as React, Svelte, Preact and Vue altogether with Astro",
+ "keywords": ["framework","astro","template"],
+ "repository": {
+ "directory": "/examples/framework-multiple",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
+
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json
index 0fc86c5e2..3bcbe6333 100644
--- a/examples/framework-preact/package.json
+++ b/examples/framework-preact/package.json
@@ -2,6 +2,13 @@
"name": "@example/framework-preact",
"version": "0.0.1",
"private": true,
+ "description": "A Demonstration on using Preact's ulta lightweight UI library to build your site with Astro",
+ "keywords": ["framework","template","astro"],
+ "repository": {
+ "directory": "/examples/framework-preact",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json
index e5a04e40e..7efc36238 100644
--- a/examples/framework-react/package.json
+++ b/examples/framework-react/package.json
@@ -2,6 +2,14 @@
"name": "@example/framework-react",
"version": "0.0.1",
"private": true,
+ "description": "Explore how to using the powerful React Library to develop components within Astro",
+ "keywords": ["framework","template","astro"],
+ "repository": {
+ "directory": "/examples/framework-react",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
+
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json
index b4c45c7cb..ade13dcf7 100644
--- a/examples/framework-solid/package.json
+++ b/examples/framework-solid/package.json
@@ -1,7 +1,14 @@
{
"name": "@example/framework-solid",
- "version": "0.0.1",
+ "keywords": ["framework","template","astro"],
"private": true,
+ "version": "0.0.1",
+ "description": "See how to seamlessly use Solid UI to develop Web Components within Astro",
+ "repository": {
+ "directory": "/examples/framework-solid",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json
index 603284e4b..0c8ee1c8b 100644
--- a/examples/framework-svelte/package.json
+++ b/examples/framework-svelte/package.json
@@ -2,6 +2,13 @@
"name": "@example/framework-svelte",
"version": "0.0.1",
"private": true,
+ "description": "See how we combined the power of Svelte alongside Astro ",
+ "keywords": ["framework","template","astro"],
+ "repository": {
+ "directory": "/examples/framework-svelte",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json
index a95bf238b..a444531c0 100644
--- a/examples/framework-vue/package.json
+++ b/examples/framework-vue/package.json
@@ -1,7 +1,14 @@
{
"name": "@example/framework-vue",
"version": "0.0.1",
+ "keywords": ["framework","template","astro"],
"private": true,
+ "description": "View our demonstration where we use Vue to create UI components for Astro",
+ "repository": {
+ "directory": "/examples/framework-vue",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/minimal/package.json b/examples/minimal/package.json
index 07aae9a93..3b7d2f0ab 100644
--- a/examples/minimal/package.json
+++ b/examples/minimal/package.json
@@ -2,6 +2,13 @@
"name": "@example/minimal",
"version": "0.0.1",
"private": true,
+ "description": "Minimalistic Astro Starter kit",
+ "keywords": ["create-astro","template","astro"],
+ "repository": {
+ "directory": "/examples/minimal",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json
index 1920350eb..6e2f03b78 100644
--- a/examples/portfolio/package.json
+++ b/examples/portfolio/package.json
@@ -2,6 +2,13 @@
"name": "@example/portfolio",
"version": "0.0.1",
"private": true,
+ "description": "Astro's official Portfolio Template. For truly impressive portfolios its best built with Astro",
+ "keywords": ["create-astro","template","astro"],
+ "repository": {
+ "directory": "/examples/portfolio",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/snowpack/package.json b/examples/snowpack/package.json
index 25e05b64d..817eeda56 100644
--- a/examples/snowpack/package.json
+++ b/examples/snowpack/package.json
@@ -2,6 +2,13 @@
"name": "@example/snowpack",
"version": "0.0.1",
"private": true,
+ "description": "Astro's First Template, everything has a beginning, and this for Astro's templates, was our 'Hello World'",
+ "keywords": ["kitchen-sink","template","astro"],
+ "repository": {
+ "directory": "/examples/snowpack",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"start": "astro dev",
"build": "astro build",
diff --git a/examples/starter/package.json b/examples/starter/package.json
index 52f4d889a..b6b133185 100644
--- a/examples/starter/package.json
+++ b/examples/starter/package.json
@@ -2,6 +2,12 @@
"name": "@example/starter",
"version": "0.0.1",
"private": true,
+ "description": "Astro's default template. This starter template is a perfect launchpad for your Astro project",
+ "keywords": ["create-astro","template","astro"],
+ "repository": {
+ "directory": "/examples/starter",
+ "type": "github"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json
index 5145f9922..67e65e85b 100644
--- a/examples/with-markdown-plugins/package.json
+++ b/examples/with-markdown-plugins/package.json
@@ -2,6 +2,13 @@
"name": "@example/with-markdown-plugins",
"version": "0.0.2",
"private": true,
+ "description": "Using Markdown along with Rehype and Remark Plugins with Astro",
+ "keywords": ["kitchen-sink","template","astro"],
+ "repository": {
+ "directory": "/examples/with-markdown-plugins",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/with-markdown/package.json b/examples/with-markdown/package.json
index daa03363f..a47797574 100644
--- a/examples/with-markdown/package.json
+++ b/examples/with-markdown/package.json
@@ -1,7 +1,14 @@
{
"name": "@example/with-markdown",
+ "description": "A demonstration on using Markdown with Astro",
"version": "0.0.1",
"private": true,
+ "keywords": ["kitchen-sink","template","astro"],
+ "repository": {
+ "directory": "/examples/with-markdown",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json
index e79b570dc..8e4f2d488 100644
--- a/examples/with-nanostores/package.json
+++ b/examples/with-nanostores/package.json
@@ -2,6 +2,13 @@
"name": "@example/with-nanostores",
"version": "0.0.1",
"private": true,
+ "description": "A working example on using the aptly named Nanostores State Management plugin with Astro",
+ "keywords": ["kitchen-sink","template","astro"],
+ "repository": {
+ "directory": "/examples/with-nanostores",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json
index d0d681b72..1882c5651 100644
--- a/examples/with-tailwindcss/package.json
+++ b/examples/with-tailwindcss/package.json
@@ -2,6 +2,13 @@
"name": "@example/with-tailwindcss",
"version": "0.0.1",
"private": true,
+ "description": "Astro has native TailwindCSS support out-of-the-box. This template demonstrates how to use Tailwind to style your Astro project",
+ "keywords": ["kitchen-sink","template","astro"],
+ "repository": {
+ "directory": "/examples/with-tailwindcss",
+ "type": "github",
+ "url": "https://github.com/snowpackjs/astro/tree/main"
+ },
"scripts": {
"dev": "astro dev",
"start": "astro dev",
diff --git a/packages/create-astro/create-astro.mjs b/packages/create-astro/create-astro.mjs
old mode 100755
new mode 100644
index 975b921dc..56919b42e
--- a/packages/create-astro/create-astro.mjs
+++ b/packages/create-astro/create-astro.mjs
@@ -1,14 +1,14 @@
-#!/usr/bin/env node
-'use strict';
-
-const currentVersion = process.versions.node;
-const requiredMajorVersion = parseInt(currentVersion.split('.')[0], 10);
-const minimumMajorVersion = 12;
-
-if (requiredMajorVersion < minimumMajorVersion) {
- console.error(`Node.js v${currentVersion} is out of date and unsupported!`);
- console.error(`Please use Node.js v${minimumMajorVersion} or higher.`);
- process.exit(1);
-}
-
-import('./dist/index.js').then(({ main }) => main());
+#!/usr/bin/env node
+'use strict';
+
+const currentVersion = process.versions.node;
+const requiredMajorVersion = parseInt(currentVersion.split('.')[0], 10);
+const minimumMajorVersion = 12;
+
+if (requiredMajorVersion < minimumMajorVersion) {
+ console.error(`Node.js v${currentVersion} is out of date and unsupported!`);
+ console.error(`Please use Node.js v${minimumMajorVersion} or higher.`);
+ process.exit(1);
+}
+
+import('./dist/index.js').then(({ main }) => main());
diff --git a/scripts/index.js b/scripts/index.js
old mode 100755
new mode 100644
index 7908b112c..0b6577966
--- a/scripts/index.js
+++ b/scripts/index.js
@@ -1,19 +1,19 @@
-#!/usr/bin/env node
-export default async function run() {
- const [cmd, ...args] = process.argv.slice(2);
- switch (cmd) {
- case 'dev':
- case 'build': {
- const { default: build } = await import('./cmd/build.js');
- await build(...args, cmd === 'dev' ? 'IS_DEV' : undefined);
- break;
- }
- case 'copy': {
- const { default: copy } = await import('./cmd/copy.js');
- await copy(...args);
- break;
- }
- }
-}
-
-run();
+#!/usr/bin/env node
+export default async function run() {
+ const [cmd, ...args] = process.argv.slice(2);
+ switch (cmd) {
+ case 'dev':
+ case 'build': {
+ const { default: build } = await import('./cmd/build.js');
+ await build(...args, cmd === 'dev' ? 'IS_DEV' : undefined);
+ break;
+ }
+ case 'copy': {
+ const { default: copy } = await import('./cmd/copy.js');
+ await copy(...args);
+ break;
+ }
+ }
+}
+
+run();