r75/write.html · 约 3090 字符
1<!doctype html>
2<html lang="zh-CN">
3<head>
4<meta charset="utf-8">
5<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
6<title>编写笔记</title>
7<link rel="stylesheet" href="style.css">
8</head>
9<body>
10<div class="app">
11 <header class="top">
12 <div class="top-l">笔记客 · 阿May</div>
13 <div class="top-r">编写笔记</div>
14 </header>
15 <main class="main">
16<div class="card">
17 <div class="sec-title"><span>📝</span> 标题</div>
18 <div class="search">输入笔记标题,如「Python 装饰器入门」</div>
19</div>
20<div class="card">
21 <div class="sec-title"><span>🧰</span> 工具栏</div>
22 <div class="toolbar">
23 <button onclick="wrap('**','**')">B</button>
24 <button onclick="prefix('## ')">H</button>
25 <button onclick="prefix('- ')">•</button>
26 <button onclick="prefix('1. ')">1.</button>
27 <button onclick="wrap('`','`')"><</button>
28 <button onclick="prefix('> ')">❝</button>
29 </div>
30 <textarea class="ta" id="ed" oninput="render()"># 我的新笔记
31
32这是**第一段**正文。
33
34- 要点一
35- 要点二
36
37```python
38print("hello notes")
39```</textarea>
40 <div class="row" style="margin-top:10px">
41 <div class="seg" style="flex:1"><div class="sg on"><button>🌐 公开</button></div><div class="sg"><button>🔒 私密</button></div></div>
42 </div>
43</div>
44<div class="card">
45 <div class="sec-title"><span>👁️</span> 实时预览</div>
46 <div class="paper md" id="prev"></div>
47</div>
48<a class="btn full" href="read.html" style="text-decoration:none;text-align:center">保存并发布</a>
49</main>
50 <nav class="nav"><a class="" href="home.html"><span class="ic">🏠</span>首页</a><a class=" on" href="write.html"><span class="ic">✍️</span>编写</a><a class="" href="tags.html"><span class="ic">🏷️</span>标签</a><a class="" href="search.html"><span class="ic">🔍</span>搜索</a><a class="" href="me.html"><span class="ic">👤</span>我的</a></nav>
51</div>
52<script>
53function md(t){
54 t=t.replace(/```(\w*)\n([\s\S]*?)```/g, function(m, lang, code){ return '<pre><code>'+code.replace(/</g,'<')+'</code></pre>'; });
55 t=t.replace(/^### (.*)$/gm,'<h3>$1</h3>')
56 .replace(/^## (.*)$/gm,'<h2>$1</h2>')
57 .replace(/^# (.*)$/gm,'<h1>$1</h1>')
58 .replace(/^> (.*)$/gm,'<blockquote>$1</blockquote>')
59 .replace(/`([^`]+)`/g,'<code>$1</code>')
60 .replace(/\\*\\*([^*]+)\\*\\*/g,'<strong>$1</strong>')
61 .replace(/^- (.*)$/gm,'<li>$1</li>')
62 .replace(/(<li>.*<\\/li>)/s,'<ul>$1</ul>');
63 return t.replace(/\\n/g,'<br>');
64}
65function render(){document.getElementById('prev').innerHTML=md(document.getElementById('ed').value);}
66function prefix(p){var e=document.getElementById('ed');var s=e.selectionStart;e.value=e.value.slice(0,s)+p+e.value.slice(s);e.focus();render();}
67function wrap(a,b){var e=document.getElementById('ed');var s=e.selectionStart,x=e.selectionEnd;e.value=e.value.slice(0,s)+a+e.value.slice(s,x)+b+e.value.slice(x);e.focus();render();}
68render();
69</script>
70</body>
71</html>