kgdxpr 1 year ago
commit 866b24e4a7

@ -5,7 +5,7 @@ https://markmap.js.org/repl
https://nodejs.org/en/download
(1) windows 直接下载最新版本安装即可
(2) linux下
(2) linux下
# 安装
wget https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.xz
@ -21,9 +21,10 @@ npm i markmap-common -g
npm i markmap-lib -g
npm i markmap-view -g
npm install markmap-cli -g
npm i -g markmap-cli
3、检查是不是安装成功
markmap -V
4、转换
markmap example.md -o out.html --no-open
markmap example.md -o out.html --no-open

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,142 @@
package UnitTest.Swdt;
import java.io.*;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.RuntimeUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.io.File;
import java.util.Random;
/*
https://markmap.js.org/repl
https://github.com/markmap/markmap
*/
public class Swdt {
public static String workingPath = "D:\\dsWork\\QingLong\\src\\main\\java\\UnitTest\\Swdt\\";
public static String RED = "#ff5722";
public static String YELLOW = "#ffb800";
public static String GREEN = "#07C491";
/**
* +
*
* @param txt
* @param numStr
* @return
*/
public static String getColorTxt(String txt, String numStr, String key) {
int num = Integer.parseInt(numStr.replace("+", ""));
if (num == 0) return getGrayTxt(txt, num);
String color;
if (num <= 30) color = RED;
else if (num <= 60) color = YELLOW;
else color = GREEN;
String content = FileUtil.readUtf8String(workingPath + "Swdt_Color.txt");
content = content.replace("\r", "");
content = content.replace("\n", "");
content = content.replace("{{color}}", color);
content = content.replace("{{txt}}", txt);
content = content.replace("{{key}}", key);
if (num < 99) content = content.replace("{{num}}", String.valueOf(num));
else content = content.replace("{{num}}", num + "+");
return content;
}
/**
* +
*
* @param txt
* @param num
* @return
*/
public static String getGrayTxt(String txt, int num) {
String content = FileUtil.readUtf8String(workingPath + "Swdt_Gray.txt");
content = content.replace("\r", "");
content = content.replace("\n", "");
content = content.replace("{{txt}}", txt);
content = content.replace("{{num}}", String.valueOf(num));
return content;
}
public static void main(String[] args) throws IOException {
String km = "初中物理八年级上(人教版)";
String sourceJson = "Swdt.json";
String targetMd = "Swdt.md";
String targetHtml = "Swdt.html";
int rowCount = 3;//每行3个
String json = FileUtil.readUtf8String(new File(workingPath + sourceJson));
JSONObject jsonObject = JSONObject.parseObject(json);
JSONArray jTree = jsonObject.getJSONObject("data").getJSONArray("tree");
String res = "# " + km + "\n";
for (int i = 0; i < jTree.size(); i++) {
String key = jTree.getJSONObject(i).getString("key");
String title = jTree.getJSONObject(i).getString("title");
res += "## " + getColorTxt(title, "99+", key) + "\n";
JSONArray jChildren = jTree.getJSONObject(i).getJSONArray("children");
if (jChildren != null) {
for (int j = 0; j < jChildren.size(); j++) {
for (int k = 0; k <= j % rowCount; k++) res += "#";
res += "## ";
JSONObject jo = jChildren.getJSONObject(j);
//生成一个随机数
Random random = new Random();
int number = random.nextInt(100);
res += getColorTxt(jo.getString("title"), String.valueOf(number), jo.getString("key")) + "\n";
}
}
res += "\n";
}
//写入md文件
FileUtil.writeUtf8String(res, workingPath + targetMd);
//调用命令行生成html
//markmap Swdt.md -o Swdt.html --no-open
String osName = System.getProperty("os.name");
String cmd = "markmap " + workingPath + targetMd + " -o " + workingPath + targetHtml + " --no-open";
if (osName.startsWith("Windows")) {
cmd = "cmd /c " + cmd;
}
String str = RuntimeUtil.execForStr(cmd);
System.out.println(str);
// 修改html文件
File file = new File(workingPath + targetHtml);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
StringBuilder content = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
String a = "<title>Markmap</title>";
String b = "https://cdn.jsdelivr.net/npm/markmap-view@0.16.0/dist/browser/index.js";
if (line.indexOf(a) >= 0) {
String modifiedLine = line.replaceAll(a, "<title>课程建设情况</title>");
//读取字体文件,填充内容
String fontStr = FileUtil.readUtf8String(new File(workingPath + "Swdt_Font.txt"));
content.append(modifiedLine).append("\n");
content.append(fontStr).append("\n");
}
else if (line.indexOf(b) >= 0) {
String modifiedLine = line.replaceAll(b, "https://dsideal.obs.cn-north-1.myhuaweicloud.com/wb/index.js");
content.append(modifiedLine).append("\n");
}
else {
content.append(line).append("\n");
}
}
br.close();
//写入html文件
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content.toString());
bw.close();
//完成
System.out.println("恭喜,所有操作成功完成!");
}
}

@ -0,0 +1,315 @@
{
"status": 200,
"data": {
"tree": [
{
"children": [
{
"isLeaf": true,
"title": "第1节 长度和时间的测量",
"value": "C5944F8708B640279437AA0744AE73E2",
"key": "C5944F8708B640279437AA0744AE73E2",
"parentValue": "3725772C8F8B4D5BBE0E72CD4BFCABAD"
},
{
"isLeaf": true,
"title": "第2节 运动的描述",
"value": "A97B44D5A2A943B59D02049F9C96801B",
"key": "A97B44D5A2A943B59D02049F9C96801B",
"parentValue": "3725772C8F8B4D5BBE0E72CD4BFCABAD"
},
{
"isLeaf": true,
"title": "第3节 运动的快慢",
"value": "CAFFF596531A4E8DBFF53C440C1D4960",
"key": "CAFFF596531A4E8DBFF53C440C1D4960",
"parentValue": "3725772C8F8B4D5BBE0E72CD4BFCABAD"
},
{
"isLeaf": true,
"title": "第4节 测量平均速度",
"value": "F4C051E3389943C8B7098DC7C156CC0C",
"key": "F4C051E3389943C8B7098DC7C156CC0C",
"parentValue": "3725772C8F8B4D5BBE0E72CD4BFCABAD"
},
{
"isLeaf": true,
"title": "本章复习",
"value": "9AAB79730B354EE09232812944038748",
"key": "9AAB79730B354EE09232812944038748",
"parentValue": "3725772C8F8B4D5BBE0E72CD4BFCABAD"
}
],
"sort": 10,
"isLeaf": false,
"title": "第一章  机械运动",
"value": "3725772C8F8B4D5BBE0E72CD4BFCABAD",
"key": "3725772C8F8B4D5BBE0E72CD4BFCABAD",
"parentValue": "-1"
},
{
"children": [
{
"isLeaf": true,
"title": "第1节 声音的产生与传播",
"value": "D66050E227014D2D8CF2F195E80DA1E0",
"key": "D66050E227014D2D8CF2F195E80DA1E0",
"parentValue": "4A22793CA7B34FDFA67AA86C9CF598A8"
},
{
"isLeaf": true,
"title": "第2节 声音的特性",
"value": "856E27F3050C482EAD1D4476B6233DAE",
"key": "856E27F3050C482EAD1D4476B6233DAE",
"parentValue": "4A22793CA7B34FDFA67AA86C9CF598A8"
},
{
"isLeaf": true,
"title": "第3节 声的利用",
"value": "77DDBEF309844F29ACD400E593BCE6B0",
"key": "77DDBEF309844F29ACD400E593BCE6B0",
"parentValue": "4A22793CA7B34FDFA67AA86C9CF598A8"
},
{
"isLeaf": true,
"title": "第4节 噪音的危害和控制",
"value": "74BF3992B9694F6E8E640DFE79CD1E4C",
"key": "74BF3992B9694F6E8E640DFE79CD1E4C",
"parentValue": "4A22793CA7B34FDFA67AA86C9CF598A8"
},
{
"isLeaf": true,
"title": "本章复习",
"value": "C0F97A6F1D5742C1AA6DD0121A53AD38",
"key": "C0F97A6F1D5742C1AA6DD0121A53AD38",
"parentValue": "4A22793CA7B34FDFA67AA86C9CF598A8"
}
],
"sort": 20,
"isLeaf": false,
"title": "第二章  声现象",
"value": "4A22793CA7B34FDFA67AA86C9CF598A8",
"key": "4A22793CA7B34FDFA67AA86C9CF598A8",
"parentValue": "-1"
},
{
"children": [
{
"isLeaf": true,
"title": "第1节 温度",
"value": "1FE77ACB9A894B8A87B1C6F7320DB761",
"key": "1FE77ACB9A894B8A87B1C6F7320DB761",
"parentValue": "90329E73BC1342D48719F55340C8A408"
},
{
"isLeaf": true,
"title": "第2节 熔化和凝固",
"value": "6E44BAC7CE7C48178B6C7F67EFFA795E",
"key": "6E44BAC7CE7C48178B6C7F67EFFA795E",
"parentValue": "90329E73BC1342D48719F55340C8A408"
},
{
"isLeaf": true,
"title": "第3节 汽化和液化",
"value": "1D7EABB801B74229ABE5E0853FCFEF61",
"key": "1D7EABB801B74229ABE5E0853FCFEF61",
"parentValue": "90329E73BC1342D48719F55340C8A408"
},
{
"isLeaf": true,
"title": "第4节 升华和凝华",
"value": "AE495F19C66A49568215C280D1019611",
"key": "AE495F19C66A49568215C280D1019611",
"parentValue": "90329E73BC1342D48719F55340C8A408"
},
{
"isLeaf": true,
"title": "本章复习",
"value": "84B6D12519BF439D94B8F3968BDAC29C",
"key": "84B6D12519BF439D94B8F3968BDAC29C",
"parentValue": "90329E73BC1342D48719F55340C8A408"
}
],
"sort": 30,
"isLeaf": false,
"title": "第三章  物态变化",
"value": "90329E73BC1342D48719F55340C8A408",
"key": "90329E73BC1342D48719F55340C8A408",
"parentValue": "-1"
},
{
"children": [
{
"isLeaf": true,
"title": "第1节 光的直线传播",
"value": "9C38E1C4653343DE9AEE16FE3A595910",
"key": "9C38E1C4653343DE9AEE16FE3A595910",
"parentValue": "D1178AE3295F41949563A72499C1D166"
},
{
"isLeaf": true,
"title": "第2节 光的反射",
"value": "2F5F67A1B4FF41839CC8F34F6B03F7C8",
"key": "2F5F67A1B4FF41839CC8F34F6B03F7C8",
"parentValue": "D1178AE3295F41949563A72499C1D166"
},
{
"isLeaf": true,
"title": "第3节 平面镜成像",
"value": "084B7BEB59D14237A360661CBDD994F8",
"key": "084B7BEB59D14237A360661CBDD994F8",
"parentValue": "D1178AE3295F41949563A72499C1D166"
},
{
"isLeaf": true,
"title": "第4节 光的折射",
"value": "06E5B72EEAB545F297A88C15D47F6046",
"key": "06E5B72EEAB545F297A88C15D47F6046",
"parentValue": "D1178AE3295F41949563A72499C1D166"
},
{
"isLeaf": true,
"title": "第5节 光的色散",
"value": "638A6464A4614E8082DA345A1650F564",
"key": "638A6464A4614E8082DA345A1650F564",
"parentValue": "D1178AE3295F41949563A72499C1D166"
},
{
"isLeaf": true,
"title": "本章复习",
"value": "6AA040ADB9D54482A6548339C4977B43",
"key": "6AA040ADB9D54482A6548339C4977B43",
"parentValue": "D1178AE3295F41949563A72499C1D166"
}
],
"sort": 40,
"isLeaf": false,
"title": "第四章  光现象",
"value": "D1178AE3295F41949563A72499C1D166",
"key": "D1178AE3295F41949563A72499C1D166",
"parentValue": "-1"
},
{
"children": [
{
"isLeaf": true,
"title": "第1节 透镜",
"value": "C5F2FA5C05A24603996F5BC61F4C1B5F",
"key": "C5F2FA5C05A24603996F5BC61F4C1B5F",
"parentValue": "7E3E099A59314CD6A7122F4D8115E869"
},
{
"isLeaf": true,
"title": "第2节 生活中的透镜",
"value": "54733BE9852747BA9F9430195496EDB6",
"key": "54733BE9852747BA9F9430195496EDB6",
"parentValue": "7E3E099A59314CD6A7122F4D8115E869"
},
{
"isLeaf": true,
"title": "第3节 凸透镜成像的规律",
"value": "BF0B0C64CC3144F6A95E9C60CA3C14B6",
"key": "BF0B0C64CC3144F6A95E9C60CA3C14B6",
"parentValue": "7E3E099A59314CD6A7122F4D8115E869"
},
{
"isLeaf": true,
"title": "第4节 眼睛和眼镜",
"value": "88189638CE3E4C1582AF73895B1C28C7",
"key": "88189638CE3E4C1582AF73895B1C28C7",
"parentValue": "7E3E099A59314CD6A7122F4D8115E869"
},
{
"isLeaf": true,
"title": "第5节 显微镜和望远镜",
"value": "5320746C39C240C29E3F950071456490",
"key": "5320746C39C240C29E3F950071456490",
"parentValue": "7E3E099A59314CD6A7122F4D8115E869"
},
{
"isLeaf": true,
"title": "本章复习",
"value": "045B4B733548402D88C07D5A776347D8",
"key": "045B4B733548402D88C07D5A776347D8",
"parentValue": "7E3E099A59314CD6A7122F4D8115E869"
}
],
"sort": 50,
"isLeaf": false,
"title": "第五章  透镜及其应用",
"value": "7E3E099A59314CD6A7122F4D8115E869",
"key": "7E3E099A59314CD6A7122F4D8115E869",
"parentValue": "-1"
},
{
"children": [
{
"isLeaf": true,
"title": "第1节 质量",
"value": "EC199323A8BE460EBBC246C3B1312BDC",
"key": "EC199323A8BE460EBBC246C3B1312BDC",
"parentValue": "AF4F2435E8614746BFC126C9699A3C88"
},
{
"isLeaf": true,
"title": "第2节 密度",
"value": "98056050989A49F9A23DBC0F06B5F985",
"key": "98056050989A49F9A23DBC0F06B5F985",
"parentValue": "AF4F2435E8614746BFC126C9699A3C88"
},
{
"isLeaf": true,
"title": "第3节 测量物质的密度",
"value": "2D59E5209AC3408F97E4719F1672FC27",
"key": "2D59E5209AC3408F97E4719F1672FC27",
"parentValue": "AF4F2435E8614746BFC126C9699A3C88"
},
{
"isLeaf": true,
"title": "第4节 密度与社会生活",
"value": "734DE89CA3F84571898E049A8B8C0707",
"key": "734DE89CA3F84571898E049A8B8C0707",
"parentValue": "AF4F2435E8614746BFC126C9699A3C88"
},
{
"isLeaf": true,
"title": "本章复习",
"value": "EC9A071850D24092B6AD1602470FFCA2",
"key": "EC9A071850D24092B6AD1602470FFCA2",
"parentValue": "AF4F2435E8614746BFC126C9699A3C88"
}
],
"sort": 60,
"isLeaf": false,
"title": "第六章  质量与密度",
"value": "AF4F2435E8614746BFC126C9699A3C88",
"key": "AF4F2435E8614746BFC126C9699A3C88",
"parentValue": "-1"
},
{
"sort": 70,
"isLeaf": true,
"title": "期中复习",
"value": "CD728AC957334CD5B652DFF6C32698E6",
"key": "CD728AC957334CD5B652DFF6C32698E6",
"parentValue": "-1"
},
{
"sort": 80,
"isLeaf": true,
"title": "期末复习",
"value": "26CDC3630234465E9713DA7ED2B80209",
"key": "26CDC3630234465E9713DA7ED2B80209",
"parentValue": "-1"
},
{
"sort": 90,
"isLeaf": true,
"title": "本册复习",
"value": "789d9c1683387f376b58cd7e5ddf449b",
"key": "789d9c1683387f376b58cd7e5ddf449b",
"parentValue": "-1"
}
]
}
}

@ -0,0 +1,51 @@
# 初中物理八年级上(人教版)
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第一章  机械运动 3725772C8F8B4D5BBE0E72CD4BFCABAD');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第一章  机械运动</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第1节 长度和时间的测量 C5944F8708B640279437AA0744AE73E2');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第1节 长度和时间的测量</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">26 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第2节 运动的描述 A97B44D5A2A943B59D02049F9C96801B');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ffb800;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第2节 运动的描述</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ffb800;color:#ffb800;font-family: 'PingFang';">44 </span></div>
##### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第3节 运动的快慢 CAFFF596531A4E8DBFF53C440C1D4960');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第3节 运动的快慢</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">19 </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第4节 测量平均速度 F4C051E3389943C8B7098DC7C156CC0C');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第4节 测量平均速度</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">98 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('本章复习 9AAB79730B354EE09232812944038748');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ffb800;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">本章复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ffb800;color:#ffb800;font-family: 'PingFang';">52 </span></div>
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第二章  声现象 4A22793CA7B34FDFA67AA86C9CF598A8');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第二章  声现象</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第1节 声音的产生与传播 D66050E227014D2D8CF2F195E80DA1E0');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第1节 声音的产生与传播</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">3 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第2节 声音的特性 856E27F3050C482EAD1D4476B6233DAE');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第2节 声音的特性</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">11 </span></div>
##### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第3节 声的利用 77DDBEF309844F29ACD400E593BCE6B0');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第3节 声的利用</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">67 </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第4节 噪音的危害和控制 74BF3992B9694F6E8E640DFE79CD1E4C');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第4节 噪音的危害和控制</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">2 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('本章复习 C0F97A6F1D5742C1AA6DD0121A53AD38');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">本章复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">84 </span></div>
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第三章  物态变化 90329E73BC1342D48719F55340C8A408');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第三章  物态变化</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第1节 温度 1FE77ACB9A894B8A87B1C6F7320DB761');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第1节 温度</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">28 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第2节 熔化和凝固 6E44BAC7CE7C48178B6C7F67EFFA795E');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第2节 熔化和凝固</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">88 </span></div>
##### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第3节 汽化和液化 1D7EABB801B74229ABE5E0853FCFEF61');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第3节 汽化和液化</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">77 </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第4节 升华和凝华 AE495F19C66A49568215C280D1019611');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第4节 升华和凝华</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">65 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('本章复习 84B6D12519BF439D94B8F3968BDAC29C');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ffb800;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">本章复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ffb800;color:#ffb800;font-family: 'PingFang';">54 </span></div>
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第四章  光现象 D1178AE3295F41949563A72499C1D166');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第四章  光现象</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第1节 光的直线传播 9C38E1C4653343DE9AEE16FE3A595910');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ffb800;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第1节 光的直线传播</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ffb800;color:#ffb800;font-family: 'PingFang';">51 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第2节 光的反射 2F5F67A1B4FF41839CC8F34F6B03F7C8');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第2节 光的反射</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">30 </span></div>
##### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第3节 平面镜成像 084B7BEB59D14237A360661CBDD994F8');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第3节 平面镜成像</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">62 </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第4节 光的折射 06E5B72EEAB545F297A88C15D47F6046');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第4节 光的折射</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">6 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第5节 光的色散 638A6464A4614E8082DA345A1650F564');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第5节 光的色散</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">11 </span></div>
##### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('本章复习 6AA040ADB9D54482A6548339C4977B43');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">本章复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">98 </span></div>
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第五章  透镜及其应用 7E3E099A59314CD6A7122F4D8115E869');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第五章  透镜及其应用</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第1节 透镜 C5F2FA5C05A24603996F5BC61F4C1B5F');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第1节 透镜</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">28 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第2节 生活中的透镜 54733BE9852747BA9F9430195496EDB6');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ffb800;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第2节 生活中的透镜</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ffb800;color:#ffb800;font-family: 'PingFang';">40 </span></div>
##### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第3节 凸透镜成像的规律 BF0B0C64CC3144F6A95E9C60CA3C14B6');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第3节 凸透镜成像的规律</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">11 </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第4节 眼睛和眼镜 88189638CE3E4C1582AF73895B1C28C7');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第4节 眼睛和眼镜</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">72 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第5节 显微镜和望远镜 5320746C39C240C29E3F950071456490');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第5节 显微镜和望远镜</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">81 </span></div>
##### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('本章复习 045B4B733548402D88C07D5A776347D8');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">本章复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">9 </span></div>
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第六章  质量与密度 AF4F2435E8614746BFC126C9699A3C88');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第六章  质量与密度</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第1节 质量 EC199323A8BE460EBBC246C3B1312BDC');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ff5722;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第1节 质量</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ff5722;color:#ff5722;font-family: 'PingFang';">10 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第2节 密度 98056050989A49F9A23DBC0F06B5F985');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ffb800;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第2节 密度</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ffb800;color:#ffb800;font-family: 'PingFang';">36 </span></div>
##### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第3节 测量物质的密度 2D59E5209AC3408F97E4719F1672FC27');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ffb800;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第3节 测量物质的密度</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ffb800;color:#ffb800;font-family: 'PingFang';">31 </span></div>
### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('第4节 密度与社会生活 734DE89CA3F84571898E049A8B8C0707');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">第4节 密度与社会生活</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">96 </span></div>
#### <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('本章复习 EC9A071850D24092B6AD1602470FFCA2');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #ffb800;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">本章复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #ffb800;color:#ffb800;font-family: 'PingFang';">34 </span></div>
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('期中复习 CD728AC957334CD5B652DFF6C32698E6');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">期中复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('期末复习 26CDC3630234465E9713DA7ED2B80209');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">期末复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>
## <div style="position: relative;margin-left: 15px;top: -3px;"> <a href='#' onclick="layer.alert('本册复习 789d9c1683387f376b58cd7e5ddf449b');"> <span style="padding: 2px 15px;border-radius: 24px;background-color: #07C491;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">本册复习</span> </a> <span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid #07C491;color:#07C491;font-family: 'PingFang';">99+ </span></div>

@ -0,0 +1,7 @@
<div style="position: relative;margin-left: 15px;top: -3px;">
<a href='#' onclick="layer.alert('{{txt}} {{key}}');">
<span style="padding: 2px 15px;border-radius: 24px;background-color: {{color}};font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">{{txt}}</span>
</a>
<span style="width:14px; text-align: center;position: absolute;left: -13px;top:2.5px; padding: 1px 5px;border-radius: 20px;background-color: #fff;font-size: 8px;border: 1px solid {{color}};color:{{color}};font-family: 'PingFang';">{{num}}
</span>
</div>

@ -0,0 +1,22 @@
<link href="https://cdn.staticfile.org/layui/2.9.7/css/layui.css" rel="stylesheet">
<script src="https://cdn.staticfile.org/layui/2.9.7/layui.js"></script>
<style>
@font-face {
font-family: 'PingFang';
src: url('https://dsideal.obs.cn-north-1.myhuaweicloud.com/wb/PingFang.ttf') format('truetype');
}
.markmap {
--markmap-max-width: none;
--markmap-a-color: #0097e6;
--markmap-a-hover-color: #00a8ff;
--markmap-code-bg: #f0f0f0;
--markmap-code-color: #555;
--markmap-highlight-bg: #ffeaa7;
--markmap-table-border: 1px solid currentColor;
--markmap-font: !important;
font: var(--markmap-font);
}
a {
text-decoration: none;
}
</style>

@ -0,0 +1,4 @@
<div style="position: relative;margin-left: 15px;top: -3px;">
<span style="padding: 2px 15px;border-radius: 24px;background-color: #888;font-size: 8px; border: 0px solid #ecf0f1;color: #fff;font-family: 'PingFang';">{{txt}}
</span>
</div>

@ -1,45 +0,0 @@
---
markmap:
colorFreezeLevel: 2
---
# markmap
## 第一章 ![](https://www.adobe.com/content/dam/cc/icons/adobe-firefly-logo-1.svg)
- [Website](https://markmap.js.org/)
- [GitHub](https://github.com/gera2ld/markmap)
## Related Projects
- [coc-markmap](https://github.com/gera2ld/coc-markmap) for Neovim
- [markmap-vscode](https://marketplace.visualstudio.com/items?itemName=gera2ld.markmap-vscode) for VSCode
- [eaf-markmap](https://github.com/emacs-eaf/eaf-markmap) for Emacs
## Features
Note that if blocks and lists appear at the same level, the lists will be ignored.
### Lists
- **strong** ~~del~~ *italic* ==highlight==
- `inline code`
- [x] checkbox
- Katex: $x = {-b \pm \sqrt{b^2-4ac} \over 2a}$ <!-- markmap: fold -->
- [More Katex Examples](#?d=gist:af76a4c245b302206b16aec503dbe07b:katex.md)
- Now we can wrap very very very very long text based on `maxWidth` option
### Blocks
```js
console('hello, JavaScript')
```
| Products | Price |
|-|-|
| Apple | 4 |
| Banana | 2 |
![](/favicon.png)

@ -1,3 +0,0 @@
https://markmap.js.org/repl
https://github.com/markmap/markmap
Loading…
Cancel
Save