mkshp-dev287 downloadsCreate interactive image galleries in your notes using obs-gallery code blocks. Supports multiple view types (thumbnail, carousel, grid) and both local vault images and external URLs.
Create interactive image galleries in your Obsidian notes using simple code blocks. Display images from your vault folders with thumbnail grids and click-to-expand modal viewing.
obs-gallery code blocksmain.js, manifest.json, styles.css)YourVault/.obsidian/plugins/gallery-view/Create galleries in your notes using code blocks:
```obs-gallery
path: Images/Screenshots
view: thumbnail
```
Display all images from a folder:
```obs-gallery
path: Photos/Vacation2024
view: thumbnail
```
![]()
Horizontal scrolling carousel with controls:
```obs-gallery
path: Images/Screenshots
view: carousel
```

Pinterest-style layout with variable heights:
```obs-gallery
path: Projects/WebDev
view: grid
recursive: true
```

Include remote images (requires enabling in settings):
```obs-gallery
urls:
- https://picsum.photos/800/600?random=1
- https://picsum.photos/800/600?random=2
- https://picsum.photos/800/600?random=3
- https://picsum.photos/800/600?random=4
view: grid
```

| Parameter | Description | Default |
|---|---|---|
path |
Folder or file path (required when not using urls) |
— |
view |
Display style: thumbnail, carousel, grid |
thumbnail |
urls |
Optional list of remote image URLs (opt-in) | — |
recursive |
Include images in subfolders | false |
You can reference externally hosted images using the urls: YAML list in your obs-gallery code block. Remote images are disabled by default to preserve privacy. The plugin exposes these related settings in the Gallery Plugin settings panel:
Allow remote images (boolean) — enable loading images from external URLs.Remote load timeout (ms) — how long the plugin waits for remote images before giving up.Validate remote content type (optional) — when enabled the plugin will perform a lightweight HEAD request to verify the remote resource's Content-Type header looks like an image (e.g., image/jpeg) before attempting to load it. This can reduce accidental attempts to load non-image resources, at the cost of one extra small network request per URL.Example urls: usage:
```obs-gallery
view: thumbnail
urls:
- https://example.com/photos/cover.jpg
- https://cdn.example.org/gallery/img123.webp
```
Notes:
.jpg, .jpeg).png).gif).webp)# Install dependencies
npm install
# Development build with watching
npm run dev
# Production build
npm run build
# Simple build (MVP version)
npm run build-mvp
obsidian-gallery-plugin/
├── main.ts # Main plugin code
├── main.js # Compiled plugin
├── manifest.json # Plugin metadata
├── styles.css # Gallery styling
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
└── src/ # Advanced architecture (future)
├── models/ # Data models
├── views/ # View components
├── services/ # Core services
└── processors/ # Content processing
Images not images if capitalized)styles.css is properly loadedImages/Photos not /Images/Photos/Contributions are welcome! Please feel free to:
npm install to install dependenciesnpm run dev for development with auto-rebuildingMIT License — see LICENSE for details.