Giter Site home page Giter Site logo

GladeJS Logo



Helping Marko to Roll Uphill, Pass the CaScadeS and reach the GladeJS at 11' for Tea.



Code Formatter   JavaScript Style   Semantic Release   GitHub License  

Latest Version   Actions Checks   Latest Commits   Netlify Status  

Description

GladeJS is a simple Rollup setup for bundling Web Sites built with Marko and Eleventy.

If the above description does not speak to you, try one of these for size :

  • This is a Jamstack dual SSG / SSR frontend framework using Rollup
  • It transforms your "pages" into a modern web "_site" ready for Prod
  • It is the best bundler (you're not using) combined with the simplest
    SSG (you want to use) and the fastest UI lib (you've never heard of)
  • In the end, it is nothing more than a well documented Rollup config

Or maybe listing what it's not and doesn't do will give you a better idea :

  • This is not yet another framework to learn (the CLI is Rollup's, the configuration is Eleventy's)
  • The tools are not hidden, you interact directly with Eleventy, PostCSS, Terser, Babel, CSSnano,...
  • It does not force any JS in the output (unless you use Marko's client-side components, of course)
  • You will not find any mention of SPA, routes, servers, nor any GladeJS special API or <Link> tag

This project requires NodeJS v14.x or superior and the included "npm" CLI v6.14 or superior.
It is tested on the latest versions of NodeJS v14, v15 & v16 on MacOS, Ubuntu and Windows.

Installation

The complete installation instructions are in this section, don't look for any more details, it's all here.

Automatic (not ready yet)

A "@gladejs/create" automatic initialization package is planned for the v1.0 release.
It will allow for a simple "npm init @gladejs MyWebSite" installation, but not yet.

Manual (in 3 easy steps)

  1. Create a new NodeJS project & install GladeJS as a "devDependency" :
mkdir MyWebSite && cd MyWebSite
npm init -y && npm i -D gladejs
  1. Replace the "scripts" section in your new "package.json" file with :
"scripts": {
    "vite": "rollup -c --watch --environment VITE_ENV",
    "live": "rollup -c --watch",
    "build": "rollup -c",
    "clean": "rimraf build _site",
    "build:prod": "rollup -c --environment NODE_ENV:production"
},
  1. Copy the GladeJS Rollup configuration file into your project folder :
npx shx cp node_modules/gladejs/rollup.config.mjs .

Documentation [WIP]

The bare minimum to get you started is here, but you'll find detailed information in the "docs" folder.

Rollup Configuration

A single "rollup.config.mjs" file is used to configure your build process.
If you are not a NodeJS and/or Rollup guru, fret not, the defaults are just fine.
Nevertheless, give it a quick glance, it's relatively organised and documented.

NPM Command Scripts

GladeJS is directly controlled via NPM scripts, using the following commands :

  • "npm run vite" to run ViteJS "watch mode" for fast development
  • "npm run live" to run Rollup "watch mode" for live development
  • "npm run build" to bundle your project without any minification
  • "npm run clean" to delete all files & folders created by GladeJS
  • "npm run build:prod" to bundle your project with minification

Pages & Components

The files & folders structure is marked by a distinctive lack of imagination :

  • Web Pages go into the "pages" input dir and Marko UI Components into the "components" dir.
  • There is "layouts" for 11ty Layouts, "includes" for Includes and "datastores" for Data Files.
  • CSS Styles are picked up from any "style.{css|less|sass|scss|styl}" file placed next to any
    "index.{html|md|marko|11ty.js|liquid|njk|hbs|mustache|ejs|haml|pug|jstl}" page.

Assets & Resources

Static assets are pulled in using relative, absolute or NPM package file paths :

  • Using the standard ESM "import" keyword at the top of any page for CSS, JS and images.
  • Using the "src" attribute or any normal HTML resource tag ("script", "style", "link").

CSS & JS resources are "swallowed" by Rollup to be bundled, chunked and pressed.

  • Don't forget to inject them back into the HTML HEAD tag using "<gladejs-rollup />".
  • Use the name, type, scoped & rollup="ignore|bundle" attributes for more control.

Now, enter the GladeJS "docs", follow the floating possum around 11ty or RTFMD (Read The Fabulous Marko Docs).

Contributing [WIP]

While still in early development, everything is in place to receive your contributions.

  • Get acquainted with the project PHILOSOPHY and general direction
  • Consult the ROADMAP to see where things stand and what's the master plan
  • Look for low hanging fruits in the "Open Issues Status" project board
  • Read the CONTRIBUTING guidelines carefully, they are short and to the point

You are now ready to contribute, so ... where is the code ? Mostly in another castle, Mario.

Finally, GladeJS relies on over 22 major OSS projects, including 7 Rollup plugins,
contributing to any of them, not only benefits this project, but also many others.

GladeJS's Projects

eleventy icon eleventy

[MOVED] The GladeJS Module adding support for Eleventy, move along ...

gladejs icon gladejs

Helping Marko to Roll Uphill, Pass the CaScadeS and reach the GladeJS at 11' for Tea (it's a frontend framework).

rollup icon rollup

[MOVED] The GladeJS Module adding support for Rollup, move along ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.