smolweb.org Smolweb news 2026-04-12T12:03:44+00:00 https://smolweb.org/ AdΓ«lehttps://smolweb.org/ Adding noscript element https://smolweb.org/posts/2026-03-10-adding-noscript-element.html 2026-03-10T00:00:00+00:00 2026-03-10T16:12:19+00:00 <h1>Adding noscript element</h1> <p><em>2026-03-10</em></p> <p>The <a href="/specs/element-noscript.html"><code>&lt;noscript&gt;</code></a> element has been added to the <a href="/specs/">smolweb HTML subset</a>.</p> <p>Since smolweb guidelines already require that sites <strong>must be readable without JavaScript</strong>, the <code>&lt;noscript&gt;</code> element is a logical addition. It allows authors to provide fallback content for users with JavaScript disabled or unavailable.</p> <p>If you use <code>&lt;script&gt;</code> tags, it is now recommended to use <code>&lt;noscript&gt;</code> to inform users or provide alternative content.</p> AdΓ«lehttps://smolweb.org/ Adding semantic table elements https://smolweb.org/posts/2025-11-06-adding-semantic-table-elements.html 2025-11-06T00:00:00+00:00 2025-11-06T20:45:14+00:00 <h1>Adding semantic table elements</h1> <p><em>2025-11-06</em></p> <p>After discussions with smolweb fans, it appears to be a good idea to add <a href="/specs/element-thead.html"><code>&lt;thead&gt;</code></a>, <a href="/specs/element-tbody.html"><code>&lt;tbody&gt;</code></a> and <a href="/specs/element-tfoot.html"><code>&lt;tfoot&gt;</code></a> to the <a href="/specs/">smolweb HTML subset</a>.</p> <p>Their semantic roles add more accessibility to the table structure.</p> AdΓ«lehttps://smolweb.org/ Smolweb-validator https://smolweb.org/posts/2025-08-17-smolweb-validator.html 2025-08-17T00:00:00+00:00 2025-08-17T15:39:35+00:00 <h1>Smolweb-validator</h1> <p><em>2025-08-17</em></p> <p><a href="https://codeberg.org/smolweb/smolweb-validator">smolweb-validator</a> is a CLI tool to check if a web page respects <a href="https://smolweb.org/specs/index.html">smolweb HTML subset</a>.</p> <p>This tool uses <a href="https://jsoup.org/">jsoup</a> HTML5 parser, a java library distributed under <a href="https://jsoup.org/license">MIT License</a>.</p> <p>You need a Java Runtime Environment to execute it, and/or a Java Development Kit if you want to build it.</p> <h2>Usage</h2> <pre><code>./smolweb-validate &lt;URL&gt; [--verbose] java -cp "jsoup-1.21.1.jar:." SmolwebValidator &lt;URL&gt; [--verbose] jre -cp "jsoup-1.21.1.jar:." SmolwebValidator &lt;URL&gt; [--verbose] </code></pre> <p>Examples:</p> <pre><code>./smolweb-validate https://example.com ./smolweb-validate https://example.com --verbose java -cp "jsoup-1.21.1.jar:." SmolwebValidator https://example.com java -cp "jsoup-1.21.1.jar:." SmolwebValidator https://example.com --verbose jre -cp "jsoup-1.21.1.jar:." SmolwebValidator https://example.com jre -cp "jsoup-1.21.1.jar:." SmolwebValidator https://example.com --verbose </code></pre> <p>Options:</p> <pre><code>--verbose Show all errors and detailed statistics </code></pre> <p>Script: smolweb-validate is a useful script detecting java or jre</p> <hr /> <p><pre><code>$ ./smolweb-validate https://smolweb.org/ πŸ” Validating: https://smolweb.org/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ πŸ“Š VALIDATION SUMMARY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ βœ… VALID: This page conforms to the smolweb HTML subset! πŸ“ˆ Statistics: Total elements: 48 Valid elements: 48 Invalid elements: 0 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Validation complete. </code></pre> </p> AdΓ«lehttps://smolweb.org/ New smolweb symbol could be a lowercase w between angle brackets in monospaced font https://smolweb.org/posts/2025-04-20-smolweb-symbol.html 2025-04-20T00:00:00+00:00 2025-06-02T04:05:12+00:00 <h1>New smolweb symbol could be a lowercase w between angle brackets in monospaced font</h1> <p><em>2025-04-20</em></p> <p><pre><code> &lt;w&gt; </code></pre> The angle brackets &lt; and > recall HTML tags, giving a nod to the DIY, hand-coded nature of many smolweb sites. It signals that the web can be understandable and writeable by humans, not just something consumed through complex platforms. It carries the scent of rawness and control, not abstraction and obfuscation.</p> <p>A single, lowercase w stands in for &ldquo;web&rdquo; in a modest, almost shy way. It’s not the grand &ldquo;www&rdquo; of the mainstream web, but a small w, lowercase and self-aware. It hints at an alternative web, not the bloated, surveillance-driven one, but a quieter, slower, more intimate one.</p> <p><code>&lt;w&gt;</code> is compact, echoing the idea that less is more. That brevity is not a compromise but a strength. It suggests that meaning and value can come in small, lightweight package, just like a well-crafted static HTML page.</p> <p>The whole symbol feels like something you might type into a terminal or a text editor. It invites tinkering. It feels like the smolweb: accessible, understandable, and remixable.</p> <p><code>&lt;w&gt;</code> quietly says a lot: it’s webby, small, and stripped-down, no frills, all signal. Perfect shorthand for the smolweb !</p> AdΓ«lehttps://smolweb.org/ `w.` is the preferred subdomain for smolweb sites https://smolweb.org/posts/2025-04-20-preferred-subdomain.html 2025-04-20T00:00:00+00:00 2025-04-20T03:08:47+00:00 <h1><code>w.</code> is the preferred subdomain for smolweb sites</h1> <p><em>2025-04-20</em></p> <p>A simple way for a website to indicate that it adheres to the smolweb guidelines is to use the subdomain w instead of www. This short subdomain is very much in the spirit of smolweb.</p> <p>This is not a requirement, just a suggestion.</p> <p><code>w.example.org</code> is visually different from <code>www.example.org</code> or <code>example.org</code>.</p> <p><em>this standard has been proposed by <a href="https://masto.lema.org/@santiago/114363901296027179">Santiago on the Fediverse</a></em></p> AdΓ«lehttps://smolweb.org/ Simple.css: a minimalist css framework https://smolweb.org/posts/2024-07-22-simple-css.html 2024-07-22T00:00:00+00:00 2024-07-22T18:41:15+00:00 <h1>Simple.css: a minimalist css framework</h1> <p><em>2024-07-22</em></p> <p>If building a stylesheet in css from scratch seems too complicated for you, <a href="https://simplecss.org/">Simple.css</a> is a solution. This lightweight framework stands on HTML elements (and their semantic specs) and not on specific classes. So, your pages can fully follow the <a href="/guidelines.html">smolweb guidelines</a> and get a responsive design that respect the choices of the user such as font sizes and light/dark preference.</p> AdΓ«lehttps://smolweb.org/ Allowing JavaScript in smolweb https://smolweb.org/posts/2024-06-15-allowing-javascript-in-smolweb.html 2024-06-15T00:00:00+00:00 2024-06-15T05:35:22+00:00 <h1>Allowing JavaScript in smolweb</h1> <p><em>2024-06-15</em></p> <p>Following <a href="https://phpc.social/@adele/112584960486034900">the poll on the Fediverse</a> and the discussion under it, JavaScript could be allowed on smolweb sites under some conditions :</p> <ul> <li>The site must remain usable without JavaScript, if the browser has no JavaScript engine or if the user disable it ;</li> <li>All scripts must be embedded directly in the pages of the smolweb site or in external .js files coming from the <code>same host</code>.</li> </ul> AdΓ«lehttps://smolweb.org/ Adding figure and figcaption tags https://smolweb.org/posts/2023-12-23-adding-figure-tags.html 2023-12-23T00:00:00+00:00 2024-04-02T18:12:49+00:00 <h1>Adding figure and figcaption tags</h1> <p><em>2023-12-23</em></p> <p>As suggested by <a href="https://mastodon.social/@reiver/111613323404260453">@reiver on the Fediverse</a>, the semantic tags <code>&lt;figure&gt;</code> and <code>&lt;figcaption&gt;</code> have been added to the smolweb subset.</p> AdΓ«lehttps://smolweb.org/ Wiby, a search engine for the smolweb https://smolweb.org/posts/2023-10-16-wiby-a-search-engine-for-the-smolweb.html 2023-10-16T00:00:00+00:00 2024-04-02T18:12:49+00:00 <h1>Wiby, a search engine for the smolweb</h1> <p>While looking for smolweb resources, I met <a href="https://wiby.me">Wiby</a>! This search engine indexes websites compatible with old browsers. You will find simple HTML and non-commercial sites, and, if you have a smolwebsite, you can <a href="https://wiby.me/submit/">submit it to their database</a>.</p> <p>It also works with <a href="http://wiby.me/">http protocol</a>.</p> <p>A very good resource for smolweb surfers!</p> AdΓ«lehttps://smolweb.org/ A smolweb bash generator https://smolweb.org/posts/2023-10-11-smolweb-bash-generator.html 2023-10-11T00:00:00+00:00 2024-04-02T18:12:49+00:00 <h1>A smolweb bash generator</h1> <p>I publish this ugly code just to show that it is very easy to build and regenerate a smolwebsite with a few lines of bash script.</p> <p>It uses <a href="https://www.pell.portland.or.us/~orc/Code/discount/">discount markdown converter</a> to generate html code from .md files.</p> <h2>All files</h2> <p>The source directory contains the converter, favicons, a page template and markdown content of each page. Two folder would be used to store image (/img) and documents (/doc).</p> <p><pre><code>. β”œβ”€β”€ convert.sh β”œβ”€β”€ doc β”‚Β Β  └── index.html β”œβ”€β”€ favicon-32x32.png β”œβ”€β”€ favicon-64x64.png β”œβ”€β”€ favicon.ico β”œβ”€β”€ guidelines.md β”œβ”€β”€ img β”‚Β Β  └── index.html β”œβ”€β”€ index.md β”œβ”€β”€ news.md β”œβ”€β”€ page.tpl β”œβ”€β”€ posts β”‚Β Β  β”œβ”€β”€ 2023-10-09-1st-post.md β”‚Β Β  β”œβ”€β”€ 2023-10-09-an-other-smallweb-definition.md β”‚Β Β  └── 2023-10-11-smolweb-bash-generator.md β”œβ”€β”€ style.css └── subset.md </code></pre> </p> <h2>The bash script</h2> <p>This script (called convert.sh) uses files put in the same directory to generate the content of smolweb.org</p> <p><pre><code>#!/bin/bash cd "$(dirname "$0")" export docroot="../smolweb.org" export urlroot="https://smolweb.org" cp -vu *.{ico,png,css} $docroot cp -vu img/* $docroot/img/ cp -vu doc/* $docroot/doc/ echo "# News" &gt; news.md echo '&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xml:lang="en"&gt; &lt;title type="text"&gt;smolweb.org&lt;/title&gt; &lt;subtitle type="text"&gt;Smolweb news&lt;/subtitle&gt; &lt;updated&gt;'"$(date -u -Isecond)"'&lt;/updated&gt; &lt;link rel="alternate" type="text/html" href="'"$urlroot"'/" /&gt; &lt;id&gt;'"$urlroot"'/&lt;/id&gt; &lt;link rel="self" type="application/atom+xml" href="'"$urlroot"'/atom.xml" /&gt;' &gt; $docroot/atom.xml # posts for f in `ls -1r posts/*.md`; do head -n 3 "$f" | grep "^# " | sed -e "s/^# //" &gt; /tmp/title.tmp cat "$f" | markdown -f fencedcode &gt; /tmp/content.tmp cat "$f" | markdown -f fencedcode -f cdata &gt; /tmp/cdata.tmp cat page.tpl | sed -e "/PAGE_TITLE/r /tmp/title.tmp" -e '//d' -e "/PAGE_CONTENT/r /tmp/content.tmp" -e '//d' &gt; $docroot/${f%.*}.html echo "* $(echo $f | grep -oP "[0-9]{4}-[0-9]{2}-[0-9]{2}") [$(cat /tmp/title.tmp)](${f%.*}.html)" &gt;&gt; news.md echo ' &lt;entry xml:lang="en"&gt; &lt;author&gt;&lt;name&gt;AdΓ«le&lt;/name&gt;&lt;uri&gt;'"$urlroot"'/&lt;/uri&gt;&lt;/author&gt; &lt;title type="html"&gt;'"$(cat /tmp/title.tmp)"'&lt;/title&gt; &lt;link rel="alternate" type="text/html" href="'"$urlroot"'/'"${f%.*}.html"'" /&gt; &lt;id&gt;'"$urlroot"'/'"${f%.*}.html"'&lt;/id&gt; &lt;published&gt;'"$(echo $f | grep -oP "[0-9]{4}-[0-9]{2}-[0-9]{2}")"'T00:00:00+00:00&lt;/published&gt; &lt;updated&gt;'"$(date -u -Isecond --date=$(stat -c '@%Y' $f))"'&lt;/updated&gt; &lt;content type="html"&gt;' &gt;&gt; $docroot/atom.xml cat /tmp/cdata.tmp &gt;&gt; $docroot/atom.xml echo ' &lt;/content&gt; &lt;/entry&gt;'&gt;&gt; $docroot/atom.xml done echo '&lt;/feed&gt;' &gt;&gt; $docroot/atom.xml # pages for f in *.md do head -n 3 "$f" | grep "^# " | sed -e "s/^# //" &gt; /tmp/title.tmp cat "$f" | markdown -f fencedcode &gt; /tmp/content.tmp cat page.tpl | sed -e "/PAGE_TITLE/r /tmp/title.tmp" -e '//d' -e "/PAGE_CONTENT/r /tmp/content.tmp" -e '//d' &gt; $docroot/${f%.*}.html done </code></pre> </p> <h2>The markdown files</h2> <p>The files with .md extension contain text in markdown format. The first line begining with with a # and a space is the H1 and the title of the page.</p> <p>Example index.md:</p> <p><pre><code># About smolweb _Promoting a simple unbloated web!_ Nowadays, hardware resources of our personal devices are essentially oversized to manage bloated websites. If we incite web designers to return to a lighter web, small devices such as old PC, old smartphones, retro-machines and small boards could be usable. ... </code></pre> </p> <h2>The site template</h2> <p>The file page.tpl contains the template of a page for the site. the line PAGE_TITLE and PAGE_CONTENT are replaced dynamically to generate each page of the site.</p> <p><pre><code>&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" &gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" &gt; &lt;meta name="description" content="smolweb.org promotes simple unbloated web. It provides resources to actors who want to participate." &gt; &lt;link href="/style.css" rel="stylesheet" type="text/css" &gt; &lt;link href="/atom.xml" rel="alternate" type="application/atom+xml" title="Smolweb news" &gt; &lt;link rel="icon" href="/favicon.ico" type="image/x-icon" &gt; &lt;link rel="icon" href="/favicon-64x64.png" type="image/png" &gt; &lt;title&gt; PAGE_TITLE &lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;header&gt; &lt;p&gt; &lt;small&gt;&lt;code&gt;(w)&lt;/code&gt;&lt;/small&gt; smolweb &lt;/p&gt; &lt;nav&gt;&lt;ul&gt; &lt;li&gt;&lt;a href="/index.html"&gt;Home&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="/guidelines.html"&gt;Guidelines&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="/subset.html"&gt;HTML subset&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="/news.html"&gt;News&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="/atom.xml"&gt;RSS feed&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;/nav&gt; &lt;/header&gt; &lt;main&gt; &lt;article&gt; PAGE_CONTENT &lt;/article&gt; &lt;/main&gt; &lt;footer&gt; &lt;p&gt;&lt;a property="dct:title" rel="cc:attributionURL" href="https://smolweb.org/"&gt;Smolweb&lt;/a&gt; by &lt;a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://mastodon.tetaneutral.net/@adele"&gt;AdΓ«le&lt;/a&gt; is licensed under &lt;a href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="license noopener noreferrer"&gt;CC BY-SA 4.0&lt;/a&gt;&lt;/p&gt; &lt;/footer&gt; &lt;/body&gt; &lt;/html&gt; </code></pre> </p> <h2>The stylesheet</h2> <p>The file style.css is the stylesheet for the whole site.</p> <p><pre><code>body { margin: 0 auto; padding: 0; max-width: 1024px; font-family: Verdana, Sans-Serif; } main { margin: 0 1em; } header { color: #a0a; background-color: #ddf; padding: 0.2em; border-bottom: 1px solid black; } header p { line-height: 2em; font-size: 2em; margin: 0; padding-left: 1em; font-weight: bold; } header p small { font-size: 0.5em; } nav ul { list-style-type: none; border-left: 1px solid black; margin: 0; padding: 0; } nav ul li { display: inline-block; border-right: 1px solid black; padding: 2px 10px; margin: 0; } nav ul li a.active { font-weight: bold; } img#logo { vertical-align: middle; max-width: 80px; max-height: 80px; } pre, code { font-family: Monaco, Courier, monospace; tab-size: 1em; } pre { padding: 1em; margin: 1em 0; overflow-x: auto; background-color: #111; color: #6f6; border-radius: 0.5em; } li { margin-left: 1em; } p { margin: 1em 0; line-height: 1.5em; } a { color: #009; text-decoration: none; } blockquote { background: #eee; padding: 0.5em 1em; margin: 0 0 0 0.5em; border-radius: 0.5em; } div.inline-img img { max-width: 100%; } footer { margin-top: 20px; border-top: 1px solid black; } footer img { height:22px!important; margin-left:3px; vertical-align:text-bottom; } @media (prefers-color-scheme: dark) { body { color: #eee; background: #444; } a { color: #99f; } blockquote { color: #fff; background: #333; } } </code></pre> </p> AdΓ«lehttps://smolweb.org/ An other Small Web definition https://smolweb.org/posts/2023-10-09-an-other-smallweb-definition.html 2023-10-09T00:00:00+00:00 2024-04-02T18:12:49+00:00 <h1>An other Small Web definition</h1> <p><em>2023-10-09</em></p> <p>As mentioned on the <a href="https://smolweb.org/index.html">homepage of smolweb.org</a>, this site gives one definition and some guidelines to build a better and unbloated web.</p> <p>But there are many solutions to reach this goal. Aral Balkan give a different <a href="https://ar.al/2020/08/07/what-is-the-small-web/">definition of the Small Web</a>, and it is interesting have a look.</p> <p>In addition, he proposes several tools, such as <a href="https://codeberg.org/kitten/app">Kitten</a> to build this new web.</p> <p>You can follow him on <a href="https://mastodon.ar.al/@aral">Mastodon</a>.</p> AdΓ«lehttps://smolweb.org/ First post https://smolweb.org/posts/2023-10-09-1st-post.html 2023-10-09T00:00:00+00:00 2024-04-02T18:12:49+00:00 <h1>First post</h1> <p><em>2023-10-09</em></p> <p>I will try to publish information about smolweb here. I&rsquo;m not sure to be very productive, I have no goal, I just need an area available for posting some news.</p> <p>If you see some resources about this subject, share it with me on <a href="https://mastodon.tetaneutral.net/@adele">mastodon</a>.</p>