用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/fabioc-aloha/Alex_Skill_Mall --skill data-driven-layouts命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | data-driven-layouts |
| description | Template-driven layouts require code changes for structural updates: |
| lastReviewed | 2026-04-30T00:00:00.000Z |
Template-driven layouts require code changes for structural updates:
// Bad: structure embedded in code
function renderDashboard() {
return `
<div class="section">
<h2>Users</h2>
${renderUserTable()}
</div>
<div class="section">
<h2>Revenue</h2>
${renderRevenueChart()}
</div>
`;
}
// Adding a new section = code change
Define layout structure as data. Rendering is generic.
// layouts/dashboard.json
{
"sections": [
{ "id": "users", "title": "Users", "component": "userTable" },
{ "id": "revenue", "title": "Revenue", "component": "revenueChart" },
{ "id": "alerts", "title": "Alerts", "component": "alertList" }
]
}
// Generic renderer
const components = {
userTable: () => renderUserTable(),
revenueChart: () => renderRevenueChart(),
alertList: () => renderAlertList()
};
function renderDashboard(layout) {
return layout.sections.map(section => `
<div class="section" id="${section.id}">
<h2>${section.title}</h2>
${components[section.component]()}
</div>
`).join('');
}
// Usage
const layout = require('./layouts/dashboard.json');
const html = renderDashboard(layout);
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"sections": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "title", "component"],
"properties": {
"id": { "type": "string" },
"title": { "type": "string" },
"component": {
build architecture layouts configuration