Files
NebulaShell/store/@{Falck}/web-toolkit
Falck 76147bae94 初始提交 - FutureOSS v1.0 插件化运行时框架
一切皆为插件的开发者工具运行时框架

🧩 核心特性:
  - 插件热插拔 (importlib 动态加载)
  - 依赖自动解析 (拓扑排序 + 循环检测)
  - 企业级稳定 (熔断/降级/重试/隔离)
  - 事件驱动 (发布/订阅事件总线)
  - 完整配置 (YAML 配置 + 热重载)
2026-04-06 09:57:10 +08:00
..

web-toolkit Web 工具包

提供静态文件服务、模板渲染、路由等 Web 开发工具。

功能

  • 静态文件服务:提供 HTML/CSS/JS/图片等静态文件
  • 模板引擎:支持变量替换、条件判断、循环
  • 路由管理:为 HTTP 和 TCP 服务器注册路由
  • 自动首页:自动查找 index.html

使用

web = plugin_mgr.get("web-toolkit")

# 设置目录
web.set_static_dir("./public")
web.set_template_dir("./templates")

# 添加自定义路由
web.add_route("GET", "/api/hello", lambda req: {
    "status": 200,
    "headers": {"Content-Type": "application/json"},
    "body": '{"message": "Hello"}'
})

# 渲染模板
html = web.render_template("page.html", {"title": "My Page", "items": [1, 2, 3]})

模板语法

<!-- 变量 -->
<h1>{{ title }}</h1>
<p>{{ description }}</p>

<!-- 条件 -->
{% if show_content %}
  <div>{{ content }}</div>
{% endif %}

<!-- 循环 -->
<ul>
{% for item in items %}
  <li>{{ item }}</li>
{% endfor %}
</ul>

配置

{
  "config": {
    "args": {
      "host": "0.0.0.0",
      "port": 8080,
      "static_dir": "./static",
      "template_dir": "./templates",
      "index_files": ["index.html", "index.htm"]
    }
  }
}

依赖

  • http-apiHTTP 服务
  • http-tcpTCP HTTP 服务