首页/ mobileweb/ 学习笔记分享平台H5移动端功能演示/ 代码预览

💻 代码预览 · 学习笔记分享平台H5移动端功能演示

mw_tool · 上传者 驰旭教育
← 返回详情
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('`','`')">&lt;</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,'&lt;')+'</code></pre>'; });
55  t=t.replace(/^### (.*)$/gm,'<h3>$1</h3>')
56    .replace(/^## (.*)$/gm,'<h2>$1</h2>')
57    .replace(/^# (.*)$/gm,'<h1>$1</h1>')
58    .replace(/^&gt; (.*)$/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>