实时数据待拉取(运行 scripts/enrich.py 后填充)
piano

项目简介

基于 Omi 和 Omi Snippets 构建的钢琴应用。你不需要懂乐理知识,仅用键盘即可弹奏简单而熟悉的音乐,也借此项目感谢音乐和编程的陪伴!也致敬各位奋斗于 996 的代码家和打工人,音乐不曾辜负任何人,正如 Leehom Wang 歌曲中唱到:如果世界太危险,只有音乐最安全,带着我进梦里面,让歌词都实现!上面这段是作者写的推荐语,我本来想从项目的角度再夸下这个项目,但我放弃了。虽然我之前推荐过的那个钢琴项目弹的比这个要好听,但我更喜欢这个项目。因为我从他的项目中感受到满满敬意和“爱”,致敬每一位奋斗的“代码家”,HG 爱你们。[在线尝试](http://wscats.gitee.io/piano/build/),示例代码:

javascript playSong(song) {this.setSong([...song])let offset = 0 let time = 0 let playSong = async () => {// 右边是从外部来中断递归if (offset  0) {switch (typeof song[offset]) {// 简谱2演奏方法 根据 ++12345--6. 简单旋律情况case 'string':let letters = song[offset].match(/[0-9]/g)switch (letters.length) {case 1:time = this.handleString(song, offset)break default:time = this.handleStrings(song, offset)break}break// 简谱1演奏方法 根据 CDEFGAB,复杂旋律情况,比如有和弦case 'object':console.log(song[offset]['note'])time = song[offset]['time'];this.playNote(song[offset]['note'])break;case 'number':// 休止符switch (song[offset]) {case 0:time = 1000 break}break}await new Promise((resolve) => {let timer = setTimeout(() => {clearInterval(timer)resolve()}, time)})offset++// 自定义事件,跟下面底部的音符自动跳动结合this.add()playSong()} else {// 暂停播放clearTimeout(this.timer)this.store.data.song = []this.store.data.count = 0 return}}playSong()}

本期其他项目

全部 →
暂无截图
C第 56 期

ucore

清华大学操作系统课程,配套实验项目。推荐给有计算机结构原理、C 和汇编、数据结构基础并对操作系统感兴趣的同学,项目中包含教学视频、练习题、实验指导书等

ContextMenuManager
C#第 56 期

ContextMenuManager

一个纯粹的 Windows 右键菜单管理程序。功能:- 启用或禁用文件、文件夹、新建、发送到、打开方式等右键菜单项目- 右键菜单项目进行修改名称、修改图标、导航注册表位置、永久删除等操作- 右键菜单自定义添加项目,自定义菜单命令

暂无截图
C++第 56 期

spdlog

快速、上手简单的 C++ 日志库。示例代码:```C++#include "spdlog/spdlog.h"int main(){spdlog::info("Welcome to spdlog!");spdlog::error("Some error message with arg: {}", 1);spdlog::warn("Easy padding in numbers like {:08d}", 12);spdlog::critical("Support for int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}", 42);spdlog::info("Support for floats {:03.2f}", 1.23456);spdlog::info("Positional args are {1} {0}..", "too", "supported");spdlog::info("{:<30}", "left aligned");spdlog::set_level(spdlog::level::debug); // Set global log level to debug spdlog::debug("This message should be displayed..");// change log pattern spdlog::set_pattern("[%H:%M:%S %z] [%n] [%^---%L---%$] [thread %t] %v");// Compile time log levels// define SPDLOG_ACTIVE_LEVEL to desired level SPDLOG_TRACE("Some trace message with param {}", 42);SPDLOG_DEBUG("Some debug message");}```

srpc
C++第 56 期

srpc

搜狗基于 C++ Workflow 的高性能 RPC 框架。与 thrift/brpc 协议兼容,支持 protobuf/thrift IDL一键迁移,核心代码量仅 1w 行。示例代码:```c++class ExampleServiceImpl : public Example::Service{public:void Echo(EchoRequest *request, EchoResponse *response, RPCContext *ctx) override{response->set_message("Hi, " + request->name());}};int main(){SRPCHttpServer server;ExampleServiceImpl impl;server.add_service(&impl);server.start(1412);pause();server.stop();return 0;}访问:curl 127.0.0.1:1412/Example/Echo -H 'Content-Type: application/json' -d '{message:"from curl",name:"CURL"}'```

tailwindcss
CSS第 56 期

tailwindcss

基于比组件更小、更灵活的工具类(utility-first)思想的 CSS 框架。这个思想简单来说就是用 class 保证灵活、便于自定义组件,而不是在组件基础上实现个性化。网上对这个框架褒贬不一,但我觉得挺好想学一下

go-zero
Go第 56 期

go-zero

一个可靠的 Go 语言 Web 和 RPC 框架。就算是 Go 新手基于该框架,也可以快速写出高性能可扩展的微服务。示例代码:```go func main() {flag.Parse()var c config.Config conf.MustLoad(*configFile, &c)ctx := svc.NewServiceContext(c)server := rest.MustNewServer(c.RestConf)defer server.Stop()handler.RegisterHandlers(server, ctx)server.Start()}```

lazykube
Go第 56 期

lazykube

支持鼠标操作和管理 K8s 的命令行工具。对比 k9s 命令行工具,可以不用去记那么多快捷键,直接用鼠标操作。解决公司不使用 rancher 和 dashboard 管理 K8s,只能通过堡垒机访问的场景。使用该工具只需要终端和鼠标,当然用到搜索功能时还是需要键盘的 😂

同类项目

全部 →
astryx
JavaScript第 124 期

astryx

Meta 开源的 React 设计系统。该项目是基于 React 和 StyleX 构建的设计系统,在 Meta 内部经过多年实践。它内置 150+ 组件、7 套可定制主题、深色模式、页面模板和 CLI,对 AI Agent 友好。

来自 @JRZYgit 的分享
ColorTxt
JavaScript第 124 期

ColorTxt

会给小说上色的阅读器。这是一款基于 Electron 构建的本地小说阅读器,支持 TXT、EPUB、MOBI、PDF 等格式。它可自动为正文中的人名和关键词设置颜色,并支持章节识别、划线笔记、语音朗读和 AI 剧情分析等功能。

karakeep
JavaScript第 124 期

karakeep

可自托管的浏览器书签管理平台。这是一款可自托管的浏览器书签管理应用,可保存链接、笔记、图片和 PDF,并支持 AI 自动打标签与生成摘要。它提供全文搜索、OCR、浏览器扩展、移动端应用、RSS 自动收藏和网页归档等功能。

magic-resume
JavaScript第 124 期

magic-resume

在线 AI 简历编辑器。这是一款免费的在线 AI 简历编辑器,无需登录、内置多种模板。它基于 TanStack Start、TypeScript 和 Tiptap 构建,支持实时预览、配置 AI 服务商、深色模式、PDF 导出和自动保存等功能。

TREK
JavaScript第 124 期

TREK

可多人协作的旅行规划平台。这是一款可自托管的旅行规划平台,支持多人实时协作、交互式地图、费用分摊、行李清单、预订管理和旅行计划等功能。它内置 MCP 服务,可结合 AI 助手规划旅行。

emdash
JavaScript第 123 期

emdash

WordPress 的无服务器替代品。该项目是基于 Astro 构建的内容管理系统,可作为 WordPress 的替代品。它提供 WordPress 导入、可视化编辑、全文搜索、定时发布等功能,可直接运行在 Cloudflare 或本地 Node.js+SQLite 等环境上。

r2-web
JavaScript第 123 期

r2-web

纯前端的在线文件管理平台。这是一款纯前端的 Cloudflare R2(云存储)文件管理器,打开网页输入 R2 凭证,就能直接管理桶里的文件。它内置图片、视频、音频和文本预览,支持拖拽/粘贴上传、图片压缩、批量管理等功能。

来自 @Viki9VD3M 的分享
react-scan
JavaScript第 123 期

react-scan

自动揪出 React 应用性能问题的工具。该项目是专门用来发现 React 应用性能问题的可视化调试工具,无需改动任何代码,只需添加一个 script 标签或运行一条命令,即可在页面上高亮显示哪些组件发生了不必要的重渲染,适用于 React、Next.js、Vite、Remix 等项目。

来自 @JRZYgit 的分享