资讯详情

PyScript 发布站点模板解析:public/index.html 如何驱动 pyscript.net 的版本发布页面

📅 2026/10/1 10:03:43 | 华诺云谱 👁 阅读
PyScript 发布站点模板解析:public/index.html 如何驱动 pyscript.net 的版本发布页面
前端开发工具【免费下载链接】pyscriptAn open source platform for Python in the browser. https://pyscript.net Docs: https://docs.pyscript.net/ Try it: https://pyscript.com/ Community: https://discord.gg/HxvBtukrg2项目地址https://gitcode.com/gh_mirrors/py/pyscript点击查看免费下载导读本文聚焦 PyScript 仓库中public/目录的职责index.html是 GitHub Actions 发布流水线的页面模板用于生成汇聚某次 PyScript 发行版全部信息的静态页版本号、core 产物、离线包、双解释器示例最终发布到 pyscript.net 域名。读完本文你将掌握模板中_VERSION_、_PATH_、_DOC_VERSION_、_TAG_VERSION_四个占位符的含义与替换机制理解 release / snapshot / unstable 三类发布流程如何复用同一模板并能自行用sed命令复现页面生成过程。public/ 目录在仓库中的定位仓库顶层public/目录下只有两个文件README.md 与 index.html。前者仅用一段话说明用途该目录下的index.html被本仓库.github/workflows/目录中定义的 GitHub Actions 用作静态页模板用于汇聚某次 PyScript 发行版的所有相关信息此类静态页及其关联的发布产物最终会落在https://pyscript.net/域名下。也就是说public/index.html并不是一个随时可用的独立页面而是一份带占位符的 HTML 骨架。真正的页面在 CI 流水线执行时由sed命令把占位符替换成具体版本号与资源路径后生成到core/dist/index.html再同步到 S3 托管的 pyscript.net 站点。模板中的四个占位符含义与替换规则整个模板的“动态化”全部由四个占位符承担它们在 public/index.html 中出现的位点与各自用途如下占位符出现位置模板内被替换成的实际值作用_VERSION_title、h1、导航链接、离线包文件名、示例标题与注释版本号如2022.09.1、latest页面上所有展示“当前版本”的文字_PATH_core.css与core.js的引用路径./或https://pyscript.net/releases/版本/等决定产物资源是从相对路径还是 CDN 绝对路径加载_DOC_VERSION_Docs 链接https://docs.pyscript.net/_DOC_VERSION_/latest或具体版本号指向对应版本的在线文档_TAG_VERSION_Changes 链接https://github.com/pyscript/pyscript/releases_TAG_VERSION_/tag/版本或空字符串指向该版本对应的 GitHub Release 标签页在流水线中替换动作由一条sed命令完成例如 publish-release.yml 中的写法sed -e s#_PATH_#https://pyscript.net/releases/${{ github.ref_name }}/#g \ -e s#_DOC_VERSION_#${{ github.ref_name }}#g \ -e s#_TAG_VERSION_#/tag/${{ github.ref_name }}#g \ -e s#_VERSION_#${{ github.ref_name }}#g \ ./public/index.html ./core/dist/index.html注意sed命令使用#作为分隔符而非默认的/因为_PATH_的替换值本身包含斜杠避免转义地狱。若缺少-e尾部替换默认只作用于每行第一个匹配其中_PATH_在模板中同时出现在link与script两处因此流水线显式使用了全局替换标志g见 publish-release.yml确保两处都被替换。模板结构逐段拆解头部样式、模块脚本与剪贴板辅助函数link relstylesheet href_PATH_core.css / script typemodule src_PATH_core.js/script titlePyScript Release: _VERSION_/titlecore.css提供页面基础样式core.js以 ES Module 方式加载这是 PyScript 运行时在浏览器中的核心入口构建产物生成规则见 core/rollup/core.config.js输出目录为./dist。内嵌style定义了深色主题#2d2e35背景、白色正文、#fda703橙色链接并让#header svg中的 Logo 在 400px 以下窄屏时收缩到 256px 宽保证移动端可读。copyToClipboard()函数读取pre idexample的文本并调用navigator.clipboard.writeText写入剪贴板配合“Example”标题旁的复制按钮使用。主体头部横幅与文件清单h1PyScript version: _VERSION_/h1 pa hrefhttps://pyscript.net/Home/a | a hrefhttps://docs.pyscript.net/_DOC_VERSION_/Docs/a | a hrefhttps://github.com/pyscript/pyscriptCode/a | a hrefhttps://github.com/pyscript/pyscript/releases_TAG_VERSION_Changes/a/p导航区聚合了官方首页、对应版本文档、源码仓库与版本变更记录。紧随其后的Files清单是发布页的核心信息区列出该版本随附的产物core.css运行时样式core.js运行时主模块core.js.mapcore.js的 Source Map便于线上调试offline__VERSION_.zip该版本打包好的离线使用压缩包页面文案明确标注 PyScriptVERSIONzipped up for offline use。离线包由 publish-release.yml 中的npm run build:offline生成rollup 侧脚本 core/rollup/offline.cjs 会读取node_modules/polyscript/versions下的 pyodide 与 micropython 版本号生成内含pyscript/core.js、pyscript/core.css与两个解释器演示脚本的offline.html随后流水线把离线包重命名为带版本号的形式mv ./dist/offline.zip ./dist/offline_${{ github.ref_name }}.zip。双解释器版本展示模板主体放有两个script块分别以typepyPyodide与typempyMicroPython类型标记二者都执行相同的两行 Pythonscript typepy from pyscript import display import sys display(sys.version) /script script typempy from pyscript import display import sys display(sys.version) /script页面加载时PyScript 运行时会为每个解释器创建独立执行环境把sys.version渲染进#out容器直观展示两个 Python 解释器的版本。这种“一个页面、双解释器并存”的用法与仓库测试页保持一致如 core/tests/javascript/ffi.html 等测试页均围绕同一运行时机制也验证了display这一核心 API 在两种解释器下的可用性。Example 区块可复制的 Hello World 模板页面底部的pre idexample内嵌一份转义后的完整示例 HTML其结构如下去转义后!DOCTYPE html html langen head meta charsetutf-8 / meta nameviewport contentwidthdevice-width,initial-scale1 / titlePyScript _VERSION_/title link relstylesheet href_PATH_core.css / script typemodule src_PATH_core.js/script /head body h1Hello world!/h1 pThese are the Python interpreters in PyScript _VERSION_:/p script typepy # Pyodide from pyscript import display import sys display(sys.version) /script script typempy # MicroPython from pyscript import display import sys display(sys.version) /script /body /html这段代码是“最小编程入门页”的样板仅引入core.css与core.js即可在浏览器中获得 Python 运行时。读者点击标题旁的复制按钮copyToClipboard()即可把这段代码粘贴到本地 HTML 文件中替换_PATH_、_VERSION_为实际值后直接打开运行。这也是 PyScript 用户在浏览器里体验“双解释器 Hello World”最简路径。三类发布流水线如何复用同一模板public/index.html之所以称为模板是因为仓库内四份 GitHub Actions 工作流文件都指向它只是传入的替换值不同工作流触发时机_PATH__DOC_VERSION__TAG_VERSION__VERSION_产物去向prepare-release.yml推送YYYY.MM.MICRO格式标签./latest空latest打包为build.zip创建草稿 Releasepublish-release.ymlRelease 正式发布https://pyscript.net/releases/ref/ref/tag/refref上传离线包并同步到 S3 的releases/ref/publish-snapshot.yml手动触发workflow_dispatch输入snapshot_versionhttps://pyscript.net/snapshots/ver/ver/tag/verver同步到 S3 的snapshots/ver/publish-unstable.yml合并到main改动涉及core/、examples/或手动触发./latest空latest同步到 S3 的unstable/几点细节值得注意prepare-release 与 publish-unstable 使用相对路径./此时core.js、core.css与生成的index.html位于同一dist/目录或随build.zip分发相对路径即可正确解析。release 与 snapshot 使用绝对 CDN 路径页面被部署到releases/版本/或snapshots/版本/这类独立目录资源链接必须指向同域下的绝对路径。Changes链接只在有正式标签时出现_TAG_VERSION_替换为空后链接退化为releases目录页_DOC_VERSION_替换为latest时文档链接指向最新版文档替换为具体版本号则指向对应版本文档。snapshot 工作流校验版本格式snapshot_version的输入说明示例为2022.09.1或2022.09.1.RC1与 prepare-release 的 tag 正则[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9]prepare-release.yml一致整体遵循Calendar Versioning日历版本约定。本地复现手动生成发布页无需等待 CI可在仓库根目录用sed复现 release 场景下的页面生成示意命令生成到临时目录mkdir -p /tmp/pyscript_release sed -e s#_PATH_#https://pyscript.net/releases/2026.09.1/#g \ -e s#_DOC_VERSION_#2026.09.1#g \ -e s#_TAG_VERSION_#/tag/2026.09.1#g \ -e s#_VERSION_#2026.09.1#g \ ./public/index.html /tmp/pyscript_release/index.html生成后检查index.html中不再残留_VERSION_、_PATH_等占位符title显示为PyScript Release: 2026.09.1core.css链接指向https://pyscript.net/releases/2026.09.1/core.css。若要把页面当作本地文件直接打开调试只需把_PATH_替换为./并放置在同目录的core.js、core.css旁边即可。小结public/index.html是 PyScript 发布体系中的关键一环一份带占位符的静态模板配合 GitHub Actions 中的sed替换以极低的维护成本支撑起 pyscript.net 上 release、snapshot、unstable 三类页面的生成。理解它的占位符约定也就掌握了 PyScript 发布产物core.js、core.css、Source Map 与离线 zip的组织方式与分发逻辑而模板内嵌的 Example 代码本身就是一份可复用的 PyScript 双解释器入门样板。赞分享前端开发工具【免费下载链接】pyscriptAn open source platform for Python in the browser. https://pyscript.net Docs: https://docs.pyscript.net/ Try it: https://pyscript.com/ Community: https://discord.gg/HxvBtukrg2项目地址https://gitcode.com/gh_mirrors/py/pyscript点击查看免费下载相关推荐nodejs.org 站点深度解析v0.8.3 (Stable) 版本发布说明与站点发布博客的生成机制nodejs.org 站点深度解析v0.8.3 Stable 版本发布说明与站点发布博客的生成机制 本篇以 nodejs.org 官网仓库中的历史发布博客 v前端文档pytest 次要版本发布公告模板解析release.minor.rst 的角色与自动化发布流程pytest 次要版本发布公告模板解析release.minor.rst 的角色与自动化发布流程 导读 pytest 项目在发布新版本时除了代码本身的版本号测试开发工具pytest 预发布公告模板解析从 release.pre.rst 到 RC 版本发布的完整流水线pytest 预发布公告模板解析从 release.pre.rst 到 RC 版本发布的完整流水线 导读 pytest 在正式发布大版本之前会先发布 RC测试开发工具上一篇PaddleDetection 模型在 RKNPU2 上的端侧部署全流程指南模型转换、配置与 C/Python 推理下一篇免费解密 NCM、MFLAC 加密音乐Unlock Music 浏览器使用完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑