<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      [前端js] 爬取億圖腦圖大綱

      這段程序使看到了好的東西,又沒有零錢的產物
      還是老師讓畫思維導圖我不想畫還想白嫖的想法
      用時20分鐘
      就拿這個來作為例子 https://mm.edrawsoft.cn/template/286842
      image

      1. 找到一個突破點

      我看了網絡,沒有接口,沒辦法偷懶
      思維導圖是canvas渲染的,我也懶得找數據從哪里來的,所以就只有大綱了
      image

      function getOutline(node) {
          let info = {child: []};
          info.title = $(node).children(".ed-outline-title").find("span").text();
          $(node).children(".ed-outline").each(function (index, ele) {
              info.child.push(getOutline(ele));
          });
          return info;
      }
      // 運行
      // 里面是jquery的css選擇器,選擇的是大綱的節點
      getOutline($("#app > div > div > div:nth-child(4) > div.ed-outline.ed-outline--top").get(0))
      

      這會生成一個Json

      {
      	"child": [
      		{
      			"child": [
      				{
      					"child": [],
      					"title": "沒有孩子的三級"
      				},
      						{
      					"child": [],
      					"title": "沒有孩子的三級"
      				}
      			],
      			"title": "有孩子的二級"
      		},
      				{
      			"child": [],
      			"title": "沒有孩子的二級"
      		}
      	],
      	"title": "一級"
      }
      

      有了json,怎么轉化為思維導圖呢?
      用markmap!

      2. json轉markdown生成思維導圖

      先做json轉markdown,很簡單

      function toMarkdown(data, depth=0) {
          let markdownStr = "";
          data.title = data.title.replace(/[(\r\n)(\n)]/g,"<br/>");
      	if(data.title=="") {
      		// 有的標題不對勁,會干擾markmap的生成
      		data.title = "&nbsp;";
      	}
          markdownStr +=  "    ".repeat(depth)+"- "+data.title+"\n";
          for (let i in data.child) {
              markdownStr += toMarkdown(data.child[i], depth+1);
          }
          return markdownStr;
      }
      

      在markdown里,換行能引起各種各樣的錯誤,所以我將每一層的文字的換行符替換成<br/>

      接下來是生成思維導圖
      試用: https://markmap.js.org/repl
      源碼: https://github.com/markmap/markmap
      把剛才的那一段示例生成為markdown

      - 一級
          - 有孩子的二級
              - 沒有孩子的三級
              - 沒有孩子的三級
          - 沒有孩子的二級
      

      打開網址,將markdown填入文本框
      image
      非常完美,這樣子給老師交差就方便了
      好了完整代碼放到這里, 要是有變化我也不管啦, 我已經和老師交差了

      (function () {
          function getOutline(node) {
              let info = {child: []};
              info.title = $(node).children(".ed-outline-title").find("span").text();
              $(node).children(".ed-outline").each(function (index, ele) {
                  info.child.push(getOutline(ele));
              });
              return info;
          }
          function toMarkdown(data, depth=0) {
              let markdownStr = "";
              data.title = data.title.replace(/[(\r\n)(\n)]/g,"<br/>");
      		if(data.title=="") {
      			// 有的標題不對勁,會干擾markmap的生成
      			data.title = "&nbsp;";
      		}
              markdownStr +=  "    ".repeat(depth)+"- "+data.title+"\n";
              for (let i in data.child) {
                  markdownStr += toMarkdown(data.child[i], depth+1);
              }
              return markdownStr;
          }
          let outlineBox = $("#app > div > div > div:nth-child(4) > div.ed-outline.ed-outline--top").get(0);
          let copyBtn = $(`<button style="position:absolute;">復制思維導圖markdown</button>`);
          copyBtn.css({
              "top": $(outlineBox).offset().top+"px",
              "right": "0px"
          });
          copyBtn.click(function () {
              navigator.clipboard.writeText(toMarkdown(getOutline(outlineBox)));
          });
          $("body").append(copyBtn);
      })();
      

      閱讀了源碼,發現有更簡單的方法

      這是一個Object,里面存著所有的東西
      window.__NUXT__.state["active-work"]
      大綱請看對象的下的outlines
      svg文件和預覽圖請看對象下的config
      更加詳細的信息看workInfo
      還有評論等等的都在這個里面
      還有,workInfo里有一個鏈接,我總感覺可以直接下載到emmx文件
      我已經被學校燃盡了,以后有緣我再研究

      posted @ 2022-12-23 11:56  月神的使者  閱讀(274)  評論(4)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲精品AA片在线播放天 | 双乳奶水饱满少妇呻吟免费看| 日本国产精品第一页久久 | 97在线精品视频免费| 日韩一欧美内射在线观看| 精品国产精品中文字幕| 人妻少妇偷人精品一区| 人妻内射视频麻豆| 国产美女久久精品香蕉| 久久国产免费观看精品3| 熟女视频一区二区在线观看| 国产精品老熟女乱一区二区 | 新乡县| 久久精品国产色蜜蜜麻豆| 日本欧美大码a在线观看| 天天躁久久躁日日躁| 人妻少妇无码精品视频区| 亚洲欧美日韩综合久久久| 日韩精品一区二区三区在线观看| 精品国精品国产自在久国产应用男| 深夜精品免费在线观看| 日本中文字幕在线| 亚洲最大激情中文字幕| 久久天堂综合亚洲伊人HD妓女 | 亚洲精品一二三在线观看| 日韩狼人精品在线观看| 国产毛片精品av一区二区| 双乳奶水饱满少妇呻吟免费看| 欧美不卡无线在线一二三区观 | 婷婷六月色| 九九热视频免费在线播放| 国产做无码视频在线观看浪潮| 亚洲一二三四区中文字幕| 日本道播放一区二区三区| 奶头又大又白喷奶水av| 日韩高清不卡一区二区三区| 国产精品福利自产拍久久| 文水县| 中文国产不卡一区二区| 国产精品99一区二区三区| 国产不卡av一区二区|