跳转到主要内容

托管Textual应用

项目描述

textual-web

Textual Web在网络上发布Textual应用和终端。

目前处于测试阶段 — 帮助我们测试!

Hacker News讨论

入门指南

Textual Web是一个Python应用,但您不需要是Python开发者就可以运行它。

安装Textual Web最简单的方法是通过pipx。一旦您安装了pipx,请运行以下命令

pipx install textual-web

现在您将拥有路径上的textual-web命令。

运行测试

要查看Textual Web的功能,请在命令行中运行以下命令

textual-web

您应该看到以下内容

Screenshot 2023-09-06 at 10 11 07

点击蓝色链接启动示例Textual应用(您可能需要在某些终端上按住cmd或ctrl)。或者如果您终端不支持链接,可以将链接复制到浏览器中。

在您的浏览器中,您应该看到以下内容

Screenshot 2023-08-22 at 09 41 35 Screenshot 2023-09-06 at 10 10 01

这些Textual应用在您的机器上运行,但具有公开的URL。您可以发送URL给任何有互联网访问的人,他们都会看到相同的内容。

在终端中按ctrl+C停止服务欢迎应用。

托管终端

Textual Web还可以托管您的终端。为了快速访问,请添加-t开关

textual-web -t

这将生成另一个URL,您可以在浏览器中看到您的终端

Screenshot 2023-08-22 at 09 42 23

以这种方式托管终端时,它将生成一个随机的公开URL。

[!警告] 不要与您不信任的人分享此URL。

配置

文本网页可以运行多个Textual应用和终端(您喜欢多少都可以)。

为了展示这一点,安装Textual并克隆仓库。导航到textual/examples目录,并添加以下TOML文件

[app.Calculator]
command = "python calculator.py"

[app.Dictionary]
command = "python dictionary.py"

文件名不重要,但让我们称它为"serve.toml"。使用--config选项来加载新的配置

textual-web --config serve.toml

现在您应该会得到3个链接,每个链接对应配置中的一个部分

Screenshot 2023-08-22 at 10 37 59

点击任意一个链接来运行相应的应用

Screenshot 2023-08-22 at 10 42 25

别名

Textual Web将从应用的名称中派生别名(URL中的文本)。您也可以使用别名参数显式设置它。

[app.Calculator]
command = "python calculator.py"
slug = "calc"

终端配置

[!NOTE] 终端目前仅在macOS和Linux上运行。Windows支持计划在未来更新中提供。

您也可以以类似的方式将终端添加到配置文件中。

[terminal.Terminal]

这将启动一个具有您当前shell的终端。您也可以添加一个command值来运行除shell以外的命令。例如,假设我们想运行htop命令。我们可以在配置中添加以下内容

[terminal.HTOP]
command = "htop"

账户

在之前的示例中,所有的URL都包含一串随机的数字,这些数字会随每次运行而改变。如果您想创建一个永久URL,您需要创建一个账户。

要创建账户,请运行以下命令

textual-web --signup

这将在您的终端中弹出一个类似以下对话框

Screenshot 2023-08-22 at 09 43 03

如果您填写该对话框,它将为您创建一个账户并生成一个名为"ganglion.toml"的文件。在该文件的顶部,您将看到类似以下的部分

[account]
api_key = "JSKK234LLNWEDSSD"

您可以将它添加到您的配置文件中,或者用您的应用/终端编辑"ganglion.toml"。像之前一样运行它

textual-web --config ganglion.toml

现在,由textual-web生成的URL将在路径的第一部分包含您的账户别名。账户别名不会改变,因此您将从一次运行到下一次获得相同的URL。

调试

为了更好地了解“内部”发生的事情,设置DEBUG环境变量

DEBUG=1 textual-web --config ganglion.toml

注意这可能会生成大量输出,甚至可能会减慢您的应用速度。

已知问题

您可能会遇到很多颜色的应用的故障。这是上游库中的一个错误,我们期待很快会得到修复。

在移动设备上的体验可能会有所不同。在iPhone上,Textual应用相当可用,但其他系统可能有一些问题。我们应该能够在未来的更新中改善移动体验。

下一步是什么?

此项目的目标是使Textual应用成为功能齐全的Web应用。

目前,托管Textual应用和终端看起来非常相似。事实上,如果您先运行一个终端,然后再启动一个Textual应用,它将在浏览器中正常工作。然而,在“内部”,Textual应用使用的是自定义协议。此协议将用于向Textual应用公开Web应用功能。

例如,一个Textual应用可能会生成一个文件(例如,包含服务器报告的CSV文件)。如果您在终端中运行它,该文件将保存在您的当前工作目录中。但在Textual应用中,它将被托管并保存在您的下载文件夹中,就像一个常规的Web应用。

未来,其他Web API将以类似的方式向Textual应用公开。

还计划在不久的将来提供会话。目前,如果您关闭浏览器标签,它也会关闭Textual应用。未来,您将能够关闭一个标签,稍后再从上次离开的地方继续。这将允许我们在不踢掉任何人的情况下升级服务器。

帮助我们测试

目前,测试正在通过我们的Discord服务器协调。如果您想参与,请加入我们。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

textual_web-0.8.0.tar.gz (33.3 kB 查看哈希值)

上传时间

构建分发

textual_web-0.8.0-py3-none-any.whl (37.5 kB 查看哈希值)

上传时间 Python 3

支持者