CSDN-markdown黑色背景代码生成

不用代码解决生活中问题的程序员,不是一个好程序员 —— gdx(高大侠)

从我写博客之初,一直都想在博客里贴看起来高大上的 黑色背景五彩缤纷的代码,但苦苦搜索之后仍受限于博客自带的编辑器。终于,功夫不负有心人,在知道CSDN博客的markdown编辑器用的是html4语法之后,我找到了一个方法。

1. 获得代码的html5格式

CSDN-markdown黑色背景代码生成_第1张图片

这是IDE中代码风格,复制粘贴到word中:

CSDN-markdown黑色背景代码生成_第2张图片

可以看到是保存了代码颜色的。然后文件->另存为,选择html格式。用记事本打开,我们可以看到其中有这样一段代码:

package Test ;

这段代码描述了package Test;这一行的字号字体和颜色。我们可以发现每个

...

保存了代码中一行的信息,每个...中有一个单词或标点,我们需要提取它的字体和颜色(字号自己设置),然后转变成html4语法格式。


2. 转化为html4格式

CSDN-markdown黑色背景代码生成_第3张图片

如图是html4格式,其中

...
把背景设为黑色,
    ...
      是有序列表,里面每个
    1. ...
    2. 都代表一行,每个...中有一个单词或标点,包含了这个单词的字号字体颜色信息。
      那么重点来了,我们要把htm5格式的代码转化为html4格式。以下是我的代码:


      3. 代码

      好东西拿出来大家一起分享(ノ ̄▽ ̄)

      1. package test;
      2. import java.io.BufferedReader;
      3. import java.io.File;
      4. import java.io.FileReader;
      5. import java.io.IOException;
      6. public class HtmlConversion {
      7.     // 标签中提取字体或颜色
      8.     public static String extract(String str, String markName, String endTag) {
      9.         String res = "";
      10.         int start = str.indexOf(markName);
      11.         if (start != -1) {
      12.             str = str.substring(start + markName.length() + 1);
      13.             int end = str.indexOf(endTag);
      14.             res = str.substring(0, end);
      15.             //System.out.println(res);
      16.         }
      17.         return res;
      18.     }
      19.     //转化为标签
      20.     public static String spanConversion(String str) {
      21.         int size = 2;// 设置字号
      22.         String result = "";
      23.         String color = extract(str, "color", "'");
      24.         //System.out.println(color);
      25.         String face = extract(str, "font-family", ";");
      26.         //System.out.println(face);
      27.         String text = "";
      28.         int start = str.indexOf("color");
      29.         if (start != -1) {
      30.             str = str.substring(start + 6);
      31.             start = str.indexOf("'>");
      32.             str = str.substring(start + 2);
      33.             int end = str.indexOf("");
      34.             if (end != -1) {
      35.                 text = str.substring(0, end);
      36.                 text = text.replace("", "");
      37.                 text = text.replace("", "");
      38.                 text = text.replace("\r\n", "");
      39.                 //System.out.println(text);
      40.             }
      41.         }
      42.         if (color != "" && text != "") {
      43.            result = " + size + "\" color=\"" + color + "\" face='" + face + "'>" + text + "";
      44.         }
      45.         return result;
      46.     }
      47.     //

        标签转化为

      48. 标签
      49.     public static String pConversion(String str) {
      50.         String res = "";
      51.         String[] list = str.split(");
      52.         for (int i = 1; i < list.length; i++) {
      53.             res += spanConversion(list[i]);
      54.         }
      55.         return "
      56. " + res + "
      57. ";
      58.     }
      59.     //html5语法转化为html4语法
      60.     public static void converse(String fileName) {
      61.         //设置背景为黑色,
          为有序列表
        1.         String content = "
          \n
            ";
          1.         System.out.println(content);
          2.         File file = new File(fileName);
          3.         BufferedReader reader = null;
          4.         String pMark = "";//

            标签

          5.         try {
          6.             reader = new BufferedReader(new FileReader(file));
          7.             String temp = null;
          8.             while ((temp = reader.readLine()) != null) {
          9.                 pMark += temp;
          10.                 if (pMark.contains("

            ) && pMark.contains("

            ")) {
          11.                     content = HtmlConversion.pConversion(pMark);
          12.                     System.out.println(content);
          13.                     pMark = "";
          14.                 }
          15.             }
          16.             content = "
              \n
          "
          ;
        2.             System.out.println(content);
        3.             reader.close();
        4.         } catch (Exception e) {
        5.             e.printStackTrace();
        6.         } finally {
        7.             if (reader != null) {
        8.                 try {
        9.                     reader.close();
        10.                 } catch (IOException e1) {
        11.                 }
        12.             }
        13.         }
        14.     }
        15.     public static void main(String[] args) {
        16.         String file = "C:/Users/username/Desktop/test.html";
        17.         converse(file);
        18.     }
        19. }

      4. 复制到markdown

      运行之后,把控制台输出的代码复制粘贴到markdown编辑器中,得到如下结果:

      CSDN-markdown黑色背景代码生成_第4张图片

      大功告成ヾ(゚∀゚ゞ)

你可能感兴趣的:(其他)