diff --git a/src/Content/blogs/0000-image-viewer/post.tsx b/src/Content/blogs/0000-image-viewer/post.tsx index 27f3ff5..bd673c3 100644 --- a/src/Content/blogs/0000-image-viewer/post.tsx +++ b/src/Content/blogs/0000-image-viewer/post.tsx @@ -1,4 +1,4 @@ -import { post } from "virtual:data"; +import post from "virtual:post"; post({ title: "Making an image viewer", diff --git a/src/Content/photos/0000-tass/info.tsx b/src/Content/photos/0000-tass/info.tsx index 1f8b964..934784d 100644 --- a/src/Content/photos/0000-tass/info.tsx +++ b/src/Content/photos/0000-tass/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "TASS", diff --git a/src/Content/photos/0001-city-under-a-hill/info.tsx b/src/Content/photos/0001-city-under-a-hill/info.tsx index 88e6427..b0f56c7 100644 --- a/src/Content/photos/0001-city-under-a-hill/info.tsx +++ b/src/Content/photos/0001-city-under-a-hill/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "City Under a Hill", diff --git a/src/Content/photos/0002-capitol/info.tsx b/src/Content/photos/0002-capitol/info.tsx index dfff464..52926ce 100644 --- a/src/Content/photos/0002-capitol/info.tsx +++ b/src/Content/photos/0002-capitol/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Modern Capitol", diff --git a/src/Content/photos/0003-purpura-nubes/info.tsx b/src/Content/photos/0003-purpura-nubes/info.tsx index 5265a1e..6d5010b 100644 --- a/src/Content/photos/0003-purpura-nubes/info.tsx +++ b/src/Content/photos/0003-purpura-nubes/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Purpura Nubes", diff --git a/src/Content/photos/0004-rosea-nubes/info.tsx b/src/Content/photos/0004-rosea-nubes/info.tsx index a584888..b103656 100644 --- a/src/Content/photos/0004-rosea-nubes/info.tsx +++ b/src/Content/photos/0004-rosea-nubes/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Rosea Nubes", diff --git a/src/Content/photos/0005-infrablue/info.tsx b/src/Content/photos/0005-infrablue/info.tsx index 637b59a..4f1d838 100644 --- a/src/Content/photos/0005-infrablue/info.tsx +++ b/src/Content/photos/0005-infrablue/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Infrablue", diff --git a/src/Content/photos/0006-ruddy-shelduck/info.tsx b/src/Content/photos/0006-ruddy-shelduck/info.tsx index 468ba6c..8e50c6a 100644 --- a/src/Content/photos/0006-ruddy-shelduck/info.tsx +++ b/src/Content/photos/0006-ruddy-shelduck/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Tadorna ferruginea", diff --git a/src/Content/photos/0007-sternwarte/info.tsx b/src/Content/photos/0007-sternwarte/info.tsx index c8d919f..4093db0 100644 --- a/src/Content/photos/0007-sternwarte/info.tsx +++ b/src/Content/photos/0007-sternwarte/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Die Sternwarte", diff --git a/src/Content/photos/0008-a7c/info.tsx b/src/Content/photos/0008-a7c/info.tsx index 786387b..908f19b 100644 --- a/src/Content/photos/0008-a7c/info.tsx +++ b/src/Content/photos/0008-a7c/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "α7c", diff --git a/src/Content/photos/0009-pathways/info.tsx b/src/Content/photos/0009-pathways/info.tsx index 8b4693b..79225b5 100644 --- a/src/Content/photos/0009-pathways/info.tsx +++ b/src/Content/photos/0009-pathways/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Pathways", diff --git a/src/Content/photos/0010-farmlands/info.tsx b/src/Content/photos/0010-farmlands/info.tsx index ef32995..c2f72b6 100644 --- a/src/Content/photos/0010-farmlands/info.tsx +++ b/src/Content/photos/0010-farmlands/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Farmlands", diff --git a/src/Content/photos/0011-symbols/info.tsx b/src/Content/photos/0011-symbols/info.tsx index bf36e03..93857eb 100644 --- a/src/Content/photos/0011-symbols/info.tsx +++ b/src/Content/photos/0011-symbols/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Symbols", diff --git a/src/Content/photos/0012-stigma/info.tsx b/src/Content/photos/0012-stigma/info.tsx index 4bada56..0afb232 100644 --- a/src/Content/photos/0012-stigma/info.tsx +++ b/src/Content/photos/0012-stigma/info.tsx @@ -1,8 +1,8 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Stigma", camera: "Sony α7c", lens: "Sony 90mm f/2.8 macro G OSS", - tags: ["digital", "macro", "nature", "flowers"], + tags: ["digital", "macro", "nature"], }); diff --git a/src/Content/photos/0013-cross/info.tsx b/src/Content/photos/0013-cross/info.tsx index 6bcfd46..e16e440 100644 --- a/src/Content/photos/0013-cross/info.tsx +++ b/src/Content/photos/0013-cross/info.tsx @@ -1,8 +1,8 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "†", camera: "Sony α3000 IR modified", lens: "Sony FE 28-70mm F3.5-5.6 OSS", - tags: ["digital", "nature", "landscape", "infrared"], + tags: ["digital", "infrared", "nature", "landscape"], }); diff --git a/src/Content/photos/0014-electric-trinity/info.tsx b/src/Content/photos/0014-electric-trinity/info.tsx index a64c271..60b148b 100644 --- a/src/Content/photos/0014-electric-trinity/info.tsx +++ b/src/Content/photos/0014-electric-trinity/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Electric Trinity", diff --git a/src/Content/photos/0015-other-side/info.tsx b/src/Content/photos/0015-other-side/info.tsx index 0f4306f..649396c 100644 --- a/src/Content/photos/0015-other-side/info.tsx +++ b/src/Content/photos/0015-other-side/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Other side", diff --git a/src/Content/photos/0016-singer-company/info.tsx b/src/Content/photos/0016-singer-company/info.tsx index 88c3d69..c70cd08 100644 --- a/src/Content/photos/0016-singer-company/info.tsx +++ b/src/Content/photos/0016-singer-company/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Компания Зингеръ", diff --git a/src/Content/photos/0017-sunburn/info.tsx b/src/Content/photos/0017-sunburn/info.tsx index 6cde5a3..3135652 100644 --- a/src/Content/photos/0017-sunburn/info.tsx +++ b/src/Content/photos/0017-sunburn/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Sunburn", diff --git a/src/Content/photos/0018-architecture-00/info.tsx b/src/Content/photos/0018-architecture-00/info.tsx index 25ab5be..d1b46b2 100644 --- a/src/Content/photos/0018-architecture-00/info.tsx +++ b/src/Content/photos/0018-architecture-00/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Architecture 0", diff --git a/src/Content/photos/0019-emperor-claudius/info.tsx b/src/Content/photos/0019-emperor-claudius/info.tsx index c1e6942..b7947ba 100644 --- a/src/Content/photos/0019-emperor-claudius/info.tsx +++ b/src/Content/photos/0019-emperor-claudius/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Emperor Claudius", diff --git a/src/Content/photos/0020-architecture-01/info.tsx b/src/Content/photos/0020-architecture-01/info.tsx index bc4d7fd..1b41b81 100644 --- a/src/Content/photos/0020-architecture-01/info.tsx +++ b/src/Content/photos/0020-architecture-01/info.tsx @@ -1,4 +1,4 @@ -import { photo } from "virtual:data"; +import photo from "virtual:photo"; photo({ name: "Architecture 1", diff --git a/src/virtual.d.ts b/src/Virtual/data.d.ts similarity index 63% rename from src/virtual.d.ts rename to src/Virtual/data.d.ts index 627a410..c992b2a 100644 --- a/src/virtual.d.ts +++ b/src/Virtual/data.d.ts @@ -25,26 +25,9 @@ declare module "virtual:data" { cut: JSX.Element; } - function photo(description: { - name: string; - description?: JSX.Element; - camera?: string; - lens?: string; - film?: string; - tags: string[]; - }); - - function post(description: { - title: string; - date_modified: Date; - date_published: Date; - status: "draft" | "published" | "hidden"; - cut: JSX.Element; - }); - export type { ImageInfo, PostInfo }; - export { photo, post }; + export { post }; export const photos: ImageInfo[]; export const posts: PostInfo[]; diff --git a/src/Virtual/photo.d.ts b/src/Virtual/photo.d.ts new file mode 100644 index 0000000..35cf86e --- /dev/null +++ b/src/Virtual/photo.d.ts @@ -0,0 +1,27 @@ +import { JSX } from "solid-js"; + +declare module "virtual:photo" { + type Medium = "digital" | "film" | "infrared"; + type Location = "moscow" | "saint petersburg" | "veliky novgorod"; + type Genre = + | "architecture" + | "landscape" + | "wildlife" + | "weather" + | "macro" + | "product" + | "nature"; + + type Tag = Medium | Location | Genre; + + function photo(description: { + name: string; + description?: JSX.Element; + camera?: string; + lens?: string; + film?: string; + tags: Tag[]; + }); + + export default photo; +} diff --git a/src/Virtual/post.d.ts b/src/Virtual/post.d.ts new file mode 100644 index 0000000..ef0df1c --- /dev/null +++ b/src/Virtual/post.d.ts @@ -0,0 +1,13 @@ +import { JSX } from "solid-js"; + +module "virtual:post" { + function post(description: { + title: string; + date_modified: Date; + date_published: Date; + status: "draft" | "published" | "hidden"; + cut: JSX.Element; + }); + + export default post; +} diff --git a/tsconfig.json b/tsconfig.json index 498e7d6..6277f1b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,7 +9,11 @@ "jsx": "preserve", "jsxImportSource": "solid-js", "types": ["vite-plugin-solid-svg/types-component-solid", "vite/client"], - "paths": { "virtual:data": ["./src/virtual.d.ts"] }, + "paths": { + "virtual:data": ["./src/Virtual/data.d.ts"], + "virtual:photo": ["./src/Virtual/photo.d.ts"], + "virtual:post": ["./src/Virtual/post.d.ts"] + }, "noEmit": true, "skipLibCheck": true, "isolatedModules": true,