* switch to a Document trait and introduce Script/Head/Style/Meta components * Fix desktop title * Insert special elements into the head during the inital SSR render * Make all head component attributes optional * hydrate head elements * improve the server streaming head warning * Document fullstack head hydration approach * deduplicate head elements by href * move Link into head::Link * document head components * add meta and title examples * Fix a few doc examples * fix formatting * Add title to playwright tests * serde is optional on web, but it is enabled by hydrate * remove leftover console log
20 lines
490 B
TypeScript
20 lines
490 B
TypeScript
// Helper functions for working with the document head
|
|
|
|
function createElementInHead(
|
|
tag: string,
|
|
attributes: [string, string][],
|
|
children: string | null
|
|
): void {
|
|
const element = document.createElement(tag);
|
|
for (const [key, value] of attributes) {
|
|
element.setAttribute(key, value);
|
|
}
|
|
if (children) {
|
|
element.appendChild(document.createTextNode(children));
|
|
}
|
|
document.head.appendChild(element);
|
|
}
|
|
|
|
// @ts-ignore
|
|
window.createElementInHead = createElementInHead;
|