富文本¶
里奇有一个 Text
类的新实例,此类可用于标记具有颜色和样式属性的字符串。您可以在接受字符串的任何地方使用Text实例,这使您可以很好地控制表示。
您可以将这个类看作是一个带有标记文本区域的字符串。不同于内置的 str
,文本实例是可变的,并且大多数方法就地操作,而不是返回新实例。
将样式添加到文本的一种方法是 stylize()
方法,该方法将样式应用于起始和结束偏移量。以下是一个示例:
from rich.console import Console
from rich.text import Text
console = Console()
text = Text("Hello, World!")
text.stylize("bold magenta", 0, 6)
console.print(text)
这将打印“Hello,World!”到航站楼,第一个字用洋红色粗体。
或者,也可以通过调用 append()
若要在文本末尾添加字符串和样式,请执行以下操作。以下是一个示例:
text = Text()
text.append("Hello", style="bold magenta")
text.append(" World!")
console.print(text)
如果要使用已使用ANSI代码格式化的文本,请调用 from_ansi()
要将其转换为 Text
对象::
text = Text.from_ansi("\033[1;35mHello\033[0m, World!")
console.print(text.spans)
由于从部件构建文本实例是一种常见需求,Rich提供了 assemble()
它将组合字符串或字符串和样式对,并返回一个文本实例。以下示例等同于上面的ANSI示例:
text = Text.assemble(("Hello", "bold magenta"), ", World!")
console.print(text)
您可以使用以下命令将样式应用于文本中的给定单词 highlight_words()
或进行终极控制呼叫 highlight_regex()
要突出显示与 regular expression 。
文本属性¶
Text类具有许多参数,您可以在构造函数上设置这些参数来修改文本的显示方式。
justify
应为“Left”、“Center”、“Right”或“Full”,并将覆盖默认的对齐行为。overflow
应为“折叠”、“裁剪”或“省略号”,并将覆盖默认溢出。no_wrap
如果文本长度超过可用宽度,则阻止换行。tab_size
设置制表符中的字符数。
在Rich API中,几乎所有地方都可以使用Text实例来代替普通字符串,这让您可以很好地控制文本在其他Rich Renderable中的呈现方式。例如,下面的示例右对齐 Panel
**
from rich import print
from rich.panel import Panel
from rich.text import Text
panel = Panel(Text("Hello", justify="right"))
print(panel)