Slopsmith 插件开发快速入门:20 行代码写出你的第一个 plugin.json 插件

发布时间:2026/10/14 18:26:34

Slopsmith 插件开发快速入门:20 行代码写出你的第一个 plugin.json 插件 【免费下载链接】slopsmithSelf-hosted Docker web app for browsing, playing practicing interactive full-band music notation, with an extensive plugin system项目地址https://gitcode.com/gh_mirrors/sl/slopsmith点击查看免费下载Slopsmith 是一款自托管的 Docker Web 应用用于浏览、播放和练习交互式全乐队乐谱吉他、贝斯、键盘、鼓与人声最吸引开发者的正是它强大的插件系统。本教程带你从零开始用约 20 行代码写出第一个 Slopsmith 插件——一份 plugin.json 清单加最小前后端文件重启容器即可在导航栏看到它。 先认识 Slopsmith 插件系统30 秒看懂机制Slopsmith 的插件就是一个放在plugins/目录下的文件夹。启动时插件加载器 plugins/init.py 会自动发现每个子目录中的plugin.json清单文件然后按声明挂载导航链接nav——出现在顶部导航栏独立页面screen.htmlscreen.js——插件自己的完整界面设置面板settings.html——注入到 Settings 页后端 APIroutes.py——注册在/api/plugins/插件id/下的 FastAPI 路由上图Slopsmith 曲库浏览器。顶部导航栏里 “Create from Tab”“Download CDLC” 等入口正是插件通过nav字段自动挂载的结果——你的第一个插件也会出现在这个位置。插件能做的事情非常广泛仓库自带的 3D Highway 就是一个典型例子它把整个播放器视觉换成了带景深相机和灯光的 3D 效果。 快速开始Docker 一键部署 Slopsmith插件开发需要一个运行中的 Slopsmith。整个过程只需三步git clone https://gitcode.com/gh_mirrors/sl/slopsmith cd slopsmith DLC_PATH/path/to/your/songs docker compose up -d克隆仓库并进入目录用DLC_PATH指向你的歌曲文件夹PSARC 或 sloppak 歌曲启动容器后浏览器打开http://localhost:8000上图Slopsmith 播放器主界面——这也是你的插件脚本将要运行其中的环境。 第一个 plugin.json20 行代码的核心插件清单的完整 schema 见 docs/plugin-manifest.schema.json其中只有id和name是必填字段其余全部按需组合。以下是本教程示例的完整plugin.json11 行{ id: my_first_plugin, name: My First Plugin, version: 1.0.0, nav: { label: My First Plugin, screen: plugin-my_first_plugin }, screen: screen.html, script: screen.js, routes: routes.py }各字段速查表字段必填作用id✅唯一标识仅限字母数字、_、.、-用于 API 路径name✅显示名称nav否导航栏链接screen指定点击后跳转的页面 IDscreen否插件页面的 HTML 片段文件script否页面注入后加载的 JavaScriptsettings否设置面板{ html: settings.html }routes否后端路由模块须导出setup(app, context)styles否插件自编译的样式表须位于assets/下tour否新手引导步骤文件JSONtype否设为visualization可进入 Highway 可视化选择器创建插件目录结构plugins/ my_first_plugin/ plugin.json screen.html screen.js routes.py 参考真实案例内置小游戏插件 plugins/minigames/plugin.json 还额外声明了settings.server_files参与设置导出/导入和diagnostics参与诊断包导出都是可选的进阶字段。️ 最小前端screen.html 与 screen.jsscreen.html是一段HTML 片段不能有html/body标签会被注入到div classscreen容器中可直接使用 Tailwind 工具类div classmax-w-3xl mx-auto px-6 pt-24 h1 classtext-3xl font-bold text-white mb-2My First Plugin/h1 p idhello-output classtext-gray-400Loading…/p /divscreen.js运行在全局作用域可访问window.playSong、window.showScreen、window.slopsmith事件总线等核心 API。建议用 IIFE 包裹避免污染全局变量(function () { use strict; fetch(/api/plugins/my_first_plugin/hello) .then((r) r.json()) .then((data) { document.getElementById(hello-output).textContent data.message; }); })();⚙️ 最小后端8 行 routes.py 写出你的 APIroutes.py必须导出一个setup(app, context)函数。context字典提供持久配置目录config_dir、get_dlc_dir()、元数据库meta_db、日志器log等——后端状态请写入config_dir下该目录在 Docker 卷中持久保存def setup(app, context): log context[log] log.info(my_first_plugin ready) app.get(/api/plugins/my_first_plugin/hello) def hello(): return {message: Hello, Slopsmith!}路由统一注册在/api/plugins/{plugin_id}/前缀下天然避免与其他插件冲突。注意日志请一律使用context[log]不要用print()。 安装与验证重启容器即可生效插件安装就是“丢文件夹 重启”没有任何注册步骤确认 4 个文件已放入plugins/my_first_plugin/若用 Docker 卷挂载了插件目录则放入对应宿主机目录重启容器docker compose restart刷新浏览器http://localhost:8000顶部导航栏应出现My First Plugin入口点击导航进入插件页面应显示后端返回的Hello, Slopsmith!也可直接访问http://localhost:8000/api/plugins/my_first_plugin/hello验证 API✅ 看到导航链接 页面内容 API 三处全部正常恭喜你——第一个 Slopsmith 插件就跑通了。⚠️ 常见坑位为什么我的插件没出现现象排查方向导航栏没有链接plugin.json必须是合法 JSONid只允许字母、数字、_、.、-确认容器已重启页面空白screen.html里误写了html/body标签打开浏览器控制台看screen.js报错API 返回 404routes.py缺少setup(app, context)导出路由路径前缀是否写成了/api/plugins/my_first_plugin/样式全丢使用了核心未扫描的 Tailwind 类如任意值text-[11px]需按 docs/plugin-styles.md 自编译样式表并声明styles字段改了代码没生效前后端改动都要重启容器Python 模块有缓存加载过程的所有警告都会以[Plugin]前缀写入服务器日志用docker compose logs查看是最快的排错入口。 进阶路线从入门到完整插件掌握基本骨架后建议按以下路径升级你的插件加设置面板plugin.json加settings: { html: settings.html }片段会被注入 Settings 页加新手引导参考 plugins/app_tour_library/tour.json 的 spotlight 步骤格式声明能力域capabilities让其他插件与核心能感知你的 provider/requester 关系详见 docs/capability-domains.md写 Highway 可视化插件type: visualizationwindow.slopsmithViz_id渲染器工厂参考 plugins/highway_3d/plugin.json参与诊断与备份diagnostics与settings.server_files字段说明见 CLAUDE.md完整插件规范前端全局 API、playSong包装链、WebSocket 协议、load_sibling等都在 CLAUDE.md 中社区插件开发约定见 CONTRIBUTING.md想写小游戏类插件可再读 plugins/minigames/README.md 中的 SDK 用法。从这份 20 行的 plugin.json 起步重启容器你的功能就会出现在 Slopsmith 的导航栏里——这就是它插件系统的全部“仪式感”。赞分享【免费下载链接】slopsmithSelf-hosted Docker web app for browsing, playing practicing interactive full-band music notation, with an extensive plugin system项目地址https://gitcode.com/gh_mirrors/sl/slopsmith点击查看免费下载相关推荐expo-tailcat为 Expo 应用注入原生级 Tailcat 隧道 —— iOS/Android 上的应用内 HTTP 与 WebSocket 直连方案expo tailcat为 Expo 应用注入原生级 Tailcat 隧道 —— iOS/Android 上的应用内 HTTP 与 WebSocket 直连方人工智能AI AgentAI 应用移动开发CLI后端awsm.fish插件开发入门如何编写你的第一个Fish插件awsm.fish插件开发入门如何编写你的第一个Fish插件 想要为现代化的Fish Shell编写插件却不知从何开始awsm.fish项目为你提供了完美文档notepad--插件开发入门编写你的第一个扩展notepad 插件开发入门编写你的第一个扩展 引言为什么选择notepad 插件开发 你是否曾在使用文本编辑器时遇到重复繁琐的操作而感到效率低下是否桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/14 18:26:34

SQL编辑器实战:KStudio与KSQL Developer功能对比与使用技巧

SQL编辑器实战:KStudio与KSQL Developer功能对比与使用技巧 前言 SQL编辑器是数据库开发人员的日常工具,选对工具能大幅提升开发效率。写SQL、调试存储过程、查看执行计划,这些操作每天都要做几十遍,工具的易用性、性能、功能完整…

2026/10/14 18:26:34

STM32 UART驱动兼容F1/F4及标准库/HAL库的实现

简介:面向STM32嵌入式开发者,这份UART通信代码覆盖F1与F4两大主流系列,同时兼容标准库与HAL库两种开发方式,解决了不同项目在串口通信上的移植与适配难题。压缩包共4个文件,包含2个头文件与2个C源文件,整体…

2026/10/14 18:26:33

基于YOLOv8/YOLOv10/YOLOv11/YOLOv12与SpringBoot的工地运输车类型检测系统(DeepSeek智能分析+web交互界面+前后端分离+YOLO数据)

摘要 随着我国城市化进程的不断加速和基础设施建设的蓬勃开展,各类大型工地现场的管理日益复杂化与精细化。工地内部运输车辆(如挖掘机、自卸卡车、轮式装载机)的高效、安全管理是保障施工进度、预防安全事故、优化资源配置的关键环节。传统…

2026/10/14 19:42:04

Core File Kit fileIo:离线核验日志临时写入与失败收口【鸿蒙心迹】

本文的文件名、路径片段、状态、日志和界面均为演示构造,不代表已经在 HarmonyOS 设备上写盘、断电或恢复成功。示例只讨论应用沙箱内的文件处理,不涉及用户公共目录授权或云同步。 一、一个看似正常的“导出成功”提示 我见过的离线审核工具里&#xf…

2026/10/14 19:42:04

推客带货系统化:从选品到复盘的闭环实战指南

做推客带货的朋友聚在一起,聊到最后几乎都是同一个画面:朋友圈一天发十几条链接,群里红包撒了一地,月底打开佣金后台一看,数字还是那个数字。不是不努力,是打法太散。真正月入翻倍、而且翻得稳定的人&#…

2026/10/14 19:42:04

上班族长期看屏幕,干眼症用玻璃酸钠滴眼液注意事项

上班族长期看屏幕,干眼症用玻璃酸钠滴眼液注意事项现如今电脑办公、手机通勤已经成为上班族的日常。长时间紧盯电子屏幕,眨眼次数会不自觉减少,泪液蒸发过快,很多人被眼睛干涩、异物感、酸胀畏光等干眼问题困扰。根据《中国干眼临…

2026/10/14 19:37:03

电商税务核算:6 大税种的精细化处理

电商税务为什么比传统零售难 3 倍传统零售涉税面相对窄:增值税 企业所得税 个税 印花税,4 个税种撑起全部税务链路。电商的涉税面要宽得多。一家年 GMV 3 亿、同时在京东 POP 抖店 支付宝 亚马逊 速卖通运营的中型电商公司,至少要面对…

2026/10/14 11:31:03

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/14 17:41:07

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/14 2:32:55

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/14 0:00:33

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:33

macOS/iOS高精度计时:mach_absolute_time原理与实战

1. 项目概述:为什么mach_absolute_time是 macOS/iOS 时间测量的“黄金标准”在 macOS 和 iOS 开发中,我见过太多人用CFAbsoluteTimeGetCurrent()或NSDate.timeIntervalSinceReferenceDate做性能打点,结果在高精度场景下被系统时钟跳变、NTP 同…

2026/10/14 0:00:33

SCORM课件演示与测试全解析:从API通信到自动化验证

简介:这是一套遵循SCORM标准的交互式课件演示与测试资源,面向E-Learning课程开发者、LMS平台测试人员及在线教学从业者,用于验证课件在不同学习管理系统中的识别、传递与跟踪能力。压缩包共28个文件,约12.07MB,以swf动…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑