xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

TOML All In One

TOML All In One

.toml config file

image

TOML

Tom's Obvious Minimal Language / 汤姆的明显最小语言

https://toml.io/en/

https://github.com/toml-lang/toml

https://en.wikipedia.org/wiki/TOML

TOML Tutorials

TOML: 简体中文 v1.0.0

https://toml.io/cn/v1.0.0

TOML v1.0.0

全称:Tom 的(语义)明显、(配置)最小化的语言。(Tom's Obvious, Minimal Language)
作者:Tom Preston-Werner、Pradyun Gedam 等人。

宗旨

TOML 旨在成为一个语义明显且易于阅读的最小化配置文件格式。
TOML 被设计成可以无歧义映射哈希表
TOML 应该能很容易地被解析成各种语言中的数据结构

规格

TOML 是大小写敏感的。
TOML 文件必须是合法的 UTF-8 编码的 Unicode 文档。
空白是指制表符(0x09)或空格(0x20)。
换行是指 LF(0x0A)或 CRLF(0x0D 0x0A)。

注释

#字符将该行余下的部分标记为注释,除非它在字符串中。

# 这是一个全行注释  ✅

key = "value"  # 这是一个行末注释 ✅

another = "# 这不是一个注释 ❌, 这是一个 value"

⚠️ 除制表符以外的控制字符(U+0000 至 U+0008,U+000A 至 U+001F,U+007F)不允许出现在注释中。

键值对

TOML 文档最基本的构成区块是键值对

键名在等号的左边而值在右边
键名和键值周围的空白被忽略
键、等号和值必须在同一行(不过有些值可以跨多行 ❓)。

key = "value"

值必须是下述类型之一。

字符串
整数
浮点数
布尔值
坐标日期时刻
各地日期时刻
各地日期
各地时刻
数组
内联表

不指定值是非法的

key = # 非法

键值对后必须换行(或结束文件)。
(例外见内联表

# ❌
first = "Tom" last = "Preston-Werner" # 非法
# ✅
first = "Tom"
last = "Preston-Werner"

键名

字符串

整数

浮点数

布尔值

坐标日期时刻

各地日期时刻

各地日期

各地时刻

数组

内联表

内联表提供了一种更为紧凑的语法来表示表。
它们对于分组数据特别有用,否则这些数据很快就会变得冗长。
内联表被完整地定义在花括号之中:{}。 括号中,可以出现零或更多个以逗号分隔的键值对。
键值对采取与标准表中的键值对相同的形式。
什么类型的值都可以,包括内联表。

内联表得出现在同一行内。
内联表中,最后一对键值对后不允许终逗号(也称为尾逗号)。
不允许花括号中出现任何换行,除非在值中它们合法。
即便如此,也强烈不建议把一个内联表搞成纵跨多行的样子。
如果你发现自己真的需要,那意味着你应该使用标准表。

name = { first = "Tom", last = "Preston-Werner" }
point = { x = 1, y = 2 }
animal = { type.name = "pug" }

上述内联表等同于下面的标准表定义:

[name]
first = "Tom"
last = "Preston-Werner"

[point]
x = 1
y = 2

[animal]
type.name = "pug"

内联表是独立自足的,在内部定义全部的键与子表。
不能在括号以外的地方,再添加键与子表。

[product]
type = { name = "Nail" }
# type.edible = false  # 非法

类似地,内联表不能被用于向一个已定义的表添加键或子表。

[product]
type.name = "Nail"
# type = { edible = false }  # 非法

表数组

文件扩展名

MIME 类型

ABNF 语法

https://learnxinyminutes.com/docs/toml/

demos

  1. Python project package

python-project-package/math_package_project/pyproject.toml

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "math_package_xgqfrms"
version = "0.0.1"
authors = [
  { name="xgqfrms", email="xgqfrms@xgqfrms.xyz" },
]
description = "A math package of python 3. 🐍"
# summary = "Addition, subtraction, multiplication and division"
# Additional properties are not allowed ('summary' was unexpected)Even Better TOML ❌
readme = "README.md"
requires-python = ">=3.7"
classifiers = [
  "Intended Audience :: Developers",
  "Programming Language :: Python :: 3",
  "Topic :: Software Development :: Libraries :: Python Modules",
  "Operating System :: OS Independent",
  "License :: OSI Approved :: MIT License",
]
keywords = [
  "math",
  "package",
  "python",
  "xgqfrms",
  "linux",
]
license = "MIT"
# license_files = "LICENSE"
# Additional properties are not allowed ('license_files' was unexpected)Even Better TOML ❌

[project.urls]
"Homepage" = "https://github.com/xgqfrms/math_package_project"
"Bug Tracker" = "https://github.com/xgqfrms/math_package_project/issues"


https://github.com/xgqfrms/math_package_project

https://www.cnblogs.com/xgqfrms/p/17271108.html

  1. Rust Cargo.toml
[package]
name = "first_rust_package"
version = "0.0.1"
edition = "2021"
# edition = "2022"

# custom config ✅
author = "xgqfrms"
editor = "vscode"
# warning: unused manifest key: package.author
# warning: unused manifest key: package.editor

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
# rust cowsay
# 配置后,无需再次手动导入外部包 external crate
# all dependencies will be auto imported 🚀
ferris-says = "0.2.1"

https://github.com/xgqfrms/rust-in-action/blob/master/test/first_rust_package/Cargo.toml

https://doc.rust-lang.org/cargo/appendix/glossary.html#manifest

https://www.cnblogs.com/xgqfrms/p/16659275.html

(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!

refs

https://www.cnblogs.com/xgqfrms/tag/TOML/

https://zzk.cnblogs.com/my/s/blogpost-p?Keywords=toml



©xgqfrms 2012-2021

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @ 2023-04-27 12:38  xgqfrms  阅读(51)  评论(5编辑  收藏  举报