beem-slide.config.ts
Workspace configuration — every field optional.
The config sits at the workspace root. It is entirely optional; an empty object is a valid config and the defaults are what the scaffold runs on.
import type { BeemSlideConfig } from '@beem-slide/core';
const config: BeemSlideConfig = {};
export default config;Shape
type BeemSlideConfig = {
/** Directory holding your decks. Default: 'slides'. */
slidesDir?: string;
/** Directory holding theme bundles. Default: 'themes'. */
themesDir?: string;
/** Dev-server port. Default: 5299, or the next free port above it. */
port?: number;
/** Language for the runtime UI. Default: English. */
locale?: Locale;
/** Read only by `build` — never by `dev`. */
build?: BeemSlideBuildConfig;
};
type BeemSlideBuildConfig = {
/** Deck ids to include. Omitted means every deck under slidesDir. */
slides?: string[];
/** URL prefix the build is served from, e.g. '/decks/keynote'. */
basePath?: string;
/** Include the deck index in the build. */
showSlideBrowser?: boolean;
/** Include the authoring chrome — toolbar, inspector, notes. */
showSlideUi?: boolean;
/** Include the "download as HTML" button in the viewer. */
allowHtmlDownload?: boolean;
};Everything under build applies to beem-slide build only. dev always
serves the whole of slidesDir, so narrowing a build never narrows what you
can author against locally.
Recipes
One deck, sent to a client
const config: BeemSlideConfig = {
build: {
slides: ['q2-launch'],
showSlideBrowser: false,
showSlideUi: false,
allowHtmlDownload: false,
},
};Naming exactly one deck with the browser off makes that deck the site — it renders at the root, rather than the root being an index of a single item.
Served under a path prefix
const config: BeemSlideConfig = {
build: { basePath: '/decks/q2' },
};Sets the asset base and the router basename together, so the same bundle works
under any prefix without editing a link. --base on the command line does the
same thing for a one-off build.
A different UI language
import { zhTW } from '@beem-slide/core/locale';
const config: BeemSlideConfig = { locale: zhTW };See Locale.
More than one deck root
slidesDir is a single path. If you want separate groups of decks, keep one
root and use the folder grouping in the deck list rather than a second
directory — the runtime's discovery, publishing filter and cloud mapping all
assume one root.