create-presmium 1.0.0-rc.0 → 1.0.0-rc.2
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.
- package/README.md +25 -5
- package/package.json +10 -4
- package/src/cli.ts +17 -9
- package/src/create.ts +57 -19
- package/src/messages.ts +202 -70
- package/src/templates.ts +2 -0
- package/templates/document/default/lecture.json +75 -0
- package/templates/plugin/AGENTS.md +13 -17
- package/templates/plugin/README.md +10 -17
- package/templates/plugin/components/GreetingCard.css +32 -0
- package/templates/plugin/components/GreetingCard.tsx +27 -0
- package/templates/plugin/example/lecture.json +169 -0
- package/templates/plugin/package.json +6 -8
- package/templates/plugin/pnpm-workspace.yaml +7 -1
- package/templates/plugin/src/domain/index.ts +2 -2
- package/templates/plugin/src/node/presmium.ts +6 -30
- package/templates/plugin/test/plugin.test.ts +1 -1
- package/templates/site/.github/workflows/pages.yml +56 -0
- package/templates/site/intro/lecture.json +187 -0
- package/templates/site/presmium.workspace.yaml +17 -0
- package/templates/site/site/home.json +43 -0
- package/templates/skills/presmium-animate/SKILL.md +50 -0
- package/templates/skills/presmium-animate/gallery/algorithms/lecture.json +5165 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/anime/binary-set.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/anime/bubble-swap.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/anime/graph-bfs.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/anime/hash-scramble.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/dc/code-diff.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/dc/code-focus.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/dc/code-morph.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/dc/code-typing.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/dc/decision-tree.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/dc/terminal-run.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/gsap/draw-svg.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/gsap/keyframes.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/gsap/merge.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/gsap/nested.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/gsap/swap-arc.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/motion/packet.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/motion/reorder.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/motion/scan.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/motion/spring-tree.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/remotion/swap.ts +2 -0
- package/templates/skills/presmium-animate/gallery/algorithms/scenes/three/hanoi.ts +2 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/attention-heat.ts +49 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/ball-keyframes.ts +53 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/binary-set.ts +40 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/bubble-swap.ts +50 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/descent-canvas.ts +95 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/draw-curve.ts +40 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/draw-fill.ts +36 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/easing-lanes.ts +39 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/flip-cards.ts +25 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/graph-bfs.ts +48 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/grid-ripple.ts +33 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/hash-scramble.ts +51 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/kmeans-seeded.ts +62 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/nn-sync.ts +44 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/packet-path.ts +40 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/param-counter.ts +36 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/taylor-morph.ts +60 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/token-split.ts +29 -0
- package/templates/skills/presmium-animate/gallery/anime/scenes/wave-loop.ts +27 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/agent-cursor.ts +117 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/callout.ts +103 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/click-trail.ts +132 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/keyword-marks.ts +117 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/lib/backdrop.ts +142 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/lib/ink.ts +256 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/lib/pointer.ts +68 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/lib/time.ts +22 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/pen-annotate.ts +110 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/sketch-checklist.ts +94 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/sketch-flow.ts +68 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/speech-bubble.ts +74 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/spotlight.ts +77 -0
- package/templates/skills/presmium-animate/gallery/catalog/annotate-cursor/scenes/text-select.ts +99 -0
- package/templates/skills/presmium-animate/gallery/catalog/carry/scenes/one-dot.ts +255 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/chart-story.ts +168 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/code-diff.ts +76 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/code-focus.ts +100 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/code-morph.ts +106 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/code-typing.ts +79 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/decision-tree.ts +110 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/lib/code.ts +153 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/oscilloscope.ts +149 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/terminal-run.ts +83 -0
- package/templates/skills/presmium-animate/gallery/catalog/data-code/scenes/tile-map.ts +113 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/card-grid.ts +61 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/carousel.ts +87 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/checklist.ts +70 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/confetti.ts +68 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/focus-words.ts +36 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/hub-spokes.ts +89 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/lib/motion.ts +15 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/outline-callout.ts +79 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/pendulum-settle.ts +97 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/physical-exit.ts +79 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/stat-gauge.ts +76 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/stop-motion.ts +92 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/surround.ts +78 -0
- package/templates/skills/presmium-animate/gallery/catalog/motion-showcase/scenes/whiteboard-sketch.ts +128 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/ai-answer.ts +116 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/before-after.ts +66 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/chat-thread.ts +75 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/context-menu.ts +96 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/cursor-zoom.ts +73 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/device-frame.ts +68 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/device-splay.ts +48 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/drag-drop.ts +80 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/lib/ui.ts +131 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/modal-morph.ts +60 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/notification-stack.ts +66 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/onboarding-stepper.ts +96 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/screen-flow.ts +66 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/settings-toggle.ts +67 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/signup-form.ts +107 -0
- package/templates/skills/presmium-animate/gallery/catalog/product-ui/scenes/testimonial.ts +66 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/before-after.ts +158 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/figure-ring.ts +156 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/lib/figures.ts +146 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/lib/grain.ts +58 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/lib/images.ts +32 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/lib/overlay.ts +13 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/noise-to-marble.ts +180 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/paper-grain.ts +56 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/sample-sphere.ts +151 -0
- package/templates/skills/presmium-animate/gallery/catalog/shader-3d-bg/scenes/wave-interference.ts +131 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/camera-caption.ts +78 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/captions.ts +87 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/glyph-slam.ts +73 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/lib/text.ts +84 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/lower-third.ts +148 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/scramble-reveal.ts +86 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/slot-swap.ts +75 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/strike-replace.ts +78 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/text-match-cut.ts +73 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/text-reveal.ts +97 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/title-card.ts +60 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/versus-cards.ts +64 -0
- package/templates/skills/presmium-animate/gallery/catalog/text-captions/scenes/weight-wave.ts +55 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/dolly-zoom.ts +68 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/fade-through.ts +44 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/flip.ts +49 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/grid-wipe.ts +54 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/iris.ts +54 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/lib/stage.ts +90 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/match-cut.ts +68 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/pan-stations.ts +73 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/pull-back.ts +70 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/push-in.ts +40 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/rack-focus.ts +53 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/slide-wipe.ts +74 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/split-compare.ts +87 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/velocity-cut.ts +64 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/whip-pan.ts +59 -0
- package/templates/skills/presmium-animate/gallery/catalog/transitions-camera/scenes/zoom-through.ts +71 -0
- package/templates/skills/presmium-animate/gallery/craft/lecture.json +3238 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/anime/ball-keyframes.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/anime/easing-lanes.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/gsap/utils.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/motion/cssvar.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/motion/easings.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/motion/spring-compare.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/remotion/beam-prune.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/remotion/easing.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/remotion/freeze.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/remotion/posterize.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/remotion/spring-chain.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/show/confetti.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/show/physical-exit.ts +2 -0
- package/templates/skills/presmium-animate/gallery/craft/scenes/show/stop-motion.ts +2 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/axis-zoom.ts +46 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/bar-race.ts +66 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/chord.ts +48 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/contour-density.ts +32 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/data-join.ts +60 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/force-path.ts +71 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/globe.ts +58 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/heatmap-scales.ts +43 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/histogram.ts +47 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/kit/fields.ts +21 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/kit/stage.ts +35 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/line-draw.ts +49 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/pack-zoom.ts +37 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/pie-arcs.ts +44 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/quadtree-find.ts +36 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/stack-stream.ts +58 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/sunburst-zoom.ts +49 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/tree-morph.ts +79 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/treemap-tiling.ts +47 -0
- package/templates/skills/presmium-animate/gallery/d3/scenes/voronoi-lloyd.ts +38 -0
- package/templates/skills/presmium-animate/gallery/data/lecture.json +7795 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/anime/param-counter.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/axis-zoom.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/bar-race.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/chord.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/contour-density.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/data-join.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/force-path.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/globe.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/heatmap-scales.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/histogram.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/line-draw.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/pack-zoom.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/pie-arcs.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/quadtree-find.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/stack-stream.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/sunburst-zoom.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/tree-morph.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/treemap-tiling.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/d3/voronoi-lloyd.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/dc/chart-story.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/dc/oscilloscope.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/dc/tile-map.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/gsap/counter.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/motion/bars.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/motion/counter.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/motion/ring.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/remotion/bar-chart.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/remotion/counter.ts +2 -0
- package/templates/skills/presmium-animate/gallery/data/scenes/show/stat-gauge.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/lecture.json +4266 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/gsap/emphasis.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/mark/callout.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/mark/keyword-marks.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/mark/pen-annotate.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/mark/sketch-checklist.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/mark/sketch-flow.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/mark/speech-bubble.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/mark/spotlight.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/motion/blur.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/motion/emphasis.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/motion/pulse.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/remotion/loop-pulse.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/show/outline-callout.ts +2 -0
- package/templates/skills/presmium-animate/gallery/emphasis/scenes/show/whiteboard-sketch.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/lecture.json +5352 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/10s/data-story.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/10s/method.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/10s/problem-solution.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/1s/swap.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/5s/attention.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/5s/feature-click.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/5s/key-result.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/5s/kinetic.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/5s/logo-sting.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/5s/turntable.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/film/cta.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/film/rnn-chain.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/film/title-card.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/fx/anime/submit-burst.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/fx/gsap/comet-stroke.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/fx/gsap/morph-anticipation.ts +2 -0
- package/templates/skills/presmium-animate/gallery/films/scenes/fx/gsap/odometer.ts +2 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/counter.ts +35 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/css-vars.ts +48 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/draw-svg.ts +47 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/emphasis.ts +39 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/flip-3d.ts +32 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/flip-fit.ts +40 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/keyframes.ts +48 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/merge.ts +35 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/morph-svg.ts +57 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/motion-path.ts +43 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/nested.ts +49 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/physics.ts +39 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/seeded.ts +61 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/split-text.ts +32 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/stagger-grid.ts +26 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/swap-arc.ts +29 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/text-plugin.ts +34 -0
- package/templates/skills/presmium-animate/gallery/gsap/scenes/utils.ts +36 -0
- package/templates/skills/presmium-animate/gallery/lengths/lecture.json +15855 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/10s/data-story.ts +82 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/10s/fourier.ts +226 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/10s/method.ts +67 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/10s/problem-solution.ts +74 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/1s/enter.ts +16 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/1s/loop.ts +21 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/1s/replace.ts +21 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/1s/swap.ts +21 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/1s/type.ts +19 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/5s/attention.ts +49 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/5s/feature-click.ts +67 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/5s/key-result.ts +70 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/5s/kinetic.ts +36 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/5s/leaderboard.ts +141 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/5s/logo-sting.ts +35 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/5s/turntable.ts +82 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/film/cta.ts +34 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/film/rnn-chain.ts +65 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/film/title-card.ts +36 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/anime/gooey-split.ts +64 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/anime/neon-trace.ts +65 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/anime/shockwave-lens.ts +56 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/anime/submit-burst.ts +93 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/d3/bend-into-donut.ts +92 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/d3/comet-draw.ts +100 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/d3/frontier-push.ts +106 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/d3/threshold-ignite.ts +94 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/gsap/comet-stroke.ts +88 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/gsap/hinge-lines.ts +39 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/gsap/morph-anticipation.ts +58 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/gsap/odometer.ts +87 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/motion/border-beam.ts +90 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/motion/emphasize-marker.ts +43 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/motion/exploded-layers.ts +103 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/motion/tilt-glare.ts +78 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/remotion/device-hero.ts +63 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/remotion/impact-slam.ts +72 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/remotion/pop-burst.ts +74 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/remotion/whip-pan.ts +49 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/three/ai-orb.ts +137 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/three/glass-card.ts +182 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/three/neural-signal.ts +263 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/fx/three/particle-logo.ts +225 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/anime-fx.ts +45 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/atoms.ts +104 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/d3-fx.ts +103 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fourier.ts +137 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/frame.ts +45 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/camera.ts +94 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/defs.ts +25 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/ids.ts +8 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/moves.ts +130 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/noise.ts +18 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/paths.ts +55 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/random.ts +36 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/sample.ts +58 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/theme.ts +19 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/time.ts +111 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/fx/trail.ts +10 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/icons.ts +22 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/motion-fx.ts +53 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/remotion-fx.ts +60 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/kit/three-fx.ts +209 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/anthropic.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/claude-color.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/deepseek-color.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/google-color.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/kimi-color.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/meta-color.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/openai.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/qwen-color.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/stepfun.svg +1 -0
- package/templates/skills/presmium-animate/gallery/lengths/scenes/logos/zai.svg +1 -0
- package/templates/skills/presmium-animate/gallery/math-ml/lecture.json +7220 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/anime/attention-heat.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/anime/descent-canvas.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/anime/kmeans-seeded.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/anime/nn-sync.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/anime/taylor-morph.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/anime/wave-loop.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/fx/wave-interference.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/gsap/css-vars.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/gsap/morph-svg.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/gsap/physics.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/gsap/seeded.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/motion/canvas.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/motion/draw.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/motion/heatmap.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/motion/matrix.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/motion/morph.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/remotion/monte-carlo.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/remotion/wobble.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/show/pendulum-settle.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/three/clusters.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/three/descent.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/three/hull.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/three/lathe.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/three/lorenz.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/three/matrix.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/three/projection.ts +2 -0
- package/templates/skills/presmium-animate/gallery/math-ml/scenes/three/surfaces.ts +2 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/bars.ts +59 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/blur.ts +41 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/canvas.ts +92 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/counter.ts +44 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/cssvar.ts +35 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/draw.ts +58 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/easings.ts +41 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/emphasis.ts +41 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/flip.ts +37 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/flow.ts +50 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/heatmap.ts +67 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/labels.ts +38 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/matrix.ts +63 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/morph.ts +56 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/packet.ts +47 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/pulse.ts +36 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/reorder.ts +44 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/ring.ts +41 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/ripple.ts +41 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/scan.ts +67 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/spring-compare.ts +37 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/spring-tree.ts +38 -0
- package/templates/skills/presmium-animate/gallery/motion/scenes/wipe.ts +57 -0
- package/templates/skills/presmium-animate/gallery/package.json +19 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/lecture.json +5030 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/anime/draw-curve.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/anime/packet-path.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/fx/before-after.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/fx/figure-ring.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/fx/noise-to-marble.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/fx/paper-grain.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/fx/sample-sphere.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/gsap/motion-path.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/motion/flow.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/remotion/path-draw.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/three/galaxy.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/three/materials.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/three/route.ts +2 -0
- package/templates/skills/presmium-animate/gallery/paths-3d/scenes/three/shadows.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/lecture.json +8530 -0
- package/templates/skills/presmium-animate/gallery/product/public/screen-lesson.webp +0 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/mark/agent-cursor.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/mark/click-trail.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/mark/text-select.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/ai-answer.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/before-after.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/chat-thread.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/context-menu.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/cursor-zoom.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/device-frame.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/device-splay.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/drag-drop.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/modal-morph.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/notification-stack.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/onboarding-stepper.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/screen-flow.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/settings-toggle.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/signup-form.ts +2 -0
- package/templates/skills/presmium-animate/gallery/product/scenes/ui/testimonial.ts +2 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/bar-chart.ts +39 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/beam-prune.ts +37 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/counter.ts +31 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/easing.ts +45 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/freeze.ts +46 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/kinetic-type.ts +32 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/loop-pulse.ts +44 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/lower-third.ts +34 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/monte-carlo.ts +36 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/path-draw.ts +43 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/posterize.ts +36 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/sequence-steps.ts +35 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/series-transition.ts +46 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/spring-chain.ts +35 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/spring-pop.ts +37 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/swap.ts +37 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/typewriter.ts +40 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/wipe.ts +32 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/wobble.ts +39 -0
- package/templates/skills/presmium-animate/gallery/remotion/scenes/word-highlight.ts +34 -0
- package/templates/skills/presmium-animate/gallery/story/lecture.json +1111 -0
- package/templates/skills/presmium-animate/gallery/story/scenes/data/flow-matching.json +1 -0
- package/templates/skills/presmium-animate/gallery/story/scenes/data/flow-matching.py +197 -0
- package/templates/skills/presmium-animate/gallery/story/scenes/flow-matching.ts +702 -0
- package/templates/skills/presmium-animate/gallery/structure/lecture.json +4302 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/anime/draw-fill.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/anime/flip-cards.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/anime/grid-ripple.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/gsap/flip-3d.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/gsap/flip-fit.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/gsap/stagger-grid.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/motion/flip.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/motion/labels.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/motion/ripple.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/remotion/sequence-steps.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/remotion/spring-pop.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/show/card-grid.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/show/carousel.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/show/checklist.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/show/hub-spokes.ts +2 -0
- package/templates/skills/presmium-animate/gallery/structure/scenes/show/surround.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/lecture.json +5934 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/anime/token-split.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/gsap/split-text.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/gsap/text-plugin.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/remotion/kinetic-type.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/remotion/lower-third.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/remotion/typewriter.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/remotion/word-highlight.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/show/focus-words.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/camera-caption.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/captions.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/glyph-slam.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/lower-third.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/scramble-reveal.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/slot-swap.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/strike-replace.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/text-match-cut.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/text-reveal.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/title-card.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/versus-cards.ts +2 -0
- package/templates/skills/presmium-animate/gallery/text/scenes/tx/weight-wave.ts +2 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/clusters.ts +104 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/descent.ts +111 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/galaxy.ts +110 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/hanoi.ts +136 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/hull.ts +87 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/lathe.ts +101 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/lorenz.ts +109 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/materials.ts +100 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/matrix.ts +115 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/projection.ts +108 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/route.ts +102 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/shadows.ts +92 -0
- package/templates/skills/presmium-animate/gallery/three/scenes/surfaces.ts +87 -0
- package/templates/skills/presmium-animate/gallery/timeline/lecture.json +2409 -0
- package/templates/skills/presmium-animate/gallery/timeline/scenes/bubble.ts +38 -0
- package/templates/skills/presmium-animate/gallery/timeline/scenes/steps.ts +10 -0
- package/templates/skills/presmium-animate/gallery/transitions/lecture.json +8147 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/dolly-zoom.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/fade-through.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/flip.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/grid-wipe.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/iris.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/match-cut.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/pan-stations.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/pull-back.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/push-in.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/rack-focus.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/slide-wipe.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/split-compare.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/velocity-cut.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/whip-pan.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/cam/zoom-through.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/carry/one-dot.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/motion/wipe.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/remotion/series-transition.ts +2 -0
- package/templates/skills/presmium-animate/gallery/transitions/scenes/remotion/wipe.ts +2 -0
- package/templates/skills/presmium-animate/references/lengths.md +193 -0
- package/templates/skills/presmium-animate/references/libraries.md +332 -0
- package/templates/skills/presmium-animate/references/procedural.md +99 -0
- package/templates/skills/presmium-animate/references/scenarios.md +159 -0
- package/templates/skills/presmium-animate/references/story.md +231 -0
- package/templates/skills/presmium-animate/references/storyboards.md +607 -0
- package/templates/skills/presmium-animate/references/timeline.md +11 -0
- package/templates/skills/presmium-author/SKILL.md +30 -79
- package/templates/skills/presmium-author/references/assistance.md +20 -14
- package/templates/skills/presmium-author/references/code.md +13 -42
- package/templates/skills/presmium-author/references/document.md +21 -0
- package/templates/skills/presmium-author/references/publishing.md +34 -39
- package/templates/skills/presmium-author/references/writing.md +7 -66
- package/templates/skills/presmium-develop/SKILL.md +24 -74
- package/templates/skills/presmium-develop/references/plugin.md +428 -152
- package/templates/skills/presmium-develop/references/testing.md +118 -64
- package/templates/skills/presmium-present/SKILL.md +20 -54
- package/templates/skills/presmium-present/references/classroom.md +46 -28
- package/templates/skills/presmium-present/references/delivery.md +87 -28
- package/templates/skills/presmium-present/references/lecture.md +48 -32
- package/templates/workspace/gitignore +1 -1
- package/templates/workspace/pnpm-workspace.yaml +7 -1
- package/templates/workspace/presmium.workspace.yaml +5 -5
- package/templates/document/default/lecture.md +0 -18
- package/templates/plugin/components/GreetingCard.vue +0 -70
- package/templates/plugin/example/lecture.md +0 -25
- package/templates/skills/presmium-author/references/directives.md +0 -592
package/README.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# create-presmium
|
|
2
2
|
|
|
3
|
-
Starts a new [Presmium](https://github.com/Lincyaw/presmium) project: a lecture, a workspace or a plugin. `presmium new` (from `pnpm add -g presmium`) runs it; so does `pnpm create presmium`.
|
|
3
|
+
Starts a new [Presmium](https://github.com/Lincyaw/presmium) project: a lecture, a workspace, a themed site or a plugin. `presmium new` (from `pnpm add -g @lincyaw/presmium`) runs it; so does `pnpm create presmium`.
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
6
|
presmium new
|
|
7
7
|
presmium new my-lecture --type lecture --title "Tokenization"
|
|
8
8
|
presmium new my-course --type workspace --title "Data structures"
|
|
9
|
+
presmium new my-site --type site --theme course --title "My course"
|
|
9
10
|
presmium new presmium-plugin-greeting --type plugin --name presmium-plugin-greeting
|
|
10
11
|
```
|
|
11
12
|
|
|
@@ -13,16 +14,35 @@ Without arguments it asks for the kind of project, the directory and the title (
|
|
|
13
14
|
|
|
14
15
|
| Option | What |
|
|
15
16
|
|---|---|
|
|
16
|
-
| `--type <kind>` | `lecture` (one document), `workspace` (documents previewed with `presmium serve`) or `plugin` |
|
|
17
|
+
| `--type <kind>` | `lecture` (one document), `workspace` (documents previewed with `presmium serve`), `site` (a themed workspace with a homepage and GitHub Pages workflow) or `plugin` |
|
|
18
|
+
| `--theme <name>` | For `site`: `course` (default), `docs` or `showcase` |
|
|
17
19
|
| `--title <text>` | The lecture's or the workspace's title (default: the directory's name) |
|
|
18
20
|
| `--name <name>` | The plugin's package name (default: the directory's name) |
|
|
19
21
|
| `--no-git` | Do not run `git init` |
|
|
20
22
|
| `-h`, `--help` | Show the help |
|
|
21
23
|
|
|
22
|
-
- A lecture: `lecture.
|
|
24
|
+
- A lecture: `lecture.json`; `presmium dev`, `presmium check`, `presmium build`.
|
|
23
25
|
- A workspace: `presmium.workspace.yaml` and a first document in `intro/`; `presmium serve`.
|
|
24
|
-
- A
|
|
26
|
+
- A site: `presmium.workspace.yaml`, an independent homepage in `site/home.json`, a teaching document in `intro/lecture.json`, and `.github/workflows/pages.yml`; `pnpm install`, `pnpm serve`, `pnpm build`.
|
|
27
|
+
- A plugin: a directive, a React component shown in the web page and the slides, a server route, text in Chinese and English, an example document and integration tests; `pnpm install`, `pnpm test`, `pnpm dev`.
|
|
25
28
|
|
|
26
|
-
Lectures and
|
|
29
|
+
Lectures, workspaces and sites list `presmium` at create-presmium's own version as a dev dependency, so `pnpm install` pins it; without it the global `presmium` builds them. Each project gets an `AGENTS.md` (`CLAUDE.md` links to it) and copies of the Presmium skills for coding agents in `.agents/skills`. The text of the questions and of the new files follows the system's language (Chinese or English).
|
|
30
|
+
|
|
31
|
+
## Themed site
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
presmium new my-site --type site --theme showcase --title 'My work'
|
|
35
|
+
cd my-site
|
|
36
|
+
pnpm install
|
|
37
|
+
pnpm serve
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Edit `site/home.json` to design the homepage and `intro/lecture.json` for the first teaching document. `site.landing.source` selects the homepage file; homepage content has its own structure, while teaching documents retain `lecture.json` as their sole content authority. Change `site.theme` and `site.params` in `presmium.workspace.yaml` to personalize the site. `pnpm build` exports `dist/web/`.
|
|
41
|
+
|
|
42
|
+
For your own HTML, CSS and JavaScript, replace the landing configuration with `site.landing: { template: './site/home.html' }`. The HTML entry and its local assets are bundled for static hosting; `script#presmium-site-data` provides the site's public document links. Refresh the homepage to rebuild that template during `pnpm serve`; template hot updates are not provided.
|
|
43
|
+
|
|
44
|
+
Push the project to a GitHub repository, select **GitHub Actions** in **Settings → Pages → Build and deployment → Source**, then run the generated Pages workflow or push to its configured branch. It reads the repository's Pages base path, builds the site and deploys `dist/web/`. The build remains an ordinary static site that can be hosted elsewhere.
|
|
45
|
+
|
|
46
|
+
See the [site theme guide](https://github.com/Lincyaw/presmium/blob/main/docs/site-themes.md) for the three presets, supported parameters and page layouts.
|
|
27
47
|
|
|
28
48
|
License: Apache-2.0.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-presmium",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.2",
|
|
4
4
|
"description": "presmium new, or pnpm create presmium: a new Presmium lecture, workspace or plugin",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"presmium",
|
|
15
15
|
"create",
|
|
16
16
|
"template",
|
|
17
|
-
"
|
|
17
|
+
"document-ir",
|
|
18
18
|
"slides"
|
|
19
19
|
],
|
|
20
20
|
"type": "module",
|
|
@@ -37,10 +37,16 @@
|
|
|
37
37
|
"templates"
|
|
38
38
|
],
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"jiti": "^2.7.0"
|
|
40
|
+
"jiti": "^2.7.0",
|
|
41
|
+
"@lincyaw/kernel": "1.0.0-rc.2"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
|
-
"@lincyaw/cli": "1.0.0-rc.
|
|
44
|
+
"@lincyaw/cli": "1.0.0-rc.2"
|
|
45
|
+
},
|
|
46
|
+
"presmium": {
|
|
47
|
+
"generated": [
|
|
48
|
+
"templates"
|
|
49
|
+
]
|
|
44
50
|
},
|
|
45
51
|
"scripts": {
|
|
46
52
|
"templates": "node scripts/templates.ts"
|
package/src/cli.ts
CHANGED
|
@@ -2,13 +2,15 @@ import { createInterface } from 'node:readline'
|
|
|
2
2
|
import type { Interface } from 'node:readline'
|
|
3
3
|
import { basename, relative, resolve } from 'node:path'
|
|
4
4
|
import { parseArgs } from 'node:util'
|
|
5
|
-
import { assertEmpty, createProject, CreateError, KINDS,
|
|
5
|
+
import { assertEmpty, createProject, CreateError, isValidPackageName, KINDS, packageNameFor, SITE_THEMES } from './create.ts'
|
|
6
|
+
import type { ProjectKind, SiteTheme } from './create.ts'
|
|
6
7
|
import { MESSAGES, systemLocale } from './messages.ts'
|
|
7
|
-
import type { Messages
|
|
8
|
+
import type { Messages } from './messages.ts'
|
|
8
9
|
|
|
9
10
|
const DEFAULT_DIRS: Record<ProjectKind, string> = {
|
|
10
11
|
lecture: 'my-lecture',
|
|
11
12
|
workspace: 'my-course',
|
|
13
|
+
site: 'my-site',
|
|
12
14
|
plugin: 'presmium-plugin-greeting',
|
|
13
15
|
}
|
|
14
16
|
|
|
@@ -16,7 +18,7 @@ export async function main(argv: string[]): Promise<number> {
|
|
|
16
18
|
const t = MESSAGES[systemLocale()]
|
|
17
19
|
let args: ReturnType<typeof parse>
|
|
18
20
|
try {
|
|
19
|
-
args = parse(argv)
|
|
21
|
+
args = parse(argv, t)
|
|
20
22
|
} catch (error) {
|
|
21
23
|
process.stderr.write(`create-presmium: ${(error as Error).message}\n\n${t.usage}\n`)
|
|
22
24
|
return 2
|
|
@@ -31,15 +33,20 @@ export async function main(argv: string[]): Promise<number> {
|
|
|
31
33
|
const kind = args.values.type ?? await questions.kind()
|
|
32
34
|
if (!KINDS.includes(kind as ProjectKind)) throw new CreateError(t.badKind(kind), true)
|
|
33
35
|
const project = kind as ProjectKind
|
|
36
|
+
if (args.values.theme !== undefined && project !== 'site') throw new CreateError(t.themeOnlyForSite, true)
|
|
37
|
+
const theme = args.values.theme ?? 'course'
|
|
38
|
+
if (!SITE_THEMES.includes(theme as SiteTheme)) throw new CreateError(t.badTheme(theme), true)
|
|
34
39
|
const dir = resolve(args.positionals[0] ?? await questions.ask(t.dirQuestion, DEFAULT_DIRS[project]))
|
|
35
40
|
assertEmpty(dir, t)
|
|
36
41
|
const folder = relative(process.cwd(), dir) || '.'
|
|
37
42
|
const title = args.values.title ?? (asking && project !== 'plugin' ? await questions.ask(t.titleQuestion, basename(dir)) : basename(dir))
|
|
38
|
-
const name = args.values.name ?? (asking && project === 'plugin' ? await questions.ask(t.nameQuestion,
|
|
39
|
-
if (!
|
|
43
|
+
const name = args.values.name ?? (asking && project === 'plugin' ? await questions.ask(t.nameQuestion, packageNameFor(dir)) : packageNameFor(dir))
|
|
44
|
+
if (!isValidPackageName(name)) throw new CreateError(t.badName(name))
|
|
40
45
|
questions.close()
|
|
41
|
-
|
|
42
|
-
const
|
|
46
|
+
// The project's content is written in the title's language: a Chinese title gets Chinese pages whatever the system says.
|
|
47
|
+
const lang = /\p{Script=Han}/u.test(title) ? 'zh-CN' : systemLocale()
|
|
48
|
+
createProject({ kind: project, dir, title, name, git: args.values.git, theme: theme as SiteTheme, t, content: MESSAGES[lang], lang })
|
|
49
|
+
const steps = [...folder === '.' ? [] : [`cd ${/[\s'"]/.test(folder) ? JSON.stringify(folder) : folder}`], ...project === 'plugin' ? ['pnpm install', 'pnpm test', 'pnpm dev'] : project === 'site' ? ['pnpm install', 'pnpm serve'] : [`presmium ${project === 'lecture' ? 'dev' : 'serve'}`]]
|
|
43
50
|
process.stdout.write(`${t.created(project, folder)}\n\n${t.next}\n${steps.map(step => ` ${step}\n`).join('')}\n${t.agents}\n`)
|
|
44
51
|
return 0
|
|
45
52
|
} catch (error) {
|
|
@@ -51,7 +58,7 @@ export async function main(argv: string[]): Promise<number> {
|
|
|
51
58
|
}
|
|
52
59
|
}
|
|
53
60
|
|
|
54
|
-
function parse(argv: string[]) {
|
|
61
|
+
function parse(argv: string[], t: Messages) {
|
|
55
62
|
const parsed = parseArgs({
|
|
56
63
|
args: argv,
|
|
57
64
|
allowPositionals: true,
|
|
@@ -59,12 +66,13 @@ function parse(argv: string[]) {
|
|
|
59
66
|
options: {
|
|
60
67
|
type: { type: 'string', short: 't' },
|
|
61
68
|
title: { type: 'string' },
|
|
69
|
+
theme: { type: 'string' },
|
|
62
70
|
name: { type: 'string' },
|
|
63
71
|
git: { type: 'boolean', default: true },
|
|
64
72
|
help: { type: 'boolean', short: 'h', default: false },
|
|
65
73
|
},
|
|
66
74
|
})
|
|
67
|
-
if (parsed.positionals.length > 1) throw new Error(
|
|
75
|
+
if (parsed.positionals.length > 1) throw new Error(t.tooManyDirectories(parsed.positionals.length))
|
|
68
76
|
return parsed
|
|
69
77
|
}
|
|
70
78
|
|
package/src/create.ts
CHANGED
|
@@ -1,16 +1,24 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto'
|
|
2
|
+
import { DOCUMENT_ENTRY } from '@lincyaw/kernel'
|
|
3
|
+
import type { TeachingDocument } from '@lincyaw/kernel'
|
|
1
4
|
import { spawnSync } from 'node:child_process'
|
|
2
5
|
import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, symlinkSync, writeFileSync } from 'node:fs'
|
|
3
6
|
import { basename, dirname, join } from 'node:path'
|
|
4
|
-
import type {
|
|
7
|
+
import type { Locale, Messages } from './messages.ts'
|
|
5
8
|
import { projectPath, templateDir, templateFiles } from './templates.ts'
|
|
6
9
|
|
|
7
|
-
export
|
|
10
|
+
export type ProjectKind = 'lecture' | 'workspace' | 'plugin' | 'site'
|
|
11
|
+
export type SiteTheme = 'course' | 'docs' | 'showcase'
|
|
12
|
+
|
|
13
|
+
export const KINDS: readonly ProjectKind[] = ['lecture', 'workspace', 'plugin', 'site']
|
|
14
|
+
export const SITE_THEMES: readonly SiteTheme[] = ['course', 'docs', 'showcase']
|
|
8
15
|
|
|
9
16
|
export const VERSION = (JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8')) as { version: string }).version
|
|
10
17
|
|
|
11
18
|
const SKILLS: Record<ProjectKind, string[]> = {
|
|
12
|
-
lecture: ['presmium-author', 'presmium-present'],
|
|
13
|
-
workspace: ['presmium-author', 'presmium-present'],
|
|
19
|
+
lecture: ['presmium-author', 'presmium-animate', 'presmium-present'],
|
|
20
|
+
workspace: ['presmium-author', 'presmium-animate', 'presmium-present'],
|
|
21
|
+
site: ['presmium-author', 'presmium-animate', 'presmium-present'],
|
|
14
22
|
plugin: ['presmium-develop', 'presmium-author'],
|
|
15
23
|
}
|
|
16
24
|
|
|
@@ -24,7 +32,11 @@ export interface ProjectOptions {
|
|
|
24
32
|
title: string
|
|
25
33
|
name: string
|
|
26
34
|
git: boolean
|
|
35
|
+
theme?: SiteTheme
|
|
27
36
|
t: Messages
|
|
37
|
+
/** The messages the project's own files are written in, and their language; the command's messages when absent. */
|
|
38
|
+
content?: Messages
|
|
39
|
+
lang?: Locale
|
|
28
40
|
}
|
|
29
41
|
|
|
30
42
|
export class CreateError extends Error {
|
|
@@ -36,17 +48,17 @@ export class CreateError extends Error {
|
|
|
36
48
|
}
|
|
37
49
|
}
|
|
38
50
|
|
|
39
|
-
export function
|
|
51
|
+
export function isValidPackageName(name: string): boolean {
|
|
40
52
|
return name.length <= 214 && PACKAGE_NAME.test(name)
|
|
41
53
|
}
|
|
42
54
|
|
|
43
|
-
export function
|
|
55
|
+
export function packageNameFor(dir: string): string {
|
|
44
56
|
const name = basename(dir).toLowerCase().replace(/[^a-z0-9._~-]+/g, '-').replace(/^[._~-]+/, '')
|
|
45
57
|
return name || 'presmium-project'
|
|
46
58
|
}
|
|
47
59
|
|
|
48
|
-
export function
|
|
49
|
-
return
|
|
60
|
+
export function pluginIdFor(packageName: string): string {
|
|
61
|
+
return packageName.replace(/^@/, '').replace('/', '.')
|
|
50
62
|
}
|
|
51
63
|
|
|
52
64
|
export function assertEmpty(dir: string, t: Messages): void {
|
|
@@ -55,27 +67,52 @@ export function assertEmpty(dir: string, t: Messages): void {
|
|
|
55
67
|
|
|
56
68
|
export function createProject(options: ProjectOptions): void {
|
|
57
69
|
const { kind, dir, title, name, t } = options
|
|
70
|
+
const c = options.content ?? t
|
|
58
71
|
assertEmpty(dir, t)
|
|
59
|
-
if (!
|
|
72
|
+
if (!isValidPackageName(name)) throw new CreateError(t.badName(name))
|
|
60
73
|
mkdirSync(dir, { recursive: true })
|
|
61
74
|
const document = (to: string, documentTitle: string) => {
|
|
62
|
-
|
|
63
|
-
|
|
75
|
+
copyTemplate('document/default', to, (path, text) => {
|
|
76
|
+
if (path !== DOCUMENT_ENTRY) return text
|
|
77
|
+
const value = JSON.parse(text) as TeachingDocument
|
|
78
|
+
value.id = randomUUID()
|
|
79
|
+
value.metadata.title = documentTitle
|
|
80
|
+
if (options.lang) value.metadata.lang = options.lang
|
|
81
|
+
for (const section of Object.values(value.sections)) if (section.title === '{{title}}') section.title = documentTitle
|
|
82
|
+
return `${JSON.stringify(value, null, 2)}\n`
|
|
83
|
+
})
|
|
64
84
|
}
|
|
65
85
|
if (kind === 'lecture') {
|
|
66
86
|
document(dir, title)
|
|
67
87
|
copyTemplate('workspace', dir, unchanged, path => path === '.gitignore' || path === 'pnpm-workspace.yaml')
|
|
68
|
-
writePackage(dir, { name, private: true, type: 'module', scripts: { dev: 'presmium dev', check: 'presmium check', build: 'presmium build' }, devDependencies: { presmium: `^${VERSION}` } })
|
|
88
|
+
writePackage(dir, { name, private: true, type: 'module', scripts: { dev: 'presmium dev', check: 'presmium check', build: 'presmium build' }, devDependencies: { '@lincyaw/presmium': `^${VERSION}` } })
|
|
69
89
|
} else if (kind === 'workspace') {
|
|
70
90
|
copyTemplate('workspace', dir, (path, text) => path === 'presmium.workspace.yaml' ? text.replace(/^title: .*$/m, () => `title: ${JSON.stringify(title)}`) : text)
|
|
71
|
-
document(join(dir, FIRST_DOCUMENT),
|
|
72
|
-
writePackage(dir, { name, private: true, type: 'module', scripts: { serve: 'presmium serve', check: `presmium check ${FIRST_DOCUMENT}`, build: 'presmium build' }, devDependencies: { presmium: `^${VERSION}` } })
|
|
91
|
+
document(join(dir, FIRST_DOCUMENT), c.firstDocument)
|
|
92
|
+
writePackage(dir, { name, private: true, type: 'module', scripts: { serve: 'presmium serve', check: `presmium check ${FIRST_DOCUMENT}`, build: 'presmium build' }, devDependencies: { '@lincyaw/presmium': `^${VERSION}` } })
|
|
93
|
+
} else if (kind === 'site') {
|
|
94
|
+
copyTemplate('workspace', dir, unchanged, path => path === '.gitignore' || path === 'pnpm-workspace.yaml')
|
|
95
|
+
const theme = options.theme ?? 'course'
|
|
96
|
+
const params = theme === 'showcase'
|
|
97
|
+
? { accent: 'violet', typography: 'sans', contentWidth: 'wide' }
|
|
98
|
+
: { accent: 'teal', typography: 'reading', contentWidth: 'comfortable' }
|
|
99
|
+
const strings: Record<string, string> = { ...c.site, title, theme, ...params }
|
|
100
|
+
copyTemplate('site', dir, (path, text) => {
|
|
101
|
+
if (path.endsWith('.json')) {
|
|
102
|
+
const value = JSON.parse(text, (_key, value: unknown) => typeof value === 'string' ? value.replace(/\{\{(\w+)\}\}/g, (token, key: string) => strings[key] ?? token) : value) as Record<string, unknown>
|
|
103
|
+
if (path.endsWith(DOCUMENT_ENTRY)) value.id = randomUUID()
|
|
104
|
+
return `${JSON.stringify(value, null, 2)}\n`
|
|
105
|
+
}
|
|
106
|
+
if (path === 'presmium.workspace.yaml') return text.replace(/\{\{(\w+)\}\}/g, (token, key: string) => key in strings ? JSON.stringify(strings[key]) : token)
|
|
107
|
+
return text
|
|
108
|
+
})
|
|
109
|
+
writePackage(dir, { name, private: true, type: 'module', scripts: { serve: 'presmium serve', check: 'presmium check intro', build: 'presmium build' }, devDependencies: { '@lincyaw/presmium': `^${VERSION}` } })
|
|
73
110
|
} else {
|
|
74
|
-
copyTemplate('plugin', dir, (path, text) => text.replaceAll('{{name}}', () => name).replaceAll('{{id}}', () =>
|
|
111
|
+
copyTemplate('plugin', dir, (path, text) => text.replaceAll('{{name}}', () => name).replaceAll('{{id}}', () => pluginIdFor(name)).replaceAll('{{version}}', () => VERSION))
|
|
75
112
|
}
|
|
76
113
|
if (kind !== 'plugin') {
|
|
77
|
-
writeFileSync(join(dir, 'README.md'),
|
|
78
|
-
writeFileSync(join(dir, 'AGENTS.md'),
|
|
114
|
+
writeFileSync(join(dir, 'README.md'), c.readme(kind, title))
|
|
115
|
+
writeFileSync(join(dir, 'AGENTS.md'), c.agentsFile(kind, title))
|
|
79
116
|
}
|
|
80
117
|
agentFiles(dir, SKILLS[kind])
|
|
81
118
|
if (options.git) gitInit(dir)
|
|
@@ -83,7 +120,7 @@ export function createProject(options: ProjectOptions): void {
|
|
|
83
120
|
|
|
84
121
|
const unchanged = (_path: string, text: string): string => text
|
|
85
122
|
|
|
86
|
-
const TEXT = /(?:\.(?:md|
|
|
123
|
+
const TEXT = /(?:\.(?:md|tsx?|mts|jsx?|mjs|json|ya?ml|css|html|txt)|(?:^|[\\/])\.gitignore)$/
|
|
87
124
|
|
|
88
125
|
function copyTemplate(template: string, to: string, edit: (path: string, text: string) => string, only: (path: string) => boolean = () => true): void {
|
|
89
126
|
const from = templateDir(template)
|
|
@@ -119,5 +156,6 @@ function agentFiles(dir: string, skills: string[]): void {
|
|
|
119
156
|
function gitInit(dir: string): void {
|
|
120
157
|
const inside = spawnSync('git', ['rev-parse', '--is-inside-work-tree'], { cwd: dir, encoding: 'utf8' })
|
|
121
158
|
if (inside.error || inside.stdout.trim() === 'true') return
|
|
122
|
-
|
|
159
|
+
// The Pages workflow publishes on pushes to main, whatever the machine's default branch is.
|
|
160
|
+
spawnSync('git', ['init', '--quiet', '--initial-branch=main'], { cwd: dir, stdio: 'ignore' })
|
|
123
161
|
}
|