首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何用javascript从头开始写一个简单的markdown (语法)高亮笔?

要从头开始用JavaScript编写一个简单的Markdown语法高亮笔,可以按照以下步骤进行:

  1. 理解Markdown语法:Markdown是一种轻量级标记语言,用于简单而直观地格式化文本。了解Markdown的基本语法,包括标题、段落、列表、链接、图片等元素的表示方法。
  2. 创建HTML页面:首先,创建一个HTML页面作为展示Markdown文本和高亮效果的容器。可以使用<textarea>元素作为输入框,用于输入Markdown文本,使用<div>元素作为展示区域,用于显示高亮后的HTML内容。
  3. 获取输入的Markdown文本:使用JavaScript获取输入框中的Markdown文本内容,可以通过document.getElementById()方法获取输入框元素,并使用.value属性获取其值。
  4. 解析Markdown文本:将获取到的Markdown文本解析为HTML格式。可以使用现有的Markdown解析库,如marked.js,它可以将Markdown文本转换为HTML格式。
  5. 高亮代码块:对于Markdown中的代码块,可以使用代码高亮库来实现语法高亮效果。常用的代码高亮库有highlight.jsPrism.js,它们支持多种编程语言的语法高亮。
  6. 将解析后的HTML内容显示在页面上:将解析后的HTML内容插入到展示区域的<div>元素中,可以使用innerHTML属性将HTML内容赋值给展示区域。

以下是一个简单的示例代码:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
  <title>Markdown语法高亮笔</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/styles/default.min.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/2.1.3/marked.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js"></script>
  <script>hljs.initHighlightingOnLoad();</script>
</head>
<body>
  <textarea id="markdownInput" rows="10" cols="50"></textarea>
  <button onclick="highlightMarkdown()">高亮</button>
  <div id="output"></div>

  <script>
    function highlightMarkdown() {
      var markdownInput = document.getElementById("markdownInput");
      var outputDiv = document.getElementById("output");
      var markdownText = markdownInput.value;
      var htmlText = marked(markdownText);
      outputDiv.innerHTML = htmlText;
      hljs.highlightAll();
    }
  </script>
</body>
</html>

在上述示例中,我们使用了marked.js库将Markdown文本转换为HTML格式,并使用highlight.js库实现代码块的语法高亮效果。用户在输入框中输入Markdown文本后,点击"高亮"按钮,即可将高亮后的HTML内容显示在页面上。

这只是一个简单的示例,实际上,实现一个完整的Markdown语法高亮笔可能需要更复杂的逻辑和功能。但通过以上步骤,你可以从头开始用JavaScript编写一个简单的Markdown语法高亮笔。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

八款不可错过热门 Markdown 开发包 | 码云周刊第 34 期

我使用 pandoc 来转化 markdown,但是我不想在修改文件时总是在编辑器、文字终端和浏览器间换来换去,因此我写了一个简单编辑器,它在后台调用 pandoc 将当前编辑 markdown 内容转化为...Markpage 让你专注于所写内容,其他资源都由 markpage 自动加载, 无需操心每次文档要记忆太多资源路径 如果你只想简单Markdown 写个干净文档, 比起 Word 没有语法高亮文档...项目地址: https://gitee.com/chinesetiger/markpage 柒 项目名称:markdown 转换 html 工具 par 项目简介:par 是一个基于 pyPEG 转換...除了支持标准 markdown语法,还支持一些扩展语法 github markdown 扩展及自定义扩展,可以生成 boostrap 或 semantic-ui 一些样式,: alert...项目地址: https://gitee.come/limodou/par 捌 项目名称:Javascript 实现 Markdown 解析器 Mdjs 项目简介:Mdjs 是一个 易用 轻量级 Javascript

2.4K50

如何在静态页面上使用markdown排版 原

Markdown是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber)。它允许人们 “使用易读易纯文本格式编写文档,然后转换成有效 HTML 文档。”...-HTML-HTML(offline) 导出html,导出html中包含着样式,我们可以把样式单独放在一个文件中,供其他页面使用 markdown-preview-enhanced插件语法markdown...基本一样,主要区别是代码块,如果要高亮,需要在```后增加代码类型,css,javascript,html等 详细语法说明: 标题 # 这是 一级标题 ## 这是 二级标题...语法高亮 你可以给你代码块添加任何一种语言语法高亮 例如,下面代码添加语法高亮: ```html 单行文本溢出,单行文本溢出,</div...```javascript function add(x, y) { return x + y } [代码行数](https://shd101wyy.github.io/markdown-preview-enhanced

1.3K20
  • 编译原理实战入门:用 JavaScript 一个简单四则运算编译器(二)语法分析

    四则运算语法规则(语法规则是分层) x* 表示 x 出现零次或多次 x | y 表示 x 或 y 将出现 ( ) 圆括号,用于语言构词分组 以下规则从左往右看,表示左边表达式还能继续往下细分成右边表达式...语法分析 对输入文本按照语法规则进行分析并确定其语法结构一种过程,称为语法分析。 一般语法分析输出为抽象语法树(AST)或语法分析树(parse tree)。...但由于四则运算比较简单,所以这里采取方案是即时地进行代码生成和错误报告,这样就不需要在内存中保存整个程序结构。 先来看看怎么分析一个四则运算表达式 1 + 2 * 3。...LL(0)分析法 递归下降分析法是简单高效算法,LL(0)在此基础上多了一个步骤,当第一个 token 不足以确定元素类型时,对下一个字元采取“提前查看”,有可能会解决这种不确定性。...// 5 + 5 转换为 5 5 + 再生成代码 push 5 push 5 add 代码实现 编译原理理论知识像天书,经常让人看得云里雾里,但真正动手做起来,你会发现,其实还挺简单

    89360

    再也不用为排版发愁了,五分钟带你学会markdown

    说白了就是用很简单语法来标准化排版,从而大大减轻编写文档以及排版工作。对于程序员来说,撰写文档是一个相当重要工作,所以markdown也是必学技能。...markdown也可以展示图片,展示图片语法和超链接几乎一模一样,只是前面多了一个感叹号。同样我们在方括号中写入图片展示信息,圆括号中写入图片地址。 我们是文本和地址,: !...即两个反引号包裹,比如: 我要写一段`JavaScript`代码 显示出来会是:我要写一段JavaScript代码,当中被反引号包裹JavaScript高亮显示。...如果我们要展示是多行代码,可以输入三个反引号加上语言名称来进行高亮展示。比如我们编写Python代码,就指定高亮代码语法是Python,它就会按照Python语法对关键字进行高亮。...这里简单介绍一下图床功能,因为markdown当中只是保存了图片地址,而不是复制了一份。使用图床也就是将图片上传到云端CDN,生成一个云端图片链接,而不是存在本地通过相对路径引用。

    2.3K10

    常用Markdown格式语法规则

    最近开始试着学习使用Typora文档记录东西,这篇放一些常用Markdown使用例以便回顾,并分享给大家Markdown介绍:Markdown是一种轻量级标记语言,它允许人们使用易读易纯文本格式编写文档...Markdown语法简单直观,目的是为了让非技术人员也能快速上手,用简单符号和指令来添加标题、列表、链接、图片等元素。...通常来说了解 Markdown 格式化语法最佳方式除了阅读相关语法介绍以外,还有用.txt后缀打开.md文档查看 Markdown 格式文档相应语法Markdown基本语法包括但不限于:1.标题字符...删除线通常在文本两侧加两个~~示例:~~我是地平论支持者(不是)~~我是地平论支持者(不是)3.引用要创建块引用,在段落前添加一个 > 符号,引用也可以嵌套,加两个>>三个>>> n个>>>>......为此,Markdown语法完全由标点符号组成,这些标点符号经过精心挑选,看起来像它们意思。例如,文字周围星号实际上看起来像强调它(加粗)。一个列表看起来就像,嗯,列表。

    19131

    如何简单一篇好看微信推送(更新)

    具体使用方法请看知乎上哪个微信编辑器比较好用这篇文章。 进阶方式——markdown 前面非常简短地介绍了一下如何用常规方法编辑公众号文章,下面就要开始今天正题——使用markdown来排版。...Markdown一个 Web 上使用文本到HTML转换工具,可以通过简单、易读易文本格式生成结构化HTML文档。...如果你对markdown有兴趣,具体对于markdown语法及介绍请看markdown官网。而对于公众号来说,我们用markdown here这个浏览器插件。...上标 : 210 效果 210 下标: 210 效果 210 代码片段 使用两次三个英文符号 ` (Tab键上面那个按键)将代码片段包围,当然,如果你要高亮的话请在第一个...``` 旁边添加具体语言,css、java等

    86710

    24款神级插件,让你 vscode更牛逼

    老梁这里简单列举一下老梁安装过语言。 C/C++ 提供C++语法识别、智能补全、代码跳转、调用依赖识别等,一般来说学生党安装这一个就可以了。...Markdown markdown语法支持,可以在vscode当中编辑markdown文档,还支持图床图片上传功能。但老梁个人还是更喜欢Typora,很少在vscode当中文档。...Python Python语法支持,支持Python单测、lint、语法高亮、代码格式化、debug、jupyter等功能。...Better Comments 美化注释,可以将我们多行注释按照类别自动高亮: Bracket Pair Colorizer 开发神器,当使用多层括号嵌套时,自动将不同层次括号设置成不同颜色...使用它搜索一下,自动推荐合适变量名,支持中文! Excel Viewer 顾名思义,Excel表格预览,数据分析党神器,再也不用一个窗口看数据一个窗口代码了。

    3.5K10

    Markdown上手指南

    Markdown上手指南 前言 markdown 是一门很实用标记语言,若是有HTML 基础学起来会非常快。 演示效果均是从typora 展示,为什么用它,因为它是一个成熟 md 编辑器!...markdown 所见即所得, 部分还增加了人性化交互(比如代码高亮) 支持公式 支持大部分拓展语法 支持主流流程图渲染 温馨提示: 已经会不用往下面看了,这文章一开始输出目的是给我们研发组小伙伴快速上手...因为前端这块文档基本切换到MD来维护,花了点时间录制了一波GIF演示 基础语法 基础语法是支持度最高,市面上主流 markdown 解析器基本都支持。...拓展语法 表格 表格语法也很简单,就是多一些,因为列越多越多。 默认列左对齐,也支持设置居中和右对齐, 横杆大于等于3, 列竖必须闭合才能代表一列!...脚注 这个东西在文献用最多 格式: 声明: [^text]: description 引用: hello[^text] [^李白]: 一个喝酒诗人 床前明月光[^李白] ?

    77210

    轻松搞定MarkDown

    MarkDown是什么? MarkDown是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber)。它允许人们“使用易读易纯文本格式编写文档。...因为它优点很多,目前也被越来越多写作爱好者,撰稿者广泛使用。看到这里大家不要被「标记」、「语言」所迷惑。其实,Markdown 语法十分简单。...这里可以指定代码所属语言,只要在第一组反引号后面添加相应语言名称即可。这样就会以javascript语法格式来显示所包含代码。 如何设置首行缩进?...文档中用到了MarkDown语法符号: 符号转义: 如果你描述中需要用到 markdown 符号,比如 _ # * 等,但又不想它被转义,这时候可以在这些符号前加反斜杠, \_ \# \* 进行避免...如何设置语法高亮? 在``(两个反引号)之间文字会被高亮显示。 例子: GitHub现在成了主流,不仅提供Git代码托管(取代SVN)、Issue追踪(取代JIRA) 如何结束先前格式状态?

    1.9K50

    插件机制详述_VSCode插件开发笔记1

    UI DOM这一层可能会随着优化频繁变动,VS Code不希望这些优化项受限于插件依赖,所以干脆把UI定制能力限制起来 除UI定制之外,IDE相关功能型特性都是支持扩展基础语法高亮/API提示...,通过VS Code debug协议与IDE通信 breakpoints 配合debuggers,声明对debugger支持(编程)语言类型 grammars 新增TextMate语法描述,语法高亮....语言相关扩展 通过配置文件来支持语法高亮、代码片段和智能括号匹配,更复杂通过扩展API或language server来做 配置型扩展 语法高亮:基础支持区分字符串、注释、关键字等语法角色,高级支持变量...简单配置搞不定,都通过扩展API(插件)来实现,有2种方式: 实现language server protocol与IDE通信,完全独立 注册Provider提供自定义能力,类似于hook方式...支持扩展能力如下: hover提示:基础支持类型、文档等信息,高级支持方法签名语法高亮 补全提示:高级支持在补全提示项旁边展示额外信息 检查报错:基础支持保存时对打开文件内容检查报错,高级支持对打开文件目录里任意资源检查报错

    2.7K50

    一篇文章玩转Markdown

    Coding 许多版块均采用了 Markdown 语法,比如冒泡、讨论、Pull Request 等。...普通文本: 这是一行普通文本 ---- 单行文本: 这行文本添加了一个制表符(Tab),或者4个空格符号 块状文本: 这是一行块状文本 文本前面添加一个Tab 文本前面添加了四个空格符 ---- 文字高亮...语法: `linux` `JavaScript` `socket` `String` 示例: linux JavaScript socket String 锚点 Coding 会针对每个标题,在解析时都会添加锚点...id 使用方式: 语法 效果 [标题](#锚点ID) 回到顶部 ---- 外部链接 # 语法 效果 1 [我博客](https://www.i7dom.cn/2019/01/18/Markdown.html...---- 代码高亮 在三个反引号后面加上编程语言名字,另起一行开始代码,最后一行再加上三个反引号。 使用语法: ```php<?

    2.3K20

    这款Markdown神器,要收费啦!

    大部分Markdown编辑器都是一半是编辑窗口,一半是预览窗口,而Typora合二为一,更为简洁。 支持 LaTeX 语法。 支持图床功能。 定制化主题。...Markdown Markdown是一种轻量级标记语言,排版语法简洁,让使用者更多地关注内容本身而非排版。...基础语法: 代码高亮:输入 ``` 后并输入语言名,换行,开始代码,Typora 会自动实现代码高亮效果(如下图)。...配置完成之后,当你在 Typora 中插入本地图片时,PicGo 会自动将图片上传图床并使用 Markdown 语法替换图片地址。...Mermaid Mermaid是一个用于画流程图、状态图、时序图、甘特图库,使用 JavaScript 进行本地渲染,广泛集成于许多 Markdown 编辑器中。

    2K30

    这款Markdown神器,要收费啦!

    不过,Beta版本还是可以继续免费使用。 作为 Typora 重度用户,今天给大家介绍一下这款 Markdown 神器。 简介 Typora 是一款支持实时预览 Markdown 文本编辑器。...输入Markdown标记后,会即时渲染成相应格式。大部分Markdown编辑器都是一半是编辑窗口,一半是预览窗口,而Typora合二为一,更为简洁。 支持 LaTeX 语法。 支持图床功能。...Markdown Markdown是一种轻量级标记语言,排版语法简洁,让使用者更多地关注内容本身而非排版。...基础语法: 代码高亮:输入 ``` 后并输入语言名,换行,开始代码,Typora 会自动实现代码高亮效果(如下图)。...Mermaid Mermaid是一个用于画流程图、状态图、时序图、甘特图库,使用 JavaScript 进行本地渲染,广泛集成于许多 Markdown 编辑器中。

    1.1K20

    VScode神仙插件,程序员必备

    Visual Studio Code是一款免费开源现代化轻量级代码编辑器,支持几乎所有主流开发语言语法高亮、智能代码补全、自定义快捷键、括号匹配和颜色区分、代码片段、代码对比 Diff、GIT命令...C/C++ 提供C++语法识别、智能补全、代码跳转、调用依赖识别等,一般来说学生党安装这一个就可以了。...HTML/CSS  HTML/CSS语法支持,前端党必备。 Markdown markdown语法支持,可以在vscode当中编辑markdown文档,还支持图床图片上传功能。...由于很多githubrepo都提供了markdown语法格式readme文件,所以还是需要安装一下,这样才方便阅读。...Python  Python语法支持,支持Python单测、lint、语法高亮、代码格式化、debug、jupyter等功能。

    13010

    GitHub 12个实用技巧

    但是如果你直接粘贴一个段Vue,Typescript或者JSX代码,你可以指定出来以得到正确语法高亮。 注意第一行 ```jsx : ? 意味着这段代码可以正确显示: ?...(顺便说下,在gist中,如果你gist文件后缀名是.jsx, 将自动获得JSX语法高亮) 这是所有支持语法列表. #4 在PRs中巧妙关闭issues 如果你创建了一个pull request来修复问题单...我先创建一个GitHub wiki,我从NodeJS文档找了几个页面作为wiki页面,然后创建一个侧边导航来模拟实际结构。侧边栏一直存在,不会对当前页面高亮。...您想将文本块存储在某个地方,而且可以很方便编辑,且不需要开发。 我建议是文本写在markdown文件中,然后存到你仓库。接着在前端一个组件来请求文件然后渲染。...---- 往期精选文章 使用虚拟dom和JavaScript构建完全响应式UI框架 扩展 Vue 组件 使用Three.js制作酷炫无比无穷隧道特效 一个治愈JavaScript疲劳学习计划 全栈工程师技能大全

    1.3K20

    Markdown PPT 是如何实现

    前言 Markdown 是一种轻量标记语言,我们只需要写 md 格式文件,不必考虑文档排版,被广泛用于博客写作,技术文档编写等,程序员们都热爱,但我们工作中除了文档,有时候还需要汇报工作,技术分享等...,需要用到 PPT,但设计 PPT 可能不是每个程序员所喜欢,所以我们可以使用一个非常好用工具 slidev, 可以使用 markdown 来制作演示文稿, 这个工具很多小伙伴都知道,尤大分享就经常使用...实现 markdown 解析 常用 javascript markdown 解析器有 markdown-it 、marked 、remark。...section 设置幻灯片样式就可以实现简单效果。...主要借助于prismjs 这个插件,可以参考之前这篇文章《使用 Prism.js 对代码进行语法高亮》。

    91020

    10款流行Markdown编辑器,总有一款适合你

    作为一个开源人,如果你不会使用Markdown语法,那你就OUT了!Markdown 是 2004 年由 John Gruberis 设计和开发纯文本格式语法,非常简单实用。...WMD (wmd-editor)是一个简单轻量级HTML编辑器,使用Markdown 文本格式数据,适合用来做博客评论、发帖和一些基本内容发布系统,支持流行各种浏览器。...Mou 是 Mac下杰出 Markdown 编辑器,提供语法高亮、在线预览、同步滚动、全屏模式,支持自定保存、自动匹配,允许自定义主题,支持 CSS,HTML 和 PDF 导出等。...EpicEditor 是一个可嵌入式 JavaScript Markdown 编辑器,提供全屏编辑、在线预览、自动保存草稿和离线编辑支持。对开发者提供可可靠 API 做风格设置。...CuteMarkEd 是一个 Markdown 编辑器,提供实时 HTML 预览、数学表达式和源码高亮

    1.5K40

    vscode中好用插件_捷达VS5和捷途X95哪个好

    Draw.io Integration 画流程图 Data Preview 预览数据文件 ESLint 检查Javascript编程时语法错误 EditorConfig for VS Code 代码风格统一...中 Import Cost 您查看导入模块大小 JavaScript (ES6) snippets 支持JavaScript ES6 语法 JavaScript (ES6) code snippets...markdown语法检测 Markdown Preview Enhanced 编辑器内看markdown编译出来效果 Markdown All in One markdown编辑器 Material...它将创建一个单独水平窗口。 点击窗口按 Ctrl + V 粘贴代码。 在代码下面,粘贴另一个窗口,会看到像图标这样摄像头。 点击这个图标并保存图片。...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.5K10

    R语言自动化报告格式——knitr

    简单地说,报告中有文字也有代码,Knitr就是通过markdown语法在报告中该显示代码地方显示代码,该显示运行结果(比如图表)地方显示运行结果,这样整个报告文档就可以直接运行再次生成报告,而不需要把代码单独复制到控制台中执行...[] 2、Markdown 是什么,如何Markdown[] Markdown 是一种轻量级标记语言。类似HTML,但是比html简单多,我在文件夹中放了一个markdown语法说明。...通过以下5步,你就可以创建自己一个knitr文档: l 打开 RStudio, 点击File > New File > R Markdown…创建一个R Markdown 文件 l 为这个文件起一个有意义名字...三、相关代码——文本输出[] 在文本输出方面,knitr包支持以下功能: l 代码高亮(highlight=TRUE),增强可读性,有无数高亮主题可选,仅适用于LaTeX和HTML输出,MD文档在转为...HTML文档之后可以用专门JavaScript库去高亮代码 l 代码重排(tidy=TRUE),对那些不注意代码格式的人来说很有用,再乱代码,到了这里也会变得相对整齐,本功能由formatR包支持

    1.3K40
    领券