Merge branch 'master' of git@git.sr.ht:~h3rald/h3rald
jump to
@@ -1,57 +0,0 @@
-@font-face { - font-family: 'Calendas Plus'; - src: url('../fonts/calendas-plus.woff2') format('woff2'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'Calendas Plus'; - src: url('../fonts/calendas-plus-italic.woff2') format('woff2'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'Calendas Plus'; - src: url('../fonts/calendas-plus-bold.woff2') format('woff2'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'Noway'; - src: url('../fonts/noway-light-webfont.woff2') format('woff2'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'Noway'; - src: url('../fonts/noway-light-italic-webfont.woff2') format('woff2'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'Noway'; - src: url('../fonts/noway-regular-webfont.woff2') format('woff2'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'Noway'; - src: url('../fonts/noway-regular-italic-webfont.woff2') format('woff2'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: "JetBrains Mono"; - src: url("../fonts/JetBrainsMono-Medium.woff2") format("woff2"); - font-weight: 400; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - font-variant-ligatures: normal; -}
@@ -22,10 +22,12 @@ :root {
--html-font-size: 18px; --base-font-size: 1rem; - --line-height: 2rem; + --line-height: 1.5; --scale-factor: 1.3333; --leading: 2rem; --letter-spacing: 0.05em; + --font-family-sans: "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; + --font-family-mono: "JetBrains Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } .themed-content {@@ -133,23 +135,19 @@ line-height: var(--line-height);
} body { - font-family: 'Noway', sans-serif; - font-feature-settings: "liga", "clig", "kern"; - hyphens: auto; + font-family: var(--font-family-sans); font-weight: 300; margin: auto; height: 100vh; letter-spacing: var(--letter-spacing); font-size: var(--base-font-size); - line-height: var(--leading); + line-height: var(--line-height); } .grimoire, .navlinks { - font-family: 'Calendas Plus', serif; font-style: normal; - font-feature-settings: "liga", "clig", "dlig", "frac", "kern"; } .page h2 {@@ -157,47 +155,43 @@ text-align: center;
} .navlinks { + margin-top: 2rem; text-transform: uppercase; } h1, .h1 { - font-size: 2.375rem; - line-height: calc(var(--leading) * 1.25); + font-size: 1.8rem; margin-top: calc(var(--leading) * 1); margin-bottom: calc(var(--leading) * 0); } h2, .h2 { - font-size: 2rem; - line-height: calc(var(--leading) * 1.25); + font-size: 1.6rem; margin-top: calc(var(--leading) * 1); - margin-bottom: calc(var(--leading) * 0.5); + margin-bottom: calc(var(--leading) * 0.4); } h3, .h3 { - font-size: 1.5rem; - line-height: calc(var(--leading) * 1.25); + font-size: 1.4rem; margin-top: calc(var(--leading) * 1); - margin-bottom: calc(var(--leading) * 0.5); + margin-bottom: calc(var(--leading) * 0.4); } h4, .h4 { - font-size: 1.3rem; - line-height: calc(var(--leading) * 1.25); + font-size: 1.2rem; margin-top: calc(var(--leading) * 1); - margin-bottom: calc(var(--leading) * 0.5); + margin-bottom: calc(var(--leading) * 0.4); } h5, .h5 { - font-size: 1.2rem; - line-height: calc(var(--leading) * 1.25); + font-size: 1.1rem; margin-top: calc(var(--leading) * 1); - margin-bottom: calc(var(--leading) * 0.5); + margin-bottom: calc(var(--leading) * 0.4); } p,@@ -206,8 +200,8 @@ ol,
pre, table, blockquote { - margin-top: calc(var(--leading) * 0.5); - margin-bottom: calc(var(--leading) * 0.5); + margin-top: calc(var(--leading) * 0.3); + margin-bottom: calc(var(--leading) * 0.3); } ul ul,@@ -230,7 +224,7 @@ }
pre, code { - font-family: 'JetBrains Mono', monospace; + font-family: var(--font-family-mono); } .break-code {@@ -261,11 +255,6 @@ sub {
bottom: -0.25em; } -.primary-subtitle, -.secondary-subtitle { - font-style: italic; -} - .primary-subtitle { margin-top: calc(var(--leading) * 0.25); line-height: calc(var(--leading) * 0.8);@@ -276,7 +265,6 @@ margin-top: 0;
} .leading { - line-height: calc(var(--leading) * 1); margin-top: calc(var(--leading) * 1); margin-bottom: calc(var(--leading) * 0); }@@ -296,18 +284,14 @@ .h4,
.h5, .h6, .panel-title { - font-weight: 600; + font-family: var(--font-family-sans); + font-weight: bold; } i, em, -blockquote, -.primary-subtitle, -.secondary-subtitle, -.panel-header { - font-family: 'Noway', sans-serif; +blockquote { font-style: italic; - font-feature-settings: "liga", "clig", "dlig", "onum", "frac", "kern"; } .body-text h1,@@ -316,7 +300,7 @@ .body-text h3,
.body-text h4, .body-text h5, .body-text h6 { - margin-bottom: 0.8rem; + margin-bottom: 0.6rem; } a {@@ -384,7 +368,6 @@ left: 8px;
font-size: 0.8rem; } - .footer, .header, .main-content,@@ -461,11 +444,6 @@ height: 10px;
border-radius: 5px; } -.project-version { - margin-left: 5px; - font-size: 75%; -} - .card-footer .action { margin: 0 10px; }@@ -520,7 +498,12 @@
footer p, footer ul.inline, .secondary-subtitle { - margin-bottom: calc(var(--leading) * 0); + margin-bottom: 0; + margin-top: 0.5rem; +} + +.license-icons { + margin-top: 1rem; } footer .h3rald {@@ -647,8 +630,7 @@ }
code, pre { - font-size: 0.7rem; - line-height: 1.2rem; + font-size: 0.9rem; } img {@@ -709,7 +691,7 @@ /* Figures */
figure { display: table; - background: var(--secondary-); + background: var(--secondary-background); margin: auto 0; }@@ -730,7 +712,6 @@ background-color: var(--secondary-background);
border-radius: 4px; border: 1px solid var(--secondary-background); padding: 0 4px; - line-height: 1.2rem; padding: 0.5rem; }
@@ -7,6 +7,9 @@ home: "/concatenative/"
summary: "A Ruby DSL for concatenative programming. Although quite slow if compared to other concatenative languages like Factor, it implements all the most common concatenative combinator and makes it possible to use Ruby objects in a concatenative way." inactive: true version: "0.2.0" +version-badge: 0.2.0 +release-color: orange +license: BSD--3--Clause ----- <p>Concatenative is a Ruby <acronym title="Domain-specific Language"><span class="caps">DSL</span></acronym> for concatenative programming. It is heavily inspired by <a href="http://www.latrobe.edu.au/philosophy/phimvt/joy.html">Joy</a>, a minimalist programming language by Manfred von Thun. Like Joy, Concatenative features:</p> <ul>
@@ -19,6 +19,7 @@
### Summary Given a project that aims to achieve the highest level of feature-completeness, maturity, and stability (collectively identified as _dependability_), its releases should be expressed using a single integer number of two bytes in hexadecimal notation, conveying: + - its dependability score, expressed as a value between 0x000 and 0xFFF (first three digits). - metadata expressing the expected upgrade impact, if the release breaks compatibility, and/or includes new enhancements (last digit).
@@ -8,6 +8,9 @@ summary: "A Rapid Document Authoring Framework written in Ruby to create and manage books and articles."
inactive: true docs: /glyph/book/ version: 0.5.3.1 +version-badge: 0.3.5.1 +release-color: orange +license: MIT ----- <p>Glyph is a <em>Rapid Document Authoring Framework</em>.</p>
@@ -11,6 +11,9 @@ content-type: project
active: true download: "https://github.com/h3rald/h3/releases/download/" version: 0.11.0 +version-badge: 0.11.0 +release-color: orange +license: MIT versionLabel: "Keen Klingon" docs: /h3/H3_DeveloperGuide.htm -----
@@ -16,7 +16,7 @@ <p>Currently, this site is fully static, it has no JavaScript, and it is powered by my very own static site generator, <a href="/hastysite">HastySite</a>.</p>
<h3>Major Releases</h3> -<h4>Version 5000 ( June 2026 – present)</h4> +<h4>Version >= 5000( June 2026 – present)</h4> <p>From this point on, H3RALD.com uses <a href="/conver">Convergent Versioning</a>.</p> <ul> <li>Web Server: <a href="http://wiki.nginx.org/Main">Nginx</a></li>
@@ -9,6 +9,9 @@ home: /hastyscribe/
docs: /hastyscribe/HastyScribe_UserGuide.htm summary: "A self-contained Markdown compiler that can generate self-contained HTML files, useful for writing essays, reports, meeting notes, etc." version: "2.1.1" +version-badge: 2.1.1 +release-color: green +license: MIT ----- {{download => https://github.com/h3rald/hastyscribe/releases/download/}}
@@ -11,6 +11,9 @@ summary: "A self-contained static site generator featuring markdown support, mustache templates, and a powerful min-powered rule and script engine."
content-type: project active: true version: 1.4.1 +version-badge: 1.4.1 +release-color: green +license: MIT ----- *HastySite* is a static-site generator written in [Nim](https://nim-lang.org). Unlike most static site generators, it is only comprised of a single file -- the **hastysite** executable.
@@ -10,7 +10,9 @@ content-type: project
active: true ci: true version: 0.7.0 -download: "https://github.com/h3rald/hex/releases/download/" +version-badge: 0.7.0 +release-color: orange +license: MIT ----- _hex_ is a concatenative programming language heavily inspired by [min](/min) and [mn](/mn), but even more minimalist.@@ -25,13 +27,3 @@ - basic error handling and a stack trace
- 64 native symbols to manage control flow, arithmetical operations, comparison, Boolean logic, operations on strings and quotations, bitwise operations, I/O, File I/O, and shell command execution. Despite its quirks, _hex_ aims to bring more people into the world of concatenative programming. The language web site includes a short tutorial, a simple specification of the language, and even a WASM-powered playground with an actual hex REPL to play with. - - -### Downloads - -* [macOS (x86_64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_macos_x86_64.zip) -* [macOS (ARM64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_macos_arn64.zip) -* [Linux (x86_64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_linux_x86_64.zip) -* [Windows (x86_64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_windows_x86_64.zip) -* [αcτµαlly pδrταblε εxεcµταblε]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_ape.zip) -* [WebAssembly]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_wasm.zip)
@@ -5,11 +5,12 @@ github: litestore
home: /litestore/ active: true docs: /litestore/LiteStore_UserGuide.htm -ci: true version: 1.13.0 +version-badge: 1.13.p +release-color: green +license: MIT subtitle: "A tiny NoSQL database for rapid prototyping" summary: "A lightweight, self-contained, RESTful, multi-format NoSQL document store server written in Nim and powered by a SQLite backend for storage." -download: "https://github.com/h3rald/litestore/releases/download/" ----- LiteStore is a lightweight, self-contained, RESTful, multi-format NoSQL document store server written in [Nim](http://nim-lang.org) and powered by a [SQLite](http://www.sqlite.org) backend for storage. It aims to be a very simple and lightweight backend ideal for prototyping and testing REST APIs and client-side, single-page applications and web apps.@@ -68,12 +69,6 @@ After importing the contents of a directory into a LiteStore data store, you can mount it on LiteStore and mirror all data store changes to the filesystem. Incidentally, that’s how most of the LiteStore Admin test app was built .
Wanna know more? [→ read the User Guide](/litestore/LiteStore_UserGuide.htm)! - -### Downloads - -* [macOS (x64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_macosx_x64.zip) -* [Linux (x64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_linux_x64.zip) -* [Windows (x64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_windows_x64.zip) ### Resources
@@ -8,8 +8,10 @@ subtitle: "A functional, concatenative programming language with a minimalist syntax"
summary: "A functional, concatenative programming language with a minimalist syntax, a small but practical standard library, and an advanced REPL. All packed in a single file." content-type: project active: true -ci: true version: 0.48.0 +version-badge: 0.48.0 +release-color: yellow +license: MIT docs: /min/Min_DeveloperGuide.htm -----
@@ -8,7 +8,9 @@ summary: "A minimalist but highly-customizable line editing library for Nim projects, providing auto-completion, custom key bindings, and more."
content-type: project active: true version: 0.1.1 -download: "https://github.com/h3rald/minline/releases/download/" +version-badge: 0.1.1 +release-color: yellow +license: MIT docs: /minline/minline.html -----
@@ -7,9 +7,10 @@ subtitle: "A truly minimal concatenative programming language"
summary: "A tiny, very minimalistic programming language inspired by min." content-type: project active: true -ci: true -download: "https://github.com/h3rald/mn/releases/download/" version: 0.4.0 +version-badge: 0.4.0 +release-color: yellow +license: MIT docs: /mn/Mn_DeveloperGuide.htm -----
@@ -7,10 +7,11 @@ title: "nifty"
subtitle: "A decentralized (pseudo) package manager and script runner" summary: "A self-contained command-line program that can be used as a bare bones package manager and as a versatile script runner." content-type: project -ci: true active: true version: 1.2.3 -download: "https://github.com/h3rald/nifty/releases/download/" +version-badge: 1.2.3 +release-color: green +license: MIT ----- {{n -> *nifty*}} is a simple, self-contained program that can be used as a bare-bones, decentralized (pseudo) package manager and script runner.@@ -46,9 +47,3 @@
#### Run on many different platforms and regardless of the type of project {{n}} is a self-contained executable program written in {{nim -> [Nim](https://nim-lang.org)}} and runs on all platforms where Nim compiles. Also, unlike other package managers that are typically used within the context of one specific programming language (like [NPM](https://www.npmjs.com) for Javascript or [RubyGems](https://rubygems.org) for Ruby), {{n}} can be used in virtually any project, regardless of the programming language used. - -### Downloads - -* [macOS (x64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_macosx_x64.zip) -* [Linux (x64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_linux_x64.zip) -* [Windows (x64)]({{$download}}v{{$version}}/{{$github}}_v{{$version}}_windows_x64.zip)
@@ -7,9 +7,10 @@ subtitle: "A tiny static file web server."
summary: "A tiny, self-contained program able to serve files within a directory via HTTP." content-type: project active: true -ci: true version: 1.5.1 -download: "https://github.com/h3rald/nimhttpd/releases/download/" +version-badge: 1.5.1 +release-color: yellow +license: MIT ----- _NimHHTPd_ is a minimal web server that can be used to serve static files.
@@ -7,6 +7,9 @@ inactive: true
home: /rawline/ summary: "A Ruby library which provides a subset of the functionality of the C Readline library. Being implemented in pure Ruby, it gives Ruby developers much more control over key bindings and word completion." version: 0.3.2 +version-badge: 0.3.2 +release-color: orange +license: MIT docs: "http://rawline.rubyforge.org" ----- <p>RawLine is a 100% Ruby alternative to the ReadLine library, providing some of its most popular features such as:</p>
@@ -8,6 +8,9 @@ home: /ruby-compendium/
docs: /ruby-compendium/book/ summary: "A free book aiming to help beginners learn about Ruby, focusing on its vast ecosystem and resources." version: 0.2.0 +version-badge: 0.2.0 +release-color: orange +license: CC--BY--SA--3.0 ----- <p>This book was written by Fabio Cevasco and it is licensed under a <a
@@ -9,7 +9,6 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="{{keywords}}"> <link rel="shortcut icon" href="/favicon.png" type="image/png"> <meta content="44.388041;9.073248" name="ICBM"> - <link rel="stylesheet" type="text/css" href="/styles/fonts.css"> <link rel="stylesheet" type="text/css" href="/styles/flexboxgrid.css"> <link rel="stylesheet" type="text/css" href="/styles/chroma.css"> <link rel="stylesheet" type="text/css" href="/styles/style.css">
@@ -5,22 +5,16 @@ featured projects
</div> <div class="panel-body"> <article> - <header> <h3><a href="/min/">min</a></h3> <p class="secondary-subtitle">A tiny concatenative programming language and system shell, providing a small standard library with regular expression support, cryptography, file management, and more.</p> - </header> </article> - <article> - <header> + <article> <h3><a href="/hex/">hex</a></h3> <p class="secondary-subtitle">A tiny, minimalist, concatenative, stack-based and slightly-esoteric programming language inspired by <em>min</em> that can run on many platforms and can be used as an embedded language, to create shell scripts, or simply to learn more about concatenative programming.</p> - </header> </article> <article> - <header> <h3><a href="/litestore/">LiteStore</a></h3> <p class="secondary-subtitle">A self-contained, lightweight NoSQL data store, featuring a RESTful API, full-text search, JWT token validation and authorization support, server-side JavaScript middleware, and more.</p> - </header> </article> </div> </div>@@ -32,22 +26,16 @@ featured articles
</div> <div class="panel-body"> <article> - <header> <h3><a href="/articles/twenty-years/">This web site is 20 years old</a></h3> <p class="secondary-subtitle">On March 28th, 2004, H3RALD.com was born</p> - </header> </article> <article> - <header> <h3><a href="/articles/10-programming-languages/">10 programming languages worth checking out</a></h3> <p class="secondary-subtitle">A quick comparison of 10 non-mainstream programming languages</p> - </header> </article> <article> - <header> <h3><a href="/articles/10-more-programming-languages">10 more programming languages worth checking out</a></h3> <p class="secondary-subtitle">Another look at 10 non-mainstream programming languages, 10 years later</p> - </header> </article> </div> </div>
@@ -1,22 +1,13 @@
<div class="card"> <div class="card-header"> <div class="card-title h5"> - {{#active}} - <small class="badge badge-success"></small> - {{/active}} - {{#inactive}} - <small class="badge badge-warning"></small> - {{/inactive}} {{#home}} <a href="{{home}}"> {{/home}} {{title}} {{#home}} </a> - {{/home}} - <div class="project-version"> - v{{version}} - </div> + {{/home}} v{{version}} </div> </div> <div class="card-body">
@@ -7,7 +7,7 @@ <div class="main container-fluid themed-content">
{{> _header}} <div class="row main-content"> <article class="page box content"> - <h2>WELCOME!</h2> + <h2>WELCOME</h2> <div class="body-text"> <p>Welcome to H3RALD.com. This site used to be a fairly active blog back in the early 2000s, but sadly I progressively lost interest in writing articles, perhaps because I didn't have anything new to write about that you couldn't find elsewhere. However, all the content is still here, so feel free to browse through the <a href="/articles">articles</a> section.</p> <p>As I progressively neglected writing, I started creating more and more small programs and tools to perform common tasks, mostly using the <a href="https://nim-lang.org" target="_blank">Nim</a> programming language. They are all open source, they all have a dedicated project page here, and there's some pretty decent documentation for most of them. You can find them all in the <a href="/projects">projects</a> section.</p>
@@ -17,19 +17,13 @@ <div class="card project-card">
<div class="card-footer"> <a href="https://git.sr.ht/~h3rald/{{sourcehut}}" class="action">source</a> {{#site}} - <a href="{{site}}" class="action"> - site - </a> + <a href="{{site}}" class="action">site</a> {{/site}} {{#changelog}} - <a href="https://git.sr.ht/~h3rald/{{sourcehut}}/tree/main/item/CHANGELOG.md" class="action"> - changelog - </a> + <a href="https://git.sr.ht/~h3rald/{{sourcehut}}/tree/main/item/CHANGELOG.md" class="action">changelog</a> {{/changelog}} {{#docs}} - <a href="{{docs}}" class="action"> - docs - </a> + <a href="{{docs}}" class="action">docs</a> {{/docs}} </div> <p class="badges">@@ -41,26 +35,18 @@ {{/sourcehut}}
{{#github}} <div class="card project-card"> <div class="card-footer"> - <a href="https://github.com/h3rald/{{github}}" class="action"> - source - </a> - <a href="https://github.com/h3rald/{{github}}/issues" class="action"> - issues - </a> + <a href="https://github.com/h3rald/{{github}}" class="action">source</a> + <a href="https://github.com/h3rald/{{github}}/issues" class="action">issues</a> {{#site}} - <a href="{{site}}" class="action"> - site - </a> + <a href="{{site}}" class="action">site</a> {{/site}} {{#docs}} - <a href="{{docs}}" class="action"> - docs - </a> + <a href="{{docs}}" class="action">docs</a> {{/docs}} </div> <p class="badges"> - <img src="https://img.shields.io/github/release/h3rald/{{github}}/all.svg" style="vertical-align: middle;"/> - <img src="https://img.shields.io/github/license/h3rald/{{github}}.svg" style="vertical-align: middle;"/> + <img src="https://img.shields.io/badge/release-v{{version-badge}}-{{release-color}}" style="vertical-align: middle;"/> + <img src="https://img.shields.io/badge/license-{{license}}-teal" style="vertical-align: middle;"/> </p> </div> {{/github}}
@@ -14,9 +14,11 @@ <article class="{{content-type}} box content">
{{> _page_header}} <div class="body-text hyphenate"> <p>This page lists <strong>{{projects-count}}</strong> projects that I am currently working on or that I worked on in the past.</p> + <h3>Active Projects</h3> {{#active-projects}} {{> _project}} {{/active-projects}} + <h3>Inactive Projects</h3> {{#inactive-projects}} {{> _project}} {{/inactive-projects}}