Add Makefile, package.json, and initial configuration for VitePress and Slidev integration
- Introduced a Makefile for streamlined commands related to building, running, and managing presentations. - Created package.json to define project metadata, dependencies, and scripts for development and testing. - Added .gitignore entries to exclude build artifacts and temporary files from version control. - Included playwright.config.mjs for end-to-end testing setup with Playwright. - Added README.md for project documentation, outlining setup instructions and development guidelines.
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Talks — Makefile unique pour build, run, gestion des présentations
|
||||
# Variables : SITE_BASE, SLUG, FROM, TO
|
||||
|
||||
NPM ?= npm
|
||||
NODE ?= node
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
.PHONY: help install sync run build clean test \
|
||||
create-presentation delete-presentation clone-presentation rename-presentation \
|
||||
dev-portal dev-slides
|
||||
|
||||
help:
|
||||
@echo "Talks — commandes principales"
|
||||
@echo ""
|
||||
@echo " make run Sync, build tous les decks, VitePress dev + watch (sources = vérité)"
|
||||
@echo " make build sync + vitepress build → dist-portal + build chaque dist-<slug>/"
|
||||
@echo " make sync Régénère le portail depuis slides/*/meta.json"
|
||||
@echo " make clean Supprime dist-portal, dist-*, .slide-wip, cache VitePress, artifacts"
|
||||
@echo " make test Tests Node + Playwright"
|
||||
@echo ""
|
||||
@echo "Présentations (slugs : a-z 0-9 -) :"
|
||||
@echo " make create-presentation SLUG=mon-talk"
|
||||
@echo " make delete-presentation SLUG=mon-talk"
|
||||
@echo " make clone-presentation FROM=src TO=dst"
|
||||
@echo " make rename-presentation FROM=old TO=new"
|
||||
@echo ""
|
||||
@echo " make install npm install"
|
||||
@echo " make dev-portal Portail seul (sync + VitePress dev, base=/ ; pas de build decks)"
|
||||
@echo " make dev-slides SLUG=… slidev interactif sur un deck"
|
||||
@echo ""
|
||||
@echo "Sous-chemin (Pages) : make sync build SITE_BASE=/mon-repo/"
|
||||
|
||||
install:
|
||||
$(NPM) install
|
||||
|
||||
sync:
|
||||
SITE_BASE=$(SITE_BASE) $(NODE) tools/sync-portal.mjs
|
||||
|
||||
run:
|
||||
$(NPM) run start
|
||||
|
||||
build: sync
|
||||
SITE_BASE=$(SITE_BASE) $(NPM) run build
|
||||
|
||||
clean:
|
||||
rm -rf dist-portal .slide-wip portal/.vitepress/cache artifacts
|
||||
@sh -c 'for d in dist-*; do [ -d "$$d" ] && rm -rf "$$d"; done' || true
|
||||
|
||||
create-presentation:
|
||||
@test -n "$(SLUG)" || (echo "usage: make create-presentation SLUG=mon-talk"; exit 1)
|
||||
$(NODE) tools/presentation-cli.mjs create $(SLUG)
|
||||
|
||||
delete-presentation:
|
||||
@test -n "$(SLUG)" || (echo "usage: make delete-presentation SLUG=mon-talk"; exit 1)
|
||||
$(NODE) tools/presentation-cli.mjs delete $(SLUG)
|
||||
|
||||
clone-presentation:
|
||||
@test -n "$(FROM)" && test -n "$(TO)" || (echo "usage: make clone-presentation FROM=a TO=b"; exit 1)
|
||||
$(NODE) tools/presentation-cli.mjs clone $(FROM) $(TO)
|
||||
|
||||
rename-presentation:
|
||||
@test -n "$(FROM)" && test -n "$(TO)" || (echo "usage: make rename-presentation FROM=a TO=b"; exit 1)
|
||||
$(NODE) tools/presentation-cli.mjs rename $(FROM) $(TO)
|
||||
|
||||
dev-portal:
|
||||
$(NPM) run dev:portal
|
||||
|
||||
SLUG ?= kubernetes-operators
|
||||
dev-slides:
|
||||
slidev slides/$(SLUG)/slides.md --open
|
||||
|
||||
test:
|
||||
$(NPM) run test
|
||||
Reference in New Issue
Block a user