000 从零开始的 mini-vlook: WIP 起航!

[!Example]+ 属性

  • 版本 v0.0.1-alpha+20240826

你还在为找不到心意的插件而烦恼吗?你还在为大佬更新过慢而困扰吗?你还在因为不同主题的特色功能而反复切换或者取舍不定吗?—— 少年!来吧,求人不如求自己,让我们一起从零开启插件和主题的“深度自定义”之旅吧!

跟着我走,你能学习到如何从零开始开发主题和插件,甚至你能学习到如何管理自己的项目和任务,组织自己的知识和笔记。

我不会深入告诉你 CSS 盒子模型是怎么折磨人的,也不会告诉你复杂的 js 语法糖是怎么起作用的。因为我也不懂。我甚至不想教你如何正确规划自己的编程路线,因为 Github 上路线图真的比我的要全。

我只是把自己摸索和学习的过程分享给你——正如,2 年前,我一边在浏览器搜 “CSS 如何让文字居中”、“CSS 如何改变文字颜色”,一边东拼西凑起这个 bug 不断、又很小众审美的 mini-vlook 主题。

我折腾的最初动力就是—— 我想把 Typora 的 vlook 插件中的“小部分”功能,迁移到我的新笔记软件——思源笔记上。

我从魔改 Zhang Light 主题开始,到借鉴萌仙子的 Dark+ 的项目结构和启动脚本, 复制 Roy 和 Savor 的一个个有趣的功能项,加上一些自己的主观用途,又在折腾群群主老哥和各位大佬的帮助下,一个东拼西凑的主题就奇妙的跑起来。

出发点就是一个很私人的主题诞生了——一个上架就是为了蹭免费云端备份和同步的小小主题,居然也有了点小小的下载量。

搭台唱戏,台下哪怕没有一个人,也应该把戏唱完,何况还有这么多朋友也恰好和我有一样的喜好呢?

所以,我决定把现在 mini-vlook​ 主题拆分成 mini-vlook​ 主题和 mini-vlook-addin​ 插件两个项目(插件不依赖主题,拆分是为了解耦),并添加最近从其他插件和主题中学习到一些“新点子”到这次改进中。

写这个系列的原因,也是希望有人可以像我魔改 Zhang Light 主题一样,把我的主题改成更加符合自己脾气的主题。当然,如果也可以分享出来让社区的兄弟姐妹们参考,那也是极好的。

先画饼——啊呸,先放路线图,让各位看官们解解馋:

[!Tip]+ 提示信息:

下面的内容有些是现在有的,有些是有但是有 BUG,有些可能会被废弃,有些是要新增的功能,至于每个功能是做什么的,等开发到的时候再介绍吧。

  • mini-vlook

    • 整体布局(siyuan)

      • 顶部: 主菜单、同步、前进、后退、插件按钮、标题名、年付订阅、功能特性、插件、命令面板、全局搜索、外观切换、最小化、最大化、关闭
      • 左侧: 文档树、大纲、收集箱、书签、标签、插件面板
      • 右侧:关系图、全局关系图、反向链接
      • 底部:隐藏/停靠面板、同步提示信息、字符数/字数、帮助按钮
      • 其他窗口处理:设置页面、数据历史、闪卡、右键菜单、Tip 快捷菜单、下拉菜单、功能菜单 /​、模板、检索、PDF 标注
    • 内容块渲染:

      • 容器样式:段落、标题、列表块、引述块(引用块)、表格、行内代码块、数学公式块、嵌入块 {{SQL}}​、HTML 块、超级块、挂件、分隔线、IFrame、视频、音频、脑图、流程图、时序图、甘特图、类图、用户游历图、GIt 图、实体关系图、图表、五线谱、Graphviz、Flowchart、PlantUML
      • 文本样式:块引用、超链接、图片、下划线、粗体、斜体、删除线、高亮(标记)、上标、下标、行内代码、键盘、标签、行级公式、备注、前景颜色、背景颜色、虚拟引用
    • 额外增加的功能

      • 封面和封底theme=tm1...tm7

      • 自动编号f=bt

      • 文字竖排f=sp

      • 列表转表格f=bg

      • 列表转看板f=kb

      • 列表转看板(c)f=kbw

      • 分割线 + 列表转看板1-4个分割线

        • f=bc​ 启用旧版渲染模式,用 1、2、3 个分割线,分别渲染为 表格、看板和脑图
      • 列表转导图f=map

      • card 视图card card.img-top card.list

      • 链接前小图片

      • 多级标签渲染增强需要 JavaScript**RD

      • 显示 custom-f 属性

      • OneNote 左侧树状列表

      • 透明现代化的底部Dock

      • 封面和封底

      • 多主题切换需要 JavaScript**RD

    • 行内代码扩展(需要 JavaScript 辅助)【VLOOK13 语法】

      • 微章f=wz
      • 微章f=chk-wz
      • 注音f=pg
      • 刮刮卡f=rb
      • 彩虹引用f=bqcolor
      • 复选框f=chk扩展
      • 计数任务f=todo扩展
      • 下拉选择f=cx扩展
      • 分页引用f=bqtab扩展
      • 命令f=bqtab扩展
      • 列表仿 workflowy 注释f=ae扩展:
  • mini-vlook-addin

    • mini-vlook 主题设置按钮

    • 色号_~色号~_​ 【斜体 + 下标】

    • 标签* 内容 1 *​ 【斜体 + 行内代码】

    • 微章*标题 内容 1 内容2*_~色号~_​ 【斜体 + 行内代码】

      • 支持变量格式突出显示: {{变量}}%变量%${变量}#{变量}var(变量)​;
    • 进度条**==进度数值==**​ (0-100,可溢出)【粗体 + 高亮】

    • 面包屑*===面包屑内容=*​ 支持的分隔符: >/\▶︎​ 【斜体 + 高亮】

    • 注音拼音*^yin^*​ 【斜体 + 上标】

    • 刮刮卡*提示说明**被隐藏的内容***​ 【斜体 + 粗体】

    • 分栏引用非 mini-vlook 主题-生效

    • 列表看板非 mini-vlook 主题-生效

    • GitHub Style Alert

    • 明信片

    • 封面&封底非 mini-vlook 主题-生效

    • 多主题切换非 mini-vlook 主题-生效

    • 跨行进行文本渲染

    • 导出​: markdown​、pdf​、docx

    • 表格

      • 自动编号、添加题注
    • 图片

      • 自动编号、添加题注
      • 在高分屏下自动适配显示高清的版本(2x、3x)
      • 自动适配 Dark Mode
      • 让图标的颜色与周围的元素更搭更和谐
      • 为图片添加工程风的网格背景

  • 思源笔记

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

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

    23014 引用 • 92572 回帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 559 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 164 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • 友情链接

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

    24 引用 • 373 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 159 关注
  • Postman

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

    4 引用 • 3 回帖 • 7 关注
  • 电影

    这是一个不能说的秘密。

    121 引用 • 604 回帖 • 1 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 464 关注
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 535 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 161 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 15 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • NetBeans

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

    78 引用 • 102 回帖 • 683 关注
  • TextBundle

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

    1 引用 • 2 回帖 • 53 关注
  • 工具

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

    288 引用 • 734 回帖 • 2 关注
  • Unity

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

    25 引用 • 7 回帖 • 159 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 410 关注
  • Pipe

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

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

    132 引用 • 1114 回帖 • 125 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    76 引用 • 1737 回帖 • 1 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖 • 3 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 1 关注
  • 自由行
    4 关注
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    77 引用 • 430 回帖 • 1 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    171 引用 • 512 回帖