Image gallery in obsidian is not natively supported. This is normally achieved through either a plug-in or CSS styling.
However, plugin support for obsidian publish is limited, meaning the only way forward is to implement CSS styling to support image gallery. There are posts as long as 4 years ago discussing this.
Internet forums suggest [ITS theme](https://publish.obsidian.md/slrvb-docs/ITS+Theme/Alternate+Color+Schemes) provide image gallery support out of the box, some experimentation using the documented ''Card' and ''Image Grid' look promising.
Over the course of discovering CSS templates, also came across this brilliant video use [CSS snippets for Obsidian](https://www.youtube.com/watch?v=dH98dTEemGI).
<iframe width="560" height="315" src="https://www.Youtube.Com/embed/dH98dTEemGI?Si=n1jupXnasnDzhJTH" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
This website is style using ITS theme, as images will likely be a commonly used feature.
```
this style create a link at the top of the card:
```
> [!cards]
> [Llink to google](http://google.com)
> 
```
This style create a link at the top of the card:
```
> [! Cards]
> **[[Create a new note]]**
> 
```
Multi-column cards style, the number in the statement indicates the number of column:
```
> [!cards|4]
> **[[Link]]**
> 
>
> [Llink to google](http://google.com)
> 
>
> **[[Link]]**
> 
>
> **[[Link]]**
> 
```
Grid style for external images:
```
> [! Grid|masonry]
> 
> 
>
> 
> 
```
Here you can insert any images (local) as a grid, this is suitable for internal images that are local. you can reaplce the caption at the bottom fo the images too. thsi is really nice.
```