forgejo/templates/repo
wxiaoguang e7ef94e00f
Introduce customized HTML elements, fix incorrect AppUrl usages in templates (#22861)
This PR follows:
* #21986
* #22831

This PR also introduce customized HTML elements, which would also help
problems like:
* #17760
* #21429
* #21440

With customized HTML elements, there won't be any load-search-replace
operations, and it can avoid page flicking (which @silverwind cares a
lot).

Browser support:
https://developer.mozilla.org/en-US/docs/Web/API/Window/customElements

# FAQ

## Why the component has the prefix?

As usual, I would strongly suggest to add prefixes for our own/private
names. The dedicated prefix will avoid conflicts in the future, and it
makes it easier to introduce various 3rd components, like GitHub's
`relative-time` component. If there is no prefix, it's impossible to
introduce another public component with the same name in the future.

## Why the `custcomp.js` is loaded before HTML body? The `index.js` is
after HTML body.

Customized components must be registered before the content loading.
Otherwise there would be still some flicking.

`custcomp.js` should have its own dependencies and should be very light,
so it won't affect the page loading time too much.

## Why use `data-url` attribute but not use the `textContent`?

According to the standard, the `connectedCallback` occurs on the
tag-opening moment. The element's children are not ready yet.

## Why not use `{{.GuessCurrentOrigin $.ctx ...}}` to let backend decide
the absolute URL?

It's difficult for backend to guess the correct protocol(scheme)
correctly with zero configuration. Generating the absolute URL from
frontend can guarantee that the URL is 100% correct -- since the user is
visiting it.

# Screenshot

<details>

![image](https://user-images.githubusercontent.com/2114189/218256757-a267c8ba-3108-4755-9ae5-329f1b08f615.png)

</details>
2023-02-17 22:02:20 +08:00
..
actions
branch
cite
diff Always go full width in PR view (#22844) 2023-02-16 13:25:00 -06:00
editor Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
find
graph Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
issue Introduce customized HTML elements, fix incorrect AppUrl usages in templates (#22861) 2023-02-17 22:02:20 +08:00
migrate Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
projects Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
pulls Always go full width in PR view (#22844) 2023-02-16 13:25:00 -06:00
release Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
settings Fix 404 error viewing the LFS file (#22945) 2023-02-17 11:55:33 +08:00
wiki
activity.tmpl
blame.tmpl
branch_dropdown.tmpl
clone_buttons.tmpl
clone_script.tmpl
commit_page.tmpl Always go full width in PR view (#22844) 2023-02-16 13:25:00 -06:00
commit_status.tmpl
commit_statuses.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
commits.tmpl
commits_list.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
commits_list_small.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
commits_table.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
create.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
create_helper.tmpl Add templates to customize text when creating and migrating repositories 2023-01-24 22:36:48 -05:00
empty.tmpl
file_info.tmpl
forks.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
graph.tmpl
header.tmpl
home.tmpl
icon.tmpl
packages.tmpl
search.tmpl Remove Fomantic-UI's .hidden CSS class for menu elements (#22895) 2023-02-14 19:53:54 +08:00
shabox_badge.tmpl Fix shabox regression (#22924) 2023-02-16 09:37:11 +08:00
sub_menu.tmpl
unicode_escape_prompt.tmpl
upload.tmpl
user_cards.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
view_file.tmpl
view_list.tmpl Introduce customized HTML elements, fix incorrect AppUrl usages in templates (#22861) 2023-02-17 22:02:20 +08:00
watchers.tmpl