如何识别配置文件的语法及其等效的 Markdown 语言标识符?

and*_*ero 12 syntax markdown syntax-highlighting configuration-files

介绍

在配置软件包时,您会遇到各种使用各种不同语法的配置文件。

除了.json.xml.yml.properties之外,下面是一些我无法找到其名称的常见语法示例。

空白分隔

# comment
value11 value12
value21 value22 value23 value24
Run Code Online (Sandbox Code Playgroud)

您可能会在“/etc/hosts”中找到此语法,并且还嵌入在 Apache2 配置标记(例如<VirtualHost>)下等位置。似乎经常用于列出别名。

空格分隔和缩进嵌套

Key1 value1 value2 value3
    Key2 value4 value5
    Key3 value6

Key4 value7
    Key5 value8
Run Code Online (Sandbox Code Playgroud)

您可以在“~/.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>
Run Code Online (Sandbox Code Playgroud)

鸽舍配置

您可以使用特定关键字和花括号开始一个块,然后像在文件中一样使用=赋值.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
}
Run Code Online (Sandbox Code Playgroud)

问题

尽管许多软件包都有自己的配置语法,但这些语法通常有许多相似之处。在我看来.config.conf或者.cf并没有真正说明所使用的语法。

我的问题是:上述代码块语法是否有名称,如果有,哪些语言标识符可用于 Markdown 代码块以应用正确的语法突出显示?

对于更复杂和自定义的配置语法,我只是在寻找一个基本语法语言标识符,它可以将大部分突出显示应用于代码块。

```which-language-identifier-goes-here?
# comment
127.0.0.1 localhost example.com
```
Run Code Online (Sandbox Code Playgroud)
```or-here?
# comment
Host remote-server
    HostName example.com
    User johndoe
```
Run Code Online (Sandbox Code Playgroud)

mcn*_*mee 9

此链接提供了可用支持语言的有用列表(请注意,您的 Markdown 编辑器还需要支持每种语言,以进行着色/语法)。

例如,您应该能够使用apacheconfApache conf(例如/.htaccess、apache.conf'、apache2.conf)。

例如:

```apacheconf
# Change the PHP version of this directory
<FilesMatch "\.(php4|php5|php3|php2|php|phtml)$">
    SetHandler application/x-httpd-alt-php74___lsphp
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)