base on VitePress Visual Configuration Tool <div align="center"> <a href="https://github.com/zhangdi168/VitePressSimple"> <img src="./docs/vpstatic/images/vpsimple.png" width="120"/></a> </div> [//]: # (<h1 align="center">VitePress Simple</h1>) <h3 align="center"> <a target="_blank" href="https://vitepress.dev/">VitePress</a> Configuration Tool</h3> <h3 align="center"> <strong>English</strong> | <a href="https://github.com/zhangdi168/VitePressSimple/blob/master/README_ZH.md"> 简体中文</a> </h3> ![vpsimple](./docs/vpstatic/images/demo.png) [→→→ Quick Start Video Tutorial](https://www.bilibili.com/video/BV1ki421y7uV/#reply219109211424) # Features * Developed based on wails2+vite+vue3+typescript * Lightweight client program based on Webview2 * Online editor for markdown documents * Support for document directory tree, including moving, cutting, copying, and pasting operations * Support for directly copying and pasting images into markdown documents and automatically uploading them to the server * Native configuration parsing, directly parsing and rendering .vitepress/config.mts * Multilingual support, different languages can be configured separately * Navigation bar can be visually configured, and different languages can be separately configured * Sidebar can be visually configured, supporting multiple sidebar configurations, multiple languages, and automatic sidebar recognition * Search configuration support, optional local configuration or third-party search services # Quick Start Guide Free download for Mac and Windows installation packages: [GitHub download link](https://github.com/zhangdi168/VitePressSimple/releases) | [Gitee download link](https://gitee.com/zhangdi168/VitePressSimple/releases) View the complete document:[Chinese Documentation](http://vpsimple.xiaod.co/zh) | [English Documentation](http://vpsimple.xiaod.co/en) Below is an example VitePress project for easy exploration: ## Create VitePress project ![Create VitePress project](./docs/vpstatic/images/20240416/9323bce8-7c90-439d-9b1b-49aec08211ea.png) Enter the project name and select the project root directory: ![4631dcde70f7427bb5d07a2bd6d80b76.png](./docs/vpstatic/images/20240416/4631dcde-70f7-427b-b5d0-7a2bd6d80b76.png) ## online preview ![img.png](./docs/vpstatic/images/openInDir.png) After the creation is completed, you can **click the folder icon to enter the project root directory** ```bash # Go to the project root directory, not the original directory npm install npm run docs:dev ``` After executing the above command, VitePress can be tested to run. The default address is: http://localhost:5173. Modifying the document content or configuration in vpsimple will automatically update. ## Build the Project ### Runtime Environment Requirements * Go (latest version) * Node.js >= 16 * NPM >= 9 ### Install Wails ```bash go install github.com/wailsapp/wails/v2/cmd/wails@latest ``` ### Clone the Repository ```bash git clone https://github.com/zhangdi168/VitePressSimple --depth=1 ``` ### Build the Frontend Code ```bash cd ./frontend npm install ``` ### Compile and Run the Development Version ```bash # preview wails dev # build wails build ``` ### About the Author [Author's Personal Website: http://xiaod.co/](http://xiaod.co/) Author's Wechat:bcxiaod This project is completely free. If it has been helpful to you, you can buy the author a coffee ☕️.", Assign "at most 3 tags" to the expected json: {"id":"9948","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"