关于代码块的小增强

本贴最后更新于 756 天前,其中的信息可能已经时异事殊

先感谢,再提问!😄

目前来说,代码块的拓展性稍偏弱了一点,可否实现/改进代码块额外功能?

1.希望能实现代码块内容可以自定义颜色和链接、标注等(刚需)

2.目前复制代码进代码块的时候会产生某几行缩进不正确的情况,已经尝试过设置缩进数量,最后还是选择了默认值。而且使用 shift+tab 时,即便使用了默认值,会由于和设置的 tab 空格数不成倍数而导致无法取消缩进(已经全选的状态下,不全选是无法缩进的)。目标代码是通过 eslint+prettier 格式化的。

  • 思源笔记

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

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

    20163 引用 • 77779 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
    1. 实现不了
    2. 粘贴时不会替换 Tab 为空格
    2 回复
  • a1751504

    我觉得至少应该可以自定义剪切板中的 tab 对应的空格数量吧。

    而且,我设置为 2 个空格,就没法 shift+tab 取消默认的 tab,想把默认的 4 空格 tab 转换成两个空格的 tab,有以下两种办法:

    1.选中所有粘贴过来的,shift+tab,然后,去设置里设置成 2 个空格,全选,tab

    2.手动每一行删除默认 tab,再加上 tab

    我想,这两种方案都不方便吧

    1 操作
    a1751504 在 2022-07-31 19:04:24 更新了该回帖
  • a1751504

    另外,我觉得可以这样:

    shift+tab 取消缩进的时候不要在乎空格是 2 个还是 4 个,一次性取消一个 tab,这样可以吗

    @88250

    1 回复
  • 现在应该就是这样,Tab 会取消,但是不会将空格转换为 Tab。

    建议代码编辑还是在 IDE 里进行,编辑好以后一次性粘贴到思源的代码块中。

    2 回复
  • a1751504

    我在 vscode 中一直使用的都是 2 个空格的 tab,但是粘贴过来以后并没有标准的格式化,有时是两个空格的 tab,有时是 4 个(90% 都是 4 个,我也不明白它是基于什么原理区分的),所以才会产生我之前提到的困扰

    @88250

    而且,现在如果是 4 个空格的 tab,而设置里自己设置了两个空格的话,是无法 shift+tab 取消缩进的

    希望能优化一下,十分感谢

  • a1751504

    我觉得我的表述还是不够清楚

    我将思源的 tab 空格数设置为 2 个的情况下,将 IDE 中的代码(也是两个空格的 tab)复制到思源里,却是 4 个空格的,我认为这是个 bug

    困扰我很久了这个问题

    @88250

    这是 IDE
    9KSICWLWVOYDH34V7F.png

    这是思源
    TDKP939OTHHYGPRTB.png

    1 回复
  • 思源不会将剪切板中的 Tab 替换为空格,所以 Tab 是按照 8 个空格的宽度显示。

    1 回复
  • a1751504

    我的诉求只是解决这个风格问题,我也明白你说的 tab 不会转换为空格的意思

    我不清楚这样设计是出于某些考量,并且不会"修复"我说的这个问题,还是当前这个问题不紧急但是以后某天会修复,望解答

    @88250

  • a1751504

    如果后来人也遇到这个问题,刚刚发现了一个办法,将 IDE 的缩进切换为空格缩进,不要使用 tab 缩进。在粘贴的时候就可以完全自定义空格数量了。

    1 回复
  • 基本是这样,统一使用空格的话就没有这个问题了。

    如果要用 Tab,可以用自定义 CSS tab-size 来设置代码块中的空格数,目前暂时不考虑作为内置选项设置。

    1 回复
  • a1751504

    OK,既然有解决办法那就没问题了,感谢 😄

  • a1751504

    已暂时解决,以下两个方法都会有劣势,自行斟酌

    方法 1: 将思源的 tab 空格数设置为 2,再在主题的代码中将代码块的 tab-size 设置为 2(但是每次更新主题都需要重新设定)

    方法 2: 将自己代码编辑的 IDE 的缩进切换为空格模式 (不过还是有小概率出问题)

请输入回帖内容 ...

推荐标签 标签

  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 60 回帖 • 464 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖 • 1 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3169 引用 • 8208 回帖
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 19 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 113 回帖 • 276 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 7 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 519 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    207 引用 • 358 回帖
  • Q&A

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

    7023 引用 • 31746 回帖 • 219 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 647 关注
  • Solo

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

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

    1427 引用 • 10046 回帖 • 474 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 224 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 53 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖 • 5 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    281 引用 • 716 回帖
  • 自由行
    1 关注
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1083 引用 • 3461 回帖 • 257 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 606 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 40 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 3 关注
  • BAE

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

    19 引用 • 75 回帖 • 616 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    329 引用 • 1715 回帖 • 4 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 379 关注
  • 996
    13 引用 • 200 回帖 • 6 关注
  • 安全

    安全永远都不是一个小问题。

    191 引用 • 813 回帖 • 1 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖 • 1 关注