Markdown转HTML 预览 网页工具
Markdown转HTML 预览.html
<!DOCTYPE html>
<html>
<head>
<title>Markdown转HTML 预览</title>
</head>
<body class="main-body">
<div><strong>Markdown转HTML 预览</strong></div>
<div id="main-markdown-input">
<div>输入 Markdown</div>
<textarea id="markdown-input" placeholder="Enter markdown here">
# Markdown 元素演示
## 标题
# 一级标题
## 二级标题
### 三级标题
## 段落
这是一个段落。段落之间使用空行分隔。
这是另一个段落。
## 添加三个空白换行
在三个空白换行前的段落。
<br/><br/><br/>
在三个空白换行后的段落。
## 强调
*斜体文本*
_斜体文本_
**粗体文本**
__粗体文本__
## 列表
### 无序列表
- 项目 1
- 项目 2
- 项目 3
### 有序列表
1. 项目 1
2. 项目 2
3. 项目 3
## 链接
[Markdown 入门指南](https://www.example.com)
## 图片
![图片描述](https://www.example.com/image.jpg)
## 引用
> 这是一个引用。
## 代码
`console.log('Hello, World!');`
```javascript
function add(a, b) {
return a + b;
}
```
## 表格
| 姓名 | 年龄 | 性别 |
| ---- | ---- | ---- |
| 张三 | 25 | 男 |
| 李四 | 30 | 女 |
| 王五 | 28 | 男 |
## 水平线
这是一段文本。
---
这是另一段文本。
## 脚注
这是一个带有脚注的句子。[^1]
[^1]: 这是脚注的内容。
</textarea>
</div>
<div id="main-css-input">
<div>输入 CSS</div>
<textarea id="css-input" placeholder="Enter CSS here">
body {
font-family: Arial, sans-serif;
line-height: 1.5;
margin: 20px;
}
h1, h2, h3 {
color: #333;
}
h1 {
font-size: 24px;
}
h2 {
font-size: 20px;
}
h3 {
font-size: 16px;
}
p {
margin-bottom: 10px;
}
em {
font-style: italic;
}
strong {
font-weight: bold;
}
ul, ol {
margin-bottom: 10px;
margin-left: 20px;
}
li {
margin-bottom: 5px;
}
a {
color: #007bff;
}
img {
max-width: 100%;
height: auto;
margin-bottom: 10px;
}
blockquote {
margin: 0;
padding: 10px;
background-color: #f8f8f8;
border-left: 4px solid #ccc;
}
code {
font-family: Consolas, monospace;
background-color: #f8f8f8;
padding: 2px 4px;
border-radius: 4px;
}
pre {
background-color: #f8f8f8;
padding: 10px;
border-radius: 4px;
overflow: auto;
}
table {
border-collapse: collapse;
width: 100%;
margin-bottom: 10px;
}
th, td {
border: 1px solid #ccc;
padding: 8px;
}
hr {
border: none;
border-top: 1px solid #ccc;
margin: 20px 0;
}
sup {
font-size: 12px;
vertical-align: super;
line-height: 1;
}
</textarea>
</div>
<div id="main-html-text">
<div>输出 HTML 文本</div>
<textarea id="html-text"></textarea>
</div>
<div id="main-html-preview">
<div>输出 HTML 预览</div>
<div id="html-preview"></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script>
const markdownInput = document.getElementById('markdown-input');
const cssInput = document.getElementById('css-input');
const htmlPreview = document.getElementById('html-preview');
const htmlText = document.getElementById('html-text');
markdownInput.addEventListener('input', updatePreview);
cssInput.addEventListener('input', updatePreview);
function updatePreview() {
const markdown = markdownInput.value;
const css = cssInput.value;
const html = marked.parse(markdown);
const styledHtml = `<style>${css}</style>${html}`;
htmlPreview.innerHTML = styledHtml;
htmlText.value = html;
}
updatePreview();
</script>
<style>
.main-body {
}
#main-markdown-input {
display: inline-block;
width: 30%;
height: auto;
}
#main-css-input {
display: inline-block;
width: 18%;
height: auto;
}
#main-html-text {
display: inline-block;
width: 18%;
height: auto;
}
#main-html-preview {
display: inline-block;
width: 30%;
height: auto;
}
#markdown-input, #css-input, #html-preview, #html-text {
width: calc(100% - 20px);
height: calc(100vh - 150px);
padding: 10px;
}
#markdown-input {
border: 1px solid #ccc;
overflow: auto;
}
#css-input {
border: 1px solid #ccc;
overflow: auto;
}
#html-preview {
border: 1px solid #ccc;
overflow: auto;
}
#html-text {
border: 1px solid #ccc;
overflow: auto;
}
</style>
</body>
</html>