Files
moreminimore-redesign/packages/core
Filip Ilić 9d10d2791f fix(admin): use collection urlPattern for preview button fallback URL (#181)
* fix(admin): use collection urlPattern for preview button fallback URL

The preview button hardcoded fallback URLs as /${collection}/${slug},
ignoring the collection's urlPattern setting. Collections with custom
URL patterns (e.g. urlPattern: "/biljke/{slug}" on a "biljka" collection)
would open a 404 instead of the correct page.

Thread urlPattern through the manifest and use it in the ContentEditor
preview fallback.

Fixes #167

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Signed-off-by: Filip Ilic <ilic.filip@gmail.com>

* chore: add changeset for preview URL pattern fix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Signed-off-by: Filip Ilic <ilic.filip@gmail.com>

---------

Signed-off-by: Filip Ilic <ilic.filip@gmail.com>
Co-authored-by: Matt Kane <mkane@cloudflare.com>
2026-04-04 19:00:28 +00:00
..
2026-04-01 15:02:06 +00:00
2026-04-01 10:58:32 +01:00
2026-04-01 10:46:10 +01:00
2026-04-01 10:44:22 +01:00
2026-04-01 10:44:22 +01:00
2026-04-01 10:44:22 +01:00

emdash

The core EmDash CMS package - an Astro-native, agent-portable reimplementation of WordPress.

Installation

npm install emdash

Features

  • Content Management - Collections, fields, Live Collections integration
  • Media Library - Upload via signed URLs, S3-compatible storage
  • Full-Text Search - FTS5 with Porter stemming, per-collection config
  • Navigation Menus - Hierarchical menus with URL resolution
  • Taxonomies - Categories, tags, custom taxonomies
  • Widget Areas - Content, menu, and component widgets
  • Sections - Reusable content blocks
  • Plugin System - Hooks, storage, settings, admin pages
  • WordPress Import - WXR, REST API, WordPress.com

Quick Start

// astro.config.mjs
import { defineConfig } from "astro/config";
import emdash, { local } from "emdash/astro";
import { sqlite } from "emdash/db";

export default defineConfig({
	integrations: [
		emdash({
			database: sqlite({ url: "file:./data.db" }),
			storage: local({
				directory: "./uploads",
				baseUrl: "/_emdash/api/media/file",
			}),
		}),
	],
});
// src/live.config.ts
import { defineLiveCollection } from "astro:content";
import { emdashLoader } from "emdash/runtime";

export const collections = {
	_emdash: defineLiveCollection({ loader: emdashLoader() }),
};

API

import {
	getEmDashCollection,
	getEmDashEntry,
	getSiteSettings,
	getMenu,
	getTaxonomyTerms,
	getWidgetArea,
	search,
} from "emdash";

// Content
const { entries } = await getEmDashCollection("posts");
const { entry } = await getEmDashEntry("posts", "hello-world");

// Site settings
const settings = await getSiteSettings();

// Navigation
const menu = await getMenu("primary");

// Taxonomies
const categories = await getTaxonomyTerms("categories");

// Widgets
const sidebar = await getWidgetArea("sidebar");

// Search
const results = await search("hello world", { collections: ["posts"] });

Documentation

See the documentation site for guides, API reference, and plugin development.