Основы конфигурирования
ECInventory использует формат HOCON для файлов конфигурации. Файлы конфигурации используют расширение файла .conf
.
Основы HOCON
HOCON (Human-Optimized Config Object Notation) — это удобный для человека формат конфигурации, надстройка над JSON.
Это краткое описание формата HOCON для пользователей, уже знакомых с YAML. Если вы хотите узнать все о HOCON, прочитайте спецификацию.
Свойства в HOCON имеют ключ
и значение
, разделенные разделителем
:
ключ
— это строка, описывающая"значение"
значение
может быть строкой, числом, объектом, логическим значением, перечисляемым типом илиnull
разделитель
разделяет ключ и значение, должен быть либо:
(как в YAML), либо=
(как в JSON)
Если строка в конфиге начинается с //
или #
, она считается комментарием.
# Это комментарий. Он может содержать дополнительную информацию о свойстве.
# Здесь «display-name» — это ключ, «:» — это разделитель, а «Лучший инвентарь» — это значение.
display-name: "Лучший инвентарь"
Конфигурация HOCON может быть очень похожа на YAML, но имеет существенные отличия в объявлении объектов и списков.
Объекты
YAML использует отступы для объявления свойств объекта, а HOCON использует фигурные скобки {}
:
## YAML
my-slot:
display-name: "Мой слот"
type: storage
## HOCON
my-slot {
display-name: "Мой слот"
type: storage
}
# HOCON также поддерживает однострочное объявление объекта.
my-slot { display-name: "Мой слот", type: storage }
Массивы и списки
В YAML есть два стиля для объявления элементов списка — с помощью квадратных скобок []
или с помощью дефиса -
в начале строки. HOCON поддерживает только стиль с квадратными скобками:
## YAML
description:
- "Первая строка"
- "Вторая строка"
# Также поддерживается однострочное объявление списка
description: ["Первая строка", "Вторая строка"]
## HOCON
description: [
"Первая строка",
"Вторая строка"
]
# Объявление однострочного списка выглядит точно так же, как в YAML
description: ["Первая строка", "Вторая строка"]
Список объектов
YAML позволяет объявлять список объектов, используя нотацию элементов списка через дефис, но в HOCON мы должны использовать фигурные скобки для объявления объектов в списке:
## YAML
actions:
- on: [right_click]
do: ["weather clear"]
## HOCON
actions: [
{
on: [right_click]
do: ["weather clear"]
}
]
# Или более компактный вариант с однострочным объявлением объекта
actions: [
{on: [right_click], do: ["weather_clear"]}
]
Типы
Здесь перечислены общие типы данных, используемые в конфигах. Другие типы описываются по месту использования.
Строка
Строки могут быть заключены или не заключены в кавычки. Рекомендуется всегда заключать строки в кавычки, потому что строки без кавычек не могут содержать некоторые символы.
quoted-string: "Это просто строка"
unquoted-string: Такая запись также допустима, но не рекомендуется
Число
Числа могут быть целыми или с плавающей запятой. Допустимый диапазон обычно указывается в спецификации поля.
integer-value: 42
float-value: 0.5