A blog-ready 11ty starter based on PostCSS and Snowpack, with a RSS feed and Native Elements.
📰 Integrated RSS Feed.
💅 PostCSS with PostCSS Preset Env and cssnano to enhance and clean your css.
🏅 No CSS or JS frameworks to remove. Just add what you need.
📝 Basic blog structure.
📦 Basic building with Snowpack.
🎚 Configuration file to set meta data and global settings.
🎨 Code highlights which you can disable with a flag.
⚡️ Superpowered HTML elements with Native Elements.
🤖 Custom blog posts parser to create <figure>
and wrap iframes
⚙️ Service Worker generated by eleventy-plugin-pwa
- Eleventy for templates and site generation
- PostCSS and PostCSS Preset Env to process your CSS
- cssnano to minimize, merge and optimize the CSS output
- Snowpack for a simple asset build pipeline
- Turbolinks makes navigating your web application faster
- What Input to show outline only when navigating with keyboard
You can download the scaffolding to create a new project structure with one command:
npx degit equinusocio/xity-starter
This command will download the project to your current working directory and remove the .github
and .vscode
folders.
After the project structure has been downloaded, you should install the required dependencies:
yarn install
This command will run eleventy
and the snowpack
with auto reload.
yarn start
To generate your static site you can run the following command. It will build the project and run optimisations for a production release inside the /build
folder.
yarn build
XITY provides also two more commands useful to update dependencies and the cssdb used by Browserslist and PostCSS:
# Update dependencies interactively
yarn update:deps
# Update the cssdb definitions. Run it every month.
yarn update:cssdb
# Run prettier against md, css, and js files
yarn lint
You can easily configure your site by changing the settings inside the xity.config.js
configuration file.
Here are the default settings you will get with this project structure:
{
// Site name used as default site title
"name": "Eleventy blog/site starter",
// Short description used as default page description
"shortDesc": "A starting point to make blogs and sites. It’s not a template.",
// Default document language
"lang": "en",
// The default website base url
"url": "localhost",
// Social shares author username
"authorHandle": "@equinusocio",
// Social shares author name
"authorName": "Mattia Astorino",
// Tip payment url, if you want to monetize your site
"paymentPointer": "$twitter.xrptipbot.com/equinusocio",
// Code highlight theme, must reflect the file name inside /assets/css.
// Remove to disable it
"syntaxTheme": "prism-material-light.css",
// CSS classes applied to the "#" anchor elements inside headings
"permalinkClass": ["permalink"],
// CSS classes applied to the iframes wrapper
"iframesClass": ["iframes-wrapper"],
// CSS classes applied to highlighted code snippets
"codeClass": ["code-wrapper"],
}