Typora自动编号的具体操作

作者:xnightmare 时间:2022-01-21 03:20:18 

概述

在使用Typora写比较长的文章时,需要给章节编号,方便区分层次。如果手动编号,一旦章节顺序改变,很多章节的编号都需要一一手动修改,极其麻烦。

Typora官方提供了自动编号的方法:https://support.typora.io/Auto-Numbering/。本文将对官方提供的方法,以及简单改进进行介绍。

原理

这个方法的原理是,Typora基于浏览器开发(使用快捷键Shift+F12可以打开开发者工具)。因此,可以利用CSS实现自动编号。

具体操作

  • 打开Typora -> 文件 -> 偏好设置 -> 外观 -> 打开主题文件夹。

  • 在主题文件夹下新建文件base.user.css

  • 将https://support.typora.io/Auto-Numbering/中提供的三份代码(分别实现文章内容自动编号、TOC自动编号、侧边栏大纲自动编号)复制到base.user.css中。

  • 重启Typora。

改进

官方提供的代码会对一级标题进行编号,但实际写文章时,一级标题往往是文章标题,无需编号,因此,我对代码进行了简单修改。下面是修改后的代码

文章内容自动编号:


/** initialize css counter */
h1 {
   counter-reset: h2
}

h2 {
   counter-reset: h3
}

h3 {
   counter-reset: h4
}

h4 {
   counter-reset: h5
}

h5 {
   counter-reset: h6
}

/** put counter result into headings */
#write h2:before {
   counter-increment: h2;
   content: counter(h2) ". "
}

#write h3:before,
h3.md-focus.md-heading:before /** override the default style for focused headings */ {
   counter-increment: h3;
   content: counter(h2) "." counter(h3) ". "
}

#write h4:before,
h4.md-focus.md-heading:before {
   counter-increment: h4;
   content: counter(h2) "." counter(h3) "." counter(h4) ". "
}

#write h5:before,
h5.md-focus.md-heading:before {
   counter-increment: h5;
   content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". "
}

#write h6:before,
h6.md-focus.md-heading:before {
   counter-increment: h6;
   content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". "
}

/** override the default style for focused headings */
#write>h3.md-focus:before,
#write>h4.md-focus:before,
#write>h5.md-focus:before,
#write>h6.md-focus:before,
h3.md-focus:before,
h4.md-focus:before,
h5.md-focus:before,
h6.md-focus:before {
   color: inherit;
   border: inherit;
   border-radius: inherit;
   position: inherit;
   left:initial;
   float: none;
   top:initial;
   font-size: inherit;
   padding-left: inherit;
   padding-right: inherit;
   vertical-align: inherit;
   font-weight: inherit;
   line-height: inherit;
}

TOC自动编号:


/* No link underlines in TOC */
.md-toc-inner {
   text-decoration: none;
}

.md-toc-h1 {
   margin-left: 0;
   font-size: 1.5rem;
   counter-reset: h2toc
}

.md-toc-h2 {
   font-size: 1.1rem;
   margin-left: 2rem;
   counter-reset: h3toc
}

.md-toc-h3 {
   margin-left: 3rem;
   font-size: .9rem;
   counter-reset: h4toc
}

.md-toc-h4 {
   margin-left: 4rem;
   font-size: .85rem;
   counter-reset: h5toc
}

.md-toc-h5 {
   margin-left: 5rem;
   font-size: .8rem;
   counter-reset: h6toc
}

.md-toc-h6 {
   margin-left: 6rem;
   font-size: .75rem;
}

.md-toc-h2:before {
   color: black;
   counter-increment: h2toc;
   content: counter(h2toc) ". "
}

.md-toc-h2 .md-toc-inner {
   margin-left: 0;
}

.md-toc-h3:before {
   color: black;
   counter-increment: h3toc;
   content: counter(h2toc) ". " counter(h3toc) ". "
}

.md-toc-h3 .md-toc-inner {
   margin-left: 0;
}

.md-toc-h4:before {
   color: black;
   counter-increment: h4toc;
   content: counter(h2toc) ". " counter(h3toc) ". " counter(h4toc) ". "
}

.md-toc-h4 .md-toc-inner {
   margin-left: 0;
}

.md-toc-h5:before {
   color: black;
   counter-increment: h5toc;
   content: counter(h2toc) ". " counter(h3toc) ". " counter(h4toc) ". " counter(h5toc) ". "
}

.md-toc-h5 .md-toc-inner {
   margin-left: 0;
}

.md-toc-h6:before {
   color: black;
   counter-increment: h6toc;
   content: counter(h2toc) ". " counter(h3toc) ". " counter(h4toc) ". " counter(h5toc) ". " counter(h6toc) ". "
}

.md-toc-h6 .md-toc-inner {
   margin-left: 0;
}

侧边栏大纲自动编号:


.outline-h1 {
   counter-reset: h2
}

.outline-h2 {
   counter-reset: h3
}

.outline-h3 {
   counter-reset: h4
}

.outline-h4 {
   counter-reset: h5
}

.outline-h5 {
   counter-reset: h6
}

.outline-h2>.outline-item>.outline-label:before {
   counter-increment: h2;
   content: counter(h2) ". "
}

.outline-h3>.outline-item>.outline-label:before {
   counter-increment: h3;
   content: counter(h2) "." counter(h3) ". "
}

.outline-h4>.outline-item>.outline-label:before {
   counter-increment: h4;
   content: counter(h2) "." counter(h3) "." counter(h4) ". "
}

.outline-h5>.outline-item>.outline-label:before {
   counter-increment: h5;
   content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) ". "
}

.outline-h6>.outline-item>.outline-label:before {
   counter-increment: h6;
   content: counter(h2) "." counter(h3) "." counter(h4) "." counter(h5) "." counter(h6) ". "
}

效果图

Typora自动编号的具体操作

来源:https://blog.csdn.net/xnightmare/article/details/119854519

标签:Typora,自动编号
0
投稿

猜你喜欢

  • Python实现统计图像连通域的示例详解

    2022-12-05 09:13:05
  • Python实现读取文件最后n行的方法

    2023-08-02 10:33:32
  • 好友列表利用率越高,社区越失败

    2008-04-10 12:22:00
  • python import模块时有错误红线的原因

    2021-03-19 13:59:30
  • 几行代码让 Python 函数执行快 30 倍

    2021-06-22 14:52:23
  • Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

    2021-12-14 16:37:30
  • Python+SimpleRNN实现股票预测详解

    2022-12-04 13:08:26
  • 古老的问题:清除浮动

    2009-02-12 11:21:00
  • python修改list中所有元素类型的三种方法

    2023-10-02 15:26:29
  • javascript 文章截取部分无损html显示实现代码

    2024-04-19 09:57:11
  • Python Django框架单元测试之文件上传测试示例

    2022-02-26 23:50:51
  • MySQL中InnoDB和MyISAM类型的差别

    2008-11-05 13:32:00
  • MySQL数据库通过Binlog恢复数据的详细步骤

    2024-01-16 12:32:21
  • PHP单例模式简单用法示例

    2023-11-18 19:45:41
  • 如何利用Python实现简易的音频播放器

    2022-07-16 11:47:32
  • Python中OpenCV图像特征和harris角点检测

    2023-08-04 22:32:56
  • python遍历文件夹下所有excel文件

    2023-10-26 17:57:12
  • PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定

    2024-06-05 15:42:03
  • MySQL中按照多字段排序及问题解决

    2024-01-22 02:31:47
  • 如何通过Java监听MySQL数据的变化

    2024-01-26 16:05:22
  • asp之家 网络编程 m.aspxhome.com