- 数据集
【免费下载链接】remote-jobs
Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies
Remote In Tech(README.md 与 CONTRIBUTING.md 中说明的 community-maintained 目录)以每个公司一个 Markdown 档案文件的方式,管理远程友好科技公司的结构化信息。本文以目录中的 Conversio 档案 为实例,逐项拆解其 frontmatter 字段与正文章节的含义、取值规范,并结合仓库中的标签定义、页面布局与集合逻辑,说明这份档案从数据文件到网页的全部链路。读完本文,你将掌握该目录公司档案的完整 schema、可控词表与渲染机制,能够独立读懂任何一份.md档案,并具备按相同规范新增档案的能力。
一、档案概览:一份公司档案里到底有什么
conversio.md 是典型的 Remote In Tech 公司档案,由两部分组成:位于文件头部的 YAML frontmatter(元数据),以及以##小节组织的 Markdown 正文。这份档案记录的信息如下:
| 类别 | 字段 | 值 |
|---|---|---|
| 标识 | title | Conversio |
| 标识 | slug | conversio |
| 连接 | website | https://conversio.com |
| 区域 | region | worldwide |
| 远程策略 | remote_policy | fully-remote |
| 规模 | company_size | tiny |
| 技术栈 | technologies | javascript、nosql |
| 时间线 | addedAt/updatedAt | 2017-02-23 / 2018-04-16 |
| 规模(正文) | Company size | 0-20 |
| 远程状态(正文) | Remote status | Made Around The World with no geographic limit |
| 区域(正文) | Region | Worldwide |
| 技术(正文) | Company technologies | Node.JS、MongoDB |
| 办公地(正文) | Office locations | Devonshire House, 60 Goswell Road, London, EC1M 7AD, United Kingdom |
| 申请(正文) | How to apply | adii@conversio.com |
可以看到,同一份档案的信息在 frontmatter 与正文中成对出现:frontmatter 提供机器可读的受控值,正文提供给人阅读的自然语言描述。这正是该目录"数据与展示分离"的设计基础。
二、frontmatter 字段详解:受控词表与取值规范
档案的元数据必须遵守 CONTRIBUTING.md 中定义的模板与合法值。对照该模板,Conversio 档案中每个字段都可以映射到规范:
--- title: "Conversio" slug: conversio website: https://conversio.com region: worldwide remote_policy: fully-remote company_size: tiny technologies: - javascript - nosql addedAt: 2017-02-23 updatedAt: 2018-04-16 ---2.1 受控字段与合法取值
依据 CONTRIBUTING.md 的"Valid Field Values"表:
| 字段 | 合法值 | Conversio 取值 |
|---|---|---|
region | worldwide、americas、europe、americas-europe、asia-pacific、other | worldwide |
remote_policy | fully-remote、remote-first、hybrid、remote-friendly | fully-remote |
company_size | tiny(1-10)、small(11-50)、medium(51-200)、large(201-1000)、enterprise(1000+) | tiny |
technologies | 词表见下 | javascript、nosql |
这些 slug 的显示文案统一由 src/_data/labels.js 管理,它是"单一事实来源"(该文件注释明确写道 "single source of truth")。例如:
region的worldwide显示为 "Worldwide";remote_policy的fully-remote显示为 "Fully Remote";company_size的tiny显示为 "1-10 employees"(注意:这是受控标签,与正文里 Conversio 自述的 "0-20" 是两种表述口径);- 技术词表中包含
javascript→"JavaScript"、nosql→"NoSQL",而nodejs→"Node.js" 也是合法值——Conversio 档案 frontmatter 选择了javascript与nosql两个更宽泛的 slug,正文中则以 "Node.JS、MongoDB" 做了更具体的说明。
2.2 时间字段由维护者管理
CONTRIBUTING.md 特别注明:"TheaddedAtandupdatedAtdate fields are managed by maintainers — please don't include them in your PR"。这意味着新增公司时不应自行填写这两个日期,Conversio 档案中的addedAt: 2017-02-23与updatedAt: 2018-04-16是由维护者写入的入库与最后更新时间。
三、正文章节:档案的信息主体
档案正文由若干固定##小节构成。CONTRIBUTING.md 规定## Company blurb、## Remote status、## How to apply为必需小节,## Company size、## Region、## Company technologies为常用可选小节,## Office locations亦属于档案允许包含的信息。Conversio 档案完整包含了以上全部小节。
3.1 Company blurb(公司简介)
档案原文记录为:
Conversio's all-in-one dashboard run your marketing, so that you have more time to run your fdd
这段文案被 companies.11tydata.js 自动抽取,用作公司页面的 meta description:该文件通过正则/##\s*Company\s*blurb\s*\n+([\s\S]*?)(?=\n##|$)/i定位 "## Company blurb" 标题后的段落,再依次清除 Markdown 链接语法、*_`` 强调符号、压缩换行与空格,最后截断至约 155 字符(优先在句号边界截断,其次在空格处截断并追加...`)。因此,blurb 小节不仅是给人看的一句话介绍,更是 SEO 元数据的直接数据源。
3.2 Company size / Remote status / Region
## Company size:0-20(自述规模)## Remote status:Made Around The World with no geographic limit —— 这是"全球无地域限制"的远程宣言,与 frontmatter 中remote_policy: fully-remote、region: worldwide相互印证;## Region:Worldwide,再次与region: worldwide保持一致。
值得注意的细节是:虽然远程策略是"全球无地域限制",档案仍记录了位于伦敦的实体办公地址(Devonshire House, 60 Goswell Road, London, EC1M 7AD, United Kingdom)。这展示了该目录档案对"远程公司 + 实体注册地址"两种信息的并存记录能力。
3.3 Company technologies(公司技术栈)
正文以自然语言列出 "Node.JS、MongoDB",而 frontmatter 以受控 slugjavascript、nosql标注。这种双写模式在站点的浏览页中意义重大:/browse/{{ tech }}/等标签页完全依赖 frontmatter 的technologies数组进行归类(见下文集合逻辑),正文的表述则服务于人工阅读。
3.4 How to apply(如何申请)
档案给出的申请方式是邮箱adii@conversio.com,这也是目录早期档案的常见形态。需要注意 CONTRIBUTING.md 的现代规范建议使用careers_url指向公司自己的招聘页("points at the company's own careers page"),且目录不接受把服务推销页当作招聘入口;Conversio 档案没有设置careers_url字段,因此布局会回退到website作为主按钮链接。
四、从档案到网页:渲染与展示链路
公司档案被 src/_layouts/company.njk 渲染为完整页面,其关键映射包括:
- 主操作按钮:优先取
careers_url,否则回退到website——Conversio 未定义careers_url,故按钮文案为 "Visit Website" 并指向其官网; - 元信息标签:
region渲染为指向/browse/{region}/的标签,文案取labels.region[region](即 "Worldwide");remote_policy渲染为指向/browse/{remote_policy}/的标签,文案取labels.remotePolicy[remote_policy](即 "Fully Remote"); - Tech Stack 区块:遍历 frontmatter 的
technologies数组,为每个技术生成指向/browse/{tech}/的标签,文案取labels.tech[tech](即 "JavaScript"、"NoSQL"); - 页脚时间戳:
updatedAt经formatDate('MMMM D, YYYY')过滤器格式化后,显示为 "Last updated: April 16, 2018" 之类的文本——该过滤器定义于 src/_config/filters/dates.js(dayjs(date).format(format)),并经由 src/_config/filters.js 注册到模板; - 页脚还包含返回全部公司的链接,以及由
page.fileSlug动态拼接的 "Edit on GitHub" 编辑入口。
五、档案如何进入站点集合
src/_config/collections.js 以getFilteredByGlob('./src/companies/**/*.md')一次性加载全部公司档案(结果会被缓存以避免约 850 个档案被重复过滤),并派生多个集合:
getAllCompanies:按title字母序排列全部公司,供 companies.njk 列表页使用;getCompaniesByRegion/getCompaniesByTech:按 frontmatter 的region与technologies分组——Conversio 因此会出现在 "Worldwide" 区域组与 "JavaScript"、"NoSQL" 技术组中;getFeaturedCompanies:从 src/_data/companyHelpers.js 中人工精选的featuredCompanySlugs名单随机挑选 8 家展示在首页(Conversio 不在该名单内);getRecentCompanies:按addedAt倒序取最近 12 家。
此外,getCompanyTags函数把每份档案的title、slug、website、region、remote_policy、technologies聚合为带计数与标签文案的浏览页数据,其显示标签同样来自 labels.js。这解释了为什么 frontmatter 必须使用受控词表:集合、分组、标签页与页面文案全部依赖这些 slug 的一致性。
六、档案的构建与验证流程
档案修改后需通过构建与自动校验方可合并:
- 本地构建:README.md 给出
npm install、npm run start(带热重载的开发服务器)、npm run build(生产构建)三条命令,并要求 Node.js 22+; - 新增档案时,需在 src/companies 下创建
{slug}.md,文件名必须与 frontmatter 的slug一致; - 提交 PR 后,由 "Validate Company Profiles" GitHub Action 自动校验,机器人会在 PR 上评论问题并阻止合并,直至通过。
七、总结:从一份档案看整个目录的工程化设计
以 conversio.md 为样本可以看到,Remote In Tech 的公司档案并不只是"一段公司介绍",而是一套前后端贯通的微型数据模型:
- frontmatter 承担机器语义:
region、remote_policy、company_size、technologies全部映射到 labels.js 的受控词表,驱动分组、浏览页与标签渲染; - 正文承担人读语义:blurb、remote status、如何申请等小节,同时服务于读者阅读与 companies.11tydata.js 自动生成的 meta description;
- 布局与集合负责呈现:company.njk 将字段渲染为按钮、标签与页脚,collections.js 将档案汇入区域、技术、精选、最新等多个集合。
读懂这份 schema,你就掌握了阅读目录中任意一家公司档案的方法;若要为新的远程友好公司提交档案,CONTRIBUTING.md 中的模板、合法值表与校验规则即是你的完整 checklist。
- 数据集
【免费下载链接】remote-jobs
Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies
相关推荐
Remote In Tech 公司档案解析:以 Algorand 为例读懂远程友好型科技公司数据格式
Remote In Tech 公司档案解析:以 Algorand 为例读懂远程友好型科技公司数据格式 导读 src/companies/algorand.md
数据集Remote In Tech 公司档案解析:以 Basecamp 为例的远程友好科技公司目录数据模型
Remote In Tech 公司档案解析:以 Basecamp 为例的远程友好科技公司目录数据模型 Basecamp 是远程工作领域的标志性公司,也是本仓库(
数据集Remote In Tech 公司档案解析:以 Art & Logic 为例,读懂远程友好型公司的结构化数据与站点呈现
Remote In Tech 公司档案解析:以 Art & Logic 为例,读懂远程友好型公司的结构化数据与站点呈现 本篇技术指南以远程科技公司目录 remo
数据集
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考