开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[其他] 星空晶体的BBCode预览器正式版1.0版本发布

 发表于 2024-7-30 14:06:47|显示全部楼层|阅读模式 IP:山东省
本帖最后由 星空晶体 于 2024-7-30 14:10 编辑

网站:https://xkjt.github.io/tool/bbcode-see/BBCode-3.html

(换网站了,不是之前的网站)

有什么问题直接在下面回复就行,本人尽力解决!

本版本修复了第二版的若干Bug并修改了标签:

①原来[img]标签只支持以下情况:

  1. [img]https://xxx.xxx/[/img]
复制代码


现在同时支持长宽编辑:

  1. [img=xxx,xxx]https://xxx.xxx/[/img]
复制代码


②原来[table]标签只支持:

  1. [table]
  2. [tr][td]xxx[/td]xxx[td][/td]...[/tr]
  3. [tr][td]xxx[/td]xxx[td][/td]...[/tr]
  4. ...
  5. [/table]
复制代码


现在支持有参数的表格了:

  1. [table=xxx,xxx(前是表格宽度,百分比;后是表格背景颜色)]
  2. [tr][td]xxx[/td]xxx[td][/td]...[/tr]
  3. [tr][td]xxx[/td]xxx[td][/td]...[/tr]
  4. ...
复制代码


③标签[quote] code [hide][spoiler]修复了字体过大的Bug,现在,这四个标签的预览都是与其他字的大小都一样的(也就是相当于 px=16)。

④原来输入框无法滑动现在添加了以下css代码以可以滑动:

  1. overflow-y: auto; /* 当内容超过高度时显示垂直滚动条 */
复制代码


这就是所有了。

更多Bug正在寻找,欢迎在下面回复。

图片浏览:
Screenshot_20240730_124454_com.microsoft.emmx.canary.jpgScreenshot_20240730_124526_com.microsoft.emmx.canary.jpgScreenshot_20240730_124729_com.microsoft.emmx.canary.jpg

源代码(过于史山了,忘排一下了):

  1. <!DCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  5.         <title>BBcode预览器</title>
  6.         <style>
  7.       body{
  8.         margin: 0;
  9.         padding: 0;
  10.         font-size: 12px;
  11.         font-family: 'Microsoft YaHei', sans-serif;
  12.       }
  13.       
  14.       #qianyan {
  15.         border: 2px solid orange;
  16.         margin-top: 20px;
  17.         border-radius: 10px;
  18.         background-color: rgba(255, 255, 255, 0);
  19.       }
  20.       #qianyan .biaoti {
  21.         text-align: center;
  22.         color: #87ceeb;
  23.       }
  24.       #qianyan .wen {
  25.         
  26.         color: #00008B
  27.       }
  28.       #zhengshi {
  29.         color: black;
  30.         background-color: white;
  31.         overflow: auto;
  32.         border: 2px solid orange;
  33.         margin-top: 20px;
  34.         border-radius: 10px;
  35.         background-color: rgba(255, 255, 255, 0);
  36.         
  37. }

  38.       #yulan {
  39.         margin-left: 20px;
  40.         width: calc(100% - 40px);
  41.         height: 270px;
  42.         overflow: auto;
  43.         border: 2px solid #00008B;
  44.         border-radius: 10px;
  45.         background-color: rgba(255, 255, 255, 0);
  46.         overflow-y: auto;
  47.         word-wrap: break-word;
  48.         white-space: pre-wrap;
  49.         overflow: ;
  50. }

  51.       #zhengshi .biaoti {
  52.         text-align: center;
  53.         color: #87ceeb;
  54.       }
  55.       #zhengshi .anniu {
  56.         width: 200px;
  57.         height: 50px;
  58.         padding: 10px;
  59.         
  60.         border: 1px solid #00008B;
  61.         border-radius: 25px;
  62.         background-color: rgba(255, 255, 255, 0);;
  63.         margin-left: 80px;
  64.         margin-top: 20px;      
  65.         
  66.       }
  67.        #zhengshi .biaoti1 {
  68.         text-align: center;
  69.         color: #87ceeb
  70.        }
  71.        table {
  72.          width: 100%;
  73.          border-collapse: collapse;
  74.          color: black;
  75.          font-size: 16p
  76. }

  77.        tr, td {
  78.          border: 1px solid black;
  79. }
  80.        ol, ul {
  81.   margin: 0;
  82.   padding: 0;
  83.   list-style-position: inside;
  84. }

  85. li {
  86.   margin: 0;
  87.   padding: 0;
  88.   line-height: 1.5;
  89.   vertical-align: middle;}

  90.    #output {
  91.     background-color: rgba(255, 255, 255, 0); /* 半透明背景 */
  92.     border: 1px solid #00008B; /* 边框 */
  93.     margin-top: 10px;
  94.     padding: 10px;
  95.     border-radius: 10px;
  96.     width: 94%;
  97.     height: 400px;
  98.     overflow-y: auto;
  99.     word-wrap: break-word;
  100.     white-space: pre-wrap;
  101. }

  102. #output1 {
  103.     font-size: 16px;
  104.     margin: 0;
  105.     white-space: pre-wrap;
  106.     }

  107.     </style>
  108.         <script>
  109.       function jiexi() {
  110.   var shuchu = document.getElementById("yulan").value;
  111.   yulan = shuchu
  112.     .replace(/\[color=([^\]]+)\](.*?)\[\/color\]/gi, function(match, color, content) {
  113.       return '<span style="color: ' + color + '">' + content + '</span>';
  114.     })
  115.     .replace(/\[backcolor=([^\]]+)\](.*?)\[\/backcolor\]/gi, function(match, backcolor, content) {
  116.       return '<span style="background-color: ' + backcolor + '">' + content + '</span>';
  117.     })
  118.     .replace(/\[size=(\d+)\](.*?)\[\/size\]/gi, function(match, size, content) {
  119.       var fontSize;
  120.       switch (size) {
  121.         case '1':
  122.           fontSize = '8px';
  123.           break;
  124.         case '2':
  125.           fontSize = '12px';
  126.           break;
  127.         case '3':
  128.           fontSize = '16px';
  129.           break;
  130.         case '4':
  131.           fontSize = '20px';
  132.           break;
  133.         case '5':
  134.           fontSize = '24px';
  135.           break;
  136.         case '6':
  137.           fontSize = '28px';
  138.           break;
  139.         case '7':
  140.           fontSize = '32px';
  141.           break;
  142.         case '8':
  143.           fontSize = '36px';
  144.           break;
  145.         default:
  146.           fontSize = '16px';
  147.           break;
  148.       }
  149.       return '<span style="font-size: ' + fontSize + '">' + content + '</span>';
  150.     })
  151.     .replace(/\[url=([^\]]+)\](.*?)\[\/url\]/gi, function(match, url, content) {
  152.       return '<a href="' + url + '" target="_blank">' + content + '</a>';
  153.     })
  154.     .replace(/\[url\](.*?)\[\/url\]/gi, function(match, url) {
  155.       return '<a href="' + url + '" target="_blank">' + url + '</a>';
  156.     })
  157.     .replace(/\[b\]/g, "<strong>")
  158.     .replace(/\[\/b\]/g, "</strong>")
  159.     .replace(/\[s\]/g, "<s>")
  160.     .replace(/\[\/s\]/g, "</s>")
  161.     .replace(/\[u\]/g, "<u>")
  162.     .replace(/\[\/u\]/g, "</u>")
  163.     .replace(/\[i\]/g, "<i>")
  164.     .replace(/\[\/i\]/g, "</i>")
  165.     .replace(/\[quote\](.*?)\[\/quote\]/gs, function(match, quoteContent) {
  166.       return '<div style="border: 1px dashed orange; padding: 10px; margin: 10px 0; background-color: #ffe0a3; color: #d97008;">' + '回复 '+ quoteContent + '</div>';
  167.     })
  168. .replace(/\[table(?:=([^\]]+))?\](.*?)\[\/table\]/gs, function(match, params, tableContent) {
  169.         var tableStyle = '';
  170.         if (params) {
  171.           var widthMatch = params.match(/(\d+)(%|px)?/);
  172.           var colorMatch = params.match(/([#a-zA-Z0-9]+)(?:,|$)/);
  173.           if (widthMatch) {
  174.             tableStyle += 'width: ' + widthMatch[1] + (widthMatch[2] || 'px') + ';';
  175.           }
  176.           if (colorMatch) {
  177.             tableStyle += 'background-color: ' + colorMatch[1] + ';';
  178.           }
  179.         }
  180.         return '<table style="' + tableStyle + '">' + tableContent + '</table>';
  181.       })
  182.     .replace(/\[tr\]/g, "<tr>")
  183.     .replace(/\[\/tr\]/g, "</tr>")
  184.     .replace(/\[td\]/g, "<td>")
  185.     .replace(/\[\/td\]/g, "</td>")
  186.     .replace(/\[code\](.*?)\[\/code\]/gs, function(match, codeCode) {
  187.       return '<div style="border: 1px solid lightblue; padding: 0; margin: 10px 0;">' +
  188.       '<div style="background-color: yellow; color: white; text-align: center; padding: 5px;">代码内容</div>' +
  189.       '<div style="background-color: #F5F5F5 ; padding: 10px;">' + codeCode + '</div>' +
  190.       '</div>';
  191. })
  192.     .replace(/\[spoiler\](.*?)\[\/spoiler\]/gs, function(match, spoilerContent) {
  193.       return '<div style="border: 1px solid #00008B; padding: 0; margin: 10px 0;">' +
  194.       '<div style="background-color: blue; color: white; text-align: center; padding: 5px;">折叠内容</div>' +
  195.       '<div style="background-color: white; color: black; padding: 10px;">' + spoilerContent + '</div>' +
  196.       '</div>';
  197. })
  198.     .replace(/\[hide=(\d+)\](.*?)\[\/hide\]/gs, function(match, points, hiddenContent) {
  199.       return '<div style="border: 1px solid #00008B; padding: 0; margin: 10px 0;">' +
  200.       '<div style="background-color: red; color: white; text-align: center; padding: 5px;">积分>' + points + '才能查看,否则需要回复!</div>' +
  201.       '<div style="background-color: white; color: black; padding: 10px;">' + hiddenContent + '</div>' +
  202.       '</div>';
  203. })

  204.     .replace(/\[align=(left|center|right)\](.*?)\[\/align\]/gi, function(match, align, content) {
  205.       return '<div style="text-align: ' + align + '">' + content + '</div>';
  206.     })
  207.     .replace(/\[list=1\](.*?)\[\/list\]/gs, function(match, listContent) {
  208.       return '<ol>' + listContent.replace(/\[\*\](.*?)\n?/g, '<li>$1</li>') + '</ol>';
  209.     })
  210.     .replace(/\[list\](.*?)\[\/list\]/gs, function(match, listContent) {
  211.       return '<ul>' + listContent.replace(/\[\*\](.*?)\n?/g, '<li>$1</li>') + '</ul>';
  212.     })
  213.     .replace(/\[img=([0-9]+),([0-9]+)\](.*?)\[\/img\]/gi, function(match, width, height, url) {
  214.       return '<img src="' + url + '" style="width: ' + width + 'px; height: ' + height + 'px;">';
  215.     })
  216.     .replace(/\[img\](.*?)\[\/img\]/g, "<img src="$1" style="max-width: 100%; height: auto;">")
  217.     .replace(/\[\hr\]/g, "<hr>");
  218.   document.getElementById("output1").innerHTML = yulan;
  219. }



  220.     </script>
  221.     </head>
  222.     <body>
  223.         <div id="qianyan">
  224.             <h1 class="biaoti">在 使 用 之 前</h1>
  225.             <p class="wen"><strong>BBcode</strong>是一种简单、易学的<strong>标记语言。</strong>主要用于论坛、在线社区和公告板等平台的文本格式化。它基于HTML,但相比之下更为简单,易于学习和使用。BBcode通过使用特殊的标签来对文本进行格式化,这些标签在显示时会转换为HTML代码,从而实现在网页上的格式化效果。BBcode的语法类似于Html,但是是[]不是&lt;&gt;。此工具可快速预览BBcode代码,让用户可查看排版并修复不足的排版。</p>
  226.         </div>
  227.         <div id="zhengshi">
  228.             <h1 class="biaoti">开 始 使 用</h1> <br> <textarea id="yulan" placeholder="请在这里输入你的BBcode代码"></textarea> <button class="anniu">点击预览</button> <br>
  229.             <h1 class="biaoti1">↓下面预览↓</h1>
  230.             <div id="output">
  231.                 <pre id="output1"></pre>
  232.             </div>
  233.         </div> <br>
  234.         
  235.     </body>
  236. </html>
复制代码


支持一下吧

苦力怕论坛,感谢有您~
 发表于 2024-7-30 14:58:21|显示全部楼层 IP:广东省
本帖最后由 Sakarwei 于 2024-7-30 15:00 编辑

我来找茬了:我的代码呢

(JS没有执行成功大好评!)
截图_选择区域_20240730145219.png
2#2024-7-30 14:58:21收起回复
星空晶体2024-7-30 15:25IP:山东省
回复举报
不会搞了,大佬教教我怎么办【大悲
Sakarwei回复星空晶体2024-7-30 15:31IP:广东省
回复举报
替换:“&”→“&amp;”;“>”→“&gt;”;“<”→“&lt;”(第一个替换应该要放在第一位,否则后面的替换好了就乱了)
苦力怕论坛,感谢有您~
回复支持

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

粤公网安备 44200002445329号 | 由 木韩网络 提供支持 | GMT+8, 2024-12-12 16:52

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4 粤ICP备2023071842号-3