您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
为Sublime的插件Markdown Preview生成的html文件添加首行缩进
// ==UserScript== // @name Sublime-Markdown Preview-添加首行缩进 // @name:zh Sublime-Markdown Preview-添加首行缩进 // @name:en Sublime-Markdown Preview-Add First Line Indentation // @name:ja Sublime-Markdown Preview-最初の行のインデントを追加します // @namespace http://tampermonkey.net/ // @version 1.0.0 // @description 为Sublime的插件Markdown Preview生成的html文件添加首行缩进 // @description:zh 为Sublime的插件Markdown Preview生成的html文件添加首行缩进 // @description:en Adds first line indentation to the html files generated by the Markdown Preview plugin for Sublime. // @description:ja SublimeのMarkdown Previewプラグインで生成されたhtmlファイルに先頭行のインデントを追加します。 // @author aotmd // @match file:///C:/Users/*/appdata/local/temp/*.html // @noframes // @license MIT // @run-at document-body // @grant none // ==/UserScript== ( function() { function add(){ var brElements = document.querySelectorAll( "body .markdown-body br" ); brElements.forEach( function( br ) { deleteRedundantEmptyTextNodes( br.parentNode); var nextElement = br.nextSibling; if ( nextElement ) { if (nextElement.className && nextElement.className.includes("highlight")) {return;} if (nextElement.nodeName && nextElement.nodeName==='P'){return;} if( nextElement.innerHTML === " "){return;} var span = document.createElement( "span" ); span.innerHTML = "  "; /* 缩进2字符*/ span.style.userSelect = "none"; /* 被复制时不被选中*/ nextElement.parentNode.insertBefore( span, nextElement ); } }, false ); brElements = document.querySelectorAll( "body .markdown-body .highlight" ); brElements.forEach( function( br ) { deleteRedundantEmptyTextNodes( br.parentNode); var nextElement = br.nextSibling; if ( nextElement ) { if (nextElement.nodeName && nextElement.nodeName==='P'){return;} if( nextElement.innerHTML === " "){return;} var span = document.createElement( "span" ); span.innerHTML = "  "; /* 缩进2字符*/ span.style.userSelect = "none"; /* 被复制时不被选中*/ nextElement.parentNode.insertBefore( span, nextElement ); } }, false ); } add(); document.addEventListener("DOMContentLoaded", function () {add();}); addStyle( ` body .markdown-body p { text-indent: 2em; } ` ); /** * 删除多余的空文本节点,为nextSibling,等节点操作一致性做准备 * @param elem 要优化的父节点 */ function deleteRedundantEmptyTextNodes( elem ) { let elemList = elem.childNodes; for ( let i = 0; i < elemList.length; i++ ) { /*当为文本节点并且为不可见字符时删除节点*/ if ( elemList[ i ].nodeName === "#text" && /^\s+$/.test( elemList[ i ].nodeValue ) ) { elem.removeChild( elemList[ i ] ) }else if( elemList[ i ].nodeName === "P" &&(elemList[ i ].textContent==='' || /^\s+$/.test( elemList[ i ].textContent ))){ /*当为P节点并且为不可见字符时删除节点*/ elem.removeChild( elemList[ i ] ) } } } /** * 添加浏览器执行事件 * @param func 无参匿名函数 */ function addLoadEvent( func ) { let oldOnload = window.onload; if ( typeof window.onload != 'function' ) { window.onload = func; } else { window.onload = function() { try { oldOnload(); } catch ( e ) { console.log( e ); } finally { func(); } } } } //添加css样式 function addStyle( rules ) { let styleElement = document.createElement( 'style' ); styleElement[ "type" ] = 'text/css'; document.getElementsByTagName( 'head' )[ 0 ].appendChild( styleElement ); styleElement.appendChild( document.createTextNode( rules ) ); } } )();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址