Crates.io | arse |
lib.rs | arse |
version | 0.18.1 |
source | src |
created_at | 2021-04-10 09:33:43.162184 |
updated_at | 2024-11-01 22:06:01.389559 |
description | A Rust Site Engine |
homepage | https://github.com/anthonyjmartinez/arse |
repository | https://github.com/anthonyjmartinez/arse.git |
max_upload_size | |
id | 381646 |
size | 146,868 |
A Rust Site Engine, or arse
, is static site generator written in Rust. It seeks to provide a simple
and flexible base for serving sites using:
arse run config.toml
-v
or -vv
, the default level is INFO
.arse new
$ arse new
2021-05-01T17:34:11.155427589+00:00 [INFO] Logging started
2021-05-01T17:34:11.155543182+00:00 [INFO] Generating new site configuration
Please enter a name for the site:
Example Site
Please enter the site author's name:
Arthur Writeson
Please enter the base URL for your site:
https://www.example.com
Please enter comma-separated site topics:
one, two, three
2021-05-01T17:34:26.501980660+00:00 [INFO] Creating site filesystem tree
2021-05-01T17:34:26.504816188+00:00 [INFO] Writing site configuration to disk
An example config, as generated, is shown below:
[site]
name = 'Example Site'
author = 'Arthur Writeson'
url = 'https://www.example.com'
template = 'default.tmpl'
topics = [
'one',
'two',
'three',
]
[server]
bind = '0.0.0.0'
port = 9090
[docpaths]
templates = '/home/user/site/templates'
webroot = '/home/user/site/webroot'
[mime_types]
css = "text/css"
gif = "image/gif"
jpg = "image/jpeg"
A default template, default.tmpl
, is provided statically within the binary. To change the Tera
template, add your custom template to the templates directory referenced in the [docpaths]
configuration
section of config.toml
. Once the template is in the templates directory, change the templates
parameter
in the [site]
configuration section to reference the template's file name. This template will now be loaded
at runtime.
The following elements are available within the Tera context for rendering:
site
, mapping directly to the fields available in the site
configuration sectionpost
, available when serving single-posts from from site/:topic/posts/:post.md
GET /:topic/posts/:post
where :post
is the markdown filename minus its extensionposts
, a lexically reverse-sorted list of HTML rendered from markdown in site/:topic/posts/*.md
GET /:topic
bind
and port
may be set in the [server]
section.site/:topic/posts
and site/:topic/ext
[docpaths]
are generated as full paths for completeness, however relative paths will work if desired
site/templates
and site/webroot
and move the directory out of /home/user
arse new
creates the site tree, and all other output files, in the current working directory.gallery
is one of the topics requested
/gallery/ext/*.jpg
Version 0.16.0
added a mime_types
section to the config.toml
file. This is created with a minimal set of
mappings from a file extension to the desired MIME type. These mappings are used when serving files from:
static/
:topic/ext/
If there is no match for the extension, or the file lacks an extension entirely, the default is text/plain
.
As such, if you wish for maximimum compatibility with different reverse proxies, browsers, or other applications
it is crticial that you set an appropriate MIME type for each possible extension you intend to serve directly.
gallery
topicLicensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.