37signals 远程公司档案全解析:从 frontmatter 到站点渲染的完整链路
数据集【免费下载链接】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),仅供参考

相关新闻

AI Agent数据库权限管控:动态鉴权与字段级访问控制实战

AI Agent数据库权限管控:动态鉴权与字段级访问控制实战

1. 项目概述:当AI Agent撞上数据库权限墙,我们到底在防什么?“没有权限,AI Agent也读不到数据”——这句话乍看像一句技术常识,但放在今天这个AI Agent遍地开花、企业数据资产加速智能化的背景下,它其实是一…

2026/10/11 19:37:34 阅读更多 →
Druid连接池爆满事故复盘:从线程Dump到生产级配置调优

Druid连接池爆满事故复盘:从线程Dump到生产级配置调优

1. 事故现场:连接池干涸,业务线程排队等连接那天下午两点多,服务群突然开始刷屏:订单接口超时率直接跳到百分之四十多,调用方一个接一个地来问情况。我第一反应是数据库出了问题,赶紧打开数据库监控&#x…

2026/10/11 19:37:34 阅读更多 →
图书馆管理系统数据流图:从0层到2层的系统分析实战指南

图书馆管理系统数据流图:从0层到2层的系统分析实战指南

简介:这是一份面向软件工程、信息系统分析与设计方向学习者及备考者的图书馆管理系统数据流图PDF资料,内容以“系统分析”为主线。全文围绕LMS的系统分析展开,完整覆盖业务流程分析、组织结构说明、0层至2层数据流图绘制,以及数据…

2026/10/11 19:36:33 阅读更多 →

最新新闻

YashanDB单机部署实操:从环境准备到实例启动的完整指南

YashanDB单机部署实操:从环境准备到实例启动的完整指南

数据库这玩意儿,平时看着没啥存在感,可真到要部署的时候,环境、依赖、权限、端口、内核参数,哪一个拎出来都能把人折腾得没脾气。最近一段时间,因为项目选型,我在几台机器上反复部署过YashanDB——一款国产…

2026/10/11 20:34:21 阅读更多 →
基于卷积神经网络的农作物病虫害识别系统实战:从数据集到部署

基于卷积神经网络的农作物病虫害识别系统实战:从数据集到部署

简介:这份资源是面向计算机相关专业毕业设计与项目实战学习者的农作物病虫害识别检测系统,基于深度学习卷积神经网络实现,涵盖从模型训练到Web端部署的完整链路。项目经导师指导并通过评审,源码均经本地编译调试可运行&#xff0c…

2026/10/11 20:34:21 阅读更多 →
基于动态分时电价的电动汽车有序充放电实时优化调度系统详解

基于动态分时电价的电动汽车有序充放电实时优化调度系统详解

做电动汽车充放电调度这个方向,算起来也有不短时间了。从最早单纯追求“充得便宜”,到后来加上V2G反向放电,再到把动态分时电价引入优化过程,每一步都踩过不少坑。今天趁项目收尾,把这套基于动态分时电价的电动汽车有序…

2026/10/11 20:34:21 阅读更多 →
从Excel到ERP:小微商家数字化转型的真实痛点与破局路径(附ROI测算)

从Excel到ERP:小微商家数字化转型的真实痛点与破局路径(附ROI测算)

写在前面网上管家婆成立于1993年,30余年服务超过80万中小客户。在对373家电商客户的调研中,52%的客户属于"初创型"——在引入系统之前只用过打单软件甚至纯靠Excel管理。以下内容从这些客户的真实痛点出发,分析从表格到ERP的转型难…

2026/10/11 20:34:21 阅读更多 →
MySQL中trx_mysql_thread_id为0的真相:XA事务与锁等待排查指南

MySQL中trx_mysql_thread_id为0的真相:XA事务与锁等待排查指南

1. 从一次诡异的锁等待说起 先讲个真实场景。某天中午,线上业务突然出现大量锁等待超时,监控面板上一片红色。当时我第一时间看了 information_schema.innodb_trx ,发现有一条事务状态为 RUNNING ,已经跑了快二十分钟&#xf…

2026/10/11 20:34:21 阅读更多 →
医院六大医疗信息系统集成实战:HIS、LIS、PACS、EMR、RIS、CDR数据流与接口详解

医院六大医疗信息系统集成实战:HIS、LIS、PACS、EMR、RIS、CDR数据流与接口详解

简介:本资源是一份面向医院信息科人员、医疗IT从业者及卫生信息管理专业学习者的系统性入门资料,全面梳理当前主流医疗信息化系统的核心定位、功能模块与协同关系,助力快速建立行业知识框架并支撑系统选型、实施或运维工作。文档为单文件Word…

2026/10/11 20:33:20 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →