Obsidian 样式:编辑模式代码块显示行号

Obsidian 样式:编辑模式代码块显示行号

引言

Obsidian 作为 md 文档编辑器,写代码块本来就不是强项,无法跟专业的代码编辑相比,比如代码块无法显示行号。本文通过 css 的方法实现在编辑模式下显示代码行号 ,但因为受限于 Obsidian 的渲染机制,如果代码长度超过一屏幕,代码行号会被重置,也算一个瑕疵。

效果

Obsidian 样式:编辑模式代码块显示行号--效果

代码片段

具体代码片段如何使用参考 Obsidian css代码片段

.HyperMD-codeblock-begin {
  counter-reset: line-numbers;
}

.HyperMD-codeblock.cm-line:not(.HyperMD-codeblock-begin):not(.HyperMD-codeblock-end) {
  padding-left: 3em;
  position: relative;
}

.HyperMD-codeblock.cm-line:not(.HyperMD-codeblock-begin):not(.HyperMD-codeblock-end)::after {
  align-items: flex-start;
  color: var(--text-faint);
  content: counter(line-numbers);
  counter-increment: line-numbers;
  display: flex;
  font-size: 0.8em;
  height: 100%;
  justify-content: flex-end;
  left: 0;
  position: absolute;
  text-align: right;
  width: 2em;
  padding-right: 0.5em;
  bottom: -2px;
  border-right: 1px solid var(--scrollbar-thumb-bg);
 white-space: nowrap;
}

.HyperMD-codeblock.cm-line.cm-active:not(.HyperMD-codeblock-begin):not(.HyperMD-codeblock-end)::after {
  color: var(--color-accent);
}

.HyperMD-codeblock .cm-foldPlaceholder::before {
  display: none;
}

延伸阅读

上述代码只局限于编辑模式下显示代码块行号,如果想在阅读模式下也显示行号,就需要借助专业的插件实现了。

比如 10-Obsidian/Obsidian社区插件/obsidian-better-codeblock

讨论

若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。



反馈交流

其他渠道

版权声明