AI prompts
base on ⛷ Lightweight Markdown app to help you write great sentences. ⛷ 轻灵的 Markdown 笔记本伴你写出妙言 <h4 align="right"><strong><a href="https://github.com/tw93/MiaoYan/blob/master/README_EN.md">English</a></strong> | 中文 | <strong><a href="https://github.com/tw93/MiaoYan/blob/master/README_JP.md">日本語</a></strong></h4>
<p align="center">
<a href="https://miaoyan.app/" target="_blank"><img src=https://gw.alipayobjects.com/zos/k/t0/43.png width=138 /></a>
<h1 align="center">妙言</h1>
<div align="center">
<a href="https://twitter.com/HiTw93" target="_blank">
<img alt="twitter" src="https://img.shields.io/badge/follow-Tw93-red?style=flat-square&logo=Twitter"></a>
<a href="https://t.me/+GclQS9ZnxyI2ODQ1" target="_blank">
<img alt="telegram" src="https://img.shields.io/badge/chat-telegram-blueviolet?style=flat-square&logo=Telegram"></a>
<a href="https://github.com/tw93/MiaoYan/releases" target="_blank">
<img alt="GitHub downloads" src="https://img.shields.io/github/downloads/tw93/MiaoYan/total.svg?style=flat-square"></a>
<a href="https://github.com/tw93/MiaoYan/commits" target="_blank">
<img alt="GitHub commit" src="https://img.shields.io/github/commit-activity/m/tw93/MiaoYan?style=flat-square"></a>
<a href="https://github.com/tw93/MiaoYan/issues?q=is%3Aissue+is%3Aclosed" target="_blank">
<img alt="GitHub closed issues" src="https://img.shields.io/github/issues-closed/tw93/MiaoYan.svg?style=flat-square"></a>
<img alt="Minimum supported version" src="https://img.shields.io/badge/macOS-10.15%2B-orange?style=flat-square">
</div>
<div align="center">轻灵的 Markdown 笔记本伴你写出妙言~</div>
</p>
<img src="https://raw.githubusercontent.com/tw93/static/master/pic/miaoyan.gif" width="900px" />
## 特点
- 🏂 **妙**:纯本地使用、安全、语法高亮、黑暗模式、源文件保存、国际化、演示模式、[PPT 模式](#妙言-ppt)、单独编辑模式、文档自动排版、文档导出、内部跳转、图床、LaTeX、Mermaid、PlantUML、Markmap 脑图
- 🎊 **美**:极简的设计风格,文件夹 + 文件列表 + 编辑器方式 3 列模式
- 🚄 **快**:使用 Swift5 原生开发,相比 Web 套壳方式性能体验好
- 🥛 **简**:很轻巧,纯编辑器输入体验,众多快捷键助你快人一步
## 首次使用
1. 从 <a href="https://github.com/tw93/MiaoYan/releases" target="_blank">GitHub Releases</a> 中 **下载** 最新的 dmg 安装包,macOS Big Sur 及以上版本体验更好,如安装出现问题请参考 [文档](https://zhuanlan.zhihu.com/p/135948430),此外也支持从 `brew install miaoyan --cask` 安装。
2. 可以在 iCloud 或根目录下创建一个 `MiaoYan` 的文件夹,打开妙言的设置,将默认存储地址修改成这个。
3. 点击妙言左上角新增文件夹的图标,创建好自己的文档分类文件夹,就可以开始使用了。
4. 同样假如你不习惯默认的字体,可以在设置中修改成其他的正常字体。
## 快捷键
#### 窗口操作
- `command + 1`:收起展开目录
- `command + 2`:收起展开文档列表
- `command + 3`:切换编辑和预览
- `command + 4`:切换到演示模式
- `command + option + m`:全局唤起/隐藏妙言
#### 文档操作
- `command + n`:新建文档
- `command + r`:重命名文档
- `command + d`:复制文档
- `command + o`:单独打开文档
- `command + delete`:删除文档
- `command + shift + n`:新建文件夹
- `command + shift + l`:自动排版
- `command + option + r`:在 Finder 中显示
- `command + option + i`:显示字数等文档属性
- `command + option + p`:启动妙言 PPT 预览
🏂 此外还有很多快捷键 👆🏻 👇🏻 👈🏻 👉🏻 等着爱折腾的你去寻找~
## 妙言 PPT
<a href=https://gw.alipayobjects.com/zos/k/app2/123.gif target="_blank"><img src="https://user-images.githubusercontent.com/8736212/180579306-4f2504ee-8377-4d5c-b560-2d0d83ac12f6.gif" width="100%"></a>
1. 新朋友默认初始化会生成模版,如果是老朋友需升级到 1.0,可以 Copy [此文件](https://raw.githubusercontent.com/tw93/MiaoYan/master/Resources/Initial/%E5%A6%99%E8%A8%80%20PPT.md) 到妙言玩一玩。
2. 执行 `command + option + p` 可以启动妙言 PPT 预览,也可以选中文档点击右键,选择 `妙言 PPT` 打开。
3. 只有在有 `---` 分隔符标志的文档中,才可启用 PPT 模式,演示过程中你可以 `回车键` 预览演讲大纲,`ESC` 键可退出 PPT 模式。
4. 你可以使用 HTML 来自定义效果,更多复杂的用法可以参考 [Reveal](https://revealjs.com/markdown/) 文档。
## 为什么要做妙言
- 之前有尝试过众多的笔记应用,大学时期为知笔记、印象笔记,工作时候用过 Ulysses、Quiver、MWeb、Bear、Typora,种种原因,没有找到一个习惯的 Markdown 应用,才有了做妙言的想法。
- 本职为前端开发,会一点 iOS 开发,爱折腾,借妙言来玩一下 Swift 以及独立产品,当做一个很愉快的事情。
- 更多介绍可见 [妙言 - 更适合工程师用的笔记应用](https://tw93.fun/2022-09-09/miaoyan.html),很欢迎交流和建议
## 支持
- 我有两只猫,假如觉得妙言让你生活更美好,可以给猫 <a href="https://miaoyan.app/cats.html" target="_blank">喂罐头 🥩🍤</a>。
- 如果你喜欢妙言,可以在 Github Star,更欢迎 [推荐](https://twitter.com/intent/tweet?text=%23%E5%A6%99%E8%A8%80%20-%20%E4%B8%80%E4%B8%AA%E7%AE%80%E6%B4%81%E5%A5%BD%E7%9C%8B%E7%9A%84%E5%BC%80%E6%BA%90%E7%9A%84%20Mac%20%20Markdown%20%E7%BC%96%E8%BE%91%E5%99%A8%EF%BC%8C%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E5%A4%9A%E4%BD%99%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%8E%9F%E7%94%9F%20Swift%20%E5%BC%80%E5%8F%91%EF%BC%8C%E8%BD%BB%E9%87%8F%E6%80%A7%E8%83%BD%E9%AB%98%EF%BC%8C%E5%AE%89%E5%85%A8%E7%BA%AF%E6%9C%AC%E5%9C%B0%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%85%B7%E5%A4%87%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE%E3%80%81%E9%BB%91%E6%9A%97%E6%A8%A1%E5%BC%8F%E3%80%81%E8%87%AA%E5%8A%A8%E6%A0%BC%E5%BC%8F%E5%8C%96%E3%80%81%E5%8D%95%E7%8B%AC%E7%BC%96%E8%BE%91%E3%80%81%E6%BC%94%E7%A4%BA%E6%A8%A1%E5%BC%8F%E3%80%81%E5%9B%BE%E5%BA%8A%E7%AD%89%E5%8A%9F%E8%83%BD%E3%80%82&url=https://github.com/tw93/MiaoYan) 给你志同道合的朋友使用。
- 可以关注我的 [Twitter](https://twitter.com/HiTw93) 获取到最新的妙言更新消息,也欢迎加入 [Telegram](https://t.me/+GclQS9ZnxyI2ODQ1) 聊天群。
## 感谢
- <a href="https://github.com/KristopherGBaker/libcmark_gfm" target="_blank">KristopherGBaker/libcmark_gfm</a>:适用于 cmark-gfm 的 Swift 兼容框架
- <a href="https://github.com/raspu/Highlightr" target="_blank">raspu/Highlightr</a>:语法高亮能力
- <a href="https://github.com/glushchenko/fsnotes" target="_blank">glushchenko/fsnotes</a>:妙言部分初始化代码来源于此项目,很感谢作者
- <a href="https://github.com/lxgw/LxgwWenKai" target="_blank">lxgw/LxgwWenKai</a>:一款漂亮的开源中文字体,妙言将其作为默认字体
- <a href="https://github.com/michaelhenry/Prettier.swift" target="_blank">michaelhenry/Prettier.swift</a>:妙言格式化能力升级成 Prettier 的思路来源
- <a href="https://github.com/hakimel/reveal.js" target="_blank">hakimel/reveal.js</a>:妙言 PPT 底层渲染依赖此框架
- 感谢 Vercel 给妙言 [官网](https://miaoyan.app/) 提供静态渲染能力
<a href="https://vercel.com?utm_source=tw93&utm_campaign=oss"><img
src=https://gw.alipayobjects.com/zos/k/wr/powered-by-vercel.svg
width="118px"/></a>
# 协议
- 遵循 MIT 协议
- 请自由地享受和参与开源
", Assign "at most 3 tags" to the expected json: {"id":"12659","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"