Skip to content

yet-another-static-site-generator/yass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YASS: Yet Another Static Site (Generator)

YASS is a static site generator written in Ada. It is headless application (no user interface). The program documentation is included in distribution.

Features

  • Support almost infinite amount of custom tags in HTML templates
  • Separated tags for whole site and each page
  • Fast
  • Can be extended with modules written in any script/programming language
  • Generating sitemaps
  • Generating Atom feeds
  • Auto reconfigure server when configuration file was changed

Downloading YASS

The easiest way to get YASS is by downloading the latest release for your operating system. For example, if you have windows, then download yass-windows_x86_64.zip.

Build from sources

Using alire

The easiest way to build YASS is via Alire. If you don't have alire already, you can get it from the main website or auto-install it via Getada.dev.

To build and install it, simply run alr install yass and yass will automatically be added to alire's binary folder (default is $HOME/.alire/bin).

If you'd rather just download and build manually, navigate to a folder where you wish to build YASS and issue the following commands:

  1. alr get yass
  2. cd yass*
  3. alr update && alr build YASS will now be in the project's ./bin directory.

This should automatically pull all of the dependencies in, ie AWS and libcmark.

Using gprbuild

To build you need:

Navigate to the main directory (where this file is) to compile:

  • The easiest way to compile program is to use Gnat Studio included in GNAT. Select yass.gpr as a project file and select option Build All.

  • If you prefer using console: in main source code directory type gprbuild for debug mode build or for release mode: gprbuild -XMode=release.

Build unit tests

Note: Unit tests are currently being migrated to aunit and alire so this may not work as expected.

Navigate to tests/driver directory from the main directory (where this file is):

  • From console: type gprbuild -P test_driver.gpr

Running the program

Linux / macOS

To see all available options, type yass help. If you want to run the program from other directory, you should set the environment variable YASSDIR to your current directory. Example: export YASSDIR=$(pwd).

Windows

To see all available options, type yass.exe help. If you want to run the program from other directory, you should set the environment variable YASSDIR to your current directory. Example: set YASSDIR="C:\yass"

Running unit tests

From the main directory go to test/driver directory and type ./test_runner.

Testing versions

There are available testing versions of the program. You can find them in GitHub Actions. Just select option from the list of results to see Artifacts list. To use them, first you must download normal release. Then, for Linux: inside directory where the program is, type ./yass-x86_64.AppImage --appimage-extract to extract whole program to directory squashfs-root. And then move files from the archive to the proper location. To run that version, enter squashfs-root directory and type in console ./AppRun. For Windows: unzip files (replace existing) to the proper location where the program is installed.

  • yass-development-windows.tar contains Windows 64-bit version of the program.

  • yass-development-linux.tar contains Linux 64-bit version of the program.

Size is a file's size after unpacking. You will download it compressed with Zip.

Generating code documentation

To generate code documentation, you need ROBODoc and Tcl. In main program directory enter: others/generatedocs.tcl. For more information, please look here. This version of the script have set all default settings for the YASS code.

Contributing to the project

For detailed information about contributing (bugs reporting, ideas propositions, code conduct, etc), see CONTRIBUTING.md

Licenses

TODO

  • More unit tests
  • Formally verify the project with SPARK
  • Your propositions?

As usual, I probably forgot about something important here :)

Bartek thindil Jasicki & A.J. Ianozi

About

Yet Another Static Site (Generator)

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Contributors 5