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.
- 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.js
to see if you want to configure any option differently. See the Lume documentation site. - Make sure you have the latest version of Deno and lume installed:
deno upgrade && lume upgrade
- Run Lume
lume --serve
about.md
shows how to add a content page.posts/
has the blog posts but really they can live in any directory. Theposts/_data.yml
file adds the value fortype
andlayout
fields to all posts.- The
menu
field adds any page to the top level site navigation. For example, this is in use onindex.njk
andabout.md
. You can configure the order withmenu.order
and the text withmenu.title
. css
files are processed withpostcss
plugin. The imported styles are in_includes/css
img
folder is copied as is, (keeping the same directory structure).- The blog post feed template is in
feed.xml.njk
andfeed.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.njk
is a Nunjucks a reusable template used to display a list of all the posts.index.njk
has 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.yml
and edit the--location
option with the url of the site, for example--location=https://username.github.io/repo/
- Enable Github Pages and select the branch
gh-pages
as source. - See a live demo
- Open the file
.github/workflows/build.yml
and edit the--location
option 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.yml
and edit the following:- The
--location
option with the url of the site, for example:--location=https://my-blog.deno.dev
- The project name in the
denoland/deployctl
step 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--location
option 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.toml
file 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.json
file and edit the--location=https://example.on.fleek.co
option 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--location
option with the name of your domain. - Output directory:
_site
- Build Command:
- See a live demo
- Configure the
amplify.yml
file 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