YAML 语法高亮

YAML 语法高亮

listings软件包不支持YAML开箱即用。是否存在扩展了listingsYAML 支持的包?更一般地说,是否有一个好的扩展列表listings

答案1

这 ”铸造« 包在这里是您的好朋友。它使用 Python Pygments 作为语法高亮的后端。其中一个 Pygments 词法分析器用于 YAML。格式化 YAML 脚本的方法可能如下所示。

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{minted}

\begin{document}
  \section{The YAML Language}
  \begin{minted}[
    gobble=4,
    frame=single,
    linenos
  ]{yaml}
    --- !clarkevans.com/^invoice
    invoice: 34843
    date   : 2001-01-23
    bill-to: &id001
        given  : Chris
        family : Dumars
        address:
            lines: |
                458 Walkman Dr.
                Suite #292
            city    : Royal Oak
            state   : MI
            postal  : 48046
    ship-to: *id001
    product:
        - sku         : BL394D
          quantity    : 4
          description : Basketball
          price       : 450.00
        - sku         : BL4438H
          quantity    : 1
          description : Super Hoop
          price       : 2392.00
    tax  : 251.42
    total: 4443.52
    comments: >
        Late afternoon is best.
        Backup contact is Nancy
        Billsmer @ 338-4338.
  \end{minted}
\end{document}

有关该软件包的详细信息和进一步的定制选项,请参阅其手动的


在此处输入图片描述

答案2

灵感来自这个答案对于 JSON,我使用 listings 包实现了与 YAML 类似的样式:

\usepackage{xcolor}
\usepackage{listings}

\lstdefinestyle{yaml}{
     basicstyle=\color{blue}\footnotesize,
     rulecolor=\color{black},
     string=[s]{'}{'},
     stringstyle=\color{blue},
     comment=[l]{:},
     commentstyle=\color{black},
     morecomment=[l]{-}
 }

\begin{lstlisting}[style=yaml]
  hello: world
  info:
    title: hello
    version: world
  components:
    - This is a member
\end{lstlisting}

结果:

在此处输入图片描述

它的工作原理是将默认颜色 ( basicstyle) 设置为蓝色,然后将其他所有内容标记为注释。例如,将分号 ( )后的comment=[l]{:}行的其余部分 ( ) 标记为注释[l]{:}

相关内容