Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Fix browsing file names with percent-encoded @
This adds an encode method into the javascript code so that
users can browser the Godot docs for @globalscope and @GDscript.

The bug was mentioned in:
#1853

This adds the encoding on the frontend, rather than trying to override
filename generation in scrapers. It's possible that this will impact
other documentation sources, but I expect those would also need to have
encoded the @ as %40 in their own docs.

This doesn't use JS' encodeURI or encodeURIComponent because encodeURI
doesn't include @, and encodeURIComponent includes / which we don't
want. If there are other URL-reserved characters
that would be useful to encode, those should be easy enough to add to
the short method added here.
  • Loading branch information
jessevanherk committed Apr 22, 2024
commit a21967518c8b725dfe3505f41f96a653232b3760
7 changes: 6 additions & 1 deletion assets/javascripts/models/doc.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,14 @@ app.models.Doc = class Doc extends app.Model {
return this.entry;
}

encodePath(path) {
return path.replace(/@/g, "%40");
}

findEntryByPathAndHash(path, hash) {
let entry;
if (hash && (entry = this.entries.findBy("path", `${path}#${hash}`))) {
let encodedPath = this.encodePath(path);
if (hash && (entry = this.entries.findBy("path", `${encodedPath}#${hash}`))) {
return entry;
} else if (path === "index") {
return this.toEntry();
Expand Down