A starter repository showing how to build a blog with the Lume static site generator.
This project started as a fork of eleventy-base-blog but adapted to Lume and with the NetlifyCMS.
- Make sure you have Deno installed.
- Clone this Repository
git clone https://github.com/lumeland/base-blog.git my-blog-name - Edit
_data/site.yml. Specifically have a look at_config.jsto see if you want to configure any option differently. See the Lume documentation site. - Run Lume with
deno task serve.
about.mdshows how to add a content page.posts/has the blog posts but really they can live in any directory. Theposts/_data.ymlfile adds the value fortypeandlayoutfields to all posts.- The
menufield adds any page to the top level site navigation. For example, this is in use onindex.njkandabout.md. You can configure the order withmenu.orderand the text withmenu.title. cssfiles are processed withpostcssplugin. The imported styles are in_includes/cssimgfolder is copied as is, (keeping the same directory structure).- The blog post feed template is in
feed.xml.njkandfeed.tmpl.js. - This example uses four layouts stored in
_includes/layouts/:base.njk: the top level HTML structurehome.njk: the home page template (wrapped intobase.njk)post.njk: the blog post template (wrapped intobase.njk)tag.njk: the tag page template (wrapped intobase.njk)
_includes/templates/postlist.njkis a Nunjucks a reusable template used to display a list of all the posts.index.njkhas an example of how to use it.admin/has the NetlifyCMS configuration so you can edit or create new posts using a friendly CMS.
- Get your own Lume blog on Github Pages
- Open the file
.github/workflows/build.ymland edit the--locationoption with the url of the site, for example--location=https://username.github.io/repo/ - Enable Github Pages and select the branch
gh-pagesas source. - See a live demo
- Open the file
.gitlab-ci.ymland edit the--locationoption with the url of the site, for example--location=https://username.gitlab.io/repo/ - See a live demo
- Create a project in Deno Deploy and configure it.
- Link to your git repository
- Set the GitHub Actions deployment mode.
- Open the file
.github/workflows/deno_deploy.ymland edit the following:- The
--locationoption with the url of the site, for example:--location=https://my-blog.deno.dev - The project name in the
denoland/deployctlstep with the name of your project.
- The
- See a live demo
- Get your own Lume blog on Vercel
- You need to config your the project manually with the following values:
- Build Command:
curl -fsSL https://deno.land/x/install/install.sh | sh && /vercel/.deno/bin/deno task build --location=https://example.vercel.app/. Edit the--locationoption with the name of your domain. - Output directory:
_site
- Build Command:
- See a live demo
- Get your own Lume blog on Netlify
- Open the
netlify.tomlfile and edit the--location=https://deno-blog.netlify.app/option with your own domain. - See a live demo
- If you want to use NetlifyCMS:
- Activate the Identity service in your Netlify settings panel.
- Activate the Git Gateway.
- Invite the users to edit the content.
- Import your project
- Open the
.fleek.jsonfile and edit the--location=https://example.on.fleek.cooption with your own domain. - See a live demo
- Configure the project with the following values:
- Build Command:
curl -fsSL https://deno.land/x/install/install.sh | sh && /opt/buildhome/.deno/bin/deno task build --location=https://example.pages.dev/. Edit the--locationoption with the name of your domain. - Output directory:
_site
- Build Command:
- See a live demo
- Configure the
amplify.ymlfile with the following values:version: 1 frontend: phases: build: commands: - curl -fsSL https://deno.land/x/install/install.sh | sh - /root/.deno/bin/deno task build artifacts: baseDirectory: /_site files: - '**/*' cache: paths: []
- See a live demo