AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Static site Content Management System is developend and maintained by LAD: Laboratorio di Archeologia Digitale alla Sapienza
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
A static site Content Management System built on Astro, developed and maintained by LAD: Laboratorio di Archeologia Digitale alla Sapienza.查看完整 README ↗A static site Content Management System built on Astro, developed and maintained by LAD: Laboratorio di Archeologia Digitale alla Sapienza.
@lad-sapienza/scms-core), updated with npm update like any other dependencymy-site/
├── src/ # Your site
│ ├── content.config.ts # Collection schemas (Zod)
│ ├── user.config.mjs # Site configuration (edit this)
│ ├── content/ # Your content files
│ │ ├── blog/ # Blog posts (.md / .mdx)
│ │ ├── docs/ # Documentation pages (.md / .mdx)
│ │ └── data/ # Data files (CSV, JSON, YAML)
│ ├── components/ # Custom components
│ ├── layouts/ # Page layouts
│ ├── pages/ # Astro routes
│ └── styles/
│ └── global.css # Global stylesheet
├── public/ # Static assets, served as-is
├── astro.config.mjs # Registers the scms() integration
├── tsconfig.json
└── package.json # @lad-sapienza/scms-core is a normal dependency here
This repository itself is s:CMS's demo/documentation site — a working example of every component, not the starting point for a new site (see below).
The fastest way to start a new site is the guided generator, shipped inside @lad-sapienza/scms-core:
npx --package=@lad-sapienza/scms-core scms-create my-site
cd my-site
npm run dev
It asks a few questions (title, description, author, site URL) and scaffolds a minimal, ready-to-run Astro + s:CMS project — no cloning, no leftover demo content to strip out.
The site is available at http://localhost:4321.
This repository is itself a working s:CMS site (the demo/docs site you're reading right now), so it can also be used as a starting point if you want a fuller example to trim down rather than an empty one to build up:
git clone https://github.com/lad-sapienza/sCMS.git my-site
cd my-site
npm install
npm run dev
Open src/user.config.mjs and fill in your site details:
export const userConfig = {
site: 'https://yourdomain.com', // full URL of your published site
// base: '/my-repo', // uncomment if not deployed at root (e.g. GitHub Pages subpath)
};
export const siteMetadata = {
title: 'My Site',
description: 'A short description used by search engines.',
author: 'Your Name',
siteName: 'My Site',
defaultImage: '/images/social-preview.png',
};
For styling, edit src/styles/global.css. For the navigation menu, edit the menuItems array in src/layouts/BaseLayout.astro.
If you connect to a Directus instance, create a .env file in the project root:
PUBLIC_DIRECTUS_URL=https://your-directus-instance.com
PUBLIC_DIRECTUS_TOKEN=your-token
Content lives in src/content/. Each subfolder is a collection.
| Folder | Purpose |
|---|---|
src/content/blog/ | Blog posts and news |
src/content/docs/ | Documentation and guides |
src/content/data/ | Data files (CSV, JSON, YAML) |
---
title: 'My First Post'
description: 'A short description'
date: 2026-01-01
author: 'Your Name'
tags: ['news']
---
Write your content here.
---
title: 'My Page'
description: 'A short description'
order: 1
category: 'guides'
---
Write your content here.
Place images in a subfolder next to the content file and reference them with a standard Markdown image tag. s:CMS copies them automatically during build.
For full details see Managing Content.
Import components from @lad-sapienza/scms-core in any .mdx file:
import { DataTb, Map, Gallery } from '@lad-sapienza/scms-core';
| Component | Description | Documentation |
|---|---|---|
DataTb | Sortable, filterable, paginated data table | datatb.mdx |
Map | Interactive map with MapLibre GL JS | map.mdx |
Gallery | Responsive image gallery with lightbox | gallery/index.mdx |
SEO | Meta tags, Open Graph, JSON-LD | seo.md |
TableOfContents | Auto-generated TOC from headings | tableofcontents.md |
ZoteroGeoViewer | Zotero library visualised on a map | zotero-geoviewer.mdx |
RecordProvider, Field, Image, RecordFetcher, useRecordFetcher | Build single-record detail pages against Directus | record.md |
SearchUI, SearchUISimple, and SearchUIAdvanced (the field/operator/value search interface used by Map's searchInFields) are also exported from @lad-sapienza/scms-core for building custom search UIs — see the Vector Layer Search section of the Map docs.
Use the built-in loader to pull content from Directus into a collection:
// src/content.config.ts
import { directusLoader } from '@lad-sapienza/scms-core/integrations/directusLoader';
const articles = defineCollection({
loader: directusLoader({
table: 'articles',
fields: ['id', 'title', 'body', 'date_created'],
sort: ['-date_created'],
}),
});
Use Directus data sources directly in DataTb or Map components — see their documentation pages linked above.
Two CLI scripts help you add content without editing config files by hand.
npm run add-collectionScaffolds a complete new content collection: updates src/content.config.ts, creates a sample content file, and generates listing and detail page templates. For a multilingual site it can also take a list of locale codes (e.g. en, it) and scaffold one sample per language folder.
npm run add-contentAdds a single content file to an existing collection, prompting for frontmatter fields based on the Zod schema. When the collection is organised into per-language folders (src/content/<collection>/en/…, .../it/…), it asks which language the file belongs in — a single locale, or all. See Managing Content.
npm run build # production build → dist/
npm run preview # local preview of the production build
For deployment to GitHub Pages, Netlify, Vercel, or Cloudflare Pages, see Deployment.
The framework layer is an ordinary npm dependency — update it like any other package:
npm update @lad-sapienza/scms-core
See Updating for checking what's new and picking a specific version.
| Guide | File |
|---|---|
| Getting Started | guides/getting-started.md |
| Architecture | guides/architecture.md |
| Managing Content | guides/managing-content.md |
| Theming | guides/theming.md |
| Deployment | guides/deployment.md |
| Updating | guides/updating.md |
| Automatic Updates | guides/automatic-updates.md |
BSD-0-Clause — see LICENSE.
s:CMS is developed and maintained by LAD: Laboratorio di Archeologia Digitale alla Sapienza, Università degli Studi di Roma "La Sapienza".