85 lines
2.7 KiB
Markdown
85 lines
2.7 KiB
Markdown
# Каталог программ Siemens
|
||
|
||
Дистрибутивы хранятся в `catalog`, формат метаданных описан в
|
||
`schema/index.schema.json`. Названия и описания — на русском языке.
|
||
|
||
## Структура
|
||
|
||
```text
|
||
catalog/
|
||
├── index.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
|
||
size: 123456
|
||
sha256: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
|
||
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/`.
|
||
`size` содержит размер в байтах. Архивы хранятся через Git LFS.
|
||
|
||
## Команды
|
||
|
||
```shell
|
||
pnpm install
|
||
pnpm fill-metadata
|
||
pnpm fill-metadata:check
|
||
pnpm tree
|
||
pnpm typecheck
|
||
```
|
||
|
||
`fill-metadata` заполняет `size` и `sha256`. Команда принимает путь к программе,
|
||
категории или `index.yaml`. `tree` принимает путь и флаги `--paths`,
|
||
`--versions`.
|