Website Structure

This commit is contained in:
supalerk-ar66 2026-01-13 10:46:40 +07:00
parent 62812f2090
commit 71f0676a62
22365 changed files with 4265753 additions and 791 deletions

View file

@ -0,0 +1,18 @@
import type { ActiveHeadEntry, UseHeadInput, UseHeadOptions, UseHeadSafeInput, UseSeoMetaInput, VueHeadClient } from '@unhead/vue';
import type { NuxtApp } from '#app/nuxt';
/**
* Injects the head client from the Nuxt context or Vue inject.
*
* In Nuxt v3 this function will not throw an error if the context is missing.
*/
export declare function injectHead(nuxtApp?: NuxtApp): VueHeadClient;
interface NuxtUseHeadOptions extends UseHeadOptions {
nuxt?: NuxtApp;
}
export declare function useHead(input: UseHeadInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseHeadInput> | void;
export declare function useHeadSafe(input: UseHeadSafeInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseHeadSafeInput> | void;
export declare function useSeoMeta(input: UseSeoMetaInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseSeoMetaInput> | void;
export declare function useServerHead(input: UseHeadInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseHeadInput> | void;
export declare function useServerHeadSafe(input: UseHeadSafeInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseHeadSafeInput> | void;
export declare function useServerSeoMeta(input: UseSeoMetaInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseSeoMetaInput> | void;
export {};

View file

@ -0,0 +1,55 @@
import { hasInjectionContext, inject } from "vue";
import {
useHead as headCore,
useHeadSafe as headSafe,
headSymbol,
useSeoMeta as seoMeta,
useServerHead as serverHead,
useServerHeadSafe as serverHeadSafe,
useServerSeoMeta as serverSeoMeta
} from "@unhead/vue";
import { tryUseNuxtApp } from "#app/nuxt";
export function injectHead(nuxtApp) {
const nuxt = nuxtApp || tryUseNuxtApp();
return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {
if (hasInjectionContext()) {
return inject(headSymbol);
}
});
}
export function useHead(input, options = {}) {
const head = injectHead(options.nuxt);
if (head) {
return headCore(input, { head, ...options });
}
}
export function useHeadSafe(input, options = {}) {
const head = injectHead(options.nuxt);
if (head) {
return headSafe(input, { head, ...options });
}
}
export function useSeoMeta(input, options = {}) {
const head = injectHead(options.nuxt);
if (head) {
return seoMeta(input, { head, ...options });
}
}
export function useServerHead(input, options = {}) {
const head = injectHead(options.nuxt);
if (head) {
return serverHead(input, { head, ...options });
}
}
export function useServerHeadSafe(input, options = {}) {
const head = injectHead(options.nuxt);
if (head) {
return serverHeadSafe(input, { head, ...options });
}
}
export function useServerSeoMeta(input, options = {}) {
const head = injectHead(options.nuxt);
if (head) {
return serverSeoMeta(input, { head, ...options });
}
}

View file

@ -0,0 +1,25 @@
import type { ActiveHeadEntry, UseHeadInput, UseHeadOptions, UseHeadSafeInput, UseSeoMetaInput, VueHeadClient } from '@unhead/vue/types';
import type { NuxtApp } from '#app/nuxt';
/**
* Injects the head client from the Nuxt context or Vue inject.
*/
export declare function injectHead(nuxtApp?: NuxtApp): VueHeadClient;
interface NuxtUseHeadOptions extends UseHeadOptions {
nuxt?: NuxtApp;
}
export declare function useHead(input: UseHeadInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseHeadInput>;
export declare function useHeadSafe(input: UseHeadSafeInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseHeadSafeInput>;
export declare function useSeoMeta(input: UseSeoMetaInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseSeoMetaInput>;
/**
* @deprecated Use `useHead` instead and wrap with `if (import.meta.server)`
*/
export declare function useServerHead(input: UseHeadInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseHeadInput>;
/**
* @deprecated Use `useHeadSafe` instead and wrap with `if (import.meta.server)`
*/
export declare function useServerHeadSafe(input: UseHeadSafeInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseHeadSafeInput>;
/**
* @deprecated Use `useSeoMeta` instead and wrap with `if (import.meta.server)`
*/
export declare function useServerSeoMeta(input: UseSeoMetaInput, options?: NuxtUseHeadOptions): ActiveHeadEntry<UseSeoMetaInput>;
export {};

View file

@ -0,0 +1,47 @@
import { hasInjectionContext, inject } from "vue";
import {
useHead as headCore,
useHeadSafe as headSafe,
headSymbol,
useSeoMeta as seoMeta,
useServerHead as serverHead,
useServerHeadSafe as serverHeadSafe,
useServerSeoMeta as serverSeoMeta
} from "@unhead/vue";
import { useNuxtApp } from "#app/nuxt";
export function injectHead(nuxtApp) {
const nuxt = nuxtApp || useNuxtApp();
return nuxt.ssrContext?.head || nuxt.runWithContext(() => {
if (hasInjectionContext()) {
const head = inject(headSymbol);
if (!head) {
throw new Error("[nuxt] [unhead] Missing Unhead instance.");
}
return head;
}
});
}
export function useHead(input, options = {}) {
const head = options.head || injectHead(options.nuxt);
return headCore(input, { head, ...options });
}
export function useHeadSafe(input, options = {}) {
const head = options.head || injectHead(options.nuxt);
return headSafe(input, { head, ...options });
}
export function useSeoMeta(input, options = {}) {
const head = options.head || injectHead(options.nuxt);
return seoMeta(input, { head, ...options });
}
export function useServerHead(input, options = {}) {
const head = options.head || injectHead(options.nuxt);
return serverHead(input, { head, ...options });
}
export function useServerHeadSafe(input, options = {}) {
const head = options.head || injectHead(options.nuxt);
return serverHeadSafe(input, { head, ...options });
}
export function useServerSeoMeta(input, options = {}) {
const head = options.head || injectHead(options.nuxt);
return serverSeoMeta(input, { head, ...options });
}