@sync-in/server 1.8.0 → 1.9.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 (611) hide show
  1. package/CHANGELOG.md +64 -10
  2. package/environment/environment.dist.yaml +29 -26
  3. package/package.json +18 -17
  4. package/server/app.bootstrap.js +4 -2
  5. package/server/app.bootstrap.js.map +1 -1
  6. package/server/app.constants.js +9 -0
  7. package/server/app.constants.js.map +1 -1
  8. package/server/app.module.js +4 -0
  9. package/server/app.module.js.map +1 -1
  10. package/server/applications/admin/admin.module.js +6 -1
  11. package/server/applications/admin/admin.module.js.map +1 -1
  12. package/server/applications/{notifications/interfaces/user-mail-notification.js → admin/interfaces/check-update.interfaces.js} +1 -1
  13. package/server/applications/admin/interfaces/check-update.interfaces.js.map +1 -0
  14. package/server/applications/admin/services/admin-scheduler.service.js +53 -0
  15. package/server/applications/admin/services/admin-scheduler.service.js.map +1 -0
  16. package/server/applications/admin/services/admin.service.js +102 -0
  17. package/server/applications/admin/services/admin.service.js.map +1 -0
  18. package/server/applications/admin/services/admin.service.spec.js +46 -0
  19. package/server/applications/admin/services/admin.service.spec.js.map +1 -0
  20. package/server/applications/admin/utils/check-update.js +28 -0
  21. package/server/applications/admin/utils/check-update.js.map +1 -0
  22. package/server/applications/comments/services/comments-manager.service.js +1 -1
  23. package/server/applications/comments/services/comments-manager.service.js.map +1 -1
  24. package/server/applications/comments/services/comments-manager.service.spec.js +1 -1
  25. package/server/applications/comments/services/comments-manager.service.spec.js.map +1 -1
  26. package/server/applications/comments/services/comments-queries.service.js.map +1 -1
  27. package/server/applications/files/constants/cache.js +10 -1
  28. package/server/applications/files/constants/cache.js.map +1 -1
  29. package/server/applications/files/constants/only-office.js +0 -25
  30. package/server/applications/files/constants/only-office.js.map +1 -1
  31. package/server/applications/files/constants/operations.js +20 -3
  32. package/server/applications/files/constants/operations.js.map +1 -1
  33. package/server/applications/files/dto/file-operations.dto.js +7 -0
  34. package/server/applications/files/dto/file-operations.dto.js.map +1 -1
  35. package/server/applications/files/files-only-office.controller.js +3 -2
  36. package/server/applications/files/files-only-office.controller.js.map +1 -1
  37. package/server/applications/files/files-only-office.controller.spec.js +6 -5
  38. package/server/applications/files/files-only-office.controller.spec.js.map +1 -1
  39. package/server/applications/files/files.controller.js +100 -12
  40. package/server/applications/files/files.controller.js.map +1 -1
  41. package/server/applications/files/files.controller.spec.js +29 -8
  42. package/server/applications/files/files.controller.spec.js.map +1 -1
  43. package/server/applications/files/guards/files-only-office.guard.js +6 -0
  44. package/server/applications/files/guards/files-only-office.guard.js.map +1 -1
  45. package/server/applications/files/interfaces/file-db-props.interface.js.map +1 -1
  46. package/server/applications/files/interfaces/file-props.interface.js.map +1 -1
  47. package/server/applications/files/interfaces/only-office-config.interface.js.map +1 -1
  48. package/server/applications/files/services/files-content-manager.service.js +3 -3
  49. package/server/applications/files/services/files-content-manager.service.js.map +1 -1
  50. package/server/applications/files/services/files-lock-manager.service.js +61 -22
  51. package/server/applications/files/services/files-lock-manager.service.js.map +1 -1
  52. package/server/applications/files/services/files-manager.service.js +122 -24
  53. package/server/applications/files/services/files-manager.service.js.map +1 -1
  54. package/server/applications/files/services/files-manager.service.spec.js +15 -0
  55. package/server/applications/files/services/files-manager.service.spec.js.map +1 -1
  56. package/server/applications/files/services/files-methods.service.js +39 -14
  57. package/server/applications/files/services/files-methods.service.js.map +1 -1
  58. package/server/applications/files/services/files-only-office-manager.service.js +12 -12
  59. package/server/applications/files/services/files-only-office-manager.service.js.map +1 -1
  60. package/server/applications/files/services/files-parser.service.js +1 -1
  61. package/server/applications/files/services/files-parser.service.js.map +1 -1
  62. package/server/applications/files/services/files-queries.service.js +10 -0
  63. package/server/applications/files/services/files-queries.service.js.map +1 -1
  64. package/server/applications/files/utils/doc-textify/adapters/pdf.js +5 -16
  65. package/server/applications/files/utils/doc-textify/adapters/pdf.js.map +1 -1
  66. package/server/applications/files/utils/files.js +1 -1
  67. package/server/applications/files/utils/files.js.map +1 -1
  68. package/server/applications/files/utils/send-file.js +3 -2
  69. package/server/applications/files/utils/send-file.js.map +1 -1
  70. package/server/applications/links/services/links-queries.service.js +1 -1
  71. package/server/applications/links/services/links-queries.service.js.map +1 -1
  72. package/server/applications/notifications/constants/notifications.js +5 -1
  73. package/server/applications/notifications/constants/notifications.js.map +1 -1
  74. package/server/applications/notifications/i18n/de.js +8 -2
  75. package/server/applications/notifications/i18n/de.js.map +1 -1
  76. package/server/applications/notifications/i18n/es.js +8 -2
  77. package/server/applications/notifications/i18n/es.js.map +1 -1
  78. package/server/applications/notifications/i18n/fr.js +8 -2
  79. package/server/applications/notifications/i18n/fr.js.map +1 -1
  80. package/server/applications/notifications/i18n/hi.js +8 -2
  81. package/server/applications/notifications/i18n/hi.js.map +1 -1
  82. package/server/applications/notifications/i18n/it.js +8 -2
  83. package/server/applications/notifications/i18n/it.js.map +1 -1
  84. package/server/applications/notifications/i18n/ja.js +8 -2
  85. package/server/applications/notifications/i18n/ja.js.map +1 -1
  86. package/server/applications/notifications/i18n/ko.js +8 -2
  87. package/server/applications/notifications/i18n/ko.js.map +1 -1
  88. package/server/applications/notifications/i18n/pl.js +8 -2
  89. package/server/applications/notifications/i18n/pl.js.map +1 -1
  90. package/server/applications/notifications/i18n/pt.js +8 -2
  91. package/server/applications/notifications/i18n/pt.js.map +1 -1
  92. package/server/applications/notifications/i18n/pt_br.js +8 -2
  93. package/server/applications/notifications/i18n/pt_br.js.map +1 -1
  94. package/server/applications/notifications/i18n/ru.js +8 -2
  95. package/server/applications/notifications/i18n/ru.js.map +1 -1
  96. package/server/applications/notifications/i18n/tr.js +8 -2
  97. package/server/applications/notifications/i18n/tr.js.map +1 -1
  98. package/server/applications/notifications/i18n/zh.js +8 -2
  99. package/server/applications/notifications/i18n/zh.js.map +1 -1
  100. package/server/applications/notifications/interfaces/notification-properties.interface.js.map +1 -1
  101. package/server/applications/notifications/interfaces/user-mail-notification.interface.js +10 -0
  102. package/server/applications/notifications/interfaces/user-mail-notification.interface.js.map +1 -0
  103. package/server/applications/notifications/mails/models.js +38 -3
  104. package/server/applications/notifications/mails/models.js.map +1 -1
  105. package/server/applications/notifications/mails/templates.js +1 -1
  106. package/server/applications/notifications/mails/templates.js.map +1 -1
  107. package/server/applications/notifications/services/notifications-manager.service.js +8 -1
  108. package/server/applications/notifications/services/notifications-manager.service.js.map +1 -1
  109. package/server/applications/notifications/services/notifications-queries.service.js.map +1 -1
  110. package/server/applications/shares/services/shares-manager.service.js +17 -10
  111. package/server/applications/shares/services/shares-manager.service.js.map +1 -1
  112. package/server/applications/shares/services/shares-manager.service.spec.js +10 -3
  113. package/server/applications/shares/services/shares-manager.service.spec.js.map +1 -1
  114. package/server/applications/shares/services/shares-queries.service.js +11 -1
  115. package/server/applications/shares/services/shares-queries.service.js.map +1 -1
  116. package/server/applications/spaces/guards/space.guard.spec.js +2 -2
  117. package/server/applications/spaces/guards/space.guard.spec.js.map +1 -1
  118. package/server/applications/spaces/services/spaces-browser.service.js +31 -11
  119. package/server/applications/spaces/services/spaces-browser.service.js.map +1 -1
  120. package/server/applications/spaces/services/spaces-manager.service.js +2 -2
  121. package/server/applications/spaces/services/spaces-manager.service.js.map +1 -1
  122. package/server/applications/spaces/services/spaces-queries.service.js +6 -2
  123. package/server/applications/spaces/services/spaces-queries.service.js.map +1 -1
  124. package/server/applications/spaces/utils/permissions.js +2 -2
  125. package/server/applications/spaces/utils/permissions.js.map +1 -1
  126. package/server/applications/sync/services/sync-manager.service.js +1 -0
  127. package/server/applications/sync/services/sync-manager.service.js.map +1 -1
  128. package/server/applications/sync/services/sync-paths-manager.service.js +1 -1
  129. package/server/applications/sync/services/sync-paths-manager.service.js.map +1 -1
  130. package/server/applications/sync/services/sync-paths-manager.service.spec.js +1 -1
  131. package/server/applications/sync/services/sync-paths-manager.service.spec.js.map +1 -1
  132. package/server/applications/users/constants/user.js +1 -1
  133. package/server/applications/users/constants/user.js.map +1 -1
  134. package/server/applications/users/services/admin-users-queries.service.js +8 -0
  135. package/server/applications/users/services/admin-users-queries.service.js.map +1 -1
  136. package/server/applications/users/services/users-manager.service.js +1 -2
  137. package/server/applications/users/services/users-manager.service.js.map +1 -1
  138. package/server/applications/users/services/users-queries.service.js +67 -68
  139. package/server/applications/users/services/users-queries.service.js.map +1 -1
  140. package/server/applications/users/users.gateway.js +6 -0
  141. package/server/applications/users/users.gateway.js.map +1 -1
  142. package/server/applications/users/users.module.js +2 -1
  143. package/server/applications/users/users.module.js.map +1 -1
  144. package/server/applications/webdav/guards/webdav-protocol.guard.js +4 -4
  145. package/server/applications/webdav/guards/webdav-protocol.guard.js.map +1 -1
  146. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js +6 -6
  147. package/server/applications/webdav/guards/webdav-protocol.guard.spec.js.map +1 -1
  148. package/server/applications/webdav/services/webdav-methods.service.js +3 -2
  149. package/server/applications/webdav/services/webdav-methods.service.js.map +1 -1
  150. package/server/applications/webdav/services/webdav-methods.service.spec.js +2 -2
  151. package/server/applications/webdav/services/webdav-methods.service.spec.js.map +1 -1
  152. package/server/authentication/constants/auth-ldap.js +2 -0
  153. package/server/authentication/constants/auth-ldap.js.map +1 -1
  154. package/server/authentication/services/auth-methods/auth-method-ldap.service.js +34 -21
  155. package/server/authentication/services/auth-methods/auth-method-ldap.service.js.map +1 -1
  156. package/server/common/functions.js +0 -8
  157. package/server/common/functions.js.map +1 -1
  158. package/server/common/image.js +63 -58
  159. package/server/common/image.js.map +1 -1
  160. package/server/common/shared.js +18 -1
  161. package/server/common/shared.js.map +1 -1
  162. package/server/infrastructure/context/services/context-manager.service.js +3 -0
  163. package/server/infrastructure/context/services/context-manager.service.js.map +1 -1
  164. package/server/infrastructure/websocket/adapters/cluster.adapter.js +4 -4
  165. package/server/infrastructure/websocket/adapters/cluster.adapter.js.map +1 -1
  166. package/static/3rdpartylicenses.txt +1380 -57
  167. package/static/assets/favicon.svg +2 -25
  168. package/static/assets/logo-dark.svg +2 -32
  169. package/static/assets/logo.svg +2 -32
  170. package/static/assets/mimes/application-sql.svg +29 -1
  171. package/static/assets/mimes/application-x-sql.svg +29 -0
  172. package/static/assets/mimes/image-bmp.svg +12 -0
  173. package/static/assets/pdfjs/build/pdf.mjs +4869 -4454
  174. package/static/assets/pdfjs/build/pdf.mjs.map +1 -1
  175. package/static/assets/pdfjs/build/pdf.sandbox.mjs +3 -3
  176. package/static/assets/pdfjs/build/pdf.sandbox.mjs.map +1 -1
  177. package/static/assets/pdfjs/build/pdf.worker.mjs +885 -596
  178. package/static/assets/pdfjs/build/pdf.worker.mjs.map +1 -1
  179. package/static/assets/pdfjs/version +1 -1
  180. package/static/assets/pdfjs/web/locale/be/viewer.ftl +40 -0
  181. package/static/assets/pdfjs/web/locale/bg/viewer.ftl +2 -0
  182. package/static/assets/pdfjs/web/locale/cs/viewer.ftl +41 -0
  183. package/static/assets/pdfjs/web/locale/cy/viewer.ftl +43 -0
  184. package/static/assets/pdfjs/web/locale/da/viewer.ftl +39 -0
  185. package/static/assets/pdfjs/web/locale/de/viewer.ftl +41 -0
  186. package/static/assets/pdfjs/web/locale/dsb/viewer.ftl +43 -0
  187. package/static/assets/pdfjs/web/locale/el/viewer.ftl +39 -0
  188. package/static/assets/pdfjs/web/locale/en-CA/viewer.ftl +35 -0
  189. package/static/assets/pdfjs/web/locale/en-GB/viewer.ftl +41 -0
  190. package/static/assets/pdfjs/web/locale/en-US/viewer.ftl +2 -2
  191. package/static/assets/pdfjs/web/locale/eo/viewer.ftl +39 -0
  192. package/static/assets/pdfjs/web/locale/es-AR/viewer.ftl +41 -0
  193. package/static/assets/pdfjs/web/locale/es-CL/viewer.ftl +39 -0
  194. package/static/assets/pdfjs/web/locale/es-ES/viewer.ftl +72 -0
  195. package/static/assets/pdfjs/web/locale/es-MX/viewer.ftl +120 -0
  196. package/static/assets/pdfjs/web/locale/eu/viewer.ftl +41 -0
  197. package/static/assets/pdfjs/web/locale/fi/viewer.ftl +41 -0
  198. package/static/assets/pdfjs/web/locale/fr/viewer.ftl +41 -0
  199. package/static/assets/pdfjs/web/locale/fur/viewer.ftl +77 -0
  200. package/static/assets/pdfjs/web/locale/fy-NL/viewer.ftl +41 -0
  201. package/static/assets/pdfjs/web/locale/gn/viewer.ftl +39 -0
  202. package/static/assets/pdfjs/web/locale/he/viewer.ftl +41 -0
  203. package/static/assets/pdfjs/web/locale/hsb/viewer.ftl +43 -0
  204. package/static/assets/pdfjs/web/locale/hu/viewer.ftl +41 -0
  205. package/static/assets/pdfjs/web/locale/hy-AM/viewer.ftl +1 -1
  206. package/static/assets/pdfjs/web/locale/ia/viewer.ftl +41 -0
  207. package/static/assets/pdfjs/web/locale/it/viewer.ftl +41 -0
  208. package/static/assets/pdfjs/web/locale/ja/viewer.ftl +32 -0
  209. package/static/assets/pdfjs/web/locale/ka/viewer.ftl +41 -0
  210. package/static/assets/pdfjs/web/locale/kab/viewer.ftl +73 -0
  211. package/static/assets/pdfjs/web/locale/kk/viewer.ftl +21 -0
  212. package/static/assets/pdfjs/web/locale/ko/viewer.ftl +38 -1
  213. package/static/assets/pdfjs/web/locale/nb-NO/viewer.ftl +39 -0
  214. package/static/assets/pdfjs/web/locale/nl/viewer.ftl +41 -0
  215. package/static/assets/pdfjs/web/locale/nn-NO/viewer.ftl +37 -0
  216. package/static/assets/pdfjs/web/locale/pa-IN/viewer.ftl +37 -0
  217. package/static/assets/pdfjs/web/locale/pl/viewer.ftl +39 -0
  218. package/static/assets/pdfjs/web/locale/pt-BR/viewer.ftl +39 -0
  219. package/static/assets/pdfjs/web/locale/rm/viewer.ftl +73 -0
  220. package/static/assets/pdfjs/web/locale/ro/viewer.ftl +41 -0
  221. package/static/assets/pdfjs/web/locale/ru/viewer.ftl +42 -0
  222. package/static/assets/pdfjs/web/locale/sc/viewer.ftl +6 -0
  223. package/static/assets/pdfjs/web/locale/sk/viewer.ftl +43 -0
  224. package/static/assets/pdfjs/web/locale/sl/viewer.ftl +42 -1
  225. package/static/assets/pdfjs/web/locale/sq/viewer.ftl +77 -0
  226. package/static/assets/pdfjs/web/locale/sv-SE/viewer.ftl +41 -0
  227. package/static/assets/pdfjs/web/locale/tg/viewer.ftl +39 -0
  228. package/static/assets/pdfjs/web/locale/th/viewer.ftl +35 -0
  229. package/static/assets/pdfjs/web/locale/tr/viewer.ftl +39 -0
  230. package/static/assets/pdfjs/web/locale/vi/viewer.ftl +42 -5
  231. package/static/assets/pdfjs/web/locale/zh-CN/viewer.ftl +35 -0
  232. package/static/assets/pdfjs/web/locale/zh-TW/viewer.ftl +37 -0
  233. package/static/assets/pdfjs/web/viewer.css +141 -110
  234. package/static/assets/pdfjs/web/viewer.html +7 -7
  235. package/static/assets/pdfjs/web/viewer.mjs +97 -14
  236. package/static/assets/pdfjs/web/viewer.mjs.map +1 -1
  237. package/static/chunk-22DWHRCL.js +1 -0
  238. package/static/chunk-23UUFZSR.js +1 -0
  239. package/static/{chunk-VM4YX6Q7.js → chunk-24Q7OUU2.js} +1 -1
  240. package/static/chunk-25QTY2GI.js +1 -0
  241. package/static/chunk-2E7IJZLL.js +1 -0
  242. package/static/chunk-2FC5EKS5.js +1 -0
  243. package/static/chunk-2FOWUJQF.js +1 -0
  244. package/static/chunk-2XPHUNYN.js +1 -0
  245. package/static/chunk-32L7RG2G.js +1 -0
  246. package/static/chunk-3IISSX63.js +1 -0
  247. package/static/chunk-3OHSTP3R.js +1 -0
  248. package/static/chunk-42L6C5MT.js +1 -0
  249. package/static/chunk-4AGQL5GV.js +1 -0
  250. package/static/chunk-4BPSQMI2.js +1 -0
  251. package/static/chunk-4FDRWZWT.js +1 -0
  252. package/static/chunk-4FJUCMEG.js +1 -0
  253. package/static/chunk-4GCCF6PF.js +1 -0
  254. package/static/chunk-4ORP3SBY.js +1 -0
  255. package/static/chunk-4QBOHIC3.js +1 -0
  256. package/static/chunk-4YT6K5KY.js +1 -0
  257. package/static/chunk-556I6YIW.js +1 -0
  258. package/static/chunk-5DPIGJU4.js +1 -0
  259. package/static/chunk-5HNQLBSW.js +3 -0
  260. package/static/chunk-5IL7C45D.js +1 -0
  261. package/static/chunk-5KJXGMKR.js +1 -0
  262. package/static/chunk-5SPGSHKL.js +1 -0
  263. package/static/chunk-5WCQBTXW.js +1 -0
  264. package/static/chunk-5XUIPWOH.js +1 -0
  265. package/static/chunk-62WT7PI3.js +1 -0
  266. package/static/chunk-6F6OMQ5H.js +1 -0
  267. package/static/chunk-6I5BGQHT.js +1 -0
  268. package/static/chunk-6NOS45DG.js +1 -0
  269. package/static/chunk-6OKLPRCD.js +1 -0
  270. package/static/chunk-6VEJCG43.js +1 -0
  271. package/static/chunk-77SS36Z2.js +1 -0
  272. package/static/chunk-7AXEPO3G.js +1 -0
  273. package/static/chunk-7CFSJ4BO.js +1 -0
  274. package/static/chunk-7CKHC72R.js +1 -0
  275. package/static/chunk-7DUTYOJG.js +1 -0
  276. package/static/chunk-7HKFYRPF.js +1 -0
  277. package/static/chunk-7NZJZATZ.js +1 -0
  278. package/static/chunk-AADK5D2H.js +1 -0
  279. package/static/chunk-ACUF7IKP.js +1 -0
  280. package/static/chunk-AGREZPV4.js +1 -0
  281. package/static/chunk-ATBJWFA3.js +1 -0
  282. package/static/chunk-ATXLZN2B.js +1 -0
  283. package/static/chunk-AZ5TF5Y3.js +1 -0
  284. package/static/chunk-BBHYIURC.js +1 -0
  285. package/static/chunk-BHZEPHRI.js +13 -0
  286. package/static/chunk-BQZWSZNN.js +1 -0
  287. package/static/chunk-BSB4VROD.js +2 -0
  288. package/static/chunk-BYWSTP3P.js +1 -0
  289. package/static/chunk-C3AAEQKW.js +1 -0
  290. package/static/chunk-CCGGCHGN.js +1 -0
  291. package/static/chunk-CFTKW432.js +1 -0
  292. package/static/chunk-CNOVT6KU.js +1 -0
  293. package/static/chunk-D56H3XE2.js +1 -0
  294. package/static/chunk-DFOOSIIA.js +1 -0
  295. package/static/chunk-DHFQIFOF.js +1 -0
  296. package/static/{chunk-3GMLWAFZ.js → chunk-DIC2MVRI.js} +1 -1
  297. package/static/chunk-DJDRX53V.js +2 -0
  298. package/static/chunk-DKGXUMLT.js +1 -0
  299. package/static/chunk-DRHPEERW.js +2 -0
  300. package/static/chunk-DWYP6ZGG.js +1 -0
  301. package/static/chunk-EDJAISWO.js +13 -0
  302. package/static/chunk-EIYRBM4J.js +1 -0
  303. package/static/chunk-EKEGRXCV.js +7 -0
  304. package/static/chunk-EL6QL4TP.js +1 -0
  305. package/static/chunk-ERDZ7IVF.js +1 -0
  306. package/static/chunk-EVQKKVUZ.js +1 -0
  307. package/static/chunk-F2XG7EWI.js +1 -0
  308. package/static/chunk-F672FY5I.js +1 -0
  309. package/static/chunk-F6V37MKG.js +1 -0
  310. package/static/chunk-F7TXTNZC.js +1 -0
  311. package/static/chunk-FCGTI42I.js +1 -0
  312. package/static/chunk-FQHOSSCO.js +1 -0
  313. package/static/chunk-FTSIPHMG.js +1 -0
  314. package/static/chunk-GAGHHYLF.js +1 -0
  315. package/static/{chunk-JPT5WEAT.js → chunk-GOJYWL2M.js} +1 -1
  316. package/static/chunk-H6WOTGQ5.js +1 -0
  317. package/static/{chunk-CHJ64RJM.js → chunk-H6ZXFINQ.js} +1 -1
  318. package/static/chunk-HC7F57NA.js +1 -0
  319. package/static/chunk-HHWXIK2M.js +7 -0
  320. package/static/chunk-HKRGIRKB.js +3 -0
  321. package/static/chunk-HNMGPG72.js +1 -0
  322. package/static/chunk-HS4S6BV3.js +1 -0
  323. package/static/chunk-IJ7K7ATQ.js +1 -0
  324. package/static/chunk-IOIBQGHN.js +562 -0
  325. package/static/chunk-ITVA26X2.js +2 -0
  326. package/static/chunk-J6YSFHLZ.js +1 -0
  327. package/static/chunk-JAEJ6IMV.js +1 -0
  328. package/static/chunk-JB5R6V33.js +1 -0
  329. package/static/chunk-JF6WIV6M.js +1 -0
  330. package/static/chunk-JGB4LLUT.js +1 -0
  331. package/static/chunk-JGXVTKLG.js +1 -0
  332. package/static/chunk-JMYAD7E2.js +1 -0
  333. package/static/chunk-JSE63Q5X.js +1 -0
  334. package/static/chunk-JVV3ZL6L.js +1 -0
  335. package/static/chunk-JXZCNFW7.js +1 -0
  336. package/static/chunk-KAVP6UXH.js +1 -0
  337. package/static/{chunk-WLMNXRBS.js → chunk-KDEEERWZ.js} +1 -1
  338. package/static/chunk-KHRF67SG.js +1 -0
  339. package/static/chunk-KLOUBIO4.js +1 -0
  340. package/static/chunk-KMF3ZRAO.js +1 -0
  341. package/static/chunk-KNZ3AQPR.js +1 -0
  342. package/static/chunk-KT3TWCST.js +1 -0
  343. package/static/chunk-L6SYG23T.js +1 -0
  344. package/static/chunk-LJSVNPPQ.js +1 -0
  345. package/static/{chunk-LNTUR3GU.js → chunk-LRDKG274.js} +1 -1
  346. package/static/chunk-LRQSPCYZ.js +1 -0
  347. package/static/chunk-LUSVISM6.js +1 -0
  348. package/static/chunk-LXQGVNU2.js +1 -0
  349. package/static/{chunk-BIKLW4YS.js → chunk-LYZGJZNP.js} +1 -1
  350. package/static/chunk-LZKI5P5T.js +1 -0
  351. package/static/chunk-M4XL3JN5.js +6 -0
  352. package/static/{chunk-UNCPXHHT.js → chunk-MGWG7OD7.js} +1 -1
  353. package/static/chunk-MKUUWY6Y.js +1 -0
  354. package/static/{chunk-HAS5ZOTR.js → chunk-MNNCSSHN.js} +1 -1
  355. package/static/chunk-MR3U7TKQ.js +1 -0
  356. package/static/chunk-MRF3CNLZ.js +1 -0
  357. package/static/chunk-MRMSMTWD.js +1 -0
  358. package/static/chunk-MVZJSG5R.js +1 -0
  359. package/static/chunk-MYM43ENO.js +1 -0
  360. package/static/chunk-N3P6P6GW.js +7 -0
  361. package/static/chunk-NAH4V2R6.js +2 -0
  362. package/static/chunk-NBBDVVUF.js +1 -0
  363. package/static/chunk-NMF2ZFBE.js +1 -0
  364. package/static/chunk-NN4ONTOT.js +1 -0
  365. package/static/chunk-NOPACN4F.js +1 -0
  366. package/static/chunk-NYJPOP4L.js +1 -0
  367. package/static/chunk-OJCAIKUK.js +1 -0
  368. package/static/chunk-OQRWXCLY.js +1 -0
  369. package/static/chunk-PCFH5HCI.js +2 -0
  370. package/static/chunk-PG54TWBO.js +4 -0
  371. package/static/chunk-PJF5XUTO.js +1 -0
  372. package/static/{chunk-FJE6BOFL.js → chunk-PSUAQBYM.js} +1 -1
  373. package/static/chunk-PTLYIUFW.js +1 -0
  374. package/static/chunk-PZGLDZZM.js +1 -0
  375. package/static/chunk-Q4VNZGFI.js +1 -0
  376. package/static/chunk-Q556XB3S.js +1 -0
  377. package/static/{chunk-PB4AIT7O.js → chunk-Q7IXRPOO.js} +1 -1
  378. package/static/chunk-Q7U2VPIS.js +1 -0
  379. package/static/chunk-QM6CQMEX.js +1 -0
  380. package/static/chunk-QMHUIHSR.js +1 -0
  381. package/static/chunk-QNFNXDSX.js +1 -0
  382. package/static/chunk-QVFPHTOH.js +1 -0
  383. package/static/chunk-R4MI25E2.js +1 -0
  384. package/static/chunk-R7JRAR3P.js +1 -0
  385. package/static/chunk-R7PNKQU2.js +1 -0
  386. package/static/chunk-RCAORRB7.js +1 -0
  387. package/static/chunk-RK7XRDNB.js +1 -0
  388. package/static/chunk-RO7SAOLK.js +1 -0
  389. package/static/chunk-RQUUINHV.js +1 -0
  390. package/static/chunk-RT3K6DZR.js +1 -0
  391. package/static/chunk-RUN556VW.js +1 -0
  392. package/static/chunk-RX3YQ67K.js +1 -0
  393. package/static/chunk-S6EVLDHA.js +5 -0
  394. package/static/chunk-S7S5M3AZ.js +1 -0
  395. package/static/chunk-SBLNYV74.js +1 -0
  396. package/static/chunk-SIZCHHUA.js +1 -0
  397. package/static/chunk-SRBOO7AO.js +1 -0
  398. package/static/{chunk-PVDHBQRM.js → chunk-STA7NTYL.js} +1 -1
  399. package/static/chunk-T3YI3BSS.js +1 -0
  400. package/static/chunk-T74SMT7I.js +1 -0
  401. package/static/chunk-TAL3RTTQ.js +1 -0
  402. package/static/chunk-TJZKTNNS.js +1 -0
  403. package/static/chunk-UJTFWZEC.js +1 -0
  404. package/static/chunk-UPGVU5LG.js +1 -0
  405. package/static/chunk-UQ6O3I6W.js +1 -0
  406. package/static/{chunk-5NMSIIQB.js → chunk-V43RGNXA.js} +1 -1
  407. package/static/chunk-VWIRXLNE.js +1 -0
  408. package/static/chunk-VZMVGIVW.js +1 -0
  409. package/static/chunk-VZPCXSRG.js +2 -0
  410. package/static/chunk-WR3MA3L3.js +1 -0
  411. package/static/chunk-XCLK7NJL.js +1 -0
  412. package/static/{chunk-DSWEWLXJ.js → chunk-XCPDPB5G.js} +1 -1
  413. package/static/chunk-XEGHEUP5.js +1 -0
  414. package/static/chunk-XKEBQNQJ.js +1 -0
  415. package/static/chunk-XOF4UW3S.js +1 -0
  416. package/static/chunk-XOTKK2NJ.js +1 -0
  417. package/static/chunk-XX7JXKA6.js +1 -0
  418. package/static/chunk-Y2I36A4K.js +1 -0
  419. package/static/chunk-Y44XDRM5.js +1 -0
  420. package/static/{chunk-QO6BTONN.js → chunk-Y4MAPE2C.js} +1 -1
  421. package/static/chunk-Y5RLD72B.js +1 -0
  422. package/static/{chunk-DPUVSXRB.js → chunk-Y5XTRCFK.js} +1 -1
  423. package/static/chunk-Y63UUJGJ.js +1 -0
  424. package/static/chunk-YBNAC7QM.js +1 -0
  425. package/static/chunk-YCTCESL4.js +1 -0
  426. package/static/chunk-YMAN4LIU.js +1 -0
  427. package/static/chunk-YTDE6SXT.js +1 -0
  428. package/static/chunk-YZPIUJB3.js +1 -0
  429. package/static/chunk-ZCOWBVOT.js +1 -0
  430. package/static/chunk-ZHRYYMYE.js +1 -0
  431. package/static/chunk-ZNXTOQFG.js +1 -0
  432. package/static/{chunk-URHTCJ7G.js → chunk-ZQLBPLXI.js} +1 -1
  433. package/static/favicon.ico +0 -0
  434. package/static/index.html +2 -2
  435. package/static/main-3PLRDZTO.js +11 -0
  436. package/static/styles-Q4OZOSSK.css +1 -0
  437. package/server/applications/notifications/interfaces/user-mail-notification.js.map +0 -1
  438. package/static/assets/codemirror/mode/apl/apl.js +0 -174
  439. package/static/assets/codemirror/mode/asciiarmor/asciiarmor.js +0 -74
  440. package/static/assets/codemirror/mode/asn.1/asn.1.js +0 -204
  441. package/static/assets/codemirror/mode/asterisk/asterisk.js +0 -220
  442. package/static/assets/codemirror/mode/brainfuck/brainfuck.js +0 -85
  443. package/static/assets/codemirror/mode/clike/clike.js +0 -942
  444. package/static/assets/codemirror/mode/clojure/clojure.js +0 -293
  445. package/static/assets/codemirror/mode/cmake/cmake.js +0 -97
  446. package/static/assets/codemirror/mode/cobol/cobol.js +0 -255
  447. package/static/assets/codemirror/mode/coffeescript/coffeescript.js +0 -359
  448. package/static/assets/codemirror/mode/commonlisp/commonlisp.js +0 -125
  449. package/static/assets/codemirror/mode/crystal/crystal.js +0 -433
  450. package/static/assets/codemirror/mode/css/css.js +0 -862
  451. package/static/assets/codemirror/mode/cypher/cypher.js +0 -152
  452. package/static/assets/codemirror/mode/d/d.js +0 -223
  453. package/static/assets/codemirror/mode/dart/dart.js +0 -168
  454. package/static/assets/codemirror/mode/diff/diff.js +0 -47
  455. package/static/assets/codemirror/mode/django/django.js +0 -356
  456. package/static/assets/codemirror/mode/dockerfile/dockerfile.js +0 -211
  457. package/static/assets/codemirror/mode/dtd/dtd.js +0 -142
  458. package/static/assets/codemirror/mode/dylan/dylan.js +0 -352
  459. package/static/assets/codemirror/mode/ebnf/ebnf.js +0 -195
  460. package/static/assets/codemirror/mode/ecl/ecl.js +0 -206
  461. package/static/assets/codemirror/mode/eiffel/eiffel.js +0 -160
  462. package/static/assets/codemirror/mode/elm/elm.js +0 -245
  463. package/static/assets/codemirror/mode/erlang/erlang.js +0 -619
  464. package/static/assets/codemirror/mode/factor/factor.js +0 -85
  465. package/static/assets/codemirror/mode/fcl/fcl.js +0 -173
  466. package/static/assets/codemirror/mode/forth/forth.js +0 -180
  467. package/static/assets/codemirror/mode/fortran/fortran.js +0 -188
  468. package/static/assets/codemirror/mode/gas/gas.js +0 -355
  469. package/static/assets/codemirror/mode/gfm/gfm.js +0 -129
  470. package/static/assets/codemirror/mode/gherkin/gherkin.js +0 -194
  471. package/static/assets/codemirror/mode/go/go.js +0 -187
  472. package/static/assets/codemirror/mode/groovy/groovy.js +0 -245
  473. package/static/assets/codemirror/mode/haml/haml.js +0 -161
  474. package/static/assets/codemirror/mode/handlebars/handlebars.js +0 -70
  475. package/static/assets/codemirror/mode/haskell/haskell.js +0 -268
  476. package/static/assets/codemirror/mode/haskell-literate/haskell-literate.js +0 -43
  477. package/static/assets/codemirror/mode/haxe/haxe.js +0 -515
  478. package/static/assets/codemirror/mode/htmlembedded/htmlembedded.js +0 -37
  479. package/static/assets/codemirror/mode/htmlmixed/htmlmixed.js +0 -153
  480. package/static/assets/codemirror/mode/http/http.js +0 -113
  481. package/static/assets/codemirror/mode/idl/idl.js +0 -290
  482. package/static/assets/codemirror/mode/javascript/javascript.js +0 -960
  483. package/static/assets/codemirror/mode/jinja2/jinja2.js +0 -193
  484. package/static/assets/codemirror/mode/jsx/jsx.js +0 -149
  485. package/static/assets/codemirror/mode/julia/julia.js +0 -390
  486. package/static/assets/codemirror/mode/livescript/livescript.js +0 -280
  487. package/static/assets/codemirror/mode/lua/lua.js +0 -160
  488. package/static/assets/codemirror/mode/markdown/markdown.js +0 -886
  489. package/static/assets/codemirror/mode/mathematica/mathematica.js +0 -176
  490. package/static/assets/codemirror/mode/mbox/mbox.js +0 -129
  491. package/static/assets/codemirror/mode/meta.js +0 -221
  492. package/static/assets/codemirror/mode/mirc/mirc.js +0 -193
  493. package/static/assets/codemirror/mode/mllike/mllike.js +0 -359
  494. package/static/assets/codemirror/mode/modelica/modelica.js +0 -245
  495. package/static/assets/codemirror/mode/mscgen/mscgen.js +0 -175
  496. package/static/assets/codemirror/mode/mumps/mumps.js +0 -148
  497. package/static/assets/codemirror/mode/nginx/nginx.js +0 -178
  498. package/static/assets/codemirror/mode/nsis/nsis.js +0 -95
  499. package/static/assets/codemirror/mode/ntriples/ntriples.js +0 -195
  500. package/static/assets/codemirror/mode/octave/octave.js +0 -139
  501. package/static/assets/codemirror/mode/oz/oz.js +0 -252
  502. package/static/assets/codemirror/mode/pascal/pascal.js +0 -136
  503. package/static/assets/codemirror/mode/pegjs/pegjs.js +0 -111
  504. package/static/assets/codemirror/mode/perl/perl.js +0 -836
  505. package/static/assets/codemirror/mode/php/php.js +0 -234
  506. package/static/assets/codemirror/mode/pig/pig.js +0 -178
  507. package/static/assets/codemirror/mode/powershell/powershell.js +0 -398
  508. package/static/assets/codemirror/mode/properties/properties.js +0 -78
  509. package/static/assets/codemirror/mode/protobuf/protobuf.js +0 -72
  510. package/static/assets/codemirror/mode/pug/pug.js +0 -591
  511. package/static/assets/codemirror/mode/puppet/puppet.js +0 -220
  512. package/static/assets/codemirror/mode/python/python.js +0 -402
  513. package/static/assets/codemirror/mode/q/q.js +0 -139
  514. package/static/assets/codemirror/mode/r/r.js +0 -190
  515. package/static/assets/codemirror/mode/rpm/changes/index.html +0 -66
  516. package/static/assets/codemirror/mode/rpm/rpm.js +0 -109
  517. package/static/assets/codemirror/mode/rst/rst.js +0 -557
  518. package/static/assets/codemirror/mode/ruby/ruby.js +0 -303
  519. package/static/assets/codemirror/mode/rust/rust.js +0 -72
  520. package/static/assets/codemirror/mode/sas/sas.js +0 -303
  521. package/static/assets/codemirror/mode/sass/sass.js +0 -459
  522. package/static/assets/codemirror/mode/scheme/scheme.js +0 -284
  523. package/static/assets/codemirror/mode/shell/shell.js +0 -168
  524. package/static/assets/codemirror/mode/sieve/sieve.js +0 -193
  525. package/static/assets/codemirror/mode/slim/slim.js +0 -575
  526. package/static/assets/codemirror/mode/smalltalk/smalltalk.js +0 -168
  527. package/static/assets/codemirror/mode/smarty/smarty.js +0 -225
  528. package/static/assets/codemirror/mode/solr/solr.js +0 -104
  529. package/static/assets/codemirror/mode/soy/soy.js +0 -665
  530. package/static/assets/codemirror/mode/sparql/sparql.js +0 -184
  531. package/static/assets/codemirror/mode/spreadsheet/spreadsheet.js +0 -112
  532. package/static/assets/codemirror/mode/sql/sql.js +0 -529
  533. package/static/assets/codemirror/mode/stex/stex.js +0 -264
  534. package/static/assets/codemirror/mode/stylus/stylus.js +0 -775
  535. package/static/assets/codemirror/mode/swift/swift.js +0 -221
  536. package/static/assets/codemirror/mode/tcl/tcl.js +0 -140
  537. package/static/assets/codemirror/mode/textile/textile.js +0 -469
  538. package/static/assets/codemirror/mode/tiddlywiki/tiddlywiki.css +0 -14
  539. package/static/assets/codemirror/mode/tiddlywiki/tiddlywiki.js +0 -308
  540. package/static/assets/codemirror/mode/tiki/tiki.css +0 -26
  541. package/static/assets/codemirror/mode/tiki/tiki.js +0 -312
  542. package/static/assets/codemirror/mode/toml/toml.js +0 -88
  543. package/static/assets/codemirror/mode/tornado/tornado.js +0 -68
  544. package/static/assets/codemirror/mode/troff/troff.js +0 -84
  545. package/static/assets/codemirror/mode/ttcn/ttcn.js +0 -283
  546. package/static/assets/codemirror/mode/ttcn-cfg/ttcn-cfg.js +0 -214
  547. package/static/assets/codemirror/mode/turtle/turtle.js +0 -162
  548. package/static/assets/codemirror/mode/twig/twig.js +0 -141
  549. package/static/assets/codemirror/mode/vb/vb.js +0 -275
  550. package/static/assets/codemirror/mode/vbscript/vbscript.js +0 -350
  551. package/static/assets/codemirror/mode/velocity/velocity.js +0 -202
  552. package/static/assets/codemirror/mode/verilog/verilog.js +0 -781
  553. package/static/assets/codemirror/mode/vhdl/vhdl.js +0 -189
  554. package/static/assets/codemirror/mode/vue/vue.js +0 -77
  555. package/static/assets/codemirror/mode/wast/wast.js +0 -132
  556. package/static/assets/codemirror/mode/webidl/webidl.js +0 -195
  557. package/static/assets/codemirror/mode/xml/xml.js +0 -417
  558. package/static/assets/codemirror/mode/xquery/xquery.js +0 -448
  559. package/static/assets/codemirror/mode/yacas/yacas.js +0 -204
  560. package/static/assets/codemirror/mode/yaml/yaml.js +0 -120
  561. package/static/assets/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +0 -72
  562. package/static/assets/codemirror/mode/z80/z80.js +0 -116
  563. package/static/chunk-2KLC4T2Z.js +0 -1
  564. package/static/chunk-373XVRXW.js +0 -1
  565. package/static/chunk-3XVM35O2.js +0 -1
  566. package/static/chunk-3YVRP3VM.js +0 -2
  567. package/static/chunk-AF24EYXU.js +0 -1
  568. package/static/chunk-AKQVEHO6.js +0 -2
  569. package/static/chunk-AY2SZ3G6.js +0 -1
  570. package/static/chunk-BCVX464U.js +0 -2
  571. package/static/chunk-C36MW4ME.js +0 -562
  572. package/static/chunk-DKSEQTMX.js +0 -1
  573. package/static/chunk-FZ3JPGYZ.js +0 -1
  574. package/static/chunk-GUGNR5TF.js +0 -3
  575. package/static/chunk-H6NE33VX.js +0 -1
  576. package/static/chunk-HNQRZALS.js +0 -1
  577. package/static/chunk-JSWCNGXJ.js +0 -1
  578. package/static/chunk-KFJIQIGR.js +0 -1
  579. package/static/chunk-LVM4QB22.js +0 -1
  580. package/static/chunk-M3XVNQZQ.js +0 -1
  581. package/static/chunk-MFLIJH6T.js +0 -1
  582. package/static/chunk-MSUHTBB2.js +0 -1
  583. package/static/chunk-N3U6637P.js +0 -1
  584. package/static/chunk-NNV4OXSB.js +0 -1
  585. package/static/chunk-NO2LTNW3.js +0 -1
  586. package/static/chunk-OOGP4WSH.js +0 -2
  587. package/static/chunk-PCWDQPOM.js +0 -2
  588. package/static/chunk-PGZZP5W3.js +0 -1
  589. package/static/chunk-Q5KM7LTX.js +0 -1
  590. package/static/chunk-QHC6ZPQ4.js +0 -1
  591. package/static/chunk-QZU2S5CV.js +0 -1
  592. package/static/chunk-SBZ572Q4.js +0 -2
  593. package/static/chunk-SHIVUDP3.js +0 -1
  594. package/static/chunk-SLHTEGRU.js +0 -1
  595. package/static/chunk-SSFF27P2.js +0 -24
  596. package/static/chunk-TPYBFZS5.js +0 -1
  597. package/static/chunk-UEQCWMXD.js +0 -1
  598. package/static/chunk-UG5DMXYO.js +0 -1
  599. package/static/chunk-UJPPR4MX.js +0 -1
  600. package/static/chunk-V3AT2BKP.js +0 -1
  601. package/static/chunk-VKK5BSLX.js +0 -1
  602. package/static/chunk-WJW7CT6G.js +0 -27
  603. package/static/chunk-X5XGK6T7.js +0 -4
  604. package/static/chunk-YEKR5OPO.js +0 -1
  605. package/static/chunk-YW57T2PF.js +0 -1
  606. package/static/chunk-Z5J5F5SX.js +0 -1
  607. package/static/chunk-ZPF2DSQV.js +0 -1
  608. package/static/chunk-ZTCRGJ6Y.js +0 -7
  609. package/static/main-VOL6OMJ5.js +0 -9
  610. package/static/scripts-WRDOQIU5.js +0 -24
  611. package/static/styles-2C2UNCNB.css +0 -1
@@ -1,886 +0,0 @@
1
- // CodeMirror, copyright (c) by Marijn Haverbeke and others
2
- // Distributed under an MIT license: https://codemirror.net/5/LICENSE
3
-
4
- (function(mod) {
5
- if (typeof exports == "object" && typeof module == "object") // CommonJS
6
- mod(require("../../lib/codemirror"), require("../xml/xml"), require("../meta"));
7
- else if (typeof define == "function" && define.amd) // AMD
8
- define(["../../lib/codemirror", "../xml/xml", "../meta"], mod);
9
- else // Plain browser env
10
- mod(CodeMirror);
11
- })(function(CodeMirror) {
12
- "use strict";
13
-
14
- CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
15
-
16
- var htmlMode = CodeMirror.getMode(cmCfg, "text/html");
17
- var htmlModeMissing = htmlMode.name == "null"
18
-
19
- function getMode(name) {
20
- if (CodeMirror.findModeByName) {
21
- var found = CodeMirror.findModeByName(name);
22
- if (found) name = found.mime || found.mimes[0];
23
- }
24
- var mode = CodeMirror.getMode(cmCfg, name);
25
- return mode.name == "null" ? null : mode;
26
- }
27
-
28
- // Should characters that affect highlighting be highlighted separate?
29
- // Does not include characters that will be output (such as `1.` and `-` for lists)
30
- if (modeCfg.highlightFormatting === undefined)
31
- modeCfg.highlightFormatting = false;
32
-
33
- // Maximum number of nested blockquotes. Set to 0 for infinite nesting.
34
- // Excess `>` will emit `error` token.
35
- if (modeCfg.maxBlockquoteDepth === undefined)
36
- modeCfg.maxBlockquoteDepth = 0;
37
-
38
- // Turn on task lists? ("- [ ] " and "- [x] ")
39
- if (modeCfg.taskLists === undefined) modeCfg.taskLists = false;
40
-
41
- // Turn on strikethrough syntax
42
- if (modeCfg.strikethrough === undefined)
43
- modeCfg.strikethrough = false;
44
-
45
- if (modeCfg.emoji === undefined)
46
- modeCfg.emoji = false;
47
-
48
- if (modeCfg.fencedCodeBlockHighlighting === undefined)
49
- modeCfg.fencedCodeBlockHighlighting = true;
50
-
51
- if (modeCfg.fencedCodeBlockDefaultMode === undefined)
52
- modeCfg.fencedCodeBlockDefaultMode = 'text/plain';
53
-
54
- if (modeCfg.xml === undefined)
55
- modeCfg.xml = true;
56
-
57
- // Allow token types to be overridden by user-provided token types.
58
- if (modeCfg.tokenTypeOverrides === undefined)
59
- modeCfg.tokenTypeOverrides = {};
60
-
61
- var tokenTypes = {
62
- header: "header",
63
- code: "comment",
64
- quote: "quote",
65
- list1: "variable-2",
66
- list2: "variable-3",
67
- list3: "keyword",
68
- hr: "hr",
69
- image: "image",
70
- imageAltText: "image-alt-text",
71
- imageMarker: "image-marker",
72
- formatting: "formatting",
73
- linkInline: "link",
74
- linkEmail: "link",
75
- linkText: "link",
76
- linkHref: "string",
77
- em: "em",
78
- strong: "strong",
79
- strikethrough: "strikethrough",
80
- emoji: "builtin"
81
- };
82
-
83
- for (var tokenType in tokenTypes) {
84
- if (tokenTypes.hasOwnProperty(tokenType) && modeCfg.tokenTypeOverrides[tokenType]) {
85
- tokenTypes[tokenType] = modeCfg.tokenTypeOverrides[tokenType];
86
- }
87
- }
88
-
89
- var hrRE = /^([*\-_])(?:\s*\1){2,}\s*$/
90
- , listRE = /^(?:[*\-+]|^[0-9]+([.)]))\s+/
91
- , taskListRE = /^\[(x| )\](?=\s)/i // Must follow listRE
92
- , atxHeaderRE = modeCfg.allowAtxHeaderWithoutSpace ? /^(#+)/ : /^(#+)(?: |$)/
93
- , setextHeaderRE = /^ {0,3}(?:\={1,}|-{2,})\s*$/
94
- , textRE = /^[^#!\[\]*_\\<>` "'(~:]+/
95
- , fencedCodeRE = /^(~~~+|```+)[ \t]*([\w\/+#-]*)[^\n`]*$/
96
- , linkDefRE = /^\s*\[[^\]]+?\]:.*$/ // naive link-definition
97
- , punctuation = /[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E42\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC9\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDF3C-\uDF3E]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]/
98
- , expandedTab = " " // CommonMark specifies tab as 4 spaces
99
-
100
- function switchInline(stream, state, f) {
101
- state.f = state.inline = f;
102
- return f(stream, state);
103
- }
104
-
105
- function switchBlock(stream, state, f) {
106
- state.f = state.block = f;
107
- return f(stream, state);
108
- }
109
-
110
- function lineIsEmpty(line) {
111
- return !line || !/\S/.test(line.string)
112
- }
113
-
114
- // Blocks
115
-
116
- function blankLine(state) {
117
- // Reset linkTitle state
118
- state.linkTitle = false;
119
- state.linkHref = false;
120
- state.linkText = false;
121
- // Reset EM state
122
- state.em = false;
123
- // Reset STRONG state
124
- state.strong = false;
125
- // Reset strikethrough state
126
- state.strikethrough = false;
127
- // Reset state.quote
128
- state.quote = 0;
129
- // Reset state.indentedCode
130
- state.indentedCode = false;
131
- if (state.f == htmlBlock) {
132
- var exit = htmlModeMissing
133
- if (!exit) {
134
- var inner = CodeMirror.innerMode(htmlMode, state.htmlState)
135
- exit = inner.mode.name == "xml" && inner.state.tagStart === null &&
136
- (!inner.state.context && inner.state.tokenize.isInText)
137
- }
138
- if (exit) {
139
- state.f = inlineNormal;
140
- state.block = blockNormal;
141
- state.htmlState = null;
142
- }
143
- }
144
- // Reset state.trailingSpace
145
- state.trailingSpace = 0;
146
- state.trailingSpaceNewLine = false;
147
- // Mark this line as blank
148
- state.prevLine = state.thisLine
149
- state.thisLine = {stream: null}
150
- return null;
151
- }
152
-
153
- function blockNormal(stream, state) {
154
- var firstTokenOnLine = stream.column() === state.indentation;
155
- var prevLineLineIsEmpty = lineIsEmpty(state.prevLine.stream);
156
- var prevLineIsIndentedCode = state.indentedCode;
157
- var prevLineIsHr = state.prevLine.hr;
158
- var prevLineIsList = state.list !== false;
159
- var maxNonCodeIndentation = (state.listStack[state.listStack.length - 1] || 0) + 3;
160
-
161
- state.indentedCode = false;
162
-
163
- var lineIndentation = state.indentation;
164
- // compute once per line (on first token)
165
- if (state.indentationDiff === null) {
166
- state.indentationDiff = state.indentation;
167
- if (prevLineIsList) {
168
- state.list = null;
169
- // While this list item's marker's indentation is less than the deepest
170
- // list item's content's indentation,pop the deepest list item
171
- // indentation off the stack, and update block indentation state
172
- while (lineIndentation < state.listStack[state.listStack.length - 1]) {
173
- state.listStack.pop();
174
- if (state.listStack.length) {
175
- state.indentation = state.listStack[state.listStack.length - 1];
176
- // less than the first list's indent -> the line is no longer a list
177
- } else {
178
- state.list = false;
179
- }
180
- }
181
- if (state.list !== false) {
182
- state.indentationDiff = lineIndentation - state.listStack[state.listStack.length - 1]
183
- }
184
- }
185
- }
186
-
187
- // not comprehensive (currently only for setext detection purposes)
188
- var allowsInlineContinuation = (
189
- !prevLineLineIsEmpty && !prevLineIsHr && !state.prevLine.header &&
190
- (!prevLineIsList || !prevLineIsIndentedCode) &&
191
- !state.prevLine.fencedCodeEnd
192
- );
193
-
194
- var isHr = (state.list === false || prevLineIsHr || prevLineLineIsEmpty) &&
195
- state.indentation <= maxNonCodeIndentation && stream.match(hrRE);
196
-
197
- var match = null;
198
- if (state.indentationDiff >= 4 && (prevLineIsIndentedCode || state.prevLine.fencedCodeEnd ||
199
- state.prevLine.header || prevLineLineIsEmpty)) {
200
- stream.skipToEnd();
201
- state.indentedCode = true;
202
- return tokenTypes.code;
203
- } else if (stream.eatSpace()) {
204
- return null;
205
- } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(atxHeaderRE)) && match[1].length <= 6) {
206
- state.quote = 0;
207
- state.header = match[1].length;
208
- state.thisLine.header = true;
209
- if (modeCfg.highlightFormatting) state.formatting = "header";
210
- state.f = state.inline;
211
- return getType(state);
212
- } else if (state.indentation <= maxNonCodeIndentation && stream.eat('>')) {
213
- state.quote = firstTokenOnLine ? 1 : state.quote + 1;
214
- if (modeCfg.highlightFormatting) state.formatting = "quote";
215
- stream.eatSpace();
216
- return getType(state);
217
- } else if (!isHr && !state.setext && firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(listRE))) {
218
- var listType = match[1] ? "ol" : "ul";
219
-
220
- state.indentation = lineIndentation + stream.current().length;
221
- state.list = true;
222
- state.quote = 0;
223
-
224
- // Add this list item's content's indentation to the stack
225
- state.listStack.push(state.indentation);
226
- // Reset inline styles which shouldn't propagate across list items
227
- state.em = false;
228
- state.strong = false;
229
- state.code = false;
230
- state.strikethrough = false;
231
-
232
- if (modeCfg.taskLists && stream.match(taskListRE, false)) {
233
- state.taskList = true;
234
- }
235
- state.f = state.inline;
236
- if (modeCfg.highlightFormatting) state.formatting = ["list", "list-" + listType];
237
- return getType(state);
238
- } else if (firstTokenOnLine && state.indentation <= maxNonCodeIndentation && (match = stream.match(fencedCodeRE, true))) {
239
- state.quote = 0;
240
- state.fencedEndRE = new RegExp(match[1] + "+ *$");
241
- // try switching mode
242
- state.localMode = modeCfg.fencedCodeBlockHighlighting && getMode(match[2] || modeCfg.fencedCodeBlockDefaultMode );
243
- if (state.localMode) state.localState = CodeMirror.startState(state.localMode);
244
- state.f = state.block = local;
245
- if (modeCfg.highlightFormatting) state.formatting = "code-block";
246
- state.code = -1
247
- return getType(state);
248
- // SETEXT has lowest block-scope precedence after HR, so check it after
249
- // the others (code, blockquote, list...)
250
- } else if (
251
- // if setext set, indicates line after ---/===
252
- state.setext || (
253
- // line before ---/===
254
- (!allowsInlineContinuation || !prevLineIsList) && !state.quote && state.list === false &&
255
- !state.code && !isHr && !linkDefRE.test(stream.string) &&
256
- (match = stream.lookAhead(1)) && (match = match.match(setextHeaderRE))
257
- )
258
- ) {
259
- if ( !state.setext ) {
260
- state.header = match[0].charAt(0) == '=' ? 1 : 2;
261
- state.setext = state.header;
262
- } else {
263
- state.header = state.setext;
264
- // has no effect on type so we can reset it now
265
- state.setext = 0;
266
- stream.skipToEnd();
267
- if (modeCfg.highlightFormatting) state.formatting = "header";
268
- }
269
- state.thisLine.header = true;
270
- state.f = state.inline;
271
- return getType(state);
272
- } else if (isHr) {
273
- stream.skipToEnd();
274
- state.hr = true;
275
- state.thisLine.hr = true;
276
- return tokenTypes.hr;
277
- } else if (stream.peek() === '[') {
278
- return switchInline(stream, state, footnoteLink);
279
- }
280
-
281
- return switchInline(stream, state, state.inline);
282
- }
283
-
284
- function htmlBlock(stream, state) {
285
- var style = htmlMode.token(stream, state.htmlState);
286
- if (!htmlModeMissing) {
287
- var inner = CodeMirror.innerMode(htmlMode, state.htmlState)
288
- if ((inner.mode.name == "xml" && inner.state.tagStart === null &&
289
- (!inner.state.context && inner.state.tokenize.isInText)) ||
290
- (state.md_inside && stream.current().indexOf(">") > -1)) {
291
- state.f = inlineNormal;
292
- state.block = blockNormal;
293
- state.htmlState = null;
294
- }
295
- }
296
- return style;
297
- }
298
-
299
- function local(stream, state) {
300
- var currListInd = state.listStack[state.listStack.length - 1] || 0;
301
- var hasExitedList = state.indentation < currListInd;
302
- var maxFencedEndInd = currListInd + 3;
303
- if (state.fencedEndRE && state.indentation <= maxFencedEndInd && (hasExitedList || stream.match(state.fencedEndRE))) {
304
- if (modeCfg.highlightFormatting) state.formatting = "code-block";
305
- var returnType;
306
- if (!hasExitedList) returnType = getType(state)
307
- state.localMode = state.localState = null;
308
- state.block = blockNormal;
309
- state.f = inlineNormal;
310
- state.fencedEndRE = null;
311
- state.code = 0
312
- state.thisLine.fencedCodeEnd = true;
313
- if (hasExitedList) return switchBlock(stream, state, state.block);
314
- return returnType;
315
- } else if (state.localMode) {
316
- return state.localMode.token(stream, state.localState);
317
- } else {
318
- stream.skipToEnd();
319
- return tokenTypes.code;
320
- }
321
- }
322
-
323
- // Inline
324
- function getType(state) {
325
- var styles = [];
326
-
327
- if (state.formatting) {
328
- styles.push(tokenTypes.formatting);
329
-
330
- if (typeof state.formatting === "string") state.formatting = [state.formatting];
331
-
332
- for (var i = 0; i < state.formatting.length; i++) {
333
- styles.push(tokenTypes.formatting + "-" + state.formatting[i]);
334
-
335
- if (state.formatting[i] === "header") {
336
- styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.header);
337
- }
338
-
339
- // Add `formatting-quote` and `formatting-quote-#` for blockquotes
340
- // Add `error` instead if the maximum blockquote nesting depth is passed
341
- if (state.formatting[i] === "quote") {
342
- if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {
343
- styles.push(tokenTypes.formatting + "-" + state.formatting[i] + "-" + state.quote);
344
- } else {
345
- styles.push("error");
346
- }
347
- }
348
- }
349
- }
350
-
351
- if (state.taskOpen) {
352
- styles.push("meta");
353
- return styles.length ? styles.join(' ') : null;
354
- }
355
- if (state.taskClosed) {
356
- styles.push("property");
357
- return styles.length ? styles.join(' ') : null;
358
- }
359
-
360
- if (state.linkHref) {
361
- styles.push(tokenTypes.linkHref, "url");
362
- } else { // Only apply inline styles to non-url text
363
- if (state.strong) { styles.push(tokenTypes.strong); }
364
- if (state.em) { styles.push(tokenTypes.em); }
365
- if (state.strikethrough) { styles.push(tokenTypes.strikethrough); }
366
- if (state.emoji) { styles.push(tokenTypes.emoji); }
367
- if (state.linkText) { styles.push(tokenTypes.linkText); }
368
- if (state.code) { styles.push(tokenTypes.code); }
369
- if (state.image) { styles.push(tokenTypes.image); }
370
- if (state.imageAltText) { styles.push(tokenTypes.imageAltText, "link"); }
371
- if (state.imageMarker) { styles.push(tokenTypes.imageMarker); }
372
- }
373
-
374
- if (state.header) { styles.push(tokenTypes.header, tokenTypes.header + "-" + state.header); }
375
-
376
- if (state.quote) {
377
- styles.push(tokenTypes.quote);
378
-
379
- // Add `quote-#` where the maximum for `#` is modeCfg.maxBlockquoteDepth
380
- if (!modeCfg.maxBlockquoteDepth || modeCfg.maxBlockquoteDepth >= state.quote) {
381
- styles.push(tokenTypes.quote + "-" + state.quote);
382
- } else {
383
- styles.push(tokenTypes.quote + "-" + modeCfg.maxBlockquoteDepth);
384
- }
385
- }
386
-
387
- if (state.list !== false) {
388
- var listMod = (state.listStack.length - 1) % 3;
389
- if (!listMod) {
390
- styles.push(tokenTypes.list1);
391
- } else if (listMod === 1) {
392
- styles.push(tokenTypes.list2);
393
- } else {
394
- styles.push(tokenTypes.list3);
395
- }
396
- }
397
-
398
- if (state.trailingSpaceNewLine) {
399
- styles.push("trailing-space-new-line");
400
- } else if (state.trailingSpace) {
401
- styles.push("trailing-space-" + (state.trailingSpace % 2 ? "a" : "b"));
402
- }
403
-
404
- return styles.length ? styles.join(' ') : null;
405
- }
406
-
407
- function handleText(stream, state) {
408
- if (stream.match(textRE, true)) {
409
- return getType(state);
410
- }
411
- return undefined;
412
- }
413
-
414
- function inlineNormal(stream, state) {
415
- var style = state.text(stream, state);
416
- if (typeof style !== 'undefined')
417
- return style;
418
-
419
- if (state.list) { // List marker (*, +, -, 1., etc)
420
- state.list = null;
421
- return getType(state);
422
- }
423
-
424
- if (state.taskList) {
425
- var taskOpen = stream.match(taskListRE, true)[1] === " ";
426
- if (taskOpen) state.taskOpen = true;
427
- else state.taskClosed = true;
428
- if (modeCfg.highlightFormatting) state.formatting = "task";
429
- state.taskList = false;
430
- return getType(state);
431
- }
432
-
433
- state.taskOpen = false;
434
- state.taskClosed = false;
435
-
436
- if (state.header && stream.match(/^#+$/, true)) {
437
- if (modeCfg.highlightFormatting) state.formatting = "header";
438
- return getType(state);
439
- }
440
-
441
- var ch = stream.next();
442
-
443
- // Matches link titles present on next line
444
- if (state.linkTitle) {
445
- state.linkTitle = false;
446
- var matchCh = ch;
447
- if (ch === '(') {
448
- matchCh = ')';
449
- }
450
- matchCh = (matchCh+'').replace(/([.?*+^\[\]\\(){}|-])/g, "\\$1");
451
- var regex = '^\\s*(?:[^' + matchCh + '\\\\]+|\\\\\\\\|\\\\.)' + matchCh;
452
- if (stream.match(new RegExp(regex), true)) {
453
- return tokenTypes.linkHref;
454
- }
455
- }
456
-
457
- // If this block is changed, it may need to be updated in GFM mode
458
- if (ch === '`') {
459
- var previousFormatting = state.formatting;
460
- if (modeCfg.highlightFormatting) state.formatting = "code";
461
- stream.eatWhile('`');
462
- var count = stream.current().length
463
- if (state.code == 0 && (!state.quote || count == 1)) {
464
- state.code = count
465
- return getType(state)
466
- } else if (count == state.code) { // Must be exact
467
- var t = getType(state)
468
- state.code = 0
469
- return t
470
- } else {
471
- state.formatting = previousFormatting
472
- return getType(state)
473
- }
474
- } else if (state.code) {
475
- return getType(state);
476
- }
477
-
478
- if (ch === '\\') {
479
- stream.next();
480
- if (modeCfg.highlightFormatting) {
481
- var type = getType(state);
482
- var formattingEscape = tokenTypes.formatting + "-escape";
483
- return type ? type + " " + formattingEscape : formattingEscape;
484
- }
485
- }
486
-
487
- if (ch === '!' && stream.match(/\[[^\]]*\] ?(?:\(|\[)/, false)) {
488
- state.imageMarker = true;
489
- state.image = true;
490
- if (modeCfg.highlightFormatting) state.formatting = "image";
491
- return getType(state);
492
- }
493
-
494
- if (ch === '[' && state.imageMarker && stream.match(/[^\]]*\](\(.*?\)| ?\[.*?\])/, false)) {
495
- state.imageMarker = false;
496
- state.imageAltText = true
497
- if (modeCfg.highlightFormatting) state.formatting = "image";
498
- return getType(state);
499
- }
500
-
501
- if (ch === ']' && state.imageAltText) {
502
- if (modeCfg.highlightFormatting) state.formatting = "image";
503
- var type = getType(state);
504
- state.imageAltText = false;
505
- state.image = false;
506
- state.inline = state.f = linkHref;
507
- return type;
508
- }
509
-
510
- if (ch === '[' && !state.image) {
511
- if (state.linkText && stream.match(/^.*?\]/)) return getType(state)
512
- state.linkText = true;
513
- if (modeCfg.highlightFormatting) state.formatting = "link";
514
- return getType(state);
515
- }
516
-
517
- if (ch === ']' && state.linkText) {
518
- if (modeCfg.highlightFormatting) state.formatting = "link";
519
- var type = getType(state);
520
- state.linkText = false;
521
- state.inline = state.f = stream.match(/\(.*?\)| ?\[.*?\]/, false) ? linkHref : inlineNormal
522
- return type;
523
- }
524
-
525
- if (ch === '<' && stream.match(/^(https?|ftps?):\/\/(?:[^\\>]|\\.)+>/, false)) {
526
- state.f = state.inline = linkInline;
527
- if (modeCfg.highlightFormatting) state.formatting = "link";
528
- var type = getType(state);
529
- if (type){
530
- type += " ";
531
- } else {
532
- type = "";
533
- }
534
- return type + tokenTypes.linkInline;
535
- }
536
-
537
- if (ch === '<' && stream.match(/^[^> \\]+@(?:[^\\>]|\\.)+>/, false)) {
538
- state.f = state.inline = linkInline;
539
- if (modeCfg.highlightFormatting) state.formatting = "link";
540
- var type = getType(state);
541
- if (type){
542
- type += " ";
543
- } else {
544
- type = "";
545
- }
546
- return type + tokenTypes.linkEmail;
547
- }
548
-
549
- if (modeCfg.xml && ch === '<' && stream.match(/^(!--|\?|!\[CDATA\[|[a-z][a-z0-9-]*(?:\s+[a-z_:.\-]+(?:\s*=\s*[^>]+)?)*\s*(?:>|$))/i, false)) {
550
- var end = stream.string.indexOf(">", stream.pos);
551
- if (end != -1) {
552
- var atts = stream.string.substring(stream.start, end);
553
- if (/markdown\s*=\s*('|"){0,1}1('|"){0,1}/.test(atts)) state.md_inside = true;
554
- }
555
- stream.backUp(1);
556
- state.htmlState = CodeMirror.startState(htmlMode);
557
- return switchBlock(stream, state, htmlBlock);
558
- }
559
-
560
- if (modeCfg.xml && ch === '<' && stream.match(/^\/\w*?>/)) {
561
- state.md_inside = false;
562
- return "tag";
563
- } else if (ch === "*" || ch === "_") {
564
- var len = 1, before = stream.pos == 1 ? " " : stream.string.charAt(stream.pos - 2)
565
- while (len < 3 && stream.eat(ch)) len++
566
- var after = stream.peek() || " "
567
- // See http://spec.commonmark.org/0.27/#emphasis-and-strong-emphasis
568
- var leftFlanking = !/\s/.test(after) && (!punctuation.test(after) || /\s/.test(before) || punctuation.test(before))
569
- var rightFlanking = !/\s/.test(before) && (!punctuation.test(before) || /\s/.test(after) || punctuation.test(after))
570
- var setEm = null, setStrong = null
571
- if (len % 2) { // Em
572
- if (!state.em && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before)))
573
- setEm = true
574
- else if (state.em == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after)))
575
- setEm = false
576
- }
577
- if (len > 1) { // Strong
578
- if (!state.strong && leftFlanking && (ch === "*" || !rightFlanking || punctuation.test(before)))
579
- setStrong = true
580
- else if (state.strong == ch && rightFlanking && (ch === "*" || !leftFlanking || punctuation.test(after)))
581
- setStrong = false
582
- }
583
- if (setStrong != null || setEm != null) {
584
- if (modeCfg.highlightFormatting) state.formatting = setEm == null ? "strong" : setStrong == null ? "em" : "strong em"
585
- if (setEm === true) state.em = ch
586
- if (setStrong === true) state.strong = ch
587
- var t = getType(state)
588
- if (setEm === false) state.em = false
589
- if (setStrong === false) state.strong = false
590
- return t
591
- }
592
- } else if (ch === ' ') {
593
- if (stream.eat('*') || stream.eat('_')) { // Probably surrounded by spaces
594
- if (stream.peek() === ' ') { // Surrounded by spaces, ignore
595
- return getType(state);
596
- } else { // Not surrounded by spaces, back up pointer
597
- stream.backUp(1);
598
- }
599
- }
600
- }
601
-
602
- if (modeCfg.strikethrough) {
603
- if (ch === '~' && stream.eatWhile(ch)) {
604
- if (state.strikethrough) {// Remove strikethrough
605
- if (modeCfg.highlightFormatting) state.formatting = "strikethrough";
606
- var t = getType(state);
607
- state.strikethrough = false;
608
- return t;
609
- } else if (stream.match(/^[^\s]/, false)) {// Add strikethrough
610
- state.strikethrough = true;
611
- if (modeCfg.highlightFormatting) state.formatting = "strikethrough";
612
- return getType(state);
613
- }
614
- } else if (ch === ' ') {
615
- if (stream.match('~~', true)) { // Probably surrounded by space
616
- if (stream.peek() === ' ') { // Surrounded by spaces, ignore
617
- return getType(state);
618
- } else { // Not surrounded by spaces, back up pointer
619
- stream.backUp(2);
620
- }
621
- }
622
- }
623
- }
624
-
625
- if (modeCfg.emoji && ch === ":" && stream.match(/^(?:[a-z_\d+][a-z_\d+-]*|\-[a-z_\d+][a-z_\d+-]*):/)) {
626
- state.emoji = true;
627
- if (modeCfg.highlightFormatting) state.formatting = "emoji";
628
- var retType = getType(state);
629
- state.emoji = false;
630
- return retType;
631
- }
632
-
633
- if (ch === ' ') {
634
- if (stream.match(/^ +$/, false)) {
635
- state.trailingSpace++;
636
- } else if (state.trailingSpace) {
637
- state.trailingSpaceNewLine = true;
638
- }
639
- }
640
-
641
- return getType(state);
642
- }
643
-
644
- function linkInline(stream, state) {
645
- var ch = stream.next();
646
-
647
- if (ch === ">") {
648
- state.f = state.inline = inlineNormal;
649
- if (modeCfg.highlightFormatting) state.formatting = "link";
650
- var type = getType(state);
651
- if (type){
652
- type += " ";
653
- } else {
654
- type = "";
655
- }
656
- return type + tokenTypes.linkInline;
657
- }
658
-
659
- stream.match(/^[^>]+/, true);
660
-
661
- return tokenTypes.linkInline;
662
- }
663
-
664
- function linkHref(stream, state) {
665
- // Check if space, and return NULL if so (to avoid marking the space)
666
- if(stream.eatSpace()){
667
- return null;
668
- }
669
- var ch = stream.next();
670
- if (ch === '(' || ch === '[') {
671
- state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]");
672
- if (modeCfg.highlightFormatting) state.formatting = "link-string";
673
- state.linkHref = true;
674
- return getType(state);
675
- }
676
- return 'error';
677
- }
678
-
679
- var linkRE = {
680
- ")": /^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,
681
- "]": /^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\]]|\\.)*\])*?(?=\])/
682
- }
683
-
684
- function getLinkHrefInside(endChar) {
685
- return function(stream, state) {
686
- var ch = stream.next();
687
-
688
- if (ch === endChar) {
689
- state.f = state.inline = inlineNormal;
690
- if (modeCfg.highlightFormatting) state.formatting = "link-string";
691
- var returnState = getType(state);
692
- state.linkHref = false;
693
- return returnState;
694
- }
695
-
696
- stream.match(linkRE[endChar])
697
- state.linkHref = true;
698
- return getType(state);
699
- };
700
- }
701
-
702
- function footnoteLink(stream, state) {
703
- if (stream.match(/^([^\]\\]|\\.)*\]:/, false)) {
704
- state.f = footnoteLinkInside;
705
- stream.next(); // Consume [
706
- if (modeCfg.highlightFormatting) state.formatting = "link";
707
- state.linkText = true;
708
- return getType(state);
709
- }
710
- return switchInline(stream, state, inlineNormal);
711
- }
712
-
713
- function footnoteLinkInside(stream, state) {
714
- if (stream.match(']:', true)) {
715
- state.f = state.inline = footnoteUrl;
716
- if (modeCfg.highlightFormatting) state.formatting = "link";
717
- var returnType = getType(state);
718
- state.linkText = false;
719
- return returnType;
720
- }
721
-
722
- stream.match(/^([^\]\\]|\\.)+/, true);
723
-
724
- return tokenTypes.linkText;
725
- }
726
-
727
- function footnoteUrl(stream, state) {
728
- // Check if space, and return NULL if so (to avoid marking the space)
729
- if(stream.eatSpace()){
730
- return null;
731
- }
732
- // Match URL
733
- stream.match(/^[^\s]+/, true);
734
- // Check for link title
735
- if (stream.peek() === undefined) { // End of line, set flag to check next line
736
- state.linkTitle = true;
737
- } else { // More content on line, check if link title
738
- stream.match(/^(?:\s+(?:"(?:[^"\\]|\\.)+"|'(?:[^'\\]|\\.)+'|\((?:[^)\\]|\\.)+\)))?/, true);
739
- }
740
- state.f = state.inline = inlineNormal;
741
- return tokenTypes.linkHref + " url";
742
- }
743
-
744
- var mode = {
745
- startState: function() {
746
- return {
747
- f: blockNormal,
748
-
749
- prevLine: {stream: null},
750
- thisLine: {stream: null},
751
-
752
- block: blockNormal,
753
- htmlState: null,
754
- indentation: 0,
755
-
756
- inline: inlineNormal,
757
- text: handleText,
758
-
759
- formatting: false,
760
- linkText: false,
761
- linkHref: false,
762
- linkTitle: false,
763
- code: 0,
764
- em: false,
765
- strong: false,
766
- header: 0,
767
- setext: 0,
768
- hr: false,
769
- taskList: false,
770
- list: false,
771
- listStack: [],
772
- quote: 0,
773
- trailingSpace: 0,
774
- trailingSpaceNewLine: false,
775
- strikethrough: false,
776
- emoji: false,
777
- fencedEndRE: null
778
- };
779
- },
780
-
781
- copyState: function(s) {
782
- return {
783
- f: s.f,
784
-
785
- prevLine: s.prevLine,
786
- thisLine: s.thisLine,
787
-
788
- block: s.block,
789
- htmlState: s.htmlState && CodeMirror.copyState(htmlMode, s.htmlState),
790
- indentation: s.indentation,
791
-
792
- localMode: s.localMode,
793
- localState: s.localMode ? CodeMirror.copyState(s.localMode, s.localState) : null,
794
-
795
- inline: s.inline,
796
- text: s.text,
797
- formatting: false,
798
- linkText: s.linkText,
799
- linkTitle: s.linkTitle,
800
- linkHref: s.linkHref,
801
- code: s.code,
802
- em: s.em,
803
- strong: s.strong,
804
- strikethrough: s.strikethrough,
805
- emoji: s.emoji,
806
- header: s.header,
807
- setext: s.setext,
808
- hr: s.hr,
809
- taskList: s.taskList,
810
- list: s.list,
811
- listStack: s.listStack.slice(0),
812
- quote: s.quote,
813
- indentedCode: s.indentedCode,
814
- trailingSpace: s.trailingSpace,
815
- trailingSpaceNewLine: s.trailingSpaceNewLine,
816
- md_inside: s.md_inside,
817
- fencedEndRE: s.fencedEndRE
818
- };
819
- },
820
-
821
- token: function(stream, state) {
822
-
823
- // Reset state.formatting
824
- state.formatting = false;
825
-
826
- if (stream != state.thisLine.stream) {
827
- state.header = 0;
828
- state.hr = false;
829
-
830
- if (stream.match(/^\s*$/, true)) {
831
- blankLine(state);
832
- return null;
833
- }
834
-
835
- state.prevLine = state.thisLine
836
- state.thisLine = {stream: stream}
837
-
838
- // Reset state.taskList
839
- state.taskList = false;
840
-
841
- // Reset state.trailingSpace
842
- state.trailingSpace = 0;
843
- state.trailingSpaceNewLine = false;
844
-
845
- if (!state.localState) {
846
- state.f = state.block;
847
- if (state.f != htmlBlock) {
848
- var indentation = stream.match(/^\s*/, true)[0].replace(/\t/g, expandedTab).length;
849
- state.indentation = indentation;
850
- state.indentationDiff = null;
851
- if (indentation > 0) return null;
852
- }
853
- }
854
- }
855
- return state.f(stream, state);
856
- },
857
-
858
- innerMode: function(state) {
859
- if (state.block == htmlBlock) return {state: state.htmlState, mode: htmlMode};
860
- if (state.localState) return {state: state.localState, mode: state.localMode};
861
- return {state: state, mode: mode};
862
- },
863
-
864
- indent: function(state, textAfter, line) {
865
- if (state.block == htmlBlock && htmlMode.indent) return htmlMode.indent(state.htmlState, textAfter, line)
866
- if (state.localState && state.localMode.indent) return state.localMode.indent(state.localState, textAfter, line)
867
- return CodeMirror.Pass
868
- },
869
-
870
- blankLine: blankLine,
871
-
872
- getType: getType,
873
-
874
- blockCommentStart: "<!--",
875
- blockCommentEnd: "-->",
876
- closeBrackets: "()[]{}''\"\"``",
877
- fold: "markdown"
878
- };
879
- return mode;
880
- }, "xml");
881
-
882
- CodeMirror.defineMIME("text/markdown", "markdown");
883
-
884
- CodeMirror.defineMIME("text/x-markdown", "markdown");
885
-
886
- });