react-monaco-markdown 操作手册

读者来稿 · song-shao与 batype 的 AI 分身对话整理

·376 字 · 约 2 分钟#HTML#React#TypeScript

react-monaco-markdown#

NPM version NPM downloads Repo License Repo Size

安装#

npm#

npm i react-monaco-markdown

pnpm#

pnpm i react-monaco-markdown

yarn#

yarn add react-monaco-markdown

使用#

import ReactMonacoMarkdown from 'react-monaco-markdown'

<ReactMonacoMarkdown
    value={'**Hello react-monaco-markdown!!!**'}
    onChange={pre => changeData(pre.text)}
/>

Options#

参数 说明 类型 默认值 是否必填 版本
className string - false >= 1.0.6
style style样式 React.CSSProperties - false >= 1.0.6
value 属性值 string - false
onChange 修改数据方法 (pre: ReturnValue) => void - false
renderHtml 渲染html 方法 (pre: ReturnValue) => React.ReactNode - false
config 额外配置 EditorConfig - false >= 1.0.6
width 宽度 number/string 100% false >= 1.0.7
height 高度 number/string 100% false >= 1.0.7
options monaco-editor 的 options 配置 editor.IStandaloneEditorConstructionOptions - false >= 1.0.7

EditorConfig#

参数 说明 类型 默认值 是否必填 版本
theme 主题 'light' / 'dark' 'light' false >= 1.0.7
isReadOnly 是否只读 Boolean false false >= 1.0.7
view 切换展示视图 View - false >= 1.0.7
htmlClass 展示区域class string - false >= 1.0.7
markdownClass 编写区域class string - false >= 1.0.7
table 表格配置 Table - false >= 1.0.7
imageUrl 预设 图片 URL string - false >= 1.0.7
imageAccept 图片accept string - false >= 1.0.7
linkUrl 预设 link Url string - false >= 1.0.7
onCustomImageUpload 自定义图片上传 (event: any) => Promise<{ url: string; text?: string }> - false >= 1.0.7
onImageUpload 本地图片上传 UploadFunc - false >= 1.0.7

Table#

export interface Table {
  maxRow: number;
  maxCol: number;
}

View#

export interface View {
  menu?: boolean;
  both?: boolean;
  md?: boolean;
  html?: boolean;
}

UploadFunc#

export type UploadFunc =
  | ((file: File) => Promise<string>)
  | ((file: File, callback: (url: string) => void) => void);

在 Next.js 中使用#

import dynamic from 'next/dynamic'

const ReactMonacoMarkdown = dynamic(() => import('react-monaco-markdown'), {ssr: false})

const NextMarkdownPreview = dynamic(() => import('react-monaco-markdown').then(res => res.NextMarkdownPreview), {ssr: false})

<ReactMonacoMarkdown
  value={'**Hello react-monaco-markdown!!!**'} />
  onChange={pre => changeData(pre.text)}
  renderHtml={pre => <NextMarkdownPreview code={pre.text} />}
/>

LICENSE#

MIT

相关文章

  • 如何监听 div 是否渲染完成

    本文介绍了在Next.js中使用NextMarkdownPreview组件时,如何通过MutationObserver监听div的ref对象来解决按需加载导致的加载慢问题。通过监听childList变化,可以及时获取容器内容变化,优化用户体验。

  • monaco-editor-react

    Monaco Editor for React集成了monaco-editor,适用于任何React应用,无需配置webpack等打包工具。支持TypeScript重写,提供多模型编辑器,与@monaco-editor/loader集成,提供开发/游乐场地。主要特性包括:无需配置即可使用、支持多模型编辑、提供Editor和DiffEditor组件、支持自定义主题和语言、提供丰富的API和事件处理。

  • 我对 React Server Components 的看法:方向对了,代价被低估了

    RSC 解决的是真问题,但它给心智模型和生态带来的撕裂,比宣传里说的大得多。