├── .github └── workflows │ ├── doc.yml │ ├── publish.yml │ └── release.yml ├── .gitignore ├── .release-please-manifest.json ├── .vscode └── extensions.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── bun.lockb ├── doc ├── main.png ├── preview.png ├── quick.png └── website │ ├── .gitignore │ ├── .vitepress │ ├── config.mts │ └── theme │ │ ├── index.ts │ │ └── override.css │ ├── LICENSE │ ├── README.md │ ├── bun.lockb │ ├── env.d.ts │ ├── package.json │ ├── postcss.config.js │ ├── src │ ├── api-examples.md │ ├── changelogs.md │ ├── index.md │ ├── markdown-examples.md │ └── public │ │ ├── bg.svg │ │ ├── logo.png │ │ ├── main.png │ │ ├── preview.png │ │ ├── quick.png │ │ └── task.png │ └── tsconfig.json ├── index.html ├── package.json ├── postcss.config.js ├── public ├── icon.png ├── mineru.png ├── pdf │ ├── pdf.mjs │ ├── pdf.mjs.map │ ├── pdf.sandbox.mjs │ ├── pdf.sandbox.mjs.map │ ├── pdf.worker.mjs │ └── pdf.worker.mjs.map ├── tauri.svg └── vite.svg ├── release-please-config.json ├── src-tauri ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── build.rs ├── capabilities │ └── migrated.json ├── icons │ ├── 128x128.png │ ├── 128x128@2x.png │ ├── 32x32.png │ ├── Square107x107Logo.png │ ├── Square142x142Logo.png │ ├── Square150x150Logo.png │ ├── Square284x284Logo.png │ ├── Square30x30Logo.png │ ├── Square310x310Logo.png │ ├── Square44x44Logo.png │ ├── Square71x71Logo.png │ ├── Square89x89Logo.png │ ├── StoreLogo.png │ ├── icon.icns │ ├── icon.ico │ └── icon.png ├── src │ ├── lib.rs │ ├── main.rs │ └── migration │ │ └── mod.rs └── tauri.conf.json ├── src ├── app.tsx ├── assets │ └── react.svg ├── bootstrap.ts ├── components │ ├── Copyright.tsx │ ├── Menus.tsx │ ├── Navigator.tsx │ ├── Page.tsx │ ├── QuickLink.tsx │ └── ThemeButton.tsx ├── global.css ├── hooks │ └── useScrollPage.tsx ├── layout.tsx ├── lib │ ├── QueryQueue.ts │ ├── config.ts │ ├── db.ts │ ├── storage.ts │ └── updater.tsx ├── main.tsx ├── not-found.tsx ├── pages │ ├── createTask │ │ └── index.tsx │ ├── setting │ │ └── index.tsx │ └── task │ │ ├── index.tsx │ │ └── preview │ │ ├── Markdown.tsx │ │ ├── PDFViewer.tsx │ │ ├── PDFViewerSkeleton.tsx │ │ ├── index.tsx │ │ └── state.tsx ├── service │ ├── config.service.ts │ ├── task.model.ts │ ├── task.repository.ts │ └── task.service.ts └── vite-env.d.ts ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts /.github/workflows/doc.yml: -------------------------------------------------------------------------------- 1 | # 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程 2 | # 3 | name: Deploy VitePress site to Pages 4 | 5 | on: 6 | # 在针对 `main` 分支的推送上运行。如果你 7 | # 使用 `master` 分支作为默认分支,请将其更改为 `master` 8 | push: 9 | branches: [main] 10 | 11 | # 允许你从 Actions 选项卡手动运行此工作流程 12 | workflow_dispatch: 13 | 14 | # 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages 15 | permissions: 16 | contents: read 17 | pages: write 18 | id-token: write 19 | 20 | # 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列 21 | # 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成 22 | concurrency: 23 | group: pages 24 | cancel-in-progress: false 25 | 26 | jobs: 27 | # 构建工作 28 | build: 29 | runs-on: ubuntu-latest 30 | steps: 31 | - name: Checkout 32 | uses: actions/checkout@v4 33 | with: 34 | fetch-depth: 0 # 如果未启用 lastUpdated,则不需要 35 | # - uses: pnpm/action-setup@v3 # 如果使用 pnpm,请取消注释 36 | # - uses: oven-sh/setup-bun@v1 # 如果使用 Bun,请取消注释 37 | - name: setup bun 38 | uses: oven-sh/setup-bun@v2 39 | 40 | - name: Setup Pages 41 | uses: actions/configure-pages@v4 42 | 43 | - name: Install dependencies 44 | run: bun install # 或 pnpm install / yarn install / bun install 45 | working-directory: doc/website 46 | 47 | - name: Build with VitePress 48 | run: bun run docs:build # 或 pnpm docs:build / yarn docs:build / bun run docs:build 49 | working-directory: doc/website 50 | 51 | - name: Upload artifact 52 | uses: actions/upload-pages-artifact@v3 53 | with: 54 | path: doc/website/.vitepress/dist 55 | 56 | # 部署工作 57 | deploy: 58 | environment: 59 | name: github-pages 60 | url: ${{ steps.deployment.outputs.page_url }} 61 | needs: build 62 | runs-on: ubuntu-latest 63 | name: Deploy 64 | steps: 65 | - name: Deploy to GitHub Pages 66 | id: deployment 67 | uses: actions/deploy-pages@v4 -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: 'publish' 2 | on: 3 | push: 4 | tags: 5 | - '*' 6 | workflow_dispatch: 7 | 8 | jobs: 9 | publish-tauri: 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | platform: [ windows-latest] 14 | #platform: [macos-latest, ubuntu-latest, windows-latest] 15 | 16 | runs-on: ${{ matrix.platform }} 17 | env: 18 | TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} 19 | TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} 20 | steps: 21 | - uses: actions/checkout@v2 22 | 23 | - name: setup bun 24 | uses: oven-sh/setup-bun@v2 25 | with: 26 | cache-hit: true 27 | 28 | 29 | - name: install Rust stable 30 | uses: actions-rs/toolchain@v1 31 | with: 32 | toolchain: stable 33 | 34 | - name: Rust cache 35 | uses: swatinem/rust-cache@v2 36 | with: 37 | workspaces: './src-tauri -> target' 38 | key: ${{ runner.os }}-stable-tauri-${{ hashFiles('**/Cargo.lock') }} 39 | 40 | - name: install webkit2gtk (ubuntu only) 41 | if: matrix.platform == 'ubuntu-latest' 42 | run: | 43 | sudo apt-get update 44 | sudo apt-get install -y webkit2gtk-4.0 45 | 46 | - name: import windows certificate 47 | if: matrix.platform == 'windows-latest' 48 | env: 49 | WINDOWS_CERTIFICATE: ${{ secrets.WINDOWS_CERTIFICATE }} 50 | WINDOWS_CERTIFICATE_PASSWORD: ${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }} 51 | run: | 52 | New-Item -ItemType directory -Path certificate 53 | Set-Content -Path certificate/tempCert.txt -Value $env:WINDOWS_CERTIFICATE 54 | certutil -decode certificate/tempCert.txt certificate/certificate.pfx 55 | Remove-Item -path certificate -include tempCert.txt 56 | Import-PfxCertificate -FilePath certificate/certificate.pfx -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString -String $env:WINDOWS_CERTIFICATE_PASSWORD -Force -AsPlainText) 57 | 58 | - name: install app dependencies and build it 59 | run: bun i && bun tauri build 60 | - uses: tauri-apps/tauri-action@v0 61 | env: 62 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 63 | with: 64 | tagName: v__VERSION__ # the action automatically replaces \_\_VERSION\_\_ with the app version 65 | releaseName: 'v__VERSION__' 66 | releaseBody: 'See the assets to download this version and install.' 67 | releaseDraft: false 68 | prerelease: false -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | branches: 4 | - main 5 | workflow_dispatch: 6 | permissions: 7 | contents: write 8 | pull-requests: write 9 | 10 | name: release-please 11 | 12 | jobs: 13 | release-please: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: googleapis/release-please-action@v4 17 | with: 18 | # this assumes that you have created a personal access token 19 | # (PAT) and configured it as a GitHub action secret named 20 | # `MY_RELEASE_PLEASE_TOKEN` (this secret name is not important). 21 | token: ${{ secrets.MY_RELEASE_PLEASE_TOKEN }} 22 | # this is a built-in strategy in release-please, see "Action Inputs" 23 | # for more options 24 | target-branch: ${{ github.ref_name }} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | 26 | cert 27 | .tauri 28 | .env -------------------------------------------------------------------------------- /.release-please-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | ".": "0.5.0" 3 | } -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["tauri-apps.tauri-vscode", "rust-lang.rust-analyzer"] 3 | } 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [0.5.0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.4...v0.5.0) (2024-10-17) 4 | 5 | 6 | ### Features 7 | 8 | * **doc:** add doc website ([17d43aa](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/17d43aaf935014c66a1a1fdc62e2fbeedf103670)) 9 | * 添加图片放大查看 ([fe18539](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/fe1853919d8f98d2d80aa6201d4de61c06d5781a)) 10 | 11 | 12 | ### Bug Fixes 13 | 14 | * ... ([f96497c](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f96497ce74fa70db77dac8b8bea6903b19379d1f)) 15 | * add postcss ([8144da0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/8144da0457dbaa78e3af81ca499ed95d296602b3)) 16 | * config error ([73d8265](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/73d8265ec6e59f77eda4ffa095e1409544f19e6b)) 17 | * correct upload URL in task creation form ([f360ad5](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f360ad549e7376e9b36cbcaea52fe82e6bdf007b)) 18 | * **doc/website:** 修复灯箱不可用 ([8c455bb](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/8c455bb6624cdc9f22cb184cd7447054322bb3b1)) 19 | * **docs/website:** 修复github链接错误 ([07958df](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/07958df777728a5ae23f9915172ee29c1cad5d07)) 20 | * remove autoprefixer ([3187e9e](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/3187e9edc2b04718f4af8b4e7db4bebd99d1d4a6)) 21 | * update doc ([45ddf33](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/45ddf33a2ffd3542dbc50759a4147672e97d3438)) 22 | * 修复图片路径错误 ([fe18539](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/fe1853919d8f98d2d80aa6201d4de61c06d5781a)) 23 | * 修复链接错误 ([1806cae](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/1806caee3bf66bf7f6c0ac68a843b477769f75a7)) 24 | * 调整成bun ([e0cbf81](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/e0cbf81e3c82dd62c59584db5b847ef8f1950239)) 25 | 26 | ## [0.4.4](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.3...v0.4.4) (2024-10-10) 27 | 28 | 29 | ### Bug Fixes 30 | 31 | * test rust cache ([c674fda](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/c674fdaadbf4815ebecdebe1ea0167d7a69f9830)) 32 | 33 | ## [0.4.3](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.2...v0.4.3) (2024-10-10) 34 | 35 | 36 | ### Bug Fixes 37 | 38 | * fixed production name ([501d538](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/501d53891b97c76c570c822edd999688ea2c322c)) 39 | * use rust cache ([7e648ce](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/7e648cee291c1f082ed8ec107b219cad107b3e2b)) 40 | 41 | ## [0.4.2](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.1...v0.4.2) (2024-10-10) 42 | 43 | 44 | ### Bug Fixes 45 | 46 | * fix env ([08e2a98](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/08e2a987c73f94c6703bf4f9aa232073744350b3)) 47 | 48 | ## [0.4.1](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.0...v0.4.1) (2024-10-10) 49 | 50 | 51 | ### Bug Fixes 52 | 53 | * 修正参数配置错误 ([ea1761a](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/ea1761a7f3265909e328b38a038f9c144758f27e)) 54 | * 调整插件参数配置错误 ([e6420e3](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/e6420e33bc297a46c906987b0d10ab24d39df8fd)) 55 | 56 | 57 | ### Performance Improvements 58 | 59 | * 调整工作流,支持updater ([f8190c0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f8190c0e11716c15087aebf1cacb6359fe1e0d62)) 60 | 61 | ## [0.4.0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.3.1...v0.4.0) (2024-10-10) 62 | 63 | 64 | ### Features 65 | 66 | * 增加版本检测自动更新 ([bc3ff44](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/bc3ff44b362c9ab563e08320f7171621e103cd91)) 67 | * 调整 ([722e871](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/722e871ba9940cc165467a3c165265707a2e82fa)) 68 | 69 | ## [0.3.1](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.3.0...v0.3.1) (2024-10-10) 70 | 71 | 72 | ### Bug Fixes 73 | 74 | * remove macos ([fcb3753](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/fcb37536b59f92e0cd48b54a28a40bd99d1a1dea)) 75 | * update PAT ([b2a725e](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/b2a725e6c4770f63c0b9a5cc16df8560455f000e)) 76 | * 调整成PAT,来触发publish ([7f264bc](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/7f264bcd6fe308f1f20e20afa6785be7af1e33be)) 77 | 78 | ## [0.3.0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.5...v0.3.0) (2024-10-10) 79 | 80 | 81 | ### Features 82 | 83 | * add macos ([56d0d8a](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/56d0d8a736abca584d8b6e5b90fff8ad19f1e3ae)) 84 | * direct release ([f31a4ee](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f31a4ee04312da0106293a54debf354d2cf05362)) 85 | 86 | ## [0.2.5](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.4...v0.2.5) (2024-10-10) 87 | 88 | 89 | ### Bug Fixes 90 | 91 | * 修复pdfjs-dist ([1e89ccc](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/1e89ccc247477c2d9f33f0e37946d577f8ddb574)) 92 | 93 | ## [0.2.4](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.3...v0.2.4) (2024-10-10) 94 | 95 | 96 | ### Bug Fixes 97 | 98 | * fix bun action ([3ce4ce8](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/3ce4ce82328f8f0fda3741e15ada23150e66b3b5)) 99 | 100 | ## [0.2.3](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.2...v0.2.3) (2024-10-10) 101 | 102 | 103 | ### Bug Fixes 104 | 105 | * update trigger ([647e415](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/647e4150cafbd7b266519b6548e5414238580b69)) 106 | 107 | ## [0.2.2](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.1...v0.2.2) (2024-10-10) 108 | 109 | 110 | ### Bug Fixes 111 | 112 | * 调整release,修复bun ([be3162b](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/be3162b53b58dabb5f4965932fd7900184a4837a)) 113 | 114 | ## [0.2.1](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.0...v0.2.1) (2024-10-10) 115 | 116 | 117 | ### Bug Fixes 118 | 119 | * 修改出发 ([d4f5d54](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/d4f5d54ecf87228749f27ddbb29f270d39c4499e)) 120 | 121 | ## [0.2.0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.1.0...v0.2.0) (2024-10-10) 122 | 123 | 124 | ### Features 125 | 126 | * add github action ([7bd46c4](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/7bd46c4ffbbd86b450f7f2182aae61a839842490)) 127 | * add pdf.js preview ([f6e92d7](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f6e92d76d81259011cd6854be3ea8a174e6bb8b8)) 128 | * add win sign ([7bd46c4](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/7bd46c4ffbbd86b450f7f2182aae61a839842490)) 129 | * init ([2cafbdd](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/2cafbdd35af9f346ae31985135d669fa3958c366)) 130 | * markdonw支持图片查看,方法 ([ec6efe8](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/ec6efe8d4631cbd672d914715b092e9796e0af62)) 131 | * 发布版本 ([f3075aa](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f3075aa16aa816a5be70ba8eedc54d6677992683)) 132 | * 增加markdon打包(包含图片) ([0295795](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/02957950f0e52d6d6864a580fe16a7ab67297d6b)) 133 | * 增加sqlite,增加task ([0bb5dd1](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/0bb5dd1b23537aa98fd30ae12f24ee5cbd2f7077)) 134 | * 增加手工操作 ([183bd07](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/183bd07e7b07e709335e3db8251e73bd22b78409)) 135 | * 增加手工操作 ([4c59287](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/4c592875e273a012c914d0dfcb9fa0ad4e4e5141)) 136 | * 增加接口可配置 ([15c9c70](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/15c9c7098d86e17cdc419d1dd4c66e18cddd67a2)) 137 | * 调整窗口名称 ([ea1018d](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/ea1018d2a7bfb2e3e8cea3a0f8a631f9ba51d088)) 138 | 139 | 140 | ### Bug Fixes 141 | 142 | * add release.json ([3747c26](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/3747c265a95ed8560745a4cfb5a25c688f1b9e7c)) 143 | * any error ([dcc97f2](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/dcc97f21090fc5f72a2496b8de5f8f84553633fc)) 144 | * remove image tag ([a3c9e53](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/a3c9e537c72683a27af7d3319978c922961d49ca)) 145 | * 修复双向同步 ([1863751](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/1863751089ce65b33544c34ad7bfe65d3f153c16)) 146 | * 修复缓存冲突,增加打包下载 ([6a3da3d](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/6a3da3d348cb860ad7c3c4604e0f2287b0b9e5ce)) 147 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Breno A. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MinerUPdfScanner 2 | 3 | MinerUPdfScanner 是一款基于 [MinerU](https://github.com/opendatalab/MinerU) 的 Windows 客户端程序,用于高效地扫描和提取 PDF 文档中的内容。该工具结合深度学习技术,能够自动提取文档中的文字、表格、图片和公式等,并提供多种分析和统计功能。 4 | 5 | ## 功能 6 | 7 | 1. **创建提取任务** 8 | - 用户可以选择 PDF 文件并提交提取任务。 9 | 10 | 2. **提取记录查看** 11 | - 支持按照不同状态查看提取记录,便于管理和跟踪任务进度。 12 | 13 | 3. **导出提取结果** 14 | - 用户可以将提取后的结果导出为 ZIP 文件,方便存储和分享。 15 | 16 | 4. **查看提取结果** 17 | - 提供左右分栏模式查看提取结果,左侧为 PDF 文档,右侧为 Markdown 格式的提取结果。 18 | 19 | 5. **打包导出** 20 | - 通过zip导出提取结果,包含Images。 21 | 22 | ## 安装 23 | 24 | 1. 从 [发行页面](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/releases/latest) 下载最新的安装包。 25 | 2. 双击安装包并按照提示完成安装。 26 | 27 | ## 使用方法 28 | 29 | **重点**: 要配套 [https://github.com/liuhuapiaoyuan/MinerU-webui](https://github.com/liuhuapiaoyuan/MinerU-webui) 作为后端API 30 | 31 | 1. 启动 MinerUPdfScanner。 32 | 2. 点击“创建任务”,选择要提取的 PDF 文件。 33 | 3. 提交任务后,可以在“提取记录”中查看任务状态。 34 | 4. 提取完成后,可以导出结果或在右侧查看提取内容。 35 | 5. PDF查看左右两侧分栏同步查看 36 | 37 | 38 | ## 图片展示 39 | ![主页](doc/main.png) 40 | ![文档查看](doc/preview.png) 41 | ![快捷链接](doc/quick.png) 42 | 43 | ### 版本发布计划 44 | 45 | #### 1.0.0 版本 46 | **发布日期**:预计日期 47 | 48 | **功能**: 49 | - 创建提取任务:用户可以选择 PDF 文件并提交提取任务。 50 | - 提取记录查看:支持按照不同状态查看提取记录。 51 | - 导出提取结果:将提取后的结果导出为 ZIP 文件。 52 | - 查看提取结果:提供左右分栏模式查看提取结果,左侧为 PDF 文档,右侧为 Markdown 格式的提取结果。 53 | 54 | #### 1.1.0 版本 55 | **发布日期**:预计日期 56 | 57 | **功能**: 58 | - [ ] 完善的PDF体验,包含文本层,识别图形层 59 | - [ ] 利用`rust`本机文件读取能力,增强体验 60 | - [ ] 内置完整的 MinerU 运行环境:不再通过外部服务来调用,提升用户体验。 61 | - [ ] 支持按照目录批量读取:用户可以一次性选择一个目录,批量处理该目录下的所有 PDF 文件。 62 | - [ ] 支持单文件配置保存路径:用户可以配置保存提取结果的路径,提升灵活性。 63 | - [ ] 支持多种格式导出,比如导出有声书格式 64 | 65 | 66 | ## 技术支持 67 | 68 | 如有问题或建议,请在 [Issues 页面](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/issues) 提出。 69 | 70 | ## 贡献 71 | 72 | 欢迎贡献代码!请阅读 [贡献指南](CONTRIBUTING.md) 以了解更多信息。 73 | 74 | ## License 75 | 76 | 本项目遵循 MIT 许可证,详细信息请见 [LICENSE](LICENSE) 文件。 77 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/bun.lockb -------------------------------------------------------------------------------- /doc/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/main.png -------------------------------------------------------------------------------- /doc/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/preview.png -------------------------------------------------------------------------------- /doc/quick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/quick.png -------------------------------------------------------------------------------- /doc/website/.gitignore: -------------------------------------------------------------------------------- 1 | /coverage 2 | /node_modules 3 | dist 4 | TODOs.md 5 | .DS_Store 6 | .vitepress/cache 7 | .vscode/ 8 | .idea/ 9 | .vitepress/dist/ 10 | package-lock.json 11 | -------------------------------------------------------------------------------- /doc/website/.vitepress/config.mts: -------------------------------------------------------------------------------- 1 | import { defineConfigWithTheme } from 'vitepress' 2 | import type { ThemeConfig } from 'vitepress-carbon' 3 | import baseConfig from 'vitepress-carbon/config' 4 | import mdItCustomAttrs from 'markdown-it-custom-attrs' 5 | 6 | // https://vitepress.dev/reference/site-config 7 | export default defineConfigWithTheme({ 8 | markdown: { 9 | config: (md) => { 10 | // use more markdown-it plugins! 11 | md.use(mdItCustomAttrs, 'image', { 12 | 'data-fancybox': "gallery" 13 | }) 14 | } 15 | }, 16 | head: [ 17 | [ 18 | "link", 19 | { rel: "stylesheet", href: "https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.css" }, 20 | ], 21 | ["script", { src: "https://cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.umd.js" }], 22 | ], 23 | extends: baseConfig, 24 | title: "MinerU-PDFScanner", 25 | description: "高效 PDF 文档扫描和提取工具", 26 | srcDir: 'src', 27 | base: "/MinerU-PDFScanner/", 28 | //base: '/vitepress-carbon-template/', if running on github-pages, set repository name here 29 | themeConfig: { 30 | // https://vitepress.dev/reference/default-theme-config 31 | nav: [ 32 | { text: '更新日志', link: '/changelogs' }, 33 | ], 34 | 35 | search: { 36 | provider: 'local' 37 | }, 38 | 39 | sidebar: [ 40 | { 41 | text: '更新日志', 42 | items: [ 43 | { text: '更新日志', link: '/changelogs' }, 44 | ] 45 | } 46 | ], 47 | 48 | socialLinks: [ 49 | { icon: 'github', link: 'https://github.com/liuhuapiaoyuan/MinerU-PDFScanner' } 50 | ] 51 | } 52 | }) 53 | -------------------------------------------------------------------------------- /doc/website/.vitepress/theme/index.ts: -------------------------------------------------------------------------------- 1 | import { VPCarbon } from 'vitepress-carbon' 2 | 3 | // uncomment to test CSS variables override 4 | // import './override.css' 5 | export default VPCarbon -------------------------------------------------------------------------------- /doc/website/.vitepress/theme/override.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/website/.vitepress/theme/override.css -------------------------------------------------------------------------------- /doc/website/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Breno A. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /doc/website/README.md: -------------------------------------------------------------------------------- 1 | ## Getting Started 2 | 3 | To get started with this template, follow these simple steps: 4 | 5 | 1. Install dependencies using npm or yarn: 6 | ``` 7 | npm install 8 | # or 9 | yarn install 10 | pnpm install 11 | bun install 12 | ``` 13 | 14 | 2. Start the development server: 15 | ``` 16 | npm run docs:dev 17 | # or 18 | run docs:dev 19 | ``` 20 | 21 | 3. Open your browser and visit `http://localhost:5173` to view your documentation website. 22 | 23 | ## Available Scripts 24 | 25 | - **`docs:dev`**: Start VitePress development server. 26 | - **`docs:build`**: Build the documentation website for production. 27 | - **`docs:preview`**: Preview the built documentation website. 28 | 29 | Happy documenting! If you have any questions or need further assistance, don't hesitate to reach out [here](https://github.com/brenoepics/vitepress-carbon). 30 | -------------------------------------------------------------------------------- /doc/website/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/website/bun.lockb -------------------------------------------------------------------------------- /doc/website/env.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'vitepress-carbon/config' { 2 | import { UserConfig } from 'vitepress' 3 | const config: () => Promise 4 | export default config 5 | } -------------------------------------------------------------------------------- /doc/website/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vitepress-carbon-template", 3 | "version": "0.0.1", 4 | "description": "VitePress Carbon Template", 5 | "scripts": { 6 | "docs:dev": "vitepress dev", 7 | "docs:build": "vitepress build", 8 | "docs:preview": "vitepress preview" 9 | }, 10 | "dependencies": { 11 | "markdown-it-custom-attrs": "^1.0.2", 12 | "vitepress": "^1.4.0", 13 | "typescript": "^5.2.2", 14 | "tailwindcss": "^3.4.13", 15 | "vitepress-carbon": "^1.4.3" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /doc/website/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports= { 2 | plugins: { 3 | 4 | }, 5 | } 6 | -------------------------------------------------------------------------------- /doc/website/src/api-examples.md: -------------------------------------------------------------------------------- 1 | --- 2 | outline: deep 3 | --- 4 | 5 | # Runtime API Examples 6 | 7 | This page demonstrates usage of some of the runtime APIs provided by VitePress. 8 | 9 | The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files: 10 | 11 | ```md 12 | 17 | 18 | ## Results 19 | 20 | ### Theme Data 21 |
{{ theme }}
22 | 23 | ### Page Data 24 |
{{ page }}
25 | 26 | ### Page Frontmatter 27 |
{{ frontmatter }}
28 | ``` 29 | 30 | 35 | 36 | ## Results 37 | 38 | ### Theme Data 39 |
{{ theme }}
40 | 41 | ### Page Data 42 |
{{ page }}
43 | 44 | ### Page Frontmatter 45 |
{{ frontmatter }}
46 | 47 | ## More 48 | 49 | Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata). 50 | -------------------------------------------------------------------------------- /doc/website/src/changelogs.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [0.4.4](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.3...v0.4.4) (2024-10-10) 4 | 5 | 6 | ### Bug Fixes 7 | 8 | * test rust cache ([c674fda](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/c674fdaadbf4815ebecdebe1ea0167d7a69f9830)) 9 | 10 | ## [0.4.3](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.2...v0.4.3) (2024-10-10) 11 | 12 | 13 | ### Bug Fixes 14 | 15 | * fixed production name ([501d538](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/501d53891b97c76c570c822edd999688ea2c322c)) 16 | * use rust cache ([7e648ce](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/7e648cee291c1f082ed8ec107b219cad107b3e2b)) 17 | 18 | ## [0.4.2](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.1...v0.4.2) (2024-10-10) 19 | 20 | 21 | ### Bug Fixes 22 | 23 | * fix env ([08e2a98](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/08e2a987c73f94c6703bf4f9aa232073744350b3)) 24 | 25 | ## [0.4.1](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.4.0...v0.4.1) (2024-10-10) 26 | 27 | 28 | ### Bug Fixes 29 | 30 | * 修正参数配置错误 ([ea1761a](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/ea1761a7f3265909e328b38a038f9c144758f27e)) 31 | * 调整插件参数配置错误 ([e6420e3](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/e6420e33bc297a46c906987b0d10ab24d39df8fd)) 32 | 33 | 34 | ### Performance Improvements 35 | 36 | * 调整工作流,支持updater ([f8190c0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f8190c0e11716c15087aebf1cacb6359fe1e0d62)) 37 | 38 | ## [0.4.0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.3.1...v0.4.0) (2024-10-10) 39 | 40 | 41 | ### Features 42 | 43 | * 增加版本检测自动更新 ([bc3ff44](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/bc3ff44b362c9ab563e08320f7171621e103cd91)) 44 | * 调整 ([722e871](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/722e871ba9940cc165467a3c165265707a2e82fa)) 45 | 46 | ## [0.3.1](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.3.0...v0.3.1) (2024-10-10) 47 | 48 | 49 | ### Bug Fixes 50 | 51 | * remove macos ([fcb3753](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/fcb37536b59f92e0cd48b54a28a40bd99d1a1dea)) 52 | * update PAT ([b2a725e](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/b2a725e6c4770f63c0b9a5cc16df8560455f000e)) 53 | * 调整成PAT,来触发publish ([7f264bc](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/7f264bcd6fe308f1f20e20afa6785be7af1e33be)) 54 | 55 | ## [0.3.0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.5...v0.3.0) (2024-10-10) 56 | 57 | 58 | ### Features 59 | 60 | * add macos ([56d0d8a](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/56d0d8a736abca584d8b6e5b90fff8ad19f1e3ae)) 61 | * direct release ([f31a4ee](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f31a4ee04312da0106293a54debf354d2cf05362)) 62 | 63 | ## [0.2.5](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.4...v0.2.5) (2024-10-10) 64 | 65 | 66 | ### Bug Fixes 67 | 68 | * 修复pdfjs-dist ([1e89ccc](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/1e89ccc247477c2d9f33f0e37946d577f8ddb574)) 69 | 70 | ## [0.2.4](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.3...v0.2.4) (2024-10-10) 71 | 72 | 73 | ### Bug Fixes 74 | 75 | * fix bun action ([3ce4ce8](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/3ce4ce82328f8f0fda3741e15ada23150e66b3b5)) 76 | 77 | ## [0.2.3](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.2...v0.2.3) (2024-10-10) 78 | 79 | 80 | ### Bug Fixes 81 | 82 | * update trigger ([647e415](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/647e4150cafbd7b266519b6548e5414238580b69)) 83 | 84 | ## [0.2.2](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.1...v0.2.2) (2024-10-10) 85 | 86 | 87 | ### Bug Fixes 88 | 89 | * 调整release,修复bun ([be3162b](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/be3162b53b58dabb5f4965932fd7900184a4837a)) 90 | 91 | ## [0.2.1](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.2.0...v0.2.1) (2024-10-10) 92 | 93 | 94 | ### Bug Fixes 95 | 96 | * 修改出发 ([d4f5d54](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/d4f5d54ecf87228749f27ddbb29f270d39c4499e)) 97 | 98 | ## [0.2.0](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/compare/v0.1.0...v0.2.0) (2024-10-10) 99 | 100 | 101 | ### Features 102 | 103 | * add github action ([7bd46c4](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/7bd46c4ffbbd86b450f7f2182aae61a839842490)) 104 | * add pdf.js preview ([f6e92d7](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f6e92d76d81259011cd6854be3ea8a174e6bb8b8)) 105 | * add win sign ([7bd46c4](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/7bd46c4ffbbd86b450f7f2182aae61a839842490)) 106 | * init ([2cafbdd](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/2cafbdd35af9f346ae31985135d669fa3958c366)) 107 | * markdonw支持图片查看,方法 ([ec6efe8](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/ec6efe8d4631cbd672d914715b092e9796e0af62)) 108 | * 发布版本 ([f3075aa](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/f3075aa16aa816a5be70ba8eedc54d6677992683)) 109 | * 增加markdon打包(包含图片) ([0295795](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/02957950f0e52d6d6864a580fe16a7ab67297d6b)) 110 | * 增加sqlite,增加task ([0bb5dd1](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/0bb5dd1b23537aa98fd30ae12f24ee5cbd2f7077)) 111 | * 增加手工操作 ([183bd07](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/183bd07e7b07e709335e3db8251e73bd22b78409)) 112 | * 增加手工操作 ([4c59287](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/4c592875e273a012c914d0dfcb9fa0ad4e4e5141)) 113 | * 增加接口可配置 ([15c9c70](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/15c9c7098d86e17cdc419d1dd4c66e18cddd67a2)) 114 | * 调整窗口名称 ([ea1018d](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/ea1018d2a7bfb2e3e8cea3a0f8a631f9ba51d088)) 115 | 116 | 117 | ### Bug Fixes 118 | 119 | * add release.json ([3747c26](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/3747c265a95ed8560745a4cfb5a25c688f1b9e7c)) 120 | * any error ([dcc97f2](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/dcc97f21090fc5f72a2496b8de5f8f84553633fc)) 121 | * remove image tag ([a3c9e53](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/a3c9e537c72683a27af7d3319978c922961d49ca)) 122 | * 修复双向同步 ([1863751](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/1863751089ce65b33544c34ad7bfe65d3f153c16)) 123 | * 修复缓存冲突,增加打包下载 ([6a3da3d](https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/commit/6a3da3d348cb860ad7c3c4604e0f2287b0b9e5ce)) 124 | -------------------------------------------------------------------------------- /doc/website/src/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | # https://brenoepics.github.io/vitepress-carbon/guide/home-component.html 3 | layout: home 4 | hero: 5 | name: "MinerU-PDFScanner" 6 | text: "高效 PDF 文档扫描和提取工具" 7 | tagline: "利用深度学习技术自动提取文档内容,可以识别表格,图片,段落,文本" 8 | icon: 9 | src: ./logo.png 10 | alt: VitePress Carbon 11 | image: 12 | src: ./task.png 13 | alt: Banner 14 | actions: 15 | - theme: brand 16 | text: Github 17 | link: https://github.com/liuhuapiaoyuan/MinerU-PDFScanner 18 | - theme: alt 19 | text: 下载 20 | link: https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/releases/latest 21 | 22 | features: 23 | - icon: 24 | src: ./logo.png 25 | alt: VitePress Carbon 26 | title: 基于MinerU 27 | details: 支持多页PDF,混合OCR、表格识别、公式识别、段落识别。 28 | - icon: 📄 29 | title: 创建提取任务 30 | details: 用户可以选择 PDF 文件并提交提取任务,轻松开始内容提取。 31 | - icon: 📋 32 | title: 提取记录查看 33 | details: 支持按照不同状态查看提取记录,便于管理和跟踪任务进度。 34 | - icon: 💾 35 | title: 导出提取结果 36 | details: 用户可以将提取后的结果导出为 ZIP 文件,方便存储和分享。 37 | - icon: 👁️ 38 | title: 查看提取结果左右分栏 39 | details: 提供模式查看提取结果,左侧为 PDF 文档,右侧为 Markdown 格式的提取结果。 40 | - icon: 📦 41 | title: 打包导出 42 | details: 通过 ZIP 导出提取结果,包含提取的图片,便于后续使用。 43 | 44 | 45 | --- 46 | 47 | 48 | ![描述文字](./public/preview.png) 49 | 50 | ![描述文字](./public/quick.png) 51 | 52 | ![描述文字](./public/task.png) 53 | -------------------------------------------------------------------------------- /doc/website/src/markdown-examples.md: -------------------------------------------------------------------------------- 1 | # Markdown Extension Examples 2 | 3 | This page demonstrates some of the built-in markdown extensions provided by VitePress. 4 | 5 | ## Syntax Highlighting 6 | 7 | VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting: 8 | 9 | **Input** 10 | 11 | ````md 12 | ```js{4} 13 | export default { 14 | data () { 15 | return { 16 | msg: 'Highlighted!' 17 | } 18 | } 19 | } 20 | ``` 21 | ```` 22 | 23 | **Output** 24 | 25 | ```js{4} 26 | export default { 27 | data () { 28 | return { 29 | msg: 'Highlighted!' 30 | } 31 | } 32 | } 33 | ``` 34 | 35 | ## Custom Containers 36 | 37 | **Input** 38 | 39 | ```md 40 | ::: info 41 | This is an info box. 42 | ::: 43 | 44 | ::: tip 45 | This is a tip. 46 | ::: 47 | 48 | ::: warning 49 | This is a warning. 50 | ::: 51 | 52 | ::: danger 53 | This is a dangerous warning. 54 | ::: 55 | 56 | ::: details 57 | This is a details block. 58 | ::: 59 | ``` 60 | 61 | **Output** 62 | 63 | ::: info 64 | This is an info box. 65 | ::: 66 | 67 | ::: tip 68 | This is a tip. 69 | ::: 70 | 71 | ::: warning 72 | This is a warning. 73 | ::: 74 | 75 | ::: danger 76 | This is a dangerous warning. 77 | ::: 78 | 79 | ::: details 80 | This is a details block. 81 | ::: 82 | 83 | ## More 84 | 85 | Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown). 86 | -------------------------------------------------------------------------------- /doc/website/src/public/bg.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /doc/website/src/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/website/src/public/logo.png -------------------------------------------------------------------------------- /doc/website/src/public/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/website/src/public/main.png -------------------------------------------------------------------------------- /doc/website/src/public/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/website/src/public/preview.png -------------------------------------------------------------------------------- /doc/website/src/public/quick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/website/src/public/quick.png -------------------------------------------------------------------------------- /doc/website/src/public/task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/doc/website/src/public/task.png -------------------------------------------------------------------------------- /doc/website/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "dist", 4 | "target": "esnext", 5 | "module": "esnext", 6 | "moduleResolution": "node", 7 | "esModuleInterop": true, 8 | "resolveJsonModule": true, 9 | "allowJs": true, 10 | "strict": true, 11 | "jsx": "preserve", 12 | "baseUrl": "./.vitepress" 13 | }, 14 | "include": ["env.d.ts", "src/**/*", ".vitepress/**/*"] 15 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | MinerU-APP 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mineru-pdf-scanner", 3 | "private": true, 4 | "version": "0.5.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "tsc && vite build", 9 | "preview": "vite preview", 10 | "tauri": "tauri" 11 | }, 12 | "dependencies": { 13 | "@douyinfe/semi-icons-lab": "^2.67.0", 14 | "@douyinfe/semi-ui": "^2.67.0", 15 | "@semi-bot/semi-theme-strapi": "^0.1.4", 16 | "@tauri-apps/api": "^2", 17 | "@tauri-apps/plugin-fs": "~2", 18 | "@tauri-apps/plugin-process": "~2", 19 | "@tauri-apps/plugin-shell": "~2", 20 | "@tauri-apps/plugin-sql": "~2", 21 | "@tauri-apps/plugin-store": "~2", 22 | "@tauri-apps/plugin-updater": "~2", 23 | "@tauri-apps/plugin-upload": "~2", 24 | "ahooks": "^3.8.1", 25 | "pdfjs-dist": "^4.7.76", 26 | "react": "^18.2.0", 27 | "react-dom": "^18.2.0", 28 | "react-router-dom": "^6.26.2", 29 | "rehype-katex": "^7.0.1", 30 | "remark-math": "^6.0.0" 31 | }, 32 | "devDependencies": { 33 | "@tauri-apps/cli": "^2", 34 | "@types/node": "^22.7.5", 35 | "@types/react": "^18.2.15", 36 | "@types/react-dom": "^18.2.7", 37 | "@vitejs/plugin-react": "^4.2.1", 38 | "autoprefixer": "^10.4.20", 39 | "postcss": "^8.4.47", 40 | "tailwindcss": "^3.4.13", 41 | "typescript": "^5.2.2", 42 | "vite": "^5.3.1", 43 | "vite-plugin-semi-theme": "^0.6.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/public/icon.png -------------------------------------------------------------------------------- /public/mineru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/public/mineru.png -------------------------------------------------------------------------------- /public/tauri.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /release-please-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", 3 | "release-type": "node", 4 | "include-component-in-tag":false, 5 | "include-v-in-tag":true, 6 | "packages": { 7 | ".": { 8 | "extra-files": [ 9 | "package.json", 10 | { 11 | "type": "json", 12 | "path": "src-tauri/tauri.conf.json", 13 | "jsonpath": "$.version" 14 | } 15 | ] 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # Generated by Tauri 6 | # will have schema files for capabilities auto-completion 7 | /gen/schemas 8 | -------------------------------------------------------------------------------- /src-tauri/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "mineru-pdf-scanner" 3 | version = "0.1.0" 4 | description = "A Tauri App" 5 | authors = ["you"] 6 | edition = "2021" 7 | 8 | [lib] 9 | name = "mineru_pdf_scanner_lib" 10 | crate-type = ["lib", "cdylib", "staticlib"] 11 | 12 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 13 | 14 | [build-dependencies] 15 | tauri-build = { version = "2", features = [] } 16 | 17 | [dependencies] 18 | tauri = { version = "2", features = [] } 19 | serde = { version = "1", features = ["derive"] } 20 | serde_json = "1" 21 | tauri-plugin-shell = "2" 22 | tauri-plugin-sql = { version = "2", features = ["sqlite"] } 23 | tauri-plugin-store = "2" 24 | tauri-plugin-fs = "2" 25 | tauri-plugin-upload = "2" 26 | tauri-plugin-process = "2" 27 | 28 | [features] 29 | # This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!! 30 | custom-protocol = ["tauri/custom-protocol"] 31 | 32 | [target."cfg(not(any(target_os = \"android\", target_os = \"ios\")))".dependencies] 33 | tauri-plugin-single-instance = "2" 34 | tauri-plugin-updater = "2" 35 | -------------------------------------------------------------------------------- /src-tauri/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | tauri_build::build() 3 | } 4 | -------------------------------------------------------------------------------- /src-tauri/capabilities/migrated.json: -------------------------------------------------------------------------------- 1 | { 2 | "identifier": "migrated", 3 | "description": "permissions that were migrated from v1", 4 | "local": true, 5 | "windows": [ 6 | "main" 7 | ], 8 | "permissions": [ 9 | "process:default", 10 | "updater:default", 11 | "core:default", 12 | "shell:allow-open", 13 | "shell:default", 14 | "sql:default", 15 | { 16 | "identifier": "fs:scope", 17 | "allow": [ 18 | { 19 | "path": "$APPDATA" 20 | }, 21 | { 22 | "path": "**" 23 | } 24 | ] 25 | }, 26 | "store:default", 27 | "sql:allow-load", 28 | "sql:allow-execute", 29 | "sql:allow-close", 30 | "sql:allow-select", 31 | "fs:default", 32 | "upload:default" 33 | ] 34 | } -------------------------------------------------------------------------------- /src-tauri/icons/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/128x128.png -------------------------------------------------------------------------------- /src-tauri/icons/128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/128x128@2x.png -------------------------------------------------------------------------------- /src-tauri/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/32x32.png -------------------------------------------------------------------------------- /src-tauri/icons/Square107x107Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square107x107Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square142x142Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square142x142Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square150x150Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square284x284Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square284x284Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square30x30Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square30x30Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square310x310Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square310x310Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square44x44Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square71x71Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square89x89Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/Square89x89Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/StoreLogo.png -------------------------------------------------------------------------------- /src-tauri/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/icon.icns -------------------------------------------------------------------------------- /src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/MinerU-PDFScanner/3ae3a95f2058e18308793c0393af26c5f1b96082/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /src-tauri/src/lib.rs: -------------------------------------------------------------------------------- 1 | mod migration; // 引入 migration 模块 2 | 3 | #[tauri::command] 4 | fn greet(name: &str) -> String { 5 | format!("Hello, {}! You've been greeted from Rust!", name) 6 | } 7 | 8 | #[cfg_attr(mobile, tauri::mobile_entry_point)] 9 | pub fn run() { 10 | let migrations = migration::load_migrations(); 11 | 12 | tauri::Builder::default() 13 | .plugin(tauri_plugin_process::init()) 14 | .plugin(tauri_plugin_updater::Builder::new().build()) 15 | .plugin(tauri_plugin_upload::init()) 16 | .plugin(tauri_plugin_fs::init()) 17 | .plugin(tauri_plugin_store::Builder::new().build()) 18 | .plugin( 19 | tauri_plugin_sql::Builder::default() 20 | .add_migrations("sqlite:database.db", migrations) 21 | .build(), 22 | ) 23 | .plugin(tauri_plugin_shell::init()) 24 | .invoke_handler(tauri::generate_handler![greet]) 25 | .run(tauri::generate_context!()) 26 | .expect("error while running tauri application"); 27 | } 28 | -------------------------------------------------------------------------------- /src-tauri/src/main.rs: -------------------------------------------------------------------------------- 1 | // Prevents additional console window on Windows in release, DO NOT REMOVE!! 2 | #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] 3 | fn main() { 4 | mineru_pdf_scanner_lib::run(); 5 | } 6 | -------------------------------------------------------------------------------- /src-tauri/src/migration/mod.rs: -------------------------------------------------------------------------------- 1 | use tauri_plugin_sql::{Migration, MigrationKind}; 2 | 3 | pub fn load_migrations() -> Vec { 4 | let mut migrations = Vec::new(); 5 | // 初始化版本 6 | migrations.push(Migration { 7 | version: 1, 8 | description: "init_data_base", 9 | kind: MigrationKind::Up, 10 | sql: r#" 11 | CREATE TABLE tasks ( 12 | task_id TEXT PRIMARY KEY, 13 | file_name TEXT, 14 | pdf_url TEXT, 15 | md_url TEXT, 16 | images TEXT, 17 | model_json TEXT, 18 | middle_json TEXT, 19 | content_list_json TEXT, 20 | status TEXT 21 | ); 22 | "#, 23 | }); 24 | 25 | migrations 26 | } 27 | -------------------------------------------------------------------------------- /src-tauri/tauri.conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.tauri.app/config/2", 3 | "build": { 4 | "beforeDevCommand": "bun run dev", 5 | "beforeBuildCommand": "bun run build", 6 | "frontendDist": "../dist", 7 | "devUrl": "http://localhost:1420" 8 | }, 9 | "bundle": { 10 | "createUpdaterArtifacts": true, 11 | "active": true, 12 | "targets": "all", 13 | "icon": [ 14 | "icons/32x32.png", 15 | "icons/128x128.png", 16 | "icons/128x128@2x.png", 17 | "icons/icon.icns", 18 | "icons/icon.ico" 19 | ], 20 | "copyright": "2024 liuhuapiaoyuan", 21 | "windows": { 22 | "certificateThumbprint": "ddac2dec80c2c10a6cd2cf9cdaa1bd5b72a89620", 23 | "digestAlgorithm": "sha256", 24 | "timestampUrl": "http://timestamp.comodoca.com", 25 | "wix": { 26 | "language": "zh-CN" 27 | }, 28 | "nsis": null 29 | } 30 | }, 31 | "productName": "MinerUPDfScanner", 32 | "mainBinaryName": "MinerUPDfScanner", 33 | "version": "0.5.0", 34 | "identifier": "com.ggss.miner-pdf-scanner", 35 | "plugins": { 36 | "sql": { 37 | "preload": [ 38 | "sqlite:database.db" 39 | ] 40 | }, 41 | "updater": { 42 | "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDY1Njk2QTM2RjEzOTEwRTQKUldUa0VEbnhObXBwWmVEU3RGNjJXY2luSHBaSS9qZVZJeEtkQ3hVeUI0QTNjWlkrbHJJTkdYR1cK", 43 | "endpoints": [ 44 | "https://github.com/liuhuapiaoyuan/MinerU-PDFScanner/releases/latest/download/latest.json" 45 | ] 46 | } 47 | }, 48 | "app": { 49 | "security": { 50 | "csp": null 51 | }, 52 | "windows": [ 53 | { 54 | "title": "PDF扫描助理", 55 | "width": 800, 56 | "height": 600 57 | } 58 | ] 59 | } 60 | } -------------------------------------------------------------------------------- /src/app.tsx: -------------------------------------------------------------------------------- 1 | import "./global.css"; 2 | import { Layout } from "./layout"; 3 | import { Outlet } from "react-router-dom"; 4 | 5 | import { createBrowserRouter, RouterProvider } from "react-router-dom"; 6 | import { ErrorPage } from "./not-found"; 7 | import { taskService } from "./service/task.service"; 8 | import { configService } from "./service/config.service"; 9 | 10 | const router = createBrowserRouter([ 11 | { 12 | path: "/", 13 | element: ( 14 | 15 | 16 | 17 | ), 18 | errorElement: , 19 | children: [ 20 | { 21 | index: true, 22 | lazy: () => import("./pages/createTask"), 23 | }, 24 | { 25 | path: "/createTask", 26 | lazy: () => import("./pages/createTask"), 27 | }, 28 | { 29 | path: "/task/processing", 30 | 31 | lazy: () => import("./pages/task"), 32 | }, 33 | { 34 | path: "/task/done", 35 | 36 | lazy: () => import("./pages/task"), 37 | }, 38 | { 39 | path: "/task/pending", 40 | lazy: () => import("./pages/task"), 41 | }, 42 | { 43 | path: "/task/error", 44 | lazy: () => import("./pages/task"), 45 | }, 46 | { 47 | path: "/task/preview/:id", 48 | lazy: () => import("./pages/task/preview"), 49 | loader: async ({ params }) => { 50 | //params.id 先获得 51 | if (!params.id) { 52 | return undefined; 53 | } 54 | return taskService.loadTask(params.id) 55 | }, 56 | }, 57 | { 58 | path: "/setting", 59 | loader: async () => configService.get(), 60 | lazy: () => import("./pages/setting"), 61 | }, 62 | ], 63 | }, 64 | ]); 65 | taskService.loadTasks() 66 | function App() { 67 | return ; 68 | } 69 | 70 | export default App; 71 | -------------------------------------------------------------------------------- /src/assets/react.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/bootstrap.ts: -------------------------------------------------------------------------------- 1 | import { createDatabase } from "./lib/db"; 2 | import { checkAndRelaunch } from "./lib/updater"; 3 | 4 | /** 5 | * 项目启动前初始化工作 6 | */ 7 | export async function bootstrap() { 8 | await createDatabase() 9 | await checkAndRelaunch() 10 | } -------------------------------------------------------------------------------- /src/components/Copyright.tsx: -------------------------------------------------------------------------------- 1 | import { IconGithubLogo } from "@douyinfe/semi-icons"; 2 | 3 | export const Copyright = () => { 4 | return ( 5 | <> 6 | 7 | 8 | Copyright © 2024 liuhuapiaoyuan. All Rights Reserved. 9 | 10 | 11 | ); 12 | }; 13 | -------------------------------------------------------------------------------- /src/components/Menus.tsx: -------------------------------------------------------------------------------- 1 | import { Nav } from "@douyinfe/semi-ui"; 2 | import { 3 | IconGithubLogo, 4 | } from "@douyinfe/semi-icons"; 5 | import { IconConfig, IconList, IconRating } from "@douyinfe/semi-icons-lab"; 6 | 7 | import { useLocation, useNavigate } from "react-router-dom"; 8 | import NavFooter from "@douyinfe/semi-ui/lib/es/navigation/Footer"; 9 | import { open } from "@tauri-apps/plugin-shell"; 10 | 11 | export function Menus() { 12 | const navigate = useNavigate(); 13 | const {pathname} = useLocation() 14 | return ( 15 |