您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
CSDN博客文章转载插件 可以实现CSDN上的文章一键转载
当前为
// ==UserScript== // @name CSDN,CNBLOG博客文章一键转载插件 // @version 4.1.3 // @description CSDN博客文章转载插件 可以实现CSDN上的文章一键转载 // @author By Jackie http://csdn.admans.cn/ // @match *://blog.csdn.net/*/article/details/* // @match *://mp.csdn.net/postedit* // @match *://mp.csdn.net/postedit?opt=1 // @match *://mp.csdn.net/console/editor/html?opt=1 // @match *://www.cnblogs.com/*/p/*.html // @match *://www.cnblogs.com/*/articles/*.html // @match *://www.cnblogs.com/*/archive/*/*/*/*.html // @match *://*.blog.csdn.net/article/details/* // @match *://*.cnblogs.com/*/p/*.html // @match *://www.cnblogs.com/*/p/*.html // @match *://i.cnblogs.com/EditArticles.aspx?opt=1 // @match *://i.cnblogs.com/EditPosts.aspx?opt=1 // @match *://i-beta.cnblogs.com/posts/edit?opt=1 // @match *://mp.csdn.net/mp_blog/creation/editor?opt=1 // @match *://i.cnblogs.com/posts/edit?opt=1 // @match *://editor.csdn.net/md/?not_checkout=1 // @match *://mp.csdn.net/mp_blog/creation/editor?* // @require https://unpkg.com/turndown/dist/turndown.js // @grant GM_addStyle // @namespace https://gf.zukizuki.org/users/164689 // @supportURL https://github.com/JackieZheng/CsdnCnblogReproduce/issues/ // @icon https://www.google.cn/s2/favicons?domain=csdn.net // ==/UserScript== GM_addStyle("#ReproduceBtn{position: absolute;float: right;right: 0px;width: auto;background: #0f962191;z-index: 9989;color: white;text-align: center;margin: 5px;padding: 5px;border-radius: 5px;cursor: pointer;line-height: 100%;}"); GM_addStyle(".tag__box{width: 100% !important;}"); GM_addStyle(".tag__box div.tag__options-list{width: 100% !important;max-height:300px !important;padding: 8px 8px 0 0;display: flex;flex-direction: row;align-content: flex-start;align-items: center;justify-content: space-between;flex-wrap: wrap;}"); GM_addStyle(".tag__box div .tag__options-list .tag__option-box:last-child {margin-right: auto;}"); GM_addStyle(".tag__box div .tag__options-list .tag__option-box:hover {color:#67c23a;}"); GM_addStyle(".tag__box div.tag__options-content{height: auto !important;}"); (function() { 'use strict'; //document.domain="csdn.net"; var cnblog = location.href.indexOf("cnblogs.com") > -1 ? true: false; if (cnblog) { document.domain = "cnblogs.com"; } else { document.domain = "csdn.net"; } //文章查看窗口 if (location.href.indexOf("article/details") > -1 || location.href.indexOf("www.cnblogs.com") > -1) { var divBtn = document.createElement("div"); divBtn.setAttribute("id", "ReproduceBtn"); divBtn.innerHTML = '转载'; if (cnblog) { divBtn.style.marginTop = "-40px"; divBtn.style.position = "relative"; } var article = document.getElementsByClassName('article_content')[0] || document.getElementsByClassName('postBody')[0] || document.getElementsByClassName('blogpost-body')[0]; article.insertBefore(divBtn, article.childNodes[0]); var posteditUrl = cnblog ? "https://i-beta.cnblogs.com/posts/edit?opt=1": "https://mp.csdn.net/console/editor/html?opt=1"; divBtn.onclick = function() { window.open(posteditUrl); } } //文章发布窗口 else { document.onreadystatechange = function(e) { if (document.readyState == 'complete') { //setTimeout(()=>{},8000); var contentToPaste=null; var timer = setInterval(function(){ if(!contentToPaste) { contentToPaste = document.getElementsByTagName("iframe")[0] == undefined ? null: document.getElementsByTagName("iframe")[0].contentDocument.body; } else{ clearInterval(timer); opt(contentToPaste); } },30) } } } function opt(contentDocumentbody) { if (window.opener && (location.href.indexOf("?opt=1") > -1||location.href.indexOf("?not_checkout=1") > -1)) { var authorName = ""; if (window.opener.document.getElementsByClassName('follow-nickName').length > 0) { authorName = window.opener.document.getElementsByClassName('follow-nickName')[0].innerText; } else if (window.opener.document.getElementById('profile_block')) { authorName = window.opener.document.getElementById('profile_block').childNodes[1].innerText; } else if (window.opener.document.getElementById('author_profile_detail')) { authorName = window.opener.document.getElementById('author_profile_detail').childNodes[1].innerText; } var blogContent = (window.opener.document.getElementById('content_views') || window.opener.document.getElementById('cnblogs_post_body')).innerHTML + "<br>---------------------" + "<br>作者:" + authorName + "<br>来源:" + (cnblog == true ? "CNBLOGS": "CSDN") + "<br>原文:" + window.opener.location.href.split('?')[0] + "<br>版权声明:本文为作者原创文章,转载请附上博文链接!" + "<br>内容解析By:<a href=https://gf.zukizuki.org/zh-CN/scripts/381053-csdn-cnblog%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0%E4%B8%80%E9%94%AE%E8%BD%AC%E8%BD%BD%E6%8F%92%E4%BB%B6 target=_blank>CSDN,CNBLOG博客文章一键转载插件</a>"; var input_title = (document.getElementById('post-title') ||document.getElementById('txtTitle') || document.getElementById('Editor_Edit_txbTitle') || document.querySelector('input.cnb-input'))||document.getElementsByClassName("article-bar__title")[0]; if (input_title) { var aTitle = "[转]" + window.opener.document.title.split('_')[0]; aTitle = aTitle + "(转载请删除括号里的内容)"; input_title.value = aTitle; } if (contentDocumentbody) { var aContent = blogContent.replace(/<ul class=\"pre-numbering\"[^>]*>(.*?)<\/ul>/g, '').replace(/<div class=\"hljs-ln-line hljs-ln-n\"[^>]*>(.*?)<\/div>/g, '').replace(/<div class=\"hljs-ln-numbers\"[^>]*>(.*?)<\/div>/g, '').replace(/<div class=\"cnblogs_code_toolbar\"[\s\S].*?<\/div>/g, '').replace(/<a[\s\S].*class=\"toolbar_item[\s\S].*>?<\/a>/g, '').replace(/\n/g, '').replace(/<nobr aria-hidden=\"true\">(.*?)<\/nobr>/g, '').replace(/<script type=\"math\/tex\"[^>]*>(.*?)<\/script>/g, ''); if (cnblog) { aContent = "(转载请删除括号里的内容)" + aContent; } else { /*处理csdn代码*/ var rePre = /<pre[^>]*>(.*?)<\/pre>/gi; //aContent=aContent.replace(/\n/g,''); var arrMactches = aContent.match(rePre); if (arrMactches != null && arrMactches.length > 0) { for (var i = 0; i < arrMactches.length; i++) { var preText = ''; var codeTag = window.opener.document.getElementsByTagName('pre')[i]; if(codeTag){ if(codeTag.querySelector("ul[class*='pre-numbering']")){ codeTag.querySelector("ul[class*='pre-numbering']").remove(); } var eles = codeTag.getElementsByTagName('li'); if (eles.length > 0) { for (var j = 0; j < eles.length; j++) { preText += eles[j].innerText+"\n"; } } else { preText += codeTag.innerText; } } var preCodeHtml = "<pre><code class=\"hljs\">" + preText.replace(/</g, '<').replace(/>/g, '>') + "</code></pre>"; aContent = aContent.replace(arrMactches[i], preCodeHtml); } aContent = "(转载请删除括号里的内容)" + aContent; } } contentDocumentbody.innerHTML = aContent; if (contentDocumentbody.children.ReadBtn) contentDocumentbody.children.ReadBtn.remove(); if (contentDocumentbody.children.ReproduceBtn) contentDocumentbody.children.ReproduceBtn.remove(); let mathspace=contentDocumentbody.querySelectorAll("[width*='thickmathspace']"); mathspace.forEach(function(ele){ ele.outerHTML=" "; }); let mathspan=contentDocumentbody.querySelectorAll("[class*='MathJax']"); mathspan.forEach(function(ele){ let innerText= ele.innerText; ele.outerHTML="<span>"+innerText+"</span>"; }); } if (document.querySelector("[class^='el-input__inner']")) document.querySelector("[class^='el-input__inner']").value = window.opener.location.href.split('?')[0]; if (document.querySelector("[class^='el-checkbox__original']")) document.querySelector("[class^='el-checkbox__original']").checked = true; if(document.querySelectorAll("[class*='copyright-box']").length>0) { document.querySelectorAll("[class*='copyright-box']")[0].style.display=""; document.querySelectorAll("[class*='copyright-box']")[1].style.display=""; } var htmlContent = blogContent.replace(/<ul class=\"pre-numbering\"[\s\S].*<\/ul>/g, ''); htmlContent = htmlContent.replace(/<div class=\"cnblogs_code_toolbar\"[\s\S].*?<\/div>/g, ''); htmlContent = htmlContent.replace(/<a[\s\S].*class=\"toolbar_item[\s\S].*>?<\/a>/g, ''); htmlContent = htmlContent.replace(/<div id=\"ReproduceBtn\"[\s\S].*?<\/div>/g, ''); htmlContent = htmlContent.replace(/<div id=\"ReadBtn\"[\s\S].*?<\/div>/g, ''); htmlContent = htmlContent.replace(/<div class=\"line[\s\S].*>\d+?<\/div>/g, ''); var turndownService = new TurndownService(); var mdContent = turndownService.turndown(htmlContent); console.log(mdContent); var csdnMDeditor=document.getElementsByClassName("editor__inner"); if (csdnMDeditor.length>0) { csdnMDeditor[0].innerHTML=mdContent; } var cnblogsMDeditor = document.getElementById("Editor_Edit_EditorBody"); if (cnblogsMDeditor) { cnblogsMDeditor.value = mdContent; } else { //if (input_title) { //input_title.onchange = function() { //if (document.getElementsByClassName("textfield")) document.getElementsByClassName("textfield")[0].options[2].selected = true; if (document.querySelector("[class^='ipt-box']")) document.querySelector("[class^='ipt-box']").querySelector("[class^='el-input__inner']").value = window.opener.location.href.split('?')[0]; if (document.querySelector("[class^='el-checkbox__original']")) document.querySelector("[class^='el-checkbox__original']").checked = true; if(document.querySelector("[class^='el-radio__original'][value='repost']"))document.querySelector("[class^='el-radio__original'][value='repost']").click(); if(document.querySelector("[class^='el-radio__original'][value='0']"))document.querySelector("[class^='el-radio__original'][value='0']").click() if(document.querySelector("[class^='el-radio__original'][value='1']"))document.querySelectorAll("[class^='el-radio__original'][value='1']")[1].click() if(document.querySelector("[class^='el-checkbox__original'][value]"))document.querySelector("[class^='el-checkbox__original'][value]").click(); if(document.querySelectorAll("[class*='copyright-box']")) { document.querySelectorAll("[class*='copyright-box']")[0].style.display=""; document.querySelectorAll("[class*='copyright-box']")[1].style.display=""; } //} //} } } } })();