From 9165cc1efcf7791f78b61b2c51a9de651b1b09aa Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 2 Jul 2021 22:53:16 +0200 Subject: viewer: types normalization - gallery.d.ts GitHub: closes #301 --- viewer/src/@types/gallery.d.ts | 183 +++++++++++++++++++++-------------------- 1 file changed, 92 insertions(+), 91 deletions(-) (limited to 'viewer/src/@types/gallery.d.ts') diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts index e9b80e6..d9e7534 100644 --- a/viewer/src/@types/gallery.d.ts +++ b/viewer/src/@types/gallery.d.ts @@ -17,98 +17,99 @@ -- along with this program. If not, see . */ -declare namespace Gallery { - type ItemSortStr = "title_asc" | "date_asc" | "date_desc"; +import { ItemType } from "./ItemType"; - interface Config { - galleryRoot: string; - galleryIndex?: string; - initialItemSort?: ItemSortStr; - initialTagDisplayLimit?: number; - } +export type ItemSortStr = "title_asc" | "date_asc" | "date_desc"; - interface GalleryProperties { - galleryTitle: string; - tagCategories: RawTag[]; - } - interface Index { - properties: GalleryProperties; - tree: Directory; - } +export interface Config { + galleryRoot: string; + galleryIndex?: string; + initialItemSort?: ItemSortStr; + initialTagDisplayLimit?: number; +} + +export interface Properties { + galleryTitle: string; + tagCategories: RawTag[]; +} +export interface Index { + properties: Properties; + tree: DirectoryItem; +} + +export interface OtherItem extends Item { + properties: OtherProperties; +} +export interface PictureItem extends Item { + properties: PictureProperties; +} +export interface PlainTextItem extends Item { + properties: PlainTextProperties; +} +export interface PDFItem extends Item { + properties: PDFProperties; +} +export interface VideoItem extends Item { + properties: VideoProperties; +} +export interface AudioItem extends Item { + properties: AudioProperties; +} +export interface DirectoryItem extends Item { + properties: DirectoryProperties; +} +export interface Item { + title: string; + datetime: string; + description: string; + tags: RawTag[]; + path: string; + thumbnail?: Thumbnail; + properties: + | OtherProperties + | PictureProperties + | PlainTextProperties + | PDFProperties + | VideoProperties + | AudioProperties + | DirectoryProperties; +} +export interface Resolution { + width: number; + height: number; +} +export interface OtherProperties { + type: ItemType.OTHER; + resource: string; +} +export interface PictureProperties { + type: ItemType.PICTURE; + resource: string; + resolution: Resolution; +} +export interface PlainTextProperties { + type: ItemType.PLAINTEXT; + resource: string; +} +export interface PDFProperties { + type: ItemType.PDF; + resource: string; +} +export interface VideoProperties { + type: ItemType.VIDEO; + resource: string; +} +export interface AudioProperties { + type: ItemType.AUDIO; + resource: string; +} +export interface DirectoryProperties { + type: ItemType.DIRECTORY; + items: Item[]; +} - interface Other extends Item { - properties: OtherProperties; - } - interface Picture extends Item { - properties: PictureProperties; - } - interface PlainText extends Item { - properties: PlainTextProperties; - } - interface PDF extends Item { - properties: PDFProperties; - } - interface Video extends Item { - properties: VideoProperties; - } - interface Audio extends Item { - properties: AudioProperties; - } - interface Directory extends Item { - properties: DirectoryProperties; - } - interface Item { - title: string; - datetime: string; - description: string; - tags: RawTag[]; - path: string; - thumbnail?: Thumbnail; - properties: - | OtherProperties - | PictureProperties - | PlainTextProperties - | PDFProperties - | VideoProperties - | AudioProperties - | DirectoryProperties; - } - interface Resolution { - width: number; - height: number; - } - interface OtherProperties { - type: import("./ItemType").ItemType.OTHER; - resource: string; - } - interface PictureProperties { - type: import("./ItemType").ItemType.PICTURE; - resource: string; - resolution: Resolution; - } - interface PlainTextProperties { - type: import("./ItemType").ItemType.PLAINTEXT; - resource: string; - } - interface PDFProperties { - type: import("./ItemType").ItemType.PDF; - resource: string; - } - interface VideoProperties { - type: import("./ItemType").ItemType.VIDEO; - resource: string; - } - interface AudioProperties { - type: import("./ItemType").ItemType.AUDIO; - resource: string; - } - interface DirectoryProperties { - type: import("./ItemType").ItemType.DIRECTORY; - items: Item[]; - } - interface Thumbnail { - resource: string; - resolution: Resolution; - } - type RawTag = string; +export interface Thumbnail { + resource: string; + resolution: Resolution; } +export type RawTag = string; -- cgit v1.2.3 From 928c501dda0c3580e3cb0389efc16fc1dde16b68 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Sat, 3 Jul 2021 05:06:44 +0200 Subject: viewer: optional user-defined markdown splash screen GitHub: closes #284 --- viewer/src/@types/gallery.d.ts | 2 ++ 1 file changed, 2 insertions(+) (limited to 'viewer/src/@types/gallery.d.ts') diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts index d9e7534..9011f19 100644 --- a/viewer/src/@types/gallery.d.ts +++ b/viewer/src/@types/gallery.d.ts @@ -18,6 +18,7 @@ */ import { ItemType } from "./ItemType"; +import { SplashScreenConfig } from "./splashscreen"; export type ItemSortStr = "title_asc" | "date_asc" | "date_desc"; @@ -26,6 +27,7 @@ export interface Config { galleryIndex?: string; initialItemSort?: ItemSortStr; initialTagDisplayLimit?: number; + splashScreen?: SplashScreenConfig; } export interface Properties { -- cgit v1.2.3 From 2bd63dc7622c0f84383fb76f7e2c4380d3f78495 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Sat, 3 Jul 2021 23:07:09 +0200 Subject: viewer: register markdown item type Extracted from b170f49 (GH PR #304) --- viewer/src/@types/gallery.d.ts | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'viewer/src/@types/gallery.d.ts') diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts index 9011f19..0b4cfc4 100644 --- a/viewer/src/@types/gallery.d.ts +++ b/viewer/src/@types/gallery.d.ts @@ -48,6 +48,9 @@ export interface PictureItem extends Item { export interface PlainTextItem extends Item { properties: PlainTextProperties; } +export interface MarkdownItem extends Item { + properties: MarkdownProperties; +} export interface PDFItem extends Item { properties: PDFProperties; } @@ -71,6 +74,7 @@ export interface Item { | OtherProperties | PictureProperties | PlainTextProperties + | MarkdownProperties | PDFProperties | VideoProperties | AudioProperties @@ -93,6 +97,10 @@ export interface PlainTextProperties { type: ItemType.PLAINTEXT; resource: string; } +export interface MarkdownProperties { + type: ItemType.MARKDOWN; + resource: string; +} export interface PDFProperties { type: ItemType.PDF; resource: string; -- cgit v1.2.3 From 00510820a2794efcadbc83f7f8b54318fe198ecb Mon Sep 17 00:00:00 2001 From: Zéro~Informatique Date: Tue, 26 Jul 2022 08:44:34 +0200 Subject: viewer: migrate to vue 3, general refactoring and cleanup Non-exhaustive list of fixes and improvements done at the same time: - html default background to grey (avoids white flash during init) - unified links behavior - added more theme variables - removed the flex-expand transition (it wasn't working) and replaced it with a slide - fixed LdLoading not centered on the content - title on removable tags - fixed an issue with encoded URI from vue-router - unified Item resource URLs - removed the iframe for PlainTextViewer (it wasn't working properly) and replaced it with a pre - fixed clear and search buttons tabindex - fixed the information panel bumping up during the fade animation of tag's dropdown - fixed some focus outlines not appearing correctly - moved CSS variables to the :root context - Code cleaning GitHub: closes #217 GitHub: closes #300 GitHub: closes #297 GitHub: closes #105 GitHub: closes #267 GitHub: closes #275 GitHub: closes #228 GitHub: closes #215 GitHub: closes #112 --- viewer/src/@types/gallery.d.ts | 125 ----------------------------------------- 1 file changed, 125 deletions(-) delete mode 100644 viewer/src/@types/gallery.d.ts (limited to 'viewer/src/@types/gallery.d.ts') diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts deleted file mode 100644 index 0b4cfc4..0000000 --- a/viewer/src/@types/gallery.d.ts +++ /dev/null @@ -1,125 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2020 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -import { ItemType } from "./ItemType"; -import { SplashScreenConfig } from "./splashscreen"; - -export type ItemSortStr = "title_asc" | "date_asc" | "date_desc"; - -export interface Config { - galleryRoot: string; - galleryIndex?: string; - initialItemSort?: ItemSortStr; - initialTagDisplayLimit?: number; - splashScreen?: SplashScreenConfig; -} - -export interface Properties { - galleryTitle: string; - tagCategories: RawTag[]; -} -export interface Index { - properties: Properties; - tree: DirectoryItem; -} - -export interface OtherItem extends Item { - properties: OtherProperties; -} -export interface PictureItem extends Item { - properties: PictureProperties; -} -export interface PlainTextItem extends Item { - properties: PlainTextProperties; -} -export interface MarkdownItem extends Item { - properties: MarkdownProperties; -} -export interface PDFItem extends Item { - properties: PDFProperties; -} -export interface VideoItem extends Item { - properties: VideoProperties; -} -export interface AudioItem extends Item { - properties: AudioProperties; -} -export interface DirectoryItem extends Item { - properties: DirectoryProperties; -} -export interface Item { - title: string; - datetime: string; - description: string; - tags: RawTag[]; - path: string; - thumbnail?: Thumbnail; - properties: - | OtherProperties - | PictureProperties - | PlainTextProperties - | MarkdownProperties - | PDFProperties - | VideoProperties - | AudioProperties - | DirectoryProperties; -} -export interface Resolution { - width: number; - height: number; -} -export interface OtherProperties { - type: ItemType.OTHER; - resource: string; -} -export interface PictureProperties { - type: ItemType.PICTURE; - resource: string; - resolution: Resolution; -} -export interface PlainTextProperties { - type: ItemType.PLAINTEXT; - resource: string; -} -export interface MarkdownProperties { - type: ItemType.MARKDOWN; - resource: string; -} -export interface PDFProperties { - type: ItemType.PDF; - resource: string; -} -export interface VideoProperties { - type: ItemType.VIDEO; - resource: string; -} -export interface AudioProperties { - type: ItemType.AUDIO; - resource: string; -} -export interface DirectoryProperties { - type: ItemType.DIRECTORY; - items: Item[]; -} - -export interface Thumbnail { - resource: string; - resolution: Resolution; -} -export type RawTag = string; -- cgit v1.2.3