Skip to content

About

My personal webpage.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Brocade Darkness

A static Hexo blog using the npm-packaged Landscape theme. Posts are ordinary Markdown files in source/_posts/. The blog initially has no posts.

Local setup

Install the Node 24 version listed in .node-version, which GitHub Actions also uses. From this repository, run:

npm ci
npm run server

Open http://localhost:4000. Stop the preview with Ctrl+C.

Write a post

npm run new -- "Post title"

Edit the created file in source/_posts/, keeping its YAML front matter. Preview with npm run server, then commit and push. Dates use Europe/Stockholm and post URLs use year/month/day/title. There is no global Hexo installation requirement.

npm run clean
npm run build

The build writes public/. Do not commit that directory, node_modules/, or db.json. The lockfile should be committed. .local-tools/ and .npm-cache/ are ignored repository-local validation tools/cache, not required by the blog.

Deployment

Before the first deployment, set Settings → Pages → Build and deployment → Source to GitHub Actions, and ensure Actions are enabled for this repository. Review and commit this migration before pushing: pushing to master triggers publication. Pull requests build without deploying. The Pages workflow can also be run manually from master after the Pages setting is configured.

The workflow installs the lockfile dependencies, builds the site, and deploys the public/ artifact. No personal access token or Git deployment plugin is needed. The site URL is https://brocadedarkness.github.io.

Appearance and configuration

Site settings live in _config.yml; theme settings in _config.landscape.yml. The original banner is retained in source/images/banner.jpg. Landscape is installed through npm, with no local fork. FancyBox is disabled. Search, sharing, and the theme's own JavaScript remain as provided by Landscape because they are built into its templates. No legacy scripts are carried over.

The generated 2015 site remains available in Git history. Its posts and URLs are not migrated.

scripts/empty-blog.js supplies empty homepage/archive/feed routes while there are no posts, since the standard generators omit them. It yields to those generators automatically after the first post. It does not create any post content.

About

My personal webpage.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages