文档章节

YAML中多行字符串的配置方法

程序猿DD
 程序猿DD
发布于 03/19 14:35
字数 956
阅读 2.7K
收藏 9

有时候我们会在配置文件中配置一段文字说明,这种时候通常会出现两种需求:

  1. 文字中可能出现段落,希望在配置中按段落方式编写,显示打印的时候也能出现段落换行。
  2. 文字很长,为方便编辑,可能在配置文件中分段写,但是显示的时候不喜欢出现配置中的段落换行。

简单的说,就是:

  1. 配置与显示,都严格按段落展示
  2. 配置按段落,显示不需要按段落

假设,我们需要配置这样一段文字:

I am a coder.My blog is didispace.com.

下面,就针对上面的两种情况来看看可以怎么来实现:

配置与显示,都严格按段落展示

这个需求下,我们希望配置和显示都按句子换行,就是这样:

I am a coder.
My blog is didispace.com.

方法一:直接使用\n来换行

这样写:

string: "I am a coder.\n\
         My blog is didispace.com."

最终输出:

I am a coder.
My blog is didispace.com.

通过\n在显示的时候换行,通过配置行末的\让这个字符串换行继续写(这个必须有,如果没有第二行行首会多一个空格)。

注意:这里必须使用双引号来定义字符串,不能用单引号。因为单引号是不支持\n换行的。

方法二:使用|+|-

在方法一种,其实我们在文字中加入了几个转义符号,其实对于阅读并不方便。在方法二中,将介绍更适合阅读的几种形式:

string: |
  I am a coder.
  My blog is didispace.com.

string: |+
  I am a coder.
  My blog is didispace.com.

string: |-
  I am a coder.
  My blog is didispace.com.

如上面一共有三种配置都会自动按配置中所写的换行来换行,但是在文末会有一些区别,有的会增加一个空行,有的不会,有的会新增两个空行,具体说明如下:

  • |:文中自动换行 + 文末新增一空行
  • |+:文中自动换行 + 文末新增两空行
  • |-:文中自动换行 + 文末不新增行

配置按段落,显示不需要按段落

这个需求下,我们希望配置里是按行写的,但是显示是如下面这样在一行的:

I am a coder.My blog is didispace.com.

方法一:直接在字符串中换行写

最粗暴的写法,反正不用换行,那就直接写了:

string: 'I am a coder.
         My blog is didispace.com.'

这里不论用双引号还是单引号都是可以的。因为不存在需要转移的内容,所以总体还算清晰。

方法二:使用>>+>-

比较好的表述方式就是使用>>+>-来定义,比如下面这几种:

string: >
  I am a coder.
  My blog is didispace.com.

string: >+
  I am a coder.
  My blog is didispace.com.

string: >-
  I am a coder.
  My blog is didispace.com.

这三种都不会对配置中的换行进行实际换行,但是依然在文末的处理会有一些小区别,具体如下:

  • >:文中不自动换行 + 文末新增一空行
  • >+:文中不自动换行 + 文末新增两空行
  • >-:文中不自动换行 + 文末不新增行

欢迎关注我的公众号:程序猿DD,获得独家整理的学习资源和日常干货推送。 如果您对我的专题内容感兴趣,也可以关注我的博客:didispace.com

© 著作权归作者所有

程序猿DD

程序猿DD

粉丝 730
博文 140
码字总数 197806
作品 4
闵行
私信 提问
加载中

评论(1)

lorabitn
lorabitn
赞,👍
我们是菜鸟物流技术部,目前极度缺人,大神有没有兴趣呢?
YAML 语言教程

编程免不了要写配置文件,怎么写配置也是一门学问。 YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。 本文介绍 YAML 的语法,以 JS-YAML 的实现为例。你可以去在线 ...

阮一峰
2016/07/04
0
0
Gitlab CI/CD 流水线配置参考

Gitlab CI/CD 流水线配置参考 .gitlab-ci.yml文件定义了流水线的结构和顺序,并确定: 使用GitLab Runner执行什么。 遇到特定条件时要做出哪些决定。例如,当进程成功或失败时。 不可用的job...

666B
2019/07/25
132
0
springboot系列三、spirngboot中配置文件详解

一、配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的,配置文件主要分为以下两种 •application.properties •application.yml 配置文件的作用:修改SpringBoot自动配置的默...

我叫小糖主
2019/06/11
537
2
TOML简介 (转) TOML的由来

TOML的由来 配置文件的使用由来已久,从.ini、XML、JSON、YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升。 TOML是前GitHub CEO, Tom Preston-Werner,于2013年创建的语...

chuquan.ou
2017/08/23
0
0
PyYAML中文文档

PyYAML文档 PyYAML现在维护在https://github.com/yaml/pyyaml。此页面仅用于历史目的。 英文文档链接:http://pyyaml.org/wiki/PyYAMLDocumentation 安装 下载源码包PyYAML-3.12.tar.gz并解压...

506554897
2017/11/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Apache OpenMeetings开源线上会议系统——安装配置

OpenMeetings是一个开源的在线会议系统,支持音频和视频,同时支持桌面分享。 官网地址:http://openmeetings.apache.org/index.html 安装 当前版本为4.0.6,需要最低jre8的安装环境。 下载a...

JustForFly
5分钟前
6
0
Android知识体系总结2020之Android部分Handler篇

1.什么是Handler?   Handler是可以通过发送和处理Message和Runnable对象来关联相应线程的MessageQueue。通常我们认为它是一种异步机制。   a.可以让对应的Message和Runnable在未来的某个...

ClAndEllen
6分钟前
10
0
命令模式

命令模式(Command Pattern)在我们生活中非常常见,比如开关灯、电视遥控器换台等。 我们使用摇控器换台的时候,我们按下一个换台的按钮,然后电视机就会换台,按下调整音量调节按钮,电视机...

鸣沙山
9分钟前
11
0
基于 rsync 和 ln 实现“写时复制”的快照备份功能

一、基本原理 这里“写时复制”加了一个引号,因为这是专门针对使用rsync备份时的写时复制效果,而不是事实上的写时复制(copy-on-write),其达到的目的如下: 使用 rsync 备份数据后,立即...

Inpool
45分钟前
25
0
郑州哪哪里可以开工程款发票-郑州_新闻网

【电薇同步;1.3.8 - 2.7.4.1 - 5.2.9.7.】张生、诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridge,是Android手机通用...

yyqqvip
今天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部