mirror of
https://git.sr.ht/~seirdy/seirdy.one
synced 2024-11-23 21:02:09 +00:00
Compare commits
7 commits
13e0f05ad1
...
25f038f345
Author | SHA1 | Date | |
---|---|---|---|
|
25f038f345 | ||
|
01622d7206 | ||
|
4d3b628fb3 | ||
|
297ad1e5cb | ||
|
1a928a4807 | ||
|
c4fef91b64 | ||
|
600bd85f1a |
18 changed files with 53 additions and 15 deletions
|
@ -145,9 +145,9 @@ html {
|
||||||
margin: -.75em -.25em;
|
margin: -.75em -.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
header a[href="#main"],
|
||||||
div[itemprop="comment"] dd > a ,
|
div[itemprop="comment"] dd > a ,
|
||||||
footer > nav,
|
footer > nav,
|
||||||
header > nav,
|
|
||||||
/* List items with direct hyperlink children should only have one hyperlink. */
|
/* List items with direct hyperlink children should only have one hyperlink. */
|
||||||
li > a,
|
li > a,
|
||||||
aside > a,
|
aside > a,
|
||||||
|
@ -156,6 +156,12 @@ html {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* The nav has to be distant-enough from the top to make room for a skip-link. */
|
||||||
|
header > nav {
|
||||||
|
margin: .75em 0 0 -.25em;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
/* Multiple consecutive <dt> that share a <dd> shouldn't have tap targets overlap */
|
/* Multiple consecutive <dt> that share a <dd> shouldn't have tap targets overlap */
|
||||||
dt + dt > a {
|
dt + dt > a {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
|
@ -176,6 +182,16 @@ html {
|
||||||
section[role="doc-endnotes"] li {
|
section[role="doc-endnotes"] li {
|
||||||
margin-bottom: 1.75em;
|
margin-bottom: 1.75em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
header a[href="#main"] {
|
||||||
|
position: absolute;
|
||||||
|
top: -2em;
|
||||||
|
padding: 0 .25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
header a[href="#main"]:focus {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* narrow screens: reduce list indentation, hyphenate nested lists
|
/* narrow screens: reduce list indentation, hyphenate nested lists
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Hide screen-only content */
|
/* Hide screen-only content */
|
||||||
|
header a[href="#main"], /* Skip link */
|
||||||
aside:not([role="note"]),
|
aside:not([role="note"]),
|
||||||
/* An un-opened summary inside an article has no use in print.
|
/* An un-opened summary inside an article has no use in print.
|
||||||
* Outside an article it's used in my webring list where it has some
|
* Outside an article it's used in my webring list where it has some
|
||||||
|
|
|
@ -22,6 +22,7 @@ disableKinds = ["taxonomy", "term"]
|
||||||
dark = "auto"
|
dark = "auto"
|
||||||
highlight = false
|
highlight = false
|
||||||
icon = "/favicon.svg"
|
icon = "/favicon.svg"
|
||||||
|
indieAuth = "https://indielogin.com/auth"
|
||||||
|
|
||||||
[frontmatter]
|
[frontmatter]
|
||||||
lastmod = ['lastmod', ':git', 'date', 'publishDate']
|
lastmod = ['lastmod', ':git', 'date', 'publishDate']
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
title: "Re: trying real websites in the SerenityOS browser"
|
||||||
|
date: 2022-07-08T14:53:39-07:00
|
||||||
|
replyURI: "https://linus.dev/posts/trying-real-websites-in-the-serenityos-browser/"
|
||||||
|
replyTitle: "Trying Real™ Websites in the SerenityOS Browser"
|
||||||
|
replyType: "BlogPosting"
|
||||||
|
replyAuthor: "Linus Groh"
|
||||||
|
replyAuthorURI: "https://linus.dev/"
|
||||||
|
---
|
||||||
|
|
||||||
|
Most of these are pages that blur the line between "document" and "app", containing many interactive controls. Being concerned about them is valid; however, I think the concern is misplaced at this stage.
|
||||||
|
|
||||||
|
*For an independent engine,* I'm more interested in simple "web documents". Those need to work well before tackling "Web 2.0" territory. Specifically: articles progressively enhanced with images, stylesheets, and maybe a script or two. Understanding how well Web 2.0 sites render isn't really useful to me without first understanding how well documents render.
|
||||||
|
|
||||||
|
When testing my site, my main pain points are: a lack of support for `<details>`, misplaced `<figcaption>` elements, my SVG profile photo not rendering (it renders when I open it in a new tab), and occasional overlapping text. The only non-mainstream independent engine I know of that supports `<details>` is Servo.
|
|
@ -1,5 +1,6 @@
|
||||||
{{ define "main" -}}
|
{{ define "main" -}}
|
||||||
<main itemprop="mainEntity" class="h-feed hfeed" itemscope="" itemtype="https://schema.org/DataFeed">
|
<main id="main" tabindex="-1"
|
||||||
|
itemprop="mainEntity" class="h-feed hfeed" itemscope="" itemtype="https://schema.org/DataFeed">
|
||||||
<h1 id="bookmarks" class="p-name" itemprop="name headline">My book­marks</h1>
|
<h1 id="bookmarks" class="p-name" itemprop="name headline">My book­marks</h1>
|
||||||
{{ partial "processed-content.html" . }}
|
{{ partial "processed-content.html" . }}
|
||||||
<p role="doc-tip">
|
<p role="doc-tip">
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{{ define "main" -}}
|
{{ define "main" -}}
|
||||||
<main itemprop="mainEntity" class="h-feed hfeed" itemscope="" itemtype="https://schema.org/DataFeed">
|
<main id="main" tabindex="-1"
|
||||||
|
itemprop="mainEntity" class="h-feed hfeed" itemscope="" itemtype="https://schema.org/DataFeed">
|
||||||
{{ partial "processed-content.html" . }}
|
{{ partial "processed-content.html" . }}
|
||||||
<p role="doc-tip">
|
<p role="doc-tip">
|
||||||
Timestamp format: <code>YYYY-MM-DD HH:MM</code>, as per <cite><a href="https://www.ietf.org/rfc/rfc3339.txt">RFC 3339</a></cite>. Sorted newest to oldest.
|
Timestamp format: <code>YYYY-MM-DD HH:MM</code>, as per <cite><a href="https://www.ietf.org/rfc/rfc3339.txt">RFC 3339</a></cite>. Sorted newest to oldest.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{{ define "main" -}}
|
{{ define "main" -}}
|
||||||
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
||||||
<main >
|
<main id="main" tabindex="-1">
|
||||||
<h1>Search</h1>
|
<h1>Search</h1>
|
||||||
<p role="note">This page is an unfinished work-in-progress.</p>
|
<p role="note">This page is an unfinished work-in-progress.</p>
|
||||||
{{ partial "search.html" . }}
|
{{ partial "search.html" . }}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{{ define "main" -}}
|
{{ define "main" -}}
|
||||||
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
||||||
<main itemprop="mainEntity" itemscope="" itemtype="https://schema.org/Article" itemid="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}">
|
<main id="main" tabindex="-1"
|
||||||
|
itemprop="mainEntity" itemscope="" itemtype="https://schema.org/Article" itemid="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}">
|
||||||
{{ partial "full-article.html" . }}
|
{{ partial "full-article.html" . }}
|
||||||
</main>
|
</main>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{{ define "main" -}}
|
{{ define "main" -}}
|
||||||
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
||||||
<main>
|
<main id="main" tabindex="-1">
|
||||||
{{- $articleTag := printf `<article class="h-entry hentry" itemprop="mainEntity" itemscope="" itemtype="https://schema.org/Article" itemid="%s%s">` .Site.Params.CanonicalBaseURL $canonicalRelPermalink -}}
|
{{- $articleTag := printf `<article class="h-entry hentry" itemprop="mainEntity" itemscope="" itemtype="https://schema.org/Article" itemid="%s%s">` .Site.Params.CanonicalBaseURL $canonicalRelPermalink -}}
|
||||||
{{ partial "full-article.html" . | replaceRE `<article class="h-entry hentry">` $articleTag | safeHTML }}
|
{{ partial "full-article.html" . | replaceRE `<article class="h-entry hentry">` $articleTag | safeHTML }}
|
||||||
<hr />
|
<hr />
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{{ define "main" -}}
|
{{ define "main" -}}
|
||||||
<main>
|
<main id="main" tabindex="-1">
|
||||||
{{ partial "processed-content.html" . }}
|
{{ partial "processed-content.html" . }}
|
||||||
{{ partial "posts.html" . }}
|
{{ partial "posts.html" . }}
|
||||||
{{ partial "webrings.html" . }}
|
{{ partial "webrings.html" . }}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{{- define "main" -}}
|
{{- define "main" -}}
|
||||||
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
||||||
<main itemprop="hasPart" itemscope="" itemtype="https://schema.org/SocialMediaPosting" itemid="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}">
|
<main id="main" tabindex="-1"
|
||||||
|
itemprop="hasPart" itemscope="" itemtype="https://schema.org/SocialMediaPosting" itemid="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}">
|
||||||
<link itemprop="isPartOf" href="{{ .Site.Params.CanonicalBaseURL }}/" />
|
<link itemprop="isPartOf" href="{{ .Site.Params.CanonicalBaseURL }}/" />
|
||||||
{{ partial "full-article.html" . }}
|
{{ partial "full-article.html" . }}
|
||||||
{{ partial "webmentions.html" . }}
|
{{ partial "webmentions.html" . }}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
{{- if and (not .IsHome) (not .Parent.IsHome) -}}
|
{{- if and (not .IsHome) (not .Parent.IsHome) -}}
|
||||||
<hr />
|
<hr />
|
||||||
<nav aria-labelledby="bc-label"
|
<nav aria-labelledby="bc-label"
|
||||||
itemscope="" itemprop="breadcrumb" itemtype="https://schema.org/BreadcrumbList" itemref="body">
|
itemscope="" itemprop="breadcrumb" itemtype="https://schema.org/BreadcrumbList">
|
||||||
<span id="bc-label">You are here:</span>
|
<span id="bc-label">You are here:</span>
|
||||||
<ol>
|
<ol>
|
||||||
{{ template "breadcrumbnav" (dict "p1" . "p2" .) }}
|
{{ template "breadcrumbnav" (dict "p1" . "p2" .) }}
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}posts/atom.xml" title="Articles" />
|
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}posts/atom.xml" title="Articles" />
|
||||||
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}notes/atom.xml" title="Notes" />
|
<link rel="alternate" type="application/atom+xml" href="{{ site.BaseURL }}notes/atom.xml" title="Notes" />
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
<link rel="authorization_endpoint" href="{{ site.Params.IndieAuth }}" />
|
||||||
<title>{{ .Title }}{{ if and (lt (len .Title) 54) (ne $canonicalRelPermalink "/") }} - Seirdy{{ end }}</title>
|
<title>{{ .Title }}{{ if and (lt (len .Title) 54) (ne $canonicalRelPermalink "/") }} - Seirdy{{ end }}</title>
|
||||||
{{ $description := .Site.Params.Description -}}
|
{{ $description := .Site.Params.Description -}}
|
||||||
{{- if .Params.description -}}
|
{{- if .Params.description -}}
|
||||||
|
@ -81,5 +82,4 @@
|
||||||
<meta property="og:image:alt" content="{{ $og_image_alt }}" />
|
<meta property="og:image:alt" content="{{ $og_image_alt }}" />
|
||||||
<meta property="og:url" content="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}" />
|
<meta property="og:url" content="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}" />
|
||||||
<meta property="og:description" content="{{ $description }}" />
|
<meta property="og:description" content="{{ $description }}" />
|
||||||
{{ hugo.Generator }}
|
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<header>
|
<header>
|
||||||
|
<a href="#main">Skip to content</a>
|
||||||
<nav aria-label="Global">
|
<nav aria-label="Global">
|
||||||
<ul>
|
<ul>
|
||||||
{{- $currentPage := . -}}
|
{{- $currentPage := . -}}
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<meta itemprop="urlTemplate" content="{{ $action }}?q={q}" />
|
<meta itemprop="urlTemplate" content="{{ $action }}?q={q}" />
|
||||||
</label>
|
</label>
|
||||||
<div><!--We need the extra divs to serve as pseudo-table-cells.-->
|
<div><!--We need the extra divs to serve as pseudo-table-cells.-->
|
||||||
<input itemprop="query-input" id="search" type="search" required="" name="q" />
|
<input itemprop="query-input" id="search" type="search" required="" aria-required="true" autocomplete="on" name="q" />
|
||||||
<div><input type="submit" value="search" /></div>
|
<div><input type="submit" value="search" /></div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<input type="hidden" name="target" value="{{ .Site.Params.canonicalBaseURL }}{{ $canonicalRelPermalink }}" />
|
<input type="hidden" name="target" value="{{ .Site.Params.canonicalBaseURL }}{{ $canonicalRelPermalink }}" />
|
||||||
<label for="menchie">URL of page linking here</label>
|
<label for="menchie">URL of page linking here</label>
|
||||||
<div><!--We need the extra divs to serve as pseudo-table-cells.-->
|
<div><!--We need the extra divs to serve as pseudo-table-cells.-->
|
||||||
<input id="menchie" type="url" required="" name="source" />
|
<input id="menchie" type="url" autocomplete="off" required="" aria-required="true" name="source" /><!--disable autocomplete bc it's a unique URL.-->
|
||||||
<div><input type="submit" value="submit" /></div>
|
<div><input type="submit" value="submit" /></div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
{{- define "main" -}}
|
{{- define "main" -}}
|
||||||
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
{{- $canonicalRelPermalink := .RelPermalink | replaceRE "^/~seirdy/" "/" }}
|
||||||
{{- .Scratch.Set "codeIndex" 1 -}}
|
{{- .Scratch.Set "codeIndex" 1 -}}
|
||||||
<main itemprop="mainEntity" itemscope="" itemtype="https://schema.org/BlogPosting{{ with .Params.articleType }} https://schema.org/{{ . }}{{ end }}" itemid="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}">
|
<main id="main" tabindex="-1"
|
||||||
|
itemprop="mainEntity" itemscope="" itemtype="https://schema.org/BlogPosting{{ with .Params.articleType }} https://schema.org/{{ . }}{{ end }}" itemid="{{ .Site.Params.CanonicalBaseURL }}{{ $canonicalRelPermalink }}">
|
||||||
<link itemprop="isPartOf" href="{{ .Site.Params.CanonicalBaseURL }}/" />
|
<link itemprop="isPartOf" href="{{ .Site.Params.CanonicalBaseURL }}/" />
|
||||||
{{ partial "full-article.html" . }}
|
{{ partial "full-article.html" . }}
|
||||||
{{ partial "webmentions.html" . }}
|
{{ partial "webmentions.html" . }}
|
||||||
|
|
|
@ -61,7 +61,7 @@ validate_feed() {
|
||||||
# 'should not contian" has a false positive triggered by ARIA
|
# 'should not contian" has a false positive triggered by ARIA
|
||||||
# entries with the same timestamp isn't a big deal
|
# entries with the same timestamp isn't a big deal
|
||||||
# unregistered link relationship is a false positive caused by an unknown namespace.
|
# unregistered link relationship is a false positive caused by an unknown namespace.
|
||||||
full_regex="Use of unknown namespace|Self reference doesn't match|should not contain (role|aria-labelledby|aria-label|aria-describedby) attribute|$rel_mention_string|entries with the same value|Validating $url"
|
full_regex="Use of unknown namespace|Self reference doesn't match|should not contain (role|aria-labelledby|aria-label|aria-describedby|aria-hidden|controls) attribute|$rel_mention_string|entries with the same value|Validating $url"
|
||||||
|
|
||||||
run_validator \
|
run_validator \
|
||||||
| grep -Ev "$full_regex"
|
| grep -Ev "$full_regex"
|
||||||
|
|
Loading…
Reference in a new issue