flutter - 如何在 Flutter pubspec.yaml 文件中包装长描述?
问题描述
我注意到在使用Pubspec Assist插件时,它会description
在更新依赖项时换行。
description: Have you been turned into a newt? Would you like to be? This
package can help. It has all of the newt-transmogrification functionality you
have been looking for.
在研究这种包装时,我发现yaml 支持 wrapping,但指示使用>
(或|
用于保留换行符,这可能不推荐用于 Flutter 应用程序?)。
dart.dev上的pubspec
页面显示了一个使用 的示例,但它自己的描述没有提及任何关于长描述或包装的内容。>-
description: >-
Have you been turned into a newt? Would you like to be?
This package can help. It has all of the
newt-transmogrification functionality you have been looking
for.
在 Flutter 项目中,比如说从应用商店的角度来看,使用哪种方法来包装pubspec.yaml
文件中的长描述是否重要?我一直把它们排成一排。
解决方案
包装是 YAML 语法功能。Flutter 将语义应用于 YAML 文件的解析内容。
这意味着 Flutter 如何表示 YAML 标量并不重要,只要结果(由您使用的 YAML 语法定义)产生 Flutter 的有效值即可。
对于一些标量,YAML 使用换行:单行换行转换为空格,而空行转换为换行。普通标量和折叠块标量都会发生这种情况:
droggeljug: This is a plain scalar.
It spans multiple lines but when parsed, contains a single line.
baked_beans: >-
This is a folded block scalar.
It also spans multiple lines.
The previous empty line yields a line break in the parsed value.
有一些差异需要考虑:
- 普通标量以各种特殊字符结尾,例如
:
(后跟空格时)。这应该很明显,因为它形成了一个隐式密钥。 - 折叠块标量仅在遇到父节点缩进处的内容时才结束。您可以将任何字符保存到折叠块标量中,即使
#
它会开始注释。 - 当以纯标量给出时,某些标量可能会被解析为非字符串。例如,
true
可能是布尔值,42
也可能是数字。无论内容如何,折叠块标量总是产生字符串。
除此之外,还有单引号和双引号标量,以及文字块标量(以|
代替开头>
)。文字块标量按原样解析换行符。双引号标量解析转义序列。单引号标量在遇到第二个之前不会结束'
。所有这些标量类型都可以是多行的,并且除了文字块标量之外的所有标量都进行行折叠。您可以选择其中任何一个来编码您的字符串值。
至于你应该使用哪个问题,我想说折叠块标量>-
是完成这项工作的正确工具:你可以编写任何东西而不必担心 YAML 特殊字符、转义序列等。
推荐阅读
- javascript - 如何在javascript中从一个没有重复的数组中提取随机字符串?
- angular - Angular 9 - 即使在与 lodash-es 一起使用后,lodash 也会在产品包中导入
- compiler-errors - 致命错误:mpi.h 没有这样的文件或目录
- java - 如何在 Java 11+ HTTPClient 中分配内容长度标头
- css - 如何隐藏 ul 菜单?
- python - 根据条件熊猫数据框python计算cumprod
- android - 在Android中向当前用户显示特定按钮
- postgresql - KeystoneJs 用户定义的关系顺序
- c++ - 缓慢的 memcpy 性能
- java - 在 LinkedList 上迭代的错误