githaven/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 Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
branch Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
cite Copy citation file content, in APA and BibTex format, on repo home page (#19999) 2022-11-11 18:02:50 +01:00
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 Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
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 Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
activity.tmpl Add main landmark to templates and adjust titles (#22670) 2023-02-01 22:56:10 +00:00
blame.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
branch_dropdown.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
clone_buttons.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
clone_script.tmpl Make clone URL use current page's host (#22808) 2023-02-09 17:29:13 +08:00
commit_page.tmpl Always go full width in PR view (#22844) 2023-02-16 13:25:00 -06:00
commit_status.tmpl Change commit status icons to SVG (#20736) 2022-08-09 23:55:29 +02:00
commit_statuses.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
commits_list_small.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
commits_list.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
commits.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
create_helper.tmpl Add templates to customize text when creating and migrating repositories 2023-01-24 22:36:48 -05:00
create.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
empty.tmpl Add main landmark to templates and adjust titles (#22670) 2023-02-01 22:56:10 +00:00
file_info.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
forks.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
graph.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
header.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
home.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
icon.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
packages.tmpl Add main landmark to templates and adjust titles (#22670) 2023-02-01 22:56:10 +00:00
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 Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
unicode_escape_prompt.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
upload.tmpl Refactor i18n to locale (#20153) 2022-06-27 15:58:46 -05:00
user_cards.tmpl Add context cache as a request level cache (#22294) 2023-02-15 21:37:34 +08:00
view_file.tmpl Move helpers to be prefixed with gt- (#22879) 2023-02-13 17:59:59 +00:00
view_list.tmpl Introduce customized HTML elements, fix incorrect AppUrl usages in templates (#22861) 2023-02-17 22:02:20 +08:00
watchers.tmpl Add main landmark to templates and adjust titles (#22670) 2023-02-01 22:56:10 +00:00