# 首页

> 把一个装满 Markdown 和 HTML 页面的文件夹变成站点：一个布局、一套主题、实时重载，为人类与智能体打造。

开源 · MIT 许可证

用 Markdown 或纯 HTML 编写，htmlpress 就会添加布局、主题、导航和实时重载，基于 Web Components 和 CSS 构建，均可弹出。适合内部文档，也适合内容发布。

[快速开始](/zh/introduction/) [查看源码](https://github.com/datisthq/htmlpress)

- `curl -fsSL https://htmlpress.dev/install.sh | sh`
- `pip install htmlpress`
- `npm install gethtmlpress`
- `cargo install htmlpress`

![用一个 htmlpress 页面构建的电力仪表盘，包含指标卡、堆叠柱状图和环形图](/screenshots/author.webp) ![用一个 htmlpress 页面构建的电力仪表盘，包含指标卡、堆叠柱状图和环形图](/screenshots/author-dark.webp)

**任意 HTML，原样保留**rust/docs/examples/energy-dashboard.html

```html
<title>Electricity dashboard</title>
<style>.nrg { … }</style>
<div class="nrg">…</div>
```

![htmlpress 富元素页面，展示信息、成功、警告和危险提示框](/screenshots/components.webp) ![htmlpress 富元素页面，展示信息、成功、警告和危险提示框](/screenshots/components-dark.webp)

**用纯 HTML 编写**rust/docs/authoring/rich-elements.html

```html
<htmlpress-callout type="tip">
  <p>Every page built.</p>
</htmlpress-callout>
```

![htmlpress 搜索对话框，在整个文档中匹配 deploy](/screenshots/search.webp) ![htmlpress 搜索对话框，在整个文档中匹配 deploy](/screenshots/search-dark.webp)

**构建时建立索引**rust/docs/deployment/index.html

```html
<h1>Deployment</h1>
<p><code>htmlpress build</code>
  produces a fully static site…</p>
```

![htmlpress 博客索引，包含两篇带日期的文章、作者、最近文章和标签](/screenshots/blog.webp) ![htmlpress 博客索引，包含两篇带日期的文章、作者、最近文章和标签](/screenshots/blog-dark.webp)

**日期写在自己的 head 里**rust/docs/blog/hello-world.html

```html
<meta name="date" content="2026-04-10" />
<meta name="author" content="Htmlpress Team" />
<meta name="keywords" content="announcement" />
```

![在手机上以抽屉形式打开的 htmlpress 导航](/screenshots/mobile-nav.webp) ![在手机上以抽屉形式打开的 htmlpress 导航](/screenshots/mobile-nav-dark.webp)

![手机上的编号步骤和代码块](/screenshots/mobile-steps.webp) ![手机上的编号步骤和代码块](/screenshots/mobile-steps-dark.webp)

![手机上在仪表盘之上以底部面板打开的语言选择器](/screenshots/mobile-sheet.webp) ![手机上在仪表盘之上以底部面板打开的语言选择器](/screenshots/mobile-sheet-dark.webp)

**用纯 HTML 编写**rust/docs/authoring/rich-elements.html

```html
<h3 data-step>Install</h3>
```

## 绝不碍事

没有框架，没有构建配置，没有强制的目录结构。一个装满 Markdown 或 HTML 的文件夹本身就是一个项目。

- ### 任意文件结构

  页面就是任意 `.md` 或 `.html` 文件：带 frontmatter 的 Markdown，或从裸片段到完整文档的 HTML。可以平铺，也可以嵌套：带有 `index.html` 的文件夹会成为导航分组，其他所有文件则原样复制。

- ### Web Components，light DOM

  每个组件都是标准的自定义元素：没有框架，没有 shadow DOM。你的 CSS 和主题令牌可以直达内部，文本留在页面中，便于搜索和智能体读取。在 `.htmlpress/components/` 中放一个文件，就能添加你自己的标签。

- ### 一切皆可弹出

  在 `.htmlpress/` 中替换布局、主题或任意内置组件，或者为某个页面提供[独立的布局](/zh/customization/custom-routes/)。这个落地页就是如此。

```
.htmlpress/
├─ layouts/
│  └─ landing.html    ← this page's chrome
└─ components/
   └─ site-hero.css   ← your own component
guides/
├─ setup.html
└─ faq.html
images/               ← copied as they are
index.html            ← a page too
htmlpress.yaml
```

## 默认即精美

精致的主题、文档所需的组件以及合理的默认设置。只需自定义你想改的部分。

### 基于元素的样式

标题、列表、表格、代码、`<details>`、`<figure>` 和 `<kbd>` 无需任何类名即可正确呈现。

### 弥补 HTML 空缺的 Web Components

提示框、标签页、步骤、卡片、文件树、徽章、图标、可排序表格、Mermaid 图表和可缩放图片，全部以 light DOM 自定义元素的形式提供。

### 代码高亮

构建时高亮 220 多种语言，支持标题、标签页、差异、聚焦和行标记，并提供浅色和深色主题。

### 源自文件夹的导航

按文件夹分组，按 `<meta name="order">` 排序，并带有目录以及上一页和下一页链接。

### 内置搜索

构建时生成全文索引，按 `S` 打开；结果所打开的页面会高亮匹配内容。

### 文档、博客和更新日志

将站点拆分为多个分区，各有自己的标签页和侧边栏：带 RSS 订阅的日期文章，或从 `CHANGELOG.md` 生成的每版本一页。

### 手机上同样自如

导航变为抽屉，选择器变为底部面板，没有任何内容会横向滚动。

### 深色模式和主题令牌

深色主题可跟随系统或通过开关切换，每种颜色、字体和宽度都是一个 `--htmlpress-*` 令牌。

### 多语言

在原页面旁以 `page.es.html` 翻译：每种语言都有自己的前缀、导航、搜索和界面文案。

### 实时重载

`htmlpress start` 在每次保存时重新构建并刷新浏览器，弹出文件和组件也不例外。

### 静态输出

`htmlpress build` 将纯文件写入 `.htmlpress/build`，带有规范链接，可部署到任何静态托管平台。

### 一个二进制文件，三个渠道

单个 Rust 可执行文件，可通过 npm、PyPI 或 crates.io 安装。无需安装其他任何东西。

HTML Markdown

## 编写 HTML 或 Markdown，发布网站。

你的页面保持原样，其余的交给 Htmlpress。

```html
<title>Quickstart</title>
<meta name="order" content="1" />

<h1>Quickstart</h1>
<p>Install the binary:</p>
<pre><code>npm install -g gethtmlpress</code></pre>

<htmlpress-callout title="Tip">
<p>Run <code>htmlpress start</code> and open the browser.</p>
</htmlpress-callout>

<h2>Features</h2>
<ul>
<li><strong>Fast</strong> rebuilds on save</li>
<li><strong>Components</strong> when HTML has none</li>
<li><em>Beautiful</em> out of the box</li>
</ul>
```

````md
---
title: Quickstart
order: 1
---

# Quickstart

Install the binary:

```sh
npm install -g gethtmlpress
```

:::callout{label="Tip"}
Run `htmlpress start` and open the browser.
:::

## Features

- **Fast** rebuilds on save
- **Components** when HTML has none
- *Beautiful* out of the box
````

### 快速开始

安装二进制文件：

```
npm install -g gethtmlpress
```

> **提示**
>
> 运行 `htmlpress start` 并打开浏览器。

#### 功能

- 保存时**快速**重新构建
- HTML 没有的地方用**组件**补上
- 开箱即*美观*

## 为编码智能体打造

智能体对 Markdown 和 HTML 的了解远胜于任何模板语言。Htmlpress 让它们的工作保持简单，并让每个输出都可被机器读取。

```sh
$ htmlpress build docs --json
{
  "output": "docs/.htmlpress/build",
  "pages": 8,
  "files": 12
}

$ htmlpress build --json '{"root":"docs","out":"dist"}'

$ htmlpress --llms
```

- ### 输入 Markdown 或纯 HTML

  没有框架，没有需要学习的语法，没有工具类：页面提供的选择越少，所有页面看起来就越像同一个站点。

- ### 每条命令都支持 JSON

  `--json` 将结果输出到 stdout，并以 JSON 格式接收输入；日志和错误输出到 stderr。

- ### 一次读懂 CLI

  `htmlpress --llms` 以 MCP 风格的工具列出每条命令的输入和输出模式。

- ### 每个页面的 Markdown 副本

  每个页面旁都有一份 `index.md`，并在页面 head 中链接，智能体无需解析标记即可读取内容。

- ### 开箱即用的 llms.txt

  一个列出所有副本的 `llms.txt` 索引，按导航分组，并通过首页的 `Link` 头公布。

- ### 为你的智能体准备的技能

  五个技能教会 Claude Code、Cursor 或 Codex [编写、配置、重塑样式并部署](/zh/agent-skills/)站点。

[智能体如何使用 htmlpress →](/zh/agent-skills/)

## 开始写作。*其余的交给 htmlpress。*

把 htmlpress 指向一个 Markdown 或 HTML 文件夹，弹出你想掌控的部分，然后部署。全部设置就是这样。

[阅读文档](/zh/introduction/) [安装](/zh/introduction/)
