Commit
Message
Changed Files (4)
-
modified README.md
diff --git a/README.md b/README.md index ce424dd..0c25b60 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Abbaye + + Abbaye is a Static Site Generator (SSG) for your software. As GitHub, Gitea, Forgejo and consorts offer, Abbaye can be used to generate a website with your software's presentation, documentation, and distribution, per version. @@ -9,6 +11,7 @@ Here's an example file structure: ``` . ├── index.html # the main page of the website, enabling choosing a version, defaults to "latest" (contains a list of available versions and a iframe to the selected version?) +├── releases.feed # the RSS feed of the releases ├── latest -> v2.0.0 # symlink to the latest version (biggest version number) ├── v1.0.0/ # the directory containing the version 1.0.0 of the software │ ├── index.html # the main page of the version 1.0.0, from the README.md file. @@ -28,4 +31,55 @@ Here's an example file structure: └── … ``` +## Why the name "Abbaye"? + +An [Abbaye](https://en.wikipedia.org/wiki/Abbaye) is a French word for Abbey. An Abbey is a type of monastery, on the big-ish side, but still a small, quiet place. + +Anyway, that's where you store your relics (your software distribution). + +## Installation + +### Pre-built binaries + +You can grab a pre-built binary from the [releases page](http://vit.am/~ololduck/abbaye/latest). + +The `-musl` binaries are statically linked and should run everywhere, while the `-gnu` binaries are dynamically linked and require a compatible system library(which is probably available if you're not using an exotic distribution). + +### From source + +To build from source, you need to have Rust installed. You can install Rust using [rustup](https://rustup.rs/). +If you don't have rust installed, this project won't be of much use to you, as it currently only implements rust builders :stuck_out_tongue: + +You can clone the [repository](https://sr.ht/~ololduck/abbaye) and build the project using `cargo build --release`. + +## Usage + +Create a `abbaye.toml` configuration file in the root of your project. Here's an example configuration file to get you started: + +```toml +[site] +name = "Abbaye" + +[version_extractor] +type = "git" # extract version from git tags +tag_prefix = "v" + +[changelog] # use the default changelog parser (Keepachangelog format in CHANGELOG.md) + +[[builders]] # builds the project using cargo build --release +type = "cargo" +targets = ["x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl"] + +[[builders]] # generates documentation using cargo doc +type = "cargo_doc" +no_deps = true # Don't include dependencies in the documentation + +[[builders]] +type = "archive" # creates a compressed tarball of the source code (can be of anything, really) +``` + +Then run `abbaye` to build the site. The site will be generated in the `public/` directory by default. +Now you can copy the contents of `public/` to your web server to deploy the site. For instance, with rsync: +`rsync --progress -avz --links --perms --update public/ ololduck@vit.am:public_html/abbaye/` + License: AGPL-3.0-or-later -
added logo-wordmark.svg
diff --git a/logo-wordmark.svg b/logo-wordmark.svg new file mode 100644 index 0000000..11faabb --- /dev/null +++ b/logo-wordmark.svg @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 380 140" width="380" height="140"> + <defs> + <clipPath id="badge-wm"> + <circle cx="100" cy="100" r="96"/> + </clipPath> + </defs> + + <!-- Full-bleed background with rounded corners --> + <rect x="0" y="0" width="380" height="140" rx="16" fill="#1a3a2a"/> + + <!-- ── Icon (120×120, centred at 70,70 inside the badge) ── + Nested viewBox scales the 200×200 icon geometry down to 120×120. --> + <svg x="10" y="10" width="120" height="120" viewBox="0 0 200 200"> + <circle cx="100" cy="100" r="96" fill="#1a3a2a"/> + <g clip-path="url(#badge-wm)"> + <!-- Left tower --> + <polygon points="20,60 64,60 42,25" fill="#f0e6c8"/> + <rect x="20" y="60" width="44" height="120" fill="#f0e6c8"/> + <!-- Right tower --> + <polygon points="136,60 180,60 158,25" fill="#f0e6c8"/> + <rect x="136" y="60" width="44" height="120" fill="#f0e6c8"/> + <!-- Central nave --> + <rect x="64" y="88" width="72" height="92" fill="#f0e6c8"/> + <!-- Left arched window --> + <path d="M30,108 L30,82 A12,12 0 0,1 54,82 L54,108 Z" fill="#f9adc5"/> + <!-- Right arched window --> + <path d="M146,108 L146,82 A12,12 0 0,1 170,82 L170,108 Z" fill="#f9adc5"/> + <!-- Rose window --> + <circle cx="100" cy="113" r="14" fill="none" stroke="#f9adc5" stroke-width="2"/> + <circle cx="100" cy="113" r="5" fill="#f9adc5"/> + <line x1="100" y1="99" x2="100" y2="127" stroke="#f9adc5" stroke-width="1.5"/> + <line x1="86" y1="113" x2="114" y2="113" stroke="#f9adc5" stroke-width="1.5"/> + <line x1="90" y1="103" x2="110" y2="123" stroke="#f9adc5" stroke-width="1.5"/> + <line x1="110" y1="103" x2="90" y2="123" stroke="#f9adc5" stroke-width="1.5"/> + <!-- Arch doorway --> + <path d="M79,180 L79,155 A21,21 0 0,1 121,155 L121,180 Z" fill="#1a3a2a"/> + </g> + <circle cx="100" cy="100" r="96" fill="none" stroke="#2d5a3d" stroke-width="2.5"/> + </svg> + + <!-- Vertical separator --> + <line x1="148" y1="22" x2="148" y2="118" stroke="#2d5a3d" stroke-width="1.5"/> + + <!-- Project name --> + <text + x="168" y="88" + font-family="Georgia, 'Palatino Linotype', Palatino, serif" + font-size="54" + letter-spacing="-1" + fill="#f0e6c8" + >abbaye</text> + +</svg> -
added logo.svg
diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..a7d73c8 --- /dev/null +++ b/logo.svg @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200"> + <defs> + <clipPath id="badge"> + <circle cx="100" cy="100" r="96"/> + </clipPath> + </defs> + + <!-- Deep monastery-garden green background --> + <circle cx="100" cy="100" r="96" fill="#1a3a2a"/> + + <g clip-path="url(#badge)"> + + <!-- ── Left tower ── --> + <!-- Spire --> + <polygon points="20,60 64,60 42,25" fill="#f0e6c8"/> + <!-- Body --> + <rect x="20" y="60" width="44" height="120" fill="#f0e6c8"/> + + <!-- ── Right tower ── --> + <polygon points="136,60 180,60 158,25" fill="#f0e6c8"/> + <rect x="136" y="60" width="44" height="120" fill="#f0e6c8"/> + + <!-- ── Central nave ── --> + <rect x="64" y="88" width="72" height="92" fill="#f0e6c8"/> + + <!-- ── Left arched window — cherry-blossom pink ── + Arc: (30,82)→(54,82), r=12, sweep=1 → clockwise → arch over top --> + <path d="M30,108 L30,82 A12,12 0 0,1 54,82 L54,108 Z" fill="#f9adc5"/> + + <!-- ── Right arched window ── --> + <path d="M146,108 L146,82 A12,12 0 0,1 170,82 L170,108 Z" fill="#f9adc5"/> + + <!-- ── Rose window (8-spoke wheel) ── --> + <circle cx="100" cy="113" r="14" fill="none" stroke="#f9adc5" stroke-width="2"/> + <circle cx="100" cy="113" r="5" fill="#f9adc5"/> + <line x1="100" y1="99" x2="100" y2="127" stroke="#f9adc5" stroke-width="1.5"/> + <line x1="86" y1="113" x2="114" y2="113" stroke="#f9adc5" stroke-width="1.5"/> + <line x1="90" y1="103" x2="110" y2="123" stroke="#f9adc5" stroke-width="1.5"/> + <line x1="110" y1="103" x2="90" y2="123" stroke="#f9adc5" stroke-width="1.5"/> + + <!-- ── Arch doorway (punched out with background colour) ── + Arc: (79,155)→(121,155), r=21, sweep=1 → arch peak at (100,134) --> + <path d="M79,180 L79,155 A21,21 0 0,1 121,155 L121,180 Z" fill="#1a3a2a"/> + + </g> + + <!-- Moss-green outer ring --> + <circle cx="100" cy="100" r="96" fill="none" stroke="#2d5a3d" stroke-width="2.5"/> +</svg> -
modified src/main.rs
diff --git a/src/main.rs b/src/main.rs index 04555cd..c924b3b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,7 @@ //! # Abbaye //! +//!  +//! //! Abbaye is a Static Site Generator (SSG) for your software. As GitHub, //! Gitea, Forgejo and consorts offer, Abbaye can be used to generate a //! website with your software's presentation, documentation, and distribution, per version. @@ -9,6 +11,7 @@ //! ```text //! . //! ├── index.html # the main page of the website, enabling choosing a version, defaults to "latest" (contains a list of available versions and a iframe to the selected version?) +//! ├── releases.feed # the RSS feed of the releases //! ├── latest -> v2.0.0 # symlink to the latest version (biggest version number) //! ├── v1.0.0/ # the directory containing the version 1.0.0 of the software //! │ ├── index.html # the main page of the version 1.0.0, from the README.md file. @@ -27,6 +30,57 @@ //! ├── … //! └── … //! ``` +//! +//! ## Why the name "Abbaye"? +//! +//! An [Abbaye](https://en.wikipedia.org/wiki/Abbaye) is a French word for Abbey. An Abbey is a type of monastery, on the big-ish side, but still a small, quiet place. +//! +//! Anyway, that's where you store and display your relics (your software distribution). +//! +//! ## Installation +//! +//! ### Pre-built binaries +//! +//! You can grab a pre-built binary from the [releases page](http://vit.am/~ololduck/abbaye/latest). +//! +//! The `-musl` binaries are statically linked and should run everywhere, while the `-gnu` binaries are dynamically linked and require a compatible system library(which is probably available if you're not using an exotic distribution). +//! +//! ### From source +//! +//! To build from source, you need to have Rust installed. You can install Rust using [rustup](https://rustup.rs/). +//! If you don't have rust installed, this project won't be of much use to you, as it currently only implements rust builders :stuck_out_tongue: +//! +//! You can clone the [repository](https://sr.ht/~ololduck/abbaye) and build the project using `cargo build --release`. +//! +//! ## Usage +//! +//! Create a `abbaye.toml` configuration file in the root of your project. Here's an example configuration file to get you started: +//! +//! ```toml +//! [site] +//! name = "Abbaye" +//! +//! [version_extractor] +//! type = "git" # extract version from git tags +//! tag_prefix = "v" +//! +//! [changelog] # use the default changelog parser (Keepachangelog format in CHANGELOG.md) +//! +//! [[builders]] # builds the project using cargo build --release +//! type = "cargo" +//! targets = ["x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl"] +//! +//! [[builders]] # generates documentation using cargo doc +//! type = "cargo_doc" +//! no_deps = true # Don't include dependencies in the documentation +//! +//! [[builders]] +//! type = "archive" # creates a compressed tarball of the source code (can be of anything, really) +//! ``` +//! +//! Then run `abbaye` to build the site. The site will be generated in the `public/` directory by default. +//! Now you can copy the contents of `public/` to your web server to deploy the site. For instance, with rsync: +//! `rsync --progress -avz --links --perms --update public/ ololduck@vit.am:public_html/abbaye/` use miette::Result;