Admin
On this page
While kilim dev runs, http://localhost:1923/admin/ edits the site's files: the same Markdown, YAML and images you commit. There is no database and no account. The admin only answers requests from your own machine and is never part of a build, so the published site has no admin to attack.
Changes are saved to disk, and the dev server rebuilds the site as if you had saved the file in your editor. Press Ctrl K (⌘ K on a Mac) anywhere to jump to a page, a collection or an entry by name.
The home screen lists the entries you edited last, drafts and scheduled entries, and the state of the last build. Site check runs the rules of kilim check on the dev build, groups the problems by file and links each one to its entry. It follows your edits: fix a missing description and the warning goes away after the rebuild.
Each collection has a table of its entries, with filters for published, draft, scheduled and expired entries. Gallery shows them as cards with their image. On a multilingual site, the versions of a page share one row with a chip per language; a missing language has a button that adds a draft copy to translate.
The entry editor builds its form from the collection schema: text, numbers, dates, booleans, choices, lists, nested objects and unions each get their own field. Fields the schema does not describe are kept and shown as YAML. Saving checks the schema, and a problem is shown under its field. Ctrl S saves.
- Preview renders the page with the theme as you type, at desktop or phone width, before anything is saved.
- Only what you change is written. Comments, quotes and the order of keys in the frontmatter stay as they were, and Markdown you did not touch keeps every byte.
- Conflicts are caught. If the file changed on disk since you opened it, saving stops with "Changed on disk" instead of overwriting the other change.
The body opens in Rich mode, a document editor; Markdown shows the source, and the choice is remembered.
- Type / for a menu of headings, lists, to-do lists, quotes, code, images, tables, dividers and the theme's components.
- Drag the handle next to a paragraph to move it.
- Select text for bold, italic, code and links. Tables have their own bar for rows, columns and left, center or right alignment.
- Images can be picked from the media library or uploaded from the image bar.
- Components such as
:::calloutappear as boxes with their props; Markdown the editor cannot show stays as an editable source box, so nothing is lost.
An entry with blocks opens as a Page: each block is shown as the theme renders it. Document switches to the body and the other fields.
- Blocks are laid out as on a 1280px wide screen and scaled down to fit, so they show their desktop layout. The phone button above the blocks lays them out 390px wide instead.
- Click a block to edit its props in the side panel; the card updates as you type.
- Drag blocks to reorder them, or use the keyboard: focus the handle and press Space, then the arrow keys.
- Move a block up or down, duplicate it or delete it from its toolbar.
- Add a block opens a gallery of the theme's and the site's blocks, filled in with their first example.
- The
contentblock stands for the Markdown body; Edit the text opens it.
Media shows the files of public/ with previews, sizes and the folders they are in. Drop files on the page to upload them, with a progress bar. When a file with the same name exists, you choose between replacing it and Keep both, which saves the new one as logo-2.png. Large files are marked, as they weigh pages down.
The detail panel shows a file's size and dimensions and where it is used. Renaming or moving a file lists the pages and settings that use it and updates them when you confirm. References in code, such as layouts, are listed for you to change by hand.
Settings is a form for the active theme's settings from its schema, saved to settings/<theme>.yaml with its comments kept. A setting the file leaves out shows the theme's default, locked; Override writes it to the file, Use the theme's default removes it again. Menus can be reordered by dragging. The site's title, address and time zone are shown from the config.
On a multilingual site, a language selector edits settings/<theme>.<locale>.yaml the same way: settings the language does not set are shown from the default language; Override gives the language its own value, Use the default removes it.
In the entry editor, fields most pages leave out, such as permalink, slug and noindex, wait under More fields until they have a value.
Rename or move changes an entry's file name or moves it to another collection.
- When the URL changes, the old one keeps working: it is added to the entry's
aliases, or as a rule toredirects.txtwhen the schema has noaliasesfield. - Pages that link to the old URL are listed, and Update these links rewrites them.
- Moving to another collection checks the entry against that collection's schema, and is refused when the move would drop frontmatter fields the new schema does not keep.
Deleting an entry or a file moves it to .kilim/trash/ instead of erasing it. Trash lists what was deleted, newest first, and Restore puts a file back, unless another file took its place since.