# Madblog 1.5.0 is out!



Shipping in [Madblog](https://madblog.dev) [v1.5.0](https://git.platypush.tech/blacklight/madblog/src/branch/main/CHANGELOG.md#1-5-0):

## Custom CSS/JS

Drop `.css` files into `<content_dir>/css` and `.js` files into
`<content_dir>/js` — they're automatically added to every page,
stylesheets after the built-in ones so they win the cascade, no restart
needed. Works out of the box in Docker too.

```
data
├── css
│   ├── custom.css
│   └── theme.css
├── img
│   ├── favicon.ico
│   └── icon.png
├── js
│   ├── custom.js
├── markdown
│   ├── ABOUT.md
│   └── hello-world.md
└── replies
    └── 2025-01-01T00:00:00.md
```

## YAML front matter

Metadata can now be declared as a YAML front matter block at the top of
your #Markdown files:

```
---
title: My post
published: 2025-01-01
---
```

The legacy `[//]: # (key: value)` comment syntax still works.

## New `local` visibility

Posts can now be published on your server without federating to the
Fediverse: `visibility: local` (or `default_visibility: local` in the
config).

```
---
title: My non-federated blog post
visibility: local
---
```

Local articles are fully rendered on your blog — index, RSS/Atom
feeds, reactions — and local replies get `unlisted` treatment, but no
ActivityPub activities or outgoing Webmentions are ever sent.

## Better accessibility for images

- Banner images: `image_alt` for the accessibility alt text,
  while the new `image_caption` renders the visible `<figcaption>`
  (reused as alt text when `image_alt` is missing).
- Inline images in federated posts are no longer replaced by link
  placeholders — they render inline where supported (Yonder, Friendica...) and
  are still delivered as attachments elsewhere.

```
---
title: My post with an image
image: /images/image.jpg
image_alt: Image description for screen readers
image_caption: Image caption
---
```

#madblog #ActivityPub #indieweb #blogging
