不用代碼解決生活中問題的程序員,不是一個好程序員 —— gdx(高大俠)
從我寫博客之初,一直都想在博客裏貼看起來高大上的 黑色背景五彩繽紛的代碼,但苦苦搜索之後仍受限於博客自帶的編輯器。終於,功夫不負有心人,在知道CSDN博客的markdown編輯器用的是html4語法之後,我找到了一個方法。
1. 獲得代碼的html5格式
這是IDE中代碼風格,複製粘貼到word中:
可以看到是保存了代碼顏色的。然後文件->另存爲,選擇html格式。用記事本打開,我們可以看到其中有這樣一段代碼:
<p class=MsoNormal align=left style='text-align:left;text-autospace:none'>
<b><span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#CC7832'>package</span></b>
<span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:#D9E8F7'> Test</span>
<span lang=EN-US style='font-size:10.0pt;font-family:Consolas;color:lavender'>;</span></p>
這段代碼描述了package Test;
這一行的字號字體和顏色。我們可以發現每個<p>...</p>
保存了代碼中一行的信息,每個<span>...</span>
中有一個單詞或標點,我們需要提取它的字體和顏色(字號自己設置),然後轉變成html4語法格式。
2. 轉化爲html4格式
如圖是html4格式,其中<table><tr><td bgcolor=#00000>...</td></tr></table>
把背景設爲黑色,<ol>...<ol>
是有序列表,裏面每個<li>...</li>
都代表一行,每個<font>...</font>
中有一個單詞或標點,包含了這個單詞的字號字體顏色信息。
那麼重點來了,我們要把htm5格式的代碼轉化爲html4格式。以下是我的代碼:
3. 代碼
好東西拿出來大家一起分享(ノ ̄▽ ̄)
- package test;
-
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
-
- public class HtmlConversion {
- // 在<span>標籤中提取字體或顏色
- public static String extract(String str, String markName, String endTag) {
- String res = "";
- int start = str.indexOf(markName);
- if (start != -1) {
- str = str.substring(start + markName.length() + 1);
- int end = str.indexOf(endTag);
- res = str.substring(0, end);
- //System.out.println(res);
- }
- return res;
- }
-
- //<span>轉化爲<font>標籤
- public static String spanConversion(String str) {
- int size = 2;// 設置字號
- String result = "";
- String color = extract(str, "color", "'");
- //System.out.println(color);
- String face = extract(str, "font-family", ";");
- //System.out.println(face);
-
- String text = "";
- int start = str.indexOf("color");
- if (start != -1) {
- str = str.substring(start + 6);
- start = str.indexOf("'>");
- str = str.substring(start + 2);
- int end = str.indexOf("</span>");
- if (end != -1) {
- text = str.substring(0, end);
- text = text.replace("<u>", "");
- text = text.replace("</u>", "");
- text = text.replace("\r\n", "");
- //System.out.println(text);
- }
- }
- if (color != "" && text != "") {
- result = "<font size=\"" + size + "\" color=\"" + color + "\" face='" + face + "'>" + text + "</font>";
- }
- return result;
- }
-
- //<p>標籤轉化爲<li>標籤
- public static String pConversion(String str) {
- String res = "";
- String[] list = str.split("<span");
- for (int i = 1; i < list.length; i++) {
- res += spanConversion(list[i]);
- }
- return "<li>" + res + "</li>";
- }
-
- //html5語法轉化爲html4語法
- public static void converse(String fileName) {
- //設置背景爲黑色,<ol>爲有序列表
- String content = "<table><tr><td bgcolor=#00000>\n<ol>";
- System.out.println(content);
-
- File file = new File(fileName);
- BufferedReader reader = null;
- String pMark = "";//<p>標籤
- try {
- reader = new BufferedReader(new FileReader(file));
- String temp = null;
- while ((temp = reader.readLine()) != null) {
- pMark += temp;
- if (pMark.contains("<p class") && pMark.contains("</p>")) {
- content = HtmlConversion.pConversion(pMark);
- System.out.println(content);
- pMark = "";
- }
- }
- content = "<ol>\n</td></tr></table>";
- System.out.println(content);
- reader.close();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (reader != null) {
- try {
- reader.close();
- } catch (IOException e1) {
- }
- }
- }
- }
-
- public static void main(String[] args) {
- String file = "C:/Users/username/Desktop/test.html";
- converse(file);
- }
-
- }
|
4. 複製到markdown
運行之後,把控制檯輸出的代碼複製粘貼到markdown編輯器中,得到如下結果:
大功告成ヾ(゚∀゚ゞ)