zengen 0.2.1 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/pages.yml +4 -4
- package/.zen/meta.json +7 -120
- package/.zen/src/de-DE/04319611d7cde718d0e82da8e034e04b15fb3bb37c3784d8f7313577c5178b06.md +73 -0
- package/.zen/src/de-DE/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/en-US/04319611d7cde718d0e82da8e034e04b15fb3bb37c3784d8f7313577c5178b06.md +73 -0
- package/.zen/src/en-US/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/en-US/afbf4998656c97181d0edc711e388ad11e0f08f5c6f329861327202462a3a34a.md +63 -0
- package/.zen/src/es-ES/04319611d7cde718d0e82da8e034e04b15fb3bb37c3784d8f7313577c5178b06.md +73 -0
- package/.zen/src/es-ES/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/fr-FR/04319611d7cde718d0e82da8e034e04b15fb3bb37c3784d8f7313577c5178b06.md +73 -0
- package/.zen/src/fr-FR/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/ja-JP/04319611d7cde718d0e82da8e034e04b15fb3bb37c3784d8f7313577c5178b06.md +71 -0
- package/.zen/src/ja-JP/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/ko-KR/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/pt-PT/04319611d7cde718d0e82da8e034e04b15fb3bb37c3784d8f7313577c5178b06.md +73 -0
- package/.zen/src/pt-PT/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/ru-RU/04319611d7cde718d0e82da8e034e04b15fb3bb37c3784d8f7313577c5178b06.md +73 -0
- package/.zen/src/ru-RU/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/zh-Hans/04319611d7cde718d0e82da8e034e04b15fb3bb37c3784d8f7313577c5178b06.md +73 -0
- package/.zen/src/zh-Hans/084ef1f6a0167df8621c673c79211309d4af6c588e7bbe3e043f7c244edd0ac6.md +80 -0
- package/.zen/src/zh-Hans/48eb2ad3e174cd06ed16c959fa58e0381dbc4a4147fa3456b21eea2b3d67c329.md +81 -0
- package/.zen/src/zh-Hans/afbf4998656c97181d0edc711e388ad11e0f08f5c6f329861327202462a3a34a.md +63 -0
- package/README.md +27 -21
- package/dist/languages.d.ts +2 -0
- package/dist/languages.d.ts.map +1 -0
- package/dist/languages.js +14 -0
- package/dist/languages.js.map +1 -0
- package/dist/process/template.d.ts.map +1 -1
- package/dist/process/template.js +2 -7
- package/dist/process/template.js.map +1 -1
- package/package.json +2 -2
- package/src/languages.ts +10 -0
- package/src/process/template.ts +2 -7
- package/docs/advanced-usage.md +0 -39
- package/docs/deployment/github-pages.md +0 -107
- package/docs/getting-started.md +0 -26
- package/docs/guides/best-practices.md +0 -175
- package/docs/guides/config.md +0 -48
- package/docs/guides/index.md +0 -51
- package/docs/testing/test-document.md +0 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ZEN - Инструмент для создания сайтов документации на Markdown
|
|
3
|
+
summary: ZEN — это минималистичный генератор статических сайтов на Markdown, ориентированный на написание контента. Использует ИИ для обработки перевода и навигации, поддерживает многоязычную сборку без сложной конфигурации.
|
|
4
|
+
tags:
|
|
5
|
+
- Markdown
|
|
6
|
+
- Генератор статических сайтов
|
|
7
|
+
- ИИ-перевод
|
|
8
|
+
- Мультиязычность
|
|
9
|
+
- Минимализм
|
|
10
|
+
- Инструмент для документации
|
|
11
|
+
- ZEN
|
|
12
|
+
inferred_lang: ru-RU
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ZEN - Простой инструмент для создания сайтов документации на Markdown
|
|
16
|
+
|
|
17
|
+
[简体中文](https://zccz14.github.io/ZEN/zh-Hans) | [English](https://zccz14.github.io/ZEN/en-US)
|
|
18
|
+
|
|
19
|
+
Зачем ещё один генератор статических сайтов на Markdown? Я заново обдумал, как инструменты для документации в эпоху ИИ могут лучше служить авторам:
|
|
20
|
+
|
|
21
|
+
- **Возвращение к содержанию**: Минимизация отвлечений, концентрация на письме
|
|
22
|
+
|
|
23
|
+
Вернуть документации её суть, а письму — спокойствие.
|
|
24
|
+
|
|
25
|
+
Во-первых, я не хочу быть библиотекарем. Иногда я хочу что-то записать, но, возможно, ещё не придумал заголовок или не сформировал чёткую структуру. Я хочу, чтобы LLM автоматически генерировала для меня заголовки, делала резюме, классифицировала, создавала навигацию и другую организационную работу.
|
|
26
|
+
|
|
27
|
+
Во-вторых, мой кабинет должен быть чистым. Мне не нужны инструменты сборки со сложной конфигурацией, возня со сложными настройками документации, не нравятся сложные структуры. Каждый раз, когда я вижу конфигурационные файлы и структуру проектов таких инструментов, как Docusaurus, VuePress, Astro, у меня начинает болеть голова. Теперь ZEN прячет всю конфигурацию в каталог `.zen`, сметает её в угол. Пользователю нужно сосредоточиться только на написании контента, всё остальное ZEN берёт на себя. Все остальные каталоги — это ваше рабочее пространство, вы можете организовывать свои Markdown-файлы как угодно.
|
|
28
|
+
|
|
29
|
+
- **Возвращение к родному языку**: Пишите на родном языке, плавно создавайте многоязычные версии
|
|
30
|
+
|
|
31
|
+
Жизнь коротка, мне лень переводить. Человек наиболее полно раскрывает глубину своего мышления, используя родной язык. Но при этом оставаться на связи с миром необходимо, я не хочу отказываться от многоязычного общения. Поэтому мне хотелось бы иметь инструмент, который позволил бы мне писать на родном языке и одновременно сделать мой контент доступным для большего числа людей. Современные решения i18n требуют не только самостоятельного перевода, но и поддержания актуальности контента, что слишком хлопотно. Я выбираю использование LLM для перевода, что экономит мне массу времени и позволяет выполнить перевод на множество языков одним нажатием.
|
|
32
|
+
|
|
33
|
+
## Основные возможности
|
|
34
|
+
|
|
35
|
+
1. **Генерация статического сайта**
|
|
36
|
+
- Преобразует любую папку с Markdown-файлами в статический HTML-сайт.
|
|
37
|
+
|
|
38
|
+
2. **Интеллектуальная навигация**
|
|
39
|
+
- Генерирует карту сайта и навигацию. Не требуется сохранять исходную структуру каталогов Markdown-файлов, исходные файлы можно свободно перемещать.
|
|
40
|
+
|
|
41
|
+
3. **Инкрементный i18n-перевод**
|
|
42
|
+
- Использует LLM для инкрементного i18n-перевода, позволяя пользователю писать Markdown на родном языке, но при этом быть многоязычным.
|
|
43
|
+
|
|
44
|
+
## Философия дизайна
|
|
45
|
+
|
|
46
|
+
- **Минимализм**: Минимум конфигурации, максимум гибкости.
|
|
47
|
+
- **Приоритет контента**: Сосредоточьтесь на письме, а не на настройке инструментов.
|
|
48
|
+
- **Расширение возможностей с помощью ИИ**: Использование ИИ для обработки перевода и организации контента.
|
|
49
|
+
- **Кросс-язычность**: Поддержка создания и отображения многоязычного контента.
|
|
50
|
+
|
|
51
|
+
## Быстрый старт
|
|
52
|
+
|
|
53
|
+
### Рекомендуемый способ использования
|
|
54
|
+
|
|
55
|
+
**Рекомендуется перейти в каталог, содержащий Markdown-файлы, и сразу использовать следующую команду для начала сборки:**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Установите переменные окружения (измените в соответствии с вашей ситуацией)
|
|
59
|
+
export OPENAI_API_KEY="sk-xxxxxx" # Обязательно: замените на ваш OpenAI API Key
|
|
60
|
+
export OPENAI_BASE_URL="https://api.openai.com/v1" # Опционально, по умолчанию используется официальный OpenAI API
|
|
61
|
+
export OPENAI_MODEL="gpt-3.5-turbo" # Опционально, по умолчанию используется модель gpt-3.5-turbo
|
|
62
|
+
|
|
63
|
+
# Собрать сайт с поддержкой многоязычного перевода
|
|
64
|
+
npx zengen@latest build --lang zh-Hans --lang en-US --verbose
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Посмотреть больше параметров или справку**:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npx zengen
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Примечание**: ZEN принудительно использует текущий каталог в качестве исходного, вывод осуществляется в каталог `.zen/dist`. Параметры для указания исходного и выходного каталогов не поддерживаются.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ZEN - Инструмент для создания сайтов документации на Markdown
|
|
3
|
+
summary: ZEN — это простой генератор статических сайтов на Markdown, ориентированный на контент и минимализм. Использует ИИ для интеллектуальной навигации и многоязычного перевода, помогая пользователям сосредоточиться на написании текстов без сложных настроек.
|
|
4
|
+
tags:
|
|
5
|
+
- Markdown
|
|
6
|
+
- Генератор статических сайтов
|
|
7
|
+
- ИИ-перевод
|
|
8
|
+
- Многоязычность
|
|
9
|
+
- Минимализм
|
|
10
|
+
- Инструмент для документации
|
|
11
|
+
- ZEN
|
|
12
|
+
inferred_lang: ru-RU
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ZEN - Простой инструмент для создания сайтов документации на Markdown
|
|
16
|
+
|
|
17
|
+
[简体中文](https://zccz14.github.io/ZEN/zh-Hans) |
|
|
18
|
+
[English](https://zccz14.github.io/ZEN/en-US) |
|
|
19
|
+
[Español](https://zccz14.github.io/ZEN/es-ES) |
|
|
20
|
+
[Português](https://zccz14.github.io/ZEN/pt-PT) |
|
|
21
|
+
[Русский](https://zccz14.github.io/ZEN/ru-RU) |
|
|
22
|
+
[Français](https://zccz14.github.io/ZEN/fr-FR) |
|
|
23
|
+
[日本語](https://zccz14.github.io/ZEN/ja-JP) |
|
|
24
|
+
[한국어](https://zccz14.github.io/ZEN/ko-KR) |
|
|
25
|
+
[Deutsch](https://zccz14.github.io/ZEN/de-DE) |
|
|
26
|
+
|
|
27
|
+
Зачем создавать ещё один генератор статических сайтов на Markdown? Я задумался о том, как инструменты для документации могут лучше служить авторам в эпоху ИИ:
|
|
28
|
+
|
|
29
|
+
- **Возвращение к контенту**: Минимизация отвлекающих факторов, фокус на написании
|
|
30
|
+
|
|
31
|
+
Вернуть документации её суть, а написанию — спокойствие.
|
|
32
|
+
|
|
33
|
+
Во-первых, я не хочу быть библиотекарем. Иногда я хочу что-то записать, но, возможно, ещё не придумал заголовок или не организовал это должным образом. Я хочу, чтобы LLM автоматически генерировала заголовки, делала резюме, классифицировала, создавала навигацию и выполняла другую организационную работу.
|
|
34
|
+
|
|
35
|
+
Во-вторых, мой рабочий кабинет должен быть чистым. Мне не нужны сложные инструменты сборки с запутанными конфигурациями, не нравятся сложные структуры. Каждый раз, когда я вижу конфигурационные файлы и структуру проектов таких инструментов, как Docusaurus, VuePress, Astro, у меня начинает болеть голова. Теперь ZEN прячет все настройки в каталог `.zen`, сметает их в угол. Пользователю нужно сосредоточиться только на содержании, а всё остальное ZEN берёт на себя. Все остальные каталоги — это ваше рабочее пространство, вы можете свободно организовывать свои Markdown-файлы.
|
|
36
|
+
|
|
37
|
+
- **Возвращение к родному языку**: Пишите на родном языке, плавно создавайте многоязычные версии
|
|
38
|
+
|
|
39
|
+
Жизнь коротка, мне лень переводить. Человек наиболее полно раскрывает глубину своего мышления, используя родной язык. Но при этом оставаться на связи с миром необходимо, и я не хочу отказываться от многоязычного общения. Поэтому мне хотелось бы иметь инструмент, который позволил бы мне писать на родном языке, но при этом сделать мой контент доступным для большего числа людей. Текущие решения i18n требуют не только самостоятельного перевода, но и поддержания актуальности контента, что слишком хлопотно. Я выбрал использование LLM для перевода, что экономит мне много времени и позволяет выполнить перевод на множество языков одним нажатием кнопки.
|
|
40
|
+
|
|
41
|
+
## Основные возможности
|
|
42
|
+
|
|
43
|
+
1. **Генерация статического сайта**
|
|
44
|
+
- Преобразует любую папку с Markdown-файлами в статический HTML-сайт.
|
|
45
|
+
|
|
46
|
+
2. **Интеллектуальная навигация**
|
|
47
|
+
- Генерирует карту сайта и навигацию. Не требуется сохранять исходную структуру каталогов Markdown-файлов, исходные файлы можно свободно перемещать.
|
|
48
|
+
|
|
49
|
+
3. **Инкрементный i18n-перевод**
|
|
50
|
+
- Использует LLM для инкрементного i18n-перевода, позволяя пользователям писать Markdown на родном языке, но при этом создавать многоязычный контент.
|
|
51
|
+
|
|
52
|
+
## Философия дизайна
|
|
53
|
+
|
|
54
|
+
- **Минимализм**: Минимум настроек, максимум гибкости.
|
|
55
|
+
- **Приоритет контента**: Фокус на написании, а не на настройке инструментов.
|
|
56
|
+
- **ИИ-возможности**: Использование ИИ для обработки перевода и организации контента.
|
|
57
|
+
- **Кросс-язычность**: Поддержка создания и отображения многоязычного контента.
|
|
58
|
+
|
|
59
|
+
## Быстрый старт
|
|
60
|
+
|
|
61
|
+
### Рекомендуемый способ использования
|
|
62
|
+
|
|
63
|
+
**Рекомендуется перейти в каталог, содержащий Markdown-файлы, и сразу начать сборку с помощью следующей команды:**
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Установите переменные окружения (измените в соответствии с вашей ситуацией)
|
|
67
|
+
export OPENAI_API_KEY="sk-xxxxxx" # Обязательно: замените на ваш OpenAI API Key
|
|
68
|
+
export OPENAI_BASE_URL="https://api.openai.com/v1" # Опционально, по умолчанию используется официальный API OpenAI
|
|
69
|
+
export OPENAI_MODEL="gpt-3.5-turbo" # Опционально, по умолчанию используется модель gpt-3.5-turbo
|
|
70
|
+
|
|
71
|
+
# Собрать сайт с поддержкой многоязычного перевода
|
|
72
|
+
npx zengen@latest build --lang zh-Hans --lang en-US --verbose
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Посмотреть больше параметров или справку**:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npx zengen
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Примечание**: ZEN принудительно использует текущий каталог в качестве исходного, а вывод помещает в каталог `.zen/dist`. Не поддерживается указание параметров исходного и выходного каталогов.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ZEN - Markdown 文档站点构建工具
|
|
3
|
+
summary: ZEN 是一个极简的 Markdown 静态站点生成工具,专注于内容写作,利用 AI 处理翻译和导航,支持多语言构建,无需复杂配置。
|
|
4
|
+
tags:
|
|
5
|
+
- Markdown
|
|
6
|
+
- 静态站点生成器
|
|
7
|
+
- AI 翻译
|
|
8
|
+
- 多语言
|
|
9
|
+
- 极简主义
|
|
10
|
+
- 文档工具
|
|
11
|
+
- ZEN
|
|
12
|
+
inferred_lang: zh-Hans
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ZEN - 简洁的 Markdown 文档站点构建工具
|
|
16
|
+
|
|
17
|
+
[简体中文](https://zccz14.github.io/ZEN/zh-Hans) | [English](https://zccz14.github.io/ZEN/en-US)
|
|
18
|
+
|
|
19
|
+
为什么又搞了个 Markdown 静态站点生成器?我重新思考了 AI 时代下,文档工具可以如何更好地服务于写作者:
|
|
20
|
+
|
|
21
|
+
- 回归内容:最小化打扰,专注写作
|
|
22
|
+
|
|
23
|
+
让文档回归本质,让写作回归宁静。
|
|
24
|
+
|
|
25
|
+
其一,我不想做图书管理员。我有时想写下一些内容,但我可能还没有想好它的标题,还没有形成特别的组织。我希望 LLM 会自动帮我生成标题、做摘要、分类、导航等整理工作。
|
|
26
|
+
|
|
27
|
+
其二,我的书房必须打扫干净。我不想要配置复杂的构建工具,折腾复杂的文档配置,不喜欢复杂的结构。每次我看到 Docusaurus、VuePress、Astro 这些工具的配置文件和项目结构,我就头疼。现在,ZEN 选择将所有的配置都隐藏到 .zen 目录下,扫到角落里,用户只需要专注于写作内容,其他的交给 ZEN 来处理。其他的目录都是您的写作空间,您可以随意组织您的 Markdown 文件。
|
|
28
|
+
|
|
29
|
+
- 回归母语:用母语写作,丝滑构建多语言版本
|
|
30
|
+
|
|
31
|
+
人生苦短,我懒得翻译。人在使用母语时,才是最能发挥自身思考深度的。但同时与世界保持连接又是必要的,我不想放弃多语言的交流。于是我希望有一个工具,能让我用母语写作,同时又能让更多人看到我的内容。现在的 i18n 需要自己翻译不说,还得自己维护内容更新,太麻烦了。我选择使用 LLM 来帮我做翻译,省下了我很多时间,并且可以一键完成多国语言翻译。
|
|
32
|
+
|
|
33
|
+
## 基本功能
|
|
34
|
+
|
|
35
|
+
1. **静态站点生成**
|
|
36
|
+
- 将任意一个包含 Markdown 的文件夹构建成一个静态 HTML 站点
|
|
37
|
+
|
|
38
|
+
2. **智能导航**
|
|
39
|
+
- 生成站点地图和导航,不需要保持原始的 Markdown 源文件的目录结构,可以随意移动源文件。
|
|
40
|
+
|
|
41
|
+
3. **增量 i18n 翻译**
|
|
42
|
+
- 使用 LLM 进行增量 i18n 翻译,让用户使用母语编写 Markdown,但是用户可以是多语言的
|
|
43
|
+
|
|
44
|
+
## 设计理念
|
|
45
|
+
|
|
46
|
+
- **极简主义**: 最少的配置,最大的灵活性
|
|
47
|
+
- **内容优先**: 专注于写作,而不是工具配置
|
|
48
|
+
- **AI 赋能**: 利用 AI 处理翻译和内容组织
|
|
49
|
+
- **跨语言**: 支持多语言内容创作和展示
|
|
50
|
+
|
|
51
|
+
## 快速开始
|
|
52
|
+
|
|
53
|
+
### 推荐使用方式
|
|
54
|
+
|
|
55
|
+
**推荐用户切换到包含 Markdown 文件的目录下,直接使用以下命令开始构建:**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# 设置环境变量 (根据您的实际情况修改)
|
|
59
|
+
export OPENAI_API_KEY="sk-xxxxxx" # 必须:请替换为您的 OpenAI API Key
|
|
60
|
+
export OPENAI_BASE_URL="https://api.openai.com/v1" # 可选,默认使用 OpenAI 官方 API
|
|
61
|
+
export OPENAI_MODEL="gpt-3.5-turbo" # 可选,默认使用 gpt-3.5-turbo 模型
|
|
62
|
+
|
|
63
|
+
# 构建站点,支持多语言翻译
|
|
64
|
+
npx zengen@latest build --lang zh-Hans --lang en-US --verbose
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**查看更多参数或帮助**:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npx zengen
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**注意**:ZEN 强制使用当前目录作为源目录,输出到 `.zen/dist` 目录。不支持指定源目录和输出目录参数。
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ZEN - Markdown 文档站点构建工具
|
|
3
|
+
summary: ZEN 是一个简洁的 Markdown 静态站点生成工具,专注于内容写作,利用 AI 实现智能导航和多语言翻译,无需复杂配置。
|
|
4
|
+
tags:
|
|
5
|
+
- Markdown
|
|
6
|
+
- 静态站点生成
|
|
7
|
+
- AI 翻译
|
|
8
|
+
- 多语言
|
|
9
|
+
- 极简主义
|
|
10
|
+
- 文档工具
|
|
11
|
+
- ZEN
|
|
12
|
+
inferred_lang: zh-Hans
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ZEN - 简洁的 Markdown 文档站点构建工具
|
|
16
|
+
|
|
17
|
+
[简体中文](https://zccz14.github.io/ZEN/zh-Hans) |
|
|
18
|
+
[English](https://zccz14.github.io/ZEN/en-US) |
|
|
19
|
+
[Español](https://zccz14.github.io/ZEN/es-ES) |
|
|
20
|
+
[Ruсть](https://zccz14.github.io/ZEN/ru-RU) |
|
|
21
|
+
[Français](https://zccz14.github.io/ZEN/fr-FR) |
|
|
22
|
+
[Deutsch](https://zccz14.github.io/ZEN/de-DE) |
|
|
23
|
+
[日本語](https://zccz14.github.io/ZEN/ja-JP) |
|
|
24
|
+
[한국어](https://zccz14.github.io/ZEN/ko-KR)
|
|
25
|
+
|
|
26
|
+
为什么又搞了个 Markdown 静态站点生成器?我重新思考了 AI 时代下,文档工具可以如何更好地服务于写作者:
|
|
27
|
+
|
|
28
|
+
- 回归内容:最小化打扰,专注写作
|
|
29
|
+
|
|
30
|
+
让文档回归本质,让写作回归宁静。
|
|
31
|
+
|
|
32
|
+
其一,我不想做图书管理员。我有时想写下一些内容,但我可能还没有想好它的标题,还没有形成特别的组织。我希望 LLM 会自动帮我生成标题、做摘要、分类、导航等整理工作。
|
|
33
|
+
|
|
34
|
+
其二,我的书房必须打扫干净。我不想要配置复杂的构建工具,折腾复杂的文档配置,不喜欢复杂的结构。每次我看到 Docusaurus、VuePress、Astro 这些工具的配置文件和项目结构,我就头疼。现在,ZEN 选择将所有的配置都隐藏到 .zen 目录下,扫到角落里,用户只需要专注于写作内容,其他的交给 ZEN 来处理。其他的目录都是您的写作空间,您可以随意组织您的 Markdown 文件。
|
|
35
|
+
|
|
36
|
+
- 回归母语:用母语写作,丝滑构建多语言版本
|
|
37
|
+
|
|
38
|
+
人生苦短,我懒得翻译。人在使用母语时,才是最能发挥自身思考深度的。但同时与世界保持连接又是必要的,我不想放弃多语言的交流。于是我希望有一个工具,能让我用母语写作,同时又能让更多人看到我的内容。现在的 i18n 需要自己翻译不说,还得自己维护内容更新,太麻烦了。我选择使用 LLM 来帮我做翻译,省下了我很多时间,并且可以一键完成多国语言翻译。
|
|
39
|
+
|
|
40
|
+
## 基本功能
|
|
41
|
+
|
|
42
|
+
1. **静态站点生成**
|
|
43
|
+
- 将任意一个包含 Markdown 的文件夹构建成一个静态 HTML 站点
|
|
44
|
+
|
|
45
|
+
2. **智能导航**
|
|
46
|
+
- 生成站点地图和导航,不需要保持原始的 Markdown 源文件的目录结构,可以随意移动源文件。
|
|
47
|
+
|
|
48
|
+
3. **增量 i18n 翻译**
|
|
49
|
+
- 使用 LLM 进行增量 i18n 翻译,让用户使用母语编写 Markdown,但是用户可以是多语言的
|
|
50
|
+
|
|
51
|
+
## 设计理念
|
|
52
|
+
|
|
53
|
+
- **极简主义**: 最少的配置,最大的灵活性
|
|
54
|
+
- **内容优先**: 专注于写作,而不是工具配置
|
|
55
|
+
- **AI 赋能**: 利用 AI 处理翻译和内容组织
|
|
56
|
+
- **跨语言**: 支持多语言内容创作和展示
|
|
57
|
+
|
|
58
|
+
## 快速开始
|
|
59
|
+
|
|
60
|
+
### 推荐使用方式
|
|
61
|
+
|
|
62
|
+
**推荐用户切换到包含 Markdown 文件的目录下,直接使用以下命令开始构建:**
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# 设置环境变量 (根据您的实际情况修改)
|
|
66
|
+
export OPENAI_API_KEY="sk-xxxxxx" # 必须:请替换为您的 OpenAI API Key
|
|
67
|
+
export OPENAI_BASE_URL="https://api.openai.com/v1" # 可选,默认使用 OpenAI 官方 API
|
|
68
|
+
export OPENAI_MODEL="gpt-3.5-turbo" # 可选,默认使用 gpt-3.5-turbo 模型
|
|
69
|
+
|
|
70
|
+
# 构建站点,支持多语言翻译
|
|
71
|
+
npx zengen@latest build --lang zh-Hans --lang en-US --verbose
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**查看更多参数或帮助**:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npx zengen
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**注意**:ZEN 强制使用当前目录作为源目录,输出到 `.zen/dist` 目录。不支持指定源目录和输出目录参数。
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ZEN - Markdown 文档站点构建工具
|
|
3
|
+
summary: ZEN 是一个简洁的 Markdown 静态站点生成工具,强调内容优先和极简主义,利用 AI 实现智能导航和多语言翻译,帮助用户专注于写作而无需复杂配置。
|
|
4
|
+
tags:
|
|
5
|
+
- Markdown
|
|
6
|
+
- 静态站点生成
|
|
7
|
+
- AI 翻译
|
|
8
|
+
- 多语言
|
|
9
|
+
- 极简主义
|
|
10
|
+
- 文档工具
|
|
11
|
+
- ZEN
|
|
12
|
+
inferred_lang: zh-Hans
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ZEN - 简洁的 Markdown 文档站点构建工具
|
|
16
|
+
|
|
17
|
+
[简体中文](https://zccz14.github.io/ZEN/zh-Hans) |
|
|
18
|
+
[English](https://zccz14.github.io/ZEN/en-US) |
|
|
19
|
+
[Español](https://zccz14.github.io/ZEN/es-ES) |
|
|
20
|
+
[Português](https://zccz14.github.io/ZEN/pt-PT) |
|
|
21
|
+
[Русский](https://zccz14.github.io/ZEN/ru-RU) |
|
|
22
|
+
[Français](https://zccz14.github.io/ZEN/fr-FR) |
|
|
23
|
+
[日本語](https://zccz14.github.io/ZEN/ja-JP) |
|
|
24
|
+
[한국어](https://zccz14.github.io/ZEN/ko-KR) |
|
|
25
|
+
[Deutsch](https://zccz14.github.io/ZEN/de-DE) |
|
|
26
|
+
|
|
27
|
+
为什么又搞了个 Markdown 静态站点生成器?我重新思考了 AI 时代下,文档工具可以如何更好地服务于写作者:
|
|
28
|
+
|
|
29
|
+
- 回归内容:最小化打扰,专注写作
|
|
30
|
+
|
|
31
|
+
让文档回归本质,让写作回归宁静。
|
|
32
|
+
|
|
33
|
+
其一,我不想做图书管理员。我有时想写下一些内容,但我可能还没有想好它的标题,还没有形成特别的组织。我希望 LLM 会自动帮我生成标题、做摘要、分类、导航等整理工作。
|
|
34
|
+
|
|
35
|
+
其二,我的书房必须打扫干净。我不想要配置复杂的构建工具,折腾复杂的文档配置,不喜欢复杂的结构。每次我看到 Docusaurus、VuePress、Astro 这些工具的配置文件和项目结构,我就头疼。现在,ZEN 选择将所有的配置都隐藏到 .zen 目录下,扫到角落里,用户只需要专注于写作内容,其他的交给 ZEN 来处理。其他的目录都是您的写作空间,您可以随意组织您的 Markdown 文件。
|
|
36
|
+
|
|
37
|
+
- 回归母语:用母语写作,丝滑构建多语言版本
|
|
38
|
+
|
|
39
|
+
人生苦短,我懒得翻译。人在使用母语时,才是最能发挥自身思考深度的。但同时与世界保持连接又是必要的,我不想放弃多语言的交流。于是我希望有一个工具,能让我用母语写作,同时又能让更多人看到我的内容。现在的 i18n 需要自己翻译不说,还得自己维护内容更新,太麻烦了。我选择使用 LLM 来帮我做翻译,省下了我很多时间,并且可以一键完成多国语言翻译。
|
|
40
|
+
|
|
41
|
+
## 基本功能
|
|
42
|
+
|
|
43
|
+
1. **静态站点生成**
|
|
44
|
+
- 将任意一个包含 Markdown 的文件夹构建成一个静态 HTML 站点
|
|
45
|
+
|
|
46
|
+
2. **智能导航**
|
|
47
|
+
- 生成站点地图和导航,不需要保持原始的 Markdown 源文件的目录结构,可以随意移动源文件。
|
|
48
|
+
|
|
49
|
+
3. **增量 i18n 翻译**
|
|
50
|
+
- 使用 LLM 进行增量 i18n 翻译,让用户使用母语编写 Markdown,但是用户可以是多语言的
|
|
51
|
+
|
|
52
|
+
## 设计理念
|
|
53
|
+
|
|
54
|
+
- **极简主义**: 最少的配置,最大的灵活性
|
|
55
|
+
- **内容优先**: 专注于写作,而不是工具配置
|
|
56
|
+
- **AI 赋能**: 利用 AI 处理翻译和内容组织
|
|
57
|
+
- **跨语言**: 支持多语言内容创作和展示
|
|
58
|
+
|
|
59
|
+
## 快速开始
|
|
60
|
+
|
|
61
|
+
### 推荐使用方式
|
|
62
|
+
|
|
63
|
+
**推荐用户切换到包含 Markdown 文件的目录下,直接使用以下命令开始构建:**
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# 设置环境变量 (根据您的实际情况修改)
|
|
67
|
+
export OPENAI_API_KEY="sk-xxxxxx" # 必须:请替换为您的 OpenAI API Key
|
|
68
|
+
export OPENAI_BASE_URL="https://api.openai.com/v1" # 可选,默认使用 OpenAI 官方 API
|
|
69
|
+
export OPENAI_MODEL="gpt-3.5-turbo" # 可选,默认使用 gpt-3.5-turbo 模型
|
|
70
|
+
|
|
71
|
+
# 构建站点,支持多语言翻译
|
|
72
|
+
npx zengen@latest build --lang zh-Hans --lang en-US --verbose
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**查看更多参数或帮助**:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
npx zengen
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**注意**:ZEN 强制使用当前目录作为源目录,输出到 `.zen/dist` 目录。不支持指定源目录和输出目录参数。
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ZEN - Markdown 文档站点构建工具
|
|
3
|
+
summary: ZEN 是一个极简的 Markdown 静态站点生成工具,强调内容优先,通过隐藏配置和 AI 赋能,让用户专注于母语写作,并支持多语言翻译和智能导航。
|
|
4
|
+
tags:
|
|
5
|
+
- Markdown
|
|
6
|
+
- 静态站点生成
|
|
7
|
+
- AI 翻译
|
|
8
|
+
- 多语言
|
|
9
|
+
- 极简主义
|
|
10
|
+
- 内容优先
|
|
11
|
+
- 文档工具
|
|
12
|
+
inferred_lang: zh-Hans
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ZEN - 简洁的 Markdown 文档站点构建工具
|
|
16
|
+
|
|
17
|
+
[简体中文](https://zccz14.github.io/ZEN/zh-Hans) | [English](https://zccz14.github.io/ZEN/en-US)
|
|
18
|
+
|
|
19
|
+
为什么又搞了个 Markdown 静态站点生成器?
|
|
20
|
+
|
|
21
|
+
- 回归内容:最小化打扰,让您专注写作
|
|
22
|
+
|
|
23
|
+
让文档回归本质,让写作回归宁静。我不想要配置复杂的构建工具,折腾复杂的文档配置,不喜欢复杂的结构。每次我看到 Docusaurus、VuePress、Astro 这些工具的配置文件和项目结构,我就头疼。现在,ZEN 选择将所有的配置都隐藏到 .zen 目录下,扫到角落里,用户只需要专注于写作内容,其他的交给 ZEN 来处理。其他的目录都是您的写作空间,您可以随意组织您的 Markdown 文件。LLM 还会自动帮您生成标题、做摘要、分类、生成导航等工作。您真的只需要专注于写作。
|
|
24
|
+
|
|
25
|
+
- 回归母语:仅用母语写作,丝滑构建多语言版本
|
|
26
|
+
|
|
27
|
+
人生苦短,我懒得翻译。人在使用母语时,才是最能发挥自身思考深度的。但同时与世界保持连接又是必要的,我不想放弃多语言的交流。于是我希望有一个工具,能让我用母语写作,同时又能让更多人看到我的内容。现在的 i18n 需要自己翻译不说,还得自己维护内容更新,太麻烦了。我选择使用 LLM 来帮我做翻译,省下了我很多时间,并且可以一键完成多国语言翻译。
|
|
28
|
+
|
|
29
|
+
## 基本功能
|
|
30
|
+
|
|
31
|
+
1. **静态站点生成**
|
|
32
|
+
- 将任意一个包含 Markdown 的文件夹构建成一个静态 HTML 站点
|
|
33
|
+
|
|
34
|
+
2. **智能导航**
|
|
35
|
+
- 生成站点地图和导航,不需要保持原始的 Markdown 源文件的目录结构
|
|
36
|
+
|
|
37
|
+
3. **增量 i18n 翻译**
|
|
38
|
+
- 使用 LLM 进行增量 i18n 翻译,让用户使用母语编写 Markdown,但是用户可以是多语言的
|
|
39
|
+
|
|
40
|
+
## 设计理念
|
|
41
|
+
|
|
42
|
+
- **极简主义**: 最少的配置,最大的灵活性
|
|
43
|
+
- **内容优先**: 专注于写作,而不是工具配置
|
|
44
|
+
- **AI 赋能**: 利用 AI 处理翻译和内容组织
|
|
45
|
+
- **跨语言**: 支持多语言内容创作和展示
|
|
46
|
+
|
|
47
|
+
## 快速开始
|
|
48
|
+
|
|
49
|
+
### 推荐使用方式
|
|
50
|
+
|
|
51
|
+
**推荐用户切换到包含 Markdown 文件的目录下,直接使用以下命令开始构建:**
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npx zengen build
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**查看更多参数或帮助**:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx zengen
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**注意**:ZEN 强制使用当前目录作为源目录,输出到 `.zen/dist` 目录。不支持指定源目录和输出目录参数。
|
package/README.md
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
# ZEN - 简洁的 Markdown 文档站点构建工具
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[简体中文](https://zccz14.github.io/ZEN/zh-Hans) |
|
|
4
|
+
[English](https://zccz14.github.io/ZEN/en-US) |
|
|
5
|
+
[Español](https://zccz14.github.io/ZEN/es-ES) |
|
|
6
|
+
[Português](https://zccz14.github.io/ZEN/pt-PT) |
|
|
7
|
+
[Русский](https://zccz14.github.io/ZEN/ru-RU) |
|
|
8
|
+
[Français](https://zccz14.github.io/ZEN/fr-FR) |
|
|
9
|
+
[日本語](https://zccz14.github.io/ZEN/ja-JP) |
|
|
10
|
+
[한국어](https://zccz14.github.io/ZEN/ko-KR) |
|
|
11
|
+
[Deutsch](https://zccz14.github.io/ZEN/de-DE) |
|
|
4
12
|
|
|
5
|
-
|
|
13
|
+
为什么又搞了个 Markdown 静态站点生成器?我重新思考了 AI 时代下,文档工具可以如何更好地服务于写作者:
|
|
6
14
|
|
|
7
|
-
|
|
15
|
+
- 回归内容:最小化打扰,专注写作
|
|
8
16
|
|
|
9
|
-
|
|
17
|
+
让文档回归本质,让写作回归宁静。
|
|
10
18
|
|
|
11
|
-
|
|
19
|
+
其一,我不想做图书管理员。我有时想写下一些内容,但我可能还没有想好它的标题,还没有形成特别的组织。我希望 LLM 会自动帮我生成标题、做摘要、分类、导航等整理工作。
|
|
12
20
|
|
|
13
|
-
|
|
21
|
+
其二,我的书房必须打扫干净。我不想要配置复杂的构建工具,折腾复杂的文档配置,不喜欢复杂的结构。每次我看到 Docusaurus、VuePress、Astro 这些工具的配置文件和项目结构,我就头疼。现在,ZEN 选择将所有的配置都隐藏到 .zen 目录下,扫到角落里,用户只需要专注于写作内容,其他的交给 ZEN 来处理。其他的目录都是您的写作空间,您可以随意组织您的 Markdown 文件。
|
|
22
|
+
|
|
23
|
+
- 回归母语:用母语写作,丝滑构建多语言版本
|
|
24
|
+
|
|
25
|
+
人生苦短,我懒得翻译。人在使用母语时,才是最能发挥自身思考深度的。但同时与世界保持连接又是必要的,我不想放弃多语言的交流。于是我希望有一个工具,能让我用母语写作,同时又能让更多人看到我的内容。现在的 i18n 需要自己翻译不说,还得自己维护内容更新,太麻烦了。我选择使用 LLM 来帮我做翻译,省下了我很多时间,并且可以一键完成多国语言翻译。
|
|
14
26
|
|
|
15
27
|
## 基本功能
|
|
16
28
|
|
|
@@ -18,7 +30,7 @@
|
|
|
18
30
|
- 将任意一个包含 Markdown 的文件夹构建成一个静态 HTML 站点
|
|
19
31
|
|
|
20
32
|
2. **智能导航**
|
|
21
|
-
- 生成站点地图和导航,不需要保持原始的 Markdown
|
|
33
|
+
- 生成站点地图和导航,不需要保持原始的 Markdown 源文件的目录结构,可以随意移动源文件。
|
|
22
34
|
|
|
23
35
|
3. **增量 i18n 翻译**
|
|
24
36
|
- 使用 LLM 进行增量 i18n 翻译,让用户使用母语编写 Markdown,但是用户可以是多语言的
|
|
@@ -37,25 +49,19 @@
|
|
|
37
49
|
**推荐用户切换到包含 Markdown 文件的目录下,直接使用以下命令开始构建:**
|
|
38
50
|
|
|
39
51
|
```bash
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
52
|
+
# 设置环境变量 (根据您的实际情况修改)
|
|
53
|
+
export OPENAI_API_KEY="sk-xxxxxx" # 必须:请替换为您的 OpenAI API Key
|
|
54
|
+
export OPENAI_BASE_URL="https://api.openai.com/v1" # 可选,默认使用 OpenAI 官方 API
|
|
55
|
+
export OPENAI_MODEL="gpt-3.5-turbo" # 可选,默认使用 gpt-3.5-turbo 模型
|
|
44
56
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
npx zengen build --watch
|
|
57
|
+
# 构建站点,支持多语言翻译
|
|
58
|
+
npx zengen@latest build --lang zh-Hans --lang en-US --verbose
|
|
49
59
|
```
|
|
50
60
|
|
|
51
|
-
|
|
61
|
+
**查看更多参数或帮助**:
|
|
52
62
|
|
|
53
63
|
```bash
|
|
54
64
|
npx zengen
|
|
55
65
|
```
|
|
56
66
|
|
|
57
|
-
**注意**:ZEN 强制使用当前目录作为源目录,输出到 `.zen/dist`
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
**ZEN** - 让文档回归本质,让写作回归宁静。
|
|
67
|
+
**注意**:ZEN 强制使用当前目录作为源目录,输出到 `.zen/dist` 目录。不支持指定源目录和输出目录参数。
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASjD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LANGUAGE_NAMES = void 0;
|
|
4
|
+
exports.LANGUAGE_NAMES = {
|
|
5
|
+
'zh-Hans': '简体中文',
|
|
6
|
+
'en-US': 'English',
|
|
7
|
+
'ja-JP': '日本語',
|
|
8
|
+
'ko-KR': '한국어',
|
|
9
|
+
'es-ES': 'Español',
|
|
10
|
+
'fr-FR': 'Français',
|
|
11
|
+
'de-DE': 'Deutsch',
|
|
12
|
+
'ru-RU': 'Русский',
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=languages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAA2B;IACpD,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":"AAyJA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAuCrD"}
|
package/dist/process/template.js
CHANGED
|
@@ -36,16 +36,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.renderTemplates = renderTemplates;
|
|
37
37
|
const fs = __importStar(require("fs/promises"));
|
|
38
38
|
const path = __importStar(require("path"));
|
|
39
|
+
const languages_1 = require("../languages");
|
|
39
40
|
const metadata_1 = require("../metadata");
|
|
40
41
|
const paths_1 = require("../paths");
|
|
41
42
|
const convertMarkdownToHtml_1 = require("../utils/convertMarkdownToHtml");
|
|
42
43
|
const frontmatter_1 = require("../utils/frontmatter");
|
|
43
|
-
const langNames = {
|
|
44
|
-
'zh-Hans': '简体中文',
|
|
45
|
-
'en-US': 'English',
|
|
46
|
-
'ja-JP': '日本語',
|
|
47
|
-
'ko-KR': '한국어',
|
|
48
|
-
};
|
|
49
44
|
/**
|
|
50
45
|
* 生成语言切换器 HTML
|
|
51
46
|
* @param currentLang 当前语言
|
|
@@ -56,7 +51,7 @@ function generateLanguageSwitcher(templateData) {
|
|
|
56
51
|
const { options: { langs = [], baseUrl = '/' }, } = metadata_1.MetaData;
|
|
57
52
|
const items = langs
|
|
58
53
|
.map(lang => {
|
|
59
|
-
const langName =
|
|
54
|
+
const langName = languages_1.LANGUAGE_NAMES[lang] || lang;
|
|
60
55
|
const isCurrent = lang === templateData.lang;
|
|
61
56
|
const activeClass = isCurrent ? 'active' : '';
|
|
62
57
|
return `<li class="lang-item ${activeClass}">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/process/template.ts"],"names":[],"mappings":"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"}
|