Typora自动编号的具体操作

概述

在使用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自动编号的文章就介绍到这了,更多相关Typora自动编号内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • IDEA中使用Typora编辑md文件的方法

    1.本文要解决的问题 使用typora打开项目中的md文件 2.预期效果 选中文件,按下alt+t,调用typora打开此md文件 3.IDEA配置 配置完成后,当我们右击某文件时,会多出一个External Tool项,此时可以选择使用第三方程序打开 4.添加快捷键 总结 到此这篇关于IDEA中使用Typora编辑md文件的文章就介绍到这了,更多相关Typora编辑md文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • Typora+PicGo+GitHub实现md自带图床效果

    1 GitHub创建作为图床的仓库 1.1 在GitHub中创建一个仓库 注意仓库要是public的,不然上传的图片还是无法使用的.如果不知道怎么创建仓库,可以百度一下. 1.2 在GitHub生成一个token 这个token是给PicGo使用的 页面拉到最下有一个绿色的Generate token按钮,按一下就会生成token. 将生成的token复制下来,给PicGo使用. 注意:生成的token最好保存到本地,因为下次再进GitHub的时候,这个token就不再显示了. 2 PicGo客

  • Typora自动编号的具体操作

    概述 在使用Typora写比较长的文章时,需要给章节编号,方便区分层次.如果手动编号,一旦章节顺序改变,很多章节的编号都需要一一手动修改,极其麻烦. Typora官方提供了自动编号的方法:https://support.typora.io/Auto-Numbering/.本文将对官方提供的方法,以及简单改进进行介绍. 原理 这个方法的原理是,Typora基于浏览器开发(使用快捷键Shift+F12可以打开开发者工具).因此,可以利用CSS实现自动编号. 具体操作 打开Typora -> 文件 -

  • SQL server 2005中设置自动编号字段的方法

    如果希望重新定义在表中添加新记录时该列中自动生成并存储于列中的序列号,则可以更改该列的标识属性.在每个表中只能设置一个列的标识属性. 具有标识属性的列包含系统生成的连续值,该值唯一地标识表中的每一行(例如,雇员标识号).在包含标识列的表中插入值时,Microsoft SQL Server 将基于上一次使用的标识值(标识种子属性)和在创建列时指定的增量值(标识增量属性)自动生成下一个标识符. 注意: 只能为不允许空值且数据类型为 decimal.int.numeric.smallint.bigin

  • ACCESS数据库修改自动编号的ID值为零的方法分享

    我们在开发软件,或者网站制作时候,经常用ACCESS MDB数据库进行调试,很多自动编号的数据都删除了,最后ID很大,或者不连贯.针对ACCESS数据库,有时候因删除内容导致ID跳号,或者其他原因,想修改自动编号的ID,怎么操作呢?让我们一步一步对ACCESS数据库ID进行归零,修改自动编号的ID值,再重新自动编号. 以下是我的修改方法,是可行的,与大家分享一下:(操作之前,一定要备份数据库,防止意外发生,呵呵) 1.备份ACCESS数据库(这个是必须的) 2.打开数据库,右键点击要修改ID值的

  • 八步解决ACCESS自动编号问题(将SQL SERVER 2000数据库,转换为ACCESS数据库)

    第一步:打开你的"开始菜单",打开"程序"->SQL server enterprise mananger "企业管理器" 在你要导出的SQL数据库上鼠标右键菜单:所有任务->导出数据 第二步:会出现一个导出向导窗口.选择被导出的数据源,为你刚才所选择的数据库,如果发现不对应自行修改. 第三步:进入导出到目标数据源的选择,这里我们要转成ACCESS的数据库.注意选择数据源类型为"Microsoft Access.点 &quo

  • sqlserver 触发器学习(实现自动编号)

    总结常用基本点如下: 1.触发器有两种类型:数据定义语言触发器(DDL触发器)和数据操纵语言触发器(DML触发器). DDL触发器:在用户对数据库执行数据定义(CREATE.ALTER.DROP或相似的语句)对数据库结构进行修改时激活而做出响应. DML触发器:在用户对数据库执行数据操作时发生,触发器中的代码会被自动调用. 2.DML触发器分类:Insert触发器.Delete触发器.Update触发器.上面任意类型混合. 3.触发器创建语法: 复制代码 代码如下: CREATE TRIGGER

  • php新建文件自动编号的思路与实现

    要求:在系统中 在新建文件是可以实现自动编号.比如新建文本文件 默认文件名是:新建 文本文档.txt,如果继续新建时文件名自动变了:新建 文本文档 (2).txt, 以后就是 3,4,5-.请问这种算法用PHP怎么实现. 思路,原来想用循环来做,后来想想,用计数器递增吧,简单高效,这个TME可以是数据库,可以文件,可以是配置文件,看你怎么做了,循环只是在维护的时候使用的,如果每建一个新文件也得循环一次,那得累死,缓存无处不在 复制代码 代码如下: <?php $dir="/web/csp/

  • Flex DataGrid自动编号示例

    复制代码 代码如下: <mx:DataGridColumn headerText="序号" labelFunction="lfRowNum" /> 复制代码 代码如下: //dg自动编号 private function lfRowNum(oItem:Object,iCol:int):String { var iIndex:int = statistidgCla.dataProvider.getItemIndex(oItem) + 1; return S

  • SQLite中重置自动编号列的方法

    目前流行的数据库都提供了自动编号类型,SQLite也不例外.当数据库中包含自动编号的字段时,SQLite会自动建立一个名为 sqlite_sequence 的表.这个表包含两个字段:name 和 seq .name字段记录了自动编号字段所在的表,seq字段记录了当前用到的序号(下一条记录的编号就是当前序号加1). 在开发过程中,我们经常要把表重置.也就是说把表中的记录全部清空,并把自动编号归0.在SQLite中,只需要修改 sqlite_sequence 表就可以了: 复制代码 代码如下: UP

  • 如何让access自动编号从1开始排序实现方法

    方法一: 删个那个自动编号的字段,再建一个同样的自动编号字段即可. 方法二: 自动编号是一直增加的(每次都加1),你再增加一条记录它的编号会在前面的基础上加1(删除的也算),如果你编号为1的记录被删除了,你想再要从1开始,可以打开Access数据库,选择工具,再选择数据库实用工具,单击压缩和修复数据库,这样就OK了. 方法三:(没试过) 1.在access里新建一个查询. 2.把视图改为sql视图. 3.在里面输入 ALTER TABLE 表名 ALTER COLUMN [自动编号字段名] CO

  • 在MsSql、Access两种数据库中插入记录后马上得到自动编号的ID值

    本编文章将要介绍重点解释如何在Ms Sql Server中更新或添加一条记录后立即得到其标识列的值,这个值在ACCESS就是我们熟知的自动编号的 ID值,好了,闲话不多说,代码我也不多写,只写关键些,相信各位高手一看就明白,呵呵.后面也附带了在ACCESS中获取的方法,虽然在ACCESS 中获取自动编号的文章网上虽然很多,但放在此做为一个总结吧. Set testRs=Server.CreateObject("ADODB.RecordSet") '创建要测试的对象 testRs.Ope

随机推荐