
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
balloon-generator
Advanced tools
Because balloons generate static...
Balloon is a very simple static site generator. Built for deploying to S3. It works for my needs, but it's pretty simple.
View the source code of my website.
.md
npm install -g balloon-generator
# generate static based on settings in balloon.json (see below)
balloon
balloon --output ./another/destination/ # override build directory
# Same as above, except it watches for changes and serves the build directory
balloon --serve
balloon --serve 3000 # with port
# Get help
balloon --help
Usage: balloon [options]
Options:
-h, --help output usage information
-V, --version output the version number
-s, --serve [port] watch and serve files
-b, --build <path> override build path
Here's what a base project looks like:
MyBalloonProject/
├── balloon.json # Main config file (see below)
├── content/ # Website pages live here (markdown and/or HTML)
├── layouts/ # Layouts live here
└── static/ # Everything in here remains untouched (use for images, css, etc)
Here is something a bit more complicated:
MyBalloonProject/
├── balloon.json
├── content/
│ ├── index.html
│ ├── rss.xml
│ ├── blog/
│ │ ├── index.html
│ │ └── 2014/
│ │ └── 12/
│ │ ├── 04/
│ │ │ ├── My First Post.md
│ │ └── 08/
│ │ └── My Second Post.md
├── layouts/
│ ├── rss.xml
│ └── base.html
└── static/
├── favicon.ico
├── styles/
│ └── main.css
└── scripts/
└── main.js
A few notes on what you see above:
mysite.com/blog/2014/12/04/my-first-post.html
Balloon looks for a balloon.json
file in the directory that it is run from. Here is an example
of a config:
{
/** Directory to watch */
"source": "./",
/** Directory to put built files */
"build": "build/",
/** The domain (S3 bucket) to deploy to */
"domain": "website.com",
/**
* Context attributs (values) in each of these will apply if
* the regex pattern (key) matches the URL path of the page
* being rendered.
*/
"defaults": {
".*": {
// The only required context variable
"_layout": "default.html",
// Some useful variables to be used in templates
"siteName": "My Website",
"page_type": "basic"
},
"^/blog/.+": {
"_layout": "blog.html",
// Change the type for blog posts so the template knows
// what to do
"page_type": "blog"
}
}
}
Balloon lets you define context variables in balloon.json
(see below), but it also provides some
default ones that should be useful. All Balloon-generated variables start with underscores.
_title
name of the file, without the extension_slug
full URL path of the current page_created
an extracted date if the URL path contains the pattern /YYYY/MM/DD/
timestamp
, year
, month
, day
_pages
a list of all the pages that were rendered, along with the context for each one
index.html
and rss.xml
have access to _pages
/blog/index.html
page to list all blog postsRight now I'm the only person I know of using Balloon in production. You can check out my site (also view the source). I'm always open to chat as well. You can find my contact info on my website.
FAQs
Basic static site generator
We found that balloon-generator demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.