generated from hellotham/hello-astro
-
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
349011f
commit f725f69
Showing
287 changed files
with
4,184 additions
and
1,449 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# Contributor Covenant Code of Conduct | ||
|
||
## Our Pledge | ||
|
||
In the interest of fostering an open and welcoming environment, we as | ||
contributors and maintainers pledge to making participation in our project and | ||
our community a harassment-free experience for everyone, regardless of age, body | ||
size, disability, ethnicity, sex characteristics, gender identity and expression, | ||
level of experience, education, socio-economic status, nationality, personal | ||
appearance, race, religion, or sexual identity and orientation. | ||
|
||
## Our Standards | ||
|
||
Examples of behavior that contributes to creating a positive environment | ||
include: | ||
|
||
* Using welcoming and inclusive language | ||
* Being respectful of differing viewpoints and experiences | ||
* Gracefully accepting constructive criticism | ||
* Focusing on what is best for the community | ||
* Showing empathy towards other community members | ||
|
||
Examples of unacceptable behavior by participants include: | ||
|
||
* The use of sexualized language or imagery and unwelcome sexual attention or | ||
advances | ||
* Trolling, insulting/derogatory comments, and personal or political attacks | ||
* Public or private harassment | ||
* Publishing others' private information, such as a physical or electronic | ||
address, without explicit permission | ||
* Other conduct which could reasonably be considered inappropriate in a | ||
professional setting | ||
|
||
## Our Responsibilities | ||
|
||
Project maintainers are responsible for clarifying the standards of acceptable | ||
behavior and are expected to take appropriate and fair corrective action in | ||
response to any instances of unacceptable behavior. | ||
|
||
Project maintainers have the right and responsibility to remove, edit, or | ||
reject comments, commits, code, wiki edits, issues, and other contributions | ||
that are not aligned to this Code of Conduct, or to ban temporarily or | ||
permanently any contributor for other behaviors that they deem inappropriate, | ||
threatening, offensive, or harmful. | ||
|
||
## Scope | ||
|
||
This Code of Conduct applies both within project spaces and in public spaces | ||
when an individual is representing the project or its community. Examples of | ||
representing a project or community include using an official project e-mail | ||
address, posting via an official social media account, or acting as an appointed | ||
representative at an online or offline event. Representation of a project may be | ||
further defined and clarified by project maintainers. | ||
|
||
## Enforcement | ||
|
||
Instances of abusive, harassing, or otherwise unacceptable behavior may be | ||
reported by contacting the project team at david@netlify.com. All | ||
complaints will be reviewed and investigated and will result in a response that | ||
is deemed necessary and appropriate to the circumstances. The project team is | ||
obligated to maintain confidentiality with regard to the reporter of an incident. | ||
Further details of specific enforcement policies may be posted separately. | ||
|
||
Project maintainers who do not follow or enforce the Code of Conduct in good | ||
faith may face temporary or permanent repercussions as determined by other | ||
members of the project's leadership. | ||
|
||
## Attribution | ||
|
||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, | ||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html | ||
|
||
[homepage]: https://www.contributor-covenant.org | ||
|
||
For answers to common questions about this code of conduct, see | ||
https://www.contributor-covenant.org/faq |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# CONTRIBUTING | ||
|
||
Contributions are always welcome, no matter how large or small. Before contributing, | ||
please read the [code of conduct](CODE_OF_CONDUCT.md). | ||
|
||
## Setup | ||
|
||
> Install yarn on your system: [https://yarnpkg.com/en/docs/install](https://yarnpkg.com/en/docs/install) | ||
### Install dependencies | ||
|
||
> Only required on the first run, subsequent runs can use `yarn` to both | ||
bootstrap and run the development server using `yarn develop`. | ||
Since this starter using the [netlify-dev](https://www.netlify.com/products/dev/#how-it-works), there could be further issues you, please check the [netlify-dev](https://github.com/netlify/netlify-dev) repository for further information and set up questions. | ||
|
||
```sh | ||
$ git clone https://github.com/netlify-templates/gatsby-starter-netlify-cms | ||
$ yarn | ||
``` | ||
|
||
## Available scripts | ||
|
||
|
||
### `build` | ||
|
||
Build the static files into the `public` folder, turns lambda functions into a deployable form. | ||
|
||
#### Usage | ||
|
||
```sh | ||
$ yarn build | ||
``` | ||
|
||
### `clean` | ||
|
||
Runs `gatsby clean` command. | ||
|
||
#### Usage | ||
|
||
```sh | ||
yarn clean | ||
``` | ||
|
||
### `netlify dev` | ||
|
||
Starts the netlify dev environment, including the gatsby dev environment. | ||
For more infor check the [Netlify Dev Docs](https://github.com/netlify/cli/blob/master/docs/netlify-dev.md) | ||
|
||
```sh | ||
netlify dev | ||
``` | ||
|
||
### `develop` or `start` | ||
|
||
Runs the `clean` script and starts the gatsby develop server using the command `gatsby develop`. We recomend using this command when you don't need Netlify specific features | ||
|
||
#### Usage | ||
|
||
```sh | ||
yarn develop | ||
``` | ||
### `test` | ||
|
||
Not implmented yet | ||
|
||
#### Usage | ||
|
||
```sh | ||
yarn test | ||
``` | ||
|
||
### `format` | ||
|
||
Formats code and docs according to our style guidelines using `prettier` | ||
|
||
#### Usage | ||
|
||
```sh | ||
yarn format | ||
``` | ||
|
||
|
||
## Pull Requests | ||
|
||
We actively welcome your pull requests! | ||
|
||
If you need help with Git or our workflow, please ask on [Gitter.im](https://gitter.im/netlify/NetlifyCMS). We want your contributions even if you're just learning Git. Our maintainers are happy to help! | ||
|
||
Netlify CMS uses the [Forking Workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow) + [Feature Branches](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow). Additionally, PR's should be [rebased](https://www.atlassian.com/git/tutorials/merging-vs-rebasing) on master when opened, and again before merging. | ||
|
||
1. Fork the repo. | ||
2. Create a branch from `master`. If you're addressing a specific issue, prefix your branch name with the issue number. | ||
2. If you've added code that should be tested, add tests. | ||
3. If you've changed APIs, update the documentation. | ||
4. Run `yarn test` and ensure the test suite passes. (Not applicable yet) | ||
5. Use `yarn format` to format and lint your code. | ||
6. PR's must be rebased before merge (feel free to ask for help). | ||
7. PR should be reviewed by two maintainers prior to merging. | ||
|
||
## License | ||
|
||
By contributing to the Gatsby - Netlify CMS starter, you agree that your contributions will be licensed | ||
under its [MIT license](LICENSE). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<!-- Thanks for submitting a pull request! Please provide enough information so that others can review your pull request. --> | ||
<!-- Explain the **motivation** for making this change. What existing problem does the pull request solve? --> | ||
<!-- Try to link to an open issue for more information. --> | ||
|
||
|
||
<!-- In addition to that please answer these questions: --> | ||
|
||
**What kind of change does this PR introduce?** | ||
|
||
<!-- E.g. a bugfix, feature, refactoring, build related change, etc… --> | ||
|
||
**Does this PR introduce a breaking change?** | ||
|
||
<!-- If this PR introduces a breaking change, please describe the impact and a migration path for existing applications. --> | ||
|
||
**What needs to be documented once your changes are merged?** | ||
|
||
<!-- List all the information that needs to be added to the documentation after merge --> | ||
<!-- When your changes are merged you will be asked to contribute this to the documentation --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,180 +1,4 @@ | ||
# hello-astro | ||
# Hello Tham Website (Astro) | ||
|
||
Hello Astro is a full featured [Astro](https://astro.build) multi-purpose starter theme written in Typescript and TailwindCSS. It supports Markdown and MDX based pages and blog posts. | ||
|
||
![Light](https://github.com/hellotham/hello-astro/raw/main/screenshot-light.png) | ||
|
||
![Dark](https://github.com/hellotham/hello-astro/raw/main/screenshot-dark.png) | ||
|
||
![Lighthouse](https://github.com/hellotham/hello-astro/raw/main/lighthouse.png) | ||
|
||
Hello Astro can used for any/all of the following: | ||
|
||
- corporate/marketing site | ||
- blog | ||
- documentation site | ||
- portfolio site supporting photo galleries | ||
|
||
Uses the following integrations: | ||
|
||
- @astrojs/mdx | ||
- @astrojs/markdoc | ||
- @astrojs/sitemap | ||
- @astrojs/rss | ||
- @astrojs/tailwind | ||
- @astrojs/alpinejs | ||
- astro-icon | ||
- astro-seo | ||
- astro-robots-txt | ||
|
||
In addition, SVG and PNG illustrations sourced from [Undraw](https://undraw.co) | ||
|
||
This project initially started as a bare bones port of [hello-gatsby-starter](https://github.com/hellotham/hello-gatsby-starter), but now contains more features (light/dark modes, category pages, search, diagrams, math and more!) | ||
|
||
## Features | ||
|
||
- Full-featured blog with frontmatter (title, description, author, date, image, tags) | ||
- High performance low overhead with minimal Javascript (AlpineJS) | ||
- Full text client based search of blog pages via lunrjs (search index only loaded on first invocation of search on a page) | ||
- Index page and individual pages for authors, categories and tags, including pagination | ||
- Support for RSS feed, sitemap and robots.txt | ||
- SVG design (unDraw, Hero Patterns, Iconify) | ||
- Support for code syntax highlighting | ||
- Full SEO support including Open Graph, Twitter Cards and Schema.org via JSON-LD | ||
- Full support for Light and dark UI modes, as well as following system preferences, in accordance to TailwindCSS recommendation | ||
- Customised 404 error page | ||
- Display math equations using KaTeX via remark-math/rehype-katex (enclosed in `$`...`$` or `$$`...`$$`) | ||
- Display Mermaid, Markmap, PlantUML diagrams (authored as a code block with language `mermaid`, `markmap` and `plantuml`) | ||
- Display map at geo coordinates and zoom level using `Map` component (need to also include `extra: ['map']` is frontmatter to load CSS/JS assets for page) | ||
- Calculates and show reading time for blog posts | ||
- CSS/JS assets of external libraries loaded only when needed on a per page and per package basis - no unnecessary bloat | ||
- Photo gallery and lightbox using PhotoSwipe (including display of EXIF tags) | ||
- Carousel component using Swiper | ||
- Documentation pages (modelled after astro docs starter but using Tailwind) | ||
|
||
## External Packages | ||
|
||
The start uses the following external packages: | ||
|
||
- [Astro](https://astro.build/) | ||
- [TypeScript](https://www.typescriptlang.org/) | ||
- [TailwindCSS](https://tailwindcss.com) and [TailwindUI](https://tailwindui.com) | ||
- [Iconify](https://iconify.design/) | ||
- [Hero Patterns](https://heropatterns.com/) | ||
- [unDraw](https://undraw.co/) for illustrations | ||
- [MDX](https://mdxjs.com/) and [Markdown](https://www.markdownguide.org/) | ||
- [Schema.org](https://schema.org/) and [JSON for Linking Data](https://json-ld.org/), type-checked using [schema-dts](https://github.com/google/schema-dts) | ||
- [Open Graph](https://ogp.me/) used by [Facebook](https://developers.facebook.com/docs/sharing/webmasters/#markup) | ||
- [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards) | ||
- [AlpineJS](https://alpinejs.dev) | ||
- Local full text search using [Lunr](https://lunrjs.com) | ||
- Math equations using [KaTeX](https://katex.org) via [remark-math and rehype-katex](https://github.com/remarkjs/remark-math) | ||
- Diagrams using [Mermaid](https://mermaid-js.github.io/mermaid/#/), [Markmap](https://markmap.js.org) and [PlantUML](https://plantuml.com) | ||
- Open Street Map using [Leaflet](https://leafletjs.com/) | ||
- [reading-time](https://github.com/ngryman/reading-time) | ||
- [PhotoSwipe](https://photoswipe.com) | ||
- [exifr](https://mutiny.cz/exifr/) | ||
- [Swiper](https://swiperjs.com/) | ||
- [Remark Emoji](https://github.com/rhysd/remark-emoji) | ||
|
||
It follows the [JAMstack architecture](https://jamstack.org) by automatically building a static version from the Git repository. The demo is deployed on Github Pages. | ||
|
||
## 🚀 Project Structure | ||
|
||
Inside this starter, you'll see the following folders and files: | ||
|
||
```text | ||
/ | ||
├── public/ | ||
│ └── favicon.ico | ||
├── src/ | ||
│ ├── assets/ | ||
│ │ ├── image.png | ||
│ │ └── gallery/ | ||
│ │ └── gallery-name/ | ||
│ │ └── image.jpg | ||
│ ├── components/ | ||
│ │ └── header.astro | ||
│ ├── content/ | ||
│ │ ├── blog/ | ||
│ │ | └── 2022-08-01-post.md | ||
│ │ ├── doc/ | ||
│ │ | └── documentation-page.md | ||
| │ └── config.ts | ||
│ ├── layouts/ | ||
│ │ ├── base.astro | ||
│ │ ├── blog.astro | ||
│ │ └── doc.astro | ||
│ ├── pages/ | ||
│ │ ├── index.astro | ||
│ │ └── contact.astro | ||
│ └── config.ts | ||
└── package.json | ||
``` | ||
|
||
Astro looks for `.astro`, `.md` or `.mdx` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. | ||
|
||
`src/components/` is where we put any Astro components and similarly `src/layouts/` for layouts. | ||
|
||
Images can be placed in `src/assets/`. | ||
|
||
Blog and documentation content are created as collections of Markdown or MDX files in `src/content`. | ||
|
||
Any static assets, eg. images, can be placed in the `public/` directory. | ||
|
||
## 🧞 Commands | ||
|
||
All commands are run from the root of the project, from a terminal: | ||
|
||
| Command | Action | | ||
| :------------------ | :------------------------------------------------- | | ||
| `pnpm install` | Installs dependencies | | ||
| `pnpm dev` | Starts local dev server at `localhost:3000` | | ||
| `pnpm build` | Build your production site to `./dist/` | | ||
| `pnpm preview` | Preview your build locally, before deploying | | ||
| `pnpm lint` | Pretty print the source code | | ||
| `pnpm check` | Check the source code for errors | | | ||
| `pnpm astro ...` | Run CLI commands like `astro add`, `astro preview` | | ||
| `pnpm astro --help` | Get help using the Astro CLI | | ||
|
||
## Release History | ||
|
||
- 1.0.0: Initial Release | ||
- 1.0.1: Moved social images to src, improved coverImage processing | ||
- 1.0.2: Upgrade packages to latest | ||
- 1.1.0: Update to astro v2.x, now works with node 18 and 19 | ||
- 2.0.0: New version supporting Astro collections! Also clarified that this is a | ||
multipurpose theme. Search can now include both Markdown and MDX pages! | ||
- 2.0.1: Updated screenshots, and improved landing page. | ||
- 2.1.0: updated to latest packages, fixed dev links, backported features from | ||
personal blog, including Next/Prev links, photo gallery support in Markdown, | ||
and improved pagination control. | ||
- 2.2.0: Fixed lint errors, reimplemented map, lightbox and carousel to use | ||
leaflet, photoswipe and swiper packages instead of relying on external CDN. | ||
- 2.2.1: Update to astro 2.0.10, fixed asset loading issue with base | ||
- 2.3.0: Removed layout from blog and doc content | ||
- 2.4.0:`@astrojs/images` now support `svg` so no need for special handling | ||
- 2.4.1: Use rendered frontmatter for blog and doc posts, fixes issue with diagrams not rendering. | ||
- 2.4.2: Updated packages | ||
- 3.0.0: Major update: | ||
- Use new Astro optimised asset support | ||
- new Astro logo | ||
- optimised post draft filtering | ||
- cleaned up gallery | ||
- fixed up SEO errors | ||
- cleaned up lint errors | ||
- migrated authors and categories to collections and use referential integrity based on Astro 2.5.0 | ||
- converted social links to a data collection (requires Astro >2.5.0) | ||
- updated favicon and header metadata | ||
- improve search to include documentation | ||
- 3.1.0: Enhancement update: | ||
- Migrated package manager from yarn to pnpm | ||
- Reference base for head links | ||
- Added eslint and prettier with plugins | ||
- Fixed image attributes error in seo component | ||
- Updated tsconfig to match astro strict | ||
- Update Katex CSS link | ||
- Fixed author not appearing in blog card | ||
- Added Markdoc support | ||
- 3.1.1: Minor update: | ||
- Lazy load images | ||
This is the Hello Tham Corporate Website Static Web App built using the | ||
[Hello Astro](https://github.com/hellotham/hello-astro) starter. This version is deployed on Github Pages. |
Oops, something went wrong.