这个项目能做什么
这是 Open Source Design 社区官方网站(opensourcedesign.net)的源代码仓库。网站采用 Hugo 静态站点生成器与 Tailwind CSS 构建,部署在 GitHub Pages 上,并通过 GitHub Actions 完成构建、预览及各类自动化任务。
内容组织
站点内容以 Markdown 格式存放于 content/ 目录,主要分为:About Us(关于、宣言、目标、治理、章程、行为准则、审核面板)、Events(活动公告与回顾)、Jobs(职位列表)、Resources(资源中心,含精选链接目录、参考书目与社区文章),以及 imprint、brand 和首页等独立页面。动态内容由 data/ 下的 YAML 文件驱动,例如 data/resources.yaml 管理精选工具与链接,data/bibliography.yaml 管理文献条目。
贡献方式
README 提供了三种编辑途径:直接在 GitHub 网页编辑器修改文件、使用 GitHub Codespaces 云端开发环境(已预配置 Hugo 与实时预览),或在本地搭建环境。本地开发只需安装 Hugo 扩展版与 Git,日常使用不依赖 Node.js 或 npm;Tailwind 独立 CLI 与 Pagefind 均为可选二进制。贡献流程建议先开 issue 讨论,再提交 pull request,内容 PR 需经两位社区成员审核。项目明确要求不要提交 AI 生成的代码、issue、文档或代码审查内容。
样式与构建
页面外观来自 layouts/ 模板中的 Tailwind 工具类与 assets/css/main.css 中的自定义规则,二者编译为 assets/css/compiled.css(未纳入版本控制,由 CI 生成)。本地运行 hugo server 时若缺少该文件,会回退到 Tailwind Play CDN 在浏览器中即时生成样式;也可用 Tailwind CLI 提前编译以匹配生产环境。深色模式覆盖样式单独加载,文章排版使用预编译的 typography.css。
职位与活动功能
职位与活动可通过在线表单提交,由 Cloudflare Worker 处理并生成受审核的 pull request。职位支持结构化薪资字段、申请链接自动识别服务图标、重复职位检测、约六周后的提醒邮件、基于 deadline 的过期机制(每日 Action 自动提交过期 PR)、按付费/志愿区分的 RSS 订阅源,以及自动生成的社交分享卡片。活动支持作者标记以区分公告与回顾、endDate 自动归档,以及取消状态。
自动化与质量保障
CI 通过 path-filters.yml 中的路径白名单跳过无关的 Hugo 构建。内容 lint 只检查变更文件,校验 front matter 必填字段、状态枚举、ISO 日期,并拦截常见 Markdown 陷阱。仓库检查、无障碍检查与内容 lint 是 main 分支的必需状态检查。新职位合并后由脚本自动发布到 Mastodon 与 Bluesky(各平台可选配置密钥,支持手动触发与 dry-run)。另有每周职位提醒、每 12 小时论坛缓存、每月两次链接检查等工作流。
搜索与图片
站内搜索为全站模态框,支持 Ctrl/⌘+K 或 / 快捷键,由 Pagefind 提供,索引在构建后生成并延迟加载。Markdown 图片经 Hugo 资源管线处理,本地栅格图自动缩放并输出 AVIF 与 WebP,附带原始格式回退与固有宽高以避免布局偏移;SVG、GIF 与外部链接保持不变。
许可
代码采用 AGPLv3,内容采用 Creative Commons Attribution-ShareAlike 4.0,使用或修改时需注明 Open Source Design 并对衍生作品采用相同许可。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。