All Projects β†’ mdubourg001 β†’ Ssgo

mdubourg001 / Ssgo

Licence: mit
The minimalistic but flexible static site generator for Deno πŸ¦•.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Ssgo

Hexo Generator Amp
AMP ⚑ HTML (Accelerated Mobile Pages) generator for Hexo.
Stars: ✭ 129 (-15.69%)
Mutual labels:  static-site-generator
Eleventy Starter Boilerplate
πŸš€ Eleventy Starter is production-ready with SEO-friendly for quickly starting a blog. ⚑ Built with Eleventy, ESLint, Prettier, Webpack, PostCSS, Tailwind CSS and Netlify CMS (optional).
Stars: ✭ 139 (-9.15%)
Mutual labels:  static-site-generator
Gulp Hb
A sane Gulp plugin to compile Handlebars templates. Useful as a static site generator.
Stars: ✭ 145 (-5.23%)
Mutual labels:  static-site-generator
Remarker
▢️ Remark cli
Stars: ✭ 132 (-13.73%)
Mutual labels:  static-site-generator
Next Js Blog Boilerplate
πŸš€ Nextjs Blog Boilerplate is starter code for your blog based on Next framework. ⚑️ Made with Nextjs, TypeScript, ESLint, Prettier, PostCSS, Tailwind CSS.
Stars: ✭ 134 (-12.42%)
Mutual labels:  static-site-generator
X0
Document & develop React components without breaking a sweat
Stars: ✭ 1,706 (+1015.03%)
Mutual labels:  static-site-generator
Hyde
A Python Static Website Generator
Stars: ✭ 1,599 (+945.1%)
Mutual labels:  static-site-generator
Stackbit Theme Planty
Planty is an e-commerce ready theme for Stackbit, powered by Snipcart.
Stars: ✭ 151 (-1.31%)
Mutual labels:  static-site-generator
Cecil
Your content driven static site generator.
Stars: ✭ 137 (-10.46%)
Mutual labels:  static-site-generator
Rosid
Just-in-time development server and static site generator.
Stars: ✭ 139 (-9.15%)
Mutual labels:  static-site-generator
Booklit
a pretty lit content authoring system
Stars: ✭ 133 (-13.07%)
Mutual labels:  static-site-generator
Catsup
A lightweight static website generator which aims to be simple and elegant.
Stars: ✭ 135 (-11.76%)
Mutual labels:  static-site-generator
Jigsaw
Simple static sites with Laravel’s Blade.
Stars: ✭ 1,823 (+1091.5%)
Mutual labels:  static-site-generator
Grav Plugin Blackhole
The static site generator for Grav CMS
Stars: ✭ 131 (-14.38%)
Mutual labels:  static-site-generator
Rdoc
βš›οΈπŸ“„πŸš€ Fast static site generator for React, Just write Markdown file. @react-doc
Stars: ✭ 147 (-3.92%)
Mutual labels:  static-site-generator
Pelican
Static site generator that supports Markdown and reST syntax. Powered by Python.
Stars: ✭ 10,699 (+6892.81%)
Mutual labels:  static-site-generator
Gatsby Starter Try Ghost
Publish flaring fast blogs with Gatsby and Ghost
Stars: ✭ 137 (-10.46%)
Mutual labels:  static-site-generator
Gatsby Starter Netlify Cms
Example gatsby + netlify cms project
Stars: ✭ 1,932 (+1162.75%)
Mutual labels:  static-site-generator
Grain
Grain is a lightweight and powerful static website generator with custom themes to help create static, SEO-friendly websites or a blog in no time.
Stars: ✭ 149 (-2.61%)
Mutual labels:  static-site-generator
Hexo Theme Anodyne
πŸŒ‹ Original Bright Theme for Hexo
Stars: ✭ 140 (-8.5%)
Mutual labels:  static-site-generator

ssgo

The minimalistic but flexible static site generator.

ssgo is built with Deno and relies on it.

license: MIT code style: prettier netlify: passing

Documentation

Read the documentation at https://ssgo.netlify.app/docs.

Quickstart

To install ssgo using Deno:

deno install --unstable --allow-read --allow-write --allow-net --allow-run -q https://deno.land/x/ssgo/ssgo.ts

To create a ssgo project just run:

mkdir my-ssgo-project && cd my-ssgo-project
ssgo init

Here's what a ssgo project looks like:

β”œβ”€β”€ creators/    <- here go the scripts creating your pages
β”œβ”€β”€ templates/   <- here go the templates of your pages
β”œβ”€β”€ components/  <- here go your custom components
└── static/      <- here go your static files

To launch a build: just run:

ssgo

Your site will be built inside of the dist/ directory.

To start development mode with file watching, and a hot reloaded dev server:

ssgo dev

The dist/ directory will be served over http://localhost:5580.

Overview

ssgo basically relies on two types of files: templates, and creators.

Templates are the skeleton of your pages and are simply HTML files living inside the templates/ directory (and its subdirectories):

<!-- templates/my-template.html -->

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>{{ title }}</title>

    <link rel="stylesheet" href="index.css" />
  </head>
  <body>
    <h1>Hello, ssgo !</h1>
    <p>Just run <code>ssgo dev</code> to get started !</p>
  </body>
</html>

Creators are like page factories. Using a buildPage function given by ssgo, they use templates and datas to build pages. Creators live in the creators/ directory (and its subdirectories):

// creators/my-creator.ts

import type { BuildPage } from "https://deno.land/x/ssgo/mod.ts"
import { fetchTitle } from "../src/api.ts"

export default async function (buildPage: BuildPage) {
  const title = await fetchTitle()

  buildPage(
    "my-template.html" // template to use to build the page,
    { title: title } // data to use to build the page,
    { filename: "index.html", dir: "" } // build options
  )
}

ssgo also provides much more cool stuffs like components, automatic static files management, or just-in-time page build in dev mode. You can learn more about all this things by reading the documentation.

Roadmap

  • [ ] Pass undefined if variable doesn't exist when passing props
  • [ ] Use CWD's .tsconfig.json for typescript compilation if exists
  • [ ] Add a support for a config file (.ssgorc, ssgo.config.js)
  • [ ] Provide a way to opt out of static ressources resolution on a per-file basis
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].