您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
将markdown文本粘贴至textarea,右键单击文本区,弹出菜单中选择“markdown -> bbcode”
- // ==UserScript==
- // @name markdown to bbcode
- // @namespace https://bbs.kafan.cn/thread-2113607-1-1.html
- // @description 将markdown文本粘贴至textarea,右键单击文本区,弹出菜单中选择“markdown -> bbcode”
- // @version 0.1
- // @author halffog
- // @include http*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- var textareas = document.getElementsByTagName('textarea');
- if (!textareas) return;
- function $C(type, arr){
- var e = document.createElement(type);
- for(var [name, val] in Iterator(arr)){
- e.setAttribute(name, val);
- }
- return e;
- }
- for (var i = 0; i < textareas.length; i++){
- var textarea = textareas[i];
- var menuitem = $C('menuitem',{label:'markdown -> bbcode'});
- menuitem.addEventListener('click', function(){
- var value = textarea.value;
- var texts = value.split(/^>\s((?:.|\n>\s)*.*)$/gm);
- value = '';
- for (var j = 0; j < texts.length; j++){
- var text = texts[j];
- if (j%2 ==0){
- text = text.replace(/^(\#{1,6})((?:.|\n)*?)(\#{1,6})$/gm, function(wholeMatch,m1,m2,m3){
- var h_level = m1.length;
- return (h_level == m3.length)?'<h' + h_level + '>' + m2 + '</h' + h_level + '>':wholeMatch;
- });
- text = text.replace(/\*((?:.|\n)*?)\*/g,'[i]$1[/i]');
- text = text.replace(/__((?:.|\n)*?)__/g,'[b]$1[/b]');
- text = text.replace(/\!\[((?:.|\n)*?)\]\((.*)\)/g,'[img=$2]$1[/img]');
- text = text.replace(/\[((?:.|\n)*?)\]\((.*)\)/g,'[url=$2]$1[/url]');
- }else{
- text = '[code]' + text.replace(/^>\s/gm,'') + '[/code]';
- }
- value += text;
- }
- textarea.value = value;
- },false);
- var menu = $C('menu',{id:'markdown-to-bbcode-' + i,type:'context'});
- menu.appendChild(menuitem);
- textarea.appendChild(menu);
- textarea.setAttribute('contextmenu', menu.id);
- }
- })();