verless

module
v0.5.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2021 License: Apache-2.0

README







A simple and lightweight Static Site Generator.





verless (pronounced like serverless) is a Static Site Generator designed for Markdown-based content with a focus on simplicity and performance. It reads your Markdown files, applies your HTML templates and renders them as a website.

Features

  • Flexible theming: Themes define the HTML templates as well as styles and scripts for your frontend. Initializing a new theme can be done within a single command, and setting it as active requires a single line of configuration. Since verless provides pre-defined template variables, themes are interchangeable.

  • Rapid development: Just like themes, new projects can be created using a single command. Local development requires no third-party webserver as verless comes with a built-in webserver and rebuilds your project when something changes.

  • High performance: Generating a static site typically is a matter of milliseconds. To keep build times short, verless lets you choose and explicitly enable features you need - only generate RSS feeds or overview pages for tags if you want to.

  • Focus on simplicity: Global information, page types, plugins and other settings are configured in a central configuration file inside your project. We try to keep things small and simple, and if your project isn't simple, verless probably isn't a good fit.

Examples

Installation

Linux and macOS

Download the latest release for your platform. Extract the downloaded binary into a directory like /usr/local/bin. Make sure the directory is in PATH.

Windows

Download the latest release, create a directory like C:\Program Files\verless and extract the executable into that directory. Add the directory to Path.

Docker

Assuming your project directory is my-blog, the following command builds your website:

$ docker container run -v $(pwd)/my-blog:/project verless/verless

The container will build the project mounted at /project and you'll find the website in my-blog/target. To run another command, just append it to the image name:

$ docker container run verless/verless version

Getting started

The easiest way to create a new project is to use the verless CLI:

$ verless create project my-blog

This initializes a project called my-blog inside a new directory, containing a small default site. You can either build the project or serve the static site directly:

$ verless serve -w my-blog

After running the command, you can view your new project under localhost:8080. Building the project works similary and generates a deployable website:

$ verless build my-blog

By default, verless generates the website into my-blog/target. You are now ready to create your first blog post!

Documentation

To find out how a verless project is structured, take a look at the example project. For a detailed reference, check out the documentation.

🔥 New tutorial: Create a website using verless

Contributing

Anyone is welcome to contribute to verless. Please refer to our contribution guidelines.


Directories

Path Synopsis
Package builder provides a model builder implementation.
Package builder provides a model builder implementation.
Package cli provides the verless CLI commands.
Package cli provides the verless CLI commands.
cmd
verless
Package main provides the verless application.
Package main provides the verless application.
Package config provides configuration-related types and functions.
Package config provides configuration-related types and functions.
Package core provides the verless business logic.
Package core provides the verless business logic.
Package fs provides functions for filesystem operations.
Package fs provides functions for filesystem operations.
Package model provides the verless domain entities.
Package model provides the verless domain entities.
out
Package out provides functions for printing output to the user.
Package out provides functions for printing output to the user.
style
Package style provides icons, emojis and other stylized items that can be printed to the standard output device.
Package style provides icons, emojis and other stylized items that can be printed to the standard output device.
Package parser provides components for parsing content.
Package parser provides components for parsing content.
atom
Package atom provides and implements the atom plugin.
Package atom provides and implements the atom plugin.
related
Package related provides and implements the related plugin.
Package related provides and implements the related plugin.
tags
Package tags provides and implements the tags plugin.
Package tags provides and implements the tags plugin.
Package test contains some simple utils for more readable tests.
Package test contains some simple utils for more readable tests.
Package theme provides functions for working with verless themes.
Package theme provides functions for working with verless themes.
Package tpl provides a simple template registry and corresponding function for registering and loading templates from that registry.
Package tpl provides a simple template registry and corresponding function for registering and loading templates from that registry.
Package tree provides functions for performing operations related to tree data structures.
Package tree provides functions for performing operations related to tree data structures.
Package writer provides the default build.Writer implementation capable of writing the site model to a filesystem.
Package writer provides the default build.Writer implementation capable of writing the site model to a filesystem.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL