Commit

Author:

Hash:

Timestamp:

+20 -20 +/-4 browse

Kevin Schoon [me@kevinschoon.com]

92aa65ac112f1e4b24435c0ee7b7ce397e49e243

Mon, 01 Dec 2025 11:19:40 +0000 (6 days ago)

ensure URIs have a ://
1diff --git a/content/meta-tag.md b/content/meta-tag.md
2index 886fa44..392bd64 100644
3--- a/content/meta-tag.md
4+++ b/content/meta-tag.md
5 @@ -3,7 +3,7 @@ title: ForgeFeed Identifier
6 ---
7 The ForgeFeed identifier is a simple HTML [meta tag](https://html.spec.whatwg.org/multipage/semantics.html#the-meta-element)
8 which provides a reference to a particular forge-feed enabled project.
9- Including a `forge-feed:project` or `forge-feed:repository` tag in a given HTML page
10+ Including a `forge-feed://project` or `forge-feed://repository` tag in a given HTML page
11 provides a reference to a codebase or project page which can be used to construct
12 a webfinger query. Using the forge-feed identifier indicates that a given HTML
13 page is associated with a certain software project.
14 @@ -18,9 +18,9 @@ then the host is assumed to be at the domain which is serving the content.
15
16 ```html
17 <!-- Project on the same host -->
18- <meta name="forge-feed" content="project:spartacus"/>
19+ <meta name="forge-feed" content="project://spartacus"/>
20 <!-- Or another host -->
21- <meta name="forge-feed" content="project:spartacus@example.org"/>
22+ <meta name="forge-feed" content="project://spartacus@example.org"/>
23 <!-- Or a repository link -->
24- <meta name="forge-feed" content="repository:spartacus@code.example.org"/>
25+ <meta name="forge-feed" content="repository://spartacus@code.example.org"/>
26 ```
27 diff --git a/content/webfinger-project.md b/content/webfinger-project.md
28index 176c0e4..2f7dc4c 100644
29--- a/content/webfinger-project.md
30+++ b/content/webfinger-project.md
31 @@ -20,7 +20,7 @@ hostname, if specified, must match
32
33 project-uri = prefix slug hostname
34
35- prefix = "project:"
36+ prefix = "project://"
37 slug = rfc3986-path
38 hostname = [@ rfc3986-hostname]
39
40 @@ -34,8 +34,8 @@ If the hostname part is missing then the address of the server receiving the
41 query is assumed. For example the following two queries are equivalent:
42
43 ```text
44- https://example.org/.well-known/webfinger?resource=project:spartacus
45- https://example.org/.well-known/webfinger?resource=project:spartacus@example.org
46+ https://example.org/.well-known/webfinger?resource=project://spartacus
47+ https://example.org/.well-known/webfinger?resource=project://spartacus@example.org
48 ```
49
50 TODO: Make this an actual spec, for now, some Python:
51 @@ -54,9 +54,9 @@ def from_string(text):
52
53 def to_string(slug, domain=None):
54 if domain:
55- return quote_plus(f"project:{slug}@{domain}")
56+ return quote_plus(f"project://{slug}@{domain}")
57 else:
58- return quote_plus(f"project:{slug}")
59+ return quote_plus(f"project://{slug}")
60 ```
61
62
63 diff --git a/content/webfinger-repository.md b/content/webfinger-repository.md
64index b751cc0..a7181dd 100644
65--- a/content/webfinger-repository.md
66+++ b/content/webfinger-repository.md
67 @@ -17,7 +17,7 @@ hostname, if specified, must match
68
69 repository-uri = prefix slug hostname
70
71- prefix = "repository:"
72+ prefix = "repository://"
73 slug = rfc3986-path
74 hostname = [@ rfc3986-hostname]
75
76 @@ -33,8 +33,8 @@ If the hostname part is missing then the address of the server receiving the
77 query is assumed. For example the following two queries are equivalent:
78
79 ```text
80- https://example.org/.well-known/webfinger?resource=repository:spartacus/game
81- https://example.org/.well-known/webfinger?resource=repository:spartacus/game@example.org
82+ https://example.org/.well-known/webfinger?resource=repository://spartacus/game
83+ https://example.org/.well-known/webfinger?resource=repository://spartacus/game@example.org
84 ```
85
86 TODO: Make this an actual spec, for now, some Python:
87 @@ -53,9 +53,9 @@ def from_string(text):
88
89 def to_string(slug, domain=None):
90 if domain:
91- return quote_plus(f"repository:{slug}@{domain}")
92+ return quote_plus(f"repository://{slug}@{domain}")
93 else:
94- return quote_plus(f"repository:{slug}")
95+ return quote_plus(f"repository://{slug}")
96 ```
97
98
99 diff --git a/repository-uri.py b/repository-uri.py
100index 26f49eb..15f52a3 100644
101--- a/repository-uri.py
102+++ b/repository-uri.py
103 @@ -18,11 +18,11 @@ def to_string(slug, domain=None):
104 return quote_plus(f"repository:{slug}")
105
106
107- print(from_string("repository:fuu/bar@example.org"))
108- print(from_string("repository:fuu/bar/baz/qux@example.org"))
109- print(from_string("repository:fuu/bar/baz/qux"))
110- print(from_string("repository:~hello/world"))
111- print(from_string("repository:~hello/world@example.org"))
112- print(from_string("repository:~hello/world@example.org@aaaa"))
113+ print(from_string("repository://fuu/bar@example.org"))
114+ print(from_string("repository://fuu/bar/baz/qux@example.org"))
115+ print(from_string("repository://fuu/bar/baz/qux"))
116+ print(from_string("repository://~hello/world"))
117+ print(from_string("repository://~hello/world@example.org"))
118+ print(from_string("repository://~hello/world@example.org@aaaa"))
119 print(to_string("fuu/bar/baz", None))
120 print(to_string("fuu/bar/baz", "example.org"))