9 lines
635 B
JavaScript
9 lines
635 B
JavaScript
// Embeds/extracts a handle in a URL path segment. See docs/federation.md's "Embedding a
|
|
// `#`-bearing handle in a URL": `#` starts a URI's fragment component, so a group handle
|
|
// (`#name@domain`) or classification handle (`origin#type:name`) can't appear unescaped in a
|
|
// path segment. `+` stands in for `#` there instead of the usual %23 - safe to reverse
|
|
// unambiguously because every field a handle is built from is already required to exclude `+`
|
|
// (see federation.md's Reserved characters). The canonical handle itself never changes; this only
|
|
// affects how one gets embedded in, or read back out of, a URL path segment.
|
|
|
|
|