---
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>
