learningfoundry 0.34.0__tar.gz → 0.35.0__tar.gz

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 (81) hide show
  1. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/.gitignore +1 -0
  2. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/CHANGELOG.md +11 -0
  3. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/PKG-INFO +1 -1
  4. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/pyproject.toml +1 -1
  5. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/__init__.py +1 -1
  6. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/pnpm-lock.yaml +548 -2
  7. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/utils/markdown.test.ts +29 -0
  8. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/utils/markdown.ts +11 -1
  9. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/LICENSE +0 -0
  10. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/README.md +0 -0
  11. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/docs/project-guide/README.md +0 -0
  12. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/__main__.py +0 -0
  13. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/cli.py +0 -0
  14. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/config.py +0 -0
  15. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/exceptions.py +0 -0
  16. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/generator.py +0 -0
  17. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/integrations/__init__.py +0 -0
  18. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/integrations/d3foundry_stub.py +0 -0
  19. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/integrations/nbfoundry_stub.py +0 -0
  20. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/integrations/protocols.py +0 -0
  21. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/integrations/quizazz.py +0 -0
  22. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/logging_config.py +0 -0
  23. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/parser.py +0 -0
  24. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/pipeline.py +0 -0
  25. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/py.typed +0 -0
  26. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/resolver.py +0 -0
  27. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/schema_v1.py +0 -0
  28. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/package.json +0 -0
  29. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/app.css +0 -0
  30. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/app.html +0 -0
  31. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/ContentBlock.svelte +0 -0
  32. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/ExerciseBlock.svelte +0 -0
  33. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/LessonList.svelte +0 -0
  34. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/LessonView.svelte +0 -0
  35. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/ModuleList.svelte +0 -0
  36. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/Navigation.svelte +0 -0
  37. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/PlaceholderBlock.svelte +0 -0
  38. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/ProgressBar.svelte +0 -0
  39. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/ProgressDashboard.svelte +0 -0
  40. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/QuizBlock.svelte +0 -0
  41. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/TextBlock.svelte +0 -0
  42. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/VideoBlock.svelte +0 -0
  43. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/components/VisualizationBlock.svelte +0 -0
  44. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/db/database.ts +0 -0
  45. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/db/index.ts +0 -0
  46. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/db/progress.ts +0 -0
  47. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/stores/curriculum.test.ts +0 -0
  48. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/stores/curriculum.ts +0 -0
  49. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/lib/types/index.ts +0 -0
  50. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/routes/+layout.svelte +0 -0
  51. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/routes/+layout.ts +0 -0
  52. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/routes/+page.svelte +0 -0
  53. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/src/routes/[module]/[lesson]/+page.svelte +0 -0
  54. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/static/.gitkeep +0 -0
  55. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/svelte.config.js +0 -0
  56. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/tsconfig.json +0 -0
  57. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/src/learningfoundry/sveltekit_template/vite.config.ts +0 -0
  58. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/app.css +0 -0
  59. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/app.html +0 -0
  60. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/ContentBlock.svelte +0 -0
  61. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/ExerciseBlock.svelte +0 -0
  62. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/LessonList.svelte +0 -0
  63. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/LessonView.svelte +0 -0
  64. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/ModuleList.svelte +0 -0
  65. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/Navigation.svelte +0 -0
  66. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/PlaceholderBlock.svelte +0 -0
  67. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/ProgressBar.svelte +0 -0
  68. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/ProgressDashboard.svelte +0 -0
  69. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/QuizBlock.svelte +0 -0
  70. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/TextBlock.svelte +0 -0
  71. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/VideoBlock.svelte +0 -0
  72. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/components/VisualizationBlock.svelte +0 -0
  73. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/db/database.ts +0 -0
  74. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/db/index.ts +0 -0
  75. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/db/progress.ts +0 -0
  76. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/stores/curriculum.ts +0 -0
  77. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/types/index.ts +0 -0
  78. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/lib/utils/markdown.ts +0 -0
  79. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/routes/+layout.svelte +0 -0
  80. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/routes/+page.svelte +0 -0
  81. {learningfoundry-0.34.0 → learningfoundry-0.35.0}/sveltekit_template/src/routes/[module]/[lesson]/+page.svelte +0 -0
@@ -32,6 +32,7 @@ node_modules/
32
32
  .output/
33
33
  .vercel/
34
34
  .netlify/
35
+ .pnpm-store/
35
36
  **/sveltekit_template/static/sql-wasm.wasm
36
37
 
37
38
  # TypeScript
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.35.0] - 2026-04-29
11
+
12
+ ### Fixed
13
+
14
+ - **Block math (`$$ … $$`) now renders reliably even when the delimiter lines have stray whitespace.** `marked-katex-extension`'s upstream block regex requires the opening `$$` to be followed immediately by `\n` and the closing `$$` to be followed immediately by `\n` or end-of-string — any leading or trailing whitespace on a delimiter-only line silently breaks the match, falling through to default paragraph rendering and emitting literal `$$ … $$` text in the page. Real-world markdown frequently has trailing spaces on these lines (editor quirks, copy-paste from PDFs/chat/docs), so this was easy to trip into.
15
+ - `src/learningfoundry/sveltekit_template/src/lib/utils/markdown.ts` — `renderMarkdown()` now normalises any line that is *only* whitespace + `$$` + whitespace down to bare `$$` before handing the source to `marked.parse()`. Inline math (`$x$`) and the markdown "trailing two spaces = `<br>`" rule on regular text are unaffected because the regex requires the line to consist of nothing but the delimiter.
16
+
17
+ ### Added (tests)
18
+
19
+ - `src/learningfoundry/sveltekit_template/src/lib/utils/markdown.test.ts` — 3 new vitest cases covering trailing-whitespace-after-closing-`$$`, leading-whitespace-before-closing-`$$`, and trailing-whitespace-after-opening-`$$`. Each now produces `class="katex"` and `katex-display` in the rendered HTML.
20
+
10
21
  ## [0.34.0] - 2026-04-29
11
22
 
12
23
  ### Changed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: learningfoundry
3
- Version: 0.34.0
3
+ Version: 0.35.0
4
4
  Summary: A curriculum engine that turns a YAML curriculum definition into a deployable SvelteKit learning application.
5
5
  Project-URL: Homepage, https://github.com/pointmatic/learningfoundry
6
6
  Project-URL: Repository, https://github.com/pointmatic/learningfoundry
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "learningfoundry"
7
- version = "0.34.0"
7
+ version = "0.35.0"
8
8
  description = "A curriculum engine that turns a YAML curriculum definition into a deployable SvelteKit learning application."
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
1
  # Copyright 2026 Pointmatic
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
 
4
- __version__ = "0.34.0"
4
+ __version__ = "0.35.0"