Author:
Hash:
Timestamp:
+20 -20 +/-4 browse
Kevin Schoon [me@kevinschoon.com]
92aa65ac112f1e4b24435c0ee7b7ce397e49e243
Mon, 01 Dec 2025 11:19:40 +0000 (6 days ago)
| 1 | diff --git a/content/meta-tag.md b/content/meta-tag.md |
| 2 | index 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 |
| 28 | index 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 |
| 64 | index 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 |
| 100 | index 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")) |