2025-04-30 20:26:37 +08:00

82 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebar_position: 4
description: 开源之夏 - 暑期 2025
mdx:
format: md
---
# 暑期 2025
**开源之夏 - 暑期 2025** 是**中国科学院软件研究所**发起的**开源软件供应链点亮计划**系列暑期活动,旨在鼓励高校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目开发任务,并向全球高校学生开放报名。关于具体的活动规划、报名方式,请查看该活动的 [官网](https://summer-ospp.ac.cn/) 和 [帮助文档](https://summer-ospp.ac.cn/help/)。
NoneBot 社区有幸作为开源社区 [参与](https://summer-ospp.ac.cn/org/orgdetail/e1fb5b8d-125a-4138-b756-25bd32c0a31a?lang=zh) 了本次活动,下面列出了目前我们已经发布的项目,欢迎感兴趣的同学通过 [contact@nonebot.dev](mailto:contact@nonebot.dev) 联系我们。
## NoneBot HTML 图片渲染插件
文字与图片一直是聊天机器人的两大主流交互方式,而图片的渲染一直是用户开发应用的一大痛点。常见的方式包括 PIL 图片编辑、浏览器渲染 HTML 截图等。PIL 图片编辑依赖人工构建图片布局,容易出现自适应问题,且提升图片特效、美观程度需要极大的开发成本。浏览器渲染方案通过 HTML 与 CSS 能够轻松完成美观自适应能力强的布局,但其部署门槛较高,难以支撑较大规模调用量。而其他轻量化渲染引擎通常不具有完整 HTML/CSS 现代化标准实现,且未提供 Python Binding 直接使用。
本项目希望调研并实现一种高效、便捷的图片渲染方案。该方案需要在保障跨平台一致性、最大程度保证 HTML 与 CSS 现代化标准的前提下,低成本(资源消耗与吞吐量)将 HTML 渲染为对应图片。
**难度**:进阶
**导师**[@MelodyKnit](https://github.com/MelodyKnit)
**产出要求**
- 调研 HTML/CSS 渲染引擎
- 调研 litehtml 等渲染引擎 标准支持能力与兼容性
- 基于渲染引擎实现 HTML 图片渲染插件
- 将渲染引擎通过 binding 等方式集成为 Python 模块
- 基于集成模块实现 HTML 图片渲染能力
- 编写插件使用文档
**技术要求**
- 掌握 Python 及其异步编程
- 熟悉 NoneBot 框架及其插件编写
- 了解浏览器与 HTML 渲染原理
**成果仓库**
- <https://github.com/nonebot/plugin-htmlkit>
## NB-CLI 命令行工具交互优化
NB-CLI 作为 NoneBot 生态的核心入门与管理工具,主要负责新手引导项目创建、项目运行以及插件管理几大功能。目前该脚手架工具仍存在几点缺陷:
- 作为插件管理工具,由于存储数据的局限性,无法很好地展示用户项目当前安装插件状态,并进行卸载等操作;
- 当前插件管理高度依赖云端 registry 提供插件信息,在离线情况下完全无法使用;
- 由于插件信息繁多,工具未能向用户展示充分的信息,交互复杂 体验较差。
以上问题对用户使用 NB-CLI 管理项目插件造成了极大的阻碍。
本项目希望重点针对插件管理部分,重构工具插件管理模块,完善框架缺陷,并通过缓存等方式确保可用性。其次,调研同类工具方案与 TUI 等相关技术,优化信息展示能力、用户交互方式,提升工具整体交互体验。
**相关链接**
- https://github.com/nonebot/nb-cli/issues/138
- https://github.com/nonebot/nb-cli/issues/140
**难度**:基础
**导师**[@yanyongyu](https://github.com/yanyongyu)
**产出要求**
- 重构 NB-CLI 插件管理模块
- 优化项目插件信息存储方式,支持列出、卸载插件等操作
- 通过缓存 registry 数据等方式确保离线场景的可用性
- 提升 NB-CLI 交互体验
- 调研同类工具方案与 TUI 等相关技术
- 优化 registry 多字段信息展示能力
- 基于 TUI 等技术优化用户交互方式,提升整体交互体验
**技术要求**
- 熟练掌握 Python 及其异步编程
- 熟悉 NoneBot 框架与 NB-CLI 使用方法
- 了解 TUI 等终端交互技术
**成果仓库**
- <https://github.com/nonebot/nb-cli>