Skip to main content

在 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 查看哈希

已上传 source

内置分布

checkmark-1.7.4-py3-none-any.whl (23.5 kB 查看哈希

已上传 py3