首页 > 其他分享 >lit ace markdown编辑器

lit ace markdown编辑器

时间:2024-08-20 11:09:00浏览次数:5  
标签:src markdown ace js lit editor content

src/components/AcrMarkdown.ts:

import { LitElement, css, html } from "lit";
import { customElement, property, query } from "lit/decorators.js";
import ace from "ace-builds/src-min-noconflict/ace.js";
import { marked } from "marked";

@customElement("ace-markdown")
export class AceMarkdown extends LitElement {
	@property({ type: String })
	content = "";
	@query("#editor")
	editorElement!: HTMLDivElement;
	@query("#previewer")
	previewerElement!: HTMLDivElement;

	firstUpdated() {
		const editor = ace.edit(this.editorElement);
		editor.renderer.attachToShadowRoot(); // !!!important
		// editor.setTheme("ace/theme/monokai");
		editor.session.setMode("ace/mode/markdown");
		editor.session.setUseWrapMode(true);
		editor.session.on('change', (delta) => {
			this.content = editor.getValue();
			this.previewerElement.innerHTML = marked(this.content).toString();
		});
	}

	render() {
		return html`
		<div style="display: flex; height: 40vh">
		<div style="flex: 50%">
		  <div id="editor" style="width: 100%; height: 100%;">${this.content}</div>
		</div>
		<div style="flex: 50%">
		  <div id="previewer" style="width: 100%; height: 100%; overflow: auto"></div>
		</div>
	  </div>
    `;
	}
}

declare global {
	interface HTMLElementTagNameMap {
		"ace-markdown": AceMarkdown;
	}
}

justfile:

build:
    #!/usr/bin/env bash
    bun build src/components/ace.markdown.ts --outfile public/ace.markdown.js --minify
    cp node_modules/ace-builds/src-min-noconflict/mode-markdown.js public/
    cp node_modules/ace-builds/src-min-noconflict/theme-monokai.js public/

标签:src,markdown,ace,js,lit,editor,content
From: https://www.cnblogs.com/soarowl/p/18369023

相关文章

  • 1. Streamlit制作交互式可视化网页应用
    1.title和write创建简单文本应用 2.添加交互组件__text_input__selectbox__file_uploader 3.绘制图标_折线图line_chart和柱状图pyplot 4.1.创建交互式页面_主页页面 4.2.创建交互式页面_关于页面 ......
  • Markdown丝滑体验——搭建图床
    Markdown丝滑体验——搭建图床在多个平台发布markdown时,时常要带着图片跑这跑那,十分麻烦。为了解决这个问题,得到更丝滑的体验,我们可以搭建自己图床。参考教程四分钟教你搭建高速免费稳定图床,Gitee+PicGo完美搭配,获得Markdown写作丝滑体验!_哔哩哔哩_bilibiliGitee创建图......
  • Markdown语法
    Markdown语法参考8分钟让你快速掌握Markdown_哔哩哔哩_bilibiliMarkdown基本语法|Markdown官方教程标题#标题一##标题二###标题三####标题四#####标题五######标题六快捷键CTRL+数字引用>这是一段引用这是一段引用列表有序列表1.one2......
  • 最强AI换脸软件FaceFusion一键包教程: 下一代脸部交换器和增强器。
    大家好,今天给大家介绍一款强大的换脸工具——FaceFusion。官方宣称的是:下一代脸部交换器和增强器。新版本在原有基础上增加了更多的模型和高清算法,显著提升了图片和视频的换脸效果。此外,还新增了三种遮罩功能,有效解决了脸部有物体遮挡时的融合效果差和跳闪问题。现在基础换脸......
  • 题解:P10844 [EGOI2024] Infinite Race / 无限赛跑
    题解:P10844[EGOI2024]InfiniteRace/无限赛跑有n个人在环形跑道上跑步,和q次超越别人或被别人超越,别人要么在Anika前面,要么在后面怎么说呢,建议降红由于只有重复超过一个人才肯定是跑过一圈的,所以一个数组就行了,每超过一次就打上标记,不然去掉标记。#include<bits/stdc......
  • Tree.Kind.STRING_LITERAL 、Tree.Kind.IDENTIFIER、Tree.Kind.TEXT_BLOCK 区别
    在SonarQubeJava插件开发中,Tree.Kind.STRING_LITERAL、Tree.Kind.IDENTIFIER和Tree.Kind.TEXT_BLOCK是用于表示不同类型Java代码节点的常量。1.Tree.Kind.STRING_LITERAL用途:表示Java代码中的字符串文字(即用双引号括起来的文本)。示例:"Hello,World!""username......
  • Sonarqube,标识代码中的username/password关键字,分别使用Tree.Kind.STRING_LITERAL 、T
    关于Tree.Kind.STRING_LITERAL、Tree.Kind.IDENTIFIER、Tree.Kind.TEXT_BLOCK等各个区别,请参考:Tree.Kind.STRING_LITERAL、Tree.Kind.IDENTIFIER、Tree.Kind.TEXT_BLOCK区别-yxchun-博客园(cnblogs.com) 1、使用 Tree.Kind.STRING_LITERAL packageorg.sonar.samp......
  • Coze插件发布!PDF转Markdown功能便捷集成,打造你的专属智能体
    近日,TextIn开发的PDF转Markdown插件正式上架Coze平台。在扣子搜索“pdf转markdown”,或在Coze平台搜索“pdf2markdown”,即可找到插件,在你的专属智能体中便捷使用文档解析功能。如果想测试解析插件在你需要的场景下表现如何,可以直接对话bot,试用pdf转markdown效果。同时,TextIn......
  • C. Splitting Items
    https://codeforces.com/contest/2004/problem/C总结:一开始看错题了,思维惯性的认为alice会拿前一半大的元素,bob会拿后一半大的元素。。其实不是,而是每个人都挑最大的拿voidsolve(){intn,k;cin>>n>>k;vector<int>a(n);for(auto&x:a){......
  • 何谓相等 (Equality),在类型理论(Type Theory)语境下
    两个元素a,b相等,即a=b,就是a和b是被完全一样地构建出来的。在《类型(Type)是可构建集合(constructiveset)》 一文中,说到,类型中的每个元素都是可构建的,因此,如果在一个类型中的两个元素a,b,是通过一样的方式构建出来,包括其构建时的输入,构建函数,那么,就说a等于b,a=b。......