@alisio/plugin-thesis 0.1.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 (547) hide show
  1. package/.agents/agents/thesis-architect.md +38 -0
  2. package/.agents/agents/thesis-coordinator.md +39 -0
  3. package/.agents/agents/thesis-editor.md +35 -0
  4. package/.agents/agents/thesis-evidence-auditor.md +37 -0
  5. package/.agents/agents/thesis-librarian.md +38 -0
  6. package/.agents/agents/thesis-methodologist.md +39 -0
  7. package/.agents/agents/thesis-reviewer.md +36 -0
  8. package/.agents/agents/thesis-writer.md +38 -0
  9. package/.agents/skills/thesis-build/SKILL.md +48 -0
  10. package/.agents/skills/thesis-citations/SKILL.md +49 -0
  11. package/.agents/skills/thesis-csl-authoring/SKILL.md +48 -0
  12. package/.agents/skills/thesis-editing/SKILL.md +49 -0
  13. package/.agents/skills/thesis-evidence/SKILL.md +48 -0
  14. package/.agents/skills/thesis-figures/SKILL.md +50 -0
  15. package/.agents/skills/thesis-institution-norms/SKILL.md +50 -0
  16. package/.agents/skills/thesis-intake/SKILL.md +48 -0
  17. package/.agents/skills/thesis-math/SKILL.md +48 -0
  18. package/.agents/skills/thesis-methodology/SKILL.md +49 -0
  19. package/.agents/skills/thesis-outline/SKILL.md +48 -0
  20. package/.agents/skills/thesis-policy/SKILL.md +48 -0
  21. package/.agents/skills/thesis-review/SKILL.md +49 -0
  22. package/.agents/skills/thesis-search/SKILL.md +47 -0
  23. package/.agents/skills/thesis-writing/SKILL.md +52 -0
  24. package/LICENSE +21 -0
  25. package/README.es.md +242 -0
  26. package/README.md +235 -0
  27. package/THIRD_PARTY_NOTICES.md +94 -0
  28. package/assets/architecture.svg +1 -0
  29. package/assets/evidence-pipeline.svg +1 -0
  30. package/assets/lifecycle.svg +1 -0
  31. package/assets/policy-resolution.svg +1 -0
  32. package/cover.webp +0 -0
  33. package/dist/authoring.d.ts +30 -0
  34. package/dist/authoring.d.ts.map +1 -0
  35. package/dist/authoring.js +681 -0
  36. package/dist/authoring.js.map +1 -0
  37. package/dist/brief.d.ts +40 -0
  38. package/dist/brief.d.ts.map +1 -0
  39. package/dist/brief.js +566 -0
  40. package/dist/brief.js.map +1 -0
  41. package/dist/cache.d.ts +8 -0
  42. package/dist/cache.d.ts.map +1 -0
  43. package/dist/cache.js +20 -0
  44. package/dist/cache.js.map +1 -0
  45. package/dist/checks/brief.d.ts +5 -0
  46. package/dist/checks/brief.d.ts.map +1 -0
  47. package/dist/checks/brief.js +38 -0
  48. package/dist/checks/brief.js.map +1 -0
  49. package/dist/checks/citations.d.ts +14 -0
  50. package/dist/checks/citations.d.ts.map +1 -0
  51. package/dist/checks/citations.js +87 -0
  52. package/dist/checks/citations.js.map +1 -0
  53. package/dist/checks/claims.d.ts +16 -0
  54. package/dist/checks/claims.d.ts.map +1 -0
  55. package/dist/checks/claims.js +147 -0
  56. package/dist/checks/claims.js.map +1 -0
  57. package/dist/checks/closing.d.ts +20 -0
  58. package/dist/checks/closing.d.ts.map +1 -0
  59. package/dist/checks/closing.js +168 -0
  60. package/dist/checks/closing.js.map +1 -0
  61. package/dist/checks/design.d.ts +5 -0
  62. package/dist/checks/design.d.ts.map +1 -0
  63. package/dist/checks/design.js +107 -0
  64. package/dist/checks/design.js.map +1 -0
  65. package/dist/checks/document.d.ts +17 -0
  66. package/dist/checks/document.d.ts.map +1 -0
  67. package/dist/checks/document.js +213 -0
  68. package/dist/checks/document.js.map +1 -0
  69. package/dist/checks/evidence.d.ts +7 -0
  70. package/dist/checks/evidence.d.ts.map +1 -0
  71. package/dist/checks/evidence.js +133 -0
  72. package/dist/checks/evidence.js.map +1 -0
  73. package/dist/checks/hygiene.d.ts +5 -0
  74. package/dist/checks/hygiene.d.ts.map +1 -0
  75. package/dist/checks/hygiene.js +37 -0
  76. package/dist/checks/hygiene.js.map +1 -0
  77. package/dist/checks/index.d.ts +21 -0
  78. package/dist/checks/index.d.ts.map +1 -0
  79. package/dist/checks/index.js +98 -0
  80. package/dist/checks/index.js.map +1 -0
  81. package/dist/checks/language.d.ts +14 -0
  82. package/dist/checks/language.d.ts.map +1 -0
  83. package/dist/checks/language.js +73 -0
  84. package/dist/checks/language.js.map +1 -0
  85. package/dist/checks/outline.d.ts +25 -0
  86. package/dist/checks/outline.d.ts.map +1 -0
  87. package/dist/checks/outline.js +214 -0
  88. package/dist/checks/outline.js.map +1 -0
  89. package/dist/checks/policy.d.ts +5 -0
  90. package/dist/checks/policy.d.ts.map +1 -0
  91. package/dist/checks/policy.js +129 -0
  92. package/dist/checks/policy.js.map +1 -0
  93. package/dist/checks/project.d.ts +65 -0
  94. package/dist/checks/project.d.ts.map +1 -0
  95. package/dist/checks/project.js +203 -0
  96. package/dist/checks/project.js.map +1 -0
  97. package/dist/checks/styles.d.ts +12 -0
  98. package/dist/checks/styles.d.ts.map +1 -0
  99. package/dist/checks/styles.js +67 -0
  100. package/dist/checks/styles.js.map +1 -0
  101. package/dist/checks/writing.d.ts +6 -0
  102. package/dist/checks/writing.d.ts.map +1 -0
  103. package/dist/checks/writing.js +115 -0
  104. package/dist/checks/writing.js.map +1 -0
  105. package/dist/chrome/detect.d.ts +19 -0
  106. package/dist/chrome/detect.d.ts.map +1 -0
  107. package/dist/chrome/detect.js +116 -0
  108. package/dist/chrome/detect.js.map +1 -0
  109. package/dist/claims.d.ts +19 -0
  110. package/dist/claims.d.ts.map +1 -0
  111. package/dist/claims.js +99 -0
  112. package/dist/claims.js.map +1 -0
  113. package/dist/cli.d.ts +11 -0
  114. package/dist/cli.d.ts.map +1 -0
  115. package/dist/cli.js +262 -0
  116. package/dist/cli.js.map +1 -0
  117. package/dist/context.d.ts +55 -0
  118. package/dist/context.d.ts.map +1 -0
  119. package/dist/context.js +62 -0
  120. package/dist/context.js.map +1 -0
  121. package/dist/coordinator.d.ts +139 -0
  122. package/dist/coordinator.d.ts.map +1 -0
  123. package/dist/coordinator.js +710 -0
  124. package/dist/coordinator.js.map +1 -0
  125. package/dist/delegate.d.ts +34 -0
  126. package/dist/delegate.d.ts.map +1 -0
  127. package/dist/delegate.js +105 -0
  128. package/dist/delegate.js.map +1 -0
  129. package/dist/diffguard.d.ts +24 -0
  130. package/dist/diffguard.d.ts.map +1 -0
  131. package/dist/diffguard.js +92 -0
  132. package/dist/diffguard.js.map +1 -0
  133. package/dist/doctor.d.ts +34 -0
  134. package/dist/doctor.d.ts.map +1 -0
  135. package/dist/doctor.js +155 -0
  136. package/dist/doctor.js.map +1 -0
  137. package/dist/draft.d.ts +64 -0
  138. package/dist/draft.d.ts.map +1 -0
  139. package/dist/draft.js +801 -0
  140. package/dist/draft.js.map +1 -0
  141. package/dist/figure.d.ts +13 -0
  142. package/dist/figure.d.ts.map +1 -0
  143. package/dist/figure.js +143 -0
  144. package/dist/figure.js.map +1 -0
  145. package/dist/finalize.d.ts +29 -0
  146. package/dist/finalize.d.ts.map +1 -0
  147. package/dist/finalize.js +230 -0
  148. package/dist/finalize.js.map +1 -0
  149. package/dist/index.d.ts +33 -0
  150. package/dist/index.d.ts.map +1 -0
  151. package/dist/index.js +206 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/intake.d.ts +57 -0
  154. package/dist/intake.d.ts.map +1 -0
  155. package/dist/intake.js +772 -0
  156. package/dist/intake.js.map +1 -0
  157. package/dist/labels.d.ts +50 -0
  158. package/dist/labels.d.ts.map +1 -0
  159. package/dist/labels.js +98 -0
  160. package/dist/labels.js.map +1 -0
  161. package/dist/outline.d.ts +45 -0
  162. package/dist/outline.d.ts.map +1 -0
  163. package/dist/outline.js +148 -0
  164. package/dist/outline.js.map +1 -0
  165. package/dist/pack-commands.d.ts +18 -0
  166. package/dist/pack-commands.d.ts.map +1 -0
  167. package/dist/pack-commands.js +397 -0
  168. package/dist/pack-commands.js.map +1 -0
  169. package/dist/package-paths.d.ts +8 -0
  170. package/dist/package-paths.d.ts.map +1 -0
  171. package/dist/package-paths.js +13 -0
  172. package/dist/package-paths.js.map +1 -0
  173. package/dist/policy/context.d.ts +19 -0
  174. package/dist/policy/context.d.ts.map +1 -0
  175. package/dist/policy/context.js +62 -0
  176. package/dist/policy/context.js.map +1 -0
  177. package/dist/policy/ethics.d.ts +59 -0
  178. package/dist/policy/ethics.d.ts.map +1 -0
  179. package/dist/policy/ethics.js +106 -0
  180. package/dist/policy/ethics.js.map +1 -0
  181. package/dist/policy/kinds.d.ts +9 -0
  182. package/dist/policy/kinds.d.ts.map +1 -0
  183. package/dist/policy/kinds.js +68 -0
  184. package/dist/policy/kinds.js.map +1 -0
  185. package/dist/policy/packs.d.ts +53 -0
  186. package/dist/policy/packs.d.ts.map +1 -0
  187. package/dist/policy/packs.js +336 -0
  188. package/dist/policy/packs.js.map +1 -0
  189. package/dist/policy/resolver.d.ts +87 -0
  190. package/dist/policy/resolver.d.ts.map +1 -0
  191. package/dist/policy/resolver.js +337 -0
  192. package/dist/policy/resolver.js.map +1 -0
  193. package/dist/policy/rules.d.ts +65 -0
  194. package/dist/policy/rules.d.ts.map +1 -0
  195. package/dist/policy/rules.js +194 -0
  196. package/dist/policy/rules.js.map +1 -0
  197. package/dist/protocol.d.ts +46 -0
  198. package/dist/protocol.d.ts.map +1 -0
  199. package/dist/protocol.js +86 -0
  200. package/dist/protocol.js.map +1 -0
  201. package/dist/render/adapters/chrome-pdf/cdp.d.ts +36 -0
  202. package/dist/render/adapters/chrome-pdf/cdp.d.ts.map +1 -0
  203. package/dist/render/adapters/chrome-pdf/cdp.js +291 -0
  204. package/dist/render/adapters/chrome-pdf/cdp.js.map +1 -0
  205. package/dist/render/adapters/chrome-pdf/index.d.ts +10 -0
  206. package/dist/render/adapters/chrome-pdf/index.d.ts.map +1 -0
  207. package/dist/render/adapters/chrome-pdf/index.js +139 -0
  208. package/dist/render/adapters/chrome-pdf/index.js.map +1 -0
  209. package/dist/render/adapters/chrome-pdf/network.d.ts +7 -0
  210. package/dist/render/adapters/chrome-pdf/network.d.ts.map +1 -0
  211. package/dist/render/adapters/chrome-pdf/network.js +33 -0
  212. package/dist/render/adapters/chrome-pdf/network.js.map +1 -0
  213. package/dist/render/adapters/html-preview/index.d.ts +8 -0
  214. package/dist/render/adapters/html-preview/index.d.ts.map +1 -0
  215. package/dist/render/adapters/html-preview/index.js +62 -0
  216. package/dist/render/adapters/html-preview/index.js.map +1 -0
  217. package/dist/render/adapters/test-json/index.d.ts +8 -0
  218. package/dist/render/adapters/test-json/index.d.ts.map +1 -0
  219. package/dist/render/adapters/test-json/index.js +62 -0
  220. package/dist/render/adapters/test-json/index.js.map +1 -0
  221. package/dist/render/adapters/typst-pdf/emitter.d.ts +21 -0
  222. package/dist/render/adapters/typst-pdf/emitter.d.ts.map +1 -0
  223. package/dist/render/adapters/typst-pdf/emitter.js +259 -0
  224. package/dist/render/adapters/typst-pdf/emitter.js.map +1 -0
  225. package/dist/render/adapters/typst-pdf/escape.d.ts +14 -0
  226. package/dist/render/adapters/typst-pdf/escape.d.ts.map +1 -0
  227. package/dist/render/adapters/typst-pdf/escape.js +56 -0
  228. package/dist/render/adapters/typst-pdf/escape.js.map +1 -0
  229. package/dist/render/adapters/typst-pdf/index.d.ts +9 -0
  230. package/dist/render/adapters/typst-pdf/index.d.ts.map +1 -0
  231. package/dist/render/adapters/typst-pdf/index.js +154 -0
  232. package/dist/render/adapters/typst-pdf/index.js.map +1 -0
  233. package/dist/render/adapters/typst-pdf/profile.d.ts +3 -0
  234. package/dist/render/adapters/typst-pdf/profile.d.ts.map +1 -0
  235. package/dist/render/adapters/typst-pdf/profile.js +55 -0
  236. package/dist/render/adapters/typst-pdf/profile.js.map +1 -0
  237. package/dist/render/adapters/typst-pdf/runner.d.ts +52 -0
  238. package/dist/render/adapters/typst-pdf/runner.d.ts.map +1 -0
  239. package/dist/render/adapters/typst-pdf/runner.js +209 -0
  240. package/dist/render/adapters/typst-pdf/runner.js.map +1 -0
  241. package/dist/render/adapters/typst-pdf/setup.d.ts +30 -0
  242. package/dist/render/adapters/typst-pdf/setup.d.ts.map +1 -0
  243. package/dist/render/adapters/typst-pdf/setup.js +183 -0
  244. package/dist/render/adapters/typst-pdf/setup.js.map +1 -0
  245. package/dist/render/adapters/typst-pdf/version.d.ts +8 -0
  246. package/dist/render/adapters/typst-pdf/version.d.ts.map +1 -0
  247. package/dist/render/adapters/typst-pdf/version.js +14 -0
  248. package/dist/render/adapters/typst-pdf/version.js.map +1 -0
  249. package/dist/render/assemble.d.ts +28 -0
  250. package/dist/render/assemble.d.ts.map +1 -0
  251. package/dist/render/assemble.js +309 -0
  252. package/dist/render/assemble.js.map +1 -0
  253. package/dist/render/assets.d.ts +27 -0
  254. package/dist/render/assets.d.ts.map +1 -0
  255. package/dist/render/assets.js +232 -0
  256. package/dist/render/assets.js.map +1 -0
  257. package/dist/render/build.d.ts +43 -0
  258. package/dist/render/build.d.ts.map +1 -0
  259. package/dist/render/build.js +187 -0
  260. package/dist/render/build.js.map +1 -0
  261. package/dist/render/charts.d.ts +83 -0
  262. package/dist/render/charts.d.ts.map +1 -0
  263. package/dist/render/charts.js +633 -0
  264. package/dist/render/charts.js.map +1 -0
  265. package/dist/render/default-registry.d.ts +7 -0
  266. package/dist/render/default-registry.d.ts.map +1 -0
  267. package/dist/render/default-registry.js +15 -0
  268. package/dist/render/default-registry.js.map +1 -0
  269. package/dist/render/diagram-theme.d.ts +7 -0
  270. package/dist/render/diagram-theme.d.ts.map +1 -0
  271. package/dist/render/diagram-theme.js +50 -0
  272. package/dist/render/diagram-theme.js.map +1 -0
  273. package/dist/render/dialect.d.ts +23 -0
  274. package/dist/render/dialect.d.ts.map +1 -0
  275. package/dist/render/dialect.js +188 -0
  276. package/dist/render/dialect.js.map +1 -0
  277. package/dist/render/html/citations.d.ts +70 -0
  278. package/dist/render/html/citations.d.ts.map +1 -0
  279. package/dist/render/html/citations.js +371 -0
  280. package/dist/render/html/citations.js.map +1 -0
  281. package/dist/render/html/css.d.ts +14 -0
  282. package/dist/render/html/css.d.ts.map +1 -0
  283. package/dist/render/html/css.js +113 -0
  284. package/dist/render/html/css.js.map +1 -0
  285. package/dist/render/html/emitter.d.ts +20 -0
  286. package/dist/render/html/emitter.d.ts.map +1 -0
  287. package/dist/render/html/emitter.js +652 -0
  288. package/dist/render/html/emitter.js.map +1 -0
  289. package/dist/render/html/escape.d.ts +11 -0
  290. package/dist/render/html/escape.d.ts.map +1 -0
  291. package/dist/render/html/escape.js +32 -0
  292. package/dist/render/html/escape.js.map +1 -0
  293. package/dist/render/html/katex.d.ts +9 -0
  294. package/dist/render/html/katex.d.ts.map +1 -0
  295. package/dist/render/html/katex.js +39 -0
  296. package/dist/render/html/katex.js.map +1 -0
  297. package/dist/render/html/stage.d.ts +12 -0
  298. package/dist/render/html/stage.d.ts.map +1 -0
  299. package/dist/render/html/stage.js +30 -0
  300. package/dist/render/html/stage.js.map +1 -0
  301. package/dist/render/index.d.ts +5 -0
  302. package/dist/render/index.d.ts.map +1 -0
  303. package/dist/render/index.js +5 -0
  304. package/dist/render/index.js.map +1 -0
  305. package/dist/render/math.d.ts +9 -0
  306. package/dist/render/math.d.ts.map +1 -0
  307. package/dist/render/math.js +60 -0
  308. package/dist/render/math.js.map +1 -0
  309. package/dist/render/model.d.ts +233 -0
  310. package/dist/render/model.d.ts.map +1 -0
  311. package/dist/render/model.js +2 -0
  312. package/dist/render/model.js.map +1 -0
  313. package/dist/render/numbering.d.ts +51 -0
  314. package/dist/render/numbering.d.ts.map +1 -0
  315. package/dist/render/numbering.js +155 -0
  316. package/dist/render/numbering.js.map +1 -0
  317. package/dist/render/output-name.d.ts +4 -0
  318. package/dist/render/output-name.d.ts.map +1 -0
  319. package/dist/render/output-name.js +11 -0
  320. package/dist/render/output-name.js.map +1 -0
  321. package/dist/render/palettes.d.ts +22 -0
  322. package/dist/render/palettes.d.ts.map +1 -0
  323. package/dist/render/palettes.js +46 -0
  324. package/dist/render/palettes.js.map +1 -0
  325. package/dist/render/parse.d.ts +15 -0
  326. package/dist/render/parse.d.ts.map +1 -0
  327. package/dist/render/parse.js +637 -0
  328. package/dist/render/parse.js.map +1 -0
  329. package/dist/render/port.d.ts +79 -0
  330. package/dist/render/port.d.ts.map +1 -0
  331. package/dist/render/port.js +2 -0
  332. package/dist/render/port.js.map +1 -0
  333. package/dist/render/registry.d.ts +11 -0
  334. package/dist/render/registry.d.ts.map +1 -0
  335. package/dist/render/registry.js +21 -0
  336. package/dist/render/registry.js.map +1 -0
  337. package/dist/render/text.d.ts +13 -0
  338. package/dist/render/text.d.ts.map +1 -0
  339. package/dist/render/text.js +65 -0
  340. package/dist/render/text.js.map +1 -0
  341. package/dist/render/walk.d.ts +13 -0
  342. package/dist/render/walk.d.ts.map +1 -0
  343. package/dist/render/walk.js +69 -0
  344. package/dist/render/walk.js.map +1 -0
  345. package/dist/research/bibtex.d.ts +12 -0
  346. package/dist/research/bibtex.d.ts.map +1 -0
  347. package/dist/research/bibtex.js +99 -0
  348. package/dist/research/bibtex.js.map +1 -0
  349. package/dist/research/client.d.ts +112 -0
  350. package/dist/research/client.d.ts.map +1 -0
  351. package/dist/research/client.js +661 -0
  352. package/dist/research/client.js.map +1 -0
  353. package/dist/research/dossier.d.ts +31 -0
  354. package/dist/research/dossier.d.ts.map +1 -0
  355. package/dist/research/dossier.js +54 -0
  356. package/dist/research/dossier.js.map +1 -0
  357. package/dist/research/flow.d.ts +31 -0
  358. package/dist/research/flow.d.ts.map +1 -0
  359. package/dist/research/flow.js +635 -0
  360. package/dist/research/flow.js.map +1 -0
  361. package/dist/research/library.d.ts +79 -0
  362. package/dist/research/library.d.ts.map +1 -0
  363. package/dist/research/library.js +319 -0
  364. package/dist/research/library.js.map +1 -0
  365. package/dist/research/verify.d.ts +80 -0
  366. package/dist/research/verify.d.ts.map +1 -0
  367. package/dist/research/verify.js +307 -0
  368. package/dist/research/verify.js.map +1 -0
  369. package/dist/resources.d.ts +15 -0
  370. package/dist/resources.d.ts.map +1 -0
  371. package/dist/resources.js +148 -0
  372. package/dist/resources.js.map +1 -0
  373. package/dist/review.d.ts +22 -0
  374. package/dist/review.d.ts.map +1 -0
  375. package/dist/review.js +355 -0
  376. package/dist/review.js.map +1 -0
  377. package/dist/schemas.d.ts +252 -0
  378. package/dist/schemas.d.ts.map +1 -0
  379. package/dist/schemas.js +1020 -0
  380. package/dist/schemas.js.map +1 -0
  381. package/dist/sections.d.ts +30 -0
  382. package/dist/sections.d.ts.map +1 -0
  383. package/dist/sections.js +62 -0
  384. package/dist/sections.js.map +1 -0
  385. package/dist/storage.d.ts +21 -0
  386. package/dist/storage.d.ts.map +1 -0
  387. package/dist/storage.js +296 -0
  388. package/dist/storage.js.map +1 -0
  389. package/dist/style-commands.d.ts +15 -0
  390. package/dist/style-commands.d.ts.map +1 -0
  391. package/dist/style-commands.js +54 -0
  392. package/dist/style-commands.js.map +1 -0
  393. package/dist/styles/csl.d.ts +58 -0
  394. package/dist/styles/csl.d.ts.map +1 -0
  395. package/dist/styles/csl.js +112 -0
  396. package/dist/styles/csl.js.map +1 -0
  397. package/dist/styles/discovery.d.ts +45 -0
  398. package/dist/styles/discovery.d.ts.map +1 -0
  399. package/dist/styles/discovery.js +99 -0
  400. package/dist/styles/discovery.js.map +1 -0
  401. package/dist/styles/golden.d.ts +52 -0
  402. package/dist/styles/golden.d.ts.map +1 -0
  403. package/dist/styles/golden.js +216 -0
  404. package/dist/styles/golden.js.map +1 -0
  405. package/dist/styles/profile.d.ts +126 -0
  406. package/dist/styles/profile.d.ts.map +1 -0
  407. package/dist/styles/profile.js +582 -0
  408. package/dist/styles/profile.js.map +1 -0
  409. package/dist/styles/xml.d.ts +22 -0
  410. package/dist/styles/xml.d.ts.map +1 -0
  411. package/dist/styles/xml.js +179 -0
  412. package/dist/styles/xml.js.map +1 -0
  413. package/dist/types.d.ts +285 -0
  414. package/dist/types.d.ts.map +1 -0
  415. package/dist/types.js +155 -0
  416. package/dist/types.js.map +1 -0
  417. package/dist/typst-pins.d.ts +16 -0
  418. package/dist/typst-pins.d.ts.map +1 -0
  419. package/dist/typst-pins.js +39 -0
  420. package/dist/typst-pins.js.map +1 -0
  421. package/dist/version.d.ts +2 -0
  422. package/dist/version.d.ts.map +1 -0
  423. package/dist/version.js +3 -0
  424. package/dist/version.js.map +1 -0
  425. package/dist/workflow.d.ts +49 -0
  426. package/dist/workflow.d.ts.map +1 -0
  427. package/dist/workflow.js +722 -0
  428. package/dist/workflow.js.map +1 -0
  429. package/dist/workspace.d.ts +12 -0
  430. package/dist/workspace.d.ts.map +1 -0
  431. package/dist/workspace.js +71 -0
  432. package/dist/workspace.js.map +1 -0
  433. package/package.json +70 -0
  434. package/policy-packs/countries/CO/academic-standards/ntc-1486-2022.yaml +188 -0
  435. package/policy-packs/countries/CO/copyright/decision-andina-351.yaml +61 -0
  436. package/policy-packs/countries/CO/copyright/ley-1915-2018.yaml +25 -0
  437. package/policy-packs/countries/CO/copyright/ley-23-1982.yaml +64 -0
  438. package/policy-packs/countries/CO/domains/health/resolucion-8430-1993.yaml +219 -0
  439. package/policy-packs/countries/CO/higher-education/ley-30-1992.yaml +61 -0
  440. package/policy-packs/countries/CO/manifest.yaml +42 -0
  441. package/policy-packs/countries/CO/official-domains.yaml +90 -0
  442. package/policy-packs/countries/CO/privacy/ley-1581-2012.yaml +197 -0
  443. package/policy-packs/countries/CO/research-integrity/minciencias-res-0314-2018.yaml +64 -0
  444. package/policy-packs/global/academic-integrity.yaml +45 -0
  445. package/policy-packs/global/academic-writing.yaml +70 -0
  446. package/policy-packs/global/evidence-quality.yaml +81 -0
  447. package/policy-packs/global/manifest.yaml +54 -0
  448. package/policy-packs/global/objective-verbs.yaml +245 -0
  449. package/policy-packs/global/reporting-guidelines.yaml +392 -0
  450. package/policy-packs/global/work-types.yaml +195 -0
  451. package/styles/LICENSE-CSL +375 -0
  452. package/styles/apa.csl +2283 -0
  453. package/styles/catalog.json +43 -0
  454. package/styles/fixtures/apa-7.expected.json +25 -0
  455. package/styles/fixtures/icontec-ntc1486-2022.expected.json +25 -0
  456. package/styles/fixtures/ieee.expected.json +25 -0
  457. package/styles/fixtures/references.jsonl +8 -0
  458. package/styles/icontec-ntc1486-2022.csl +388 -0
  459. package/styles/ieee.csl +519 -0
  460. package/templates/html/runtime.js +159 -0
  461. package/templates/html/thesis.css +98 -0
  462. package/templates/html/vendor/katex/LICENSE +21 -0
  463. package/templates/html/vendor/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  464. package/templates/html/vendor/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  465. package/templates/html/vendor/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  466. package/templates/html/vendor/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  467. package/templates/html/vendor/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  468. package/templates/html/vendor/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  469. package/templates/html/vendor/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  470. package/templates/html/vendor/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  471. package/templates/html/vendor/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  472. package/templates/html/vendor/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  473. package/templates/html/vendor/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  474. package/templates/html/vendor/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  475. package/templates/html/vendor/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  476. package/templates/html/vendor/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  477. package/templates/html/vendor/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  478. package/templates/html/vendor/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  479. package/templates/html/vendor/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  480. package/templates/html/vendor/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  481. package/templates/html/vendor/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  482. package/templates/html/vendor/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  483. package/templates/html/vendor/katex/katex.min.css +1 -0
  484. package/templates/html/vendor/katex/katex.min.js +1 -0
  485. package/templates/html/vendor/mermaid/LICENSE +21 -0
  486. package/templates/html/vendor/mermaid/mermaid.min.js +3587 -0
  487. package/templates/html/vendor/pagedjs/LICENSE +21 -0
  488. package/templates/html/vendor/pagedjs/paged.polyfill.min.js +4 -0
  489. package/templates/palettes.json +57 -0
  490. package/templates/profiles/apa-7.profile.yaml +15 -0
  491. package/templates/profiles/generic.profile.yaml +20 -0
  492. package/templates/profiles/icontec-ntc1486-2022.profile.yaml +36 -0
  493. package/templates/profiles/ieee.profile.yaml +14 -0
  494. package/templates/typst/i18n/en.yaml +31 -0
  495. package/templates/typst/i18n/es.yaml +31 -0
  496. package/templates/typst/i18n/pt.yaml +31 -0
  497. package/templates/typst/thesis.typ +276 -0
  498. package/typst-packages/preview/merman/0.3.0/LICENSE +231 -0
  499. package/typst-packages/preview/merman/0.3.0/README.md +388 -0
  500. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cose-base-v1/LICENSE +21 -0
  501. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cose-base-v2/LICENSE +21 -0
  502. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cytoscape/LICENSE +19 -0
  503. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cytoscape-cose-bilkent/LICENSE +21 -0
  504. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/cytoscape-fcose/LICENSE +19 -0
  505. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/d3-shape/LICENSE +13 -0
  506. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/dagre/LICENSE +19 -0
  507. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/dompurify/LICENSE +202 -0
  508. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/eclipse-elk/LICENSE.md +264 -0
  509. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/elkjs/LICENSE.md +264 -0
  510. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/fmin/LICENSE +27 -0
  511. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/graphlib/LICENSE +19 -0
  512. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/layout-base-v1/LICENSE +21 -0
  513. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/layout-base-v2/LICENSE +21 -0
  514. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/mermaid/LICENSE +21 -0
  515. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/rough-rs/LICENSE +21 -0
  516. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/roughjs/LICENSE +21 -0
  517. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/sanitize-url/LICENSE +21 -0
  518. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/venn-js/LICENSE +22 -0
  519. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/wasm-minimal-protocol/LICENSE +24 -0
  520. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_LICENSES/zenuml-core/LICENSE +21 -0
  521. package/typst-packages/preview/merman/0.3.0/THIRD_PARTY_NOTICES.md +265 -0
  522. package/typst-packages/preview/merman/0.3.0/lib.typ +1 -0
  523. package/typst-packages/preview/merman/0.3.0/merman_typst_plugin.wasm +0 -0
  524. package/typst-packages/preview/merman/0.3.0/src/capabilities.typ +5 -0
  525. package/typst-packages/preview/merman/0.3.0/src/context.typ +1 -0
  526. package/typst-packages/preview/merman/0.3.0/src/errors.typ +33 -0
  527. package/typst-packages/preview/merman/0.3.0/src/exports.typ +5 -0
  528. package/typst-packages/preview/merman/0.3.0/src/figure.typ +143 -0
  529. package/typst-packages/preview/merman/0.3.0/src/image.typ +50 -0
  530. package/typst-packages/preview/merman/0.3.0/src/options.typ +566 -0
  531. package/typst-packages/preview/merman/0.3.0/src/plugin.typ +1 -0
  532. package/typst-packages/preview/merman/0.3.0/src/raw.typ +22 -0
  533. package/typst-packages/preview/merman/0.3.0/src/render.typ +137 -0
  534. package/typst-packages/preview/merman/0.3.0/src/source.typ +7 -0
  535. package/typst-packages/preview/merman/0.3.0/src/units.typ +51 -0
  536. package/typst-packages/preview/merman/0.3.0/typst.toml +12 -0
  537. package/typst-packages/preview/mitex/0.2.7/CHANGELOG.md +69 -0
  538. package/typst-packages/preview/mitex/0.2.7/LICENSE +176 -0
  539. package/typst-packages/preview/mitex/0.2.7/README.md +154 -0
  540. package/typst-packages/preview/mitex/0.2.7/lib.typ +1 -0
  541. package/typst-packages/preview/mitex/0.2.7/mitex.typ +45 -0
  542. package/typst-packages/preview/mitex/0.2.7/mitex.wasm +0 -0
  543. package/typst-packages/preview/mitex/0.2.7/specs/README.md +250 -0
  544. package/typst-packages/preview/mitex/0.2.7/specs/latex/standard.typ +1187 -0
  545. package/typst-packages/preview/mitex/0.2.7/specs/mod.typ +12 -0
  546. package/typst-packages/preview/mitex/0.2.7/specs/prelude.typ +230 -0
  547. package/typst-packages/preview/mitex/0.2.7/typst.toml +12 -0
@@ -0,0 +1,57 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "palettes": {
4
+ "okabe-ito": {
5
+ "kind": "categorical",
6
+ "description": "Color-blind safe default (Okabe and Ito). Yellow is excluded for lines.",
7
+ "colors": [
8
+ "#000000",
9
+ "#E69F00",
10
+ "#56B4E9",
11
+ "#009E73",
12
+ "#F0E442",
13
+ "#0072B2",
14
+ "#D55E00",
15
+ "#CC79A7"
16
+ ],
17
+ "excludeForLines": ["#F0E442"]
18
+ },
19
+ "tol-bright": {
20
+ "kind": "categorical",
21
+ "description": "Paul Tol bright qualitative scheme, color-blind safe.",
22
+ "colors": ["#4477AA", "#EE6677", "#228833", "#CCBB44", "#66CCEE", "#AA3377", "#BBBBBB"]
23
+ },
24
+ "tol-muted": {
25
+ "kind": "categorical",
26
+ "description": "Paul Tol muted qualitative scheme, for many categories.",
27
+ "colors": [
28
+ "#CC6677",
29
+ "#332288",
30
+ "#DDCC77",
31
+ "#117733",
32
+ "#88CCEE",
33
+ "#882255",
34
+ "#44AA99",
35
+ "#999933",
36
+ "#AA4499",
37
+ "#DDDDDD"
38
+ ]
39
+ },
40
+ "tol-high-contrast": {
41
+ "kind": "categorical",
42
+ "description": "Paul Tol high-contrast scheme, grayscale-print safe, at most three series.",
43
+ "colors": ["#004488", "#DDAA33", "#BB5566"],
44
+ "maxSeries": 3
45
+ },
46
+ "viridis": {
47
+ "kind": "sequential",
48
+ "description": "Perceptually uniform sequential scale.",
49
+ "colors": ["#440154", "#3B528B", "#21918C", "#5EC962", "#FDE725"]
50
+ },
51
+ "cividis": {
52
+ "kind": "sequential",
53
+ "description": "Color-blind optimized sequential scale.",
54
+ "colors": ["#00204D", "#414D6B", "#7C7B78", "#BCAF6F", "#FFEA46"]
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,15 @@
1
+ # APA 7 student-paper style: double spacing, 1 in margins, captions above with the note below.
2
+ id: apa-7
3
+ description: APA 7 layout with double spacing, one inch margins and notes below floats.
4
+ extends: generic
5
+ margins: { top: 2.54cm, bottom: 2.54cm, inside: 2.54cm, outside: 2.54cm }
6
+ lineSpacing: 2
7
+ paragraph: { indent: 1.27cm, spacing: 0.65em, justify: false }
8
+ headings:
9
+ - { level: 1, size: 12, weight: bold, case: none, numbering: "1", align: center, spaceBefore: 1.4em, spaceAfter: 1em, newPage: true }
10
+ - { level: 2, size: 12, weight: bold, case: none, numbering: "1.1", align: left, spaceBefore: 1.2em, spaceAfter: 0.8em, newPage: false }
11
+ - { level: 3, size: 12, weight: bold, case: none, numbering: "1.1.1", align: left, spaceBefore: 1.2em, spaceAfter: 0.7em, newPage: false }
12
+ - { level: 4, size: 12, weight: bold, case: none, numbering: "1.1.1.1", align: left, spaceBefore: 1.1em, spaceAfter: 0.6em, newPage: false }
13
+ captions: { figurePosition: top, tablePosition: top, sourceBelow: true }
14
+ pageNumbers: { position: right }
15
+ header: none
@@ -0,0 +1,20 @@
1
+ # Generic thesis layout: roman preliminaries, arabic body, chapter-numbered floats.
2
+ id: generic
3
+ description: Neutral layout with roman preliminaries and chapter-numbered figures and tables.
4
+ margins: { top: 2.5cm, bottom: 2.5cm, inside: 3cm, outside: 2.5cm }
5
+ binding: left
6
+ font: { size: 12 }
7
+ lineSpacing: 1.5
8
+ paragraph: { indent: 1.25cm, spacing: 0.9em, justify: true }
9
+ headings:
10
+ - { level: 1, size: 17, weight: bold, case: none, numbering: "1", align: left, spaceBefore: 1.6em, spaceAfter: 1em, newPage: true }
11
+ - { level: 2, size: 14, weight: bold, case: none, numbering: "1.1", align: left, spaceBefore: 1.4em, spaceAfter: 0.8em, newPage: false }
12
+ - { level: 3, size: 12, weight: bold, case: none, numbering: "1.1.1", align: left, spaceBefore: 1.2em, spaceAfter: 0.7em, newPage: false }
13
+ - { level: 4, size: 12, weight: bold, case: none, numbering: "1.1.1.1", align: left, spaceBefore: 1.1em, spaceAfter: 0.6em, newPage: false }
14
+ captions: { figurePosition: bottom, tablePosition: top, labelStyle: plain, separator: ". ", sourceBelow: false, numbering: chapter }
15
+ pageNumbers: { front: roman, body: arabic, position: center, continuous: false }
16
+ frontMatter: [dedication, acknowledgments, ai-declaration, abstract, toc]
17
+ footnotes: { size: 10 }
18
+ toc: { depth: 3 }
19
+ header: chapter
20
+ annexNumbering: "A.1.1"
@@ -0,0 +1,36 @@
1
+ # ICONTEC NTC 1486:2022 layout. Every value below comes from the policy rules in
2
+ # policy-packs/countries/CO/academic-standards/ntc-1486-2022.yaml (basis: secondary_source):
3
+ # CO.NTC1486.2022.FORMAT.PAPER.01 letter paper (the brief decides; not set here)
4
+ # CO.NTC1486.2022.FORMAT.MARGIN.01 2 cm on every side
5
+ # CO.NTC1486.2022.FORMAT.FONT.01 12 pt (family disputed: asked in the interview)
6
+ # CO.NTC1486.2022.FORMAT.ALIGNMENT.01 justified body
7
+ # CO.NTC1486.2022.FORMAT.PAGINATION.01 arabic numbers throughout, bottom centre; the cover and
8
+ # title page are counted but not printed; "pag." column in
9
+ # the table of contents
10
+ # CO.NTC1486.2022.STRUCTURE.FRONT_MATTER.01 portada, dedicatoria, agradecimientos, contenido,
11
+ # listas, resumen
12
+ # CO.NTC1486.2022.FORMAT.HEADINGS.01 decimal numbering to level 4, level 1 uppercase centred
13
+ # on a new page, levels 3 and 4 run in with a final period
14
+ # CO.NTC1486.2022.FORMAT.CAPTIONS.01 table and figure captions above, source line below;
15
+ # numbered consecutively ("Tabla 1.")
16
+ # Disputed values (font family, body line spacing, level-2 heading case) come from the brief
17
+ # (presentation.bodyFont, presentation.lineSpacing) or an institution rule; the defaults below only
18
+ # apply until then.
19
+ id: icontec-ntc1486-2022
20
+ description: ICONTEC NTC 1486:2022 layout from secondary sources; provisional.
21
+ extends: generic
22
+ margins: { top: 2cm, bottom: 2cm, inside: 2cm, outside: 2cm }
23
+ font: { size: 12 }
24
+ lineSpacing: 1.5
25
+ paragraph: { indent: 0cm, spacing: 1em, justify: true }
26
+ headings:
27
+ - { level: 1, size: 12, weight: bold, case: upper, numbering: "1", align: center, spaceBefore: 1em, spaceAfter: 1.2em, newPage: true }
28
+ - { level: 2, size: 12, weight: bold, case: none, numbering: "1.1", align: left, spaceBefore: 1.2em, spaceAfter: 0.8em, newPage: false }
29
+ - { level: 3, size: 12, weight: bold, case: none, numbering: "1.1.1", align: left, spaceBefore: 1.1em, spaceAfter: 0.7em, newPage: false, runIn: true, endsWith: "." }
30
+ - { level: 4, size: 12, weight: bold, case: none, numbering: "1.1.1.1", align: left, spaceBefore: 1em, spaceAfter: 0.6em, newPage: false, runIn: true, endsWith: "." }
31
+ captions: { figurePosition: top, tablePosition: top, sourceBelow: true, numbering: continuous }
32
+ pageNumbers: { front: arabic, body: arabic, position: center, continuous: true }
33
+ frontMatter: [dedication, acknowledgments, toc, abstract]
34
+ toc: { depth: 4, pageLabel: { value: true, ruleId: CO.NTC1486.2022.FORMAT.PAGINATION.01 } }
35
+ header: none
36
+ ruleId: CO.NTC1486.2022.FORMAT.MARGIN.01
@@ -0,0 +1,14 @@
1
+ # IEEE-flavoured thesis layout: compact spacing, captions below figures and above tables.
2
+ id: ieee
3
+ description: Compact layout with captions below figures and above tables.
4
+ extends: generic
5
+ margins: { top: 2.5cm, bottom: 2.5cm, inside: 2.5cm, outside: 2.5cm }
6
+ font: { size: 11 }
7
+ lineSpacing: 1.15
8
+ paragraph: { indent: 0cm, spacing: 0.9em, justify: true }
9
+ headings:
10
+ - { level: 1, size: 16, weight: bold, case: none, numbering: "1", align: left, spaceBefore: 1.6em, spaceAfter: 1em, newPage: true }
11
+ - { level: 2, size: 13, weight: bold, case: none, numbering: "1.1", align: left, spaceBefore: 1.3em, spaceAfter: 0.7em, newPage: false }
12
+ - { level: 3, size: 11, weight: bold, case: none, numbering: "1.1.1", align: left, spaceBefore: 1.1em, spaceAfter: 0.6em, newPage: false }
13
+ - { level: 4, size: 11, weight: bold, case: none, numbering: "1.1.1.1", align: left, spaceBefore: 1em, spaceAfter: 0.5em, newPage: false }
14
+ header: chapter
@@ -0,0 +1,31 @@
1
+ # Labels used by the thesis template. Keep every key present in every language file.
2
+ figure: Figure
3
+ table: Table
4
+ equation: Equation
5
+ section: Section
6
+ chapter: Chapter
7
+ annex: Annex
8
+ annexes: Annexes
9
+ contents: Contents
10
+ list_of_figures: List of figures
11
+ list_of_tables: List of tables
12
+ abstract: Abstract
13
+ keywords: Keywords
14
+ references: References
15
+ dedication: Dedication
16
+ acknowledgments: Acknowledgments
17
+ ai_declaration: AI-use declaration
18
+ advisor: Advisor
19
+ program: Program
20
+ faculty: Faculty
21
+ page_abbr: p.
22
+ work_undergraduate_thesis: Undergraduate thesis
23
+ work_degree_project: Degree project
24
+ work_monograph: Monograph
25
+ work_master_thesis: Master's thesis
26
+ work_doctoral_dissertation: Doctoral dissertation
27
+ evidence_law: Law
28
+ evidence_standard: Standard
29
+ evidence_dataset: Dataset
30
+ evidence_thesis: Thesis
31
+ evidence_preprint: Preprint
@@ -0,0 +1,31 @@
1
+ # Labels used by the thesis template. Keep every key present in every language file.
2
+ figure: Figura
3
+ table: Tabla
4
+ equation: Ecuación
5
+ section: Sección
6
+ chapter: Capítulo
7
+ annex: Anexo
8
+ annexes: Anexos
9
+ contents: Contenido
10
+ list_of_figures: Lista de figuras
11
+ list_of_tables: Lista de tablas
12
+ abstract: Resumen
13
+ keywords: Palabras clave
14
+ references: Referencias
15
+ dedication: Dedicatoria
16
+ acknowledgments: Agradecimientos
17
+ ai_declaration: Declaración de uso de inteligencia artificial
18
+ advisor: Director
19
+ program: Programa
20
+ faculty: Facultad
21
+ page_abbr: pág.
22
+ work_undergraduate_thesis: Trabajo de grado
23
+ work_degree_project: Proyecto de grado
24
+ work_monograph: Monografía
25
+ work_master_thesis: Tesis de maestría
26
+ work_doctoral_dissertation: Tesis doctoral
27
+ evidence_law: Ley
28
+ evidence_standard: Norma técnica
29
+ evidence_dataset: Conjunto de datos
30
+ evidence_thesis: Tesis
31
+ evidence_preprint: Preprint
@@ -0,0 +1,31 @@
1
+ # Labels used by the thesis template. Keep every key present in every language file.
2
+ figure: Figura
3
+ table: Tabela
4
+ equation: Equação
5
+ section: Seção
6
+ chapter: Capítulo
7
+ annex: Anexo
8
+ annexes: Anexos
9
+ contents: Sumário
10
+ list_of_figures: Lista de figuras
11
+ list_of_tables: Lista de tabelas
12
+ abstract: Resumo
13
+ keywords: Palavras-chave
14
+ references: Referências
15
+ dedication: Dedicatória
16
+ acknowledgments: Agradecimentos
17
+ ai_declaration: Declaração de uso de inteligência artificial
18
+ advisor: Orientador
19
+ program: Programa
20
+ faculty: Faculdade
21
+ page_abbr: p.
22
+ work_undergraduate_thesis: Trabalho de conclusão de curso
23
+ work_degree_project: Projeto de graduação
24
+ work_monograph: Monografia
25
+ work_master_thesis: Dissertação de mestrado
26
+ work_doctoral_dissertation: Tese de doutorado
27
+ evidence_law: Lei
28
+ evidence_standard: Norma técnica
29
+ evidence_dataset: Conjunto de dados
30
+ evidence_thesis: Tese
31
+ evidence_preprint: Preprint
@@ -0,0 +1,276 @@
1
+ // Thesis template (spec 10.3). `make` returns the functions main.typ uses; it never reads the
2
+ // workspace. Layout values come from a presentation profile (profiles/*.typ); text labels from the
3
+ // i18n strings. Generated main.typ calls: setup, cover, front, body-mode, annex-mode, t-figure,
4
+ // t-table and references.
5
+
6
+ #let font-stacks = (
7
+ serif: ("Libertinus Serif", "New Computer Modern"),
8
+ sans: ("Liberation Sans", "Arimo", "DejaVu Sans", "Libertinus Serif"),
9
+ institutional: ("Libertinus Serif",),
10
+ )
11
+
12
+ #let make(meta, profile, strings) = {
13
+ let paper = if meta.paper == "a4" { "a4" } else { "us-letter" }
14
+ let size = profile.font-size
15
+ let multiple = if meta.lineSpacing != none { meta.lineSpacing } else { profile.line-spacing }
16
+ // Typst's default leading (0.65em) is single spacing; each extra line of spacing adds ~1.2em.
17
+ let leading = 0.65em + (multiple - 1) * 1.2em
18
+ let body-fonts = {
19
+ let base = font-stacks.at(meta.fontProfile, default: font-stacks.serif)
20
+ let named = if meta.bodyFont != none { meta.bodyFont } else { profile.font.body }
21
+ if named != none { (named,) + base } else { base }
22
+ }
23
+ let lang = meta.languageCode
24
+ let region = if "region" in meta { meta.region } else { none }
25
+ let margins = profile.margins
26
+ let heading-font = if profile.font.headings != none { (profile.font.headings,) + body-fonts } else { body-fonts }
27
+
28
+ let page-footer(fmt) = context {
29
+ if fmt == none { none } else {
30
+ align(profile.page-numbers.position, counter(page).display(fmt))
31
+ }
32
+ }
33
+
34
+ let page-header() = context {
35
+ if profile.header == none { none } else {
36
+ let here-page = here().page()
37
+ let starts = query(heading.where(level: 1)).any(h => h.location().page() == here-page)
38
+ let current = query(heading.where(level: 1).before(here()))
39
+ if starts or current.len() == 0 { none } else {
40
+ set text(size: 0.85 * size, style: "italic")
41
+ align(right, current.last().body)
42
+ v(-0.4em)
43
+ line(length: 100%, stroke: 0.4pt)
44
+ }
45
+ }
46
+ }
47
+
48
+ // Float numbers are computed by the emitter and passed in as (chapter, index-in-chapter,
49
+ // sequence): numbering functions that read counters would be evaluated at the reference site.
50
+ let float-label(number) = {
51
+ let (chapter, index, sequence) = number
52
+ if profile.captions.per-chapter and chapter != none { [#chapter.#index] } else { [#sequence] }
53
+ }
54
+ let float-numbering(number) = _ => float-label(number)
55
+ let num-eq(chapter, index, sequence) = _ => [(#float-label((chapter, index, sequence)))]
56
+
57
+ // Heading numbers follow the pattern of each level (for example `1.1.1`).
58
+ let heading-number(..nums) = {
59
+ let level = calc.min(nums.pos().len(), 4)
60
+ numbering(profile.headings.at(level - 1).numbering, ..nums)
61
+ }
62
+
63
+ let heading-style(it) = {
64
+ let level = calc.min(it.level, 4)
65
+ let spec = profile.headings.at(level - 1)
66
+ let titled = if spec.case == "upper" { upper(it.body) } else if spec.case == "lower" { lower(it.body) } else { it.body }
67
+ let number = if it.numbering != none { [#counter(heading).display(it.numbering)#h(0.6em)] }
68
+ if spec.run-in {
69
+ // Run-in heading: inline output joins the first line of the following paragraph.
70
+ text(size: spec.size, weight: spec.weight, hyphenate: false, font: heading-font)[#number#titled#spec.ends-with#h(0.4em)]
71
+ } else {
72
+ if level == 1 and spec.new-page { pagebreak(weak: true) }
73
+ block(width: 100%, above: spec.above, below: spec.below, sticky: true)[
74
+ #set text(size: spec.size, weight: spec.weight, hyphenate: false, font: heading-font)
75
+ #set align(spec.align)
76
+ #set par(first-line-indent: 0pt, justify: false)
77
+ #number#titled
78
+ ]
79
+ }
80
+ }
81
+
82
+ let setup(body) = {
83
+ set document(title: meta.title, author: meta.authors)
84
+ set text(lang: lang, region: region, font: body-fonts, size: size, hyphenate: true)
85
+ set par(
86
+ justify: profile.paragraph.justify,
87
+ leading: leading,
88
+ spacing: profile.paragraph.spacing,
89
+ first-line-indent: profile.paragraph.indent,
90
+ )
91
+ set page(paper: paper, margin: margins)
92
+ set heading(numbering: heading-number, supplement: strings.section)
93
+ set math.equation(supplement: strings.equation)
94
+ set figure.caption(separator: profile.captions.separator)
95
+ show figure.where(kind: image): set figure(supplement: strings.figure)
96
+ show figure.where(kind: table): set figure(supplement: strings.table)
97
+ show figure.where(kind: table): set figure.caption(position: profile.captions.table)
98
+ show figure.where(kind: image): set figure.caption(position: profile.captions.figure)
99
+ show figure.caption: it => {
100
+ set par(justify: false, first-line-indent: 0pt)
101
+ set text(size: size * 0.9)
102
+ if profile.captions.label-style == "plain" { it } else {
103
+ let label = [#it.supplement#sym.space.nobreak#context it.counter.display(it.numbering)#it.separator]
104
+ if profile.captions.label-style == "bold" { strong(label) } else { emph(label) }
105
+ it.body
106
+ }
107
+ }
108
+ show footnote.entry: set text(size: profile.footnote-size * 1pt)
109
+ show raw: it => if profile.font.mono != none {
110
+ set text(font: (profile.font.mono, "DejaVu Sans Mono", "Liberation Mono"))
111
+ it
112
+ } else { it }
113
+ show figure: set block(breakable: false)
114
+ show heading: heading-style
115
+ show raw.where(block: true): it => block(fill: luma(245), inset: 8pt, radius: 2pt, width: 100%, it)
116
+ show link: set text(fill: rgb("#0b4f8a"))
117
+ show quote.where(block: true): set pad(left: 1cm)
118
+ show table: set text(size: size * 0.9)
119
+ show table: set par(justify: false, first-line-indent: 0pt)
120
+ set table(
121
+ stroke: (x, y) => (
122
+ top: if y == 0 { 0.8pt } else if y == 1 { 0.5pt } else { 0pt },
123
+ bottom: 0.8pt,
124
+ ),
125
+ inset: (x: 6pt, y: 4pt),
126
+ )
127
+ body
128
+ }
129
+
130
+ // Source line next to a figure or table, below it or inside the caption (profile choice).
131
+ let with-source(content, source) = if source == none { content } else {
132
+ set text(size: size * 0.9)
133
+ set par(first-line-indent: 0pt, justify: false)
134
+ align(left, source)
135
+ }
136
+
137
+ // The source line either sits below the float (inside its body) or closes the caption. In the
138
+ // second case it is marked <float-source> so the lists of figures and tables can leave it out.
139
+ let float(body, caption, source, number, kind) = {
140
+ let numbering = float-numbering(number)
141
+ if source != none and profile.captions.source-below {
142
+ figure(stack(spacing: 0.8em, body, with-source(none, source)), caption: caption, kind: kind, numbering: numbering)
143
+ } else if source != none {
144
+ figure(body, caption: [#caption #box(source) <float-source>], kind: kind, numbering: numbering)
145
+ } else {
146
+ figure(body, caption: caption, kind: kind, numbering: numbering)
147
+ }
148
+ }
149
+ let t-figure(body, caption: none, source: none, number: (none, 1, 1)) = float(body, caption, source, number, image)
150
+ let t-table(body, caption: none, source: none, number: (none, 1, 1)) = float(body, caption, source, number, table)
151
+
152
+ // A vector image at its natural size, shrunk to the text block when it would overflow.
153
+ let t-image(path, natural) = layout(size => align(center, image("/" + path, width: calc.min(size.width, natural))))
154
+
155
+ let cover() = {
156
+ let org = meta.institution
157
+ let place = if profile.cover.layout == "left" { left } else { center }
158
+ let cline(content, ..args) = if content != none and content != "" {
159
+ align(place, text(..args, content))
160
+ v(0.6em)
161
+ }
162
+ // Fields in the same group stay together; the gaps between groups stretch.
163
+ let groups = (institution: 0, faculty: 0, program: 0, title: 1, subtitle: 1, workType: 2, authors: 2, advisors: 2, cityYear: 3)
164
+ let gaps = (2fr, 1.5fr, 2fr)
165
+ let field(name) = {
166
+ if name == "institution" { cline(org.name, size: 1.15 * size, weight: "bold") }
167
+ else if name == "faculty" { cline(org.faculty, size: size) }
168
+ else if name == "program" { cline(org.program, size: size) }
169
+ else if name == "title" { align(place, text(size: 1.7 * size, weight: "bold", meta.title)) }
170
+ else if name == "subtitle" { if meta.subtitle != none { v(0.8em); cline(meta.subtitle, size: 1.2 * size) } }
171
+ else if name == "workType" { cline(strings.at("work_" + meta.workType, default: meta.workType), size: size) }
172
+ else if name == "authors" { for author in meta.authors { cline(author, size: 1.1 * size, weight: "bold") } }
173
+ else if name == "advisors" { for advisor in meta.advisors { cline([#strings.advisor: #advisor.name], size: size) } }
174
+ else if name == "cityYear" { cline(if org.city != none { [#org.city, #meta.year] } else { str(meta.year) }, size: size) }
175
+ }
176
+ page(numbering: none, margin: margins, header: none, footer: none)[
177
+ #set par(first-line-indent: 0pt, justify: false, leading: 0.65em)
178
+ #set text(hyphenate: false)
179
+ #v(1fr)
180
+ #{
181
+ let previous = none
182
+ for name in profile.cover.fields {
183
+ let group = groups.at(name)
184
+ if previous != none and group != previous { v(gaps.at(calc.min(previous, 2))) }
185
+ previous = group
186
+ field(name)
187
+ }
188
+ }
189
+ ]
190
+ }
191
+
192
+ let unnumbered(title, body, outlined: true) = {
193
+ heading(level: 1, numbering: none, outlined: outlined, title)
194
+ body
195
+ }
196
+
197
+ let list-of(title, kind) = context {
198
+ if query(figure.where(kind: kind)).len() > 0 {
199
+ pagebreak(weak: true)
200
+ heading(level: 1, numbering: none, outlined: false, title)
201
+ {
202
+ show <float-source>: none
203
+ outline(title: none, target: figure.where(kind: kind))
204
+ }
205
+ }
206
+ }
207
+
208
+ let front(dedication: none, acknowledgments: none, ai-declaration: none, abstracts: ()) = {
209
+ let fmt = profile.page-numbers.front
210
+ set page(numbering: fmt, footer: page-footer(fmt), header: none)
211
+ if profile.page-numbers.restart-front { counter(page).update(1) }
212
+ set par(first-line-indent: 0pt)
213
+ let parts = (
214
+ dedication: () => if dedication != none { unnumbered(strings.dedication, dedication, outlined: false) },
215
+ acknowledgments: () => if acknowledgments != none { unnumbered(strings.acknowledgments, acknowledgments) },
216
+ ai-declaration: () => if ai-declaration != none { unnumbered(strings.ai_declaration, ai-declaration) },
217
+ abstract: () => for a in abstracts {
218
+ set text(lang: a.lang)
219
+ unnumbered(a.title, {
220
+ a.body
221
+ if a.keywords.len() > 0 [
222
+ #v(0.6em)
223
+ #strong[#a.keywords-label:] #a.keywords.join(", ")
224
+ ]
225
+ })
226
+ },
227
+ toc: () => {
228
+ heading(level: 1, numbering: none, outlined: false, strings.contents)
229
+ if profile.toc-page-label { align(right, strong(strings.page_abbr)) }
230
+ outline(title: none, depth: profile.toc-depth)
231
+ pagebreak(weak: true)
232
+ list-of(strings.list_of_figures, image)
233
+ list-of(strings.list_of_tables, table)
234
+ },
235
+ )
236
+ for name in profile.front-order {
237
+ (parts.at(name))()
238
+ }
239
+ }
240
+
241
+ let body-mode(body) = {
242
+ let fmt = profile.page-numbers.body
243
+ set page(numbering: fmt, footer: page-footer(fmt), header: page-header())
244
+ if profile.page-numbers.restart-body { counter(page).update(1) }
245
+ set par(first-line-indent: profile.paragraph.indent)
246
+ body
247
+ }
248
+
249
+ let annex-mode(body) = {
250
+ set heading(numbering: profile.annex-numbering, supplement: strings.annex)
251
+ pagebreak(weak: true)
252
+ counter(heading).update(0)
253
+ body
254
+ }
255
+
256
+ let references(style) = {
257
+ pagebreak(weak: true)
258
+ set par(first-line-indent: 0pt, justify: false)
259
+ set heading(numbering: none)
260
+ show bibliography: set par(spacing: 1.2em)
261
+ bibliography("/references.bib", style: style, title: strings.references)
262
+ }
263
+
264
+ (
265
+ setup: setup,
266
+ cover: cover,
267
+ front: front,
268
+ body-mode: body-mode,
269
+ annex-mode: annex-mode,
270
+ t-figure: t-figure,
271
+ t-table: t-table,
272
+ t-image: t-image,
273
+ num-eq: num-eq,
274
+ references: references,
275
+ )
276
+ }