mirror of
https://github.com/Smaug123/KaTeX
synced 2025-10-05 19:28:39 +00:00
This will make reviewing modifications easier, since the affected glyphs will be more readily visible in the diff. The formatting tool was applied to the existing data, instead of regenerating the data, so the semantic content should be unmodified.
93 lines
2.6 KiB
Makefile
93 lines
2.6 KiB
Makefile
.PHONY: build dist lint setup copy serve clean metrics test zip contrib
|
|
build: setup lint build/katex.min.js build/katex.min.css contrib zip compress
|
|
|
|
dist: build
|
|
rm -rf dist/
|
|
cp -R build/katex/ dist/
|
|
|
|
# Export these variables for use in contrib Makefiles
|
|
export BUILDDIR = $(realpath build)
|
|
export BROWSERIFY = $(realpath ./node_modules/.bin/browserify)
|
|
export UGLIFYJS = $(realpath ./node_modules/.bin/uglifyjs) \
|
|
--mangle \
|
|
--beautify \
|
|
ascii_only=true,beautify=false
|
|
|
|
setup:
|
|
npm install
|
|
|
|
lint: katex.js server.js cli.js $(wildcard src/*.js) $(wildcard test/*.js) $(wildcard contrib/*/*.js) $(wildcard dockers/*/*.js)
|
|
./node_modules/.bin/jshint $^
|
|
|
|
build/katex.js: katex.js $(wildcard src/*.js)
|
|
$(BROWSERIFY) $< --standalone katex > $@
|
|
|
|
build/katex.min.js: build/katex.js
|
|
$(UGLIFYJS) < $< > $@
|
|
|
|
build/katex.less.css: static/katex.less $(wildcard static/*.less)
|
|
./node_modules/.bin/lessc $< $@
|
|
|
|
build/katex.min.css: build/katex.less.css
|
|
./node_modules/.bin/cleancss -o $@ $<
|
|
|
|
.PHONY: build/fonts
|
|
build/fonts:
|
|
rm -rf $@
|
|
mkdir $@
|
|
for font in $(shell grep "font" static/katex.less | grep -o "KaTeX_\w\+" | cut -d" " -f 2 | sort | uniq); do \
|
|
cp static/fonts/$$font* $@; \
|
|
done
|
|
|
|
contrib: build/contrib
|
|
|
|
.PHONY: build/contrib
|
|
build/contrib:
|
|
mkdir -p build/contrib
|
|
@# Since everything in build/contrib is put in the built files, make sure
|
|
@# there's nothing in there we don't want.
|
|
rm -rf build/contrib/*
|
|
$(MAKE) -C contrib/auto-render
|
|
|
|
.PHONY: build/katex
|
|
build/katex: build/katex.min.js build/katex.min.css build/fonts README.md build/contrib
|
|
mkdir -p build/katex
|
|
rm -rf build/katex/*
|
|
cp -r $^ build/katex
|
|
|
|
build/katex.tar.gz: build/katex
|
|
cd build && tar czf katex.tar.gz katex/
|
|
|
|
build/katex.zip: build/katex
|
|
rm -f $@
|
|
cd build && zip -rq katex.zip katex/
|
|
|
|
zip: build/katex.tar.gz build/katex.zip
|
|
|
|
compress: build/katex.min.js build/katex.min.css
|
|
@$(eval JSSIZE!=gzip -c build/katex.min.js | wc -c)
|
|
@$(eval CSSSIZE!=gzip -c build/katex.min.css | wc -c)
|
|
@$(eval TOTAL!=echo ${JSSIZE}+${CSSSIZE} | bc)
|
|
@printf "Minified, gzipped js: %6d\n" "${JSSIZE}"
|
|
@printf "Minified, gzipped css: %6d\n" "${CSSSIZE}"
|
|
@printf "Total: %6d\n" "${TOTAL}"
|
|
|
|
serve:
|
|
node server.js
|
|
|
|
test:
|
|
./node_modules/.bin/jasmine-node test/katex-spec.js
|
|
./node_modules/.bin/jasmine-node contrib/auto-render/auto-render-spec.js
|
|
|
|
PERL=perl
|
|
PYTHON=$(shell python2 --version >/dev/null 2>&1 && echo python2 || echo python)
|
|
|
|
metrics:
|
|
cd metrics && $(PERL) ./mapping.pl | $(PYTHON) ./extract_tfms.py | $(PYTHON) ./extract_ttfs.py | $(PYTHON) ./format_json.py > ../src/fontMetricsData.json
|
|
|
|
clean:
|
|
rm -rf build/*
|
|
|
|
screenshots:
|
|
docker run --volume=$(shell pwd):/KaTeX ss
|