{"id":13508043,"url":"https://github.com/hellotham/hello-astro","last_synced_at":"2025-04-13T07:48:58.732Z","repository":{"id":56753050,"uuid":"523927992","full_name":"hellotham/hello-astro","owner":"hellotham","description":"Hello Astro is a multi purpose Astro starter theme written in Typescript, TailwindCSS and AlpineJS. It supports Markdown and MDX based pages and blog posts.","archived":false,"fork":false,"pushed_at":"2025-02-18T21:37:56.000Z","size":36182,"stargazers_count":180,"open_issues_count":11,"forks_count":57,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-13T07:48:46.138Z","etag":null,"topics":["alpinejs","astro","blog","dark-mode","katex","leafletjs","lunrjs","markdown","markmap","mdx","mermaidjs","open-street-map","photoswipe","plantuml","starter","static-site","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://hellotham.github.io/hello-astro","language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellotham.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"hellotham","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2022-08-12T02:13:10.000Z","updated_at":"2025-04-12T14:10:18.000Z","dependencies_parsed_at":"2023-01-20T09:47:54.183Z","dependency_job_id":"594f72a2-49ea-4c11-9d53-c140417094cb","html_url":"https://github.com/hellotham/hello-astro","commit_stats":{"total_commits":160,"total_committers":5,"mean_commits":32.0,"dds":"0.025000000000000022","last_synced_commit":"e05706cf488bcec6e4c5494a622eedfc4e47d763"},"previous_names":[],"tags_count":31,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellotham%2Fhello-astro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellotham%2Fhello-astro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellotham%2Fhello-astro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellotham%2Fhello-astro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellotham","download_url":"https://codeload.github.com/hellotham/hello-astro/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248681494,"owners_count":21144700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpinejs","astro","blog","dark-mode","katex","leafletjs","lunrjs","markdown","markmap","mdx","mermaidjs","open-street-map","photoswipe","plantuml","starter","static-site","tailwindcss","typescript"],"created_at":"2024-08-01T02:00:46.590Z","updated_at":"2025-04-13T07:48:58.700Z","avatar_url":"https://github.com/hellotham.png","language":"Astro","readme":"# hello-astro\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Language: Typescript](https://img.shields.io/badge/language-TypeScript-blue.svg?style=flat-square)](https://www.typescriptlang.org)\n[![Framework: Astro](https://img.shields.io/badge/framework-Astro-BC52EE?logo=astro\u0026logoColor=fff?style=flat-square)](https://astro.build)\n[![CSS: TailwindCSS](https://img.shields.io/badge/css-TailwindCSS-%2338B2AC.svg?logo=tailwind-css\u0026logoColor=white?style=flat-square)](https://tailwindcss.com)\n[![Github Pages Astro CI](https://github.com/hellotham/hello-astro/actions/workflows/deploy.yml/badge.svg)](https://github.com/hellotham/hello-astro/actions/workflows/deploy.yml)\n\nHello 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.\n\n![Light](https://github.com/hellotham/hello-astro/raw/main/screenshot-light.png)\n\n![Dark](https://github.com/hellotham/hello-astro/raw/main/screenshot-dark.png)\n\n![Lighthouse](https://github.com/hellotham/hello-astro/raw/main/lighthouse.png)\n\nHello Astro can used for any/all of the following:\n\n- corporate/marketing site\n- blog\n- documentation site\n- portfolio site supporting photo galleries\n\nUses the following integrations:\n\n- @astrojs/mdx\n- @astrojs/markdoc\n- @astrojs/sitemap\n- @astrojs/rss\n- @astrojs/tailwind\n- @astrojs/alpinejs\n- astro-icon\n- astro-seo\n- astro-robots-txt\n\nIn addition, SVG and PNG illustrations sourced from [Undraw](https://undraw.co)\n\nThis 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!)\n\n## Features\n\n- Full-featured blog with frontmatter (title, description, author, date, image, tags)\n- High performance low overhead with minimal Javascript (AlpineJS)\n- Full text client based search of blog pages via lunrjs (search index only loaded on first invocation of search on a page)\n- Index page and individual pages for authors, categories and tags, including pagination\n- Support for RSS feed, sitemap and robots.txt\n- SVG design (unDraw, Hero Patterns, Iconify)\n- Support for code syntax highlighting\n- Full SEO support including Open Graph, Twitter Cards and Schema.org via JSON-LD\n- Full support for Light and dark UI modes, as well as following system preferences, in accordance to TailwindCSS recommendation\n- Customised 404 error page\n- Display math equations using KaTeX via remark-math/rehype-katex (enclosed in `$`...`$` or `$$`...`$$`)\n- Display Mermaid, Markmap, PlantUML diagrams (authored as a code block with language `mermaid`, `markmap` and `plantuml`)\n- 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)\n- Calculates and show reading time for blog posts\n- CSS/JS assets of external libraries loaded only when needed on a per page and per package basis - no unnecessary bloat\n- Photo gallery and lightbox using PhotoSwipe (including display of EXIF tags)\n- Carousel component using Swiper\n- Documentation pages (modelled after astro docs starter but using Tailwind)\n\n## External Packages\n\nThe start uses the following external packages:\n\n- [Astro](https://astro.build/)\n- [TypeScript](https://www.typescriptlang.org/)\n- [TailwindCSS](https://tailwindcss.com) and [TailwindUI](https://tailwindui.com)\n- [Iconify](https://iconify.design/)\n- [Hero Patterns](https://heropatterns.com/)\n- [unDraw](https://undraw.co/) for illustrations\n- [MDX](https://mdxjs.com/) and [Markdown](https://www.markdownguide.org/)\n- [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)\n- [Open Graph](https://ogp.me/) used by [Facebook](https://developers.facebook.com/docs/sharing/webmasters/#markup)\n- [Twitter Cards](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/abouts-cards)\n- [AlpineJS](https://alpinejs.dev)\n- Local full text search using [Lunr](https://lunrjs.com)\n- Math equations using [KaTeX](https://katex.org) via [remark-math and rehype-katex](https://github.com/remarkjs/remark-math)\n- Diagrams using [Mermaid](https://mermaid-js.github.io/mermaid/#/), [Markmap](https://markmap.js.org) and [PlantUML](https://plantuml.com)\n- Open Street Map using [Leaflet](https://leafletjs.com/)\n- [reading-time](https://github.com/ngryman/reading-time)\n- [PhotoSwipe](https://photoswipe.com)\n- [exifr](https://mutiny.cz/exifr/)\n- [Swiper](https://swiperjs.com/)\n- [Remark Emoji](https://github.com/rhysd/remark-emoji)\n- [Expressive Code](https://expressive-code.com)\n\nIt follows the [JAMstack architecture](https://jamstack.org) by automatically building a static version from the Git repository. The demo is deployed on Github Pages.\n\n## 🚀 Project Structure\n\nInside this starter, you'll see the following folders and files:\n\n```text\n/\n├── public/\n│   └── favicon.ico\n├── src/\n│   ├── assets/\n│   │   ├── image.png\n│   │   └── gallery/\n│   │       └── gallery-name/\n│   │           └── image.jpg\n│   ├── components/\n│   │   └── header.astro\n│   ├── content/\n│   │   ├── blog/\n│   │   |   └── 2022-08-01-post.md\n│   │   ├── doc/\n│   │   |   └── documentation-page.md\n|   │   └── config.ts\n│   ├── layouts/\n│   │   ├── base.astro\n│   │   ├── blog.astro\n│   │   └── doc.astro\n│   ├── pages/\n│   │   ├── index.astro\n│   │   └── contact.astro\n│   └── config.ts\n└── package.json\n```\n\nAstro looks for `.astro`, `.md` or `.mdx` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.\n\n`src/components/` is where we put any Astro components and similarly `src/layouts/` for layouts.\n\nImages can be placed in `src/assets/`.\n\nBlog and documentation content are created as collections of Markdown or MDX files in `src/content`.\n\nAny static assets, eg. images, can be placed in the `public/` directory.\n\n## 🧞 Commands\n\nAll commands are run from the root of the project, from a terminal:\n\n| Command             | Action                                             |\n| :------------------ | :------------------------------------------------- |\n| `pnpm install`              | Installs dependencies                              |\n| `pnpm dev`          | Starts local dev server at `localhost:3000`        |\n| `pnpm build`        | Build your production site to `./dist/`            |\n| `pnpm preview`      | Preview your build locally, before deploying       |\n| `pnpm lint`         | Pretty print the source code                       |\n| `pnpm check`        | Check the source code for errors                   |                 |\n| `pnpm astro ...`    | Run CLI commands like `astro add`, `astro preview` |\n| `pnpm astro --help` | Get help using the Astro CLI                       |\n\n## Release History\n\n- 1.0.0: Initial Release\n- 1.0.1: Moved social images to src, improved coverImage processing\n- 1.0.2: Upgrade packages to latest\n- 1.1.0: Update to astro v2.x, now works with node 18 and 19\n- 2.0.0: New version supporting Astro collections! Also clarified that this is a\n  multipurpose theme. Search can now include both Markdown and MDX pages!\n- 2.0.1: Updated screenshots, and improved landing page.\n- 2.1.0: updated to latest packages, fixed dev links, backported features from\n  personal blog, including Next/Prev links, photo gallery support in Markdown,\n  and improved pagination control.\n- 2.2.0: Fixed lint errors, reimplemented map, lightbox and carousel to use\n  leaflet, photoswipe and swiper packages instead of relying on external CDN.\n- 2.2.1: Update to astro 2.0.10, fixed asset loading issue with base\n- 2.3.0: Removed layout from blog and doc content\n- 2.4.0:`@astrojs/images` now support `svg` so no need for special handling\n- 2.4.1: Use rendered frontmatter for blog and doc posts, fixes issue with diagrams not rendering.\n- 2.4.2: Updated packages\n- 3.0.0: Major update:\n  - Use new Astro optimised asset support\n  - new Astro logo\n  - optimised post draft filtering\n  - cleaned up gallery\n  - fixed up SEO errors\n  - cleaned up lint errors\n  - migrated authors and categories to collections and use referential integrity based on Astro 2.5.0\n  - converted social links to a data collection (requires Astro \u003e2.5.0)\n  - updated favicon and header metadata\n  - improve search to include documentation\n- 3.1.0: Enhancement update:\n  - Migrated package manager from yarn to pnpm\n  - Reference base for head links\n  - Added eslint and prettier with plugins\n  - Fixed image attributes error in seo component\n  - Updated tsconfig to match astro strict\n  - Update Katex CSS link\n  - Fixed author not appearing in blog card\n  - Added Markdoc support\n- 3.1.1: Minor update:\n  - Lazy load images\n  - Support Github emoji via remark-emoji\n- 3.1.2: Minor fixes:\n  - Check for null categories\n  - Slightly improved contact page\n  - Improved next/prev processing\n  - Updated packages\n  - Reduce size of search button to accommodate min width\n  - Changed image option for pages from object-contain to object-cover\n  - Fixed site.webmanifest\n- 3.1.3: Minor fixes:\n  - Upgrade to `@astrojs/markdoc` 0.4.x and latest astro\n  - Fixed Props declaration in [slug].astro\n  - disabled Markdoc sample file due to this issue: https://github.com/withastro/astro/issues/7520\n- 3.1.4: Minor enhancement:\n  - Unified Image processing for svg and bitmaps\n  - Enabled ViewTransitions\n- 3.1.5: Minor enhancements:\n  - Upgrade to latest version of packages\n  - Fixed minor astro check error\n- 3.2.0: Major enhancement:\n  - Updated to Astro 3.x\n  - Implement permissive Content Security Policy\n- 3.2.1: Minor enhancement:\n  - Updated packages, resolved astro check errors\n- 3.2.2: Minor enhancements:\n  - Updated packages\n  - Fixed json.ts return type for search\n- 3.2.3: Maintenance:\n  - Fixed mermaid v9 no longer working by upgradig to latest version of mermaid\n  - Upgrade packages\n- 3.2.4: Minor enhancements:\n  - Upgrade to Astro 4.x\n- 3.2.5: Minor enhancements:\n  - Upgrade packages\n  - Remove mermaid.initialize()\n- 3.2.6: Maintenance:\n  - Disable ViewTransition as it does not work with mermaid\n- 3.3.0: Maintenance:\n  - Upgraded to latest packages and astro-icon 1.x\n- 3.3.1: Maintenance:\n  - Upgraded to latest packages and fixed astro check errors\n- 3.3.2: Maintenance:\n  - Upgraded to latest packages\n  - Fixed search not working due to stricter alpine checking\n  - Migrated to standard astro tsconfig.json\n  - Fixed astro check errors\n- 3.4.0: Minor changes:\n  - Updated packages\n  - Replaced heroicons to v2\n  - Improved RSS and search indexes to include author name and email\n  - Make BlogHero accept post as props rather than frontmatter\n  - Moved Markdown pages to content collection\n  - Eliminated Frontmatter type\n- 4.0.0: Major changes:\n  - Updated packages\n  - Removed @types/photoswipe and photoswipe tsconfig\n  - Moved to RSS schema\n  - getPosts() function\n  - schema tags\n  - automatically generated sidebar links\n  - improved RSS and search metadata\n- 5.0.0: Major changes:\n  - Upgrade to Astro 5.X\n  - Changed Leaflet CSS to always use latest\n  - Migrate from bespoke mermaid implementation to rehype-mermaid\n  - Use Expressive Code\n","funding_links":["https://github.com/sponsors/hellotham"],"categories":["Astro","blog"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellotham%2Fhello-astro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellotham%2Fhello-astro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellotham%2Fhello-astro/lists"}