syntax - 如何识别配置文件的语法及其等效的 Markdown 语言标识符?
问题描述
介绍
在配置软件包时,您会遇到使用各种不同语法的各种配置文件。
除了.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>
鸽舍配置
您以特定关键字和花括号开始一个块,然后像在文件中一样使用=
赋值。.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
```
解决方案
此链接有一个有用的可用支持语言列表(请注意,您的降价编辑器还需要支持每种语言,用于着色/语法)。
例如,您应该能够apacheconf
用于 Apache 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>