Giter VIP home page Giter VIP logo

astro-paper's Introduction

AstroPaper ๐Ÿ“„

AstroPaper Typescript GitHub Conventional Commits Commitizen friendly

AstroPaper is a minimal, responsive, accessible and SEO-friendly Astro blog theme. This theme is designed and crafted based on my personal blog.

This theme follows best practices and provides accessibility out of the box. Light and dark mode are supported by default. Moreover, additional color schemes can also be configured.

This theme is self-documented _ which means articles/posts in this theme can also be considered as documentations. Read the blog posts or check the README Documentation Section for more info.

๐Ÿ”ฅ Features

  • type-safe markdown
  • super fast performance
  • accessible (Keyboard/VoiceOver)
  • responsive (mobile ~ desktops)
  • SEO-friendly
  • light & dark mode
  • fuzzy search
  • draft posts & pagination
  • sitemap & rss feed
  • followed best practices
  • highly customizable
  • dynamic OG image generation for blog posts #15 (Blog Post)

Note: I've tested screen-reader accessibility of AstroPaper using VoiceOver on Mac and TalkBack on Android. I couldn't test all other screen-readers out there. However, accessibility enhancements in AstroPaper should be working fine on others as well.

โœ… Lighthouse Score

AstroPaper Lighthouse Score

๐Ÿš€ Project Structure

Inside of AstroPaper, you'll see the following folders and files:

/
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ””โ”€โ”€ logo.svg
โ”‚   โ”‚   โ””โ”€โ”€ logo.png
โ”‚   โ””โ”€โ”€ favicon.svg
โ”‚   โ””โ”€โ”€ astropaper-og.jpg
โ”‚   โ””โ”€โ”€ robots.txt
โ”‚   โ””โ”€โ”€ toggle-theme.js
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ assets/
โ”‚   โ”‚   โ””โ”€โ”€ socialIcons.ts
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ content/
โ”‚   โ”‚   |  blog/
โ”‚   โ”‚   |    โ””โ”€โ”€ some-blog-posts.md
โ”‚   โ”‚   โ””โ”€โ”€ config.ts
โ”‚   โ”œโ”€โ”€ layouts/
โ”‚   โ””โ”€โ”€ pages/
โ”‚   โ””โ”€โ”€ styles/
โ”‚   โ””โ”€โ”€ utils/
โ”‚   โ””โ”€โ”€ config.ts
โ”‚   โ””โ”€โ”€ types.ts
โ””โ”€โ”€ 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.

Any static assets, like images, can be placed in the public/ directory.

All blog posts are stored in src/content/blog directory.

๐Ÿ“– Documentation

Documentation can be read in two formats_ markdown & blog post.

For AstroPaper v1, check out this branch and this live URL

๐Ÿ’ป Tech Stack

Main Framework - Astro
Type Checking - TypeScript
Component Framework - ReactJS
Styling - TailwindCSS
UI/UX - Figma
Fuzzy Search - FuseJS
Icons - Boxicons | Tablers
Code Formatting - Prettier
Deployment - Cloudflare Pages
Illustration in About Page - https://freesvgillustration.com
Linting - ESLint

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป Running Locally

The easiest way to run this project locally is to run the following command in your desired directory.

# npm 6.x
npm create astro@latest --template satnaing/astro-paper

# npm 7+, extra double-dash is needed:
npm create astro@latest -- --template satnaing/astro-paper

# yarn
yarn create astro --template satnaing/astro-paper

Google Site Verification (optional)

You can easily add your Google Site Verification HTML tag in AstroPaper using environment variable. This step is optional. If you don't add the following env variable, the google-site-verification tag won't appear in the html <head> section.

# in your environment variable file (.env)
PUBLIC_GOOGLE_SITE_VERIFICATION=your-google-site-verification-value

๐Ÿงž 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:4321
npm run build Build your production site to ./dist/
npm run preview Preview your build locally, before deploying
npm run format:check Check code format with Prettier
npm run format Format codes with Prettier
npm run sync Generates TypeScript types for all Astro modules. Learn more.
npm run cz Commit code changes with commitizen
npm run lint Lint with ESLint

Warning! Windows PowerShell users may need to install the concurrently package if they want to run diagnostics during development (astro check --watch & astro dev). For more info, see this issue.

โœจ Feedback & Suggestions

If you have any suggestions/feedback, you can contact me via my email. Alternatively, feel free to open an issue if you find bugs or want to request new features.

๐Ÿ“œ License

Licensed under the MIT License, Copyright ยฉ 2023


Made with ๐Ÿค by Sat Naing ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป and contributors.

astro-paper's People

Contributors

satnaing avatar tanishqmanuja avatar dependabot[bot] avatar shamwela avatar elpekenin avatar akarachen avatar ngarbezza avatar pickyzz avatar ajitzero avatar masteramarjeet avatar floatingpurr avatar ariperkkio avatar beeburrt avatar carlesbarreda avatar chrskerr avatar mrgkanev avatar lobbyboy-dray avatar johnhooks avatar luks17 avatar maheshrijal avatar mateusabelli avatar alaev avatar minadwaita avatar nihaals avatar realotakuboi avatar robroseknows avatar saif71 avatar nexxeln avatar audacioustux avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.