在 Markdown 中创建可启动的 HTML 表单窗口
项目描述
复选标记
Checkmark 让您可以快速轻松地为您或任何其他用户设置一种通过 HTML 表单向您的程序提交数据的方式。使用类似 Markdown 的文档,您可以指定过多的表单元素。
表单元素
例子
from checkmark import MarkdownForm
document = """
:[Username](username)
>[Username](username "Ex. @user:domain.tld")
:[Password](password)
>[Password](password "Choose something not too simple.")
<!-- A button that calls the `register` API method. -->
@[Register](register)
"""
form = MarkdownForm(
title='My Markdown Form',
document=document
)
# Define a function to be called
# when you press the `Register` button.
@form.api_method
def register(data):
username = data.get('username', "")
password = data.get('password', "")
form.update(data, keys=['username', 'password'])
print(f'Successfully registered as {username}')
print(f'Your password is {"*" * len(password)}.')
form.start()
您可以通过下面的示例进行尝试。
# Account
## Registration
:[Username](username)
>[Ex. @michael:duckduckgo.com](username "@user:domain.tld")<br>
:[Password](password)
>[password123](password "Choose something not too simple.")<br>
:[Email](email)
>[Ex. user@domain.tld](email "So that you can confirm your account.")<br>
[x] [Sign me up to the newsletter](newsletter)
>>[My hobbies are ...](hobbies "What do you like to do during your free time?")
@[Register](register "Register new account.")
## Settings
## layout:
* [IRC](irc)
* [Modern](modern)
* [Message bubbles](bubbles)
## language:
- [Swedish](se)
- [English](en)
- [French](fr)
@[Save settings](save_settings)
规则
内联
内联元素可以写在行的任何地方。只要模式匹配,它就应该在正确的位置创建一个元素。
关联
这不是它自己的自定义元素。它描述了如何在其他自定义元素中使用标准 Markdown 链接格式。
在任何和所有定义中,如果某个东西看起来像 Markdown 链接,它就是一个 Markdown 链接并且应该像一个一样的结构。它遵循与常规 Markdown 相同的规则,因此标题是可选的。
标题始终用作title指定它的任何 Checkmark 元素的参数。
[Text](url "Title.")
标签
标签只是美观,不会影响表单的功能。URL 仅用于定义for参数。
:[Super Label](best-label)
文本和文本区域
Text使用一个>作为前缀并TextArea使用两个。链接的文本用作placeholder参数。
文本区域
>>[My hobbies are ...](hobbies "What do you like to do during your free time?")
文本
>[Username](username "Ex. @user:domain.tld")
复选框
[x] [I understand how checkboxes work.](understood)
按钮
使用按钮调用提供的 API 方法之一,并将 URL 作为函数名称。
@[Log in](log_in)
列表
一个列表有一个变量名和它的可能值。变量名称由前一个标题的 Markdown 链接 URL 定义。条目的 URL 用于值。任何空行都会终止列表,无论是在条目之间还是在条目和标题之间。
单选按钮
单选按钮条目*用作前缀。
## [Message layout](layout):
* [IRC](irc)
* [Modern](modern)
* [Message bubbles](bubbles)
下拉式菜单
下拉菜单条目-用作前缀。
## [Language](language):
- [Swedish](se)
- [English](en)
- [French](fr)
可扩展列表(尚未实现)
我将添加列表,允许您为每个条目定义多种类型的元素,并且使用+按钮,您将能够将新的多元素条目添加到列表中。
未来的语法看起来有点像这样:
# advanced-dns:
+ ## type:
- [A Record](a)
- [CNAME Record](cname)
- [TXT Record](txt)
+ >[Host](host)
+ >[Port](port)
+ [x] [Backward compatible](backcomp)
该列表将包括一个下拉菜单、两个文本输入和一个复选框。一旦我实现它,我会更详细地描述它。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
checkmark-1.7.4.tar.gz
(23.5 kB
查看哈希)
内置分布
checkmark-1.7.4-py3-none-any.whl
(23.5 kB
查看哈希)