1+
2+ window . onload = function ( ) {
3+
4+
5+ const hljsbtn = document . createElement ( 'button' ) ;
6+ hljsbtn . innerHTML = '点击' ;
7+ hljsbtn . type = "button" ;
8+ hljsbtn . backgroundColor = 'red' ;
9+ hljsbtn . style . height = '20px' ;
10+ hljsbtn . style . width = '40px' ;
11+ // hljsbtn.style.position = 'fixed';
12+ // hljsbtn.style.top = '100px';
13+ // hljsbtn.style.left = '10';
14+
15+ hljsbtn . addEventListener ( 'click' , ( ) => {
16+
17+ const memos = document . getElementsByClassName ( 'richText' ) ;
18+ const memos_array = Array . from ( memos ) ;
19+ console . log ( memos_array . length ) ;
20+ memos_array . forEach ( ( memo ) => {
21+
22+ const memo_p = memo . getElementsByTagName ( 'p' ) ;
23+ const memo_p_array = Array . from ( memo_p ) ;
24+
25+ const newRichText = document . createElement ( 'div' ) ;
26+ let languageFlag = false ;
27+
28+ let codeArr = [ ] ;
29+ let languageType = '' ;
30+ for ( let i = 0 ; i < memo_p_array . length ; i ++ ) {
31+ if ( memo_p_array [ i ] . innerHTML . startsWith ( '```' ) && memo_p_array [ i ] . innerHTML . substring ( 3 ) != '' ) {
32+ languageFlag = true ;
33+ let language = memo_p_array [ i ] . innerHTML . substring ( 3 ) ;
34+ languageType = "language-" + language ;
35+ continue ;
36+ } else if ( memo_p_array [ i ] . innerHTML . startsWith ( '```' ) && memo_p_array [ i ] . innerHTML . substring ( 3 ) === '' ) {
37+ languageFlag = false ;
38+
39+ let pre = document . createElement ( 'pre' ) ;
40+ let code = document . createElement ( 'code' ) ;
41+ code . innerHTML = codeArr . join ( '\n' ) ;
42+ code . className = languageType ;
43+ pre . appendChild ( code ) ;
44+ newRichText . appendChild ( pre ) ;
45+ //清空数组
46+ codeArr = [ ] ;
47+ languageType = '' ;
48+ continue ;
49+ }
50+
51+ if ( languageFlag ) {
52+ // code.innerHTML = code.innerHTML + memo_p_array[i].innerHTML;
53+ codeArr . push ( memo_p_array [ i ] . innerHTML ) ;
54+ } else {
55+ let newP = document . createElement ( 'p' ) ;
56+ newP . innerHTML = memo_p_array [ i ] . innerHTML ;
57+ newRichText . appendChild ( newP ) ;
58+ }
59+ }
60+ memo . innerHTML = newRichText . innerHTML ;
61+ } ) ;
62+ hljs . highlightAll ( ) ;
63+ } ) ;
64+
65+
66+ document . body . appendChild ( hljsbtn ) ;
67+
68+ // const el_container = document.getElementsByClassName('el-container').contentWindow;
69+ const memos = document . getElementsByClassName ( "memos" ) [ 0 ] ;
70+ memos . appendChild ( hljsbtn ) ;
71+ // const sidebar_li = document.createElement('li');
72+ // sidebar_li.innerHTML = 'hljs';
73+ // sidebar.appendChild(sidebar_li)
74+
75+
76+ // hljs.highlightAll();
77+ } ;
0 commit comments