Files
blog/README.md
2022-11-07 19:10:41 -05:00

244 lines
8.0 KiB
Markdown

# 🚀 AstroWind
<img src="lighthouse-score.png" align="right"
alt="AstroWind Lighthouse Score" width="100" height="358">
**AstroWind** is a free and open-source template to make your website using **Astro + Tailwind CSS**. Ready to start a new project and designed taking into account best practices.
## Features
- ✅ Integration with **Tailwind CSS** ([@astrojs/tailwind](https://docs.astro.build/en/guides/integrations-guide/tailwind/)).
-**Production-ready** scores in [Lighthouse](https://web.dev/measure/) and [PageSpeed Insights](https://pagespeed.web.dev/) reports
-**Fast and SEO friendly blog** with automatic **RSS feed** ([@astrojs/rss](https://docs.astro.build/en/guides/rss/)) and [**MDX** support](https://docs.astro.build/en/guides/integrations-guide/mdx/).
- ✅ Supports **Dark mode**.
-**Analytics** built-in Google Analytics, and Splitbee integration.
-**Image optimization** ([@astrojs/images](https://docs.astro.build/en/guides/integrations-guide/image/)).
- ✅ Generation of **project sitemap** based on your routes ([@astrojs/sitemap](https://docs.astro.build/en/guides/integrations-guide/sitemap/)).
-**Open Graph tags** for social media sharing
<br>
<img src="./screenshot.png" alt="AstroWind Theme Screenshot">
[![License](https://img.shields.io/github/license/onwidget/astrowind?style=flat-square&color=%232F3741)](https://github.com/onwidget/astrowind/blob/main/LICENSE.md)
[![Maintained](https://img.shields.io/badge/maintained%3F-yes-blue.svg?style=flat-square)](https://github.com/onwidget)
[![Known Vulnerabilities](https://snyk.io/test/github/onwidget/astrowind/badge.svg?style=flat-square)](https://snyk.io/test/github/onwidget/astrowind)
[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat-square)](https://github.com/onwidget/astrowind#contributing)
![Prettier](https://img.shields.io/badge/prettier-1A2C34?style=flat-square&logo=prettier&logoColor=F7BA3E)
![Eslint](https://img.shields.io/badge/eslint-3A33D1?style=flat-square&logo=eslint&logoColor=white)
<br>
<details>
<summary>Table of Contents</summary>
- [Demo](#demo)
- [Getting started](#getting-started)
- [Project structure](#project-structure)
- [Commands](#commands)
- [Configuration](#configuration)
- [Deploy](#deploy)
- [Roadmap](#roadmap)
- [Frequently Asked Questions](#frequently-asked-questions)
- [Contributing](#contributing)
- [Acknowledgements](#acknowledgements)
- [License](#license)
</details>
<br>
## Demo
[🌀 astrowind.vercel.app](https://astrowind.vercel.app/)
<br>
## Getting started
### Project structure
Inside AstroWind template, you'll see the following folders and files:
```
/
├── data/
| └── blog/
| ├── post-slug-1.md
| ├── post-slug-2.mdx
| └── ...
├── public/
│ ├── robots.txt
│ └── favicon.ico
├── src/
│ ├── assets/
│ │ ├── images/
| | └── styles/
| | └── base.css
│ ├── components/
│ │ ├── atoms/
│ │ ├── blog/
│ │ ├── core/
| | └── widgets/
| | ├── Header.astro
| | ├── Footer.astro
| | └── ...
│ ├── layouts/
│ | |── BaseLayout.astro
│ | └── ...
│ ├── pages/
│ | ├── [...blog]/
| | | ├── [...page].astro
| | | └── [slug].astro
│ | ├── [...categories]/
| | | └── [category]/
| | | └── [...page].astro
│ | ├── [...tags]/
| | | └── [tag]/
| | | └── [...page].astro
│ | ├── index.astro
| | ├── 404.astro
| | └-- rss.xml.js
│ ├── utils/
│ └── config.mjs
├── 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.
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
Any static assets, like images, can be placed in the `public/` directory if they do not require any transformation or in the `assets/` directory if they are imported directly.
[![Edit AstroWind on CodeSandbox](https://codesandbox.io/static/img/play-codesandbox.svg)](https://githubbox.com/onwidget/astrowind/tree/main)
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
<br>
### Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :---------------- | :------------------------------------------- |
| `npm install` | Installs dependencies |
| `npm run dev` | Starts local dev server at `localhost:3000` |
| `npm run build` | Build your production site to `./dist/` |
| `npm run preview` | Preview your build locally, before deploying |
<br>
### Configuration
Basic configuration file: `./src/config.mjs`
```javascript
export const SITE = {
name: 'Example',
origin: 'https://example.com',
basePathname: '/', // Change this if you need to deploy to Github Pages, for example
trailingSlash: false, // Generate permalinks with or without "/" at the end
title: 'Example - This is the homepage title of Example',
description: 'This is the homepage description of Example',
googleAnalyticsId: false, // or "G-XXXXXXXXXX",
googleSiteVerificationId: false, // or some value,
};
export const BLOG = {
disabled: false,
postsPerPage: 4,
blog: {
disabled: false,
pathname: 'blog', // blog main path, you can change this to "articles" (/articles)
},
post: {
disabled: false,
pathname: '', // empty for /some-post, value for /pathname/some-post
},
category: {
disabled: false,
pathname: 'category', // set empty to change from /category/some-category to /some-category
},
tag: {
disabled: false,
pathname: 'tag', // set empty to change from /tag/some-tag to /some-tag
},
};
```
<br>
### Deploy
#### Deploy to production (manual)
You can create an optimized production build with:
```shell
npm run build
```
Now, your website is ready to be deployed. All generated files are located at
`dist` folder, which you can deploy the folder to any hosting service you
prefer.
#### Deploy to Netlify
Clone this repository on own GitHub account and deploy to Netlify:
[![Netlify Deploy button](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/onwidget/astrowind)
#### Deploy to Vercel
Clone this repository on own GitHub account and deploy to Vercel:
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fonwidget%2Fastrowind)
<br>
## Roadmap
- _Project_:
- Create simple and clear strategy to get template updates
- _Blog_:
- Improve blog design
- Create component or utilities for related posts
- Add more _shortcodes_ or _embed_ functions to posts in Markdown: (eg video, tweet...)
- _More widgets_:
- Add more Tailwind components useful for most scenarios (Features, Contact, Call to Actions, Content, FAQs ...)
- Create external library or place with useful Tailwind components
- _More Examples_: Add commonly used example pages (Ex: About, Terms, Services...)
- _Documentation_: Create detailed documentation with best practices and redesign tips
<br>
## Frequently Asked Questions
- Why?
-
-
<br>
## Contributing
If you have any idea, suggestions or find any bugs, feel free to open a discussion, an issue or create a pull request.
That would be very useful for all of us and we would be happy to listen and take action.
## Acknowledgements
Initially created by [onWidget](https://onwidget.com) and maintained by a community of [contributors](https://github.com/onwidget/astrowind/graphs/contributors).
## License
**AstroWind** is licensed under the Unlicense license — see the [LICENSE](https://github.com/onwidget/astrowind/blob/main/LICENSE.md) file for details.