├── .yarnrc.yml
├── gallery
├── src
│ ├── lib
│ │ ├── browser.ts
│ │ └── index.ts
│ ├── modules
│ │ ├── clean
│ │ │ ├── types
│ │ │ │ └── index.ts
│ │ │ └── index.ts
│ │ ├── thumbnails
│ │ │ ├── types
│ │ │ │ └── index.ts
│ │ │ └── utils
│ │ │ │ └── index.ts
│ │ ├── init
│ │ │ ├── types
│ │ │ │ ├── node-ffprobe.d.ts
│ │ │ │ └── index.ts
│ │ │ └── utils
│ │ │ │ └── index.ts
│ │ ├── telemetry
│ │ │ ├── clients
│ │ │ │ ├── console.ts
│ │ │ │ └── api.ts
│ │ │ ├── types
│ │ │ │ └── index.ts
│ │ │ ├── index.ts
│ │ │ └── service
│ │ │ │ └── index.ts
│ │ └── build
│ │ │ ├── types
│ │ │ └── index.ts
│ │ │ └── utils
│ │ │ └── index.ts
│ ├── types
│ │ └── index.ts
│ ├── config
│ │ └── index.ts
│ ├── utils
│ │ ├── blurhash.ts
│ │ ├── descriptions.ts
│ │ ├── index.ts
│ │ ├── gallery.ts
│ │ ├── video.ts
│ │ ├── image.ts
│ │ └── version.ts
│ └── index.ts
├── .prettierignore
├── tests
│ ├── fixtures
│ │ ├── multi
│ │ │ ├── img_1.jpg
│ │ │ ├── img_2.jpg
│ │ │ ├── img_3.jpg
│ │ │ ├── first
│ │ │ │ ├── img_4.jpg
│ │ │ │ └── img_5.jpg
│ │ │ └── second
│ │ │ │ ├── img_6.jpg
│ │ │ │ └── img_7.jpg
│ │ ├── single
│ │ │ ├── img_1.jpg
│ │ │ ├── img_2.jpg
│ │ │ └── img_3.jpg
│ │ └── images
│ │ │ ├── test_image_xptitle.jpg
│ │ │ ├── test_image_xpcomment.jpg
│ │ │ ├── test_image_description.avif
│ │ │ ├── test_image_description.jpg
│ │ │ ├── test_image_description.png
│ │ │ ├── test_image_description.tif
│ │ │ ├── test_image_description.webp
│ │ │ ├── test_image_user_comment.jpg
│ │ │ ├── test_image_caption_abstract.jpg
│ │ │ ├── test_image_image_description.jpg
│ │ │ ├── test_image_extended_description.jpg
│ │ │ ├── test_image_exif_orientation_horizontal.jpg
│ │ │ └── test_image_exif_orientation_vertical.jpg
│ ├── analytics.test.ts
│ ├── images.test.ts
│ └── thumbnails.test.ts
├── .prettierrc.mjs
├── tsconfig.json
├── tsup.config.ts
├── jest.config.cjs
├── package.json
├── eslint.config.mjs
└── README.md
├── common
├── .prettierignore
├── tsconfig.json
├── tsup.config.ts
├── .prettierrc.mjs
├── package.json
├── eslint.config.mjs
└── src
│ └── gallery.ts
├── docs
├── images
│ └── simple-photo-gallery-demo.jpg
├── README.md
├── commands
│ ├── clean.md
│ ├── README.md
│ ├── thumbnails.md
│ ├── build.md
│ └── init.md
├── deployment.md
└── embedding.md
├── themes
└── modern
│ ├── .vscode
│ ├── extensions.json
│ └── launch.json
│ ├── src
│ ├── pages
│ │ └── index.astro
│ ├── features
│ │ └── themes
│ │ │ └── base-theme
│ │ │ ├── components
│ │ │ ├── container
│ │ │ │ └── Container.astro
│ │ │ ├── footer
│ │ │ │ └── Footer.astro
│ │ │ ├── gallery-section
│ │ │ │ ├── GallerySectionHeader.astro
│ │ │ │ ├── GallerySection.astro
│ │ │ │ └── GallerySectionItem.astro
│ │ │ ├── hero
│ │ │ │ ├── HeroScrollToGalleryBtn.astro
│ │ │ │ └── Hero.astro
│ │ │ ├── cta
│ │ │ │ └── CtaBanner.astro
│ │ │ ├── sub-galleries
│ │ │ │ └── SubGalleries.astro
│ │ │ └── lightbox
│ │ │ │ └── PhotoSwipe.astro
│ │ │ ├── utils
│ │ │ ├── index.ts
│ │ │ └── queryParams.ts
│ │ │ ├── pages
│ │ │ └── index.astro
│ │ │ └── layouts
│ │ │ ├── MainLayout.astro
│ │ │ └── MainHead.astro
│ └── lib
│ │ └── markdown.ts
│ ├── example
│ ├── japan
│ │ ├── ai-generated-nature-177.webp
│ │ ├── ai-generated-nature-179.webp
│ │ ├── ai-generated-nature-185.webp
│ │ ├── ai-generated-nature-192.webp
│ │ ├── ai-generated-nature-195.webp
│ │ ├── ai-generated-nature-196.webp
│ │ └── ai-generated-nature-199.webp
│ └── usa
│ │ ├── new-york
│ │ ├── ai-generated-nature-147.webp
│ │ ├── ai-generated-nature-148.webp
│ │ ├── ai-generated-nature-156.webp
│ │ ├── ai-generated-nature-159.webp
│ │ ├── ai-generated-nature-177.webp
│ │ ├── ai-generated-nature-179.webp
│ │ ├── ai-generated-nature-185.webp
│ │ ├── ai-generated-nature-192.webp
│ │ ├── ai-generated-nature-195.webp
│ │ ├── ai-generated-nature-196.webp
│ │ └── ai-generated-nature-199.webp
│ │ └── san-francisco
│ │ ├── ai-generated-nature-160.webp
│ │ ├── ai-generated-nature-167.webp
│ │ ├── ai-generated-nature-170.webp
│ │ ├── ai-generated-nature-172.webp
│ │ ├── ai-generated-nature-177.webp
│ │ ├── ai-generated-nature-179.webp
│ │ ├── ai-generated-nature-185.webp
│ │ ├── ai-generated-nature-192.webp
│ │ ├── ai-generated-nature-195.webp
│ │ ├── ai-generated-nature-196.webp
│ │ ├── ai-generated-nature-199.webp
│ │ └── twin-peaks
│ │ ├── ai-generated-nature-167.webp
│ │ ├── ai-generated-nature-170.webp
│ │ ├── ai-generated-nature-172.webp
│ │ ├── ai-generated-nature-177.webp
│ │ ├── ai-generated-nature-179.webp
│ │ ├── ai-generated-nature-185.webp
│ │ └── ai-generated-nature-192.webp
│ ├── .prettierignore
│ ├── README.md
│ ├── tsconfig.json
│ ├── .prettierrc.mjs
│ ├── package.json
│ ├── astro.config.ts
│ ├── gallery.json
│ └── eslint.config.mjs
├── tsconfig.json
├── package.json
├── LICENSE
├── .github
└── workflows
│ └── check-cli.yml
├── .gitignore
└── README.md
/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | nodeLinker: node-modules
2 |
3 | yarnPath: .yarn/releases/yarn-4.9.3.cjs
4 |
--------------------------------------------------------------------------------
/gallery/src/lib/browser.ts:
--------------------------------------------------------------------------------
1 | export { getImageDescription } from '../utils/descriptions';
2 |
--------------------------------------------------------------------------------
/common/.prettierignore:
--------------------------------------------------------------------------------
1 | **/dist/*
2 | **/node_modules/*
3 | **/coverage/*
4 | **/temp/*
5 | **/dist/*
6 |
--------------------------------------------------------------------------------
/gallery/.prettierignore:
--------------------------------------------------------------------------------
1 | **/dist/*
2 | **/node_modules/*
3 | **/coverage/*
4 | **/temp/*
5 | **/dist/*
6 |
--------------------------------------------------------------------------------
/gallery/tests/fixtures/multi/img_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/multi/img_1.jpg
--------------------------------------------------------------------------------
/gallery/tests/fixtures/multi/img_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/multi/img_2.jpg
--------------------------------------------------------------------------------
/gallery/tests/fixtures/multi/img_3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/multi/img_3.jpg
--------------------------------------------------------------------------------
/gallery/tests/fixtures/single/img_1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/single/img_1.jpg
--------------------------------------------------------------------------------
/gallery/tests/fixtures/single/img_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/single/img_2.jpg
--------------------------------------------------------------------------------
/gallery/tests/fixtures/single/img_3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/single/img_3.jpg
--------------------------------------------------------------------------------
/docs/images/simple-photo-gallery-demo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/docs/images/simple-photo-gallery-demo.jpg
--------------------------------------------------------------------------------
/themes/modern/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["astro-build.astro-vscode"],
3 | "unwantedRecommendations": []
4 | }
5 |
--------------------------------------------------------------------------------
/gallery/tests/fixtures/multi/first/img_4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/multi/first/img_4.jpg
--------------------------------------------------------------------------------
/gallery/tests/fixtures/multi/first/img_5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/multi/first/img_5.jpg
--------------------------------------------------------------------------------
/gallery/tests/fixtures/multi/second/img_6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/multi/second/img_6.jpg
--------------------------------------------------------------------------------
/gallery/tests/fixtures/multi/second/img_7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SimplePhotoGallery/core/HEAD/gallery/tests/fixtures/multi/second/img_7.jpg
--------------------------------------------------------------------------------
/themes/modern/src/pages/index.astro:
--------------------------------------------------------------------------------
1 | ---
2 | import BaseTheme from '@/features/themes/base-theme/pages/index.astro';
3 | ---
4 |
5 |
' + text + '
\n'; 9 | }; 10 | 11 | // Disable images 12 | renderer.image = () => ''; 13 | 14 | // Disable HTML 15 | renderer.html = () => ''; 16 | 17 | // Disable tables 18 | renderer.table = () => ''; 19 | renderer.tablerow = () => ''; 20 | renderer.tablecell = () => ''; 21 | 22 | // Configure marked options 23 | marked.use({ 24 | renderer: renderer, 25 | breaks: true, 26 | gfm: true, 27 | }); 28 | 29 | /** 30 | * Renders markdown with limited formatting options. 31 | * Supported: paragraphs, bold, italic, lists, code blocks, blockquotes, links 32 | * Disabled: headings (rendered as paragraphs), images, HTML, tables 33 | */ 34 | export async function renderMarkdown(markdown: string): PromiseShare your story
10 |12 | Turn your photos into a fast, beautiful web gallery in minutes and share it with your friends. 13 |
14 |
12 |
13 |
12 |
13 |