BookxNote的基础概念:

文件夹:用户设置,用于存放不同的笔记本或者文件夹。管理方式同传统的文件夹管理
笔记本:用于存放笔记,其中可以有多本书籍,
书籍:导入的PDF或Epub
笔记链接:笔记链接只能两两链接
笔记ID:笔记本内笔记序号(合并、拆分后会重置)
笔记uuid:笔记全局唯一标记
位置参数:位置参数x,y是根据 “rect” 列表计算的,y 应该是 (y0 + y1+ 15) / 2。(x 是矩形选框中心位置)
floatingtheme:脑图、大纲中的自由主题。(可以将笔记导入到这里,或者 markups 后)
position:在脑图中的位置,以书名目录为坐标原点
摘录内容标题、引文、笔记对应BookxNote位置:
image.png
image.png

外链解析:

示例:
bookxnotepro://opennote/?nb={f99de204-f6b0-4b62-be55-6963058e1fd3}&book=07c859b1e22479b4bace708e3b432515&page=77&x=302&y=552&id=40
bookxnotepro://opennote/
BookxNote 协议前缀
?nb={f99de204-f6b0-4b62-be55-6963058e1fd3}
笔记本 ID,在 note\notebooks\manifest.json 中(用于定位笔记本)
&book=07c859b1e22479b4bace708e3b432515
书籍 UUID,在 note\notebooks\书名\manifest.json 中(全局唯一标记)
&page=77
页码,在 note\notebooks\书名\markups.json 中,和笔记内容在一起
&x=302&y=552
跳转后位置定位
&id=40
根据笔记创建时间排序,这是第 40 条笔记

BookxNote的Note文件夹及文件功能

bookmarks:

存放所有书签信息

notebooks

存放所有笔记本信息

书名文件夹:

其实是“笔记本”,保存书籍相关的所有笔记
handwrite:存放手写笔记,其中笔记数据用json格式存储
imgfiles:存放图片,选框工具框选的图片保存在这里
markdown:存放markdown笔记,每条markdown笔记都可以直接导入其他笔记软件
resources:存放书籍资源文件,如保存到笔记本里的PDF、书籍封面等
manifest.json:存放本书的基本信息

  1. {
  2. "res": [
  3. {
  4. "autoopen": false, # 是否为自动加载
  5. "ftype": 0,
  6. "id": 0, # 在笔记本中的排序,如果有多个按顺序递增
  7. "name": "blank.pdf", # PDF的名称
  8. "refhash": "1081cff1e99de3f989a6b6f546075721", # 文件哈希值
  9. "refpath": "", # 文件在本地保存位置
  10. "uuid": "09c783da36eb9b1f5cfa41f1b8733081" # 书籍uuid
  11. }
  12. ],
  13. "resid": 1,
  14. "version": 1
  15. }

recentfile.json:存放笔记本最近使用文件

  1. [
  2. {
  3. "~docid": 0,
  4. "~entry": "",
  5. "~mod": "",
  6. "~view": [
  7. 80,
  8. 1,
  9. 150,
  10. -92.33333333333333,
  11. 366.3333333333333,
  12. false,
  13. 0,
  14. false,
  15. 0,
  16. false,
  17. false,
  18. false,
  19. "000000ff0000000100000001000001000100000001000000000101"
  20. ]
  21. }
  22. ]

markups.json:笔记信息
图片PDF

  1. {
  2. "EpubVersion": 2,
  3. "filepath": "",
  4. "floatingtheme": [ # 浮动主题(在脑图中不在思维导图上的悬浮块,在大纲中不在书籍列表下的独立项)
  5. {
  6. "content": "可以输入批注,可以导入自己的笔记", # 笔记内容
  7. "date": "2022-05-02 23:05:33", # 笔记创建时间
  8. "id": 88, # 笔记ID
  9. "linecolor": "ff59c6ff", # 笔记标记颜色
  10. "page": -1, # 笔记所在页码(自由主题页码都为:-1
  11. "position": { # 笔记在脑图中的位置
  12. "x": 535,
  13. "y": 15765
  14. },
  15. "title": "卡片记录的注意点", # 笔记标题
  16. "type": 7, # 笔记类型:
  17. "uuid": "d3f6c22dbd2b6a6435712fba40d12bdf" # 笔记uuid
  18. }
  19. ],
  20. "folded": false,
  21. "markups": [ # 笔记标注内容(选项、高亮等都在这里)
  22. {
  23. "date": "2022-04-30 22:08:05", # 笔记创建时间
  24. "docid": 0, # 文档ID(多本书籍按导入顺序升序,单本书籍为 0
  25. "id": 1, # 笔记ID
  26. "imgfile": "bf586830f8048d23aa3e4cf559d78d54.png", # 框选的图片名称
  27. "linecolor": "ffa0ec6f", # 标记颜色
  28. "linewidth": 2, # 标记宽度
  29. "page": 25, # 笔记所在页码
  30. "position": { # 笔记在脑图中的位置
  31. "x": 198,
  32. "y": 892
  33. },
  34. "rect": [ # 笔记在书中的位置(选项为四个角的坐标,高亮为多行内容的四角坐标)
  35. 60.5,
  36. 420,
  37. 434,
  38. 596.5
  39. ],
  40. "title": "七曜", # 笔记标题
  41. "type": 2, # 笔记类型
  42. "uuid": "78dc9ec7c306f9aedeaefb0786d730f4" # 笔记uuid
  43. },
  44. {
  45. "date": "2022-04-30 22:08:27",
  46. "docid": 0,
  47. "folded": false,
  48. "id": 2,
  49. "imgfile": "848f1d7a162e21dfbd9884f5d828cf71.png",
  50. "linecolor": "ffa0ec6f",
  51. "linewidth": 2,
  52. "markups": [
  53. {
  54. "date": "2022-04-30 22:09:28",
  55. "docid": 0,
  56. "group": [ # 笔记组(合并笔记、多页高亮等笔记保存在组里)
  57. {
  58. "date": "2022-04-30 22:10:32",
  59. "docid": 0,
  60. "id": 17,
  61. "leftbottomcorner": [
  62. 64.5,
  63. 603.5
  64. ],
  65. "linecolor": "ffa0ec6f",
  66. "linewidth": 2,
  67. "page": 26,
  68. "rect": [
  69. 60.5,
  70. -200,
  71. 529,
  72. 603.5
  73. ],
  74. "rightbottomcorner": [
  75. 529,
  76. 603.5
  77. ],
  78. "topleftcorner": [
  79. 60.5,
  80. -200
  81. ],
  82. "toprightcorner": [
  83. 529,
  84. -189
  85. ],
  86. "type": 2,
  87. "uuid": "837a487102b71fbd128687b25145f712"
  88. }
  89. ],
  90. "id": 3,
  91. "imgfile": "d07b5c7e94c3126055869083b0ac0d43.png",
  92. "linecolor": "ffa0ec6f",
  93. "linewidth": 2,
  94. "page": 25,
  95. "rect": [
  96. 60.5,
  97. 647,
  98. 529,
  99. 1450.5
  100. ],
  101. "title": "“五纬”名字由来",
  102. "topleftcorner": [
  103. 60.5,
  104. 647
  105. ],
  106. "type": 2,
  107. "uuid": "9b9ff4ee49ccaddba3cebe1c1dd2e283"
  108. }
  109. ],
  110. "page": 25,
  111. "rect": [
  112. 61,
  113. 598.5,
  114. 434,
  115. 645.5
  116. ],
  117. "title": "五纬",
  118. "type": 2,
  119. "uuid": "a484a063ba9efc84cb431070546cd41c"
  120. }
  121. ],
  122. "maxid": 39, # 笔记总ID
  123. "notelinks": [ # 笔记间链接,用uuid表示
  124. {
  125. "date": "2022-05-03 17:11:02", # 链接创建时间
  126. "obj1": "94cd350f67bb181d9aea32e325c4fe9a", # 链接对象1
  127. "obj2": "7a1ad3f8b68815a2f2684095afbc399a", # 链接对象2
  128. "uuid": "a86ed48f6701b1a452d4eb2e31872010" #
  129. }
  130. ],
  131. "scalingratio": 70,
  132. "title": "中国古代文化常识图典",
  133. "unimportant": []
  134. }

文字PDF

  1. {
  2. "annotations": [ # 插入笔记
  3. {
  4. "content": "<body style=\" font-family:'Microsoft YaHei UI'; font-size:9pt; font-weight:400; font-style:normal;\">\n<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><a href=\"siyuan://blocks/20211108200459-y4cw3o0\"><span style=\" text-decoration: underline; color:#0000ff;\">思源笔记</span></a></p></body>",
  5. "style": 0 # 插入笔记为超链接
  6. },
  7. {
  8. "content": "文本",
  9. "style": 0 # 插入笔记为文本
  10. },
  11. {
  12. "content": "fd9c89c39c1ed115d5a01e5ad0faffe4.json",
  13. "style": 2 # 插入笔记为手绘
  14. },
  15. {
  16. "content": "0c8dbc78e2cdb6ef7341762a618f05ae.png",
  17. "style": 1 # 插入笔记为图片
  18. }
  19. ],
  20. "content":"" # 批注内容
  21. "date": "2022-02-06 12:45:19", # 笔记创建时间
  22. "docid": 0,
  23. "fillcolor": "ffffed99", # 标记高亮的颜色
  24. "id": 39, # 笔记ID,具有唯一性
  25. "originaltext": "大多数学生做文献笔记的方式则不是这样,他们做的笔记要么不够系统,要么过于系统。其实,大多数情况下,只是他们组织笔记的方式不对。很多同学经常被推荐使用如SQ3R或SQ4R的阅读技巧,然后他们就不管内容怎样,都采用相同的方式对待每一篇文本,而没有细想过该采用怎样的格式和组织方式记笔记更好,更没有想过以后如何处理这些笔记。",
  26. # 笔记引文(可在原文的基础上修改:F2
  27. "page": 93, # 笔记页码
  28. "textblocks": [
  29. {
  30. "first": [
  31. 106.99220275878906,
  32. 316.359375,
  33. 15,
  34. 15
  35. ],
  36. "last": [
  37. 166.99220275878906,
  38. 436.359375,
  39. 15,
  40. 15
  41. ],
  42. "length": 164,
  43. "rects": [ # 引用内容矩形(框选:x0, y0, x1, y1; x0 + x1 = 2x; y0 + y1 = 2y
  44. [
  45. 106.99220275878906,
  46. 316.359375,
  47. 420.00004577636719,
  48. 15
  49. ],
  50. [
  51. 76.992195129394531,
  52. 340.359375,
  53. 450.00005340576172,
  54. 15
  55. ],
  56. [
  57. 76.992195129394531,
  58. 364.359375,
  59. 450.00005340576172,
  60. 15
  61. ],
  62. [
  63. 76.992195129394531,
  64. 388.359375,
  65. 450.00005340576172,
  66. 15
  67. ],
  68. [
  69. 76.992195129394531,
  70. 412.359375,
  71. 450.00005340576172,
  72. 15
  73. ],
  74. [
  75. 76.992195129394531,
  76. 436.359375,
  77. 105.00000762939453,
  78. 15
  79. ]
  80. ],
  81. "start": 308,
  82. "text": "大多数学生做文献笔记的方式则不是这样,他们做的笔记要么不\n够系统,要么过于系统。其实,大多数情况下,只是他们组织笔记的\n方式不对。很多同学经常被推荐使用如SQ3R或SQ4R的阅读技巧,然后\n他们就不管内容怎样,都采用相同的方式对待每一篇文本,而没有细\n想过该采用怎样的格式和组织方式记笔记更好,更没有想过以后如何\n处理这些笔记。"
  83. # 笔记原文
  84. }
  85. ],
  86. "type": 5 # 数据类型:书籍(0:文件夹,1:书籍)
  87. # 数据类型:笔记(1:荧光笔、直线2:矩形选框,3:圆形选框,5:高亮、下划线,9:文本框,11:打字机)
  88. }

manifest.json:

保存文件夹和笔记本的层级结构,其中文件夹可以和笔记本同级。

  1. {
  2. "notebooks": [
  3. {
  4. "creation": "2022-04-30 21:02:25",
  5. "id": "{5e356d9c-6fe6-4dd8-b195-f7607c5c4c62}",
  6. "name": "PKM",
  7. "notebooks": [
  8. {
  9. "cover": "cover.png",
  10. "creation": "2022-04-30 21:01:52",
  11. "entry": "智识的生产技术",
  12. "id": "{331bc823-f051-4cef-9322-609aa9bdb774}",
  13. "name": "智识的生产技术",
  14. "type": 0
  15. }
  16. ],
  17. "type": 1
  18. },
  19. {
  20. "creation": "2022-04-30 21:11:22",
  21. "id": "{118b1aba-a668-4a90-9c07-cb4dfa3d2d9d}",
  22. "name": "计算机科学",
  23. "notebooks": [
  24. {
  25. "creation": "2022-04-30 21:11:34",
  26. "id": "{901a6466-e8a2-4174-aa91-210533e81758}",
  27. "name": "正则",
  28. "notebooks": [
  29. {
  30. "cover": "cover.png",
  31. "creation": "2022-04-30 21:11:41",
  32. "entry": "精通正则表达式",
  33. "id": "{da4be8b7-b255-4889-af89-3e9ba154c3f4}",
  34. "name": "精通正则表达式",
  35. "type": 0
  36. }
  37. ],
  38. "type": 1
  39. }
  40. ],
  41. "type": 1
  42. }
  43. ],
  44. "version": 2
  45. }

recentnotes.json:记录最近使用的笔记本
user_config.json:保存用户设置的快捷键

合并、拆分的变与不变:

合并多个笔记本

变化内容:

  1. ID 重新分配
  2. docid 按导入顺序排列
  3. ?nb={……}会变,变成新笔记本的ID

不变内容:

  1. 合并后uuid不变
  2. 合并后&book=……不变,还是那本书的ID
  3. 合并后笔记内容不变(title、date、page、rect、imgfile)
  4. 部分参数不变(linewidth、type、linecolor)

    拆分笔记为新笔记本

    变化内容:

  5. ID 重新分配

  6. ?nb={……}会变,变成新笔记本的ID

不变内容:

  1. 拆分后 uuid 不变
  2. 拆分后&book=……不变,还是那本书的ID
  3. 拆分后笔记内容不变(title、date、page、rect、imgfile)
  4. 部分参数不变(linewidth、type、linecolor)
  5. docid都为0(一个笔记本只有一本书)