A static website for Lucid Computing, featuring a landing page, insights blog, and content managed through CloudCannon CMS.
This repository contains the source code for the Lucid Computing website. The site showcases:
- Landing Page (
index.html) - Main marketing page with hero, features, and CTA sections - Insights Blog (
insights.html) - Blog listing page displaying published articles - Article Pages (
article.html) - Individual blog post template
The site uses Jekyll for static site generation and is configured for deployment on GitHub Pages. It also supports CloudCannon CMS for content editing.
-
Go to https://app.pagescms.org/lucid-computing/landingpage/main/collection/blog
-
Press "Add New Entry"
-
Create a new blog post. Content editors can use the CloudCannon interface to:
- Edit page content without touching code
- Upload and manage images
- Create and edit blog posts
- Manage blog post metadata (title, slug, date, author, tags, etc.)
- Set
publish: truein the frontmatter when ready to publish
-
Create a new markdown file in
blog/posts/with the naming convention:YYYY-MM-DD-post-slug.md -
Add YAML frontmatter at the top of the file:
title: Your Post Title slug: your-post-slug date: YYYY-MM-DD author: Author Name tags: - Tag 1 - Tag 2 image: media/image-path.png description: Short description for preview publish: true # Set to true to publish the post content: |- # Your Post Content
-
Set
publish: truein the frontmatter when ready to publish
To test the site locally with Jekyll:
# First time setup
bundle install
# Process posts and serve
make serve
# or: bundle exec jekyll serveNote: The make serve command automatically processes blog posts before starting the server. The site will be available at http://localhost:4000
When working with a CMS (like Pages CMS), you may encounter a "divergent branches" error when trying to pull changes. This happens because:
- CMS changes: Someone edits content through the CMS, which commits directly to the
mainbranch - Local changes: You make changes locally (e.g., fixing image paths, updating code)
- Divergence: Both branches have different commits, creating a fork in the git history
Git needs to know how to reconcile these differences, which is why you see the error:
fatal: Need to specify how to reconcile divergent branches.
Simply run:
make syncThis command does the following:
- Fetch: Downloads the latest commits from
origin/main - Merge: Creates a merge commit combining CMS changes with your local work
- Regenerate: Updates
data/processed_posts.jsonand_data/processed_posts.jsonto include all published posts
If there are actual merge conflicts (same file edited in conflicting ways), Git will pause and ask you to resolve them manually. This is rare when CMS edits are separate from code changes.
Each blog post supports the following frontmatter fields:
title(string) - Post titleslug(string) - URL-friendly identifierdate(date) - Publication date (YYYY-MM-DD)author(string) - Author nametags(list) - Array of tag stringsimage(image) - Cover image pathdescription(string) - Short description for previewspublish(boolean) - Whether the post should be published (default: true)content(rich-text) - Post content (markdown) - stored in frontmatter for CMS compatibility
- Jekyll processes markdown files in
blog/posts/automatically - Posts with
publish: trueappear on the live site - Content is converted from markdown to HTML during build
- GitHub Pages builds the site automatically on every push
- No manual conversion scripts needed!