@dario-loi/polytope

中文文档
0.7.2发布于 2026/10/14Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 2123

Polytope:指使,CSS组件,以及学术网站的Astro组件,纸页和研究演示.

中文使用文档
文档目录8 节
  1. 看起来像什么
  2. 包括什么
  3. 安装
  4. 使用 Polytope 与 impecable 设备
  5. 首页
  6. Polytope方面的工作
  7. 状态
  8. 信贷和许可证

聚管

Polytope是研究者在网络上发布的设计系统:个人学术网站,每篇论文的一页,以及随行的小互动演示. 它作为平地 CSS, Astro 组件,和一个 Python 主题,全部从一个符号文件中编译,所以纸上的数字与主机的页面相匹配.

The Polytope docs site: a wood-type title on the left and a black panel on the right holding a complex of points, edges, and mustard triangles, with a radius slider below

文件和现场实例: https://dario-loi.github.io/polytope/ 互联网档案馆的存檔,存档日期2013-12-21

看起来像什么

视觉语言取自1961年为IBM设计的数学展览"Charles"和"Ray Eames". 页面为白色墙壁,有黑色展板和重规则. 标题被设定在"Ultra"中,一种脂肪的木质型平板. 你读到的一切都在"利布尔·富兰克林"中,代码在"JetBrains Mono"中. 红色标记一个移动的东西 或你所在的地方,芥末 持有笔记,而tal是链接.

每页都有一个工作模式。 徽为一Vieworis-Rips复合体:随机点会结合到边缘并填入三角形时拖出半径. 文档随从光点增长而打开,主页图案将其作为头图. 概率机,是一款将真正的随机球倒入铃道曲线的Galton板,以"原理"(principles)运行并双倍作为加载指标. 这两作都没有JavaScript,在读者要求减少运动时显示其最终状态.

The homepage pattern in the dark theme, with a random complex of points, edges, and filled triangles

包括什么

  • 大约30个CSS组件,从按钮和表单到纸头,引用,定理环境,一个出版列表,演示铬,以及用静态Pagefind索引进行站点搜索. 光和暗的主题自动切换.
  • 35 印出同样标记的Astro组件,以及 <Seo>,它会写入搜索结果的头标签,Google Scholar,并链接预览.
  • 作为定制要素的两种工作模式, <ply-machine> 财务报告和审定财务报表 <ply-complex>和地图集, <ply-atlas>:一个CV中位置的地球,该地球会转至您所读的每个条目.
  • 一个由8个颜色组成的图表调色板,检查两个主题的色彩视觉缺陷,其中有taplotlib,有图案,Gradio,以及使用它的Streamlit主题.
  • 导出 Tailwind v4, Sass, LaTeX (xcolor and a pgfplots cycle list), TypeScript, Figma 令牌插件, 以及 Shiki和 VS 代码的代码主题 .
  • 文件网站本身,有四个完整的例子页:一个主页,一个纸页,一个演示,和一个CV.

安装

npm install @dario-loi/polytope

然后在您的布局中导入样式表 :

import "@dario-loi/polytope/css";

没有构建步骤的页面可以链接主机文件 :

<link rel="stylesheet" href="https://dario-loi.github.io/polytope/kit/polytope.css">
<script type="module" src="https://dario-loi.github.io/polytope/kit/js/all.js"></script>

Python主题 在PyPI上:

pip install "polytope-theme[matplotlib,plotly]"

使用 Polytope 与 impecable 设备

无瑕疵 从 DESIGN.md 财务报告和审定财务报表 .impeccable/design.jsonPolytope舰只都复制到一个地点:

npx @dario-loi/polytope            # copies DESIGN.md and .impeccable/design.json into the site
npx @dario-loi/polytope --check    # fails if the copies are older than the installed Polytope

在安装了Polytope的工程中,npx运行该副本. 命令不会取代另一个系统的 DESIGN.md 除非你通过 --force。 。 。 .

没有npm的站点(例如由Python所建的静态站点)可以取取被绑在放行上相同的文件,并在其模板中链接主机样式表:

curl -fsSLo DESIGN.md https://raw.githubusercontent.com/dario-loi/polytope/v0.7.2/DESIGN.md
mkdir -p .impeccable && curl -fsSLo .impeccable/design.json https://raw.githubusercontent.com/dario-loi/polytope/v0.7.2/.impeccable/design.json

无论哪种方式,新页面被构建在 Polytope 内部,设计检查器标记系统以外的任何东西。 运行 /impeccable init 一旦网站有了它 PRODUCT.md,每次升级 Polytope 时再次复制文件.

首页

与 Astro 连接 :

---
import "@dario-loi/polytope/css";
import { TopBar, Mast, Machine, Note } from "@dario-loi/polytope/astro";
---
<TopBar brand="John Doe" links={[{ label: "Research", href: "/" }]} />
<Mast title="Research" lede="Graph learning and the shapes data comes in.">
  <Machine slot="exhibit" interactive />
</Mast>
<main class="ply-container ply-prose">
  <Note>Results are averaged over five seeds.</Note>
</main>

有了matplotlib,所以纸上的数字与页面相匹配:

import matplotlib.pyplot as plt
import polytope_theme as ply

ply.use("light")
fig, ax = plt.subplots()
ax.plot(epochs, accuracy, label="GCN")
fig.savefig("figure.pdf")

Polytope方面的工作

git clone https://github.com/dario-loi/polytope
cd polytope
npm install              # installs the build dependencies
npm run build            # rebuilds dist/ and the generated Python files; commit the result
npm run docs:dev         # rebuilds the kit and serves the docs locally
npm run check:contrast   # fails if any text pair drops below WCAG AA
npm run check:prose      # fails on any en or em dash in the sources or the built docs
cd python && pytest      # tests for the Python theme

设计决定由 tokens/tokens.json 样式 css/src/。该建筑写了其他一切,包括 dist/ 和生成的 Python 文件, 因此编辑源代码并运行 npm run build并履行它所写的. dist/ 被故意执行 : 从 GitHub 安装后不运行安装脚本, CI 如果从新建筑漂移则失败 . DESIGN.md 将系统记录为已建系统及其背后的规则.

路径它所持有的
tokens/tokens.jsonW3C 设计托肯斯格式的每个设计决定
css/src/CSS核心,分级层,带有 ply- 前缀
css/js/工作模型、地图集及其地图数据、网站搜索、复制按钮的小脚本、滚动框、主题切换和窗体控制
astro/Astro 组件
python/这个 polytope-theme 软件包
scripts/仅使用节点标准库的构建和对比及出道检查
docs/文献网站

状态

这是0.5版本。 核心组成部分在文件、工作模型、地图集、研究组成部分、, <Seo>,演示铬是实验性的,可能在1.0之前改变。 Docs网站上的更改日志列出了不同版本之间的变化.

信贷和许可证

Polytope由东北大学的Dario Loi制作并被Apache许可证2.0发行. 见 LICENSE 财务报告和审定财务报表 NOTICE。 。 。 .

捆绑的字体保留自己的许可证,在字体文件旁边发运:由Apache许可证2.0下的Astigmatic所发;由SIL开放字体许可证1.1下发运的Libre Franklin和JetBrains Mono. 文件遵循的设计系统的定义来自 SBB 设计系统。 。 。 .

版本与发布记录

@dario-loi/polytope 共发布 16 个版本,首次发布于 2026/10/12;过去 12 个月发布了 16 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.7.2latest2026/10/141 个月前
0.7.12026/10/141 个月前
0.7.02026/10/131 个月前
0.6.32026/10/131 个月前
0.6.22026/10/131 个月前
0.6.12026/10/131 个月前

关于 @dario-loi/polytope 的常见问题

@dario-loi/polytope 是什么?

Polytope:指使,CSS组件,以及学术网站的Astro组件,纸页和研究演示.

如何安装 @dario-loi/polytope?

在项目目录运行 npm install @dario-loi/polytope,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 polytope-design,可以用 npx polytope-design 直接运行。

@dario-loi/polytope 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dario-loi/polytope 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@dario-loi/polytope 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dario-loi/polytope 可以商用吗?

@dario-loi/polytope 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dario-loi/polytope 的下载量有多少?

根据 npm 官方下载统计,@dario-loi/polytope 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,123 次,日均约 71 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dario-loi/polytope 还在维护吗?

最新版本 0.7.2 发布于 2026/10/14(1 个月前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/10/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。