Markdown Viewer

This is to preview the markdown text as HTML page

目前為 2025-10-09 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Markdown Viewer
// @namespace    https://docs.scriptcat.org/
// @version      0.1.0
// @description  This is to preview the markdown text as HTML page
// @author       You
// @match        https://*/*/*.md
// @match        http://*/*/*.md
// @inject-into  content
// @require      https://cdn.jsdelivr.net/npm/[email protected]/lib/marked.umd.min.js
// @grant        GM_addStyle
// @license      MIT
// ==/UserScript==

(function () {
    'use strict';

    const pre = document.querySelector("body>pre:only-child");
    if (pre) {
        const text = pre.textContent;
        if (text) {
            const div = document.createElement("div");
            div.id = "markdown-render";
            div.innerHTML = marked.parse(text);
            pre.replaceWith(div);
            GM_addStyle(`
                body {
                    all: unset;
                }
                #markdown-render {
                    margin: 16px;
                    padding: 16px;
                    border: 1px solid currentColor;
                    position: relative;
                    box-sizing: border-box;
                    max-height: calc( 100vh - 32px );
                    max-width: calc( 100vw - 32px );
                    overflow: auto;
                }
                #markdown-render img {
                    max-width: 100%;
                }
            `);
        }
    }
    // Your code here...
})();