ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Remote In Tech 公司档案全解析:以 Drupal Jedi 为例,读懂远程友好科技公司的目录结构与 Eleventy 构建流程

2026/10/2 8:00:55 拓冰建站 浏览量
Remote In Tech 公司档案全解析:以 Drupal Jedi 为例,读懂远程友好科技公司的目录结构与 Eleventy 构建流程 数据集【免费下载链接】remote-jobsSource for remoteintech.company — a community-maintained directory of remote-friendly tech companies项目地址https://gitcode.com/GitHub_Trending/re/remote-jobs点击查看免费下载本文以社区维护的远程友好科技公司目录Remote In Tech源码仓库 remote-jobs中的 Drupal Jedi 公司档案 为样本系统讲解公司档案 Markdown 文件的 frontmatter 字段规范、正文章节结构、技术栈标注规则并深入追踪该档案从原始数据到最终公司页面的完整 Eleventy 构建链路。读完本文你将掌握如何解读目录中任意一家公司的档案也具备新增或维护公司档案的完整实操能力。一、档案速览一条 65 人远程团队的完整记录src/companies/drupal-jedi.md是目录中数百份公司档案的标准样本之一。Drupal Jedi 是一家专注构建高级 Web 应用advanced web apps的机构agency团队规模 65 人面向全球招聘采用完全远程fully remote的工作模式。整份档案由两部分构成位于文件顶部的 YAML frontmatter结构化元数据和 Markdown 正文人类可读的公司介绍。该文件在仓库中的原始内容如下frontmatter 部分--- title: Drupal Jedi slug: drupal-jedi website: https://drupaljedi.com/ careers_url: https://drupaljedi.com/careers region: worldwide remote_policy: fully-remote company_size: medium technologies: - devops - go - javascript - php addedAt: 2018-06-14 updatedAt: 2018-06-14 ---正文部分则包含六个##章节Company blurb公司简介、Company size公司规模 65 人、Remote status远程状态、Region招聘地区 Worldwide、Company technologies公司技术栈以及How to apply申请方式。这份档案的字段取值完全符合 CONTRIBUTING.md 中定义的有效值枚举是研究公司档案格式规范的最佳参考案例。二、frontmatter 字段逐项解读数据从哪来、有何约束公司档案的核心是结构化 frontmatter。依据 CONTRIBUTING.md 的字段定义逐一解读 Drupal Jedi 档案中的每个字段字段取值含义与约束titleDrupal Jedi公司显示名称页面 H1 标题slugdrupal-jediURL 标识必须与文件名src/companies/drupal-jedi.md完全一致websitehttps://drupaljedi.com/公司官网地址careers_urlhttps://drupaljedi.com/careers公司自有招聘页地址不允许指向对外推销服务的页面regionworldwide招聘地区枚举值worldwide、americas、europe、americas-europe、asia-pacific、otherremote_policyfully-remote远程策略枚举值fully-remote、remote-first、hybrid、remote-friendlycompany_sizemedium规模档位非精确人数tiny(1-10)、small(11-50)、medium(51-200)、large(201-1000)、enterprise(1000)technologiesdevops, go, javascript, php技术标签列表来自预定义枚举addedAt/updatedAt2018-06-14维护者管理的日期字段贡献者 PR 中不应包含值得注意的细节是company_size: medium与正文## Company size中标注的65形成互补——frontmatter 使用区间档位51-200 人归为 medium见 labels.js 中的定义正文则保留精确数字两者同时服务于不同的渲染场景。技术标签同样是受控枚举。labels.js 是标签的单一事实来源single source of truth定义了完整的合法技术列表包括javascript、go、php、devops、docker、kubernetes等。Drupal Jedi 档案中的四个标签全部落在合法集合内。三、正文章节结构六段式公司档案模板公司档案的 Markdown 正文需包含规定的##章节。Drupal Jedi 档案完整呈现了这套结构## Company blurb必填——公司简介。原文指出Drupal Jedi 是一家专注构建高级 Web 应用的领先机构始终追求最佳解决方案提倡为正确的任务使用正确的技术use the right technology for the right task因此Drupal 与现代 JS 框架的混合是其首选技术组合。## Company size可选——精确团队规模65 人。## Remote status必填——远程工作方式正在全球范围内扩充团队寻找各地人才。## Region可选——招聘地区Worldwide全球。## Company technologies可选——按后端/前端/DevOps 分层的技术清单BackendDrupal、Go、NodeJSFrontendReact、Angular、VueJSDevOpsk8s、docker## How to apply必填——申请指引引导求职者前往 careers 页面获取详细信息drupaljedi.com/careers。注意## Company technologies章节的粒度比 frontmatter 的technologies字段更细——正文细分了具体框架React、Angular、VueJS、NodeJS而 frontmatter 只保留目录索引所需的粗粒度标签javascript、go、php、devops。这正是面向读者的正文与面向索引的元数据分工的体现。四、技术栈解读Drupal 与现代 JS 框架的混合模式Drupal Jedi 的技术组合在远程 Web 开发机构中很有代表性其核心思路是混合架构mix of Drupal with modern JS frameworks后端体系以 DrupalPHP 生态的内容管理系统为内容与业务底座辅以 Go 处理高并发或专用服务NodeJS 承担 API 层或工具链职责。前端体系React、Angular、VueJS 三大主流框架并列——从档案表述看团队推崇为正确任务选择正确技术因此在不同项目中按需选用不同前端框架。DevOps 体系k8sKubernetes与 docker 构成容器化部署链路。在目录层面这套技术栈被抽象为 frontmatter 中的四个枚举标签。构建时每个标签会生成对应的技术浏览页入口详见下文构建链路求职者可以通过 collections.js 中getCompaniesByTech生成的技术分组找到所有使用 Go、PHP、JavaScript 或 DevOps 的远程公司。五、从档案到页面Eleventy 构建链路逐级追踪一份公司档案最终渲染成线上公司详情页要经过 Eleventy 的完整数据处理管线。以 Drupal Jedi 档案为线索逐级追踪5.1 指定布局companies.jsonsrc/companies/companies.json是目录级数据文件为src/companies/下所有公司档案统一指定布局{ layout: company }它相当于目录级默认配置让每一份公司档案包括 Drupal Jedi自动套用 company.njk 布局无需在每个文件里重复声明。5.2 页面渲染company.njkcompany.njk 是公司详情页的 Nunjucks 模板它消费 frontmatter 字段并输出完整页面关键渲染逻辑包括申请按钮company.njk#L11-L16优先使用careers_url作为按钮跳转地址按钮文案为 Apply Now若不存在careers_url则回退到website文案变为 Visit Website。Drupal Jedi 档案同时提供了careers_url与website因此页面会渲染 Apply Now 主按钮。地区与远程策略标签company.njk#L17-L22region与remote_policy分别渲染为指向/browse/{region}/与/browse/{remote_policy}/的可点击标签文案经 labels.js 转换如fully-remote显示为 Fully Remote。Tech Stack 区块company.njk#L29-L38遍历technologies数组为每个标签渲染指向/browse/{tech}/的标签链接。Drupal Jedi 的四个标签会生成 Go、PHP、JavaScript、DevOps 四个技术入口。页脚company.njk#L54-L56当存在updatedAt时通过formatDate(MMMM D, YYYY)过滤器展示 Last updated: June 14, 2018。5.3 元描述自动生成companies.11tydata.jscompanies.11tydata.js 为每家公司自动计算 SEO meta description。其逻辑通过正则/##\s*Company\s*blurb\s*\n([\s\S]*?)(?\n##|$)/i提取## Company blurb章节文本依次剥离 Markdown 链接语法、*/_/反引号、合并换行与多余空格最终截断至约 155 字符优先在句号边界截断。这意味着 Drupal Jedi 简介中Drupal Jedi is a leading agency with the focus on building advanced web apps...这段文字会被自动加工成页面的 meta 描述。5.4 集合与浏览页collections.jscollections.js 定义了一系列公司集合直接决定档案在站点的呈现位置getAllCompaniescollections.js#L24-L30按标题字母序排序全部约 850 家公司供/companies/列表页使用getCompaniesByRegioncollections.js#L50-L68按region字段分组Drupal Jedi 的worldwide会落入 Worldwide 分组getCompaniesByTechcollections.js#L71-L91按technologies数组分组Drupal Jedi 会同时出现在 Go、PHP、JavaScript、DevOps 四个技术浏览页getRecentCompaniescollections.js#L42-L47按addedAt日期取最近 12 家。从源码结构看所有公司档案统一通过getFilteredByGlob(./src/companies/**/*.md)收集collections.js#L13并带有备忘录缓存以避免对约 850 个条目重复过滤。六、档案生命周期与链接健康维护公司档案不是静态文件其 URL 字段会随时间老化。仓库提供了专门的链接维护管线见 scripts/README.mdcheck-links.sh爬取src/companies/*.md中所有外链frontmatter 与正文记录 HTTP 状态与重定向终点输出link-check-results.csv。支持--quick只复查上次异常项与--refresh先重新提取 URL模式。fix-links.mjs读取扫描结果并分类处置。其中CAREERS_DEAD类别careers URL 重定向到首页、登录页或错误页会被自动修复——直接移除careers_url字段让页面按钮回退到website。PARKED域名被停放与DEAD_DNS域名完全无法解析则直接删除整份档案文件。这意味着如果 Drupal Jedi 的 careers 页面失效维护者只需运行./scripts/check-links.sh --refresh node scripts/fix-links.mjs --reverify --apply即可自动从档案中移除失效的careers_url保持目录数据的新鲜度。七、实操如何新增一份同规格的公司档案若要为目录贡献一家类似 Drupal Jedi 的公司按 CONTRIBUTING.md 的流程在src/companies/下创建{slug}.md确保文件名与slug字段一致按官方 frontmatter 模板填写字段参考 Drupal Jedi 档案的写法--- title: Example Co slug: example-co website: https://example.com careers_url: https://example.com/careers region: worldwide remote_policy: fully-remote company_size: small technologies: - javascript - python ---正文至少包含## Company blurb、## Remote status、## How to apply三个必填章节可选补充## Company size、## Region、## Company technologies运行npm run buildNode.js 22验证构建通过提交 Pull Request由Validate Company Profiles自动化校验机器人检查字段合法性。需要提醒的是addedAt/updatedAt由维护者统一管理贡献者的 PR 中不应包含这两个字段。入库公司必须直接雇佣员工不接受中介或自由职业平台代发职位且提供的岗位必须是真实可远程的薪酬岗位。结语通过 Drupal Jedi 这份档案可以完整看到 Remote In Tech 目录一份 Markdown 数据 → 一个结构化公司页面的整个数据流frontmatter 承担结构化索引职责正文章节面向求职者阅读company.njk 负责渲染、companies.11tydata.js 自动生成 SEO 元数据、collections.js 驱动浏览页分组而 check-links.sh 与 fix-links.mjs 守护链接长期健康。理解这套机制后你既能快速解读目录中任何一家公司的档案也能以完全合规的方式参与这份社区维护的远程工作公司清单。赞分享数据集【免费下载链接】remote-jobsSource for remoteintech.company — a community-maintained directory of remote-friendly tech companies项目地址https://gitcode.com/GitHub_Trending/re/remote-jobs点击查看免费下载相关推荐深度解析 Remote In Tech 公司档案以 Chainlink Labs 为例读懂远程友好公司目录的数据结构深度解析 Remote In Tech 公司档案以 Chainlink Labs 为例读懂远程友好公司目录的数据结构 本篇文章以仓库中 Chainlink L数据集Remote In Tech 公司档案解析以 Algorand 为例读懂远程友好型科技公司数据格式Remote In Tech 公司档案解析以 Algorand 为例读懂远程友好型科技公司数据格式 导读 src/companies/algorand.md数据集Remote In Tech 公司档案深度解析以 flip.md 为例的远程友好科技公司结构化建模Remote In Tech 公司档案深度解析以 flip.md 为例的远程友好科技公司结构化建模 本篇技术指南以远程友好科技公司目录 Remote In T数据集上一篇如何快速生成 HTML/Markdown 公共链接Orca Artifacts 分享完整指南下一篇eslint-plugin-unicorn 的 no-useless-concat 规则消除无意义字面量拼接与安全自动修复创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考