Skip to content

Commit d5a349b

Browse files
save file
1 parent 7737df1 commit d5a349b

1 file changed

Lines changed: 110 additions & 23 deletions

File tree

utils/editors/markdown-editor/html/output-md/v2.0/output-md-v2.0.html

Lines changed: 110 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,27 @@
44

55
<template shadowrootmode=open>
66

7+
<!--
78
<link rel=stylesheet href='css/github-markdown-light.css'>
9+
-->
810
<!--
911
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/light.css">
1012
-->
1113

14+
<style id=stylesheet>
15+
</style>
16+
1217
<style>
1318

1419
#root
1520
{height:100%;display:flex;flex-direction:column;gap:5px}
1621

1722
#hdr
1823
{display:flex}
24+
25+
#npm
26+
{margin-right:20px}
27+
1928
.radio
2029
{border:1px solid lightgray;padding:2px 10px;border-radius:5px;cursor:pointer;display:flex;align-items:center}
2130
.radio [type]
@@ -36,29 +45,36 @@
3645

3746
<div id=hdr>
3847

39-
<span id=html class=radio>
40-
<input type=checkbox checked>
41-
allow-html
42-
</span>
43-
<span id=breaks class=radio>
48+
<div id=npm class=radio>
4449
<input type=checkbox>
45-
breaks
46-
</span>
47-
<span id=linkify class=radio>
48-
<input type=checkbox checked>
49-
linkify
50-
</span>
51-
52-
<span class=spc></span>
50+
npm
51+
</div>
5352

54-
<span id=mode-md class=radio>
55-
<input type=checkbox checked>
56-
markdown
57-
</span>
58-
<span id=mode-html class=radio>
59-
<input type=checkbox>
60-
html
61-
</span>
53+
<div id=standard>
54+
<span id=html class=radio>
55+
<input type=checkbox checked>
56+
allow-html
57+
</span>
58+
<span id=breaks class=radio>
59+
<input type=checkbox>
60+
breaks
61+
</span>
62+
<span id=linkify class=radio>
63+
<input type=checkbox checked>
64+
linkify
65+
</span>
66+
67+
<span class=spc></span>
68+
69+
<span id=mode-md class=radio>
70+
<input type=checkbox checked>
71+
markdown
72+
</span>
73+
<span id=mode-html class=radio>
74+
<input type=checkbox>
75+
html
76+
</span>
77+
</div>
6278

6379
</div>
6480

@@ -97,12 +113,14 @@
97113
//vars:-
98114

99115
var md;
116+
var css = {};
100117

101118
var cur = {};
102119
cur.mode = 'md';
103120
cur.txt = null;
104121

105122
var shadow;
123+
var standard;
106124
var output;
107125
var chk = {};
108126

@@ -149,7 +167,9 @@
149167
function libs(){
150168

151169
var resolve,promise=new Promise(res=>resolve=res);
170+
152171
var ct = 0;
172+
var total = 4;
153173

154174
var script = document.createElement('script');
155175
script.src = 'https://cdn.jsdelivr.net/npm/markdown-it/dist/markdown-it.min.js';
@@ -161,20 +181,50 @@
161181
script.onload = onload;
162182
document.head.append(script);
163183

184+
get('/css/npm.css').then({txt='',error}=>(css.npm=txt,onload()));
185+
get('/css/github-markdown-light.css').then({txt='',error}=>(css.github=txt,onload()));
186+
164187
return promise;
165188

166189

167190
function onload(){
168191

169192
ct++;
170-
if(ct!=2)return;
193+
if(ct!=total)return;
171194
resolve();
172195

173196
}//onload
174197

175198
}//libs
176199

177200

201+
async function get(url){
202+
203+
var err;
204+
try{
205+
206+
var res = await fetch(url);
207+
208+
}//try
209+
catch(err2){
210+
211+
err = err2;
212+
213+
}//catch
214+
if(err){
215+
var error = err.message;
216+
return {error}
217+
}
218+
if(!res.ok){
219+
var error = await res.text();
220+
return {error};
221+
}
222+
var txt = await res.text();
223+
return {txt};
224+
225+
}//get
226+
227+
178228
//:
179229

180230

@@ -183,9 +233,15 @@
183233
shadow = host.shadowRoot;
184234

185235
var hdr = $(shadow,'#hdr');
236+
237+
chk.npm = $.chkbox(shadow,'#npm',btn.npm);
238+
239+
standard = $(hdr,'#standard');
240+
186241
chk.html = $.chkbox(shadow,'#html');
187242
chk.breaks = $.chkbox(shadow,'#breaks');
188243
chk.linkify = $.chkbox(shadow,'#linkify');
244+
189245
var group = $.chkbox.group(shadow,'#mode-md','#mode-html');
190246
group.callback = btn.mode;
191247

@@ -199,6 +255,17 @@
199255
//:
200256

201257

258+
btn.npm = function(chk){
259+
260+
if(chk.checked){
261+
standard.style.display = 'none';
262+
}else{
263+
standard.style.display = '';
264+
}
265+
266+
}//npm
267+
268+
202269
btn.mode = function(chk,id){
203270
debug('btn.mode',id);
204271
switch(id){
@@ -263,21 +330,41 @@
263330

264331
var html = md.render(txt);
265332

266-
display[cur.mode](html);
333+
if(chk.npm.checked){
334+
display.npm(html);
335+
}else{
336+
display[cur.mode](html);
337+
}
267338

268339
}//show
269340

270341

271342
display.md = function(html){
272343
debug('display.md');
344+
output.classList.remove('_6d9832ac','_704c034e');
273345
output.innerHTML = html;
274346

347+
$(shadow,'#stylesheet').textContent = css.github;
348+
275349
output.style.display = '';
276350
editor.__host.style.display = 'none';
277351

278352
}//md
279353

280354

355+
display.npm = function(html){
356+
debug('display.npm');
357+
output.classList.add('_6d9832ac','_704c034e');
358+
output.innerHTML = html;
359+
360+
$(shadow,'#stylesheet').textContent = css.npm;
361+
362+
output.style.display = '';
363+
editor.__host.style.display = 'none';
364+
365+
}//npm
366+
367+
281368
display.html = function(html){
282369
debug('display.html');
283370
editor.set(html);

0 commit comments

Comments
 (0)