Vditor 支持 juice 注入 css 支持不同模版样式的导出

本贴最后更新于 1647 天前,其中的信息可能已经事过景迁

希望 Vditor 支持 juice 注入 css 支持不同模版样式的导出

Vditor 对外提供静态 juice 注入方法,支持用户使用 Vditor 自定义 导出排版样式,这个功能大神在做么?

  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    346 引用 • 1801 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 目前支持导出 html,有 3 套主题可选,用户自定义的话暂时只能通过外链 CSS 进行 reset。

    1 回复
  • cbam
    作者

    嗯呢 ,因为我看了下代码,完全可以开放给用户指定远程 css 文件名,并在 toolbar 的配置中指定 css uri 以及主题名字,这样的话基本全覆盖 mdnice 的功能了。但是现在常量 CONTENT_THEME 限定死了。

    export const setContentTheme = (contentTheme: string,
                                    cdn = `https://cdn.jsdelivr.net/npm/vditor@${VDITOR_VERSION}`) => {
        if (!Constants.CONTENT_THEME.includes(contentTheme)) {
            return;
        }
        const vditorContentTheme = document.getElementById("vditorContentTheme") as HTMLLinkElement;
        const href = `${cdn}/dist/css/content-theme/${contentTheme}.css`;
        if (contentTheme === "light") {
            if (vditorContentTheme) {
                vditorContentTheme.remove();
            }
            return;
        }
        if (!vditorContentTheme) {
            addStyle(href, "vditorContentTheme");
        } else if (vditorContentTheme.href !== href) {
            vditorContentTheme.remove();
            addStyle(href, "vditorContentTheme");
        }
    
    1 回复
  • 如果可以在编辑器中编辑 CSS ,然后导出的时将 css 和 html 导出会不会更好?

    1 回复
  • cbam
    作者

    我调研过 mdnice 的实现: 在导出时,将不同主题的一堆 css,通过 juice 注入 html 标签,然后导出 html, 这样的好处是,导出的 html 中 css 样式无外链。

    你说在编辑器中 作者自己写 css,感觉用户知道的太底层了, 应该让写作用户知道的知识是: 我们有 N 中主题可选。 对于使用 vditor 编辑器的开发者需要知道的知识是:vditor 提供了我新增主题的能力,以更好的满足写作用户。

    而 vditor 对 开发者 提供的这种新增主题的能力,是不是可以像下面这样:

    vditor.setTheme("my.css的文件内容 || my.css的外链" as var X)
    
    而 vditor底层呢?
    if (X.startWith("http")) {
    	X = wget http://my.css
    }
    juice.inline(X, contentHtml);
    最终开发者 vditor.getRenderedContentHtml() 获得这种无外链的代码片段
    
    1 回复
  • 感觉最后有点矛盾,开发者都提供了 css 文件,最终获取的也可以用外链 CSS,不需要关注是否有外链了。

    现在的问题是,大部分开发者还要弄外链会比较麻烦,而且不方便调试,如果可以直接在界面中编辑 CSS 可能会更友好。

    1 回复
  • nil1 1 评论

    内联 CSS 是为了解决微信公众号、电子邮件这种不支持引用外部 CSS 的场合

    已支持一键复制到公众号。电子邮件的话用 Vditor 排版可能不太合适。
    Vanessa
  • nil1 1 评论

    支持复制到公众号?指的是 https://github.com/nicejade/markdown-online-editor 项目吗

    这个项目不支持公式、思维导图等内容

    不是,是 vditor 本身就支持。
    Vanessa
  • nil1

    https://ld246.com/guide/markdown demo 例子上没看到啊,哪里可以测试呢。

  • nil1

    支持公式跟思维导图复制到公众号吗?

请输入回帖内容 ...

推荐标签 标签

  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 596 关注
  • CodeMirror
    1 引用 • 2 回帖 • 127 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 5 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 15 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 4 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 367 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    565 引用 • 3532 回帖
  • 招聘

    哪里都缺人,哪里都不缺人。

    190 引用 • 1057 回帖 • 1 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 3 关注
  • 创业

    你比 99% 的人都优秀么?

    84 引用 • 1399 回帖 • 1 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 3 关注
  • QQ

    1999 年 2 月腾讯正式推出“腾讯 QQ”,在线用户由 1999 年的 2 人(马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。

    45 引用 • 557 回帖 • 83 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 4 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 259 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    285 引用 • 728 回帖
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 526 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    5 引用 • 106 回帖 • 1 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    130 引用 • 793 回帖
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 154 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    52 引用 • 190 回帖
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 3 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 1 关注
  • 锤子科技

    锤子科技(Smartisan)成立于 2012 年 5 月,是一家制造移动互联网终端设备的公司,公司的使命是用完美主义的工匠精神,打造用户体验一流的数码消费类产品(智能手机为主),改善人们的生活质量。

    4 引用 • 31 回帖 • 1 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 19 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 683 关注