Files
soft/README.md
T

87 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Каталог программ Siemens
Дистрибутивы хранятся в `catalog`, формат метаданных описан в
`schema/index.schema.json`. Названия и описания — на русском языке.
## Структура
```text
catalog/
├── index.yaml
├── files.yaml
└── category/
├── index.yaml
└── program/
├── index.yaml
├── files/
└── img/
```
Каждая категория и программа имеет один `index.yaml`. Дочерние элементы
определяются по папкам и не перечисляются в YAML. Все версии программы находятся
в одном индексном файле.
## Категория
```yaml
format: 1
type: category
name: Название категории
order: -10
description: Описание категории.
```
`order` необязателен; меньшее значение выводится раньше.
## Программа
```yaml
format: 1
type: program
name: Название программы
summary: Короткое назначение программы для списка категории.
description: |-
Полное описание в Markdown.
homepage: https://example.org
source: https://github.com/example/project
author: Автор
screenshots:
- img/screenshot.png
versions:
- version: "1.2.0"
status: current
released: "2007-08-14"
files:
- path: files/program-1.2.0.zip
description: Дистрибутив
platform: win32
additional_files:
- path: files/manual.pdf
description: Руководство пользователя
```
Обязательные поля программы: `format`, `type`, `name`, `summary`, `description`,
`screenshots`, `versions`. Значения `platform`: `win32`, `win64`, `dos`, `java`,
`j2me`. Значения `status`: `current`, `archived`.
Файлы версий указываются в `versions[].files`, общие файлы — в
`additional_files`. Пути файлов начинаются с `files/`, скриншотов — с `img/`.
Дистрибутивы хранятся в совместимых с Windows XP ZIP-архивах через Git LFS;
отдельные EXE также упаковываются в ZIP.
Размеры и SHA-256 всех файлов находятся в автоматически создаваемом
`catalog/files.yaml`, а не в индексах программ.
## Команды
```shell
pnpm install
pnpm fill-metadata
pnpm fill-metadata:check
pnpm tree
pnpm typecheck
```
`fill-metadata` пересобирает `catalog/files.yaml`. `tree` принимает путь и флаги
`--paths`, `--versions`.