// ==UserScript== // @name Tieba Coder // @namespace http://nota.moe/ // @version 0.2 // @description 在贴吧发表格式美观、语法高亮的代码片段 // @author NotaStudio // @match http://tieba.baidu.com/p/* // @match http://tieba.baidu.com/f?kw=* // @grant GM_addStyle // @grant GM_xmlhttpRequest // @run-at document-end // @license GPLv3 // @downloadURL https://update.greasyfork.icu/scripts/11542/Tieba%20Coder.user.js // @updateURL https://update.greasyfork.icu/scripts/11542/Tieba%20Coder.meta.js // ==/UserScript== /* ChangeLog * 20150807 0.1-alpha * 初次发布 * 20150811 0.2 * 加入语言显示支持,加入 Java 语法高亮支持,加入发布到 Ubuntu Pastebin 支持,修复 !!indexOf 返回 true 的问题,修复出现多个按钮的问题,修复头像显示不正确的问题,修复 innerHTML 相关的性能问题,修复替换 innerHTML 造成的事件监听丢失问题,其它小 bug 修复,CSS 微调,精简代码 */ console.log(" Tieba Coder 0.2\n Created by Nota\n 2015.08.11\n┏┛┻━━━┛┻┓\n┃|||||||┃\n┃ ━ ┃\n┃ ┳┛ ┗┳ ┃\n┃ ┃\n┃ ┻ ┃\n┃ ┃\n┗━┓ ┏━┛\n ┃ ┃\n ┃ ┃\n ┃ ┃\n ┃ ┃\n ┃ ┗━━━┓\n ┃ Tieba Coder ┣┓\n ┃ 吉翔物 ┃\n ┗┓┓┏━┳┓┏┛\n ┃┫┫ ┃┫┫\n ┗┻┛ ┗┻┛\n "); GM_addStyle("code{display:inline}.tc_input_code_button{display:inline;cursor:pointer;color:#990000}.tc_container{border-radius:5px;position:fixed;width:480px;height:320px;z-index:9999998;margin:0 auto;left:0;right:0;top:100px;bottom:0;background:rgba(169,169,169,0.8);text-align:center}.tc_lang_select,.tc_tab_select{margin:5px}.tc_tip{display:inline}.tc_input_box{overflow:auto;display:block;margin:2px;width:474px}.tc_code_div{border-radius:7px;border-color:#666;border-width:1px;background-color:#f5f2f0}.tc_p{display:none}.tc_code_pre{font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace}.tc_submit_button,.tc_cancel_button{margin:3px}.tc_loading{width:45px;height:45px;border-radius:7px;position:fixed;z-index:9999999;margin:0 auto;background:rgba(169,169,169,0.8);background-image:url('data:image/jpg;base64,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');background-size:cover;left:50%;top:50%}"); GM_addStyle("code[class*='language-'],pre[class*='language-']{color:black;text-shadow:0 1px white;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*='language-']::-moz-selection,pre[class*='language-']::-moz-selection,code[class*='language-']::-moz-selection,code[class*='language-']::-moz-selection{text-shadow:none;background:#b3d4fc}pre[class*='language-']::selection,pre[class*='language-']::selection,code[class*='language-']::selection,code[class*='language-']::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*='language-'],pre[class*='language-']{text-shadow:none}}pre[class*='language-']{padding:1em;margin:.5em 0;overflow:auto}:not(pre) > code[class*='language-'],pre[class*='language-']{background:#f5f2f0}:not(pre) > code[class*='language-']{padding:.1em;border-radius:.3em}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:slategray}.token.punctuation{color:#999}.namespace{opacity:.7}.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#905}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#690}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#a67f59;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.function{color:#DD4A68}.token.regex,.token.important,.token.variable{color:#e90}.token.important,.token.bold{font-weight:bold}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*='language-']{position:relative}pre[class*='language-'][data-language]::before{content:attr(data-language);color:black;background-color:#CFCFCF;display:inline-block;position:absolute;top:0;right:0;font-size:0.9em;border-radius:0 0 0 5px;padding:0 0.5em;text-shadow:none}");// Prism.js stylesheet window.addNode = function (sTagName,oAttr,sTagContent,oParentNode) { var e = document.createElement(sTagName); if (sTagContent) { var c = document.createTextNode(sTagContent); e.appendChild(c); } if (oAttr) { for (var a in oAttr) { e.setAttribute(a,oAttr[a]); } } if (oParentNode) { oParentNode.appendChild(e); return; } else { return e; } }; // oAttr 可选,接受用对象形式表示的属性-值对,sTagContent 可选,oParentNode 可选,若有,则把新建的元素添加为 oParentNode 的子节点并返回 undefined ;若无,则直接返回新建的元素 // e.g. addNode("div",{"width":"100px","height":"50px","dir":"rtl"},"bbb",document.getElementById("content_wrap")); // 发帖 GM_addStyle("@keyframes nodeInserted{from{opacity:.99}to{opacity:1}}.edui-btn-toolbar{animation-duration:.01s;animation-name:nodeInserted}"); //为 edui-btn-toolbar 类增加动画,方便通过 animationstart 事件获取相应节点 window.tcPostInit = function() { addNode("button",{"class":"tc_input_code_button"},"插入代码",document.getElementsByClassName("edui-btn-toolbar")[0]); document.getElementsByClassName("tc_input_code_button")[0].addEventListener("click",inputCode,false); document.removeEventListener("animationstart", insertListener, false); }; var insertListener = function(event){ if (event.animationName == "nodeInserted") {// This is the debug for knowing our listener worked! event.target is the new node! tcPostInit(); } }; document.addEventListener("animationstart", insertListener, false); window.inputCode = function() { addNode("div",{"class":"tc_container"},"",document.body); document.getElementsByClassName("tc_container")[0].innerHTML = "
语言
Tab Width
同时发表到 Ubuntu Pastebin
// ==Tieba Coder lang:" + postLang + "==
" + code + "
// 这段代码使用 Tieba Coder 进行格式化和语法高亮,您可以在 https://greasyfork.org/zh-CN/scripts/11542-tieba-coder 下载 Tieba Coder 使用
// 注意:这段代码中的空格可能是全角空格
");
if(x.indexOf("// 这段代码使用 Tieba Coder")>=0)x=x.replace(/\/\/ 这段代码使用 Tieba Coder.*您可以在/g,"");
if(x.indexOf(" 下载 Tieba Coder 使用")>=0)x=x.replace(/ 下载 Tieba Coder 使用/g,"");
if(x.indexOf("// 注意:这段代码中的空格")>=0)x=x.replace(/\/\/ 注意:这段代码.*全角空格/g,"");
list.push([k,x]);
}
list.forEach(function(item,index,array){
var node = document.createElement("a");
item[0].parentElement.replaceChild(node,item[0]);
node.outerHTML = item[1];
});
list = [];
}
// 参考了 CC Code 的 replace_nodes() 函数 (https://greasyfork.org/zh-CN/scripts/281-cc-code/)
var gfoLinks = $("a[href*='jump.bdimg.com']");
for (var n = 0; n < gfoLinks.length; n++) {
if (gfoLinks[n].innerText == "https://greasyfork.org/zh-CN/scripts/11542-tieba-coder") {
node = document.createElement("a");
gfoLinks[n].parentElement.replaceChild(node,gfoLinks[n]);
node.outerHTML = "";
}
}
gfoLinks = $("a[href='https://greasyfork.org/zh-CN/scripts/11542-tieba-coder']");
for (var n = 0; n < gfoLinks.length; n++) {
if (gfoLinks[n].innerText == "https://greasyfork.org/zh-CN/scripts/11542-tieba-coder") {
node = document.createElement("a");
gfoLinks[n].parentElement.replaceChild(node,gfoLinks[n]);
node.outerHTML = "";
}
}
var codeTags = $("pre[class*='language-']>code");
for (var v = 0; v < codeTags.length; v++) {
codeTags[v].innerText = codeList[v];
}
}
// Prism.js START
// MIT license http://www.opensource.org/licenses/mit-license.php/
/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+bash+c+cpp+java+php+python&plugins=show-language */
var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=_self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(d instanceof a)){u.lastIndex=0;var m=u.exec(d);if(m){c&&(f=m[1].length);var y=m.index-1+f,m=m[0].slice(f),v=m.length,k=y+v,b=d.slice(0,y+1),w=d.slice(k+1),N=[p,1];b&&N.push(b);var O=new a(l,g?t.tokenize(m,g):m,h);N.push(O),w&&N.push(w),Array.prototype.splice.apply(r,N)}}}}}return r},hooks:{all:{},add:function(e,n){var a=t.hooks.all;a[e]=a[e]||[],a[e].push(n)},run:function(e,n){var a=t.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(n)}}},n=t.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(n.stringify=function(e,a,r){if("string"==typeof e)return e;if("Array"===t.util.type(e))return e.map(function(t){return n.stringify(t,a,e)}).join("");var i={type:e.type,content:n.stringify(e.content,a,r),tag:"span",classes:["token",e.type],attributes:{},language:a,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}t.hooks.run("wrap",i);var s="";for(var o in i.attributes)s+=o+'="'+(i.attributes[o]||"")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'" '+s+">"+i.content+""+i.tag+">"},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(e){var n=JSON.parse(e.data),a=n.language,r=n.code;_self.postMessage(JSON.stringify(t.util.encode(t.tokenize(r,t.languages[a])))),_self.close()},!1),_self.Prism):_self.Prism;var a=document.getElementsByTagName("script");return a=a[a.length-1],a&&(t.filename=a.src,document.addEventListener&&!a.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism);;
Prism.languages.markup={comment://,prolog:/<\?[\w\W]+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(t){"entity"===t.type&&(t.attributes.title=t.content.replace(/&/,"&"))});;
Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/