seeemess
v1.0.10
Published
A simple CMS framework built on Eleventy with an admin interface for managing blog content.
Downloads
787
Maintainers
Readme
SeeEmEss
A simple CMS framework built on Eleventy with an admin interface for managing blog content. It is by-design simple.
Features
- Admin interface for creating and editing posts
- Image upload with automatic resizing
- Git-based publishing workflow
- Configurable content sections
- Eleventy filters for dates and content formatting
Caveats
This is an opinionated project that is extremely limited. It relies on GitHub. The admin interface has no authentication mechanism, so it can only run locally with changes are published via GitHub actions.
If you think want this SeeEmEssOpen be better, I'm happy to review pull requests.
Installation
npm install seeemessUsage
1. Set up Eleventy filters
In your eleventy.config.js:
import filters from 'seeemess/filters';
export default function(eleventyConfig) {
// Add SeeEmEss filters
filters(eleventyConfig);
// Your other config...
}2. Create admin entry point
Create admin/start.js in your project:
import { startAdminServer } from 'seeemess';
startAdminServer({
sections: [
{ id: 'posts', name: 'Blog Posts', folder: 'posts', tag: 'post' },
{ id: 'news', name: 'News', folder: 'news', tag: 'news' }
]
});3. Add npm script
In your package.json:
{
"scripts": {
"admin": "node admin/start.js"
}
}4. Run the admin
npm run adminThe admin interface will be available at http://localhost:3000.
Configuration Options
startAdminServer({
// Required: Define your content sections
sections: [
{ id: 'posts', name: 'Blog Posts', folder: 'posts', tag: 'post' }
],
// Optional: Override defaults
cmsRoot: process.cwd(), // Project root directory
contentDir: './content/blog', // Where posts are stored
publicDir: './public', // Where images are uploaded
port: 3000 // Admin server port
});Available Filters
When you import seeemess/filters, the following Eleventy filters are added:
readableDate- Format dates for displayhtmlDateString- Format dates for HTML datetime attributeshead- Get first N items from arraymin- Get minimum valuegetKeys- Get object keysfilterTagList- Filter out system tagscapitalize- Title case textsortAlphabetically- Sort strings alphabeticallythumbSuffix- Add size suffix to image filenamessmartQuotes- Convert straight quotes to typographic quotes
Optional: AI Synopsis Generation
The admin interface includes a "Generate Synopsis" button that uses Ollama to automatically generate post summaries.
Requirements:
- Install Ollama: https://ollama.ai/download
- Pull the llama3 model:
ollama pull llama3 - Ensure Ollama is running when using the admin
If Ollama is not available, the button will show an error but the rest of the admin works normally.
Project Structure
Your project should have this structure:
your-site/
├── admin/
│ └── start.js # Admin entry point
├── content/
│ └── blog/ # Your posts (organized by section folders)
├── public/ # Uploaded images
├── _includes/ # Your Eleventy layouts
├── eleventy.config.js
└── package.jsonLicense
MIT
