AI prompts
base on A markdown editor that you can deploy on your own servers to achieve cloud storage and device synchronization(支持私有部署的云端存储双链笔记软件) ### [English](./README-EN.md) | [中文](./README.md)
<p align="center">
<img src="./doc/imgs/blossom_name.png" height="auto">
</p>
<p align="center">
<a href="https://hellogithub.com/repository/c6947b28421a475bb7b701ef2b4089f8" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=c6947b28421a475bb7b701ef2b4089f8&claim_uid=HR0k4ei923h8Mda" alt="Featured|HelloGitHub" style="width: 250px; height: 54px;" width="250" height="54" /></a>
<p align="center">
<a href="https://www.wangyunf.com/blossom-demo/#/settingindex">💻️ 试用</a> | <a href="https://www.wangyunf.com/blossom-doc/index.html">📃 文档</a> | <a href="https://www.wangyunf.com/blossom-doc/guide/about/download.html">📥 下载</a>
</p>
Blossom 是一个支持**私有部署**的**云端双链笔记软件**,你可以将你的笔记,图片,个人计划安排保存在自己的服务器中,并在任意设备之间实时同步。同时还是一个动态博客。
支持 Windows,Mac,网页客户端,网页移动端。
<p align="center">
<img src="./doc/imgs/device.png">
</p>
# 🛎️ 在线试用
你可以通过[在线地址](https://www.wangyunf.com/blossom-demo/#/settingindex)或[下载客户端](https://www.wangyunf.com/blossom-doc/guide/about/download.html)试用,详细信息请查看[试用](https://www.wangyunf.com/blossom-doc/guide/tryuse.html)文档。
<br/><br/>
# 👏 Blossom 的特点:
### 完善的文件关系
Blossom 不依赖任何三方存储和图床,其本身就是一个图床,并且提供了完善的图片管理,防勿删,以及图片和文章的双向关系绑定。
基于 Markdown 编写,没有破坏性的语法拓展,在这里编写的内容在任何 Markdown 软件中都能正常显示。
### 快速迁移
所有图片和文章都支持一键备份和导出,可以在几分钟内轻松迁出。导出的文件可以无缝使用 VS Code 或 Obsidian 等本地软件正常打开。
### 丰富的附加功能
- 📅 [计划安排](https://www.wangyunf.com/blossom-doc/guide/plan.html)
- 🏷️ [待办事项](https://www.wangyunf.com/blossom-doc/guide/todo.html)
- 🎫 [快捷便签](https://www.wangyunf.com/blossom-doc/guide/note.html)
- 🍅 [番茄钟](https://www.wangyunf.com/blossom-doc/guide/article.html#tomato)
- 🧰 多用户、字数统计、字数折线图、编辑热力图、天气预报、主题设置...
Blossom 拥有丰富的功能,不仅仅是知识管理,更是一个可以供多人同时使用的全面实用性工具。
<br/><br/>
# 🚀 Docker Compose 一键部署
```
docker compose -f docker/compose/blossom-mysql8.yaml up -d
```
<br/><br/>
# 🥳 加入群聊
加入群聊进行沟通,反馈问题。
- 1 群:522359970 (已满)
- 2 群:921906098 (已满)
- 3 群:749721525 (已满)
- 4 群:936368211
<p align="center">
<img src="./doc/imgs/qq1.png" height="400">
<img src="./doc/imgs/qq2.png" height="400">
<img src="./doc/imgs/qq3.png" height="400">
</p>
# 🤝 赞助 Blossom
**Blossom 不会向你收取任何的费用,你可以永久免费使用!**
但开源软件的收益目前很难维持生活,并且项目设计,开发,测试需要大量的时间和精力,如果你愿意赞助我的工作,将非常有助于该项目的成长,并激励我长期持续下去!
**感谢每一个位赞助者对 Blossom 的大力支持,Blossom 因为你们变得更好。**
<p align="center">
<a target="_blank" href="https://www.wangyunf.com/blossom-doc/guide/about/sponsor-list.html">
<img alt="sponsors" src="https://www.wangyunf.com/bl/pic/home/bl/img/U1/pic/sponsor.svg">
</a>
</p>
---
<h4 align="center">你可以通过以下几种方式赞助 Blossom。</h4>
<p align="center">
<img src="./doc/imgs/sponsors/wechat.png" height="400">
<img src="./doc/imgs/sponsors/ali.png" height="400">
<img src="./doc/imgs/sponsors/aifadian.png" height="400">
</p>
<br/>
# 更多图片
!["编辑器"](./doc/imgs/article.png)
<p align="center">编辑器</p>
---
!["双链笔记"](./doc/imgs/article_reference.png)
<p align="center">双链笔记</p>
---
!["照片墙"](./doc/imgs/picture.png)
<p align="center">照片墙</p>
---
!["日历计划"](./doc/imgs/todo.png)
<p align="center">待办事项清单</p>
---
!["日历计划"](./doc/imgs/plan.png)
<p align="center">日历计划</p>
---
!["便签管理"](./doc/imgs/note.png)
<p align="center">便签管理</p>
---
!["博客"](./doc/imgs/blog_home_pc.png)
<p align="center">博客</p>
<p align="center">
<img src="./doc/imgs/blog_home_m.png" height="600">
<img src="./doc/imgs/blog_article.png" height="600" style="margin-left: 30px">
</p>
<p align="center">博客移动端</p>
# Star 历史
[![Stargazers over time](https://starchart.cc/blossom-editor/blossom.svg?variant=adaptive)](https://starchart.cc/blossom-editor/blossom)
", Assign "at most 3 tags" to the expected json: {"id":"5695","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"