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

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

我的会员推广码(vfW6RGB )


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

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

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


更新:

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

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

  • 思源笔记

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

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

    25910 引用 • 107391 回帖 • 1 关注
  • Q&A

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

    9948 引用 • 45191 回帖 • 77 关注

相关帖子

被采纳的回答
    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

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 目前只能通过自定义 CSS 实现,导出的话还不行。

    请关注 Issue #522 · siyuan-note/siyuan 如果后面要做的话会重开,谢谢。

    1 回复
  • buzzingbee
    作者

    感谢关注,我从这个论坛没有搜索出来。希望早日有人提供相关插件或自定义方法,我自己是不会的。

  • 1 操作
    crowds21 在 2021-09-06 19:05:49 更新了该回帖
  • :root{ /*打开theme.css第一个就是这个 root*/ counter-reset:counter_h1; } /****************************************自定义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 } [data-subtype=h2][data-node-id].h2 [contenteditable][spellcheck]::before{ content: counter(counter_h1)"."counter(counter_h2)" "; }

    image.png

    1 回复
  • buzzingbee
    作者

    非常感谢提供代码,但我居然看着你的答案没搞定。

    首先,我尝试修改工作空间的 theme.css, 不起作用,原因应该是每次启动时,该 theme.css 文件会被另一个原版的 theme.css 替代;

    然后,我修改安装目录中 theme.css,启动思源后,该文件的确被复制到了工作空间,但是仍然不起作用;

    所以我认为,应该是我修改 theme.css 的方法不正确。请问:

    1. 你给的所有代码是做为一个整体复制并粘贴到 theme.css 中的某一行中去吗?放在哪一行不容易出错?
    2. 看到你的代码的自定义部分是写在 :root{} 的定义之外的,是不是我要把这一部分放在 root{} 之外呢? 我试过了,也没起作用

    感谢!

    3 回复
    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 上面修改. 具体方法参见上面的回复
  • 想要 h1 开始计数,就把 h2 全改成 h1

    想要 h4 也有次级标题,就把 h3 的复制一遍,并改成 h4. 同时自定义部分,第一个 h3 参考一下 h2 添加一下 counter-reset: counter_h3

    再往下同理.

  • buzzingbee
    作者

    非常详细,这次搞定了!谢谢!

  • 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 回复
  • tenstu

    楼主你好,你提到的注销生效是指电脑系统注销吗?还是思源账户退出登录,两者我都试了,还是不能生效,请问你是怎么生效的?

    1 回复
    1 操作
    tenstu 在 2021-09-30 16:13:42 更新了该回帖
  • buzzingbee
    作者

    注销系统

  • crowds21 1 评论

    image.png

    1 回复
    少了一个方括号
    crowds21
  • tenstu

    😭 可以了,谢谢大佬,居然是这个地方错了,因为先前设置两级的时候成功了,以为代码就不会出问题了,还是没检查到位啊

  • ttChen

    标题编号 - 动作信息 - Quicker (getquicker.net)

    解决了通过 CSS 编号导致后续笔记导出时出现编号消失的问题;

    解决了 H1 标题不存在时,出现标题 0.1、0.01 等错误编号问题

    1 回复
  • Nefelibata

    能否开发一个思源内部的挂件?实在不想因为一个功能再装一个软件,还要注册

  • dongjl

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

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

请输入回帖内容 ...

推荐标签 标签

  • Excel
    31 引用 • 28 回帖
  • Word
    13 引用 • 41 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 404 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    198 引用 • 543 回帖
  • 快应用

    快应用 是基于手机硬件平台的新型应用形态;标准是由主流手机厂商组成的快应用联盟联合制定;快应用标准的诞生将在研发接口、能力接入、开发者服务等层面建设标准平台;以平台化的生态模式对个人开发者和企业开发者全品类开放。

    15 引用 • 127 回帖
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 395 关注
  • jsoup

    jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址、HTML 文本内容。它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出和操作数据。

    6 引用 • 1 回帖 • 490 关注
  • gRpc
    11 引用 • 9 回帖 • 99 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 677 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    730 引用 • 1281 回帖 • 3 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 34 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 538 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 5 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    171 引用 • 1537 回帖
  • Hibernate

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

    39 引用 • 103 回帖 • 728 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    499 引用 • 1395 回帖 • 245 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 795 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 3 关注
  • 周末

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

    14 引用 • 297 回帖
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 118 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 257 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 157 关注
  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖 • 1 关注
  • frp

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

    17 引用 • 7 回帖 • 4 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 3 关注
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    118 引用 • 54 回帖 • 2 关注