https://github.com/sandromaglione/menimal
Generate a static html-only website from markdown and css・No javascript, no package.json, focus on content 🤏
https://github.com/sandromaglione/menimal
effect effect-ts static-site static-site-generation static-site-generator
Last synced: 2 months ago
JSON representation
Generate a static html-only website from markdown and css・No javascript, no package.json, focus on content 🤏
- Host: GitHub
- URL: https://github.com/sandromaglione/menimal
- Owner: SandroMaglione
- License: mit
- Created: 2024-02-02T05:33:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-15T11:41:43.000Z (over 1 year ago)
- Last Synced: 2025-07-20T05:52:30.705Z (3 months ago)
- Topics: effect, effect-ts, static-site, static-site-generation, static-site-generator
- Language: TypeScript
- Homepage: https://www.sandromaglione.com/newsletter
- Size: 283 KB
- Stars: 13
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Menimal 🤏
`Menimal` is a minimal **static site generator**.
> Focus on content: **just write markdown files, css styles, and everything else is generated for you**

`Menimal` is minimal by design:
- No javascript (no `package.json`)
- No HTML templates
- No mdx
- No SEO or metadata***
- [Getting started](#getting-started)
- [Deploy](#deploy)
- [Folder structure](#folder-structure)
- [`pages`](#pages)
- [`static`](#static)
- [`config.json`](#configjson)
- [`style.css`](#stylecss)
- [Roadmap](#roadmap)
- [License](#license)
- [Notes](#notes)
- [Other static site generators](#other-static-site-generators)
- [Development](#development)
- [Implementation](#implementation)## Getting started
`Menimal` is a single `npx` script that you can run from everywhere without installing any package.> 👉 Make sure you have [NodeJs](https://nodejs.org/en) installed on your machine
You just need to run a single command:
```shell
npx menimal
```This will generate a `build` folder containing your static website.
### Deploy
Hosting platforms allow to define a build command and an output folder:
- Build command: `npx menimal`
- Output folder: `build`

That's all. You can deploy `Menimal` everywhere 🤝
***
## Folder structure
`Menimal` requires a precise folder structure:
- **`pages`**: contains markdown files (`.md`)
- **`static`**: contains static files (`robots.txt`, `fonts`, `favicon.ico`)
- **`config.json`**: contains site configuration (minimal)
- **`style.css`**: contains styles (single css file)> See complete and working example inside [example folder](./example/)
### [`pages`](/example/pages/)
Every markdown file will correspond to an `.html` page in the website.The name of the file `.md` is used to generate both the name of the HTML file and the title of the page:
- HTML file: same as `.md` with all lowercase characters
- Title: same as `.md` with `-` replaced by spacesFor example, `This-is-the-Title-of-the-article.md` will generate:
- HTML: `this-is-the-title-of-the-article.html`
- Title: This is the Title of the article### [`static`](/example/static/)
All the files inside `static` will be copied in the final build.Here you can add images, fonts, `robots.txt`, `favicon.ico`, `sitemap.xml`, or anything really 💁🏼♂️
### [`config.json`](/example/config.json)
For now config requires a single field: the name of the website displayed in ``:```json
{
"name": "Sandro Maglione"
}
```### [`style.css`](/example/style.css)
All the styles are defined **in a single css file**.> You can view the generated HTML structure of each file inside [templates](/src/templates/)
This file will be minified and imported in every generated page.
## Roadmap
- Preload fonts in HTML
```html```
## LicenseMIT License, see the [LICENSE.md](/LICENSE) file for details.
***
## Notes
This project is part of my weekly newsletter at [**sandromaglione.com**](https://www.sandromaglione.com/newsletter?ref=Github&utm_medium=newsletter_project&utm_term=effect).
### Other static site generators
- [Hexo](https://hexo.io/)
- [Jekyll](https://jekyllrb.com/)
- [Hugo](https://gohugo.io/)### Development
- Use `npx --loglevel silly ..` from `example` folder to debug `npx` command### Implementation
**Read all the details of the implementation in the full article** 👇