news 2026/10/4 5:38:04

从 Manifold 档案读懂 Remote In Tech:远程公司目录的 frontmatter 规范与页面渲染原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从 Manifold 档案读懂 Remote In Tech:远程公司目录的 frontmatter 规范与页面渲染原理
  • 数据集

【免费下载链接】remote-jobs

Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies

项目地址:https://gitcode.com/GitHub_Trending/re/remote-jobs
点击查看免费下载

Manifold 是 Remote In Tech 社区远程公司目录中的一份经典档案,它完整展示了「远程友好型科技公司」如何被结构化记录、校验并被静态站点渲染出来。本文将逐字段拆解这份档案,结合仓库中的标签定义、页面模板与集合逻辑,讲解一份公司档案从 Markdown 数据到最终 HTML 页面的完整链路,读完你既能看懂 Manifold 的团队与远程实践,也能掌握为同类公司新增或维护档案的实操方法。

Manifold 是谁:Company blurb 解读

manifold.md的正文第一节## Company blurb给出了对 Manifold 的定位:

We're an ambitious and well-funded startup, making it compelling for developers to break their deployments free from the closed ecosystems of cloud providers. We connect applications, wherever they are hosted, to independent cloud services made by developers who care.

这段描述传达了两个关键信息:Manifold 是一家资金充足的创业公司,核心产品是让开发者把部署从云厂商的封闭生态中解放出来,并将「托管在任何位置的应用」连接到「由开发者维护的独立云服务」。团队背景上,文档提到多数成员与开源世界联系紧密,曾效力于 Heroku、Salesforce、Red Hat、Canonical 等公司——这也解释了档案技术栈中大量云原生与开源工具的出现。

档案元数据:frontmatter 结构详解

与目录中其他约 850 家公司档案一致,Manifold 的所有结构化元数据都存放在文件开头的 YAML frontmatter 中:

--- title: "Manifold" slug: manifold website: https://manifold.co region: other remote_policy: hybrid company_size: small technologies: - devops - go - javascript - sql addedAt: 2017-07-04 updatedAt: 2018-04-16 ---

各字段的取值约束与含义如下(字段合法值定义在 src/_data/labels.js 中,是全仓库唯一的标签来源):

字段本档案取值含义允许取值(labels.js / CONTRIBUTING.md)
title"Manifold"公司显示名称任意字符串
slugmanifold页面与文件名标识,必须与文件名manifold.md一致任意小写 slug
websitehttps://manifold.co公司官网任意合法 URL
regionother招聘地区worldwide/americas/europe/americas-europe/asia-pacific/other
remote_policyhybrid远程政策fully-remote/remote-first/hybrid/remote-friendly
company_sizesmall公司规模档位tiny(1-10) /small(11-50) /medium(51-200) /large(201-1000) /enterprise(1000+)
technologiesdevops, go, javascript, sql技术标签(slug)见 labels.js 的tech映射,共 25 个合法值
addedAt/updatedAt2017-07-04/2018-04-16收录与更新时间由维护者管理,PR 中勿自行填写

注意technologies存储的是机器可读的 slug,而不是展示文本。例如本档案中的devops、go、javascript、sql会分别被 labels.js 映射为DevOps、Go、JavaScript、SQL再渲染到页面上。而正文## Company technologies一节列出的则是人类可读的技术栈描述(React、Go、Postgres、Swagger、Terraform、Kubernetes、Manifold、Git 与 GitHub),二者互为补充:frontmatter 用于分类与筛选,正文用于详细说明。

团队规模与远程状态

正文## Company size与## Remote status两节补充了量化的团队信息:

  • 团队规模:约 25 人(截至 2018 年 1 月),与 frontmatter 中company_size: small(11-50 人档位)一致。
  • 远程状态:文档明确标注 "Strongly supported"(强烈支持远程)。约 50% 成员位于加拿大哈利法克斯(Halifax)的总部办公室,少数在旧金山,其余成员完全远程办公;管理层(exec team)则分散在 Halifax、旧金山与远程三个位置。

这种「部分分布式 + 管理层跨地点」的组织形态,正是档案中remote_policy: hybrid的由来——它既不是fully-remote的纯远程,也不是remote-friendly的仅宽容态度,而是混合办公模式。该取值会被 src/_layouts/company.njk 渲染为一个指向/browse/hybrid/的标签链接,方便访客按远程政策浏览同类公司。

跨时区协作:Region 字段的实战含义

## Region一节给出了具体的时间协作范围:

UTC-9 to UTC+1. Time shifting at the boundaries is typically necessary.

即团队成员横跨从 UTC-9(如美国西海岸/阿拉斯加时区)到 UTC+1(如中欧时区)的约 10 个时区,边界时区的成员通常需要做时间错位(time shifting)来保证重叠工作时间。这与 frontmatter 中region: other的归类一致——它并不局限于某个大洲,因此被归入「Other」而非americas或europe。在 src/_config/collections.js 的按地区分组逻辑中,region缺失或未识别的公司统一落入other分组。

技术栈清单:Company technologies

正文的## Company technologies罗列了 Manifold 的完整技术栈:

  • React(前端)
  • Go(后端主力)
  • Postgres(数据库)
  • Swagger(API 文档与契约)
  • Terraform(基础设施即代码)
  • Kubernetes(容器编排)
  • Manifold(自家平台产品,同时出现在技术栈中)
  • Git 和 GitHub(协作与版本控制)

这份清单解释了 frontmatter 中go、devops、javascript、sql四个技术标签的来源:Go 与 DevOps 是核心,JavaScript 对应 React 前端,SQL 对应 Postgres 数据层。在页面渲染时,company.njk 模板 会遍历 frontmatter 的technologies数组,为每项生成指向/browse/{tech}/的标签链接,访客点击即可发现使用相同技术的其他远程公司。

办公地点与应聘方式

## Office locations明确了两处实体办公点:

  • 总部(HQ):加拿大新斯科舍省哈利法克斯(Halifax, NS)
  • 旧金山办公室:San Francisco

## How to apply一节指向 Manifold 官方招聘页面。从数据结构看,Manifold 档案的 frontmatter 中并未设置careers_url字段,因此 company.njk 模板 中的主按钮会按careers_url or website的优先级回退到website(公司官网),按钮文案也相应显示为 "Visit Website" 而非 "Apply Now"。这一细节提示维护者:想让求职者直达投递入口,应在 frontmatter 中显式补充careers_url。

档案如何变成页面:渲染链路全景

Manifold 档案从 Markdown 到 HTML 的渲染链路由 Eleventy 驱动,核心节点如下:

  1. 数据加载:src/companies/companies.json 为整个目录统一指定layout: company;src/companies/companies.11tydata.js 为每份档案自动生成 SEO meta description——它从## Company blurb标题后截取正文、剥离 Markdown 语法并截断到约 155 字符。
  2. 页面模板:src/_layouts/company.njk 读取 frontmatter 渲染标题、地区标签、远程政策标签、技术栈标签以及 "Last updated"(由updatedAt格式化)信息。
  3. 集合组织:src/_config/collections.js 中的getAllCompanies将所有档案按标题字母序排列;getCompaniesByRegion与getCompaniesByTech则按地区/技术分组,供/browse/页面与标签页使用;getRecentCompanies依据addedAt选出最近 12 家新收录公司。
  4. 标签映射:所有展示文本最终都经由 src/_data/companyHelpers.js 的getRegionLabel、getRemotePolicyLabel、getCompanySizeLabel、getTechLabel从 labels.js 取词,保证枚举值有且仅有一个权威来源。

因此,Manifold 档案中的每一个字段都不是「死数据」,而是会被目录的首页、浏览页、标签页、站点地图(sitemap)与搜索索引复用的结构化实体。

为同类公司新增档案的实操指引

若你想为一家与 Manifold 类似的远程友好型科技公司补充档案,可参照 CONTRIBUTING.md 与 src/pages/contributing.md 中的规范:

  1. 在src/companies/下新建{slug}.md,确保文件名与 frontmatter 的slug一致;
  2. 填写 frontmatter 模板(title、slug、website、careers_url、region、remote_policy、company_size、technologies);
  3. 正文必须包含三个必需小节:## Company blurb、## Remote status、## How to apply;## Company size、## Region、## Company technologies、## Office locations为常用可选小节(Manifold 档案全部包含,是很好的完整范例);
  4. 运行npm run build验证构建通过(需 Node.js 22+,详见 README.md);
  5. 提交 PR,由 GitHub Action 的校验机器人检查字段合法性与内容完整性。

同时注意目录的收录边界:只收录半远程到全远程的科技公司、直接雇佣员工、提供真正的远程职位(薪资制或时薪制,不含纯佣金销售岗),且careers_url必须指向公司自身的招聘页面。

小结

Manifold 档案是理解 Remote In Tech 目录数据模型的最佳样本之一:frontmatter 提供机器可读的分类维度(地区、远程政策、规模、技术栈),正文小节提供求职者关心的人文信息(团队规模、远程程度、时区、办公室、应聘方式),而 company.njk 模板与 collections.js 集合逻辑把二者无缝衔接成可浏览、可筛选、可检索的页面。对照src/companies/manifold.md逐字段阅读,即可举一反三地掌握整个目录的档案规范。

  • 数据集

【免费下载链接】remote-jobs

Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies

项目地址:https://gitcode.com/GitHub_Trending/re/remote-jobs
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 5:33:45

Logisim数据表示实验全解析:从补码运算到超前进位

我们当年做《计算机组成原理》这门课的时候,几乎每个人都在Logisim里搭过电路。尤其是educoder平台上的“计算机数据表示实验”,看起来只是几个小关卡,但如果你只是照着填空、连线,不往深处想一层,后面的单总线CPU设计…

作者头像 李华
网站建设 2026/10/4 5:33:43

Avalonia Linux跨平台开发实战:从环境搭建到生产分发

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

作者头像 李华
网站建设 2026/10/4 5:32:36

ZYNQ下KSZ9031 MMD读取失败排查与解决

做ZYNQ网络核的时候,我最常被问的一句话就是:“ksz9031 mmd读取不了,到底是PHY坏了还是我写错了?” 这句话我听得耳朵起茧。KSZ9031RNX这颗PHY在ZYNQ板卡上实在太常见了,配合LwIP做千兆以太网,几乎人手一块…

作者头像 李华
网站建设 2026/10/4 5:32:07

开题别再“一个对话框硬扛”:临床中药党写用药安全研究,可以这样搭 AI 工具 [特殊字符]

先把场景说具体:我是临床中药学专业,这次要完成的不是普通课程小论文,而是毕业论文的开题报告。题目暂定为:活血化瘀类中药注射剂与抗血小板药联用的出血风险研究——基于某院 HIS 数据的回顾性分析这个题目很有临床中药学的味道&…

作者头像 李华
网站建设 2026/10/4 5:31:37

JavaEE宠物领养网站毕设实战:JSP+Servlet+MySQL从设计到实现

简介:宠物领养网站是JavaEE方向经典的毕业设计选题,这份论文文档围绕“基于JavaEE下宠物领养网站的设计与实现”展开,定位为计算机专业学生完成毕设的参考范例。文档从课题背景与国内外现状切入,依次介绍需求分析、系统设计、数据…

作者头像 李华
网站建设 2026/10/4 5:30:57

Spring Boot + Lettuce 堆外内存溢出:OutOfDirectMemoryError 复现与分析

一、问题现象 异常信息 io.netty.util.internal.OutOfDirectMemoryError: failed to allocate 2096896 byte(s) of direct memory (used: 7406854, max: 8388608) 业务影响 Redis 操作全部失败接口返回 500应用可能崩溃 二、问题本质 Netty 向操作系统申请的堆外内存超过…

作者头像 李华