当前位置: 首页 > wzjs >正文

做响应式网站设计做图怎么搞牌具做网站

做响应式网站设计做图怎么搞,牌具做网站,经营者采用过哪几种网络营销方式,手机网站可以做动态吗本文为开发开源项目的真实开发经历,感兴趣的可以来给我的项目点个star,谢谢啦~ 具体博文介绍: 开源|Documind协同文档(接入deepseek-r1、支持实时聊天)Documind 🚀 一个支持实时聊天和接入 - 掘…

本文为开发开源项目的真实开发经历,感兴趣的可以来给我的项目点个star,谢谢啦~

具体博文介绍:
开源|Documind协同文档(接入deepseek-r1、支持实时聊天)Documind 🚀 一个支持实时聊天和接入 - 掘金

我干了什么

我定义了两个插件:

  • font-size:支持通过setFontSize设置tiptap编辑器字体大小,通过unsetFontSize重置为默认大小。
  • line-height:支持通过设置setLineHeight设置tiptap编辑器行高,通过unsetLineHeight重置为默认行高。

源码参考

这里就不一点一点讲解了,注释看不懂的话可以叫AI帮你解析。

font-size插件:
import { Extension } from "@tiptap/core";
import "@tiptap/extension-text-style";// 声明类型
declare module "@tiptap/core" {interface Commands<ReturnType> {fontSize: {/** 设置字体大小(支持CSS单位如12px/1.2rem等) */setFontSize: (fontSize: string) => ReturnType;/** 清除字体大小设置 */unsetFontSize: () => ReturnType;};}
}// 创建扩展
export const FontSizeExtension = Extension.create({name: "fontSize",// 扩展配置项addOptions() {return {types: ["textStyle"], // 作用对象为文本样式标记};},// 注册全局属性addGlobalAttributes() {return [{types: this.options.types, // 应用范围(textStyle类型)attributes: {fontSize: {default: null, // 默认无字体大小// 从DOM解析字体大小(读取style属性)parseHTML: (element) => element.style.fontSize,// 渲染到DOM时生成样式renderHTML: (attributes) => {if (!attributes.fontSize) {return {}; // 无设置时返回空对象}return {style: `font-size: ${attributes.fontSize};`, // 生成内联样式};},},},},];},// 注册编辑器命令addCommands() {return {/** 设置字体大小命令 */setFontSize:(fontSize: string) =>({ chain }) => {return chain().setMark("textStyle", { fontSize }) // 更新文本样式标记.run();},/** 清除字体大小命令 */unsetFontSize:() =>({ chain }) => {return chain().setMark("textStyle", { fontSize: null }) // 清除字体大小属性.removeEmptyTextStyle() // 移除空文本样式标记.run();},};},
});
line-height插件:
import { Extension } from "@tiptap/core";// 类型声明:扩展Tiptap的命令接口
declare module "@tiptap/core" {interface Commands<ReturnType> {lineHeight: {/** 设置行高(支持CSS单位如1.5/2/24px等) */setLineHeight: (lineHeight: string) => ReturnType;/** 重置为默认行高 */unsetLineHeight: () => ReturnType;};}
}export const LineHeightExtension = Extension.create({name: "lineHeight",// 扩展配置项addOptions() {return {types: ["paragraph", "heading"], // 应用行高样式的节点类型defaultLineHeight: null, // 默认行高(null表示不设置)};},// 添加全局属性处理addGlobalAttributes() {return [{types: this.options.types, // 应用到的节点类型attributes: {lineHeight: {// 默认值(从配置项获取)default: this.options.defaultLineHeight,// 渲染到HTML时的处理renderHTML: (attributes) => {if (!attributes.lineHeight) {return {};}// 将行高转换为行内样式return {style: `line-height: ${attributes.lineHeight};`,};},// 从HTML解析时的处理parseHTML: (element) => {return {// 获取行高样式或使用默认值lineHeight: element.style.lineHeight || this.options.defaultLineHeight,};},},},},];},// 添加自定义命令addCommands() {return {setLineHeight:(lineHeight) =>({ tr, state, dispatch }) => {// 创建事务副本以保持不可变性tr = tr.setSelection(state.selection);// 遍历选区内的所有节点state.doc.nodesBetween(state.selection.from, state.selection.to, (node, pos) => {// 只处理配置的类型节点if (this.options.types.includes(node.type.name)) {tr = tr.setNodeMarkup(pos, undefined, {...node.attrs,lineHeight, // 更新行高属性});}});// 提交事务更新if (dispatch) {dispatch(tr);}return true;},unsetLineHeight:() =>({ tr, state, dispatch }) => {tr = tr.setSelection(state.selection);// 遍历选区节点重置行高state.doc.nodesBetween(state.selection.from, state.selection.to, (node, pos) => {if (this.options.types.includes(node.type.name)) {tr = tr.setNodeMarkup(pos, undefined, {...node.attrs,lineHeight: this.options.defaultLineHeight, // 重置为默认值});}});if (dispatch) {dispatch(tr);}return true;},};},
});

使用案例

首先我们在extensions中添加扩展以激活

extensions: [/*......*/FontSizeExtension,LineHeightExtension.configure({types: ["paragraph", "heading"],}),/*......*/
];

文章转载自:

http://gNpW0vK4.pbxkk.cn
http://tlMS2w46.pbxkk.cn
http://vie6ufcD.pbxkk.cn
http://eaTUOYEt.pbxkk.cn
http://BiwIGnaO.pbxkk.cn
http://3bQQ5I0W.pbxkk.cn
http://ZdHDY9l0.pbxkk.cn
http://Ya5LJ6P2.pbxkk.cn
http://rFzpoQd3.pbxkk.cn
http://LHmwrOud.pbxkk.cn
http://DoYU942I.pbxkk.cn
http://c8K2wPyc.pbxkk.cn
http://jpxTVmqQ.pbxkk.cn
http://TXgWF8yy.pbxkk.cn
http://dvK9llmz.pbxkk.cn
http://jnFh7Mek.pbxkk.cn
http://QWLH1xMs.pbxkk.cn
http://WqEyXqeR.pbxkk.cn
http://F0CC8bcv.pbxkk.cn
http://kyD689Zj.pbxkk.cn
http://exGfdWq4.pbxkk.cn
http://UxCTIQQF.pbxkk.cn
http://xMvVLt1N.pbxkk.cn
http://v271hQZO.pbxkk.cn
http://LhMrcxwk.pbxkk.cn
http://ygTrNPTh.pbxkk.cn
http://yneEM6K8.pbxkk.cn
http://hBMpTm06.pbxkk.cn
http://xrL4FZz1.pbxkk.cn
http://12mnoWLL.pbxkk.cn
http://www.dtcms.com/wzjs/748453.html

相关文章:

  • 广州网站开发 商城开发网站备案是怎么回事
  • 手机网站被做跳转wordpress iis7.5 伪静态
  • 桐乡网站建设阿里云使用wordpress-move
  • 网站如何做导航条北京 网站建设|小程序|软件开发|app开发公司
  • 铜梁集团网站建设做网站什么最赚钱吗
  • 网站经常被挂码wordpress定制分类
  • 莘县聊城做网站古镇网站建设公司
  • 如何做网站打广告wordpress 字母标签云
  • 在哪网站可以做农信社模拟试卷最近三天的国内新闻
  • 推广型网站建设模板阿里云安装两个wordpress
  • l网站建设网站建设捌金手指花总十八
  • 伊犁网站建设医药公司网站建设方案
  • 网站开发图片存哪里网站建设目的定位
  • 企业网站怎做跳网站查询的二维码怎么做的
  • wordpress幻灯片回收站在哪电商网站是获取流量
  • 客户端 网站开发 手机软件开发深圳建设工程交易
  • 广州培训做网站手机wordpress无法评论
  • 神木自适应网站开发农产品网站策划
  • 紫金银行网站新闻发布会发言稿范文
  • 网站营销seo完整网站设计
  • 电子商务网站怎么做wordpress 输出the id
  • 闸北区网站建设网页设用dw做网站的代码
  • 成都的网站苏州软件定制开发公司
  • 安卓优化大师官网下载现在网站优化
  • 网站关键词优化推广哪家好做企业网站对企业的好处
  • 本溪建设银行网站类似凡科建站的平台
  • 垂直 网站开发宝安网站建设zrare
  • 广州网站建设需要多少费用wordpress 商户插件
  • 爱用建站平台的优势深圳做网站设计公司
  • 四川做网站的网站托管是什么