離線安裝markmap

Home Forums 尹說 離線安裝markmap

Viewing 5 posts - 1 through 5 (of 7 total)
  • Author
    Posts
  • #16351
    ejsoon
    Keymaster
    要離線使用 Markmap 而不是依賴 CDN,你需要下載必要的檔案並在本地託管它們。以下是具體步驟:
    
    ### 1. 下載所需檔案
    你需要下載 `markmap-autoloader` 的 JavaScript 檔案。可以從以下來源獲取:
    - **從 CDN 下載**:訪問 `https://cdn.jsdelivr.net/npm/markmap-autoloader`(或其他版本的具體路徑,例如 `https://cdn.jsdelivr.net/npm/markmap-autoloader@0.17.0`),然後將檔案保存為 `markmap-autoloader.js`。
    - **從 GitHub 或 npm 獲取**:
    - 前往 Markmap 的官方 GitHub 倉庫(https://github.com/markmap/markmap)。
    - 下載最新的 `markmap-autoloader` 檔案,或者通過 npm 安裝整個套件:
    ```bash
    npm install markmap-autoloader
    ```
    安裝後,所需的檔案會位於 `node_modules/markmap-autoloader/dist` 目錄中。
    
    ### 2. 調整你的 HTML 檔案
    假設你將下載的檔案保存到本地目錄(例如 `js/markmap-autoloader.js`),修改你的程式碼如下:
    
    ```html
    <!-- 移除 CDN 腳本 -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/markmap-autoloader"></script> -->
    
    <!-- 使用本地檔案 -->
    <script src="js/markmap-autoloader.js"></script>
    
    <script>
    window.markmap = {
    autoLoader: { manual: true },
    };
    </script>
    
    <script>
    // 5秒後渲染
    setTimeout(() => {
    markmap.autoLoader.renderAll();
    }, 5000);
    </script>
    ```
    
    ### 3. 確保相依性
    `markmap-autoloader` 可能依賴其他庫(如 `markmap-lib` 或 `d3`)。如果你發現運行時出現錯誤(例如缺少 `markmap` 或其他物件),需要額外下載這些相依性:
    - **檢查相依性**:在 `markmap-autoloader` 的文檔或 GitHub 頁面中確認它是否需要其他檔案。
    - **下載方式**:
    - 從 CDN 下載 `markmap-lib`(例如 `https://cdn.jsdelivr.net/npm/markmap-lib`)並保存為本地檔案。
    - 或使用 npm 安裝:
    ```bash
    npm install markmap-lib
    ```
    - 然後在 HTML 中引入:
    ```html
    <script src="js/markmap-lib.js"></script>
    <script src="js/markmap-autoloader.js"></script>
    ```
    
    ### 4. 本地測試
    - 將所有檔案放入你的專案目錄(例如 `js/` 文件夾)。
    - 使用本地伺服器(如 Python 的 `http.server` 或 Node.js 的 `live-server`)啟動專案,而不是直接打開 HTML 檔案(因為瀏覽器可能因安全性限制無法加載本地腳本)。
    - Python 示例:
    ```bash
    python -m http.server 8000
    ```
    - 然後在瀏覽器中訪問 `http://localhost:8000`。
    
    ### 5. 完整示例
    假設你下載了 `markmap-lib.js` 和 `markmap-autoloader.js`,你的 HTML 檔案可能如下:
    
    ```html
    <!DOCTYPE html>
    <html>
    <head>
    <title>Offline Markmap</title>
    </head>
    <body>
    <!-- 你的 Markmap 內容 -->
    <div class="markmap">
    <!-- Markdown 內容 -->
    # Hello World
    ## Subtopic
    - Item 1
    - Item 2
    </div>
    
    <script src="js/markmap-lib.js"></script>
    <script src="js/markmap-autoloader.js"></script>
    
    <script>
    window.markmap = {
    autoLoader: { manual: true },
    };
    </script>
    
    <script>
    setTimeout(() => {
    markmap.autoLoader.renderAll();
    }, 5000);
    </script>
    </body>
    </html>
    ```
    
    ### 注意事項
    - **版本一致性**:確保你下載的 `markmap-autoloader` 和 `markmap-lib`(如果需要)的版本相容。
    - **檔案路徑**:根據你的專案結構調整 `src` 路徑。
    - **測試環境**:離線使用時,必須通過本地伺服器測試,否則可能因瀏覽器 CORS 限制而失敗。
    
    完成以上步驟後,你的 Markmap 就可以完全離線運行了!如果有其他問題,隨時告訴我。
    #16353
    ejsoon
    Keymaster
    #16355
    ejsoon
    Keymaster
    #16356
    ejsoon
    Keymaster
    #16358
    ejsoon
    Keymaster
Viewing 5 posts - 1 through 5 (of 7 total)
  • You must be logged in to reply to this topic.