@linloir/limr 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +123 -0
  3. package/README.md +122 -2
  4. package/benchmarks/results/browser.json +237 -0
  5. package/benchmarks/results/node.json +75 -0
  6. package/benchmarks/results/selection.json +172 -0
  7. package/dist/THIRD_PARTY_LICENSES.txt +117 -0
  8. package/dist/base.css +454 -0
  9. package/dist/chunk-3ILUZKDB.js +3130 -0
  10. package/dist/chunk-3ILUZKDB.js.map +1 -0
  11. package/dist/chunk-6N6TFHEN.js +83 -0
  12. package/dist/chunk-6N6TFHEN.js.map +1 -0
  13. package/dist/chunk-N77VD2YR.js +1238 -0
  14. package/dist/chunk-N77VD2YR.js.map +1 -0
  15. package/dist/chunk-TTISGBST.js +478 -0
  16. package/dist/chunk-TTISGBST.js.map +1 -0
  17. package/dist/chunk-V2OG4Y3F.js +1 -0
  18. package/dist/chunk-V2OG4Y3F.js.map +1 -0
  19. package/dist/core/index.d.ts +57 -0
  20. package/dist/core/index.js +39 -0
  21. package/dist/core/index.js.map +1 -0
  22. package/dist/engine-43u8B4yt.d.ts +172 -0
  23. package/dist/extensions/index.d.ts +130 -0
  24. package/dist/extensions/index.js +50 -0
  25. package/dist/extensions/index.js.map +1 -0
  26. package/dist/fonts/KaTeX_AMS-Regular.ttf +0 -0
  27. package/dist/fonts/KaTeX_AMS-Regular.woff +0 -0
  28. package/dist/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  29. package/dist/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  30. package/dist/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  31. package/dist/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  32. package/dist/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  33. package/dist/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  34. package/dist/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  35. package/dist/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  36. package/dist/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  37. package/dist/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  38. package/dist/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  39. package/dist/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  40. package/dist/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  41. package/dist/fonts/KaTeX_Main-Bold.ttf +0 -0
  42. package/dist/fonts/KaTeX_Main-Bold.woff +0 -0
  43. package/dist/fonts/KaTeX_Main-Bold.woff2 +0 -0
  44. package/dist/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  45. package/dist/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  46. package/dist/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  47. package/dist/fonts/KaTeX_Main-Italic.ttf +0 -0
  48. package/dist/fonts/KaTeX_Main-Italic.woff +0 -0
  49. package/dist/fonts/KaTeX_Main-Italic.woff2 +0 -0
  50. package/dist/fonts/KaTeX_Main-Regular.ttf +0 -0
  51. package/dist/fonts/KaTeX_Main-Regular.woff +0 -0
  52. package/dist/fonts/KaTeX_Main-Regular.woff2 +0 -0
  53. package/dist/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  54. package/dist/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  55. package/dist/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  56. package/dist/fonts/KaTeX_Math-Italic.ttf +0 -0
  57. package/dist/fonts/KaTeX_Math-Italic.woff +0 -0
  58. package/dist/fonts/KaTeX_Math-Italic.woff2 +0 -0
  59. package/dist/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  60. package/dist/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  61. package/dist/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  62. package/dist/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  63. package/dist/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  64. package/dist/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  65. package/dist/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  66. package/dist/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  67. package/dist/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  68. package/dist/fonts/KaTeX_Script-Regular.ttf +0 -0
  69. package/dist/fonts/KaTeX_Script-Regular.woff +0 -0
  70. package/dist/fonts/KaTeX_Script-Regular.woff2 +0 -0
  71. package/dist/fonts/KaTeX_Size1-Regular.ttf +0 -0
  72. package/dist/fonts/KaTeX_Size1-Regular.woff +0 -0
  73. package/dist/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  74. package/dist/fonts/KaTeX_Size2-Regular.ttf +0 -0
  75. package/dist/fonts/KaTeX_Size2-Regular.woff +0 -0
  76. package/dist/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  77. package/dist/fonts/KaTeX_Size3-Regular.ttf +0 -0
  78. package/dist/fonts/KaTeX_Size3-Regular.woff +0 -0
  79. package/dist/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  80. package/dist/fonts/KaTeX_Size4-Regular.ttf +0 -0
  81. package/dist/fonts/KaTeX_Size4-Regular.woff +0 -0
  82. package/dist/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  83. package/dist/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  84. package/dist/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  85. package/dist/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  86. package/dist/fonts/LICENSE.txt +93 -0
  87. package/dist/fonts/manifest.json +2204 -0
  88. package/dist/fonts/maple-7.9-bold-005-5530d8c1d6.woff2 +0 -0
  89. package/dist/fonts/maple-7.9-bold-00f-1179d800a7.woff2 +0 -0
  90. package/dist/fonts/maple-7.9-bold-010-9974a942b1.woff2 +0 -0
  91. package/dist/fonts/maple-7.9-bold-011-9b9230baf2.woff2 +0 -0
  92. package/dist/fonts/maple-7.9-bold-012-c2545292b1.woff2 +0 -0
  93. package/dist/fonts/maple-7.9-bold-013-877b19fe05.woff2 +0 -0
  94. package/dist/fonts/maple-7.9-bold-014-6acf4a4e92.woff2 +0 -0
  95. package/dist/fonts/maple-7.9-bold-015-c889146da3.woff2 +0 -0
  96. package/dist/fonts/maple-7.9-bold-018-419ad5f31f.woff2 +0 -0
  97. package/dist/fonts/maple-7.9-bold-027-dd414483da.woff2 +0 -0
  98. package/dist/fonts/maple-7.9-bold-028-263744fbc7.woff2 +0 -0
  99. package/dist/fonts/maple-7.9-bold-029-ae3a163d8b.woff2 +0 -0
  100. package/dist/fonts/maple-7.9-bold-02a-515f0a82c2.woff2 +0 -0
  101. package/dist/fonts/maple-7.9-bold-02b-0823c5133d.woff2 +0 -0
  102. package/dist/fonts/maple-7.9-bold-02c-296fd5db38.woff2 +0 -0
  103. package/dist/fonts/maple-7.9-bold-02d-0bb4734363.woff2 +0 -0
  104. package/dist/fonts/maple-7.9-bold-02e-25415fed50.woff2 +0 -0
  105. package/dist/fonts/maple-7.9-bold-02f-19ed79a84e.woff2 +0 -0
  106. package/dist/fonts/maple-7.9-bold-030-21962a0327.woff2 +0 -0
  107. package/dist/fonts/maple-7.9-bold-031-d216fc0d68.woff2 +0 -0
  108. package/dist/fonts/maple-7.9-bold-032-d90ba34901.woff2 +0 -0
  109. package/dist/fonts/maple-7.9-bold-033-55ea37ea00.woff2 +0 -0
  110. package/dist/fonts/maple-7.9-bold-034-bc8649f808.woff2 +0 -0
  111. package/dist/fonts/maple-7.9-bold-035-03604fe40b.woff2 +0 -0
  112. package/dist/fonts/maple-7.9-bold-036-44fc7f77b2.woff2 +0 -0
  113. package/dist/fonts/maple-7.9-bold-037-8a1440f155.woff2 +0 -0
  114. package/dist/fonts/maple-7.9-bold-038-c65a618d5c.woff2 +0 -0
  115. package/dist/fonts/maple-7.9-bold-039-be05db966d.woff2 +0 -0
  116. package/dist/fonts/maple-7.9-bold-03a-ca3a10002d.woff2 +0 -0
  117. package/dist/fonts/maple-7.9-bold-03b-067b32e10b.woff2 +0 -0
  118. package/dist/fonts/maple-7.9-bold-03c-4da4f84530.woff2 +0 -0
  119. package/dist/fonts/maple-7.9-bold-03d-f0fe6a68c8.woff2 +0 -0
  120. package/dist/fonts/maple-7.9-bold-03e-0e97f89433.woff2 +0 -0
  121. package/dist/fonts/maple-7.9-bold-03f-3289a5e3bc.woff2 +0 -0
  122. package/dist/fonts/maple-7.9-bold-040-232dcd0d7b.woff2 +0 -0
  123. package/dist/fonts/maple-7.9-bold-041-e25e9a9c41.woff2 +0 -0
  124. package/dist/fonts/maple-7.9-bold-042-d64a2b1824.woff2 +0 -0
  125. package/dist/fonts/maple-7.9-bold-043-2d01cf5e52.woff2 +0 -0
  126. package/dist/fonts/maple-7.9-bold-044-0ab808b5f1.woff2 +0 -0
  127. package/dist/fonts/maple-7.9-bold-045-e41dc814b4.woff2 +0 -0
  128. package/dist/fonts/maple-7.9-bold-046-d5fe26344d.woff2 +0 -0
  129. package/dist/fonts/maple-7.9-bold-047-f322ded671.woff2 +0 -0
  130. package/dist/fonts/maple-7.9-bold-048-0cdcf7257f.woff2 +0 -0
  131. package/dist/fonts/maple-7.9-bold-049-aa280ca08a.woff2 +0 -0
  132. package/dist/fonts/maple-7.9-bold-04a-f51ad4d92c.woff2 +0 -0
  133. package/dist/fonts/maple-7.9-bold-04b-4e8c6fa3ee.woff2 +0 -0
  134. package/dist/fonts/maple-7.9-bold-04c-9bfdf4d743.woff2 +0 -0
  135. package/dist/fonts/maple-7.9-bold-04d-83ac1f5bb3.woff2 +0 -0
  136. package/dist/fonts/maple-7.9-bold-04e-bcec89804a.woff2 +0 -0
  137. package/dist/fonts/maple-7.9-bold-04f-d31e83b6ce.woff2 +0 -0
  138. package/dist/fonts/maple-7.9-bold-070-8a3b0fdf98.woff2 +0 -0
  139. package/dist/fonts/maple-7.9-bold-071-5bee0a62c4.woff2 +0 -0
  140. package/dist/fonts/maple-7.9-bold-072-97d891eee4.woff2 +0 -0
  141. package/dist/fonts/maple-7.9-bold-073-4d4c36aca0.woff2 +0 -0
  142. package/dist/fonts/maple-7.9-bold-074-6d3cc01e90.woff2 +0 -0
  143. package/dist/fonts/maple-7.9-bold-075-eab42ad657.woff2 +0 -0
  144. package/dist/fonts/maple-7.9-bold-076-2b1f5c4a42.woff2 +0 -0
  145. package/dist/fonts/maple-7.9-bold-077-1db0d50873.woff2 +0 -0
  146. package/dist/fonts/maple-7.9-bold-078-bc6994a28f.woff2 +0 -0
  147. package/dist/fonts/maple-7.9-bold-079-ad6c1757ce.woff2 +0 -0
  148. package/dist/fonts/maple-7.9-bold-07a-d08ed2b87d.woff2 +0 -0
  149. package/dist/fonts/maple-7.9-bold-07f-2f4af46cc6.woff2 +0 -0
  150. package/dist/fonts/maple-7.9-bold-0fc-42ed90884c.woff2 +0 -0
  151. package/dist/fonts/maple-7.9-bold-780-261fac1b24.woff2 +0 -0
  152. package/dist/fonts/maple-7.9-bold-781-377319a91b.woff2 +0 -0
  153. package/dist/fonts/maple-7.9-bold-782-3106f0be62.woff2 +0 -0
  154. package/dist/fonts/maple-7.9-bold-783-74fbfa8648.woff2 +0 -0
  155. package/dist/fonts/maple-7.9-bold-784-8570270664.woff2 +0 -0
  156. package/dist/fonts/maple-7.9-bold-785-cee8de1ded.woff2 +0 -0
  157. package/dist/fonts/maple-7.9-bold-786-5ab5ff7149.woff2 +0 -0
  158. package/dist/fonts/maple-7.9-bold-787-844b4c4373.woff2 +0 -0
  159. package/dist/fonts/maple-7.9-bold-788-01731198ab.woff2 +0 -0
  160. package/dist/fonts/maple-7.9-bold-789-f4c75fa806.woff2 +0 -0
  161. package/dist/fonts/maple-7.9-bold-78a-4370321ec6.woff2 +0 -0
  162. package/dist/fonts/maple-7.9-bold-78b-5cd412b56f.woff2 +0 -0
  163. package/dist/fonts/maple-7.9-bold-78c-f88e331085.woff2 +0 -0
  164. package/dist/fonts/maple-7.9-bold-78d-1b9b77f6e8.woff2 +0 -0
  165. package/dist/fonts/maple-7.9-bold-latin-3b4b2831f3.woff2 +0 -0
  166. package/dist/fonts/maple-7.9-bolditalic-005-d59fef8639.woff2 +0 -0
  167. package/dist/fonts/maple-7.9-bolditalic-00f-1bbda7af69.woff2 +0 -0
  168. package/dist/fonts/maple-7.9-bolditalic-010-5cdd4b46a7.woff2 +0 -0
  169. package/dist/fonts/maple-7.9-bolditalic-011-0d1f1ae687.woff2 +0 -0
  170. package/dist/fonts/maple-7.9-bolditalic-012-4ceb000b2e.woff2 +0 -0
  171. package/dist/fonts/maple-7.9-bolditalic-013-ad0a4f4313.woff2 +0 -0
  172. package/dist/fonts/maple-7.9-bolditalic-014-94d54b71b3.woff2 +0 -0
  173. package/dist/fonts/maple-7.9-bolditalic-015-7aede280da.woff2 +0 -0
  174. package/dist/fonts/maple-7.9-bolditalic-018-f21221b1c2.woff2 +0 -0
  175. package/dist/fonts/maple-7.9-bolditalic-027-d23d0e80a4.woff2 +0 -0
  176. package/dist/fonts/maple-7.9-bolditalic-028-23bd6f24df.woff2 +0 -0
  177. package/dist/fonts/maple-7.9-bolditalic-029-c481c0ad50.woff2 +0 -0
  178. package/dist/fonts/maple-7.9-bolditalic-02a-1c134be68e.woff2 +0 -0
  179. package/dist/fonts/maple-7.9-bolditalic-02b-3feb29ecfd.woff2 +0 -0
  180. package/dist/fonts/maple-7.9-bolditalic-02c-de8cc5a063.woff2 +0 -0
  181. package/dist/fonts/maple-7.9-bolditalic-02d-ea25c21fad.woff2 +0 -0
  182. package/dist/fonts/maple-7.9-bolditalic-02e-e68d6bd335.woff2 +0 -0
  183. package/dist/fonts/maple-7.9-bolditalic-02f-c88d1e92dc.woff2 +0 -0
  184. package/dist/fonts/maple-7.9-bolditalic-030-f26fefe87e.woff2 +0 -0
  185. package/dist/fonts/maple-7.9-bolditalic-031-f2aa1b8e22.woff2 +0 -0
  186. package/dist/fonts/maple-7.9-bolditalic-032-c4fafc4aa6.woff2 +0 -0
  187. package/dist/fonts/maple-7.9-bolditalic-033-288a1639ca.woff2 +0 -0
  188. package/dist/fonts/maple-7.9-bolditalic-034-7c982125bc.woff2 +0 -0
  189. package/dist/fonts/maple-7.9-bolditalic-035-fd1575dea2.woff2 +0 -0
  190. package/dist/fonts/maple-7.9-bolditalic-036-f6bf406353.woff2 +0 -0
  191. package/dist/fonts/maple-7.9-bolditalic-037-8ac1466916.woff2 +0 -0
  192. package/dist/fonts/maple-7.9-bolditalic-038-e9f7fed6a6.woff2 +0 -0
  193. package/dist/fonts/maple-7.9-bolditalic-039-6f90d42310.woff2 +0 -0
  194. package/dist/fonts/maple-7.9-bolditalic-03a-30c9409a7e.woff2 +0 -0
  195. package/dist/fonts/maple-7.9-bolditalic-03b-4f1741e9e9.woff2 +0 -0
  196. package/dist/fonts/maple-7.9-bolditalic-03c-6551c74e78.woff2 +0 -0
  197. package/dist/fonts/maple-7.9-bolditalic-03d-c8e2b07106.woff2 +0 -0
  198. package/dist/fonts/maple-7.9-bolditalic-03e-c3e98613d4.woff2 +0 -0
  199. package/dist/fonts/maple-7.9-bolditalic-03f-f1c580bad4.woff2 +0 -0
  200. package/dist/fonts/maple-7.9-bolditalic-040-32e8260076.woff2 +0 -0
  201. package/dist/fonts/maple-7.9-bolditalic-041-39805a0ed7.woff2 +0 -0
  202. package/dist/fonts/maple-7.9-bolditalic-042-13b4d84cd3.woff2 +0 -0
  203. package/dist/fonts/maple-7.9-bolditalic-043-d85780d0bd.woff2 +0 -0
  204. package/dist/fonts/maple-7.9-bolditalic-044-1b5eb624d7.woff2 +0 -0
  205. package/dist/fonts/maple-7.9-bolditalic-045-ad0b4f8762.woff2 +0 -0
  206. package/dist/fonts/maple-7.9-bolditalic-046-9966021b3a.woff2 +0 -0
  207. package/dist/fonts/maple-7.9-bolditalic-047-100d4f6f4e.woff2 +0 -0
  208. package/dist/fonts/maple-7.9-bolditalic-048-a0a1e8b29c.woff2 +0 -0
  209. package/dist/fonts/maple-7.9-bolditalic-049-0806f9b3cc.woff2 +0 -0
  210. package/dist/fonts/maple-7.9-bolditalic-04a-28fdef78b3.woff2 +0 -0
  211. package/dist/fonts/maple-7.9-bolditalic-04b-6e93ef0086.woff2 +0 -0
  212. package/dist/fonts/maple-7.9-bolditalic-04c-50b8da6282.woff2 +0 -0
  213. package/dist/fonts/maple-7.9-bolditalic-04d-f93277723d.woff2 +0 -0
  214. package/dist/fonts/maple-7.9-bolditalic-04e-72e2644690.woff2 +0 -0
  215. package/dist/fonts/maple-7.9-bolditalic-04f-4f234f1802.woff2 +0 -0
  216. package/dist/fonts/maple-7.9-bolditalic-070-a3658a8a23.woff2 +0 -0
  217. package/dist/fonts/maple-7.9-bolditalic-071-4987e49732.woff2 +0 -0
  218. package/dist/fonts/maple-7.9-bolditalic-072-e587fa72cd.woff2 +0 -0
  219. package/dist/fonts/maple-7.9-bolditalic-073-2aca01fdf6.woff2 +0 -0
  220. package/dist/fonts/maple-7.9-bolditalic-074-ae89f99a60.woff2 +0 -0
  221. package/dist/fonts/maple-7.9-bolditalic-075-5a77191665.woff2 +0 -0
  222. package/dist/fonts/maple-7.9-bolditalic-076-4c54a87277.woff2 +0 -0
  223. package/dist/fonts/maple-7.9-bolditalic-077-e47dce25ee.woff2 +0 -0
  224. package/dist/fonts/maple-7.9-bolditalic-078-b0b720dab6.woff2 +0 -0
  225. package/dist/fonts/maple-7.9-bolditalic-079-316ee96f6a.woff2 +0 -0
  226. package/dist/fonts/maple-7.9-bolditalic-07a-b10ccb8107.woff2 +0 -0
  227. package/dist/fonts/maple-7.9-bolditalic-07d-5667cb3be1.woff2 +0 -0
  228. package/dist/fonts/maple-7.9-bolditalic-07f-2ac6735ff8.woff2 +0 -0
  229. package/dist/fonts/maple-7.9-bolditalic-0fc-52171ca01e.woff2 +0 -0
  230. package/dist/fonts/maple-7.9-bolditalic-780-3c090c5f89.woff2 +0 -0
  231. package/dist/fonts/maple-7.9-bolditalic-781-ca4077b4fa.woff2 +0 -0
  232. package/dist/fonts/maple-7.9-bolditalic-782-42c3d52206.woff2 +0 -0
  233. package/dist/fonts/maple-7.9-bolditalic-783-d72840dd37.woff2 +0 -0
  234. package/dist/fonts/maple-7.9-bolditalic-784-b9ca097e50.woff2 +0 -0
  235. package/dist/fonts/maple-7.9-bolditalic-785-b81dec6af9.woff2 +0 -0
  236. package/dist/fonts/maple-7.9-bolditalic-786-76c266f6f5.woff2 +0 -0
  237. package/dist/fonts/maple-7.9-bolditalic-787-403bd73766.woff2 +0 -0
  238. package/dist/fonts/maple-7.9-bolditalic-788-71a4b8c2c5.woff2 +0 -0
  239. package/dist/fonts/maple-7.9-bolditalic-789-94527f3fa4.woff2 +0 -0
  240. package/dist/fonts/maple-7.9-bolditalic-78a-81918568b8.woff2 +0 -0
  241. package/dist/fonts/maple-7.9-bolditalic-78b-d0302b4bfe.woff2 +0 -0
  242. package/dist/fonts/maple-7.9-bolditalic-78c-e864792049.woff2 +0 -0
  243. package/dist/fonts/maple-7.9-bolditalic-78d-105ff69bf4.woff2 +0 -0
  244. package/dist/fonts/maple-7.9-bolditalic-latin-96412d165b.woff2 +0 -0
  245. package/dist/fonts/maple-7.9-italic-005-23b09473f8.woff2 +0 -0
  246. package/dist/fonts/maple-7.9-italic-00f-e9bf4dd93c.woff2 +0 -0
  247. package/dist/fonts/maple-7.9-italic-010-22933d6d77.woff2 +0 -0
  248. package/dist/fonts/maple-7.9-italic-011-71b0157ddc.woff2 +0 -0
  249. package/dist/fonts/maple-7.9-italic-012-b751ab3752.woff2 +0 -0
  250. package/dist/fonts/maple-7.9-italic-013-530b1d3f8b.woff2 +0 -0
  251. package/dist/fonts/maple-7.9-italic-014-0e842f6749.woff2 +0 -0
  252. package/dist/fonts/maple-7.9-italic-015-642211b03a.woff2 +0 -0
  253. package/dist/fonts/maple-7.9-italic-018-0c5b0001c6.woff2 +0 -0
  254. package/dist/fonts/maple-7.9-italic-027-9a09afbbb1.woff2 +0 -0
  255. package/dist/fonts/maple-7.9-italic-028-93fea67326.woff2 +0 -0
  256. package/dist/fonts/maple-7.9-italic-029-7d7627d4cc.woff2 +0 -0
  257. package/dist/fonts/maple-7.9-italic-02a-88e76d051b.woff2 +0 -0
  258. package/dist/fonts/maple-7.9-italic-02b-7d9219748b.woff2 +0 -0
  259. package/dist/fonts/maple-7.9-italic-02c-049df19d84.woff2 +0 -0
  260. package/dist/fonts/maple-7.9-italic-02d-663fc73c6e.woff2 +0 -0
  261. package/dist/fonts/maple-7.9-italic-02e-a98ed33998.woff2 +0 -0
  262. package/dist/fonts/maple-7.9-italic-02f-8ef9d93d09.woff2 +0 -0
  263. package/dist/fonts/maple-7.9-italic-030-74885d994d.woff2 +0 -0
  264. package/dist/fonts/maple-7.9-italic-031-4cf66c5d65.woff2 +0 -0
  265. package/dist/fonts/maple-7.9-italic-032-a608b7aed4.woff2 +0 -0
  266. package/dist/fonts/maple-7.9-italic-033-2978f66e55.woff2 +0 -0
  267. package/dist/fonts/maple-7.9-italic-034-38f7a0bf87.woff2 +0 -0
  268. package/dist/fonts/maple-7.9-italic-035-5cc45cd3b7.woff2 +0 -0
  269. package/dist/fonts/maple-7.9-italic-036-ca92d327e5.woff2 +0 -0
  270. package/dist/fonts/maple-7.9-italic-037-f887681c7d.woff2 +0 -0
  271. package/dist/fonts/maple-7.9-italic-038-06150b88f8.woff2 +0 -0
  272. package/dist/fonts/maple-7.9-italic-039-761da333b7.woff2 +0 -0
  273. package/dist/fonts/maple-7.9-italic-03a-1408ddaf2c.woff2 +0 -0
  274. package/dist/fonts/maple-7.9-italic-03b-1542b3b67c.woff2 +0 -0
  275. package/dist/fonts/maple-7.9-italic-03c-479f2f5011.woff2 +0 -0
  276. package/dist/fonts/maple-7.9-italic-03d-0f10590b11.woff2 +0 -0
  277. package/dist/fonts/maple-7.9-italic-03e-8b93e0ee0e.woff2 +0 -0
  278. package/dist/fonts/maple-7.9-italic-03f-2bd8815e3e.woff2 +0 -0
  279. package/dist/fonts/maple-7.9-italic-040-b85023679a.woff2 +0 -0
  280. package/dist/fonts/maple-7.9-italic-041-eb881b7b92.woff2 +0 -0
  281. package/dist/fonts/maple-7.9-italic-042-01490a139e.woff2 +0 -0
  282. package/dist/fonts/maple-7.9-italic-043-ffb21b6c4c.woff2 +0 -0
  283. package/dist/fonts/maple-7.9-italic-044-05cd1a1b14.woff2 +0 -0
  284. package/dist/fonts/maple-7.9-italic-045-1270935363.woff2 +0 -0
  285. package/dist/fonts/maple-7.9-italic-046-857077eab1.woff2 +0 -0
  286. package/dist/fonts/maple-7.9-italic-047-ca57774cc3.woff2 +0 -0
  287. package/dist/fonts/maple-7.9-italic-048-20969d6307.woff2 +0 -0
  288. package/dist/fonts/maple-7.9-italic-049-4066aa1a18.woff2 +0 -0
  289. package/dist/fonts/maple-7.9-italic-04a-1ed360d580.woff2 +0 -0
  290. package/dist/fonts/maple-7.9-italic-04b-2eba62d76b.woff2 +0 -0
  291. package/dist/fonts/maple-7.9-italic-04c-2f4effc460.woff2 +0 -0
  292. package/dist/fonts/maple-7.9-italic-04d-d858c0a9c1.woff2 +0 -0
  293. package/dist/fonts/maple-7.9-italic-04e-a19eb0289f.woff2 +0 -0
  294. package/dist/fonts/maple-7.9-italic-04f-8addde15f2.woff2 +0 -0
  295. package/dist/fonts/maple-7.9-italic-070-f0bd641f1c.woff2 +0 -0
  296. package/dist/fonts/maple-7.9-italic-071-e6ac564431.woff2 +0 -0
  297. package/dist/fonts/maple-7.9-italic-072-e6fea65bca.woff2 +0 -0
  298. package/dist/fonts/maple-7.9-italic-073-71621c00dc.woff2 +0 -0
  299. package/dist/fonts/maple-7.9-italic-074-4bd488962a.woff2 +0 -0
  300. package/dist/fonts/maple-7.9-italic-075-2838d95bd6.woff2 +0 -0
  301. package/dist/fonts/maple-7.9-italic-076-94e02ecc03.woff2 +0 -0
  302. package/dist/fonts/maple-7.9-italic-077-32c536ab6b.woff2 +0 -0
  303. package/dist/fonts/maple-7.9-italic-078-18256447bd.woff2 +0 -0
  304. package/dist/fonts/maple-7.9-italic-079-7a735e61cf.woff2 +0 -0
  305. package/dist/fonts/maple-7.9-italic-07a-2b57a6a905.woff2 +0 -0
  306. package/dist/fonts/maple-7.9-italic-07d-8ba1bbfb50.woff2 +0 -0
  307. package/dist/fonts/maple-7.9-italic-07f-0240d80c69.woff2 +0 -0
  308. package/dist/fonts/maple-7.9-italic-0fc-e5b20a692e.woff2 +0 -0
  309. package/dist/fonts/maple-7.9-italic-780-093cc90a9b.woff2 +0 -0
  310. package/dist/fonts/maple-7.9-italic-781-f6ec357f6d.woff2 +0 -0
  311. package/dist/fonts/maple-7.9-italic-782-5ca2ef4ddd.woff2 +0 -0
  312. package/dist/fonts/maple-7.9-italic-783-7450baabee.woff2 +0 -0
  313. package/dist/fonts/maple-7.9-italic-784-14a93cc4bd.woff2 +0 -0
  314. package/dist/fonts/maple-7.9-italic-785-d62fb8b4d7.woff2 +0 -0
  315. package/dist/fonts/maple-7.9-italic-786-1d2959dc83.woff2 +0 -0
  316. package/dist/fonts/maple-7.9-italic-787-70ae947136.woff2 +0 -0
  317. package/dist/fonts/maple-7.9-italic-788-cf1f156ebf.woff2 +0 -0
  318. package/dist/fonts/maple-7.9-italic-789-f0b79f9680.woff2 +0 -0
  319. package/dist/fonts/maple-7.9-italic-78a-5a53fd7870.woff2 +0 -0
  320. package/dist/fonts/maple-7.9-italic-78b-40be093bfd.woff2 +0 -0
  321. package/dist/fonts/maple-7.9-italic-78c-3b11646f8e.woff2 +0 -0
  322. package/dist/fonts/maple-7.9-italic-78d-b13ed8c48b.woff2 +0 -0
  323. package/dist/fonts/maple-7.9-italic-latin-befeb2b610.woff2 +0 -0
  324. package/dist/fonts/maple-7.9-regular-005-90bff107ac.woff2 +0 -0
  325. package/dist/fonts/maple-7.9-regular-00f-001e503e53.woff2 +0 -0
  326. package/dist/fonts/maple-7.9-regular-010-374da1ebb4.woff2 +0 -0
  327. package/dist/fonts/maple-7.9-regular-011-8f91fcc9e7.woff2 +0 -0
  328. package/dist/fonts/maple-7.9-regular-012-e4ec3016ef.woff2 +0 -0
  329. package/dist/fonts/maple-7.9-regular-013-e779e13a12.woff2 +0 -0
  330. package/dist/fonts/maple-7.9-regular-014-6b833ad501.woff2 +0 -0
  331. package/dist/fonts/maple-7.9-regular-015-4e058c4c42.woff2 +0 -0
  332. package/dist/fonts/maple-7.9-regular-018-6f776bc19b.woff2 +0 -0
  333. package/dist/fonts/maple-7.9-regular-027-92c0be3439.woff2 +0 -0
  334. package/dist/fonts/maple-7.9-regular-028-154c8c3039.woff2 +0 -0
  335. package/dist/fonts/maple-7.9-regular-029-9d88470aca.woff2 +0 -0
  336. package/dist/fonts/maple-7.9-regular-02a-7a94cb26f2.woff2 +0 -0
  337. package/dist/fonts/maple-7.9-regular-02b-1725b841c2.woff2 +0 -0
  338. package/dist/fonts/maple-7.9-regular-02c-e080c435d6.woff2 +0 -0
  339. package/dist/fonts/maple-7.9-regular-02d-a6461c4708.woff2 +0 -0
  340. package/dist/fonts/maple-7.9-regular-02e-2e55d9b957.woff2 +0 -0
  341. package/dist/fonts/maple-7.9-regular-02f-858a76fa1f.woff2 +0 -0
  342. package/dist/fonts/maple-7.9-regular-030-bbbe80f8ad.woff2 +0 -0
  343. package/dist/fonts/maple-7.9-regular-031-cafc1258ad.woff2 +0 -0
  344. package/dist/fonts/maple-7.9-regular-032-0ca83ecceb.woff2 +0 -0
  345. package/dist/fonts/maple-7.9-regular-033-6cb995f2e7.woff2 +0 -0
  346. package/dist/fonts/maple-7.9-regular-034-5877222be6.woff2 +0 -0
  347. package/dist/fonts/maple-7.9-regular-035-988d8f2d26.woff2 +0 -0
  348. package/dist/fonts/maple-7.9-regular-036-e91853e3ca.woff2 +0 -0
  349. package/dist/fonts/maple-7.9-regular-037-3eed60f359.woff2 +0 -0
  350. package/dist/fonts/maple-7.9-regular-038-5681f42a4a.woff2 +0 -0
  351. package/dist/fonts/maple-7.9-regular-039-07036fe444.woff2 +0 -0
  352. package/dist/fonts/maple-7.9-regular-03a-5495eead93.woff2 +0 -0
  353. package/dist/fonts/maple-7.9-regular-03b-d07b1d6c1e.woff2 +0 -0
  354. package/dist/fonts/maple-7.9-regular-03c-6291400ee0.woff2 +0 -0
  355. package/dist/fonts/maple-7.9-regular-03d-3787a51772.woff2 +0 -0
  356. package/dist/fonts/maple-7.9-regular-03e-ce4d945844.woff2 +0 -0
  357. package/dist/fonts/maple-7.9-regular-03f-95e98b329c.woff2 +0 -0
  358. package/dist/fonts/maple-7.9-regular-040-693b769fe8.woff2 +0 -0
  359. package/dist/fonts/maple-7.9-regular-041-7b436d2c09.woff2 +0 -0
  360. package/dist/fonts/maple-7.9-regular-042-9ad884cd73.woff2 +0 -0
  361. package/dist/fonts/maple-7.9-regular-043-372231e8e2.woff2 +0 -0
  362. package/dist/fonts/maple-7.9-regular-044-9922b540b1.woff2 +0 -0
  363. package/dist/fonts/maple-7.9-regular-045-8a88a91c22.woff2 +0 -0
  364. package/dist/fonts/maple-7.9-regular-046-82859ede10.woff2 +0 -0
  365. package/dist/fonts/maple-7.9-regular-047-6532babd62.woff2 +0 -0
  366. package/dist/fonts/maple-7.9-regular-048-abfdc5d7ce.woff2 +0 -0
  367. package/dist/fonts/maple-7.9-regular-049-adb7fa9ed3.woff2 +0 -0
  368. package/dist/fonts/maple-7.9-regular-04a-f3f794b1cb.woff2 +0 -0
  369. package/dist/fonts/maple-7.9-regular-04b-715211b8dd.woff2 +0 -0
  370. package/dist/fonts/maple-7.9-regular-04c-c6f978d10d.woff2 +0 -0
  371. package/dist/fonts/maple-7.9-regular-04d-61019a1c8f.woff2 +0 -0
  372. package/dist/fonts/maple-7.9-regular-04e-806d6efe85.woff2 +0 -0
  373. package/dist/fonts/maple-7.9-regular-04f-99d19aa8db.woff2 +0 -0
  374. package/dist/fonts/maple-7.9-regular-070-e94ba9445d.woff2 +0 -0
  375. package/dist/fonts/maple-7.9-regular-071-057314b533.woff2 +0 -0
  376. package/dist/fonts/maple-7.9-regular-072-a7699beb84.woff2 +0 -0
  377. package/dist/fonts/maple-7.9-regular-073-ebe1bd9ef4.woff2 +0 -0
  378. package/dist/fonts/maple-7.9-regular-074-722db38100.woff2 +0 -0
  379. package/dist/fonts/maple-7.9-regular-075-150ff7187b.woff2 +0 -0
  380. package/dist/fonts/maple-7.9-regular-076-c14595e715.woff2 +0 -0
  381. package/dist/fonts/maple-7.9-regular-077-6c88302a32.woff2 +0 -0
  382. package/dist/fonts/maple-7.9-regular-078-549b294c78.woff2 +0 -0
  383. package/dist/fonts/maple-7.9-regular-079-5131c42759.woff2 +0 -0
  384. package/dist/fonts/maple-7.9-regular-07a-c0dad221b5.woff2 +0 -0
  385. package/dist/fonts/maple-7.9-regular-07f-5cf5ebe065.woff2 +0 -0
  386. package/dist/fonts/maple-7.9-regular-0fc-b644c0c6d9.woff2 +0 -0
  387. package/dist/fonts/maple-7.9-regular-780-c6000d472a.woff2 +0 -0
  388. package/dist/fonts/maple-7.9-regular-781-86409ab7f7.woff2 +0 -0
  389. package/dist/fonts/maple-7.9-regular-782-9cd950637c.woff2 +0 -0
  390. package/dist/fonts/maple-7.9-regular-783-105c4d02df.woff2 +0 -0
  391. package/dist/fonts/maple-7.9-regular-784-00c042af97.woff2 +0 -0
  392. package/dist/fonts/maple-7.9-regular-785-022568d0b8.woff2 +0 -0
  393. package/dist/fonts/maple-7.9-regular-786-90b6f3aef5.woff2 +0 -0
  394. package/dist/fonts/maple-7.9-regular-787-e2888596c9.woff2 +0 -0
  395. package/dist/fonts/maple-7.9-regular-788-3416e1fda3.woff2 +0 -0
  396. package/dist/fonts/maple-7.9-regular-789-9ffc917b0b.woff2 +0 -0
  397. package/dist/fonts/maple-7.9-regular-78a-4a921d07f6.woff2 +0 -0
  398. package/dist/fonts/maple-7.9-regular-78b-9d71c5327b.woff2 +0 -0
  399. package/dist/fonts/maple-7.9-regular-78c-9ec048314b.woff2 +0 -0
  400. package/dist/fonts/maple-7.9-regular-78d-46a2ebd113.woff2 +0 -0
  401. package/dist/fonts/maple-7.9-regular-latin-59c752ba1d.woff2 +0 -0
  402. package/dist/fonts/maple.css +315 -0
  403. package/dist/index.d.ts +9 -0
  404. package/dist/index.js +136 -0
  405. package/dist/index.js.map +1 -0
  406. package/dist/math-renderer-L6DOH4RX.js +21 -0
  407. package/dist/math-renderer-L6DOH4RX.js.map +1 -0
  408. package/dist/math.css +1 -0
  409. package/dist/react/index.d.ts +113 -0
  410. package/dist/react/index.js +59 -0
  411. package/dist/react/index.js.map +1 -0
  412. package/dist/styles.css +454 -0
  413. package/dist/translations-DHnYMg4h.d.ts +318 -0
  414. package/docs/README.md +13 -0
  415. package/docs/api.md +8 -0
  416. package/docs/assets/rendered.svg +9 -0
  417. package/docs/assets/source.svg +9 -0
  418. package/docs/en/README.md +26 -0
  419. package/docs/en/ai-skills.md +57 -0
  420. package/docs/en/annotations.md +84 -0
  421. package/docs/en/api.md +107 -0
  422. package/docs/en/architecture.md +33 -0
  423. package/docs/en/extensions.md +159 -0
  424. package/docs/en/getting-started.md +67 -0
  425. package/docs/en/integration.md +130 -0
  426. package/docs/en/modules.md +80 -0
  427. package/docs/en/performance.md +53 -0
  428. package/docs/en/plugin-packages.md +68 -0
  429. package/docs/en/styles.md +80 -0
  430. package/docs/en/syntax.md +352 -0
  431. package/docs/extensions.md +8 -0
  432. package/docs/implementation.md +8 -0
  433. package/docs/performance.md +8 -0
  434. package/docs/screenshots/blocks.png +0 -0
  435. package/docs/screenshots/dark.png +0 -0
  436. package/docs/screenshots/desktop.png +0 -0
  437. package/docs/screenshots/plugin-mobile.png +0 -0
  438. package/docs/styles.md +8 -0
  439. package/docs/visual-upgrade.md +8 -0
  440. package/docs/zh-CN/README.md +26 -0
  441. package/docs/zh-CN/ai-skills.md +57 -0
  442. package/docs/zh-CN/annotations.md +84 -0
  443. package/docs/zh-CN/api.md +107 -0
  444. package/docs/zh-CN/architecture.md +33 -0
  445. package/docs/zh-CN/extensions.md +159 -0
  446. package/docs/zh-CN/getting-started.md +67 -0
  447. package/docs/zh-CN/integration.md +130 -0
  448. package/docs/zh-CN/modules.md +80 -0
  449. package/docs/zh-CN/performance.md +53 -0
  450. package/docs/zh-CN/plugin-packages.md +68 -0
  451. package/docs/zh-CN/styles.md +80 -0
  452. package/docs/zh-CN/syntax.md +352 -0
  453. package/examples/assistant.tsx +52 -0
  454. package/examples/notes.tsx +80 -0
  455. package/examples/packages/paper-theme/index.css +25 -0
  456. package/examples/packages/paper-theme/package.json +7 -0
  457. package/examples/packages/reading-tools/index.d.ts +2 -0
  458. package/examples/packages/reading-tools/index.js +25 -0
  459. package/examples/packages/reading-tools/package.json +16 -0
  460. package/package.json +114 -3
  461. package/skills/limr-plugin-development/SKILL.md +22 -0
  462. package/skills/limr-plugin-development/agents/openai.yaml +4 -0
  463. package/skills/limr-plugin-development/assets/plugin-template/README.md +30 -0
  464. package/skills/limr-plugin-development/assets/plugin-template/package.json +36 -0
  465. package/skills/limr-plugin-development/assets/plugin-template/src/index.tsx +50 -0
  466. package/skills/limr-plugin-development/assets/plugin-template/src/styles.css +9 -0
  467. package/skills/limr-plugin-development/assets/plugin-template/tsconfig.json +20 -0
  468. package/skills/limr-plugin-development/assets/plugin-template/tsup.config.ts +8 -0
  469. package/skills/limr-plugin-development/references/contract.md +45 -0
  470. package/skills/limr-use/SKILL.md +23 -0
  471. package/skills/limr-use/agents/openai.yaml +4 -0
  472. package/skills/limr-use/references/integration.md +41 -0
  473. package/skills/limr-use/references/syntax.md +17 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Linloir
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.en.md ADDED
@@ -0,0 +1,123 @@
1
+ # LiMR
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@linloir/limr.svg)](https://www.npmjs.com/package/@linloir/limr)
4
+
5
+ [简体中文](README.md) · **English**
6
+
7
+ **Linloir’s limr Is a Markdown Renderer.** A React Markdown renderer for long documents and streaming output. Body text, navigation, reference cards, selections, and highlights share one document state, and can also be composed into your own interface.
8
+
9
+ [Live Playground](https://linloir.github.io/LiMR/) · [English docs](docs/en/README.md) · [中文文档](docs/zh-CN/README.md) · [AI Skills](docs/en/ai-skills.md)
10
+
11
+ ## Install and use
12
+
13
+ ```sh
14
+ npm install @linloir/limr
15
+ # or pnpm add @linloir/limr
16
+ ```
17
+
18
+ ```tsx
19
+ import { Reader } from '@linloir/limr';
20
+ import '@linloir/limr/styles.css';
21
+ import '@linloir/limr/math.css';
22
+
23
+ const source = '# Start reading\n\nSupports **Markdown** and $E = mc^2$.';
24
+
25
+ export default function Article() {
26
+ return <Reader source={source} />;
27
+ }
28
+ ```
29
+
30
+ Requires React / React DOM **18.3 or 19**, Node.js **20+**, and an ESM-capable build tool. Interactive features target modern browsers; Node SSR is supported. UI labels default to English; pass the exported `chinese` locale for Chinese labels. Import `math.css` when using formulas.
31
+
32
+ Render just the body, or a growing response:
33
+
34
+ ```tsx
35
+ import { Markdown } from '@linloir/limr';
36
+
37
+ export function Answer({ text, generating }: { text: string; generating: boolean }) {
38
+ return <Markdown source={text} streaming={generating} followOutput />;
39
+ }
40
+ ```
41
+
42
+ `source` is the complete accumulated string. Set `streaming` to `false` when generation ends. `followOutput` is off by default and pauses when the reader scrolls up. `Markdown` does not include navigation, a sidebar, or a selection toolbar.
43
+
44
+ ## Capabilities
45
+
46
+ | Scenario | Features |
47
+ | --- | --- |
48
+ | Reading | CommonMark, GFM tables/tasks/footnotes, math, Shiki code highlighting |
49
+ | Rich content | Images, figure groups, captions, video, definitions, exercises, further reading, citations, original/translated/parallel text |
50
+ | Interaction | Responsive contents, desktop annotation sidebar, narrow-screen overlays, copying, four highlight styles |
51
+ | Integration | Controlled annotations, original UTF-16 offsets, isolated readers, nested scroll containers, SSR |
52
+ | Extensions | Custom syntax, React renderers, annotation types, selection actions, parameters, CSS theme packages |
53
+
54
+ The default content annotation type is `citation`; `highlight` provides persistent highlighting. Notes, questions, and chat annotations belong to application plugins. The default `question()` extension renders exercises in the document. See the [syntax reference](docs/en/syntax.md).
55
+
56
+ ```markdown
57
+ <definition title="Definition">
58
+
59
+ Use **Markdown** inside custom blocks.
60
+
61
+ </definition>
62
+
63
+ This passage has a source<ref id="paper" />.
64
+
65
+ <citation id="paper" title="Reference" url="https://example.com/paper" summary="Short summary" />
66
+ ```
67
+
68
+ ## Composition and extensions
69
+
70
+ `Reader` provides a complete layout. Use `DocumentProvider` with `Markdown`, `TableOfContents`, `AnnotationSidebar`, `AnnotationOverlay`, and `SelectionToolbar` for your own layout. See [application integration](docs/en/integration.md).
71
+
72
+ ```tsx
73
+ import { Reader, defineBlock } from '@linloir/limr';
74
+
75
+ const plugins = [defineBlock({
76
+ name: 'notice',
77
+ component: ({ children }) => <aside className="notice">{children}</aside>,
78
+ })];
79
+
80
+ export function Notice() {
81
+ return <Reader source={'<notice>\n\n**Custom content**\n\n</notice>'} plugins={plugins} />;
82
+ }
83
+ ```
84
+
85
+ `plugins` appends to the defaults. `extensions` replaces the entire list; `extensions={[]}` uses basic CommonMark. Replace a named extension explicitly with `replaceExtension()`. Keep configuration references stable.
86
+
87
+ Plugins can own the complete card UI (`overlay.Card`), collapsed sidebar summary (`sidebar.Preview`), async loading, and selection actions. Use the [plugin development Skill](skills/limr-plugin-development/SKILL.md) or [package guide](docs/en/plugin-packages.md) to build an installable extension and add it through `plugins`. Examples cover [notes](examples/notes.tsx), a [streaming assistant](examples/assistant.tsx), a [standalone plugin](examples/packages/reading-tools/index.js), and a [CSS theme](examples/packages/paper-theme/index.css). The `@limr-example/*` packages are unpublished local examples.
88
+
89
+ ## AI Skills
90
+
91
+ | Skill | Purpose |
92
+ | --- | --- |
93
+ | [limr-use](skills/limr-use/SKILL.md) | Integrate LiMR, author content, configure interaction, and install existing plugins |
94
+ | [limr-plugin-development](skills/limr-plugin-development/SKILL.md) | Build standalone module packages with a TypeScript / ESM / CSS starter and validation guidance |
95
+
96
+ Skills ship in the npm package and can also be downloaded from this repository. Copy the entire skill directory to keep references and templates together. See [download, installation, and invocation](docs/en/ai-skills.md) for Codex project and user scopes.
97
+
98
+ ## Styles and runtime
99
+
100
+ - `styles.css` includes light/dark styling and local Maple code fonts. `styles/base.css` provides the same styling without loading Maple. Font assets remain in the npm download. Choose one stylesheet.
101
+ - `appearance` scopes CSS themes across the reader and portalled controls. Applications or system fonts supply body typography.
102
+ - Code highlighting and math load on demand. Video loads near the viewport by default, with a click-to-load option. Remote media may contact its source site.
103
+ - The full DOM remains available for browser search, native selection, and printing. Streaming appends reuse stable blocks and finish with a full parse; not every edit is incremental.
104
+ - Unregistered HTML is displayed as text. Markdown-supplied JavaScript expressions are never executed. Custom renderers own their data and remote requests.
105
+
106
+ See [styles and fonts](docs/en/styles.md), [API](docs/en/api.md), and [performance and limits](docs/en/performance.md).
107
+
108
+ ## Local development
109
+
110
+ ```sh
111
+ pnpm install
112
+ pnpm dev
113
+ pnpm check
114
+ pnpm test:docs
115
+ pnpm exec playwright install chromium
116
+ pnpm test:browser
117
+ ```
118
+
119
+ Local development uses Python 3 to generate downloadable Skill archives. The header switches between Playground and LiMR-rendered, bilingual Docs.
120
+
121
+ The local Playground runs at `http://127.0.0.1:4173`. Use `@linloir/limr/core` for parsing without React/DOM. Other entry points are `@linloir/limr/react` and `@linloir/limr/extensions`.
122
+
123
+ [MIT License](LICENSE). Developed with Codex.
package/README.md CHANGED
@@ -1,3 +1,123 @@
1
- # Temporary Holding Version
1
+ # LiMR
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ [![npm version](https://img.shields.io/npm/v/@linloir/limr.svg)](https://www.npmjs.com/package/@linloir/limr)
4
+
5
+ **简体中文** · [English](README.en.md)
6
+
7
+ **Linloir’s limr Is a Markdown Renderer.** 面向长文阅读和流式输出的 React Markdown 渲染器。正文、目录、引用卡片、选区和高亮共享文档状态,也可以拆开组合到自己的界面中。
8
+
9
+ [在线 Playground](https://linloir.github.io/LiMR/) · [中文文档](docs/zh-CN/README.md) · [English docs](docs/en/README.md) · [AI Skills](docs/zh-CN/ai-skills.md)
10
+
11
+ ## 安装与使用
12
+
13
+ ```sh
14
+ npm install @linloir/limr
15
+ # 或 pnpm add @linloir/limr
16
+ ```
17
+
18
+ ```tsx
19
+ import { Reader, chinese } from '@linloir/limr';
20
+ import '@linloir/limr/styles.css';
21
+ import '@linloir/limr/math.css';
22
+
23
+ const source = '# 开始阅读\n\n支持 **Markdown** 与 $E = mc^2$。';
24
+
25
+ export default function Article() {
26
+ return <Reader source={source} locale={chinese} />;
27
+ }
28
+ ```
29
+
30
+ 需要 React / React DOM **18.3 或 19**、Node.js **20+** 和支持 ESM 的构建工具。交互功能面向现代浏览器;支持 Node SSR。默认界面语言为英文,中文界面传入 `chinese`。`math.css` 在使用公式时引入。
31
+
32
+ 只显示正文,或显示持续生成的回答:
33
+
34
+ ```tsx
35
+ import { Markdown } from '@linloir/limr';
36
+
37
+ export function Answer({ text, generating }: { text: string; generating: boolean }) {
38
+ return <Markdown source={text} streaming={generating} followOutput />;
39
+ }
40
+ ```
41
+
42
+ `source` 是累计的完整字符串,生成结束时把 `streaming` 设为 `false`。`followOutput` 默认关闭;开启后在读者向上滚动时暂停跟随。`Markdown` 不自带目录、侧栏或选区工具栏。
43
+
44
+ ## 支持什么
45
+
46
+ | 场景 | 能力 |
47
+ | --- | --- |
48
+ | 文档阅读 | CommonMark、GFM 表格/任务列表/脚注、数学公式、Shiki 代码高亮 |
49
+ | 富内容 | 图片与图组、图注、视频、释义、练习题、拓展阅读、引用、原文/译文/对照 |
50
+ | 阅读交互 | 响应式目录、桌面标注侧栏、窄屏浮层、复制、四种高亮样式 |
51
+ | 应用集成 | 受控标注、原始 UTF-16 坐标、多个独立阅读器、内部滚动容器、SSR |
52
+ | 扩展 | 自定义语法、React 渲染组件、标注类型、选区动作、参数与 CSS 主题包 |
53
+
54
+ 默认内容标注类型是 `citation`;`highlight` 是内置持久高亮。笔记、提问和聊天标注由应用插件提供,`question()` 则是默认的练习题正文模块。完整写法见[语法手册](docs/zh-CN/syntax.md)。
55
+
56
+ ```markdown
57
+ <definition title="定义">
58
+
59
+ 在特殊区块中继续使用 **Markdown**。
60
+
61
+ </definition>
62
+
63
+ 这段内容有参考来源<ref id="paper" />。
64
+
65
+ <citation id="paper" title="参考资料" url="https://example.com/paper" summary="简短摘要" />
66
+ ```
67
+
68
+ ## 组合与扩展
69
+
70
+ `Reader` 提供完整布局;自定义布局可用 `DocumentProvider` 组合 `Markdown`、`TableOfContents`、`AnnotationSidebar`、`AnnotationOverlay` 和 `SelectionToolbar`。详见[项目集成](docs/zh-CN/integration.md)。
71
+
72
+ ```tsx
73
+ import { Reader, defineBlock } from '@linloir/limr';
74
+
75
+ const plugins = [defineBlock({
76
+ name: 'notice',
77
+ component: ({ children }) => <aside className="notice">{children}</aside>,
78
+ })];
79
+
80
+ export function Notice() {
81
+ return <Reader source={'<notice>\n\n**自定义内容**\n\n</notice>'} plugins={plugins} />;
82
+ }
83
+ ```
84
+
85
+ `plugins` 追加到默认扩展;`extensions` 替换整个扩展列表,`extensions={[]}` 使用基础 CommonMark。同名扩展使用 `replaceExtension()` 显式替换。配置应保持引用稳定。
86
+
87
+ 插件可以拥有完整卡片 UI(`overlay.Card`)、侧栏摘要(`sidebar.Preview`)、异步加载和选区操作。使用 [AI 插件开发 Skill](skills/limr-plugin-development/SKILL.md) 或[独立插件包指南](docs/zh-CN/plugin-packages.md)创建可安装的包,再通过 `plugins` 引入。仓库提供[笔记](examples/notes.tsx)、[流式助手](examples/assistant.tsx)、[独立插件](examples/packages/reading-tools/index.js)和 [CSS 主题](examples/packages/paper-theme/index.css)示例;`@limr-example/*` 是未发布的本地示例包。
88
+
89
+ ## AI Skills
90
+
91
+ | Skill | 用途 |
92
+ | --- | --- |
93
+ | [limr-use](skills/limr-use/SKILL.md) | 指导 AI 在项目中接入 LiMR、编写内容、配置交互和引入已有插件 |
94
+ | [limr-plugin-development](skills/limr-plugin-development/SKILL.md) | 指导 AI 开发独立模块包,附带 TypeScript / ESM / CSS 模板及验证步骤 |
95
+
96
+ Skills 随 npm 包分发,也可以从仓库下载。复制完整目录即可保留引用文件和模板;[下载、安装与调用说明](docs/zh-CN/ai-skills.md)包含 Codex 项目级与用户级配置。
97
+
98
+ ## 样式与运行方式
99
+
100
+ - `styles.css` 包含默认浅色/深色样式和本地 Maple 代码字体;`styles/base.css` 提供相同样式但不加载 Maple。字体资产仍包含在 npm 包中。两者选一即可。
101
+ - `appearance` 为 CSS 主题提供作用域,也会传播到 portal 中的工具栏和浮层。正文中文字体由应用或系统提供。
102
+ - 代码高亮和公式按需加载。视频默认接近视口时加载,可以配置为点击加载;远程媒体仍可能访问其来源站点。
103
+ - 保留全文 DOM,支持浏览器查找、原生选择与打印。流式追加复用稳定区块,结束时完整解析;并非所有编辑都能局部解析。
104
+ - 未注册的 HTML 显示为原文,Markdown 中的 JavaScript 表达式不执行。自定义组件负责自己的数据和远程请求。
105
+
106
+ 详见[样式与字体](docs/zh-CN/styles.md)、[API](docs/zh-CN/api.md)和[性能与限制](docs/zh-CN/performance.md)。
107
+
108
+ ## 本地开发
109
+
110
+ ```sh
111
+ pnpm install
112
+ pnpm dev
113
+ pnpm check
114
+ pnpm test:docs
115
+ pnpm exec playwright install chromium
116
+ pnpm test:browser
117
+ ```
118
+
119
+ 本地开发需要 Python 3 生成 Skill 下载归档。标题栏可切换 Docs / Playground,Docs 由 LiMR 渲染,可切换语言。
120
+
121
+ 本地 Playground 位于 `http://127.0.0.1:4173`。纯解析场景使用 `@linloir/limr/core`,不依赖 React/DOM;其他入口为 `@linloir/limr/react` 和 `@linloir/limr/extensions`。
122
+
123
+ [MIT License](LICENSE). Developed with Codex.
@@ -0,0 +1,237 @@
1
+ {
2
+ "date": "2026-10-12T09:32:24.107Z",
3
+ "browser": "156.0.8078.4",
4
+ "measurement": "Synchronous React update plus forced layout, production Vite build. Each trial has an isolated page, font-ready warmup and alternating renderer order. Streaming updates spaced by one animation frame; idle frame time excluded.",
5
+ "results": [
6
+ {
7
+ "sections": 200,
8
+ "renderer": "limr",
9
+ "median": {
10
+ "characters": 87381,
11
+ "updates": 1,
12
+ "totalMs": 126.10000002384186,
13
+ "p95Ms": 126.10000002384186,
14
+ "maxMs": 126.10000002384186,
15
+ "elements": 4002
16
+ },
17
+ "samples": [
18
+ {
19
+ "characters": 87381,
20
+ "updates": 1,
21
+ "totalMs": 124.69999998807907,
22
+ "p95Ms": 124.69999998807907,
23
+ "maxMs": 124.69999998807907,
24
+ "elements": 4002
25
+ },
26
+ {
27
+ "characters": 87381,
28
+ "updates": 1,
29
+ "totalMs": 126.10000002384186,
30
+ "p95Ms": 126.10000002384186,
31
+ "maxMs": 126.10000002384186,
32
+ "elements": 4002
33
+ },
34
+ {
35
+ "characters": 87381,
36
+ "updates": 1,
37
+ "totalMs": 147.5,
38
+ "p95Ms": 147.5,
39
+ "maxMs": 147.5,
40
+ "elements": 4002
41
+ }
42
+ ]
43
+ },
44
+ {
45
+ "sections": 200,
46
+ "renderer": "react-markdown",
47
+ "median": {
48
+ "characters": 87381,
49
+ "updates": 1,
50
+ "totalMs": 134,
51
+ "p95Ms": 134,
52
+ "maxMs": 134,
53
+ "elements": 3601
54
+ },
55
+ "samples": [
56
+ {
57
+ "characters": 87381,
58
+ "updates": 1,
59
+ "totalMs": 122.40000003576279,
60
+ "p95Ms": 122.40000003576279,
61
+ "maxMs": 122.40000003576279,
62
+ "elements": 3601
63
+ },
64
+ {
65
+ "characters": 87381,
66
+ "updates": 1,
67
+ "totalMs": 134,
68
+ "p95Ms": 134,
69
+ "maxMs": 134,
70
+ "elements": 3601
71
+ },
72
+ {
73
+ "characters": 87381,
74
+ "updates": 1,
75
+ "totalMs": 142.39999997615814,
76
+ "p95Ms": 142.39999997615814,
77
+ "maxMs": 142.39999997615814,
78
+ "elements": 3601
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ "sections": 2000,
84
+ "renderer": "limr",
85
+ "median": {
86
+ "characters": 877782,
87
+ "updates": 1,
88
+ "totalMs": 1345.4000000357628,
89
+ "p95Ms": 1345.4000000357628,
90
+ "maxMs": 1345.4000000357628,
91
+ "elements": 40002
92
+ },
93
+ "samples": [
94
+ {
95
+ "characters": 877782,
96
+ "updates": 1,
97
+ "totalMs": 1337.699999988079,
98
+ "p95Ms": 1337.699999988079,
99
+ "maxMs": 1337.699999988079,
100
+ "elements": 40002
101
+ },
102
+ {
103
+ "characters": 877782,
104
+ "updates": 1,
105
+ "totalMs": 1345.4000000357628,
106
+ "p95Ms": 1345.4000000357628,
107
+ "maxMs": 1345.4000000357628,
108
+ "elements": 40002
109
+ },
110
+ {
111
+ "characters": 877782,
112
+ "updates": 1,
113
+ "totalMs": 1394.199999988079,
114
+ "p95Ms": 1394.199999988079,
115
+ "maxMs": 1394.199999988079,
116
+ "elements": 40002
117
+ }
118
+ ]
119
+ },
120
+ {
121
+ "sections": 2000,
122
+ "renderer": "react-markdown",
123
+ "median": {
124
+ "characters": 877782,
125
+ "updates": 1,
126
+ "totalMs": 1437.5999999642372,
127
+ "p95Ms": 1437.5999999642372,
128
+ "maxMs": 1437.5999999642372,
129
+ "elements": 36001
130
+ },
131
+ "samples": [
132
+ {
133
+ "characters": 877782,
134
+ "updates": 1,
135
+ "totalMs": 1308.1000000238419,
136
+ "p95Ms": 1308.1000000238419,
137
+ "maxMs": 1308.1000000238419,
138
+ "elements": 36001
139
+ },
140
+ {
141
+ "characters": 877782,
142
+ "updates": 1,
143
+ "totalMs": 1437.5999999642372,
144
+ "p95Ms": 1437.5999999642372,
145
+ "maxMs": 1437.5999999642372,
146
+ "elements": 36001
147
+ },
148
+ {
149
+ "characters": 877782,
150
+ "updates": 1,
151
+ "totalMs": 1481.3999999761581,
152
+ "p95Ms": 1481.3999999761581,
153
+ "maxMs": 1481.3999999761581,
154
+ "elements": 36001
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ "sections": 80,
160
+ "stream": true,
161
+ "renderer": "limr",
162
+ "median": {
163
+ "characters": 34860,
164
+ "updates": 138,
165
+ "totalMs": 306.09999972581863,
166
+ "p95Ms": 2.900000035762787,
167
+ "maxMs": 31.099999964237213,
168
+ "elements": 1602
169
+ },
170
+ "samples": [
171
+ {
172
+ "characters": 34860,
173
+ "updates": 138,
174
+ "totalMs": 298.60000014305115,
175
+ "p95Ms": 2.800000011920929,
176
+ "maxMs": 31.80000001192093,
177
+ "elements": 1602
178
+ },
179
+ {
180
+ "characters": 34860,
181
+ "updates": 138,
182
+ "totalMs": 306.09999972581863,
183
+ "p95Ms": 2.900000035762787,
184
+ "maxMs": 31.099999964237213,
185
+ "elements": 1602
186
+ },
187
+ {
188
+ "characters": 34860,
189
+ "updates": 138,
190
+ "totalMs": 317.099999666214,
191
+ "p95Ms": 3,
192
+ "maxMs": 31.600000023841858,
193
+ "elements": 1602
194
+ }
195
+ ]
196
+ },
197
+ {
198
+ "sections": 80,
199
+ "stream": true,
200
+ "renderer": "react-markdown",
201
+ "median": {
202
+ "characters": 34860,
203
+ "updates": 138,
204
+ "totalMs": 1864.100000321865,
205
+ "p95Ms": 23.69999998807907,
206
+ "maxMs": 32.80000001192093,
207
+ "elements": 1441
208
+ },
209
+ "samples": [
210
+ {
211
+ "characters": 34860,
212
+ "updates": 138,
213
+ "totalMs": 1842.2000004649162,
214
+ "p95Ms": 26,
215
+ "maxMs": 27.80000001192093,
216
+ "elements": 1441
217
+ },
218
+ {
219
+ "characters": 34860,
220
+ "updates": 138,
221
+ "totalMs": 1864.100000321865,
222
+ "p95Ms": 23.69999998807907,
223
+ "maxMs": 32.80000001192093,
224
+ "elements": 1441
225
+ },
226
+ {
227
+ "characters": 34860,
228
+ "updates": 138,
229
+ "totalMs": 1893.8000000715256,
230
+ "p95Ms": 22.900000035762787,
231
+ "maxMs": 37.799999952316284,
232
+ "elements": 1441
233
+ }
234
+ ]
235
+ }
236
+ ]
237
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "date": "2026-10-12T09:34:31.373Z",
3
+ "node": "v20.19.5",
4
+ "mode": "production",
5
+ "platform": "linux 6.18.40.1-microsoft-standard-WSL2",
6
+ "cpu": "13th Gen Intel(R) Core(TM) i7-13700",
7
+ "results": [
8
+ {
9
+ "scenario": "static-gfm",
10
+ "characters": 87381,
11
+ "sections": 200,
12
+ "core": {
13
+ "medianMs": 109.32,
14
+ "minMs": 102.73,
15
+ "maxMs": 125.04
16
+ },
17
+ "mdast": {
18
+ "medianMs": 101.78,
19
+ "minMs": 95.3,
20
+ "maxMs": 114.94
21
+ },
22
+ "limrSSR": {
23
+ "medianMs": 123.85,
24
+ "minMs": 123.37,
25
+ "maxMs": 132.6
26
+ },
27
+ "reactMarkdownSSR": {
28
+ "medianMs": 135.8,
29
+ "minMs": 133.71,
30
+ "maxMs": 162.13
31
+ }
32
+ },
33
+ {
34
+ "scenario": "static-gfm",
35
+ "characters": 877782,
36
+ "sections": 2000,
37
+ "core": {
38
+ "medianMs": 2702.76,
39
+ "minMs": 2546.75,
40
+ "maxMs": 6815.28
41
+ },
42
+ "mdast": {
43
+ "medianMs": 2864.73,
44
+ "minMs": 2501.24,
45
+ "maxMs": 4779.01
46
+ },
47
+ "limrSSR": {
48
+ "medianMs": 5508.29,
49
+ "minMs": 2642.18,
50
+ "maxMs": 9102.85
51
+ },
52
+ "reactMarkdownSSR": {
53
+ "medianMs": 2720.7,
54
+ "minMs": 2698.5,
55
+ "maxMs": 5033.33
56
+ }
57
+ },
58
+ {
59
+ "scenario": "streaming-gfm",
60
+ "characters": 34860,
61
+ "chunkSize": 256,
62
+ "updates": 137,
63
+ "incremental": {
64
+ "medianMs": 164.04,
65
+ "minMs": 152.69,
66
+ "maxMs": 175.39
67
+ },
68
+ "fullParse": {
69
+ "medianMs": 2673.74,
70
+ "minMs": 2626.34,
71
+ "maxMs": 2769.29
72
+ }
73
+ }
74
+ ]
75
+ }