#输入 #表单 #用户 #大型机 #模拟 #思考 #仿真

应用 mfform

一个简单的输入表单,模拟大型机输入表单,类似3270。

3个不稳定版本

0.4.0 2024年7月12日
0.2.1 2024年7月8日
0.2.0 2024年7月8日

#7 in 模拟器

MITGPL-3.0-only

430KB
2K SLoC

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

mfform

一个简单的输入表单,模拟大型机输入表单,类似3270。
查看演示 · 报告错误 · 请求功能

目录
  1. 关于项目
  2. 入门
  3. 使用方法
  4. 路线图
  5. 贡献
  6. 许可
  7. 联系
  8. 致谢

关于项目

Product Name Screen Shot

mfframe 是我创建的一个小工具,用于从用户那里收集数据。我最近一直在使用 Hercules,大型机模拟器,并对它们有着长期的兴趣。所以,我做了任何人都会做的事情,我创建了一个小工具,向用户展示一个类似于3270的对话框,要求输入。

(返回顶部)

构建工具

  • Rust
  • Crossterm
  • nom

(返回顶部)

入门

首先创建一个 screen.mfform 文件,包含请求的输入(见下文),然后通过调用 mfform 运行程序。

先决条件

目前需要 rust 编译器

  • rustup
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    

安装

cargo install --git https://github.com/thorhs/mfform

(返回顶部)

使用方法

配置文件

以下是一个示例配置文件

LABEL 8 2 USER ===>
LABEL 4 4 PASSWORD ===>
LABEL 6 6 NUMBER ===>
LABEL 5 8 DEFAULT ===>

INPUT    18 2 8 username
PASSWORD 18 4 8 password
NUMBER   18 6 8 number
INPUT    18 8 8 default awesome!

SELECT username id1 First!
SELECT username id2 Second
SELECT username id3 Third
SELECT username id4 Fourth

LABEL 行由 LABEL 关键字、标签的 x,y 坐标和值组成。y 坐标之后的所有内容都用作文本,无需引号。

INPUT 行以相同的 x,y 坐标开始,后面跟着输入字段长度和字段名称。字段名称后面可以跟一个可选的默认值。

PASSWORD 行与 INPUT 行类似,但输入值在屏幕上会被隐藏。请注意,该值将在程序输出中为纯文本。

NUMBER 行与 INPUT 行类似,但只接受数字。

SELECT 行包含字段名称、项目 ID 和项目文本。这使特定输入字段可以使用 F4 功能,并将 id/text 组合添加为可能的选项。

使用工具

一旦mfform运行,以下键盘快捷键可用:

  • Enter - 提交输入表单,程序将以name=value格式打印字段值并退出。
  • Esc - 取消输入表单,不会写入stdout,程序退出。
  • F4 - 对于有SELECT输入的字段,将触发一个弹出表单,允许用户选择一个项目作为值。
  • Tab/Shift+Tab - 下一个/上一个输入字段。
  • 箭头键 - 在屏幕上移动。
  • Backspace - 当在输入字段上时,将删除前一个字符并将剩余部分向左移动。
  • Del - 当在输入字段上时,将删除当前字符并将剩余部分向左移动。
  • Ctrl-D - 将启用表单下的调试输出,对最终用户不太有用。
  • Ctrl-C - 应始终取消表单并干净地退出到shell。
  • 任何其他字符 - 在输入字段中覆盖当前字符。目前还没有插入功能。应支持任何Unicode。

(返回顶部)

路线图

  • 插入功能
  • 可能为LUA或其他内嵌脚本,用于填充SELECT。

有关完整的功能列表(以及已知问题),请参阅公开问题

(返回顶部)

贡献

贡献使开源社区成为一个如此令人惊叹的学习、灵感和创造的地方。您做出的任何贡献都将被非常感激。

如果您有改进此项目的建议,请分支存储库并创建一个pull request。您也可以简单地创建一个带有“enhancement”标签的问题。别忘了给项目加星!再次感谢!

  1. 分支项目
  2. 创建您的功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开pull request

(返回顶部)

许可

在MIT许可证下分发。有关更多信息,请参阅LICENSE.txt

(返回顶部)

联系

您的名字 - @thorhs - [email protected]

项目链接: https://github.com/thorhs/mfform

(返回顶部)

致谢

(返回顶部)

依赖项

~4–10MB
~98K SLoC