自己写一个网页版的Markdown实时编辑

本文介绍了如何构建一个网页版的Markdown实时编辑器,包括利用oninput事件监听用户输入、selection对象处理选中区域,以及JavaScript相关技巧如字符串截取、光标位置插入文字和div的拖拽效果。同时提到了多个教程链接,帮助读者实现类似功能。
摘要由CSDN通过智能技术生成

(1)自己写一个网页版的Markdown实时编辑:器http://blog.csdn.net/Marksinoberg/article/details/51648929
(2)js字符串截取函数slice()、substring()、substr():https://www.cnblogs.com/lmsblogs/p/5876384.html
(3)markdown语法说明:http://markdown.tw/#list
(4)javascript控制在光标位置插入文字:http://blog.csdn.net/gisredevelopment/article/details/29255147
(5)纯前端打造一个简易实时预览的markdown编辑器:https://www.jianshu.com/p/d0eed194db65
(6)div实现拖拽效果,宽度发生变化:http://blog.csdn.net/bei_fang_du_lang/article/details/50707484
(7)editor.md实现Markdown编辑器:http://www.cnblogs.com/Leo_wl/p/5763491.html
(8)JavaScript标准Selection操作:http://www.cnblogs.com/rainman/archive/2011/02/27/1966482.html

oninput 事件

当用户向 中尝试输入时执行 JavaScript:

<input type="text" oninput="myFunction()">
selection

selection是对当前激活选中区(即高亮文本)进行操作。
selectionStart
输入性元素selection起点的位置,可读写。
selectionEnd
输入性元素selection结束点的位置,可读写。

我自己写的Markdown实时编辑

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="js/jquery.min.js"></script>
<link href='./images/bbs.ico' rel='icon' type='image/x-icon' />
<link rel="stylesheet" href="css/bootstrap.css">
<script src="js/bootstrap.min.js"></script>
<style>
.row{
   margin:0;
}
.myform{
   padding:0;
}
.myhead{
   float:left;
   line-height:4em; /* 设置行高 */
}
input:focus{
   outline:none; /* 去除Bootstrap输入框聚焦时的边框轮廓 */
}
.mytitle{
   width:100%;
   font-size:3em; 
   font-weight:2em;
   border:0;
}
.mybtn{ 
   width:100%;
   line-height:2em;
}
.mytool{
   background-color:lightgray;
   border:0;
}
.btn-group{
   padding-top:1em;
   padding-bottom:1em;
   padding-left:2em;
}
.btn-group button{
    background-color:lightgray;
    border:0.1em solid white;
} 
.mycontent div{
    float:left;
    padding:0;
}
.preview{
   position:absolute; 
   overflow:auto;
   height:576px;
   background-color:lightyellow;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的。以下是用 C 语言编的简单 Markdown 解析器的示例代码: ```c #include <stdio.h> #include <string.h> #define BUF_SIZE 1024 int main(int argc, char *argv[]) { char buf[BUF_SIZE]; while (fgets(buf, BUF_SIZE, stdin) != NULL) { int i = 0; while (buf[i] != '\0') { // 处理标题 if (buf[i] == '#') { // 输出 "<h1>" printf("<h1>"); i++; // 跳过 # 号后面的空格 while (buf[i] == ' ') i++; // 输出标题内容,直到遇到换行符 while (buf[i] != '\n' && buf[i] != '\0') putchar(buf[i++]); // 输出 "</h1>" printf("</h1>"); } // 处理加粗文本 else if (buf[i] == '*' && buf[i + 1] == '*') { // 输出 "<strong>" printf("<strong>"); i += 2; // 输出加粗文本内容,直到遇到两个连续的星号 while (buf[i] != '\0' && !(buf[i] == '*' && buf[i + 1] == '*')) putchar(buf[i++]); // 输出 "</strong>" printf("</strong>"); i += 2; } // 处理普通文本 else { putchar(buf[i++]); } } } return 0; } ``` 这个程序读入 Markdown 格式的文本,并输出对应的 HTML 格式的文本。它只处理了标题和加粗文本两种格式,其他的格式会被当作普通文本输出。 在这个程序中,我们使用了标准 C 库函数 `fgets` 来读入输入流中的一 ### 回答2: Markdown是一种轻量级标记语言,常用于撰文档、编博客或编辑readme文件。编一个Markdown解析器的目的是将Markdown文本转换为HTML或其他格式的文档。可以使用C语言来编一个简单的Markdown解析器。以下是一个例子: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char* input; char* output; } Markdown; void parseMarkdown(Markdown* md) { // 解析处理Markdown文本的代码 // ... // 将解析后的结果赋值给md->output } int main() { Markdown md; md.input = "这是*斜体*文字。"; parseMarkdown(&md); printf("%s\n", md.output); free(md.output); return 0; } ``` 在这个例子中,我们首先定义了一个Markdown结构体,包含`input`和`output`两个成员。`input`成员保存了待解析的Markdown文本,`output`成员保存解析后的结果。在`parseMarkdown`函数中可以编相应的代码来处理Markdown文本,并将结果赋值给`md->output`。 在`main`函数中,我们创建了一个Markdown结构体md,并将待解析的Markdown文本传递给`parseMarkdown`函数进行解析。之后,我们可以输出解析后的结果。 当然,这个例子只是一个简化的版本,实际的Markdown解析器可能更加复杂。解析器需要处理各种Markdown的语法,例如标题、列表、表格等,并将其转换为相应的HTML或其他格式的文档。编一个完整功能的Markdown解析器需要更多的代码和技术,但这个例子可以帮助你入门。 ### 回答3: Markdown是一种轻量级标记语言,通常用于作文档和网页。C语言是一种高效而广泛使用的编程语言,所以使用C编一个Markdown解析器是可行的。 Markdown解析器可以将Markdown语法转换为HTML或者其他格式。解析器的功能包括识别Markdown语法中的特殊符号和格式,并将其转换为相应的HTML标签或其他格式的文本。 编Markdown解析器可以分为几个步骤: 1. 读取Markdown文件或文本; 2. 解析文本,识别Markdown语法中的特殊符号和格式; 3. 根据识别的语法,生成相应的HTML标签或其他格式的文本; 4. 输出转换后的HTML标签或其他格式的文本。 在C语言中,可以通过读取文件的方式获取Markdown文本,并使用字符串处理函数来解析和转换文本。可以使用条件语句和循环语句来检查和处理不同的Markdown语法。 对于较复杂的Markdown语法,可能需要使用正则表达式来进行匹配和替换。C语言中可以使用正则表达式库来处理正则表达式操作。 需要注意的是,在编Markdown解析器时,需要仔细处理特殊字符、转移字符和嵌套标签等情况,以确保解析结果的正确性和一致性。 总之,通过使用C语言的字符串处理函数、条件语句、循环语句和正则表达式库,可以编一个Markdown解析器,将Markdown语法转换为HTML或其他格式的文本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值