Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zachsaucier/sveltekit-blog
Zach Saucier's personal blog, built on Sveltekit.
https://github.com/zachsaucier/sveltekit-blog
blog pagefind svelte sveltekit
Last synced: about 2 months ago
JSON representation
Zach Saucier's personal blog, built on Sveltekit.
- Host: GitHub
- URL: https://github.com/zachsaucier/sveltekit-blog
- Owner: ZachSaucier
- License: mit
- Created: 2023-10-21T14:33:20.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-06T22:28:37.000Z (9 months ago)
- Last Synced: 2024-04-07T02:13:42.362Z (9 months ago)
- Topics: blog, pagefind, svelte, sveltekit
- Language: Svelte
- Homepage: https://zachsaucier.com/blog
- Size: 9.78 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# A Sveltekit blog by Zach Saucier
This blog started as a fork of Josh Collinsworth's [Sveltekit static blog starter](https://github.com/josh-collinsworth/sveltekit-blog-starter). It grew to encompass many more features and does things a bit differently.
## [Demo](https://zachsaucier.com/blog/)
## Features
- **It lives under `/blog`** instead of the top level so you can keep your main website separate.
- **Static site generation with hydration.** Every route is compiled down to static HTML and routed with (optional) JavaScript, thanks to the SvelteKit static adapter.
- **Markdown support** with GitHub Flavored Markdown (GFM).
- **Styles per component** along with a single global stylesheet for general styles (mostly article content styles). With CSS variables and CSS nesting, there's no need for SASS!
- **mdvsex support** so you can use Svelte components in your Markdown files!
- **Automatic page transitions.**
- **Responsive and accessible defaults** including a "skip to content" link, accessible navigation and components, and accessible emojis.
- **Basic SEO** for blog posts.
- **RSS feed** for users to easily subscribe to new posts.
- **Draft blog post functionality** so you can save to the same place but not have the link show up in your listings or counts.
- **Footnotes functionality**
- **Blog excerpt functionality** so that you can show the start of your blog posts on the blog homepage instead of the description.
- **Tags (categories) functionality** which make looking for specific types of posts easy.
- **Advanced pagination** where only the nearest 5 pages are shown along with "first" and "last" page buttons when applicable.
- **Support for year sub-directories within posts.** This makes organizing your posts much more pleasant. You could easily add the year to the URL if you'd like.
- **Recent posts functionality** if you want to show the last X recent posts.
- **Archive functionality** which is similar to the blog listing but only shows the title and tags with a different layout that focuses on the year it was published. [Demo](https://zachsaucier.com/blog/archive/).
- **Collapsible sidebar**.
- **Tweet and CodePen embeds**.
- **Image lightboxing functionality** with built in image serving for high DPI devices.
- **High quality search functionality** using [Pagefind](https://pagefind.app/).
- **Clickable section headings** to make sharing to a particular part of a post a breeze.
- **Table of contents for blog posts** that outlines the sections of each page.
- **Tweet button** to let users more easily share to Twitter (X).
- **Automatic widow prevention** to make your blocks of text look better.
- **Email signup functionality.** It makes use of Mailchimp, but you could easily switch out the email provider for another of your choice.## Getting started
I recommend forking this repo and then cloning it from there so that your changes are independent of the ones I will make in the future.
Use `npm run dev` to get it running locally.
In order to get the search functionality working locally, you must build the project using `npm run build`. If you want the search content to update, you need to rebuild the project.
## Documentation
Good sources for docs are:
- [The Sveltekit blog starter kit README](https://github.com/josh-collinsworth/sveltekit-blog-starter) that this project was forked from
- [The Svelte docs](https://kit.svelte.dev/docs)## Getting help
You're free to create an issue on this repo and if I have the time I am likely to respond. But no promises!