Peter Kurfer
82a651cd5d
- replaced previous net/http based muxer and all other components with fiber - replaced polling with SSE to handle file changes - auto-update custom stylesheets - natively support mermaid diagrams - handle custom element attributes for lists properly - reload on config changes - replace JS templating with actual JS code and an API
125 lines
No EOL
3.7 KiB
YAML
125 lines
No EOL
3.7 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
DEBUG_PORT: 2345
|
|
REVEALJS_VERSION: 4.1.2
|
|
HIGHLIGHTJS_VERSION: 11.3.1
|
|
MERMAID_VERSION: 8.13.4
|
|
BINARY_NAME: goveal
|
|
OUT_DIR: ./out
|
|
GO_BUILD_ARGS: -ldflags="-w -s"
|
|
CMD_PACKAGE: github.com/baez90/goveal/cmd/goveal
|
|
|
|
env:
|
|
CGO_ENABLED: 0
|
|
GOBIN:
|
|
sh: echo "$(pwd)/bin/"
|
|
|
|
tasks:
|
|
clean:
|
|
cmds:
|
|
- rm -f debug {{ .BINARY_NAME }}
|
|
- rm -rf ./dist {{ .OUT_DIR }}
|
|
|
|
fmt:
|
|
desc: Run gofumpt against code
|
|
deps:
|
|
- gofumpt
|
|
- goimports
|
|
sources:
|
|
- "**/*.go"
|
|
cmds:
|
|
- "{{ .GOBIN }}gofumpt -l -w ./"
|
|
- "{{ .GOBIN }}goimports -w -local github.com/baez90/goveal ./."
|
|
|
|
deps:
|
|
sources:
|
|
- go.mod
|
|
- go.sum
|
|
cmds:
|
|
- go mod download
|
|
- go mod tidy
|
|
|
|
test:
|
|
sources:
|
|
- ./**/*.go
|
|
deps:
|
|
- deps
|
|
- fmt
|
|
cmds:
|
|
- mkdir -p {{ .OUT_DIR }}
|
|
- go test -coverprofile={{ .OUT_DIR }}/cov-raw.out -v ./...
|
|
- cat {{ .OUT_DIR }}/cov-raw.out | grep -v "generated" > {{ .OUT_DIR }}/cov.out
|
|
|
|
cli-cover-report:
|
|
deps:
|
|
- test
|
|
cmds:
|
|
- go tool cover -func={{ .OUT_DIR }}/cov.out
|
|
|
|
html-cover-report:
|
|
deps:
|
|
- test
|
|
cmds:
|
|
- go tool cover -html={{ .OUT_DIR }}/cov.out -o {{ .OUT_DIR }}/coverage.html
|
|
|
|
build:
|
|
deps:
|
|
- deps
|
|
sources:
|
|
- ./**/*.go
|
|
cmds:
|
|
- go build {{ .GO_BUILD_ARGS }} -o {{ .BINARY_NAME }} {{ .CMD_PACKAGE }}
|
|
|
|
run:
|
|
deps:
|
|
- deps
|
|
dir: ./examples
|
|
cmds:
|
|
- go run {{ .CMD_PACKAGE }} serve ./slides.md --config ./goveal.yaml
|
|
|
|
debug:
|
|
cmds:
|
|
- dlv debug --headless --listen=127.10.10.2:{{ .DEBUG_PORT }} --api-version=2 {{ .CMD_PACKAGE }} --build-flags="-tags debug" -- serve --config ./examples/goveal.yaml ./examples/slides.md
|
|
|
|
snapshot-release:
|
|
cmds:
|
|
- goreleaser --snapshot --skip-publish --rm-dist
|
|
|
|
download-reveal:
|
|
sources:
|
|
- Taskfile.yml
|
|
cmds:
|
|
- rm -rf ./assets/reveal
|
|
- mkdir -p ./assets/reveal ./assets/mermaid
|
|
- curl -sL https://github.com/hakimel/reveal.js/archive/{{ .REVEALJS_VERSION }}.tar.gz | tar -xvz --strip-components=1 -C ./assets/reveal --wildcards "*.js" --wildcards "*.css" --wildcards "*.html" --wildcards "*.woff" --wildcards "*.ttf" --exclude "test" --exclude "gulpfile.js" --exclude "gruntfile.js" --exclude "demo.html" --exclude "index.html" --exclude "examples/*.html"
|
|
- mkdir -p ./assets/reveal/plugin/menu ./assets/reveal/plugin/mouse-pointer
|
|
- git clone https://github.com/denehyg/reveal.js-menu.git ./assets/reveal/plugin/menu
|
|
- curl -L -o ./assets/reveal/plugin/mouse-pointer/mouse-pointer.js https://raw.githubusercontent.com/caiofcm/plugin-revealjs-mouse-pointer/master/mouse-pointer.js
|
|
- rm -f ./assets/reveal/plugin/menu/{bower.json,CONTRIBUTING.md,LICENSE,package.json,README.md,.gitignore,gulpfile.js,package-lock.json}
|
|
- curl -L https://github.com/highlightjs/highlight.js/archive/{{ .HIGHLIGHTJS_VERSION }}.tar.gz | tar -xvz --strip-components=3 -C ./assets/reveal/plugin/highlight --wildcards "*.css" highlight.js-{{ .HIGHLIGHTJS_VERSION }}/src/styles/
|
|
- curl -L https://github.com/mermaid-js/mermaid/archive/refs/tags/{{ .MERMAID_VERSION }}.tar.gz | tar -xvz -C ./assets/mermaid/ mermaid-{{ .MERMAID_VERSION }}/dist --strip-components=2
|
|
|
|
go-get-tool:
|
|
vars:
|
|
PACKAGE: '{{ default "" .PACKAGE }}'
|
|
cmds:
|
|
- go install {{ .PACKAGE }}
|
|
|
|
gofumpt:
|
|
desc: Download gofumpt locally if necessary
|
|
cmds:
|
|
- task: go-get-tool
|
|
vars:
|
|
PACKAGE: mvdan.cc/gofumpt@v0.2.0
|
|
status:
|
|
- test -f {{ .GOBIN }}gofumpt
|
|
|
|
goimports:
|
|
desc: Download goimports locally if necessary
|
|
cmds:
|
|
- task: go-get-tool
|
|
vars:
|
|
PACKAGE: golang.org/x/tools/cmd/goimports@v0.1.7
|
|
status:
|
|
- test -f {{ .GOBIN }}goimports |