Markdown
用于渲染 Markdown 格式文本的控件。
示例
带 GitHubWeb 扩展和可点击链接的 Markdown
- Python
import flet as ft
md1 = """
# Markdown 示 例
Markdown 允许您轻松地在应用程序中包含格式化文本、图像和格式化 Dart 代码。
## 标题
Setext 风格
这是 H1
=============
这是 H2
-------------
Atx 风格
# 这是 H1
## 这是 H2
###### 这是 H6
选择有效的标题:
- [x] `# hello`
- [ ] `#hello`
## 链接
[内联风格](https://www.google.com)
## 图像
![来自 Flet 资产的图像](/icons/icon-192.png)
![测试图像](https://picsum.photos/200/300)
## 表格
|语法 |结果 |
|---------------------------------------|-------------------------------------|
|`*italic 1*` |*italic 1* |
|`_italic 2_` | _italic 2_ |
|`**bold 1**` |**bold 1** |
|`__bold 2__` |__bold 2__ |
|`This is a ~~strikethrough~~` |This is a ~~strikethrough~~ |
|`***italic bold 1***` |***italic bold 1*** |
|`___italic bold 2___` |___italic bold 2___ |
|`***~~italic bold strikethrough 1~~***`|***~~italic bold strikethrough 1~~***|
|`~~***italic bold strikethrough 2***~~`|~~***italic bold strikethrough 2***~~|
## 样式
将文本样式设置为 _italic_、__bold__、~~strikethrough~~ 或 `内联代码`。
- 使用 bulleted 列表
- better clarify
- 您的要点
## 代码块
格式化的 Dart 代码看起来也非常漂亮:
```
void main() {
runApp(MaterialApp(
home: Scaffold(
body: ft.Markdown(data: markdownData),
),
));
}
```
"""
def main(page: ft.Page):
page.scroll = "auto"
page.add(
ft.Markdown(
md1,
selectable=True,
extension_set=ft.MarkdownExtensionSet.GITHUB_WEB,
on_tap_link=lambda e: page.launch_url(e.data),
)
)
ft.app(target=main)
带代码语法高亮的 Markdown
属性
auto_follow_links
自动打开文档中的 URL。默认值为 False
。如果注册了,on_tap_link
事件将在打开 URL 之后触发。
auto_follow_links_target
在 Web 模式下打开 URL 的目标:
_blank
(默认) - 新标签页/窗口。_self
- 当前标签页/窗口。
code_style
代码块文本样式。该值是 TextStyle
类的实例。
例如,配置 monospace 字体以在 Markdown 代码块中使用:
page.fonts = {
"Roboto Mono": "RobotoMono-VariableFont_wght.ttf",
}
page.add(
Markdown(
table,
selectable=True,
extension_set="gitHubWeb",
code_theme="atom-one-dark",
code_style=TextStyle(font_family="Roboto Mono"),
on_tap_link=lambda e: page.launch_url(e.data),
)
)
code_theme
代码块的语法高亮主题。
支持的主题:
a11y-dark
a11y-light
agate
an-old-hope
androidstudio
arduino-light
arta
ascetic
atelier-cave-dark
atelier-cave-light
atelier-dune-dark
atelier-dune-light
atelier-estuary-dark
atelier-estuary-light
atelier-forest-dark
atelier-forest-light
atelier-heath-dark
atelier-heath-light
atelier-lakeside-dark
atelier-lakeside-light
atelier-plateau-dark
atelier-plateau-light
atelier-savanna-dark
atelier-savanna-light
atelier-seaside-dark
atelier-seaside-light
atelier-sulphurpool-dark
atelier-sulphurpool-light
atom-one-dark-reasonable
atom-one-dark
atom-one-light
brown-paper
codepen-embed
color-brewer
darcula
dark
default
docco
dracula
far
foundation
github-gist
github
(默认)gml
googlecode
gradient-dark
grayscale
gruvbox-dark
gruvbox-light
hopscotch
hybrid
idea
ir-black
isbl-editor-dark
isbl-editor-light
kimbie.dark
kimbie.light
lightfair
magula
mono-blue
monokai-sublime
monokai
night-owl
nord
obsidian
ocean
paraiso-dark
paraiso-light
pojoaque
purebasic
qtcreator_dark
qtcreator_light
railscasts
rainbow
routeros
school-book
shades-of-purple
solarized-dark
solarized-light
sunburst
tomorrow-night-blue
tomorrow-night-bright
tomorrow-night-eighties
tomorrow-night
tomorrow
vs
vs2015
xcode
xt256
zenburn
extension_set
该属性的值是 MarkdownExtensionSet
枚举,具有以下值:NONE
(默认)、COMMON_MARK
、GITHUB_WEB
、GITHUB_FLAVORED
。
selectable
渲染的文本是否可选择。
value
要渲染的 Markdown 内容。
事件
on_tap_link
当 Markdown 文档中的链接被点击/点击时触发。事件的 data
属性包含 URL。
以下示例在新窗口中打开 Markdown URL:
import flet as ft
def main(page: ft.Page):
def open_url(e):
page.launch_url(e.data)
page.add(
ft.Markdown(
"[内联风格](https://www.google.com)",
extension_set="gitHubWeb",
on_tap_link=open_url,
expand=True,
),
)
ft.app(target=main)