Перейти к содержанию

Синтаксис YAML⚓︎

Введение⚓︎

YAML означает YAML Ain't Markup Language, и он широко используется в Grav для его файлов конфигурации, чертежей, а также в настройках страницы.

YAML для конфигурации - это то же самое, что Markdown для разметки. По сути, это формат структурированных данных, удобочитаемый человеком. Он менее сложен и неуклюж, чем XML или JSON, но предоставляет аналогичные возможности. По сути, это позволяет вам предоставлять мощные настройки конфигурации без необходимости изучать более сложный тип кода, такой как CSS, JavaScript и PHP.

YAML построен с нуля, чтобы его было легко использовать. По сути, файл YAML используется для описания данных. Одним из преимуществ использования YAML является то, что информацию в одном файле YAML можно легко перевести на несколько типов языков.

По сути, данные, которые вы вводите в файл YAML, используются вместе с библиотекой для создания страниц, которые вы видите в Grav.

Основные правила YAML⚓︎

Есть некоторые правила, которые использует YAML, чтобы избежать проблем, связанных с двусмысленностью в отношении различных языков и программ редактирования. Эти правила позволяют интерпретировать один файл YAML согласованно, независимо от того, какое приложение и/или библиотека используются для его интерпретации.

  • Файлы YAML должны заканчиваться на .yaml, если это возможно в Grav.
  • YAML чувствителен к регистру.
  • YAML не позволяет использовать табуляцию. Вместо этого используются пробелы, поскольку табуляция не поддерживаются повсеместно.

Основные типы данных⚓︎

YAML превосходно работает с сопоставлениями (хешами/словарями), последовательностями (массивами/списками) и скалярами (строками/числами). Хотя его можно использовать с большинством языков программирования, лучше всего он работает с языками, построенными на этих типах структур данных. Сюда входят: PHP, Python, Perl, JavaScript и Ruby.

Скаляры⚓︎

Скаляры — довольно простое понятие. Это строки и числа, из которых состоят данные на странице. Скаляр может быть логическим свойством, например Yes, целым числом (числом), например 5, или строкой текста, например предложением или заголовком вашего веб-сайта.

Скаляры в программировании часто называют переменными. Если бы вы составляли список типов животных, они бы были названы этими животными.

Большинство скаляров не заключены в кавычки, но если вы вводите строку, в которой используются знаки препинания и другие элементы, которые можно спутать с синтаксисом YAML (тире, двоеточия и т. д.), вы можете захотеть заключить эти данные в кавычки, используя одинарные ' или двойные " кавычки. Двойные кавычки позволяют использовать экранирование для представления символов ASCII и Unicode.

integer: 25
string: "25"
float: 25.0
boolean: Yes

Слова true, false, null, ~ и даты имеют особое значение в YAML. Пожалуйста, укажите их в кавычках, если вы не хотите использовать их в качестве логического типа, типа null или типа datetime. То же самое и с номерами версий, они должны быть заключены в кавычки, чтобы отделить их от значений с плавающей запятой.

Последовательности⚓︎

Вот простая последовательность, которую вы можете найти в Grav. Это базовый список, в котором каждый элемент находится в отдельной строке с открывающим тире.

- Cat
- Dog
- Goldfish

Эта последовательность размещает каждый элемент в списке на одном уровне. Если вы хотите создать вложенную последовательность с элементами и подпунктами, вы можете сделать это, поместив один пробел перед каждым тире в подпунктах. YAML использует пробелы, НЕ табуляцию для отступов. Вы можете увидеть пример этого ниже.

-
 - Cat
 - Dog
 - Goldfish
-
 - Python
 - Lion
 - Tiger

Если вы хотите вложить свои последовательности ещё глубже, вам просто нужно добавить больше уровней.

-
 -
  - Cat
  - Dog
  - Goldfish

Последовательности могут быть добавлены к другим типам структур данных, таким как сопоставления или скаляры.

Сопоставления⚓︎

Сопоставление дает вам возможность перечислять ключи со значениями. Это полезно в случаях, когда вы назначаете имя или свойство конкретному элементу.

animal: pets

В этом примере значение pets сопоставляется с ключом animal. При использовании в сочетании с последовательностью вы можете увидеть, что начинаете составлять список pets. В следующем примере тире, используемое для обозначения каждого элемента, считается отступом, делая элементы строк дочерними, а линия сопоставления pets - родительскими.

pets:
 - Cat
 - Dog
 - Goldfish

Ресурсы и дополнительная документация⚓︎

Для получения дополнительной информации о YAML, включая подробную документацию о том, как это работает, посетите ресурсы, указанные ниже.