Как распознать синтаксис файла конфигурации и эквивалентный ему идентификатор языка Markdown? - PullRequest
0 голосов
/ 03 августа 2020

Введение

При настройке пакетов программного обеспечения вы сталкиваетесь с множеством файлов конфигурации с различными используемыми синтаксисами.

В дополнение к .json, .xml, .yml и .properties, ниже приведены несколько примеров распространенных синтаксисов, для которых я не могу найти имя.

Разделение пробелов

# comment
value11 value12
value21 value22 value23 value24

Этот синтаксис можно найти в "/ etc / hosts », а также встроены в теги конфигурации Apache2 (например, <VirtualHost>) и в других местах. Кажется, часто используется для перечисления псевдонимов.

Разделение пробелов и вложение по отступам

Key1 value1 value2 value3
    Key2 value4 value5
    Key3 value6

Key4 value7
    Key5 value8

Вы можете найти этот синтаксис в "~ / .ssh / config". Вложение связывает вложенные значения с родительскими значениями. Похоже на yaml без символов.

Конфигурация Apache2

У вас могут быть значения, разделенные пробелами, а также XML -теги для разделения блоков конфигурации.

# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
    DocumentRoot "/www/example1"
    ServerName www.example.com

    # Other directives here
</VirtualHost>

Конфигурация Dovecot

Вы начинаете блок с определенными c ключевыми словами и фигурными скобками, затем используете присваивание =, как в .properties файлах.

protocol imap {
  ssl_cert = </etc/ssl/certs/imap.pem
  ssl_key = </etc/ssl/private/imap.pem
}
protocol pop3 {
  ssl_cert = </etc/ssl/certs/pop3.pem
  ssl_key = </etc/ssl/private/pop3.pem
}

Вопрос

Хотя многие программные пакеты имеют свои собственные синтаксисы конфигурации, они часто имеют много общего. Мне кажется, что .config, .conf или .cf на самом деле мало что говорят об используемом синтаксисе.

Мой вопрос: Есть ли у приведенных выше синтаксисов блоков кода имена и если да, то какие идентификаторы языка можно использовать для блоков кода уценки, чтобы применить правильную подсветку синтаксиса?

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

```which-language-identifier-goes-here?
# comment
127.0.0.1 localhost example.com
```
```or-here?
# comment
Host remote-server
    HostName example.com
    User johndoe
```
...