尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

alfred-devdocs 高级配置详解:BASE_URL、CACHE_LIFE、TEMPLATE 三大环境变量完全解读

alfred-devdocs 高级配置详解:BASE_URL、CACHE_LIFE、TEMPLATE 三大环境变量完全解读 alfred-devdocs 高级配置详解BASE_URL、CACHE_LIFE、TEMPLATE 三大环境变量完全解读【免费下载链接】alfred-devdocsAlfred workflow for devdocs.io项目地址: https://gitcode.com/gh_mirrors/al/alfred-devdocsalfred-devdocs 是一款面向开发者的 Alfred workflow工作流它把 devdocs.io 上数百种开发文档搬进 macOS 的 Alfred 搜索框——输入doc关键字即可快速检索 CSS、JavaScript、Python 等文档并一键打开。绝大多数用户装上后只会用默认功能却不知道 alfred-devdocs 还内置了BASE_URL、CACHE_LIFE、TEMPLATE 三个环境变量可以彻底改变数据源、缓存策略与结果链接。本文为你带来 alfred-devdocs 高级配置详解从零掌握三大变量的完整用法实现内网离线、镜像加速、自定义链接等进阶玩法。alfred-devdocs 环境变量在哪里配置打开 Alfred → Preferences → Workflows选中 DevDocs 工作流点击右上角的[x]Workflow Configuration按钮就能看到BASE_URL、CACHE_LIFE、TEMPLATE三个配置项直接在输入框填写即可无需修改任何代码。这三大环境变量定义在项目源码的src/info.plist的 variables 字典中src/info.plist#L763-L771。Alfred 运行脚本时会把它们注入为进程环境变量PHP 端通过getenv()读取核心代码就三行src/scripts/devdocs.php#L21-L23$this-baseUrl getenv(BASE_URL) ?: https://devdocs.io/; $this-cacheLife (int)(getenv(CACHE_LIFE) ?: 7); $this-template getenv(TEMPLATE) ?: $baseUrl$documentation/$path;可以看到三个变量都有合理的默认值留空也能正常使用。下面逐一解读每个变量的作用与最佳实践。BASE_URL 环境变量如何更换 devdocs 数据源默认值https://devdocs.io/BASE_URL 是 alfred-devdocs 的数据源基地址搜索时下载的文档列表docs/docs.json、各文档索引docs/slug/index.json以及最终生成的打开链接都以它为前缀。什么时候需要修改 BASE_URL自建 DevDocs 镜像公司内网部署了 devdocs 私有实例希望完全离线使用网络加速官方站点访问慢改用第三方加速镜像本地开发调试本地跑了一套 devdocs 服务想先验证效果。设置方法与注意事项在 [x] 配置面板把BASE_URL填为你的站点地址即可例如http://192.168.1.100:9292/。两个关键细节一定要记住结尾务必保留斜杠/源码用字符串直接拼接如$this-baseUrl . docs/docs.json漏掉斜杠会拼出http://xxx.comdocs/...这种坏链接管理命令仍走官方源cdoc:add、cdoc:refresh等管理命令由src/scripts/conf.php处理其中数据源是硬编码的官方地址src/scripts/conf.php#L23并不会读取 BASE_URL。也就是说搜索与打开链接走你配置的 BASE_URL而新增/刷新文档列表仍会请求官方站点文档列表缓存有 7 天有效期离线前先执行一次cdoc:refresh即可。CACHE_LIFE 环境变量缓存过期时间设置默认值7单位天CACHE_LIFE 控制 alfred-devdocs 的缓存有效期文档列表与每个文档的索引都会按此规则判断是否需要重新下载判断逻辑见src/scripts/devdocs.php#L55与#L77。三种典型取值CACHE_LIFE行为适用场景7默认缓存 7 天到期自动更新日常使用兼顾速度与新鲜度0每次都重新下载等于禁用缓存文档频繁更新、或想即时同步最新内容负数如-1缓存永不失效彻底离线环境避免任何网络请求小贴士把 CACHE_LIFE 从大改小如 7 → 0后下次调用就会按新规则重新下载反之改大不会立刻清掉已有缓存需要手动执行cdoc:refresh或删除缓存文件才能强制更新。缓存文件由src/scripts/workflows.php#L41-L45决定存储位置默认在 Alfred 的 Workflow Data 目录docs.json是文档总列表slug.json是各文档的检索索引删除对应文件即可强制重拉。TEMPLATE 环境变量自定义结果链接模板默认值$baseUrl$documentation/$pathTEMPLATE 决定按下回车后打开的 URL 长什么样。它支持 5 个占位符在渲染结果时通过strtr()逐个替换src/scripts/devdocs.php#L136-L144占位符含义示例$baseUrl数据源基地址https://devdocs.io/$documentation文档 slugangular~2.0_typescript$docalt把 slug 中的~替换为-angular-2.0_typescript$name条目名称Array$path条目路径global.html#array典型用法自建站点把版本号中的波浪号改成了横线可用$baseUrl$docalt/$path生成兼容链接需要给链接附加统一参数或锚点时可在模板末尾直接追加如$baseUrl$documentation/$path?refworkflow若模板里忘了写$baseUrl生成的链接将不含基地址务必检查。另外注意TEMPLATE留空会回退到默认模板PHP?:的空值兜底逻辑所以清空该项等于恢复默认行为。组合示例内网离线环境的完整高级配置假设你已在内网部署了 devdocs 服务想让 alfred-devdocs 完全离线运行可按以下步骤一次性配置配置 BASE_URL填入内网地址http://192.168.1.100:9292/注意结尾斜杠配置 CACHE_LIFE填-1让缓存永久生效之后断网也能正常检索配置 TEMPLATE若内网站点 URL 结构不同改为$baseUrl$docalt/$path等自定义模板预热缓存联网状态下执行一次cdoc:refresh或全局搜索把文档列表与索引全部拉取到本地之后完全离线使用检索、打开文档均不依赖外网。需要从源码研究配置逻辑时可先获取项目代码git clone https://gitcode.com/gh_mirrors/al/alfred-devdocs常见问题与排错修改变量后不生效确认在 [x] 配置面板保存成功Alfred 每次运行脚本时都会重新读取环境变量无需重启 Alfred但修改 CACHE_LIFE 不会立刻改变已有缓存文件需配合cdoc:refresh使用。搜索正常但打开链接 404优先检查 BASE_URL 结尾斜杠、TEMPLATE 占位符拼写是否正确。代理环境下无法下载alfred-devdocs 支持通过HTTP_PROXY及带认证的HTTP_PROXY_AUTHORIZATION环境变量走代理逻辑在src/scripts/workflows.php#L495-L513可在 Alfred 工作流环境变量中一并配置。想恢复默认把对应变量清空即可三个变量都会自动回退到内置默认值。总结BASE_URL、CACHE_LIFE、TEMPLATE 三大环境变量让 alfred-devdocs 从开箱即用走向按需定制BASE_URL 解决数据源问题CACHE_LIFE 掌控缓存与离线策略TEMPLATE 则让你完全自定义结果链接。花两分钟完成这篇高级配置你的开发文档检索体验就能再上一个台阶 【免费下载链接】alfred-devdocsAlfred workflow for devdocs.io项目地址: https://gitcode.com/gh_mirrors/al/alfred-devdocs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表