Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
466bf33a03 | ||
|
|
b88aa987c6 | ||
|
|
c452bdd76b | ||
|
|
7144d67e8f | ||
|
|
f7efe8dd7d | ||
|
|
a47585c8bd | ||
|
|
bb02c09198 | ||
|
|
d441262c75 | ||
|
|
c3de3b287e | ||
|
|
2516cf29ca | ||
|
|
3f78184b6a | ||
|
|
3124521a21 | ||
|
|
4f95af905a | ||
|
|
6cd32df0ee | ||
|
|
0028c52496 | ||
|
|
295842c70c | ||
|
|
04cba4fa05 | ||
|
|
4ba40731dd | ||
|
|
b102304cdb | ||
|
|
02e218d185 | ||
|
|
ab4bad05ae | ||
|
|
6fdffbe5c6 | ||
|
|
97b75989b7 | ||
|
|
c943530b6e | ||
|
|
9df6466c39 | ||
|
|
8609c753f5 | ||
|
|
158231fd64 | ||
|
|
473b47b919 | ||
|
|
ff6a3eeaee | ||
|
|
19da616d98 | ||
|
|
bec1c2753b | ||
|
|
d28f0bea40 | ||
|
|
104495cd6e | ||
|
|
f4ef343f75 | ||
|
|
195d6128c8 | ||
|
|
f3994bbede | ||
|
|
7b23619fcb |
256
.astro/astro/content.d.ts
vendored
Normal file
256
.astro/astro/content.d.ts
vendored
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
declare module 'astro:content' {
|
||||||
|
interface Render {
|
||||||
|
'.mdx': Promise<{
|
||||||
|
Content: import('astro').MarkdownInstance<{}>['Content'];
|
||||||
|
headings: import('astro').MarkdownHeading[];
|
||||||
|
remarkPluginFrontmatter: Record<string, any>;
|
||||||
|
}>;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'astro:content' {
|
||||||
|
interface RenderResult {
|
||||||
|
Content: import('astro/runtime/server/index.js').AstroComponentFactory;
|
||||||
|
headings: import('astro').MarkdownHeading[];
|
||||||
|
remarkPluginFrontmatter: Record<string, any>;
|
||||||
|
}
|
||||||
|
interface Render {
|
||||||
|
'.md': Promise<RenderResult>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RenderedContent {
|
||||||
|
html: string;
|
||||||
|
metadata?: {
|
||||||
|
imagePaths: Array<string>;
|
||||||
|
[key: string]: unknown;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'astro:content' {
|
||||||
|
type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
|
||||||
|
|
||||||
|
export type CollectionKey = keyof AnyEntryMap;
|
||||||
|
export type CollectionEntry<C extends CollectionKey> = Flatten<AnyEntryMap[C]>;
|
||||||
|
|
||||||
|
export type ContentCollectionKey = keyof ContentEntryMap;
|
||||||
|
export type DataCollectionKey = keyof DataEntryMap;
|
||||||
|
|
||||||
|
type AllValuesOf<T> = T extends any ? T[keyof T] : never;
|
||||||
|
type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
|
||||||
|
ContentEntryMap[C]
|
||||||
|
>['slug'];
|
||||||
|
|
||||||
|
/** @deprecated Use `getEntry` instead. */
|
||||||
|
export function getEntryBySlug<
|
||||||
|
C extends keyof ContentEntryMap,
|
||||||
|
E extends ValidContentEntrySlug<C> | (string & {}),
|
||||||
|
>(
|
||||||
|
collection: C,
|
||||||
|
// Note that this has to accept a regular string too, for SSR
|
||||||
|
entrySlug: E,
|
||||||
|
): E extends ValidContentEntrySlug<C>
|
||||||
|
? Promise<CollectionEntry<C>>
|
||||||
|
: Promise<CollectionEntry<C> | undefined>;
|
||||||
|
|
||||||
|
/** @deprecated Use `getEntry` instead. */
|
||||||
|
export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
|
||||||
|
collection: C,
|
||||||
|
entryId: E,
|
||||||
|
): Promise<CollectionEntry<C>>;
|
||||||
|
|
||||||
|
export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
|
||||||
|
collection: C,
|
||||||
|
filter?: (entry: CollectionEntry<C>) => entry is E,
|
||||||
|
): Promise<E[]>;
|
||||||
|
export function getCollection<C extends keyof AnyEntryMap>(
|
||||||
|
collection: C,
|
||||||
|
filter?: (entry: CollectionEntry<C>) => unknown,
|
||||||
|
): Promise<CollectionEntry<C>[]>;
|
||||||
|
|
||||||
|
export function getEntry<
|
||||||
|
C extends keyof ContentEntryMap,
|
||||||
|
E extends ValidContentEntrySlug<C> | (string & {}),
|
||||||
|
>(entry: {
|
||||||
|
collection: C;
|
||||||
|
slug: E;
|
||||||
|
}): E extends ValidContentEntrySlug<C>
|
||||||
|
? Promise<CollectionEntry<C>>
|
||||||
|
: Promise<CollectionEntry<C> | undefined>;
|
||||||
|
export function getEntry<
|
||||||
|
C extends keyof DataEntryMap,
|
||||||
|
E extends keyof DataEntryMap[C] | (string & {}),
|
||||||
|
>(entry: {
|
||||||
|
collection: C;
|
||||||
|
id: E;
|
||||||
|
}): E extends keyof DataEntryMap[C]
|
||||||
|
? Promise<DataEntryMap[C][E]>
|
||||||
|
: Promise<CollectionEntry<C> | undefined>;
|
||||||
|
export function getEntry<
|
||||||
|
C extends keyof ContentEntryMap,
|
||||||
|
E extends ValidContentEntrySlug<C> | (string & {}),
|
||||||
|
>(
|
||||||
|
collection: C,
|
||||||
|
slug: E,
|
||||||
|
): E extends ValidContentEntrySlug<C>
|
||||||
|
? Promise<CollectionEntry<C>>
|
||||||
|
: Promise<CollectionEntry<C> | undefined>;
|
||||||
|
export function getEntry<
|
||||||
|
C extends keyof DataEntryMap,
|
||||||
|
E extends keyof DataEntryMap[C] | (string & {}),
|
||||||
|
>(
|
||||||
|
collection: C,
|
||||||
|
id: E,
|
||||||
|
): E extends keyof DataEntryMap[C]
|
||||||
|
? Promise<DataEntryMap[C][E]>
|
||||||
|
: Promise<CollectionEntry<C> | undefined>;
|
||||||
|
|
||||||
|
/** Resolve an array of entry references from the same collection */
|
||||||
|
export function getEntries<C extends keyof ContentEntryMap>(
|
||||||
|
entries: {
|
||||||
|
collection: C;
|
||||||
|
slug: ValidContentEntrySlug<C>;
|
||||||
|
}[],
|
||||||
|
): Promise<CollectionEntry<C>[]>;
|
||||||
|
export function getEntries<C extends keyof DataEntryMap>(
|
||||||
|
entries: {
|
||||||
|
collection: C;
|
||||||
|
id: keyof DataEntryMap[C];
|
||||||
|
}[],
|
||||||
|
): Promise<CollectionEntry<C>[]>;
|
||||||
|
|
||||||
|
export function render<C extends keyof AnyEntryMap>(
|
||||||
|
entry: AnyEntryMap[C][string],
|
||||||
|
): Promise<RenderResult>;
|
||||||
|
|
||||||
|
export function reference<C extends keyof AnyEntryMap>(
|
||||||
|
collection: C,
|
||||||
|
): import('astro/zod').ZodEffects<
|
||||||
|
import('astro/zod').ZodString,
|
||||||
|
C extends keyof ContentEntryMap
|
||||||
|
? {
|
||||||
|
collection: C;
|
||||||
|
slug: ValidContentEntrySlug<C>;
|
||||||
|
}
|
||||||
|
: {
|
||||||
|
collection: C;
|
||||||
|
id: keyof DataEntryMap[C];
|
||||||
|
}
|
||||||
|
>;
|
||||||
|
// Allow generic `string` to avoid excessive type errors in the config
|
||||||
|
// if `dev` is not running to update as you edit.
|
||||||
|
// Invalid collection names will be caught at build time.
|
||||||
|
export function reference<C extends string>(
|
||||||
|
collection: C,
|
||||||
|
): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;
|
||||||
|
|
||||||
|
type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
|
||||||
|
type InferEntrySchema<C extends keyof AnyEntryMap> = import('astro/zod').infer<
|
||||||
|
ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']>
|
||||||
|
>;
|
||||||
|
|
||||||
|
type ContentEntryMap = {
|
||||||
|
"blog": {
|
||||||
|
"10-essential-web-development-tools-for-building-stunning-websites.mdx": {
|
||||||
|
id: "10-essential-web-development-tools-for-building-stunning-websites.mdx";
|
||||||
|
slug: "10-essential-web-development-tools-for-building-stunning-websites";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"benefits-of-headless-cms-development-with-directus.mdx": {
|
||||||
|
id: "benefits-of-headless-cms-development-with-directus.mdx";
|
||||||
|
slug: "benefits-of-headless-cms-development-with-directus";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"comparing-mvc-frameworks.mdx": {
|
||||||
|
id: "comparing-mvc-frameworks.mdx";
|
||||||
|
slug: "comparing-mvc-frameworks";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"debugging-tips-for-astrojs.mdx": {
|
||||||
|
id: "debugging-tips-for-astrojs.mdx";
|
||||||
|
slug: "debugging-tips-for-astrojs";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"dockerizing-front-end-development.mdx": {
|
||||||
|
id: "dockerizing-front-end-development.mdx";
|
||||||
|
slug: "dockerizing-front-end-development";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"essential-frontend-tools-for-astro-js-developers.mdx": {
|
||||||
|
id: "essential-frontend-tools-for-astro-js-developers.mdx";
|
||||||
|
slug: "essential-frontend-tools-for-astro-js-developers";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"exploring-nodejs-development-trends-2024.mdx": {
|
||||||
|
id: "exploring-nodejs-development-trends-2024.mdx";
|
||||||
|
slug: "exploring-nodejs-development-trends-2024";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"getting-started-with-astrojs.mdx": {
|
||||||
|
id: "getting-started-with-astrojs.mdx";
|
||||||
|
slug: "getting-started-with-astrojs";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"mastering-markdown.mdx": {
|
||||||
|
id: "mastering-markdown.mdx";
|
||||||
|
slug: "mastering-markdown";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"modern-web-frameworks-introduction.mdx": {
|
||||||
|
id: "modern-web-frameworks-introduction.mdx";
|
||||||
|
slug: "modern-web-frameworks-introduction";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"this-is-a-draft.mdx": {
|
||||||
|
id: "this-is-a-draft.mdx";
|
||||||
|
slug: "this-is-a-draft";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"top-10-ides-for-astrojs.mdx": {
|
||||||
|
id: "top-10-ides-for-astrojs.mdx";
|
||||||
|
slug: "top-10-ides-for-astrojs";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
"unleasing-the-power-of-astro-js-for-better-web-development.mdx": {
|
||||||
|
id: "unleasing-the-power-of-astro-js-for-better-web-development.mdx";
|
||||||
|
slug: "unleasing-the-power-of-astro-js-for-better-web-development";
|
||||||
|
body: string;
|
||||||
|
collection: "blog";
|
||||||
|
data: InferEntrySchema<"blog">
|
||||||
|
} & { render(): Render[".mdx"] };
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
type DataEntryMap = {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
type AnyEntryMap = ContentEntryMap & DataEntryMap;
|
||||||
|
|
||||||
|
export type ContentConfig = typeof import("../../src/content/config.js");
|
||||||
|
}
|
||||||
611
.astro/icon.d.ts
vendored
611
.astro/icon.d.ts
vendored
@ -1,5 +1,5 @@
|
|||||||
// Automatically generated by astro-icon
|
// Automatically generated by astro-icon
|
||||||
// b5656b180e17d605a43b549d7b16b9fe1f88ab935972b5d2c4a0adc596506799
|
// e1835e401531cca168f581798b2b1fadc5b36220e943f7d1ce57afe85ae4b95d
|
||||||
|
|
||||||
declare module 'virtual:astro-icon' {
|
declare module 'virtual:astro-icon' {
|
||||||
export type Icon =
|
export type Icon =
|
||||||
@ -25,73 +25,227 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:align-center"
|
| "line-md:align-center"
|
||||||
| "line-md:align-justify"
|
| "line-md:align-justify"
|
||||||
| "line-md:align-left"
|
| "line-md:align-left"
|
||||||
|
| "line-md:align-right"
|
||||||
|
| "line-md:arrow-align-bottom"
|
||||||
| "line-md:arrow-align-center"
|
| "line-md:arrow-align-center"
|
||||||
| "line-md:arrow-align-left"
|
| "line-md:arrow-align-left"
|
||||||
|
| "line-md:arrow-align-middle"
|
||||||
|
| "line-md:arrow-align-right"
|
||||||
|
| "line-md:arrow-align-top"
|
||||||
|
| "line-md:arrow-close-down"
|
||||||
| "line-md:arrow-close-left"
|
| "line-md:arrow-close-left"
|
||||||
|
| "line-md:arrow-close-right"
|
||||||
|
| "line-md:arrow-close-up"
|
||||||
|
| "line-md:arrow-down"
|
||||||
|
| "line-md:arrow-down-circle"
|
||||||
|
| "line-md:arrow-down-circle-twotone"
|
||||||
|
| "line-md:arrow-down-square"
|
||||||
|
| "line-md:arrow-down-square-twotone"
|
||||||
| "line-md:arrow-left"
|
| "line-md:arrow-left"
|
||||||
| "line-md:arrow-left-circle"
|
| "line-md:arrow-left-circle"
|
||||||
| "line-md:arrow-left-circle-twotone"
|
| "line-md:arrow-left-circle-twotone"
|
||||||
| "line-md:arrow-left-square"
|
| "line-md:arrow-left-square"
|
||||||
| "line-md:arrow-left-square-twotone"
|
| "line-md:arrow-left-square-twotone"
|
||||||
| "line-md:arrow-long-diagonal"
|
| "line-md:arrow-open-down"
|
||||||
| "line-md:arrow-open-left"
|
| "line-md:arrow-open-left"
|
||||||
|
| "line-md:arrow-open-right"
|
||||||
|
| "line-md:arrow-open-up"
|
||||||
|
| "line-md:arrow-right"
|
||||||
|
| "line-md:arrow-right-circle"
|
||||||
|
| "line-md:arrow-right-circle-twotone"
|
||||||
|
| "line-md:arrow-right-square"
|
||||||
|
| "line-md:arrow-right-square-twotone"
|
||||||
|
| "line-md:arrow-small-down"
|
||||||
| "line-md:arrow-small-left"
|
| "line-md:arrow-small-left"
|
||||||
|
| "line-md:arrow-small-right"
|
||||||
|
| "line-md:arrow-small-up"
|
||||||
|
| "line-md:arrow-up"
|
||||||
|
| "line-md:arrow-up-circle"
|
||||||
|
| "line-md:arrow-up-circle-twotone"
|
||||||
|
| "line-md:arrow-up-square"
|
||||||
|
| "line-md:arrow-up-square-twotone"
|
||||||
| "line-md:arrows-diagonal"
|
| "line-md:arrows-diagonal"
|
||||||
|
| "line-md:arrows-diagonal-rotated"
|
||||||
| "line-md:arrows-horizontal"
|
| "line-md:arrows-horizontal"
|
||||||
| "line-md:arrows-horizontal-alt"
|
| "line-md:arrows-horizontal-alt"
|
||||||
|
| "line-md:arrows-long-diagonal"
|
||||||
|
| "line-md:arrows-long-diagonal-rotated"
|
||||||
|
| "line-md:arrows-vertical"
|
||||||
|
| "line-md:arrows-vertical-alt"
|
||||||
|
| "line-md:at"
|
||||||
| "line-md:backup-restore"
|
| "line-md:backup-restore"
|
||||||
| "line-md:beer"
|
| "line-md:beer"
|
||||||
|
| "line-md:beer-alt"
|
||||||
| "line-md:beer-alt-filled"
|
| "line-md:beer-alt-filled"
|
||||||
| "line-md:beer-alt-filled-loop"
|
| "line-md:beer-alt-filled-loop"
|
||||||
|
| "line-md:beer-alt-loop"
|
||||||
| "line-md:beer-alt-twotone"
|
| "line-md:beer-alt-twotone"
|
||||||
| "line-md:beer-alt-twotone-loop"
|
| "line-md:beer-alt-twotone-loop"
|
||||||
| "line-md:beer-filled"
|
| "line-md:beer-filled"
|
||||||
|
| "line-md:beer-filled-loop"
|
||||||
| "line-md:beer-loop"
|
| "line-md:beer-loop"
|
||||||
| "line-md:beer-twotone"
|
| "line-md:beer-twotone"
|
||||||
| "line-md:beer-twotone-loop"
|
| "line-md:beer-twotone-loop"
|
||||||
| "line-md:bell"
|
| "line-md:bell"
|
||||||
| "line-md:bell-alert"
|
| "line-md:bell-alert"
|
||||||
|
| "line-md:bell-alert-filled"
|
||||||
|
| "line-md:bell-alert-filled-loop"
|
||||||
| "line-md:bell-alert-loop"
|
| "line-md:bell-alert-loop"
|
||||||
|
| "line-md:bell-alert-twotone"
|
||||||
|
| "line-md:bell-alert-twotone-loop"
|
||||||
|
| "line-md:bell-filled"
|
||||||
|
| "line-md:bell-filled-loop"
|
||||||
| "line-md:bell-loop"
|
| "line-md:bell-loop"
|
||||||
| "line-md:bell-twotone"
|
| "line-md:bell-twotone"
|
||||||
| "line-md:bell-twotone-alert"
|
|
||||||
| "line-md:bell-twotone-alert-loop"
|
|
||||||
| "line-md:bell-twotone-loop"
|
| "line-md:bell-twotone-loop"
|
||||||
|
| "line-md:brake"
|
||||||
|
| "line-md:brake-abs"
|
||||||
|
| "line-md:brake-abs-filled"
|
||||||
|
| "line-md:brake-abs-twotone"
|
||||||
|
| "line-md:brake-alert"
|
||||||
|
| "line-md:brake-alert-filled"
|
||||||
|
| "line-md:brake-alert-twotone"
|
||||||
|
| "line-md:brake-filled"
|
||||||
|
| "line-md:brake-hold"
|
||||||
|
| "line-md:brake-hold-filled"
|
||||||
|
| "line-md:brake-hold-twotone"
|
||||||
|
| "line-md:brake-parking"
|
||||||
|
| "line-md:brake-parking-filled"
|
||||||
|
| "line-md:brake-parking-twotone"
|
||||||
|
| "line-md:brake-twotone"
|
||||||
| "line-md:briefcase"
|
| "line-md:briefcase"
|
||||||
|
| "line-md:briefcase-cancel"
|
||||||
|
| "line-md:briefcase-cancel-filled"
|
||||||
|
| "line-md:briefcase-cancel-twotone"
|
||||||
|
| "line-md:briefcase-check"
|
||||||
|
| "line-md:briefcase-check-filled"
|
||||||
|
| "line-md:briefcase-check-twotone"
|
||||||
| "line-md:briefcase-filled"
|
| "line-md:briefcase-filled"
|
||||||
|
| "line-md:briefcase-minus"
|
||||||
|
| "line-md:briefcase-minus-filled"
|
||||||
|
| "line-md:briefcase-minus-twotone"
|
||||||
|
| "line-md:briefcase-plus"
|
||||||
|
| "line-md:briefcase-plus-filled"
|
||||||
|
| "line-md:briefcase-plus-twotone"
|
||||||
|
| "line-md:briefcase-remove"
|
||||||
|
| "line-md:briefcase-remove-filled"
|
||||||
|
| "line-md:briefcase-remove-twotone"
|
||||||
| "line-md:briefcase-twotone"
|
| "line-md:briefcase-twotone"
|
||||||
| "line-md:buy-me-a-coffee"
|
| "line-md:buy-me-a-coffee"
|
||||||
| "line-md:buy-me-a-coffee-filled"
|
| "line-md:buy-me-a-coffee-filled"
|
||||||
| "line-md:buy-me-a-coffee-twotone"
|
| "line-md:buy-me-a-coffee-twotone"
|
||||||
| "line-md:cake"
|
| "line-md:cake"
|
||||||
|
| "line-md:cake-filled"
|
||||||
| "line-md:cake-twotone"
|
| "line-md:cake-twotone"
|
||||||
| "line-md:calendar"
|
| "line-md:calendar"
|
||||||
| "line-md:calendar-out"
|
| "line-md:calendar-out"
|
||||||
| "line-md:cancel"
|
| "line-md:cancel"
|
||||||
| "line-md:cancel-twotone"
|
| "line-md:cancel-twotone"
|
||||||
|
| "line-md:car-light"
|
||||||
|
| "line-md:car-light-alert"
|
||||||
|
| "line-md:car-light-alert-filled"
|
||||||
|
| "line-md:car-light-alert-off"
|
||||||
|
| "line-md:car-light-alert-off-filled"
|
||||||
|
| "line-md:car-light-alert-off-twotone"
|
||||||
|
| "line-md:car-light-alert-twotone"
|
||||||
|
| "line-md:car-light-dimmed"
|
||||||
|
| "line-md:car-light-dimmed-filled"
|
||||||
|
| "line-md:car-light-dimmed-off"
|
||||||
|
| "line-md:car-light-dimmed-off-filled"
|
||||||
|
| "line-md:car-light-dimmed-off-twotone"
|
||||||
|
| "line-md:car-light-dimmed-twotone"
|
||||||
|
| "line-md:car-light-filled"
|
||||||
|
| "line-md:car-light-off"
|
||||||
|
| "line-md:car-light-off-filled"
|
||||||
|
| "line-md:car-light-off-twotone"
|
||||||
|
| "line-md:car-light-twotone"
|
||||||
|
| "line-md:cellphone"
|
||||||
|
| "line-md:cellphone-arrow-down"
|
||||||
|
| "line-md:cellphone-arrow-down-twotone"
|
||||||
|
| "line-md:cellphone-arrow-up"
|
||||||
|
| "line-md:cellphone-arrow-up-twotone"
|
||||||
|
| "line-md:cellphone-off"
|
||||||
|
| "line-md:cellphone-off-twotone"
|
||||||
|
| "line-md:cellphone-screenshot"
|
||||||
|
| "line-md:cellphone-screenshot-twotone"
|
||||||
|
| "line-md:cellphone-twotone"
|
||||||
| "line-md:chat"
|
| "line-md:chat"
|
||||||
|
| "line-md:chat-alert"
|
||||||
|
| "line-md:chat-alert-filled"
|
||||||
|
| "line-md:chat-alert-twotone"
|
||||||
| "line-md:chat-bubble"
|
| "line-md:chat-bubble"
|
||||||
| "line-md:chat-bubble-filled"
|
| "line-md:chat-bubble-filled"
|
||||||
|
| "line-md:chat-bubble-off"
|
||||||
|
| "line-md:chat-bubble-off-filled"
|
||||||
|
| "line-md:chat-bubble-off-twotone"
|
||||||
| "line-md:chat-bubble-twotone"
|
| "line-md:chat-bubble-twotone"
|
||||||
|
| "line-md:chat-filled"
|
||||||
|
| "line-md:chat-off"
|
||||||
|
| "line-md:chat-off-filled"
|
||||||
|
| "line-md:chat-off-twotone"
|
||||||
|
| "line-md:chat-round"
|
||||||
|
| "line-md:chat-round-alert"
|
||||||
|
| "line-md:chat-round-alert-filled"
|
||||||
|
| "line-md:chat-round-alert-twotone"
|
||||||
|
| "line-md:chat-round-dots"
|
||||||
|
| "line-md:chat-round-dots-filled"
|
||||||
|
| "line-md:chat-round-dots-twotone"
|
||||||
|
| "line-md:chat-round-filled"
|
||||||
|
| "line-md:chat-round-off"
|
||||||
|
| "line-md:chat-round-off-filled"
|
||||||
|
| "line-md:chat-round-off-twotone"
|
||||||
|
| "line-md:chat-round-twotone"
|
||||||
| "line-md:chat-twotone"
|
| "line-md:chat-twotone"
|
||||||
| "line-md:check-all"
|
| "line-md:check-all"
|
||||||
| "line-md:check-list-3"
|
| "line-md:check-list-3"
|
||||||
| "line-md:check-list-3-filled"
|
| "line-md:check-list-3-filled"
|
||||||
| "line-md:check-list-3-twotone"
|
| "line-md:check-list-3-twotone"
|
||||||
|
| "line-md:chevron-double-down"
|
||||||
| "line-md:chevron-double-left"
|
| "line-md:chevron-double-left"
|
||||||
|
| "line-md:chevron-double-right"
|
||||||
|
| "line-md:chevron-double-up"
|
||||||
|
| "line-md:chevron-down"
|
||||||
|
| "line-md:chevron-down-circle"
|
||||||
|
| "line-md:chevron-down-circle-twotone"
|
||||||
|
| "line-md:chevron-down-square"
|
||||||
|
| "line-md:chevron-down-square-twotone"
|
||||||
| "line-md:chevron-left"
|
| "line-md:chevron-left"
|
||||||
| "line-md:chevron-left-circle"
|
| "line-md:chevron-left-circle"
|
||||||
| "line-md:chevron-left-circle-twotone"
|
| "line-md:chevron-left-circle-twotone"
|
||||||
| "line-md:chevron-left-square"
|
| "line-md:chevron-left-square"
|
||||||
| "line-md:chevron-left-square-twotone"
|
| "line-md:chevron-left-square-twotone"
|
||||||
|
| "line-md:chevron-right"
|
||||||
|
| "line-md:chevron-right-circle"
|
||||||
|
| "line-md:chevron-right-circle-twotone"
|
||||||
|
| "line-md:chevron-right-square"
|
||||||
|
| "line-md:chevron-right-square-twotone"
|
||||||
|
| "line-md:chevron-small-double-down"
|
||||||
| "line-md:chevron-small-double-left"
|
| "line-md:chevron-small-double-left"
|
||||||
|
| "line-md:chevron-small-double-right"
|
||||||
|
| "line-md:chevron-small-double-up"
|
||||||
|
| "line-md:chevron-small-down"
|
||||||
| "line-md:chevron-small-left"
|
| "line-md:chevron-small-left"
|
||||||
|
| "line-md:chevron-small-right"
|
||||||
|
| "line-md:chevron-small-triple-down"
|
||||||
| "line-md:chevron-small-triple-left"
|
| "line-md:chevron-small-triple-left"
|
||||||
|
| "line-md:chevron-small-triple-right"
|
||||||
|
| "line-md:chevron-small-triple-up"
|
||||||
|
| "line-md:chevron-small-up"
|
||||||
|
| "line-md:chevron-triple-down"
|
||||||
| "line-md:chevron-triple-left"
|
| "line-md:chevron-triple-left"
|
||||||
|
| "line-md:chevron-triple-right"
|
||||||
|
| "line-md:chevron-triple-up"
|
||||||
|
| "line-md:chevron-up"
|
||||||
|
| "line-md:chevron-up-circle"
|
||||||
|
| "line-md:chevron-up-circle-twotone"
|
||||||
|
| "line-md:chevron-up-square"
|
||||||
|
| "line-md:chevron-up-square-twotone"
|
||||||
| "line-md:circle"
|
| "line-md:circle"
|
||||||
|
| "line-md:circle-filled-to-confirm-circle-filled-transition"
|
||||||
| "line-md:circle-to-confirm-circle-transition"
|
| "line-md:circle-to-confirm-circle-transition"
|
||||||
| "line-md:circle-to-confirm-circle-twotone-transition"
|
| "line-md:circle-to-confirm-circle-twotone-transition"
|
||||||
| "line-md:circle-twotone"
|
| "line-md:circle-twotone"
|
||||||
|
| "line-md:circle-twotone-to-confirm-circle-transition"
|
||||||
| "line-md:circle-twotone-to-confirm-circle-twotone-transition"
|
| "line-md:circle-twotone-to-confirm-circle-twotone-transition"
|
||||||
| "line-md:clipboard"
|
| "line-md:clipboard"
|
||||||
| "line-md:clipboard-arrow"
|
| "line-md:clipboard-arrow"
|
||||||
@ -106,38 +260,67 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:clipboard-minus-twotone"
|
| "line-md:clipboard-minus-twotone"
|
||||||
| "line-md:clipboard-plus"
|
| "line-md:clipboard-plus"
|
||||||
| "line-md:clipboard-plus-twotone"
|
| "line-md:clipboard-plus-twotone"
|
||||||
|
| "line-md:clipboard-remove"
|
||||||
|
| "line-md:clipboard-remove-twotone"
|
||||||
| "line-md:clipboard-to-clipboard-check-transition"
|
| "line-md:clipboard-to-clipboard-check-transition"
|
||||||
| "line-md:clipboard-twotone"
|
| "line-md:clipboard-twotone"
|
||||||
| "line-md:clipboard-twotone-to-clipboard-twotone-check-transition"
|
| "line-md:clipboard-twotone-to-clipboard-check-twotone-transition"
|
||||||
| "line-md:close"
|
| "line-md:close"
|
||||||
| "line-md:close-circle"
|
| "line-md:close-circle"
|
||||||
|
| "line-md:close-circle-filled"
|
||||||
| "line-md:close-circle-twotone"
|
| "line-md:close-circle-twotone"
|
||||||
| "line-md:close-small"
|
| "line-md:close-small"
|
||||||
| "line-md:close-to-menu-alt-transition"
|
| "line-md:close-to-menu-alt-transition"
|
||||||
| "line-md:close-to-menu-transition"
|
| "line-md:close-to-menu-transition"
|
||||||
| "line-md:cloud"
|
| "line-md:cloud"
|
||||||
| "line-md:cloud-braces-loop"
|
| "line-md:cloud-alt"
|
||||||
|
| "line-md:cloud-alt-braces"
|
||||||
|
| "line-md:cloud-alt-braces-loop"
|
||||||
|
| "line-md:cloud-alt-download"
|
||||||
|
| "line-md:cloud-alt-download-filled"
|
||||||
|
| "line-md:cloud-alt-download-filled-loop"
|
||||||
|
| "line-md:cloud-alt-download-loop"
|
||||||
|
| "line-md:cloud-alt-download-twotone"
|
||||||
|
| "line-md:cloud-alt-download-twotone-loop"
|
||||||
|
| "line-md:cloud-alt-filled"
|
||||||
|
| "line-md:cloud-alt-filled-loop"
|
||||||
|
| "line-md:cloud-alt-loop"
|
||||||
|
| "line-md:cloud-alt-off"
|
||||||
|
| "line-md:cloud-alt-off-filled"
|
||||||
|
| "line-md:cloud-alt-off-filled-loop"
|
||||||
|
| "line-md:cloud-alt-off-loop"
|
||||||
|
| "line-md:cloud-alt-off-twotone"
|
||||||
|
| "line-md:cloud-alt-off-twotone-loop"
|
||||||
|
| "line-md:cloud-alt-print-filled-loop"
|
||||||
|
| "line-md:cloud-alt-print-loop"
|
||||||
|
| "line-md:cloud-alt-print-twotone-loop"
|
||||||
|
| "line-md:cloud-alt-tags"
|
||||||
|
| "line-md:cloud-alt-tags-filled"
|
||||||
|
| "line-md:cloud-alt-tags-filled-loop"
|
||||||
|
| "line-md:cloud-alt-tags-loop"
|
||||||
|
| "line-md:cloud-alt-tags-twotone"
|
||||||
|
| "line-md:cloud-alt-tags-twotone-loop"
|
||||||
|
| "line-md:cloud-alt-twotone"
|
||||||
|
| "line-md:cloud-alt-twotone-loop"
|
||||||
|
| "line-md:cloud-alt-upload"
|
||||||
|
| "line-md:cloud-alt-upload-filled"
|
||||||
|
| "line-md:cloud-alt-upload-filled-loop"
|
||||||
|
| "line-md:cloud-alt-upload-loop"
|
||||||
|
| "line-md:cloud-alt-upload-twotone"
|
||||||
|
| "line-md:cloud-alt-upload-twotone-loop"
|
||||||
| "line-md:cloud-down"
|
| "line-md:cloud-down"
|
||||||
| "line-md:cloud-down-twotone"
|
| "line-md:cloud-down-twotone"
|
||||||
| "line-md:cloud-download-loop"
|
|
||||||
| "line-md:cloud-download-outline-loop"
|
|
||||||
| "line-md:cloud-filled"
|
| "line-md:cloud-filled"
|
||||||
| "line-md:cloud-loop"
|
|
||||||
| "line-md:cloud-off-outline-loop"
|
|
||||||
| "line-md:cloud-outline-loop"
|
|
||||||
| "line-md:cloud-print-loop"
|
|
||||||
| "line-md:cloud-print-outline-loop"
|
|
||||||
| "line-md:cloud-tags-loop"
|
|
||||||
| "line-md:cloud-twotone"
|
| "line-md:cloud-twotone"
|
||||||
| "line-md:cloud-up"
|
| "line-md:cloud-up"
|
||||||
| "line-md:cloud-up-twotone"
|
| "line-md:cloud-up-twotone"
|
||||||
| "line-md:cloud-upload-loop"
|
|
||||||
| "line-md:cloud-upload-outline-loop"
|
|
||||||
| "line-md:coffee"
|
| "line-md:coffee"
|
||||||
| "line-md:coffee-arrow"
|
| "line-md:coffee-arrow"
|
||||||
| "line-md:coffee-arrow-filled"
|
| "line-md:coffee-arrow-filled"
|
||||||
| "line-md:coffee-arrow-twotone"
|
| "line-md:coffee-arrow-twotone"
|
||||||
| "line-md:coffee-filled"
|
| "line-md:coffee-filled"
|
||||||
|
| "line-md:coffee-filled-loop"
|
||||||
|
| "line-md:coffee-half-empty-filled-loop"
|
||||||
| "line-md:coffee-half-empty-twotone-loop"
|
| "line-md:coffee-half-empty-twotone-loop"
|
||||||
| "line-md:coffee-loop"
|
| "line-md:coffee-loop"
|
||||||
| "line-md:coffee-twotone"
|
| "line-md:coffee-twotone"
|
||||||
@ -151,26 +334,59 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:cog-off-filled-loop"
|
| "line-md:cog-off-filled-loop"
|
||||||
| "line-md:cog-off-loop"
|
| "line-md:cog-off-loop"
|
||||||
| "line-md:compass"
|
| "line-md:compass"
|
||||||
|
| "line-md:compass-filled"
|
||||||
|
| "line-md:compass-filled-loop"
|
||||||
| "line-md:compass-loop"
|
| "line-md:compass-loop"
|
||||||
| "line-md:compass-off"
|
| "line-md:compass-off"
|
||||||
|
| "line-md:compass-off-filled"
|
||||||
|
| "line-md:compass-off-filled-loop"
|
||||||
|
| "line-md:compass-off-loop"
|
||||||
|
| "line-md:compass-off-twotone"
|
||||||
|
| "line-md:compass-off-twotone-loop"
|
||||||
| "line-md:compass-twotone"
|
| "line-md:compass-twotone"
|
||||||
| "line-md:compass-twotone-loop"
|
| "line-md:compass-twotone-loop"
|
||||||
| "line-md:compass-twotone-off"
|
|
||||||
| "line-md:computer"
|
| "line-md:computer"
|
||||||
| "line-md:computer-twotone"
|
| "line-md:computer-twotone"
|
||||||
| "line-md:confirm"
|
| "line-md:confirm"
|
||||||
| "line-md:confirm-circle"
|
| "line-md:confirm-circle"
|
||||||
|
| "line-md:confirm-circle-filled"
|
||||||
|
| "line-md:confirm-circle-filled-to-circle-filled-transition"
|
||||||
| "line-md:confirm-circle-to-circle-transition"
|
| "line-md:confirm-circle-to-circle-transition"
|
||||||
|
| "line-md:confirm-circle-to-circle-twotone-transition"
|
||||||
| "line-md:confirm-circle-twotone"
|
| "line-md:confirm-circle-twotone"
|
||||||
| "line-md:confirm-circle-twotone-to-circle-transition"
|
| "line-md:confirm-circle-twotone-to-circle-transition"
|
||||||
| "line-md:confirm-circle-twotone-to-circle-twotone-transition"
|
| "line-md:confirm-circle-twotone-to-circle-twotone-transition"
|
||||||
| "line-md:confirm-square"
|
| "line-md:confirm-square"
|
||||||
|
| "line-md:confirm-square-filled"
|
||||||
|
| "line-md:confirm-square-filled-to-square-filled-transition"
|
||||||
| "line-md:confirm-square-to-square-transition"
|
| "line-md:confirm-square-to-square-transition"
|
||||||
|
| "line-md:confirm-square-to-square-twotone-transition"
|
||||||
| "line-md:confirm-square-twotone"
|
| "line-md:confirm-square-twotone"
|
||||||
| "line-md:confirm-square-twotone-to-square-transition"
|
| "line-md:confirm-square-twotone-to-square-transition"
|
||||||
| "line-md:confirm-square-twotone-to-square-twotone-transition"
|
| "line-md:confirm-square-twotone-to-square-twotone-transition"
|
||||||
| "line-md:construction"
|
| "line-md:construction"
|
||||||
| "line-md:construction-twotone"
|
| "line-md:construction-twotone"
|
||||||
|
| "line-md:cookie"
|
||||||
|
| "line-md:cookie-check"
|
||||||
|
| "line-md:cookie-check-filled"
|
||||||
|
| "line-md:cookie-check-twotone"
|
||||||
|
| "line-md:cookie-filled"
|
||||||
|
| "line-md:cookie-minus"
|
||||||
|
| "line-md:cookie-minus-filled"
|
||||||
|
| "line-md:cookie-minus-twotone"
|
||||||
|
| "line-md:cookie-off"
|
||||||
|
| "line-md:cookie-off-filled"
|
||||||
|
| "line-md:cookie-off-twotone"
|
||||||
|
| "line-md:cookie-plus"
|
||||||
|
| "line-md:cookie-plus-filled"
|
||||||
|
| "line-md:cookie-plus-twotone"
|
||||||
|
| "line-md:cookie-remove"
|
||||||
|
| "line-md:cookie-remove-filled"
|
||||||
|
| "line-md:cookie-remove-twotone"
|
||||||
|
| "line-md:cookie-settings"
|
||||||
|
| "line-md:cookie-settings-filled"
|
||||||
|
| "line-md:cookie-settings-twotone"
|
||||||
|
| "line-md:cookie-twotone"
|
||||||
| "line-md:discord"
|
| "line-md:discord"
|
||||||
| "line-md:discord-twotone"
|
| "line-md:discord-twotone"
|
||||||
| "line-md:document"
|
| "line-md:document"
|
||||||
@ -178,6 +394,8 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:document-add-twotone"
|
| "line-md:document-add-twotone"
|
||||||
| "line-md:document-code"
|
| "line-md:document-code"
|
||||||
| "line-md:document-code-twotone"
|
| "line-md:document-code-twotone"
|
||||||
|
| "line-md:document-delete"
|
||||||
|
| "line-md:document-delete-twotone"
|
||||||
| "line-md:document-list"
|
| "line-md:document-list"
|
||||||
| "line-md:document-list-twotone"
|
| "line-md:document-list-twotone"
|
||||||
| "line-md:document-remove"
|
| "line-md:document-remove"
|
||||||
@ -186,48 +404,232 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:document-report-twotone"
|
| "line-md:document-report-twotone"
|
||||||
| "line-md:document-twotone"
|
| "line-md:document-twotone"
|
||||||
| "line-md:double-arrow-horizontal"
|
| "line-md:double-arrow-horizontal"
|
||||||
|
| "line-md:double-arrow-vertical"
|
||||||
|
| "line-md:download"
|
||||||
| "line-md:download-loop"
|
| "line-md:download-loop"
|
||||||
|
| "line-md:download-off"
|
||||||
| "line-md:download-off-loop"
|
| "line-md:download-off-loop"
|
||||||
| "line-md:download-off-outline"
|
| "line-md:download-off-outline"
|
||||||
| "line-md:download-off-outline-loop"
|
| "line-md:download-off-outline-loop"
|
||||||
|
| "line-md:download-off-twotone"
|
||||||
|
| "line-md:download-off-twotone-loop"
|
||||||
| "line-md:download-outline"
|
| "line-md:download-outline"
|
||||||
| "line-md:download-outline-loop"
|
| "line-md:download-outline-loop"
|
||||||
|
| "line-md:download-twotone"
|
||||||
|
| "line-md:download-twotone-loop"
|
||||||
|
| "line-md:downloading"
|
||||||
| "line-md:downloading-loop"
|
| "line-md:downloading-loop"
|
||||||
| "line-md:edit"
|
| "line-md:edit"
|
||||||
|
| "line-md:edit-filled"
|
||||||
|
| "line-md:edit-full-filled"
|
||||||
|
| "line-md:edit-full-twotone"
|
||||||
| "line-md:edit-twotone"
|
| "line-md:edit-twotone"
|
||||||
| "line-md:edit-twotone-full"
|
|
||||||
| "line-md:email"
|
| "line-md:email"
|
||||||
|
| "line-md:email-alert"
|
||||||
|
| "line-md:email-alert-filled"
|
||||||
|
| "line-md:email-alert-twotone"
|
||||||
|
| "line-md:email-alt-filled"
|
||||||
|
| "line-md:email-alt-twotone"
|
||||||
|
| "line-md:email-arrow-down"
|
||||||
|
| "line-md:email-arrow-down-filled"
|
||||||
|
| "line-md:email-arrow-down-twotone"
|
||||||
|
| "line-md:email-arrow-left"
|
||||||
|
| "line-md:email-arrow-left-filled"
|
||||||
|
| "line-md:email-arrow-left-twotone"
|
||||||
|
| "line-md:email-arrow-right"
|
||||||
|
| "line-md:email-arrow-right-filled"
|
||||||
|
| "line-md:email-arrow-right-twotone"
|
||||||
|
| "line-md:email-arrow-up"
|
||||||
|
| "line-md:email-arrow-up-filled"
|
||||||
|
| "line-md:email-arrow-up-twotone"
|
||||||
|
| "line-md:email-check"
|
||||||
|
| "line-md:email-check-filled"
|
||||||
|
| "line-md:email-check-twotone"
|
||||||
|
| "line-md:email-filled"
|
||||||
|
| "line-md:email-minus"
|
||||||
|
| "line-md:email-minus-filled"
|
||||||
|
| "line-md:email-minus-twotone"
|
||||||
|
| "line-md:email-multiple"
|
||||||
|
| "line-md:email-multiple-filled"
|
||||||
|
| "line-md:email-multiple-twotone"
|
||||||
| "line-md:email-opened"
|
| "line-md:email-opened"
|
||||||
|
| "line-md:email-opened-alt-filled"
|
||||||
|
| "line-md:email-opened-alt-twotone"
|
||||||
|
| "line-md:email-opened-filled"
|
||||||
|
| "line-md:email-opened-multiple"
|
||||||
|
| "line-md:email-opened-multiple-filled"
|
||||||
|
| "line-md:email-opened-multiple-twotone"
|
||||||
| "line-md:email-opened-twotone"
|
| "line-md:email-opened-twotone"
|
||||||
| "line-md:email-opened-twotone-alt"
|
| "line-md:email-plus"
|
||||||
|
| "line-md:email-plus-filled"
|
||||||
|
| "line-md:email-plus-twotone"
|
||||||
|
| "line-md:email-remove"
|
||||||
|
| "line-md:email-remove-filled"
|
||||||
|
| "line-md:email-remove-twotone"
|
||||||
| "line-md:email-twotone"
|
| "line-md:email-twotone"
|
||||||
| "line-md:email-twotone-alt"
|
|
||||||
| "line-md:emoji-angry"
|
| "line-md:emoji-angry"
|
||||||
|
| "line-md:emoji-angry-filled"
|
||||||
| "line-md:emoji-angry-twotone"
|
| "line-md:emoji-angry-twotone"
|
||||||
|
| "line-md:emoji-cry"
|
||||||
|
| "line-md:emoji-cry-filled"
|
||||||
| "line-md:emoji-frown"
|
| "line-md:emoji-frown"
|
||||||
|
| "line-md:emoji-frown-filled"
|
||||||
| "line-md:emoji-frown-open"
|
| "line-md:emoji-frown-open"
|
||||||
|
| "line-md:emoji-frown-open-filled"
|
||||||
| "line-md:emoji-frown-open-twotone"
|
| "line-md:emoji-frown-open-twotone"
|
||||||
| "line-md:emoji-frown-twotone"
|
| "line-md:emoji-frown-twotone"
|
||||||
| "line-md:emoji-grin"
|
| "line-md:emoji-grin"
|
||||||
|
| "line-md:emoji-grin-filled"
|
||||||
| "line-md:emoji-grin-twotone"
|
| "line-md:emoji-grin-twotone"
|
||||||
| "line-md:emoji-neutral"
|
| "line-md:emoji-neutral"
|
||||||
|
| "line-md:emoji-neutral-filled"
|
||||||
| "line-md:emoji-neutral-twotone"
|
| "line-md:emoji-neutral-twotone"
|
||||||
| "line-md:emoji-smile"
|
| "line-md:emoji-smile"
|
||||||
|
| "line-md:emoji-smile-filled"
|
||||||
| "line-md:emoji-smile-twotone"
|
| "line-md:emoji-smile-twotone"
|
||||||
| "line-md:emoji-smile-wink"
|
| "line-md:emoji-smile-wink"
|
||||||
|
| "line-md:emoji-smile-wink-filled"
|
||||||
| "line-md:emoji-smile-wink-twotone"
|
| "line-md:emoji-smile-wink-twotone"
|
||||||
|
| "line-md:engine"
|
||||||
|
| "line-md:engine-filled"
|
||||||
|
| "line-md:engine-off"
|
||||||
|
| "line-md:engine-off-filled"
|
||||||
|
| "line-md:engine-off-twotone"
|
||||||
|
| "line-md:engine-twotone"
|
||||||
| "line-md:external-link"
|
| "line-md:external-link"
|
||||||
| "line-md:external-link-rounded"
|
| "line-md:external-link-rounded"
|
||||||
| "line-md:facebook"
|
| "line-md:facebook"
|
||||||
|
| "line-md:file"
|
||||||
|
| "line-md:file-cancel"
|
||||||
|
| "line-md:file-cancel-filled"
|
||||||
|
| "line-md:file-cancel-twotone"
|
||||||
|
| "line-md:file-document"
|
||||||
|
| "line-md:file-document-cancel"
|
||||||
|
| "line-md:file-document-cancel-filled"
|
||||||
|
| "line-md:file-document-cancel-twotone"
|
||||||
|
| "line-md:file-document-filled"
|
||||||
|
| "line-md:file-document-minus"
|
||||||
|
| "line-md:file-document-minus-filled"
|
||||||
|
| "line-md:file-document-minus-twotone"
|
||||||
|
| "line-md:file-document-off"
|
||||||
|
| "line-md:file-document-off-filled"
|
||||||
|
| "line-md:file-document-off-twotone"
|
||||||
|
| "line-md:file-document-plus"
|
||||||
|
| "line-md:file-document-plus-filled"
|
||||||
|
| "line-md:file-document-plus-twotone"
|
||||||
|
| "line-md:file-document-remove"
|
||||||
|
| "line-md:file-document-remove-filled"
|
||||||
|
| "line-md:file-document-remove-twotone"
|
||||||
|
| "line-md:file-document-twotone"
|
||||||
|
| "line-md:file-download"
|
||||||
|
| "line-md:file-download-filled"
|
||||||
|
| "line-md:file-download-twotone"
|
||||||
|
| "line-md:file-export"
|
||||||
|
| "line-md:file-export-filled"
|
||||||
|
| "line-md:file-export-twotone"
|
||||||
|
| "line-md:file-filled"
|
||||||
|
| "line-md:file-import"
|
||||||
|
| "line-md:file-import-filled"
|
||||||
|
| "line-md:file-import-twotone"
|
||||||
|
| "line-md:file-minus"
|
||||||
|
| "line-md:file-minus-filled"
|
||||||
|
| "line-md:file-minus-twotone"
|
||||||
|
| "line-md:file-off"
|
||||||
|
| "line-md:file-off-filled"
|
||||||
|
| "line-md:file-off-twotone"
|
||||||
|
| "line-md:file-plus"
|
||||||
|
| "line-md:file-plus-filled"
|
||||||
|
| "line-md:file-plus-twotone"
|
||||||
|
| "line-md:file-remove"
|
||||||
|
| "line-md:file-remove-filled"
|
||||||
|
| "line-md:file-remove-twotone"
|
||||||
|
| "line-md:file-search"
|
||||||
|
| "line-md:file-search-filled"
|
||||||
|
| "line-md:file-search-twotone"
|
||||||
|
| "line-md:file-twotone"
|
||||||
|
| "line-md:file-upload"
|
||||||
|
| "line-md:file-upload-filled"
|
||||||
|
| "line-md:file-upload-twotone"
|
||||||
| "line-md:filter"
|
| "line-md:filter"
|
||||||
|
| "line-md:filter-alt"
|
||||||
|
| "line-md:filter-alt-off"
|
||||||
|
| "line-md:filter-confirm"
|
||||||
|
| "line-md:filter-confirm-filled"
|
||||||
|
| "line-md:filter-confirm-twotone"
|
||||||
| "line-md:filter-filled"
|
| "line-md:filter-filled"
|
||||||
|
| "line-md:filter-minus"
|
||||||
|
| "line-md:filter-minus-filled"
|
||||||
|
| "line-md:filter-minus-twotone"
|
||||||
|
| "line-md:filter-off"
|
||||||
|
| "line-md:filter-off-filled"
|
||||||
|
| "line-md:filter-off-twotone"
|
||||||
|
| "line-md:filter-plus"
|
||||||
|
| "line-md:filter-plus-filled"
|
||||||
|
| "line-md:filter-plus-twotone"
|
||||||
|
| "line-md:filter-remove"
|
||||||
|
| "line-md:filter-remove-filled"
|
||||||
|
| "line-md:filter-remove-twotone"
|
||||||
| "line-md:filter-twotone"
|
| "line-md:filter-twotone"
|
||||||
|
| "line-md:folder"
|
||||||
|
| "line-md:folder-arrow-down"
|
||||||
|
| "line-md:folder-arrow-down-filled"
|
||||||
|
| "line-md:folder-arrow-down-twotone"
|
||||||
|
| "line-md:folder-arrow-left"
|
||||||
|
| "line-md:folder-arrow-left-filled"
|
||||||
|
| "line-md:folder-arrow-left-twotone"
|
||||||
|
| "line-md:folder-arrow-right"
|
||||||
|
| "line-md:folder-arrow-right-filled"
|
||||||
|
| "line-md:folder-arrow-right-twotone"
|
||||||
|
| "line-md:folder-arrow-up"
|
||||||
|
| "line-md:folder-arrow-up-filled"
|
||||||
|
| "line-md:folder-arrow-up-twotone"
|
||||||
|
| "line-md:folder-cancel"
|
||||||
|
| "line-md:folder-cancel-filled"
|
||||||
|
| "line-md:folder-cancel-twotone"
|
||||||
|
| "line-md:folder-check"
|
||||||
|
| "line-md:folder-check-filled"
|
||||||
|
| "line-md:folder-check-twotone"
|
||||||
|
| "line-md:folder-filled"
|
||||||
|
| "line-md:folder-minus"
|
||||||
|
| "line-md:folder-minus-filled"
|
||||||
|
| "line-md:folder-minus-twotone"
|
||||||
|
| "line-md:folder-multiple"
|
||||||
|
| "line-md:folder-multiple-filled"
|
||||||
|
| "line-md:folder-multiple-twotone"
|
||||||
|
| "line-md:folder-music"
|
||||||
|
| "line-md:folder-music-filled"
|
||||||
|
| "line-md:folder-music-twotone"
|
||||||
|
| "line-md:folder-network"
|
||||||
|
| "line-md:folder-network-filled"
|
||||||
|
| "line-md:folder-network-twotone"
|
||||||
|
| "line-md:folder-off"
|
||||||
|
| "line-md:folder-off-filled"
|
||||||
|
| "line-md:folder-off-twotone"
|
||||||
|
| "line-md:folder-plus"
|
||||||
|
| "line-md:folder-plus-filled"
|
||||||
|
| "line-md:folder-plus-twotone"
|
||||||
|
| "line-md:folder-remove"
|
||||||
|
| "line-md:folder-remove-filled"
|
||||||
|
| "line-md:folder-remove-twotone"
|
||||||
|
| "line-md:folder-settings"
|
||||||
|
| "line-md:folder-settings-filled"
|
||||||
|
| "line-md:folder-settings-twotone"
|
||||||
|
| "line-md:folder-twotone"
|
||||||
|
| "line-md:folder-zip"
|
||||||
|
| "line-md:folder-zip-filled"
|
||||||
|
| "line-md:folder-zip-twotone"
|
||||||
| "line-md:fork-left"
|
| "line-md:fork-left"
|
||||||
|
| "line-md:fork-right"
|
||||||
| "line-md:gauge"
|
| "line-md:gauge"
|
||||||
| "line-md:gauge-empty"
|
| "line-md:gauge-empty"
|
||||||
|
| "line-md:gauge-empty-twotone"
|
||||||
| "line-md:gauge-full"
|
| "line-md:gauge-full"
|
||||||
|
| "line-md:gauge-full-twotone"
|
||||||
| "line-md:gauge-loop"
|
| "line-md:gauge-loop"
|
||||||
| "line-md:gauge-low"
|
| "line-md:gauge-low"
|
||||||
|
| "line-md:gauge-low-twotone"
|
||||||
|
| "line-md:gauge-twotone"
|
||||||
|
| "line-md:gauge-twotone-loop"
|
||||||
| "line-md:github"
|
| "line-md:github"
|
||||||
| "line-md:github-loop"
|
| "line-md:github-loop"
|
||||||
| "line-md:github-twotone"
|
| "line-md:github-twotone"
|
||||||
@ -236,6 +638,14 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:grid-3-twotone"
|
| "line-md:grid-3-twotone"
|
||||||
| "line-md:hash"
|
| "line-md:hash"
|
||||||
| "line-md:hash-small"
|
| "line-md:hash-small"
|
||||||
|
| "line-md:hazard-lights"
|
||||||
|
| "line-md:hazard-lights-filled"
|
||||||
|
| "line-md:hazard-lights-filled-loop"
|
||||||
|
| "line-md:hazard-lights-loop"
|
||||||
|
| "line-md:hazard-lights-off"
|
||||||
|
| "line-md:hazard-lights-off-filled"
|
||||||
|
| "line-md:hazard-lights-off-filled-loop"
|
||||||
|
| "line-md:hazard-lights-off-loop"
|
||||||
| "line-md:heart"
|
| "line-md:heart"
|
||||||
| "line-md:heart-filled"
|
| "line-md:heart-filled"
|
||||||
| "line-md:heart-filled-half"
|
| "line-md:heart-filled-half"
|
||||||
@ -246,17 +656,18 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:heart-twotone-half"
|
| "line-md:heart-twotone-half"
|
||||||
| "line-md:heart-twotone-half-filled"
|
| "line-md:heart-twotone-half-filled"
|
||||||
| "line-md:home"
|
| "line-md:home"
|
||||||
|
| "line-md:home-alt-twotone"
|
||||||
| "line-md:home-md"
|
| "line-md:home-md"
|
||||||
|
| "line-md:home-md-alt-twotone"
|
||||||
| "line-md:home-md-twotone"
|
| "line-md:home-md-twotone"
|
||||||
| "line-md:home-md-twotone-alt"
|
|
||||||
| "line-md:home-simple"
|
| "line-md:home-simple"
|
||||||
| "line-md:home-simple-filled"
|
| "line-md:home-simple-filled"
|
||||||
| "line-md:home-simple-twotone"
|
| "line-md:home-simple-twotone"
|
||||||
| "line-md:home-twotone"
|
| "line-md:home-twotone"
|
||||||
| "line-md:home-twotone-alt"
|
|
||||||
| "line-md:iconify1"
|
| "line-md:iconify1"
|
||||||
| "line-md:iconify2"
|
| "line-md:iconify2"
|
||||||
| "line-md:image"
|
| "line-md:image"
|
||||||
|
| "line-md:image-filled"
|
||||||
| "line-md:image-twotone"
|
| "line-md:image-twotone"
|
||||||
| "line-md:instagram"
|
| "line-md:instagram"
|
||||||
| "line-md:laptop"
|
| "line-md:laptop"
|
||||||
@ -272,12 +683,14 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:lightbulb-off-twotone"
|
| "line-md:lightbulb-off-twotone"
|
||||||
| "line-md:lightbulb-off-twotone-loop"
|
| "line-md:lightbulb-off-twotone-loop"
|
||||||
| "line-md:lightbulb-twotone"
|
| "line-md:lightbulb-twotone"
|
||||||
|
| "line-md:link"
|
||||||
| "line-md:linkedin"
|
| "line-md:linkedin"
|
||||||
| "line-md:list"
|
| "line-md:list"
|
||||||
| "line-md:list-3"
|
| "line-md:list-3"
|
||||||
| "line-md:list-3-filled"
|
| "line-md:list-3-filled"
|
||||||
| "line-md:list-3-twotone"
|
| "line-md:list-3-twotone"
|
||||||
| "line-md:list-indented"
|
| "line-md:list-indented"
|
||||||
|
| "line-md:list-indented-reversed"
|
||||||
| "line-md:loading-alt-loop"
|
| "line-md:loading-alt-loop"
|
||||||
| "line-md:loading-loop"
|
| "line-md:loading-loop"
|
||||||
| "line-md:loading-twotone-loop"
|
| "line-md:loading-twotone-loop"
|
||||||
@ -288,24 +701,42 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:map-marker"
|
| "line-md:map-marker"
|
||||||
| "line-md:map-marker-alt"
|
| "line-md:map-marker-alt"
|
||||||
| "line-md:map-marker-alt-filled"
|
| "line-md:map-marker-alt-filled"
|
||||||
|
| "line-md:map-marker-alt-filled-loop"
|
||||||
|
| "line-md:map-marker-alt-loop"
|
||||||
|
| "line-md:map-marker-alt-off"
|
||||||
|
| "line-md:map-marker-alt-off-filled"
|
||||||
|
| "line-md:map-marker-alt-off-filled-loop"
|
||||||
|
| "line-md:map-marker-alt-off-loop"
|
||||||
|
| "line-md:map-marker-alt-off-twotone"
|
||||||
|
| "line-md:map-marker-alt-off-twotone-loop"
|
||||||
| "line-md:map-marker-alt-twotone"
|
| "line-md:map-marker-alt-twotone"
|
||||||
|
| "line-md:map-marker-alt-twotone-loop"
|
||||||
| "line-md:map-marker-filled"
|
| "line-md:map-marker-filled"
|
||||||
|
| "line-md:map-marker-filled-loop"
|
||||||
|
| "line-md:map-marker-loop"
|
||||||
|
| "line-md:map-marker-minus"
|
||||||
|
| "line-md:map-marker-minus-filled"
|
||||||
|
| "line-md:map-marker-minus-twotone"
|
||||||
| "line-md:map-marker-multiple-alt"
|
| "line-md:map-marker-multiple-alt"
|
||||||
| "line-md:map-marker-multiple-alt-filled"
|
| "line-md:map-marker-multiple-alt-filled"
|
||||||
| "line-md:map-marker-multiple-alt-twotone"
|
| "line-md:map-marker-multiple-alt-twotone"
|
||||||
| "line-md:map-marker-off"
|
| "line-md:map-marker-off"
|
||||||
| "line-md:map-marker-off-alt"
|
|
||||||
| "line-md:map-marker-off-alt-filled"
|
|
||||||
| "line-md:map-marker-off-alt-filled-loop"
|
|
||||||
| "line-md:map-marker-off-alt-loop"
|
|
||||||
| "line-md:map-marker-off-alt-twotone"
|
|
||||||
| "line-md:map-marker-off-alt-twotone-loop"
|
|
||||||
| "line-md:map-marker-off-filled"
|
| "line-md:map-marker-off-filled"
|
||||||
| "line-md:map-marker-off-filled-loop"
|
| "line-md:map-marker-off-filled-loop"
|
||||||
| "line-md:map-marker-off-loop"
|
| "line-md:map-marker-off-loop"
|
||||||
| "line-md:map-marker-off-twotone"
|
| "line-md:map-marker-off-twotone"
|
||||||
| "line-md:map-marker-off-twotone-loop"
|
| "line-md:map-marker-off-twotone-loop"
|
||||||
|
| "line-md:map-marker-plus"
|
||||||
|
| "line-md:map-marker-plus-filled"
|
||||||
|
| "line-md:map-marker-plus-twotone"
|
||||||
|
| "line-md:map-marker-radius"
|
||||||
|
| "line-md:map-marker-radius-filled"
|
||||||
|
| "line-md:map-marker-radius-twotone"
|
||||||
|
| "line-md:map-marker-remove"
|
||||||
|
| "line-md:map-marker-remove-filled"
|
||||||
|
| "line-md:map-marker-remove-twotone"
|
||||||
| "line-md:map-marker-twotone"
|
| "line-md:map-marker-twotone"
|
||||||
|
| "line-md:map-marker-twotone-loop"
|
||||||
| "line-md:marker"
|
| "line-md:marker"
|
||||||
| "line-md:marker-filled"
|
| "line-md:marker-filled"
|
||||||
| "line-md:marker-twotone"
|
| "line-md:marker-twotone"
|
||||||
@ -324,9 +755,28 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:menu-unfold-right"
|
| "line-md:menu-unfold-right"
|
||||||
| "line-md:minus"
|
| "line-md:minus"
|
||||||
| "line-md:minus-circle"
|
| "line-md:minus-circle"
|
||||||
|
| "line-md:minus-circle-filled"
|
||||||
| "line-md:minus-circle-twotone"
|
| "line-md:minus-circle-twotone"
|
||||||
| "line-md:minus-square"
|
| "line-md:minus-square"
|
||||||
|
| "line-md:minus-square-filled"
|
||||||
| "line-md:minus-square-twotone"
|
| "line-md:minus-square-twotone"
|
||||||
|
| "line-md:monitor"
|
||||||
|
| "line-md:monitor-arrow-down"
|
||||||
|
| "line-md:monitor-arrow-down-twotone"
|
||||||
|
| "line-md:monitor-arrow-up"
|
||||||
|
| "line-md:monitor-arrow-up-twotone"
|
||||||
|
| "line-md:monitor-filled"
|
||||||
|
| "line-md:monitor-mutlple"
|
||||||
|
| "line-md:monitor-mutlple-twotone"
|
||||||
|
| "line-md:monitor-off"
|
||||||
|
| "line-md:monitor-off-filled"
|
||||||
|
| "line-md:monitor-off-twotone"
|
||||||
|
| "line-md:monitor-screenshot"
|
||||||
|
| "line-md:monitor-screenshot-twotone"
|
||||||
|
| "line-md:monitor-small"
|
||||||
|
| "line-md:monitor-small-filled"
|
||||||
|
| "line-md:monitor-small-twotone"
|
||||||
|
| "line-md:monitor-twotone"
|
||||||
| "line-md:moon"
|
| "line-md:moon"
|
||||||
| "line-md:moon-alt-loop"
|
| "line-md:moon-alt-loop"
|
||||||
| "line-md:moon-alt-to-sunny-outline-loop-transition"
|
| "line-md:moon-alt-to-sunny-outline-loop-transition"
|
||||||
@ -351,6 +801,12 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:moon-twotone"
|
| "line-md:moon-twotone"
|
||||||
| "line-md:moon-twotone-alt-loop"
|
| "line-md:moon-twotone-alt-loop"
|
||||||
| "line-md:moon-twotone-loop"
|
| "line-md:moon-twotone-loop"
|
||||||
|
| "line-md:mushroom"
|
||||||
|
| "line-md:mushroom-filled"
|
||||||
|
| "line-md:mushroom-off"
|
||||||
|
| "line-md:mushroom-off-filled"
|
||||||
|
| "line-md:mushroom-off-twotone"
|
||||||
|
| "line-md:mushroom-twotone"
|
||||||
| "line-md:my-location"
|
| "line-md:my-location"
|
||||||
| "line-md:my-location-loop"
|
| "line-md:my-location-loop"
|
||||||
| "line-md:my-location-off"
|
| "line-md:my-location-off"
|
||||||
@ -369,11 +825,17 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:pause"
|
| "line-md:pause"
|
||||||
| "line-md:pause-to-play-filled-transition"
|
| "line-md:pause-to-play-filled-transition"
|
||||||
| "line-md:pause-to-play-transition"
|
| "line-md:pause-to-play-transition"
|
||||||
|
| "line-md:peanut"
|
||||||
|
| "line-md:peanut-filled"
|
||||||
|
| "line-md:peanut-off"
|
||||||
|
| "line-md:peanut-off-filled"
|
||||||
|
| "line-md:peanut-off-twotone"
|
||||||
|
| "line-md:peanut-twotone"
|
||||||
| "line-md:peertube"
|
| "line-md:peertube"
|
||||||
| "line-md:peertube-alt"
|
| "line-md:peertube-alt"
|
||||||
| "line-md:pencil"
|
| "line-md:pencil"
|
||||||
|
| "line-md:pencil-alt-twotone"
|
||||||
| "line-md:pencil-twotone"
|
| "line-md:pencil-twotone"
|
||||||
| "line-md:pencil-twotone-alt"
|
|
||||||
| "line-md:person"
|
| "line-md:person"
|
||||||
| "line-md:person-add"
|
| "line-md:person-add"
|
||||||
| "line-md:person-add-filled"
|
| "line-md:person-add-filled"
|
||||||
@ -394,25 +856,39 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:person-twotone"
|
| "line-md:person-twotone"
|
||||||
| "line-md:phone"
|
| "line-md:phone"
|
||||||
| "line-md:phone-add"
|
| "line-md:phone-add"
|
||||||
|
| "line-md:phone-add-filled"
|
||||||
| "line-md:phone-add-twotone"
|
| "line-md:phone-add-twotone"
|
||||||
| "line-md:phone-call"
|
| "line-md:phone-call"
|
||||||
|
| "line-md:phone-call-filled"
|
||||||
| "line-md:phone-call-loop"
|
| "line-md:phone-call-loop"
|
||||||
| "line-md:phone-call-twotone"
|
| "line-md:phone-call-twotone"
|
||||||
| "line-md:phone-call-twotone-loop"
|
| "line-md:phone-call-twotone-loop"
|
||||||
|
| "line-md:phone-filled"
|
||||||
| "line-md:phone-incoming"
|
| "line-md:phone-incoming"
|
||||||
|
| "line-md:phone-incoming-filled"
|
||||||
| "line-md:phone-incoming-twotone"
|
| "line-md:phone-incoming-twotone"
|
||||||
| "line-md:phone-off"
|
| "line-md:phone-off"
|
||||||
|
| "line-md:phone-off-filled"
|
||||||
|
| "line-md:phone-off-filled-loop"
|
||||||
| "line-md:phone-off-loop"
|
| "line-md:phone-off-loop"
|
||||||
| "line-md:phone-off-twotone"
|
| "line-md:phone-off-twotone"
|
||||||
| "line-md:phone-off-twotone-loop"
|
| "line-md:phone-off-twotone-loop"
|
||||||
| "line-md:phone-outgoing"
|
| "line-md:phone-outgoing"
|
||||||
|
| "line-md:phone-outgoing-filled"
|
||||||
| "line-md:phone-outgoing-twotone"
|
| "line-md:phone-outgoing-twotone"
|
||||||
| "line-md:phone-remove"
|
| "line-md:phone-remove"
|
||||||
|
| "line-md:phone-remove-filled"
|
||||||
| "line-md:phone-remove-twotone"
|
| "line-md:phone-remove-twotone"
|
||||||
| "line-md:phone-twotone"
|
| "line-md:phone-twotone"
|
||||||
| "line-md:pixelfed"
|
| "line-md:pixelfed"
|
||||||
| "line-md:pixelfed-filled"
|
| "line-md:pixelfed-filled"
|
||||||
| "line-md:pixelfed-twotone"
|
| "line-md:pixelfed-twotone"
|
||||||
|
| "line-md:pizza"
|
||||||
|
| "line-md:pizza-filled"
|
||||||
|
| "line-md:pizza-off"
|
||||||
|
| "line-md:pizza-off-filled"
|
||||||
|
| "line-md:pizza-off-twotone"
|
||||||
|
| "line-md:pizza-twotone"
|
||||||
| "line-md:play"
|
| "line-md:play"
|
||||||
| "line-md:play-filled"
|
| "line-md:play-filled"
|
||||||
| "line-md:play-filled-to-pause-transition"
|
| "line-md:play-filled-to-pause-transition"
|
||||||
@ -421,8 +897,10 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:pleroma"
|
| "line-md:pleroma"
|
||||||
| "line-md:plus"
|
| "line-md:plus"
|
||||||
| "line-md:plus-circle"
|
| "line-md:plus-circle"
|
||||||
|
| "line-md:plus-circle-filled"
|
||||||
| "line-md:plus-circle-twotone"
|
| "line-md:plus-circle-twotone"
|
||||||
| "line-md:plus-square"
|
| "line-md:plus-square"
|
||||||
|
| "line-md:plus-square-filled"
|
||||||
| "line-md:plus-square-twotone"
|
| "line-md:plus-square-twotone"
|
||||||
| "line-md:question"
|
| "line-md:question"
|
||||||
| "line-md:question-circle"
|
| "line-md:question-circle"
|
||||||
@ -439,19 +917,28 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:rotate-90"
|
| "line-md:rotate-90"
|
||||||
| "line-md:round-360"
|
| "line-md:round-360"
|
||||||
| "line-md:round-ramp-left"
|
| "line-md:round-ramp-left"
|
||||||
|
| "line-md:round-ramp-right"
|
||||||
| "line-md:roundabout-left"
|
| "line-md:roundabout-left"
|
||||||
|
| "line-md:roundabout-right"
|
||||||
| "line-md:rss"
|
| "line-md:rss"
|
||||||
| "line-md:search"
|
| "line-md:search"
|
||||||
| "line-md:search-filled"
|
| "line-md:search-filled"
|
||||||
| "line-md:search-twotone"
|
| "line-md:search-twotone"
|
||||||
|
| "line-md:soundcloud"
|
||||||
| "line-md:speed"
|
| "line-md:speed"
|
||||||
| "line-md:speed-loop"
|
| "line-md:speed-loop"
|
||||||
|
| "line-md:speed-twotone"
|
||||||
|
| "line-md:speed-twotone-loop"
|
||||||
| "line-md:speedometer"
|
| "line-md:speedometer"
|
||||||
| "line-md:speedometer-loop"
|
| "line-md:speedometer-loop"
|
||||||
|
| "line-md:spotify"
|
||||||
|
| "line-md:spotify-filled"
|
||||||
| "line-md:square"
|
| "line-md:square"
|
||||||
|
| "line-md:square-filled-to-confirm-square-filled-transition"
|
||||||
| "line-md:square-to-confirm-square-transition"
|
| "line-md:square-to-confirm-square-transition"
|
||||||
| "line-md:square-to-confirm-square-twotone-transition"
|
| "line-md:square-to-confirm-square-twotone-transition"
|
||||||
| "line-md:square-twotone"
|
| "line-md:square-twotone"
|
||||||
|
| "line-md:square-twotone-to-confirm-square-transition"
|
||||||
| "line-md:square-twotone-to-confirm-square-twotone-transition"
|
| "line-md:square-twotone-to-confirm-square-twotone-transition"
|
||||||
| "line-md:star"
|
| "line-md:star"
|
||||||
| "line-md:star-alt"
|
| "line-md:star-alt"
|
||||||
@ -459,22 +946,31 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:star-alt-twotone"
|
| "line-md:star-alt-twotone"
|
||||||
| "line-md:star-filled"
|
| "line-md:star-filled"
|
||||||
| "line-md:star-filled-half"
|
| "line-md:star-filled-half"
|
||||||
|
| "line-md:star-filled-right-half"
|
||||||
| "line-md:star-half"
|
| "line-md:star-half"
|
||||||
| "line-md:star-half-filled"
|
| "line-md:star-half-filled"
|
||||||
| "line-md:star-half-twotone"
|
| "line-md:star-half-twotone"
|
||||||
| "line-md:star-pulsating-filled-loop"
|
| "line-md:star-pulsating-filled-loop"
|
||||||
| "line-md:star-pulsating-loop"
|
| "line-md:star-pulsating-loop"
|
||||||
| "line-md:star-pulsating-twotone-loop"
|
| "line-md:star-pulsating-twotone-loop"
|
||||||
|
| "line-md:star-right-half"
|
||||||
|
| "line-md:star-right-half-filled"
|
||||||
|
| "line-md:star-right-half-twotone"
|
||||||
| "line-md:star-twotone"
|
| "line-md:star-twotone"
|
||||||
| "line-md:star-twotone-half"
|
| "line-md:star-twotone-half"
|
||||||
|
| "line-md:star-twotone-right-half"
|
||||||
|
| "line-md:steering"
|
||||||
|
| "line-md:steering-off"
|
||||||
| "line-md:sun-rising-filled-loop"
|
| "line-md:sun-rising-filled-loop"
|
||||||
| "line-md:sun-rising-loop"
|
| "line-md:sun-rising-loop"
|
||||||
| "line-md:sun-rising-twotone-loop"
|
| "line-md:sun-rising-twotone-loop"
|
||||||
|
| "line-md:sunny"
|
||||||
| "line-md:sunny-filled"
|
| "line-md:sunny-filled"
|
||||||
| "line-md:sunny-filled-loop"
|
| "line-md:sunny-filled-loop"
|
||||||
| "line-md:sunny-filled-loop-to-moon-alt-filled-loop-transition"
|
| "line-md:sunny-filled-loop-to-moon-filled-alt-loop-transition"
|
||||||
| "line-md:sunny-filled-loop-to-moon-filled-loop-transition"
|
| "line-md:sunny-filled-loop-to-moon-filled-loop-transition"
|
||||||
| "line-md:sunny-filled-loop-to-moon-filled-transition"
|
| "line-md:sunny-filled-loop-to-moon-filled-transition"
|
||||||
|
| "line-md:sunny-loop"
|
||||||
| "line-md:sunny-outline"
|
| "line-md:sunny-outline"
|
||||||
| "line-md:sunny-outline-loop"
|
| "line-md:sunny-outline-loop"
|
||||||
| "line-md:sunny-outline-to-moon-alt-loop-transition"
|
| "line-md:sunny-outline-to-moon-alt-loop-transition"
|
||||||
@ -482,6 +978,8 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:sunny-outline-to-moon-transition"
|
| "line-md:sunny-outline-to-moon-transition"
|
||||||
| "line-md:sunny-outline-twotone"
|
| "line-md:sunny-outline-twotone"
|
||||||
| "line-md:sunny-outline-twotone-loop"
|
| "line-md:sunny-outline-twotone-loop"
|
||||||
|
| "line-md:sunny-twotone"
|
||||||
|
| "line-md:sunny-twotone-loop"
|
||||||
| "line-md:switch"
|
| "line-md:switch"
|
||||||
| "line-md:switch-filled"
|
| "line-md:switch-filled"
|
||||||
| "line-md:switch-filled-to-switch-off-filled-transition"
|
| "line-md:switch-filled-to-switch-off-filled-transition"
|
||||||
@ -489,7 +987,22 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:switch-off-filled"
|
| "line-md:switch-off-filled"
|
||||||
| "line-md:switch-off-filled-to-switch-filled-transition"
|
| "line-md:switch-off-filled-to-switch-filled-transition"
|
||||||
| "line-md:switch-off-to-switch-transition"
|
| "line-md:switch-off-to-switch-transition"
|
||||||
|
| "line-md:switch-off-twotone"
|
||||||
|
| "line-md:switch-off-twotone-to-switch-twotone-transition"
|
||||||
| "line-md:switch-to-switch-off-transition"
|
| "line-md:switch-to-switch-off-transition"
|
||||||
|
| "line-md:switch-twotone"
|
||||||
|
| "line-md:switch-twotone-to-switch-off-twotone-transition"
|
||||||
|
| "line-md:tablet"
|
||||||
|
| "line-md:tablet-arrow-down"
|
||||||
|
| "line-md:tablet-arrow-down-twotone"
|
||||||
|
| "line-md:tablet-arrow-up"
|
||||||
|
| "line-md:tablet-arrow-up-twotone"
|
||||||
|
| "line-md:tablet-off"
|
||||||
|
| "line-md:tablet-off-twotone"
|
||||||
|
| "line-md:tablet-screenshot"
|
||||||
|
| "line-md:tablet-screenshot-twotone"
|
||||||
|
| "line-md:tablet-twotone"
|
||||||
|
| "line-md:taco"
|
||||||
| "line-md:telegram"
|
| "line-md:telegram"
|
||||||
| "line-md:text-box"
|
| "line-md:text-box"
|
||||||
| "line-md:text-box-multiple"
|
| "line-md:text-box-multiple"
|
||||||
@ -500,24 +1013,38 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:text-box-twotone"
|
| "line-md:text-box-twotone"
|
||||||
| "line-md:text-box-twotone-to-text-box-multiple-twotone-transition"
|
| "line-md:text-box-twotone-to-text-box-multiple-twotone-transition"
|
||||||
| "line-md:thumbs-down"
|
| "line-md:thumbs-down"
|
||||||
|
| "line-md:thumbs-down-filled"
|
||||||
| "line-md:thumbs-down-twotone"
|
| "line-md:thumbs-down-twotone"
|
||||||
| "line-md:thumbs-up"
|
| "line-md:thumbs-up"
|
||||||
|
| "line-md:thumbs-up-filled"
|
||||||
| "line-md:thumbs-up-twotone"
|
| "line-md:thumbs-up-twotone"
|
||||||
| "line-md:tiktok"
|
| "line-md:tiktok"
|
||||||
| "line-md:turn-left"
|
| "line-md:turn-left"
|
||||||
|
| "line-md:turn-right"
|
||||||
| "line-md:turn-sharp-left"
|
| "line-md:turn-sharp-left"
|
||||||
|
| "line-md:turn-sharp-right"
|
||||||
| "line-md:turn-slight-left"
|
| "line-md:turn-slight-left"
|
||||||
|
| "line-md:turn-slight-right"
|
||||||
| "line-md:twitter"
|
| "line-md:twitter"
|
||||||
|
| "line-md:twitter-filled"
|
||||||
| "line-md:twitter-twotone"
|
| "line-md:twitter-twotone"
|
||||||
| "line-md:twitter-x"
|
| "line-md:twitter-x"
|
||||||
| "line-md:twitter-x-alt"
|
| "line-md:twitter-x-alt"
|
||||||
| "line-md:u-turn-left"
|
| "line-md:u-turn-left"
|
||||||
|
| "line-md:u-turn-right"
|
||||||
|
| "line-md:upload"
|
||||||
| "line-md:upload-loop"
|
| "line-md:upload-loop"
|
||||||
|
| "line-md:upload-off"
|
||||||
| "line-md:upload-off-loop"
|
| "line-md:upload-off-loop"
|
||||||
| "line-md:upload-off-outline"
|
| "line-md:upload-off-outline"
|
||||||
| "line-md:upload-off-outline-loop"
|
| "line-md:upload-off-outline-loop"
|
||||||
|
| "line-md:upload-off-twotone"
|
||||||
|
| "line-md:upload-off-twotone-loop"
|
||||||
| "line-md:upload-outline"
|
| "line-md:upload-outline"
|
||||||
| "line-md:upload-outline-loop"
|
| "line-md:upload-outline-loop"
|
||||||
|
| "line-md:upload-twotone"
|
||||||
|
| "line-md:upload-twotone-loop"
|
||||||
|
| "line-md:uploading"
|
||||||
| "line-md:uploading-loop"
|
| "line-md:uploading-loop"
|
||||||
| "line-md:valign-baseline"
|
| "line-md:valign-baseline"
|
||||||
| "line-md:valign-baseline-twotone"
|
| "line-md:valign-baseline-twotone"
|
||||||
@ -527,6 +1054,24 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:valign-middle-twotone"
|
| "line-md:valign-middle-twotone"
|
||||||
| "line-md:valign-top"
|
| "line-md:valign-top"
|
||||||
| "line-md:valign-top-twotone"
|
| "line-md:valign-top-twotone"
|
||||||
|
| "line-md:volume-high"
|
||||||
|
| "line-md:volume-high-filled"
|
||||||
|
| "line-md:volume-high-twotone"
|
||||||
|
| "line-md:volume-low"
|
||||||
|
| "line-md:volume-low-filled"
|
||||||
|
| "line-md:volume-low-twotone"
|
||||||
|
| "line-md:volume-medium"
|
||||||
|
| "line-md:volume-medium-filled"
|
||||||
|
| "line-md:volume-medium-twotone"
|
||||||
|
| "line-md:volume-minus"
|
||||||
|
| "line-md:volume-minus-filled"
|
||||||
|
| "line-md:volume-minus-twotone"
|
||||||
|
| "line-md:volume-plus"
|
||||||
|
| "line-md:volume-plus-filled"
|
||||||
|
| "line-md:volume-plus-twotone"
|
||||||
|
| "line-md:volume-remove"
|
||||||
|
| "line-md:volume-remove-filled"
|
||||||
|
| "line-md:volume-remove-twotone"
|
||||||
| "line-md:watch"
|
| "line-md:watch"
|
||||||
| "line-md:watch-loop"
|
| "line-md:watch-loop"
|
||||||
| "line-md:watch-off"
|
| "line-md:watch-off"
|
||||||
@ -535,6 +1080,12 @@ declare module 'virtual:astro-icon' {
|
|||||||
| "line-md:watch-off-twotone-loop"
|
| "line-md:watch-off-twotone-loop"
|
||||||
| "line-md:watch-twotone"
|
| "line-md:watch-twotone"
|
||||||
| "line-md:watch-twotone-loop"
|
| "line-md:watch-twotone-loop"
|
||||||
|
| "line-md:water"
|
||||||
|
| "line-md:water-filled"
|
||||||
|
| "line-md:water-off"
|
||||||
|
| "line-md:water-off-filled"
|
||||||
|
| "line-md:water-off-twotone"
|
||||||
|
| "line-md:water-twotone"
|
||||||
| "line-md:weather-cloudy-loop"
|
| "line-md:weather-cloudy-loop"
|
||||||
| "line-md:youtube"
|
| "line-md:youtube"
|
||||||
| "line-md:youtube-filled"
|
| "line-md:youtube-filled"
|
||||||
|
|||||||
5
.astro/settings.json
Normal file
5
.astro/settings.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"_variables": {
|
||||||
|
"lastUpdateCheck": 1741386617926
|
||||||
|
}
|
||||||
|
}
|
||||||
243
.astro/types.d.ts
vendored
243
.astro/types.d.ts
vendored
@ -1,241 +1,2 @@
|
|||||||
declare module 'astro:content' {
|
/// <reference types="astro/client" />
|
||||||
interface Render {
|
/// <reference path="content.d.ts" />
|
||||||
'.mdx': Promise<{
|
|
||||||
Content: import('astro').MarkdownInstance<{}>['Content'];
|
|
||||||
headings: import('astro').MarkdownHeading[];
|
|
||||||
remarkPluginFrontmatter: Record<string, any>;
|
|
||||||
}>;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'astro:content' {
|
|
||||||
interface Render {
|
|
||||||
'.md': Promise<{
|
|
||||||
Content: import('astro').MarkdownInstance<{}>['Content'];
|
|
||||||
headings: import('astro').MarkdownHeading[];
|
|
||||||
remarkPluginFrontmatter: Record<string, any>;
|
|
||||||
}>;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'astro:content' {
|
|
||||||
type Flatten<T> = T extends { [K: string]: infer U } ? U : never;
|
|
||||||
|
|
||||||
export type CollectionKey = keyof AnyEntryMap;
|
|
||||||
export type CollectionEntry<C extends CollectionKey> = Flatten<AnyEntryMap[C]>;
|
|
||||||
|
|
||||||
export type ContentCollectionKey = keyof ContentEntryMap;
|
|
||||||
export type DataCollectionKey = keyof DataEntryMap;
|
|
||||||
|
|
||||||
type AllValuesOf<T> = T extends any ? T[keyof T] : never;
|
|
||||||
type ValidContentEntrySlug<C extends keyof ContentEntryMap> = AllValuesOf<
|
|
||||||
ContentEntryMap[C]
|
|
||||||
>['slug'];
|
|
||||||
|
|
||||||
export function getEntryBySlug<
|
|
||||||
C extends keyof ContentEntryMap,
|
|
||||||
E extends ValidContentEntrySlug<C> | (string & {}),
|
|
||||||
>(
|
|
||||||
collection: C,
|
|
||||||
// Note that this has to accept a regular string too, for SSR
|
|
||||||
entrySlug: E
|
|
||||||
): E extends ValidContentEntrySlug<C>
|
|
||||||
? Promise<CollectionEntry<C>>
|
|
||||||
: Promise<CollectionEntry<C> | undefined>;
|
|
||||||
|
|
||||||
export function getDataEntryById<C extends keyof DataEntryMap, E extends keyof DataEntryMap[C]>(
|
|
||||||
collection: C,
|
|
||||||
entryId: E
|
|
||||||
): Promise<CollectionEntry<C>>;
|
|
||||||
|
|
||||||
export function getCollection<C extends keyof AnyEntryMap, E extends CollectionEntry<C>>(
|
|
||||||
collection: C,
|
|
||||||
filter?: (entry: CollectionEntry<C>) => entry is E
|
|
||||||
): Promise<E[]>;
|
|
||||||
export function getCollection<C extends keyof AnyEntryMap>(
|
|
||||||
collection: C,
|
|
||||||
filter?: (entry: CollectionEntry<C>) => unknown
|
|
||||||
): Promise<CollectionEntry<C>[]>;
|
|
||||||
|
|
||||||
export function getEntry<
|
|
||||||
C extends keyof ContentEntryMap,
|
|
||||||
E extends ValidContentEntrySlug<C> | (string & {}),
|
|
||||||
>(entry: {
|
|
||||||
collection: C;
|
|
||||||
slug: E;
|
|
||||||
}): E extends ValidContentEntrySlug<C>
|
|
||||||
? Promise<CollectionEntry<C>>
|
|
||||||
: Promise<CollectionEntry<C> | undefined>;
|
|
||||||
export function getEntry<
|
|
||||||
C extends keyof DataEntryMap,
|
|
||||||
E extends keyof DataEntryMap[C] | (string & {}),
|
|
||||||
>(entry: {
|
|
||||||
collection: C;
|
|
||||||
id: E;
|
|
||||||
}): E extends keyof DataEntryMap[C]
|
|
||||||
? Promise<DataEntryMap[C][E]>
|
|
||||||
: Promise<CollectionEntry<C> | undefined>;
|
|
||||||
export function getEntry<
|
|
||||||
C extends keyof ContentEntryMap,
|
|
||||||
E extends ValidContentEntrySlug<C> | (string & {}),
|
|
||||||
>(
|
|
||||||
collection: C,
|
|
||||||
slug: E
|
|
||||||
): E extends ValidContentEntrySlug<C>
|
|
||||||
? Promise<CollectionEntry<C>>
|
|
||||||
: Promise<CollectionEntry<C> | undefined>;
|
|
||||||
export function getEntry<
|
|
||||||
C extends keyof DataEntryMap,
|
|
||||||
E extends keyof DataEntryMap[C] | (string & {}),
|
|
||||||
>(
|
|
||||||
collection: C,
|
|
||||||
id: E
|
|
||||||
): E extends keyof DataEntryMap[C]
|
|
||||||
? Promise<DataEntryMap[C][E]>
|
|
||||||
: Promise<CollectionEntry<C> | undefined>;
|
|
||||||
|
|
||||||
/** Resolve an array of entry references from the same collection */
|
|
||||||
export function getEntries<C extends keyof ContentEntryMap>(
|
|
||||||
entries: {
|
|
||||||
collection: C;
|
|
||||||
slug: ValidContentEntrySlug<C>;
|
|
||||||
}[]
|
|
||||||
): Promise<CollectionEntry<C>[]>;
|
|
||||||
export function getEntries<C extends keyof DataEntryMap>(
|
|
||||||
entries: {
|
|
||||||
collection: C;
|
|
||||||
id: keyof DataEntryMap[C];
|
|
||||||
}[]
|
|
||||||
): Promise<CollectionEntry<C>[]>;
|
|
||||||
|
|
||||||
export function reference<C extends keyof AnyEntryMap>(
|
|
||||||
collection: C
|
|
||||||
): import('astro/zod').ZodEffects<
|
|
||||||
import('astro/zod').ZodString,
|
|
||||||
C extends keyof ContentEntryMap
|
|
||||||
? {
|
|
||||||
collection: C;
|
|
||||||
slug: ValidContentEntrySlug<C>;
|
|
||||||
}
|
|
||||||
: {
|
|
||||||
collection: C;
|
|
||||||
id: keyof DataEntryMap[C];
|
|
||||||
}
|
|
||||||
>;
|
|
||||||
// Allow generic `string` to avoid excessive type errors in the config
|
|
||||||
// if `dev` is not running to update as you edit.
|
|
||||||
// Invalid collection names will be caught at build time.
|
|
||||||
export function reference<C extends string>(
|
|
||||||
collection: C
|
|
||||||
): import('astro/zod').ZodEffects<import('astro/zod').ZodString, never>;
|
|
||||||
|
|
||||||
type ReturnTypeOrOriginal<T> = T extends (...args: any[]) => infer R ? R : T;
|
|
||||||
type InferEntrySchema<C extends keyof AnyEntryMap> = import('astro/zod').infer<
|
|
||||||
ReturnTypeOrOriginal<Required<ContentConfig['collections'][C]>['schema']>
|
|
||||||
>;
|
|
||||||
|
|
||||||
type ContentEntryMap = {
|
|
||||||
"blog": {
|
|
||||||
"10-essential-web-development-tools-for-building-stunning-websites.mdx": {
|
|
||||||
id: "10-essential-web-development-tools-for-building-stunning-websites.mdx";
|
|
||||||
slug: "10-essential-web-development-tools-for-building-stunning-websites";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"benefits-of-headless-cms-development-with-directus.mdx": {
|
|
||||||
id: "benefits-of-headless-cms-development-with-directus.mdx";
|
|
||||||
slug: "benefits-of-headless-cms-development-with-directus";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"comparing-mvc-frameworks.mdx": {
|
|
||||||
id: "comparing-mvc-frameworks.mdx";
|
|
||||||
slug: "comparing-mvc-frameworks";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"debugging-tips-for-astrojs.mdx": {
|
|
||||||
id: "debugging-tips-for-astrojs.mdx";
|
|
||||||
slug: "debugging-tips-for-astrojs";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"dockerizing-front-end-development.mdx": {
|
|
||||||
id: "dockerizing-front-end-development.mdx";
|
|
||||||
slug: "dockerizing-front-end-development";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"essential-frontend-tools-for-astro-js-developers.mdx": {
|
|
||||||
id: "essential-frontend-tools-for-astro-js-developers.mdx";
|
|
||||||
slug: "essential-frontend-tools-for-astro-js-developers";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"exploring-nodejs-development-trends-2024.mdx": {
|
|
||||||
id: "exploring-nodejs-development-trends-2024.mdx";
|
|
||||||
slug: "exploring-nodejs-development-trends-2024";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"getting-started-with-astrojs.mdx": {
|
|
||||||
id: "getting-started-with-astrojs.mdx";
|
|
||||||
slug: "getting-started-with-astrojs";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"mastering-markdown.mdx": {
|
|
||||||
id: "mastering-markdown.mdx";
|
|
||||||
slug: "mastering-markdown";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"modern-web-frameworks-introduction.mdx": {
|
|
||||||
id: "modern-web-frameworks-introduction.mdx";
|
|
||||||
slug: "modern-web-frameworks-introduction";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"this-is-a-draft.mdx": {
|
|
||||||
id: "this-is-a-draft.mdx";
|
|
||||||
slug: "this-is-a-draft";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"top-10-ides-for-astrojs.mdx": {
|
|
||||||
id: "top-10-ides-for-astrojs.mdx";
|
|
||||||
slug: "top-10-ides-for-astrojs";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
"unleasing-the-power-of-astro-js-for-better-web-development.mdx": {
|
|
||||||
id: "unleasing-the-power-of-astro-js-for-better-web-development.mdx";
|
|
||||||
slug: "unleasing-the-power-of-astro-js-for-better-web-development";
|
|
||||||
body: string;
|
|
||||||
collection: "blog";
|
|
||||||
data: InferEntrySchema<"blog">
|
|
||||||
} & { render(): Render[".mdx"] };
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
type DataEntryMap = {
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
type AnyEntryMap = ContentEntryMap & DataEntryMap;
|
|
||||||
|
|
||||||
export type ContentConfig = typeof import("../src/content/config.js");
|
|
||||||
}
|
|
||||||
37
CHANGELOG.md
37
CHANGELOG.md
@ -1,3 +1,40 @@
|
|||||||
|
# [1.29.0](https://github.com/deployn/astro-deploy/compare/v1.28.0...v1.29.0) (2025-03-08)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* add 404 page ([04cba4f](https://github.com/deployn/astro-deploy/commit/04cba4fa051b1c8958aa4dfe99266c56d0e8cf0b))
|
||||||
|
* **blog:** add redirect to 404 page if entry is not found ([6cd32df](https://github.com/deployn/astro-deploy/commit/6cd32df0eeadad3094cc35724961a4bbd5541eb0))
|
||||||
|
* **Dockerfile:** use Alpine base image and add healthcheck ([02e218d](https://github.com/deployn/astro-deploy/commit/02e218d1853c3c06d48bb3f8811564d910c61837))
|
||||||
|
|
||||||
|
# [1.29.0-beta.3](https://github.com/deployn/astro-deploy/compare/v1.29.0-beta.2...v1.29.0-beta.3) (2024-10-05)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **blog:** add redirect to 404 page if entry is not found ([6cd32df](https://github.com/deployn/astro-deploy/commit/6cd32df0eeadad3094cc35724961a4bbd5541eb0))
|
||||||
|
|
||||||
|
# [1.29.0-beta.2](https://github.com/deployn/astro-deploy/compare/v1.29.0-beta.1...v1.29.0-beta.2) (2024-10-05)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* add 404 page ([04cba4f](https://github.com/deployn/astro-deploy/commit/04cba4fa051b1c8958aa4dfe99266c56d0e8cf0b))
|
||||||
|
|
||||||
|
# [1.29.0-beta.1](https://github.com/deployn/astro-deploy/compare/v1.28.0...v1.29.0-beta.1) (2024-10-04)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **Dockerfile:** use Alpine base image and add healthcheck ([02e218d](https://github.com/deployn/astro-deploy/commit/02e218d1853c3c06d48bb3f8811564d910c61837))
|
||||||
|
|
||||||
|
# [1.28.0](https://github.com/deployn/astro-deploy/compare/v1.27.0...v1.28.0) (2024-09-13)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **header:** improve mobile menu functionality and add navigation rail ([6fdffbe](https://github.com/deployn/astro-deploy/commit/6fdffbe5c631935cf79d8bf8b7d89df143bc4111))
|
||||||
|
|
||||||
# [1.27.0](https://github.com/deployn/astro-deploy/compare/v1.26.0...v1.27.0) (2024-04-12)
|
# [1.27.0](https://github.com/deployn/astro-deploy/compare/v1.26.0...v1.27.0) (2024-04-12)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
21
Dockerfile
21
Dockerfile
@ -1,19 +1,15 @@
|
|||||||
FROM node:20-slim AS base
|
# Build Stage
|
||||||
|
FROM node:22-slim AS build
|
||||||
|
|
||||||
ENV PNPM_HOME="/pnpm"
|
ENV PNPM_HOME="/pnpm"
|
||||||
ENV PATH="$PNPM_HOME:$PATH"
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
RUN corepack enable
|
RUN corepack enable
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY package.json pnpm-lock.yaml ./
|
COPY package.json pnpm-lock.yaml ./
|
||||||
|
|
||||||
FROM base AS prod-deps
|
|
||||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
|
|
||||||
|
|
||||||
FROM base AS build-deps
|
|
||||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
|
||||||
|
|
||||||
FROM build-deps AS build
|
|
||||||
COPY . .
|
COPY . .
|
||||||
ARG SITE_URL
|
ARG SITE_URL
|
||||||
ENV SITE_URL=${SITE_URL}
|
ENV SITE_URL=${SITE_URL}
|
||||||
@ -21,10 +17,21 @@ ARG DIRECTUS_URL
|
|||||||
ENV DIRECTUS_URL=${DIRECTUS_URL}
|
ENV DIRECTUS_URL=${DIRECTUS_URL}
|
||||||
RUN pnpm run build
|
RUN pnpm run build
|
||||||
|
|
||||||
|
# Runtime Stage
|
||||||
FROM nginx:1.25-alpine AS runtime
|
FROM nginx:1.25-alpine AS runtime
|
||||||
|
|
||||||
|
# Copy custom nginx config
|
||||||
COPY nginx/nginx.conf /etc/nginx/nginx.conf
|
COPY nginx/nginx.conf /etc/nginx/nginx.conf
|
||||||
|
|
||||||
|
# Copy built assets from build stage
|
||||||
COPY --from=build /app/dist /usr/share/nginx/html
|
COPY --from=build /app/dist /usr/share/nginx/html
|
||||||
|
|
||||||
|
# Add curl for healthchecks
|
||||||
|
RUN apk add --no-cache curl
|
||||||
|
|
||||||
|
# Healthcheck
|
||||||
|
HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost/ || exit 1
|
||||||
|
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
|
|||||||
@ -6,7 +6,7 @@ A custom Astro.js template
|
|||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- 🚀 Astro.js 4 for modern web development.
|
- 🚀 Astro.js 5 for modern web development.
|
||||||
- 🐳 Docker integration for consistent environments and easy deployment.
|
- 🐳 Docker integration for consistent environments and easy deployment.
|
||||||
- 🍃 Tailwind CSS for utility-first styling and rapid UI development.
|
- 🍃 Tailwind CSS for utility-first styling and rapid UI development.
|
||||||
- ⚛️ React.js integration, enabling complex UI construction with ease.
|
- ⚛️ React.js integration, enabling complex UI construction with ease.
|
||||||
|
|||||||
@ -1,26 +1,28 @@
|
|||||||
user nginx;
|
user nginx;
|
||||||
worker_processes auto;
|
worker_processes auto;
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log notice;
|
error_log /var/log/nginx/error.log warn;
|
||||||
pid /var/run/nginx.pid;
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
events {
|
events {
|
||||||
worker_connections 1024;
|
worker_connections 1024;
|
||||||
}
|
}
|
||||||
|
|
||||||
http {
|
http {
|
||||||
include /etc/nginx/mime.types;
|
include /etc/nginx/mime.types;
|
||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
|
|
||||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
||||||
'$status $body_bytes_sent "$http_referer" '
|
'$status $body_bytes_sent "$http_referer" '
|
||||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
'"$http_user_agent" "$http_x_forwarded_for"';
|
||||||
|
|
||||||
access_log /var/log/nginx/access.log main;
|
access_log /var/log/nginx/access.log main;
|
||||||
|
|
||||||
sendfile on;
|
sendfile on;
|
||||||
|
tcp_nopush on;
|
||||||
keepalive_timeout 65;
|
tcp_nodelay on;
|
||||||
|
keepalive_timeout 65;
|
||||||
|
types_hash_max_size 2048;
|
||||||
|
|
||||||
gzip on;
|
gzip on;
|
||||||
gzip_vary on;
|
gzip_vary on;
|
||||||
@ -32,26 +34,33 @@ http {
|
|||||||
listen 80;
|
listen 80;
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
server_name localhost;
|
server_name localhost;
|
||||||
port_in_redirect off;
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm;
|
||||||
|
|
||||||
root /usr/share/nginx/html;
|
location / {
|
||||||
index index.html index.htm;
|
try_files $uri $uri/ /index.html;
|
||||||
rewrite ^([^.]*[^/])$ $1/ permanent;
|
}
|
||||||
try_files $uri $uri/ $uri/index.html =404;
|
|
||||||
|
|
||||||
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|webp)$ {
|
location ~* \.(?:ico|css|js|gif|jpe?g|png|svg|woff|woff2|eot|ttf|webp)$ {
|
||||||
expires 60d;
|
expires 30d;
|
||||||
add_header Cache-Control "public, no-transform";
|
add_header Cache-Control "public, no-transform";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error_page 404 /404.html;
|
||||||
|
location = /404.html {
|
||||||
|
internal;
|
||||||
|
}
|
||||||
|
|
||||||
error_page 500 502 503 504 /50x.html;
|
error_page 500 502 503 504 /50x.html;
|
||||||
location = /50x.html {
|
location = /50x.html {
|
||||||
root /usr/share/nginx/html;
|
internal;
|
||||||
}
|
}
|
||||||
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN";
|
add_header X-Frame-Options "SAMEORIGIN";
|
||||||
add_header X-Content-Type-Options "nosniff";
|
add_header X-Content-Type-Options "nosniff";
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
|
||||||
|
add_header Referrer-Policy "strict-origin-when-cross-origin";
|
||||||
|
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
73
package.json
73
package.json
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "astro-deploy",
|
"name": "astro-deploy",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "1.27.0",
|
"version": "1.29.0",
|
||||||
"description": "A custom Astro.js template",
|
"description": "A custom Astro.js template",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -15,52 +15,53 @@
|
|||||||
"upgrade": "pnpm update --interactive --latest",
|
"upgrade": "pnpm update --interactive --latest",
|
||||||
"commit": "cz"
|
"commit": "cz"
|
||||||
},
|
},
|
||||||
|
"packageManager": "pnpm@9.8.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/alpinejs": "^0.4.0",
|
"@astrojs/alpinejs": "^0.4.0",
|
||||||
"@astrojs/check": "^0.5.10",
|
"@astrojs/check": "^0.9.4",
|
||||||
"@astrojs/mdx": "^2.3.0",
|
"@astrojs/mdx": "^4.1.0",
|
||||||
"@astrojs/react": "^3.3.0",
|
"@astrojs/react": "^4.2.1",
|
||||||
"@astrojs/sitemap": "^3.1.2",
|
"@astrojs/sitemap": "^3.2.1",
|
||||||
"@astrojs/tailwind": "^5.1.0",
|
"@astrojs/tailwind": "^5.1.2",
|
||||||
"@radix-ui/react-dropdown-menu": "^2.0.6",
|
"@radix-ui/react-dropdown-menu": "^2.1.2",
|
||||||
"@radix-ui/react-slot": "^1.0.2",
|
"@radix-ui/react-slot": "^1.1.0",
|
||||||
"astro": "^4.6.0",
|
"astro": "^5.4.2",
|
||||||
"astro-expressive-code": "^0.34.1",
|
"astro-expressive-code": "^0.40.2",
|
||||||
"astro-icon": "^1.1.0"
|
"astro-icon": "^1.1.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "^19.2.1",
|
"@commitlint/cli": "^19.5.0",
|
||||||
"@commitlint/config-conventional": "^19.1.0",
|
"@commitlint/config-conventional": "^19.5.0",
|
||||||
"@commitlint/cz-commitlint": "^19.2.0",
|
"@commitlint/cz-commitlint": "^19.5.0",
|
||||||
"@directus/sdk": "^15.1.0",
|
"@directus/sdk": "^19.0.1",
|
||||||
"@iconify-json/line-md": "^1.1.37",
|
"@iconify-json/line-md": "^1.2.1",
|
||||||
"@pagefind/default-ui": "^1.1.0",
|
"@pagefind/default-ui": "^1.1.1",
|
||||||
"@semantic-release/changelog": "^6.0.3",
|
"@semantic-release/changelog": "^6.0.3",
|
||||||
"@semantic-release/git": "^10.0.1",
|
"@semantic-release/git": "^10.0.1",
|
||||||
"@tailwindcss/typography": "^0.5.12",
|
"@tailwindcss/typography": "^0.5.15",
|
||||||
"@types/alpinejs": "^3.13.10",
|
"@types/alpinejs": "^3.13.10",
|
||||||
"@types/react": "^18.2.77",
|
"@types/react": "^19.0.10",
|
||||||
"@types/react-dom": "^18.2.25",
|
"@types/react-dom": "^19.0.4",
|
||||||
"@vite-pwa/assets-generator": "^0.2.4",
|
"@vite-pwa/assets-generator": "^0.2.6",
|
||||||
"alpinejs": "^3.13.8",
|
"alpinejs": "^3.14.1",
|
||||||
"class-variance-authority": "^0.7.0",
|
"class-variance-authority": "^0.7.0",
|
||||||
"clsx": "^2.1.0",
|
"clsx": "^2.1.1",
|
||||||
"commitizen": "^4.3.0",
|
"commitizen": "^4.3.1",
|
||||||
"cz-conventional-changelog": "^3.3.0",
|
"cz-conventional-changelog": "^3.3.0",
|
||||||
"lucide-react": "^0.367.0",
|
"lucide-react": "^0.479.0",
|
||||||
"pagefind": "^1.1.0",
|
"pagefind": "^1.1.1",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.3.3",
|
||||||
"prettier-plugin-astro": "^0.13.0",
|
"prettier-plugin-astro": "^0.14.1",
|
||||||
"prettier-plugin-tailwindcss": "^0.5.13",
|
"prettier-plugin-tailwindcss": "^0.6.8",
|
||||||
"pwa-asset-generator": "^6.3.1",
|
"pwa-asset-generator": "^6.3.2",
|
||||||
"react": "^18.2.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^19.0.0",
|
||||||
"semantic-release": "^23.0.8",
|
"semantic-release": "^24.1.1",
|
||||||
"sharp": "0.32.6",
|
"sharp": "0.32.6",
|
||||||
"tailwind-merge": "^2.2.2",
|
"tailwind-merge": "^3.0.2",
|
||||||
"tailwindcss": "^3.4.3",
|
"tailwindcss": "^3.4.11",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.6.2"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"commitizen": {
|
"commitizen": {
|
||||||
|
|||||||
14889
pnpm-lock.yaml
generated
14889
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -2,7 +2,7 @@
|
|||||||
import { Icon } from 'astro-icon/components';
|
import { Icon } from 'astro-icon/components';
|
||||||
---
|
---
|
||||||
|
|
||||||
<footer class="bg-gray-100 py-12 dark:bg-gray-800">
|
<footer class="bg-gray-100 py-12 pb-20 dark:bg-gray-800 sm:pb-12">
|
||||||
<div class="mx-auto w-full max-w-7xl px-8">
|
<div class="mx-auto w-full max-w-7xl px-8">
|
||||||
<div class="flex flex-col items-center justify-between gap-8 md:flex-row">
|
<div class="flex flex-col items-center justify-between gap-8 md:flex-row">
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@ -2,13 +2,14 @@
|
|||||||
import { Image } from 'astro:assets';
|
import { Image } from 'astro:assets';
|
||||||
import { ModeToggle } from '@/components/ModeToggle';
|
import { ModeToggle } from '@/components/ModeToggle';
|
||||||
import HeaderLink from './HeaderLink.astro';
|
import HeaderLink from './HeaderLink.astro';
|
||||||
|
import { Icon } from 'astro-icon/components';
|
||||||
|
|
||||||
import logoImage from '@/assets/images/logo.png';
|
import logoImage from '@/assets/images/logo.png';
|
||||||
|
|
||||||
const navLinks = [
|
const navLinks = [
|
||||||
{ href: '/', label: 'Home' },
|
{ href: '/', label: 'Home', icon: 'line-md:home' },
|
||||||
{ href: '/blog/', label: 'Blog' },
|
{ href: '/blog/', label: 'Blog', icon: 'line-md:document-list' },
|
||||||
{ href: '/recipes/', label: 'Recipes' },
|
{ href: '/recipes/', label: 'Recipes', icon: 'line-md:clipboard-list' },
|
||||||
];
|
];
|
||||||
|
|
||||||
const getThemePreference = () => {
|
const getThemePreference = () => {
|
||||||
@ -45,95 +46,104 @@ const setTheme = (document: Document) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<header
|
<header
|
||||||
x-data={`{
|
class="sticky top-0 z-10 block h-16 w-full max-w-full rounded-none border border-white/80 bg-opacity-80 px-4 text-black shadow-md backdrop-blur-2xl backdrop-saturate-200 dark:border-black/80 dark:bg-zinc-900 lg:px-8">
|
||||||
open: false,
|
<div class="flex h-full items-center justify-between text-zinc-900 dark:text-zinc-100">
|
||||||
windowWidth: window.innerWidth,
|
<button id="navToggle" class="hidden sm:block md:hidden" aria-label="Toggle navigation">
|
||||||
init() {
|
<Icon name="line-md:menu" class="h-6 w-6" />
|
||||||
this.$watch('windowWidth', () => {
|
</button>
|
||||||
this.open = false;
|
|
||||||
});
|
|
||||||
window.addEventListener('resize', () => {
|
|
||||||
this.$nextTick(() => {
|
|
||||||
this.windowWidth = window.innerWidth;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}`}
|
|
||||||
x-init="init()"
|
|
||||||
class="sticky top-0 z-10 block h-max w-full max-w-full rounded-none border border-white/80 bg-opacity-80 px-4 py-2 text-black shadow-md backdrop-blur-2xl backdrop-saturate-200 dark:border-black/80 dark:bg-zinc-900 lg:px-8 lg:py-4">
|
|
||||||
<div class="flex items-center justify-between text-zinc-900 dark:text-zinc-100">
|
|
||||||
<a
|
<a
|
||||||
href="/"
|
href="/"
|
||||||
class="mr-4 block cursor-pointer py-1.5 font-sans text-base font-semibold leading-relaxed text-inherit antialiased lg:ml-2">
|
class="mr-4 block cursor-pointer py-1.5 font-sans text-base font-semibold leading-relaxed text-inherit antialiased lg:ml-2">
|
||||||
<div class="flex items-center gap-2 lg:gap-4">
|
<div class="flex items-center gap-2 lg:gap-4">
|
||||||
<Image
|
<Image src={logoImage} alt="Astro Deploy" class="size-10 lg:size-14" loading="eager" />
|
||||||
src={logoImage}
|
<span class="hidden sm:inline">Astro Deploy</span>
|
||||||
alt="Astro Deploy"
|
|
||||||
class="-my-2 size-10 lg:-my-4 lg:size-14"
|
|
||||||
loading="eager"
|
|
||||||
/>
|
|
||||||
Astro Deploy
|
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<nav
|
<nav class="hidden items-center space-x-4 md:flex">
|
||||||
class="mb-6 mt-4 hidden min-w-60 flex-col gap-1 p-0 font-sans text-base font-normal text-zinc-700 dark:text-zinc-300 sm:mb-0 sm:mt-0 sm:flex sm:flex-row sm:p-1">
|
|
||||||
{
|
{
|
||||||
navLinks.map(({ href, label }) => (
|
navLinks.map(({ href, label }) => (
|
||||||
<HeaderLink
|
<HeaderLink
|
||||||
href={href}
|
href={href}
|
||||||
class="block w-full rounded-lg px-4 py-2 text-center font-sans text-sm leading-normal text-zinc-900 antialiased transition-all hover:bg-zinc-50 dark:text-zinc-100 dark:hover:bg-zinc-950 md:text-xl">
|
class="block rounded-lg px-4 py-2 text-center font-sans text-sm leading-normal text-zinc-900 antialiased transition-all hover:bg-zinc-50 dark:text-zinc-100 dark:hover:bg-zinc-950 md:text-xl">
|
||||||
{label}
|
{label}
|
||||||
</HeaderLink>
|
</HeaderLink>
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
</nav>
|
</nav>
|
||||||
<div class="flex">
|
<div class="flex items-center">
|
||||||
<button
|
|
||||||
class="relative h-10 w-10 text-gray-500 focus:outline-none sm:hidden"
|
|
||||||
aria-controls="menu"
|
|
||||||
@click="open = !open">
|
|
||||||
<span class="sr-only">Open main menu</span>
|
|
||||||
<span
|
|
||||||
class="absolute left-1/2 top-1/2 block w-5 -translate-x-1/2 -translate-y-1/2 transform">
|
|
||||||
<span
|
|
||||||
aria-hidden="true"
|
|
||||||
class="absolute block h-0.5 w-5 transform bg-current transition duration-200 ease-in-out"
|
|
||||||
:class="{'rotate-45': open,' -translate-y-1.5': !open }">
|
|
||||||
</span>
|
|
||||||
<span
|
|
||||||
aria-hidden="true"
|
|
||||||
class="absolute block h-0.5 w-5 transform bg-current transition duration-200 ease-in-out"
|
|
||||||
:class="{'opacity-0': open }">
|
|
||||||
</span>
|
|
||||||
<span
|
|
||||||
aria-hidden="true"
|
|
||||||
class="absolute block h-0.5 w-5 transform bg-current transition duration-200 ease-in-out"
|
|
||||||
:class="{'-rotate-45': open, ' translate-y-1.5': !open}">
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
<ModeToggle client:load />
|
<ModeToggle client:load />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<nav
|
</header>
|
||||||
id="menu"
|
|
||||||
:class="{'flex': open, 'hidden': !open}"
|
<!-- Navigation Rail -->
|
||||||
x-show="open"
|
<nav
|
||||||
x-transition:enter="transition ease-out duration-200"
|
id="navRail"
|
||||||
x-transition:enter-start="opacity-0 transform scale-90"
|
class="fixed bottom-0 left-0 top-16 z-40 hidden w-16 flex-col items-center justify-start space-y-4 bg-white pt-4 shadow-md transition-transform duration-300 ease-in-out dark:bg-zinc-900 sm:flex md:hidden">
|
||||||
x-transition:enter-end="opacity-100 transform scale-100"
|
{
|
||||||
x-transition:leave="transition ease-in duration-200"
|
navLinks.map(({ href, label, icon }) => (
|
||||||
x-transition:leave-start="opacity-100 transform scale-100"
|
<HeaderLink
|
||||||
x-transition:leave-end="opacity-0 transform scale-90"
|
href={href}
|
||||||
class="mb-6 mt-4 hidden min-w-60 flex-col gap-1 p-0 font-sans text-base font-normal text-zinc-700 dark:text-zinc-300 sm:mb-0 sm:mt-0 sm:hidden sm:flex-row sm:p-1">
|
class="group flex flex-col items-center justify-center p-2 hover:bg-gray-100 dark:hover:bg-zinc-800">
|
||||||
|
<Icon
|
||||||
|
name={icon}
|
||||||
|
class="mb-1 h-6 w-6 text-gray-500 group-hover:text-blue-600 dark:text-gray-400 dark:group-hover:text-blue-500"
|
||||||
|
/>
|
||||||
|
<span class="text-xs text-gray-500 group-hover:text-blue-600 dark:text-gray-400 dark:group-hover:text-blue-500">
|
||||||
|
{label}
|
||||||
|
</span>
|
||||||
|
</HeaderLink>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Mobile Bottom Navigation -->
|
||||||
|
<nav
|
||||||
|
class="fixed bottom-0 left-0 z-50 h-16 w-full border-t border-gray-200 bg-white dark:border-gray-600 dark:bg-zinc-900 sm:hidden">
|
||||||
|
<div class="mx-auto grid h-full max-w-lg grid-cols-3">
|
||||||
{
|
{
|
||||||
navLinks.map(({ href, label }) => (
|
navLinks.map(({ href, label, icon }) => (
|
||||||
<HeaderLink
|
<HeaderLink
|
||||||
href={href}
|
href={href}
|
||||||
class="flex w-full items-center gap-2 rounded-lg p-3 py-2 pr-4 text-start font-sans text-sm font-medium leading-tight text-zinc-900 antialiased outline-none transition-all hover:bg-zinc-50 hover:bg-opacity-80 hover:text-zinc-900 focus:bg-zinc-50 focus:bg-opacity-80 focus:text-zinc-900 active:bg-zinc-50 active:bg-opacity-80 active:text-zinc-900 dark:text-zinc-100">
|
class="group inline-flex flex-col items-center justify-center px-5 hover:bg-gray-50 dark:hover:bg-zinc-800">
|
||||||
{label}
|
<Icon
|
||||||
|
name={icon}
|
||||||
|
class="mb-1 h-6 w-6 text-gray-500 group-hover:text-blue-600 dark:text-gray-400 dark:group-hover:text-blue-500"
|
||||||
|
/>
|
||||||
|
<span class="text-xs text-gray-500 group-hover:text-blue-600 dark:text-gray-400 dark:group-hover:text-blue-500">
|
||||||
|
{label}
|
||||||
|
</span>
|
||||||
</HeaderLink>
|
</HeaderLink>
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
</nav>
|
</div>
|
||||||
</header>
|
</nav>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
function setupNavigation() {
|
||||||
|
const navToggle = document.getElementById('navToggle');
|
||||||
|
const navRail = document.getElementById('navRail');
|
||||||
|
const mainContent = document.querySelector('main');
|
||||||
|
|
||||||
|
function toggleNavRail() {
|
||||||
|
navRail?.classList.toggle('-translate-x-full');
|
||||||
|
mainContent?.classList.toggle('sm:pl-16');
|
||||||
|
mainContent?.classList.toggle('sm:pl-0');
|
||||||
|
}
|
||||||
|
|
||||||
|
navToggle?.addEventListener('click', toggleNavRail);
|
||||||
|
|
||||||
|
// Check if we're on a secondary page and hide the rail if necessary
|
||||||
|
if (document.body.classList.contains('secondary-page')) {
|
||||||
|
navRail?.classList.add('-translate-x-full');
|
||||||
|
mainContent?.classList.remove('sm:pl-16');
|
||||||
|
mainContent?.classList.add('sm:pl-0');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run the setup on initial load
|
||||||
|
setupNavigation();
|
||||||
|
|
||||||
|
// Re-run the setup after each navigation
|
||||||
|
document.addEventListener('astro:after-swap', setupNavigation);
|
||||||
|
</script>
|
||||||
|
|||||||
@ -3,10 +3,45 @@ title: 'Mastering Markdown: A Guide to Essential Elements'
|
|||||||
description: 'Master the essential Markdown elements to create engaging, well-structured content. Learn headings, emphasis, lists, links, and more.'
|
description: 'Master the essential Markdown elements to create engaging, well-structured content. Learn headings, emphasis, lists, links, and more.'
|
||||||
author: [{ type: 'Person', name: 'Jewgeni', url: 'https://deployn.de' }]
|
author: [{ type: 'Person', name: 'Jewgeni', url: 'https://deployn.de' }]
|
||||||
datePublished: '2024-04-07'
|
datePublished: '2024-04-07'
|
||||||
|
dateModified: '2024-04-14'
|
||||||
image: './mastering-markdown.png'
|
image: './mastering-markdown.png'
|
||||||
---
|
---
|
||||||
|
|
||||||
Markdown is a lightweight markup language that allows you to format text easily and quickly. It's widely used for creating web content, documentation, and even books. In this blog post, we'll explore some of the essential Markdown elements that you can use to create engaging and well-structured content.
|
## Introduction to Markdown
|
||||||
|
|
||||||
|
Markdown is a lightweight markup language that allows you to format text easily and quickly. It's widely used for creating web content, documentation, and even e-books. In this article, we'll dive deep into the world of Markdown and explore its many features and benefits.
|
||||||
|
|
||||||
|
Markdown was created by John Gruber in 2004 with the goal of making it easy to write and read formatted text. It has since become a popular choice for writers, developers, and content creators due to its simplicity and versatility.
|
||||||
|
|
||||||
|
## Why Use Markdown?
|
||||||
|
|
||||||
|
There are many reasons why you should consider using Markdown for your writing needs:
|
||||||
|
|
||||||
|
1. It's easy to learn and use
|
||||||
|
2. It's portable and can be used across different platforms
|
||||||
|
3. It produces clean and readable output
|
||||||
|
4. It's fast and efficient
|
||||||
|
5. It's widely supported by many applications and tools
|
||||||
|
|
||||||
|
Markdown allows you to focus on writing your content without worrying about complex formatting or layout. You can quickly add headings, lists, links, images, and more with just a few simple characters.
|
||||||
|
|
||||||
|
## Basic Markdown Syntax
|
||||||
|
|
||||||
|
To get started with Markdown, you need to know some basic syntax. Here are some of the most commonly used Markdown elements:
|
||||||
|
|
||||||
|
| Element | Syntax |
|
||||||
|
| -------------- | ---------------------------------- |
|
||||||
|
| Heading | `# H1, ## H2, ### H3` |
|
||||||
|
| Bold | `**bold text**` |
|
||||||
|
| Italic | `_italicized text_` |
|
||||||
|
| Link | `[link text](https://example.com)` |
|
||||||
|
| Image | `` |
|
||||||
|
| Blockquote | `> blockquote` |
|
||||||
|
| Ordered List | `1. First item` |
|
||||||
|
| Unordered List | `- First item` |
|
||||||
|
| Code | `` `code` `` |
|
||||||
|
|
||||||
|
These are just a few examples of what you can do with Markdown. As you become more comfortable with the syntax, you'll discover many more ways to format your text and create rich, engaging content.
|
||||||
|
|
||||||
## Headings
|
## Headings
|
||||||
|
|
||||||
@ -55,7 +90,21 @@ Ordered list:
|
|||||||
|
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
To create a link, enclose the link text in square brackets and the URL in parentheses. You can also add a title for the link by enclosing it in quotes after the URL. For example:
|
To create a link, enclose the link text in square brackets and the URL in parentheses. You can create internal links to other sections of your document by using the following syntax:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
[link text](#section-id)
|
||||||
|
```
|
||||||
|
|
||||||
|
For example, if you have a section with the heading "## Advanced Markdown techniques", you can create a link to it like this:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
[Go to Advanced Markdown techniques](#advanced-markdown-techniques)
|
||||||
|
```
|
||||||
|
|
||||||
|
This will create a clickable link that will take the reader directly to that section of the document.
|
||||||
|
|
||||||
|
You can also add a title for the link by enclosing it in quotes after the URL. For example:
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
[Visit GitHub](https://github.com/deployn/astro-deploy 'GitHub')
|
[Visit GitHub](https://github.com/deployn/astro-deploy 'GitHub')
|
||||||
@ -153,4 +202,62 @@ To create a horizontal rule, use three or more asterisks, hyphens, or underscore
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
These are just a few of the many Markdown elements available. By mastering these essential elements, you'll be well on your way to creating professional and engaging content using Markdown. Happy writing!
|
## Markdown Editors and Tools
|
||||||
|
|
||||||
|
While you can write Markdown in any text editor, there are many specialized Markdown editors and tools available that can make your life easier. Here are a few popular options:
|
||||||
|
|
||||||
|
- [Typora](https://typora.io/) - A minimalist Markdown editor for Windows, Mac, and Linux
|
||||||
|
- [Visual Studio Code](https://code.visualstudio.com/) - A powerful code editor with built-in Markdown support
|
||||||
|
- [Dillinger](https://dillinger.io/) - An online Markdown editor with live preview
|
||||||
|
- [StackEdit](https://stackedit.io/) - An online Markdown editor with real-time collaboration
|
||||||
|
- [Bear](https://bear.app/) - A note-taking app for macOS and iOS with Markdown support
|
||||||
|
- [Obsidian](https://obsidian.md/) - A powerful note-taking app with Markdown support and backlinking features
|
||||||
|
- [Notion](https://www.notion.so/) - A versatile productivity tool with Markdown support and database features
|
||||||
|
- [HackMD](https://hackmd.io/) - An online Markdown editor with real-time collaboration and version control
|
||||||
|
- [Joplin](https://joplinapp.org/) - An open-source note-taking app with Markdown support and end-to-end encryption
|
||||||
|
- [iA Writer](https://ia.net/writer) - A distraction-free writing app for Mac, iOS, and Android
|
||||||
|
- [Markdown Monster](https://markdownmonster.west-wind.com/) - A powerful Markdown editor for Windows
|
||||||
|
- [Github](https://github.com) - A web-based platform for version control and collaboration that supports Markdown
|
||||||
|
|
||||||
|
These are just a few examples of the many Markdown editors and tools available. Choose the one that best fits your needs and workflow.
|
||||||
|
|
||||||
|
## Markdown for Different Use Cases
|
||||||
|
|
||||||
|
Markdown is a versatile language that can be used for many different purposes. Here are a few examples:
|
||||||
|
|
||||||
|
### Blogging
|
||||||
|
|
||||||
|
Many blogging platforms, such as [Ghost](https://ghost.org/), [Hashnode](https://hashnode.com/), [Dev.to](https://dev.to/), [Medium](https://medium.com/), and [WordPress](https://wordpress.com/), support Markdown. You can write your blog posts in Markdown and easily convert them to HTML for publishing.\_createMdxContent
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
|
||||||
|
Markdown is a popular choice for creating documentation, especially for software projects. Tools like [GitBook](https://www.gitbook.com/), [Read the Docs](https://readthedocs.org/), [MkDocs](https://www.mkdocs.org/), [Docusaurus](https://docusaurus.io/), [Docz](https://www.docz.site/) and [Sphinx](https://www.sphinx-doc.org/) allow you to create beautiful documentation from Markdown files.
|
||||||
|
|
||||||
|
### E-books
|
||||||
|
|
||||||
|
You can use Markdown to write and format e-books. Tools like [Pandoc](https://pandoc.org/), [Calibre](https://calibre-ebook.com/), and [Leanpub](https://leanpub.com/) can convert your Markdown files into various e-book formats, such as EPUB and MOBI.
|
||||||
|
|
||||||
|
### Presentations
|
||||||
|
|
||||||
|
Believe it or not, you can even create presentations using Markdown. Tools like [reveal.js](https://revealjs.com/), [Marp](https://marp.app/), [Remark](https://remarkjs.com/), and [GitPitch](https://gitpitch.com/) allow you to create slideshows using Markdown syntax.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
|
||||||
|
Markdown is a powerful and versatile language that can help you create beautiful and functional content quickly and easily. Whether you're a writer, developer, or content creator, learning Markdown is a valuable skill that can save you time and effort.
|
||||||
|
|
||||||
|
In this article, we've covered the basics of Markdown syntax, as well as some advanced techniques and tools. We've also explored some of the many use cases for Markdown, from blogging and documentation to e-books and presentations.
|
||||||
|
|
||||||
|
If you're new to Markdown, don't be intimidated by the syntax. Start with the basics and gradually work your way up to more advanced techniques. With practice and patience, you'll soon be a Markdown master!
|
||||||
|
|
||||||
|
## Additional Resources
|
||||||
|
|
||||||
|
If you want to learn more about Markdown, here are some additional resources to check out:
|
||||||
|
|
||||||
|
- [Markdown Guide](https://www.markdownguide.org/) - A comprehensive guide to Markdown syntax and best practices
|
||||||
|
- [CommonMark Spec](https://spec.commonmark.org/) - A standardized specification for Markdown
|
||||||
|
- [GitHub Markdown Guide](https://guides.github.com/features/mastering-markdown/) - A guide to using Markdown on GitHub
|
||||||
|
- [Markdown Cheatsheet](https://www.markdownguide.org/cheat-sheet/) - A quick reference guide to Markdown syntax
|
||||||
|
- [Markdown Tutorial](https://www.markdowntutorial.com/) - An interactive tutorial for learning Markdown
|
||||||
|
- [Awesome Markdown](https://github.com/mundimark/awesome-markdown) - A curated list of Markdown tools, libraries, and resources
|
||||||
|
|
||||||
|
With these resources and the knowledge you've gained from this article, you'll be well on your way to mastering Markdown and creating amazing content. Happy writing!
|
||||||
|
|||||||
@ -33,7 +33,8 @@ const { title, description, lang = 'en', noindex, nofollow } = Astro.props as Pr
|
|||||||
</head>
|
</head>
|
||||||
<body class="flex min-h-screen flex-col dark:bg-secondary">
|
<body class="flex min-h-screen flex-col dark:bg-secondary">
|
||||||
<Header />
|
<Header />
|
||||||
<main class="flex-grow">
|
<main class="flex-grow pb-20 sm:pb-0 sm:pl-16 md:pl-0">
|
||||||
|
<!-- Added padding-left for sm screens -->
|
||||||
<slot />
|
<slot />
|
||||||
</main>
|
</main>
|
||||||
<Footer />
|
<Footer />
|
||||||
|
|||||||
12
src/pages/404.astro
Normal file
12
src/pages/404.astro
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
import BaseLayout from '@/layouts/BaseLayout.astro';
|
||||||
|
---
|
||||||
|
|
||||||
|
<BaseLayout title="Astro Deploy 404" description="404: Page not found.">
|
||||||
|
<header class="mx-auto px-4 pb-20 pt-28 sm:px-6 lg:px-8">
|
||||||
|
<h1 class="text-center text-zinc-900 dark:text-zinc-200">404: Page Not Found</h1>
|
||||||
|
<p class="mx-auto mt-6 max-w-3xl text-center text-lg text-zinc-900/70 dark:text-zinc-400">
|
||||||
|
The page you are looking for does not exist. Please check the URL or return to the home page.
|
||||||
|
</p>
|
||||||
|
</header>
|
||||||
|
</BaseLayout>
|
||||||
@ -110,14 +110,11 @@ const {
|
|||||||
{author.url ? (
|
{author.url ? (
|
||||||
<a
|
<a
|
||||||
href={author.url}
|
href={author.url}
|
||||||
class="font-medium text-primary-600 underline
|
class="font-medium text-primary-600 underline hover:text-primary-500 dark:text-primary-400 dark:hover:text-primary-300">
|
||||||
hover:text-primary-500 dark:text-primary-400 dark:hover:text-primary-300">
|
|
||||||
{author.name}
|
{author.name}
|
||||||
</a>
|
</a>
|
||||||
) : (
|
) : (
|
||||||
<span
|
<span class="font-medium text-primary-600 dark:text-primary-400">
|
||||||
class="font-medium text-primary-600
|
|
||||||
dark:text-primary-400 ">
|
|
||||||
{author.name}
|
{author.name}
|
||||||
</span>
|
</span>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -21,6 +21,11 @@ interface Props {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { entry } = Astro.props as Props;
|
const { entry } = Astro.props as Props;
|
||||||
|
|
||||||
|
if (!entry) {
|
||||||
|
return Astro.redirect('/404');
|
||||||
|
}
|
||||||
|
|
||||||
const { Content } = await entry.render();
|
const { Content } = await entry.render();
|
||||||
const components = { table: Table };
|
const components = { table: Table };
|
||||||
const {
|
const {
|
||||||
|
|||||||
@ -4,11 +4,24 @@ export default {
|
|||||||
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
|
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
|
||||||
prefix: '',
|
prefix: '',
|
||||||
theme: {
|
theme: {
|
||||||
|
screens: {
|
||||||
|
xs: { max: '600px' },
|
||||||
|
sm: '600px',
|
||||||
|
md: '840px',
|
||||||
|
lg: '1200px',
|
||||||
|
xl: '1600px',
|
||||||
|
|
||||||
|
'h-xs': { raw: '(max-height: 600px)' },
|
||||||
|
'h-sm': { raw: '(min-height: 600px)' },
|
||||||
|
'h-md': { raw: '(min-height: 840px)' },
|
||||||
|
'h-lg': { raw: '(min-height: 1200px)' },
|
||||||
|
'h-xl': { raw: '(min-height: 1600px)' },
|
||||||
|
},
|
||||||
container: {
|
container: {
|
||||||
center: true,
|
center: true,
|
||||||
padding: '2rem',
|
padding: '2rem',
|
||||||
screens: {
|
screens: {
|
||||||
'2xl': '1400px',
|
xl: '1600px',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
extend: {
|
extend: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user