1
0
Fork 0
mirror of https://git.sr.ht/~seirdy/seirdy.one synced 2024-11-27 14:12:09 +00:00

IndieWeb: more semantic markup

The only visible change to page display should be author names in
webmentions. Besides that, this commit only alters the underlying markup
to improve metadata extraction.

- Add more microdata for webmentions, authors, dates, etc.
- Add microformats2 for webmentions
- Add authors to webmention text, when available.
This commit is contained in:
Rohan Kumar 2022-02-10 14:22:37 -08:00
parent 21c623d62b
commit 94bda64305
No known key found for this signature in database
GPG key ID: 1E892DB2A5F84479
2 changed files with 64 additions and 45 deletions

View file

@ -4,55 +4,75 @@
<header id="post-header"> <header id="post-header">
<h1 itemprop="name headline" class="p-name">{{ .Title }}</h1> <h1 itemprop="name headline" class="p-name">{{ .Title }}</h1>
{{ if lt .Date .Lastmod -}} {{ if lt .Date .Lastmod -}}
Posted <time class="dt-published" itemprop="datePublished" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format "2006-01-02" }}</time> by {{- partial "indieweb-author.html" -}} on his <a class="u-url" href="https://seirdy.one{{ .RelPermalink }}">Website</a> Posted <time class="dt-published" itemprop="datePublished" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format "2006-01-02" }}</time> by {{- partial "indieweb-author.html" -}} on his <a class="u-url" href="https://seirdy.one{{ .RelPermalink }}">Website</a>
{{- with .OutputFormats.Get "gemtext" }} {{ with .OutputFormats.Get "gemtext" -}}
and <a rel="syndication" class="u-syndication" href="{{replace .Permalink "/gemini" "" 1 | safeURL}}">Gemini capsule</a> and <a rel="syndication" class="u-syndication" href="{{replace .Permalink "/gemini" "" 1 | safeURL}}">Gemini capsule</a>
{{- end -}} {{- end -}}
<br> <br>
Last updated <time itemprop="dateModified" class="dt-updated" datetime="{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Lastmod.Format "2006-01-02" }}</time>. <a href="{{ .Site.Params.logUrlPrefix }}content/{{ .File.Path }}">Changelog</a> Last updated <time itemprop="dateModified" class="dt-updated" datetime="{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Lastmod.Format "2006-01-02" }}</time>. <a href="{{ .Site.Params.logUrlPrefix }}content/{{ .File.Path }}">Changelog</a>
{{ else -}} {{ else -}}
Posted <a class="u-url" href="https://seirdy.one{{ .RelPermalink }}"><time itemprop="datePublished" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format "2006-01-02" }}</time></a> by {{- partial "indieweb-author.html" -}} on his <a class="u-url" href="https://seirdy.one{{ .RelPermalink }}">Website</a> Posted <a class="u-url" href="https://seirdy.one{{ .RelPermalink }}"><time itemprop="datePublished" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">{{ .Date.Format "2006-01-02" }}</time></a> by {{- partial "indieweb-author.html" -}} on his <a class="u-url" href="https://seirdy.one{{ .RelPermalink }}">Website</a>
{{- with .OutputFormats.Get "gemtext" }} {{- with .OutputFormats.Get "gemtext" -}}
and <a rel="syndication" class="u-syndication" href="{{replace .Permalink "/gemini" "" 1 | safeURL}}">Gemini capsule</a> and <a rel="syndication" class="u-syndication" href="{{replace .Permalink "/gemini" "" 1 | safeURL}}">Gemini capsule</a>
{{- end -}} {{- end -}}
{{ end }} {{ end }}
</header> </header>
<section class="e-content" itemprop="articlebody"> <section class="e-content" itemprop="articlebody">
{{ partial "processed-content" . -}} {{ partial "processed-content" . -}}
</section> </section>
</article> </article>
</div> <hr>
<hr> <p>
<p> {{- if .PrevInSection -}}<a href="{{ .PrevInSection.Permalink }}">Previous</a>{{- end -}}
{{- if .PrevInSection -}}<a href="{{ .PrevInSection.Permalink }}">Previous</a>{{- end -}} {{- if and (.PrevInSection) (.NextInSection) }} · {{ end -}}
{{- if and (.PrevInSection) (.NextInSection) }} · {{ end -}} {{- if .NextInSection -}}<a href="{{ .NextInSection.Permalink }}">Next</a>{{- end -}}
{{- if .NextInSection -}}<a href="{{ .NextInSection.Permalink }}">Next</a>{{- end -}} </p>
</p> <hr>
<hr> <footer class="comment">
<footer class="comment"> <p><a href="mailto:~seirdy/seirdy.one-comments@lists.sr.ht">Send an email</a> to leave a comment in the <a href="https://lists.sr.ht/~seirdy/seirdy.one-comments">mailing list</a> for seirdy.one. You'll have to send in plain text; please <a href="https://useplaintext.email/">learn how</a>. Alternatively, send your email <a href="mailto:seirdy@seirdy.one">directly to me</a>; it wont show up on the mailing list, but Ill see it.</p>
<p><a href="mailto:~seirdy/seirdy.one-comments@lists.sr.ht">Send an email</a> to leave a comment in the <a href="https://lists.sr.ht/~seirdy/seirdy.one-comments">mailing list</a> for seirdy.one. You'll have to send in plain text; please <a href="https://useplaintext.email/">learn how</a>. Alternatively, send your email <a href="mailto:seirdy@seirdy.one">directly to me</a>; it wont show up on the mailing list, but Ill see it.</p> <p>This site also supports <a href="https://indieweb.org/webmention">Webmentions</a>. Webmentions received for this post will appear below after I approve them. I sometimes send Webmentions to myself on behalf of linking sites that don't support them. Check the <a href="https://web.archive.org/">Wayback Machine</a> if any links are broken.</p>
<p>This site also supports <a href="https://indieweb.org/webmention">Webmentions</a>. Webmentions received for this post will appear below after I approve them. I sometimes send Webmentions to myself on behalf of linking sites that don't support them. Check the <a href="https://web.archive.org/">Wayback Machine</a> if any links are broken.</p> <section class="webmentions">
<section class="webmentions"> <h2>Webmentions</h2>
<h2>Webmentions</h2> <ul class="unstyled-list">
<ul class="unstyled-list"> {{ $target := .RelPermalink -}}
{{ $target := .RelPermalink -}} {{ $url := printf "https://seirdy.one/webmentions/get?status=approved&target=https://seirdy.one%s" $target -}}
{{ $url := printf "https://seirdy.one/webmentions/get?status=approved&target=https://seirdy.one%s" $target -}} {{ $webmentions := getJSON $url -}}
{{ $webmentions := getJSON $url -}} {{ range $webmentions -}}
{{ range $webmentions -}} {{ $webmention := . -}}
{{ $webmention := . -}} {{ if (eq $webmention.type "like") -}}
<li> <li itemprop="potentialAction" itemscope itemtype="https://schema.org/LikeAction" class="u-like h-cite">
<time datetime="{{ dateFormat "2006-01-02 15:04:05Z07:00" $webmention.created_at }}">{{ dateFormat "2006-01-02" $webmention.created_at }}</time> {{- else -}}
<br> <li itemprop="comment" itemscope itemtype="https://schema.org/Comment" class="u-comment h-cite">
{{ if (eq $webmention.type "like") -}} {{- end }}
<a href="{{ $webmention.source }}" rel="nofollow">{{ if $webmention.author_name }}{{ $webmention.author_name }}{{ else if $webmention.title }}{{ $webmention.title }}{{ else }}{{ $webmention.source }}{{ end }}</a> liked this <time class="dt-published" itemprop="{{ if (eq $webmention.type "like") -}}startTime{{ else }}datePublished{{ end }}" datetime="{{ dateFormat "2006-01-02 15:04:05Z07:00" $webmention.created_at }}">{{ dateFormat "2006-01-02" $webmention.created_at }}</time>
{{else -}} <br>
<a href="{{ $webmention.source }}" rel="nofollow">{{ if $webmention.title }}{{ $webmention.title }}{{ else }}{{ $webmention.source }}{{ end }}</a> {{ if (eq $webmention.type "like") -}}
{{- if $webmention.author_name -}}
<span itemprop="agent" itemscope itemtype="https://schema.org/Person" class="h-card p-author vcard"><span itemprop="name" class="p-name fn n">{{ $webmention.author_name }}</span></span>
{{- else if $webmention.title -}}
<span itemprop="name" class="p-name">{{ $webmention.title -}}</span>
{{- else -}}
{{ $webmention.source -}}
{{- end }}
<a class="u-url" href="{{ $webmention.source }}" rel="nofollow ugc">liked</a> this
{{- else -}}
<a class="u-url" href="{{ $webmention.source }}" rel="nofollow ugc"><span itemprop="name" class="p-content p-name">
{{- if $webmention.title -}}
{{- $webmention.title -}}
{{- else -}}
{{- $webmention.source -}}
{{- end -}}
</span></a>
{{- if $webmention.author_name }}
by <span itemprop="author" itemscope itemtype="https://schema.org/Person" class="h-card p-author vcard"><span itemprop="name" class="p-name fn n">{{ $webmention.author_name }}</span></span>
{{- end -}}
{{- end }}
</li>
{{ else -}}
<li><p>This post doesn't have any approved Webmentions yet.</p></li>
{{- end }} {{- end }}
</li> </ul>
{{ else -}} </section>
<li><p>This post doesn't have any approved Webmentions yet.</p></li> </footer>
{{- end }} </div>
</ul>
</section>
</footer>
{{ end }} {{ end }}

View file

@ -1,5 +1,4 @@
<!-- re-using the indefinetly-cached favicon to avoid bloating page size --> <!-- re-using the indefinetly-cached favicon to avoid bloating page size -->
{{ $favicon := resources.Get "/favicon.png" -}} {{ $favicon := resources.Get "/favicon.png" -}}
{{- $favicon_base64 := $favicon.Content | base64Encode -}} {{- $favicon_base64 := $favicon.Content | base64Encode -}}
<span itemprop="author" class="h-card p-author vcard"><a href="https://seirdy.one" rel="author home" class="u-url url"><img class="u-photo photo" src="data:image/png;base64,{{ $favicon_base64 }}" width="16" height="16" alt="Rohan Kumar"> <span class="p-name fn n"><span class="p-given-name given-name">Rohan</span> <span class="p-family-name family-name">Kumar</span></span></a></span> <span itemprop="author" itemscope itemtype="https://schema.org/Person" class="h-card p-author vcard"><a itemprop="url" href="https://seirdy.one" rel="author home" class="u-url url"><img itemprop="image" class="u-photo photo" src="data:image/png;base64,{{ $favicon_base64 }}" width="16" height="16" alt="Rohan Kumar"> <span itemprop="name" class="p-name fn n"><span itemprop="givenName" class="p-given-name given-name">Rohan</span> <span itemprop="familyName" class="p-family-name family-name">Kumar</span></span></a></span>