能否给标题 Headings 自动编号? (已解决)

本贴最后更新于 1087 天前,其中的信息可能已经东海扬尘

我的会员推广码(vfW6RGB )


标题自动编序号对于非文科的文档来说太重要了,可是能够给 Markdown 标题自动编号的工具还真的不多。例如:

  • (Python) Jupyter Notebook,可以通过插件来实现;
  • Typora 也是可以通过插件 (可能是修改 css) 实现自动加编号。

思源能不能增加这个特色功能呢?在显示和导出时,给个自动标题编号?


更新:

按已采纳的方法搞定了,但请注意,在我解决这个问题的过程中,新的 css 并不能通过重启思源或者按 F5 来生效。只有从系统注销登陆后,再次登陆用户后再打开思源笔记,css 样式才最终生效。

该方法的另一个局限性是导出的 HTML 是没有标题编号的。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    23043 引用 • 92699 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    8460 引用 • 38527 回帖 • 155 关注
被采纳的回答
    1. 复制一份 dalight,并改个名

    image.png

    1. 修改 conf 下的 conf.json, 添加 daylightPlus

    image.png

    1. 修改 daylightPlus 中的 theme.css
    
    :root{
    	/*其他乱七八糟代码*/
    
    	/*手动添加的部分*/
    	counter-reset:counter_h2;
    }
    
    /*全部粘贴到 :root 外面*/
    
    /*标题章节号. H2 和 H3 有序号*/
    [data-subtype=h2][data-node-id].h2{
    	counter-increment: counter_h2;
    	counter-reset: counter_h3;
    }
    [data-subtype=h2][data-node-id].h2 [contenteditable][spellcheck]::before{
    	content:  "第"counter(counter_h2)"章 ";
    }
    [data-subtype=h3][data-node-id].h3{
    	counter-increment: counter_h3
    }
    [data-subtype=h3][data-node-id].h3 [contenteditable][spellcheck]::before{
    	content:  counter(counter_h2)"."counter(counter_h3)" ";
    }
    
    1. 在 siyuan 中 按 F5

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • tenstu

    层主你好,我按你的做法进行修改,对 HI 和 H2 标题都成功了,但是三级标题及以下都不能显示正常序号,能麻烦看一下吗?

    /****************************************自定义CSS****************************************/
    [data-subtype=h1][data-node-id].h1{
    	counter-increment: counter_h1;
    	counter-reset: counter_h2;
    }
    [data-subtype=h1][data-node-id].h1 [contenteditable][spellcheck]::before{
    	content:  "第"counter(counter_h1)"章 ";
    }
    [data-subtype=h2][data-node-id].h2{
    	counter-increment: counter_h2;
    	counter-reset: counter_h3;
    }
    [data-subtype=h2][data-node-id].h2 [contenteditable][spellcheck]::before{
    	content:  counter(counter_h1)"."counter(counter_h2)" ";
    }
    [data-subtype=h3][data-node-id].h3{
    	counter-increment: counter_h3;
    	counter-reset: counter_h4;
    }
    [data-subtype=h3[data-node-id].h3 [contenteditable][spellcheck]::before{
    	content:  counter(counter_h1)"."counter(counter_h2)"."counter(counter_h3)" ";
    }
    [data-subtype=h4][data-node-id].h4{
    	counter-increment: counter_h4;
    	counter-reset: counter_h5;
    }
    [data-subtype=h4][data-node-id].h4 [contenteditable][spellcheck]::before{
    	content:  counter(counter_h1)"."counter(counter_h2)"."counter(counter_h3)"."counter(counter_h4)" ";
    }
    [data-subtype=h5][data-node-id].h5{
    	counter-increment: counter_h5
    }
    [data-subtype=h5][data-node-id].h5 [contenteditable][spellcheck]::before{
    	content:  counter(counter_h1)"."counter(counter_h2)"."counter(counter_h3)"."counter(counter_h4)"."counter(counter_h5)" ";
    }
    

    按 F5、重启思源,注销电脑账户都试过了,还是不能生效

    1 回复
  • 其他回帖
  • dongjl

    目前可通过 3 种方式实现标题自动编号:
    1、主题:zhang-light 主题、标题自动编号和着色(就叫这个名 😂 )这两个插件
    2、插件:自动标题序号
    3、外观设置中添加自定义 css 片段

    我使用的方式是将主题《标题自动编号和着色》中的 css 提取为一个 css 片段。
    上面这几种方法中就只有这个主题支持大纲编写序号,且样式最好看。
    这个主题是继承的思源默认主题,为了切换其他好看的主题,所以提取成一个片段。

    1. 复制一份 dalight,并改个名

    image.png

    1. 修改 conf 下的 conf.json, 添加 daylightPlus

    image.png

    1. 修改 daylightPlus 中的 theme.css
    
    :root{
    	/*其他乱七八糟代码*/
    
    	/*手动添加的部分*/
    	counter-reset:counter_h2;
    }
    
    /*全部粘贴到 :root 外面*/
    
    /*标题章节号. H2 和 H3 有序号*/
    [data-subtype=h2][data-node-id].h2{
    	counter-increment: counter_h2;
    	counter-reset: counter_h3;
    }
    [data-subtype=h2][data-node-id].h2 [contenteditable][spellcheck]::before{
    	content:  "第"counter(counter_h2)"章 ";
    }
    [data-subtype=h3][data-node-id].h3{
    	counter-increment: counter_h3
    }
    [data-subtype=h3][data-node-id].h3 [contenteditable][spellcheck]::before{
    	content:  counter(counter_h2)"."counter(counter_h3)" ";
    }
    
    1. 在 siyuan 中 按 F5
    2 回复
    1. :root{ } 里面的代码,你放在 :root{ } 里面 第一行或者最后一行就好.
    2. 自定义的部分放在 :root 外面. 直接拉到 theme.css 文件底部然后复制进去
    3. daylight 是思源的默认主题,每次打开软件都会重置,不要再 daylight 上面修改. 具体方法参见上面的回复
  • 查看全部回帖

推荐标签 标签

  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 2 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 715 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 535 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖 • 1 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    179 引用 • 407 回帖 • 491 关注
  • 创业

    你比 99% 的人都优秀么?

    85 引用 • 1399 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 76 关注
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖
  • Windows

    Microsoft Windows 是美国微软公司研发的一套操作系统,它问世于 1985 年,起初仅仅是 Microsoft-DOS 模拟环境,后续的系统版本由于微软不断的更新升级,不但易用,也慢慢的成为家家户户人们最喜爱的操作系统。

    223 引用 • 474 回帖
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 653 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 626 关注
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1435 引用 • 10056 回帖 • 488 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 410 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 790 关注
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 242 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    27 引用 • 225 回帖 • 162 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    313 引用 • 547 回帖
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    409 引用 • 1246 回帖 • 587 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 478 关注
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    78 引用 • 391 回帖 • 1 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 353 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    6 引用 • 14 回帖
  • RabbitMQ

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

    49 引用 • 60 回帖 • 361 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖