数据集【免费下载链接】remote-jobsSource for remoteintech.company — a community-maintained directory of remote-friendly tech companies项目地址https://gitcode.com/GitHub_Trending/re/remote-jobs点击查看免费下载remoteintech.company本仓库是一个社区维护的远程友好科技公司目录而src/companies/下每个.md文件就是一家公司的档案条目。37signals.md 是该目录中典型的完全远程fully-remote 全球招聘worldwide范例。本文以这份档案为解剖样本完整拆解公司档案的 frontmatter 字段、正文章节规范并结合本仓库的验证脚本、标签映射、页面模板与 Eleventy 集合逻辑讲清一个档案条目从源码到网站的完整链路——读完你既能看懂任何一条公司档案也具备自行新增/维护条目的能力。一、档案全貌37signals 条目里到底写了什么先看原始文件的完整内容src/companies/37signals.md它由两部分组成开头的 YAML frontmatter 元数据块和其后用##组织的 Markdown 正文。--- title: 37signals slug: 37signals website: https://37signals.com region: worldwide remote_policy: fully-remote company_size: medium technologies: - ruby addedAt: 2023-10-11 updatedAt: 2023-10-18 ---正文包含六个小节逐字继承如下Company blurb这是一家完全远程、没有实体总部的公司。员工分布在多个大洲的数十个城市每个人都可以自由选择生活与工作地点团队在地理、生活方式和兴趣上各不相同但共同目标是做出色的工作、构建新颖而直接的产品、做实验、注重细节、善待他人、讲真话、乐于教学、回馈并持续学习。Company sizemore than 200200 人以上。Remote statusFull remote company完全远程公司。RegionWorldwide全球。Company technologiesRuby, Web。Office locationsNo physical Headquarters无实体总部。How to apply指向公司官网的投递入口。注意一个细节正文中的Region、Company technologies、Office locations、Company size等小节与 frontmatter 中的region、technologies、company_size字段在语义上相互印证——frontmatter 负责供程序化消费排序、分组、筛选、验证正文则负责面向读者的可读叙述。这是本目录所有条目的通用约定。二、frontmatter 字段逐一拆解语义、允许值与验证规则frontmatter 是条目的机器可读身份证。本仓库用两处代码维护其合法性一是 src/_data/labels.js 定义的集中式枚举二是 .github/scripts/validate-companies.js 实现的自动校验。下面按 37signals 用到的字段逐个说明。1.title与slugtitle公司显示名如37signals。它在 src/_layouts/company.njk 中被渲染为页面 H1并在集合排序中作为主键。slug条目的唯一标识必须与文件名一致。校验器会执行data.slug ! basename(filePath, .md)检查validate-companies.jsslug: 37signals就必须放在src/companies/37signals.md。这一约束保证了 URL 路径与文件名一一对应。2.website公司官网地址。校验器要求必须是https://或http://开头的完整 URLvalidate-companies.js。它有两个用途作为公司页面的主链接按钮Visit Website以及写入 schema.org 结构化数据中的url字段见下文第四节。3.region招聘/办公覆盖的地区37signals 填的是worldwide。labels.js中定义的全部合法值为值显示标签worldwideWorldwideamericasAmericaseuropeEuropeamericas-europeAmericas Europeasia-pacificAsia PacificotherOther校验器从Object.keys(l.region)动态取枚举validate-companies.js非法值会被拒绝。该字段同时驱动两类消费公司页头部渲染地区标签并链接到/browse/{region}/company.njk以及getCompaniesByRegion集合按地区分组见第五节。4.remote_policy远程政策类型37signals 是fully-remote。合法值及其显示标签值显示标签fully-remoteFully Remoteremote-firstRemote FirsthybridHybridremote-friendlyRemote Friendly这与正文Remote status小节相呼应frontmatter 声明政策类别正文描述具体做法如 37signals 的 Full remote company。5.company_size规模档位37signals 为medium对应标签51-200 employees。注意正文写的是 more than 200与medium档51-200存在口径差异——这是数据维护中值得注意的现象frontmatter 档位服务于目录筛选正文数字则反映录入时公司自述。完整档位值显示标签tiny1-10 employeessmall11-50 employeesmedium51-200 employeeslarge201-1000 employeesenterprise1000 employees6.technologies技术栈标签数组37signals 只列了ruby。labels.js定义了 24 个可用标签javascript、typescript、react、nodejs、python、ruby、go、java、php、rust、dotnet、elixir、scala、swift、cloud、devops、docker、kubernetes、mobile、data、ml、sql、postgres、nosql、search。校验器会逐个检查数组元素是否在合法集合内validate-companies.js。从源码结构看该字段的主要消费方是getCompaniesByTech集合与公司页的 Tech Stack 标签区company.njk。7.addedAt与updatedAt录入与最近更新时间37signals 分别是2023-10-11与2023-10-18。按 CONTRIBUTING.md 的约定这两个日期由维护者管理贡献者在 PR 中不应自行填写。它们被getRecentCompanies用于最近新增排序也被公司页页脚渲染为 Last updated: ...company.njk。三、正文章节规范三个必需 四个常用CONTRIBUTING.md 明确了正文必须包含的##章节## Company blurb必需——公司简介。它还有一个隐藏用途通过 companies.11tydata.js 的正则匹配##\s*Company\s*blurb之后的文本自动清洗去 Markdown 链接、星号、换行、多空格并截断到约 155 字符生成页面的 meta description。## Remote status必需——远程工作方式的具体描述。## How to apply必需——应聘入口说明。## Company size、## Region、## Company technologies、## Office locations可选但常用——37signals 恰好全部用上。校验器对必需章节采用正则^##\s{section}\s*$做逐行精确匹配validate-companies.js章节标题写错或缺失都会导致校验失败。四、档案如何变成网页布局模板与结构化数据公司档案渲染由 src/_layouts/company.njk 驱动其 frontmatter 指定了layout: base与schema: Organization。渲染逻辑要点页头按钮优先使用careers_url若有否则回退到website文案相应为 Apply Now 或 Visit Websitecompany.njk。地区与远程政策标签分别按region、remote_policy生成指向/browse/{值}/的链接company.njk。Tech Stack 区块遍历technologies数组生成技术标签company.njk。页脚回退到全部公司列表的链接、编辑入口以及updatedAt的格式化日期。同时src/_includes/schemas/Organization.njk 会根据 frontmatter 输出 schema.org 的OrganizationJSON-LDname取titleurl取website若存在careers_url还会写入sameAs。这意味着 37signals 这类档案的官网字段不仅驱动页面按钮还会被搜索引擎结构化识别。五、数据如何被目录消费Eleventy 集合与浏览页src/_config/collections.js 通过getFilteredByGlob(./src/companies/**/*.md)一次性抓取全部档案带缓存以避免重复过滤并派生出多种视图getAllCompanies按title字母序排序供全部公司页src/pages/companies.njk渲染卡片网格与地区下拉筛选。getCompaniesByRegion/getCompaniesByTech按region、technologies分组。37signals 会分别落入worldwide分组和ruby技术分组。getCompanyTags从档案动态推导出 technology / region / remote-policy 三类标签及计数供 src/pages/tags.njk 的 Browse 页展示。正因为 37signals 声明了region: worldwide、remote_policy: fully-remote、technologies: [ruby]它才能在对应浏览页中被检索到。getRecentCompanies按addedAt取最近 12 家展示在首页最近新增区。因此frontmatter 里任何一个字段的填写质量都直接影响目录的检索与分组效果。六、从看懂到动手验证与贡献一条新档案PR 中的公司档案会由Validate Company ProfilesGitHub Action 自动校验工作流见 .github/workflows/validate-companies.yml。校验脚本的规则可概括为6 个必填字段title、slug、website、region、remote_policy、company_size、3 个必需章节、全部枚举合法性、slug与文件名一致性、URL 格式以及Company blurb 不能为空的警告validate-companies.js。本地验证方式node .github/scripts/validate-companies.js src/companies/37signals.md输出 JSON 结果存在错误时进程以退出码 1 结束。贡献一条新档案的流程详见 CONTRIBUTING.md 与 README.md在src/companies/{slug}.md新建文件slug必须与文件名一致按上文模板填写 frontmatter并按规范撰写正文三个必需章节本地构建验证需 Node.js 22执行npm install后npm run build生产构建或npm run start带热重载的开发服务器输出目录为dist见 eleventy.config.js提交 PR等待校验机器人反馈。七、小结一条档案的完整数据流以 37signals 为线索可以串起本仓库档案体系的全貌frontmatter 枚举由 labels.js 单一事实源定义 → validate-companies.js 与 companies.11tydata.js 在 CI 与构建期消费 → collections.js 聚合为排序/分组/标签集合 → company.njk 与 Organization.njk 渲染页面与结构化数据。理解这条链路后你既能准确解读目录中任意一条公司档案也能照着 37signals 的模板贡献出格式合规的新条目。赞分享数据集【免费下载链接】remote-jobsSource for remoteintech.company — a community-maintained directory of remote-friendly tech companies项目地址https://gitcode.com/GitHub_Trending/re/remote-jobs点击查看免费下载相关推荐ExportData 远程公司档案解析从 Frontmatter 到页面渲染的完整数据链路ExportData 远程公司档案解析从 Frontmatter 到页面渲染的完整数据链路 ExportData 是 Remote In Tech https数据集Syde 远程技术公司档案解析从 frontmatter 到 remoteintech.company 站点渲染Syde 远程技术公司档案解析从 frontmatter 到 remoteintech.company 站点渲染 Syde 是 Europes bigges数据集在 Remote In Tech 远程公司目录中解析 Bugfender 档案从 frontmatter 字段到站点渲染全链路在 Remote In Tech 远程公司目录中解析 Bugfender 档案从 frontmatter 字段到站点渲染全链路 这篇技术指南以 src/com数据集创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考