托管Textual应用
项目描述
textual-web
Textual Web在网络上发布Textual应用和终端。
目前处于测试阶段 — 帮助我们测试!
入门指南
Textual Web是一个Python应用,但您不需要是Python开发者就可以运行它。
安装Textual Web最简单的方法是通过pipx。一旦您安装了pipx,请运行以下命令
pipx install textual-web
现在您将拥有路径上的textual-web
命令。
运行测试
要查看Textual Web的功能,请在命令行中运行以下命令
textual-web
您应该看到以下内容
点击蓝色链接启动示例Textual应用(您可能需要在某些终端上按住cmd或ctrl)。或者如果您终端不支持链接,可以将链接复制到浏览器中。
在您的浏览器中,您应该看到以下内容
这些Textual应用在您的机器上运行,但具有公开的URL。您可以发送URL给任何有互联网访问的人,他们都会看到相同的内容。
在终端中按ctrl+C停止服务欢迎应用。
托管终端
Textual Web还可以托管您的终端。为了快速访问,请添加-t
开关
textual-web -t
这将生成另一个URL,您可以在浏览器中看到您的终端
以这种方式托管终端时,它将生成一个随机的公开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个链接,每个链接对应配置中的一个部分
点击任意一个链接来运行相应的应用
别名
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
这将在您的终端中弹出一个类似以下对话框
如果您填写该对话框,它将为您创建一个账户并生成一个名为"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服务器协调。如果您想参与,请加入我们。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。