Conversation
elegaanz
left a comment
There was a problem hiding this comment.
Thank you for the package. I have left some comments :)
|
|
||
| --- | ||
|
|
||
| ## Project Structure |
There was a problem hiding this comment.
I'm not sure this section is so relevant to people wanting to use the package, who will be reading this README on Typst Universe.
There was a problem hiding this comment.
Good point! The "Project Structure", "Extensibility", "Adding a New Language", and the full function reference sections have been removed from the README. It now focuses purely on usage: quick start, examples, and the block catalog. Internal architecture details are better suited for the repository wiki or source comments.
| #import "@preview/blockst:0.1.0": blockst, scratch | ||
|
|
||
| #blockst[ | ||
| #import scratch.de: * |
There was a problem hiding this comment.
Some examples use English, some others German. I think it would be best to stick to English and only showcase German and French in a single example, to show people that this alternative API exists and what it looks like.
There was a problem hiding this comment.
Fixed! The README has been fully restructured. All examples now use English, with a single dedicated "German & French Localization" section that shows both localised APIs side by side, so readers can see what the alternative looks like without it dominating the examples.
|
|
||
| --- | ||
|
|
||
| ## Available Categories |
There was a problem hiding this comment.
I think these functions should be document in English if only in one language. Otherwise, having the full reference in the three language could be a possibility.
There was a problem hiding this comment.
The per-language function lists (the old "Available Categories" section listing gehe(schritte:) / move(steps:) etc.) have been replaced by a visual block catalog. Each category now has an expandable <details> section with an SVG showing all blocks with their English function signatures. This covers the full English reference visually, without duplicating three language variants in plain text.
There was a problem hiding this comment.
"Definiere" seems to be in German here, I'm not sure why.
There was a problem hiding this comment.
Good catch — this was a bug: the define() / definiere() block had the verb hardcoded as German ("Definiere") in the rendering layer instead of going through the translation system. It's now fixed: the label is looked up from the TOML translation files, so French uses "Définir", English uses "Define", and German uses "Definiere".
| #avancer(pas: 10) | ||
| #si-alors-sinon( | ||
| toucher-objet("bord"), | ||
| [#tourner-à-droite(degres: 180)], |
There was a problem hiding this comment.
Is there a reason some calls are wrapped in a content block (i.e [#function()] instead of #function())?
There was a problem hiding this comment.
Yes, there was a reason — but it was actually unnecessary and has been cleaned up. The [#function()] content block syntax was used to group multiple statements in branches, but single-statement calls don't need it. The examples and documentation now consistently use #function() directly for single statements, and only [#a() #b()] when multiple statements need to be grouped. A dedicated example ("Content Blocks: When to Use [...]") in the README explains the distinction.
elegaanz
left a comment
There was a problem hiding this comment.
Thank you for taking my remarks into account. I just added a small remark about the example you just added, once it's fixed it should be good to be merged.
| #set-blockst(font: "Comic Sans MS") | ||
|
|
||
| #blockst[ | ||
| #import "../libs/scratch/lang/en.typ": * |
There was a problem hiding this comment.
This should import scratch.en: * too I think.
|
Thank you! |
I am submitting
Description: Blockst renders Scratch-style programming blocks directly in Typst documents. It is useful for worksheets, teaching materials, tutorials, and visual explanations of programming concepts.
The package provides:
I tested the package locally and included documentation, examples, license information, and package metadata required for submission.
I have read and followed the submission guidelines and, in particular, I