www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 9dc767041d35e516931655284e94d958ef7a49e1
parent f63af87f17fedfd0c4cab753a3d4f7a0a5290bc0
Author: Emily Eisenberg <emily@khanacademy.org>
Date:   Sun, 14 Sep 2014 19:31:38 -0700

Improve build process

Summary:
Improve the build process by combining the CSS files, automatically
selecting font files to include, and building .tar.gz and .zip files.

Test Plan:
 - Make sure tests work
 - Make sure huxley screenshots didn't change
 - Make sure zip and tar.gz files contain only files we want to distribute

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D13159

Diffstat:
MMakefile | 30+++++++++++++++++++++++++++---
Astatic/fonts.css | 239+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dstatic/fonts/fonts.css | 239-------------------------------------------------------------------------------
Mstatic/index.html | 2+-
Mstatic/katex.less | 9+--------
Mtest/huxley/test.html | 2+-
6 files changed, 269 insertions(+), 252 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,5 +1,5 @@ -.PHONY: build setup copy serve clean metrics test -build: setup build/katex.min.js build/katex.min.css compress +.PHONY: build setup copy serve clean metrics test zip +build: setup build/katex.min.js build/katex.min.css zip compress setup: npm install @@ -13,9 +13,33 @@ build/katex.min.js: build/katex.js build/katex.less.css: static/katex.less ./node_modules/.bin/lessc $< > $@ -build/katex.min.css: build/katex.less.css +build/katex.css: build/katex.less.css static/fonts.css + cat $^ > $@ + +build/katex.min.css: build/katex.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 + +.PHONY: build/katex +build/katex: build/katex.min.js build/katex.min.css build/fonts + mkdir -p 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 + 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) diff --git a/static/fonts.css b/static/fonts.css @@ -0,0 +1,239 @@ +@font-face { + font-family: 'KaTeX_AMS'; + src: url('fonts/KaTeX_AMS-Regular.eot'); + src: url('fonts/KaTeX_AMS-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_AMS-Regular.woff') format('woff'), + url('fonts/KaTeX_AMS-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Caligraphic'; + src: url('fonts/KaTeX_Caligraphic-Bold.eot'); + src: url('fonts/KaTeX_Caligraphic-Bold.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Caligraphic-Bold.woff') format('woff'), + url('fonts/KaTeX_Caligraphic-Bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Caligraphic'; + src: url('fonts/KaTeX_Caligraphic-Regular.eot'); + src: url('fonts/KaTeX_Caligraphic-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Caligraphic-Regular.woff') format('woff'), + url('fonts/KaTeX_Caligraphic-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Fraktur'; + src: url('fonts/KaTeX_Fraktur-Bold.eot'); + src: url('fonts/KaTeX_Fraktur-Bold.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Fraktur-Bold.woff') format('woff'), + url('fonts/KaTeX_Fraktur-Bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Fraktur'; + src: url('fonts/KaTeX_Fraktur-Regular.eot'); + src: url('fonts/KaTeX_Fraktur-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Fraktur-Regular.woff') format('woff'), + url('fonts/KaTeX_Fraktur-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Greek'; + src: url('fonts/KaTeX_Greek-Bold.eot'); + src: url('fonts/KaTeX_Greek-Bold.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Greek-Bold.woff') format('woff'), + url('fonts/KaTeX_Greek-Bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Greek'; + src: url('fonts/KaTeX_Greek-BoldItalic.eot'); + src: url('fonts/KaTeX_Greek-BoldItalic.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Greek-BoldItalic.woff') format('woff'), + url('fonts/KaTeX_Greek-BoldItalic.ttf') format('truetype'); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: 'KaTeX_Greek'; + src: url('fonts/KaTeX_Greek-Italic.eot'); + src: url('fonts/KaTeX_Greek-Italic.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Greek-Italic.woff') format('woff'), + url('fonts/KaTeX_Greek-Italic.ttf') format('truetype'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'KaTeX_Greek'; + src: url('fonts/KaTeX_Greek-Regular.eot'); + src: url('fonts/KaTeX_Greek-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Greek-Regular.woff') format('woff'), + url('fonts/KaTeX_Greek-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Main'; + src: url('fonts/KaTeX_Main-Bold.eot'); + src: url('fonts/KaTeX_Main-Bold.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Main-Bold.woff') format('woff'), + url('fonts/KaTeX_Main-Bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Main'; + src: url('fonts/KaTeX_Main-Italic.eot'); + src: url('fonts/KaTeX_Main-Italic.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Main-Italic.woff') format('woff'), + url('fonts/KaTeX_Main-Italic.ttf') format('truetype'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'KaTeX_Main'; + src: url('fonts/KaTeX_Main-Regular.eot'); + src: url('fonts/KaTeX_Main-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Main-Regular.woff') format('woff'), + url('fonts/KaTeX_Main-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Math'; + src: url('fonts/KaTeX_Math-BoldItalic.eot'); + src: url('fonts/KaTeX_Math-BoldItalic.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Math-BoldItalic.woff') format('woff'), + url('fonts/KaTeX_Math-BoldItalic.ttf') format('truetype'); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: 'KaTeX_Math'; + src: url('fonts/KaTeX_Math-Italic.eot'); + src: url('fonts/KaTeX_Math-Italic.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Math-Italic.woff') format('woff'), + url('fonts/KaTeX_Math-Italic.ttf') format('truetype'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'KaTeX_Math'; + src: url('fonts/KaTeX_Math-Regular.eot'); + src: url('fonts/KaTeX_Math-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Math-Regular.woff') format('woff'), + url('fonts/KaTeX_Math-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_SansSerif'; + src: url('fonts/KaTeX_SansSerif-Bold.eot'); + src: url('fonts/KaTeX_SansSerif-Bold.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_SansSerif-Bold.woff') format('woff'), + url('fonts/KaTeX_SansSerif-Bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_SansSerif'; + src: url('fonts/KaTeX_SansSerif-Italic.eot'); + src: url('fonts/KaTeX_SansSerif-Italic.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_SansSerif-Italic.woff') format('woff'), + url('fonts/KaTeX_SansSerif-Italic.ttf') format('truetype'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'KaTeX_SansSerif'; + src: url('fonts/KaTeX_SansSerif-Regular.eot'); + src: url('fonts/KaTeX_SansSerif-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_SansSerif-Regular.woff') format('woff'), + url('fonts/KaTeX_SansSerif-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Script'; + src: url('fonts/KaTeX_Script-Regular.eot'); + src: url('fonts/KaTeX_Script-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Script-Regular.woff') format('woff'), + url('fonts/KaTeX_Script-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Size1'; + src: url('fonts/KaTeX_Size1-Regular.eot'); + src: url('fonts/KaTeX_Size1-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Size1-Regular.woff') format('woff'), + url('fonts/KaTeX_Size1-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Size2'; + src: url('fonts/KaTeX_Size2-Regular.eot'); + src: url('fonts/KaTeX_Size2-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Size2-Regular.woff') format('woff'), + url('fonts/KaTeX_Size2-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Size3'; + src: url('fonts/KaTeX_Size3-Regular.eot'); + src: url('fonts/KaTeX_Size3-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Size3-Regular.woff') format('woff'), + url('fonts/KaTeX_Size3-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Size4'; + src: url('fonts/KaTeX_Size4-Regular.eot'); + src: url('fonts/KaTeX_Size4-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Size4-Regular.woff') format('woff'), + url('fonts/KaTeX_Size4-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'KaTeX_Typewriter'; + src: url('fonts/KaTeX_Typewriter-Regular.eot'); + src: url('fonts/KaTeX_Typewriter-Regular.eot?#iefix') format('embedded-opentype'), + url('fonts/KaTeX_Typewriter-Regular.woff') format('woff'), + url('fonts/KaTeX_Typewriter-Regular.ttf') format('truetype'); + font-weight: normal; + font-style: normal; +} diff --git a/static/fonts/fonts.css b/static/fonts/fonts.css @@ -1,239 +0,0 @@ -@font-face { - font-family: 'KaTeX_AMS'; - src: url('KaTeX_AMS-Regular.eot'); - src: url('KaTeX_AMS-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_AMS-Regular.woff') format('woff'), - url('KaTeX_AMS-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Caligraphic'; - src: url('KaTeX_Caligraphic-Bold.eot'); - src: url('KaTeX_Caligraphic-Bold.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Caligraphic-Bold.woff') format('woff'), - url('KaTeX_Caligraphic-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Caligraphic'; - src: url('KaTeX_Caligraphic-Regular.eot'); - src: url('KaTeX_Caligraphic-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Caligraphic-Regular.woff') format('woff'), - url('KaTeX_Caligraphic-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Fraktur'; - src: url('KaTeX_Fraktur-Bold.eot'); - src: url('KaTeX_Fraktur-Bold.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Fraktur-Bold.woff') format('woff'), - url('KaTeX_Fraktur-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Fraktur'; - src: url('KaTeX_Fraktur-Regular.eot'); - src: url('KaTeX_Fraktur-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Fraktur-Regular.woff') format('woff'), - url('KaTeX_Fraktur-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Greek'; - src: url('KaTeX_Greek-Bold.eot'); - src: url('KaTeX_Greek-Bold.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Greek-Bold.woff') format('woff'), - url('KaTeX_Greek-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Greek'; - src: url('KaTeX_Greek-BoldItalic.eot'); - src: url('KaTeX_Greek-BoldItalic.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Greek-BoldItalic.woff') format('woff'), - url('KaTeX_Greek-BoldItalic.ttf') format('truetype'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: 'KaTeX_Greek'; - src: url('KaTeX_Greek-Italic.eot'); - src: url('KaTeX_Greek-Italic.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Greek-Italic.woff') format('woff'), - url('KaTeX_Greek-Italic.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'KaTeX_Greek'; - src: url('KaTeX_Greek-Regular.eot'); - src: url('KaTeX_Greek-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Greek-Regular.woff') format('woff'), - url('KaTeX_Greek-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Main'; - src: url('KaTeX_Main-Bold.eot'); - src: url('KaTeX_Main-Bold.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Main-Bold.woff') format('woff'), - url('KaTeX_Main-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Main'; - src: url('KaTeX_Main-Italic.eot'); - src: url('KaTeX_Main-Italic.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Main-Italic.woff') format('woff'), - url('KaTeX_Main-Italic.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'KaTeX_Main'; - src: url('KaTeX_Main-Regular.eot'); - src: url('KaTeX_Main-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Main-Regular.woff') format('woff'), - url('KaTeX_Main-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Math'; - src: url('KaTeX_Math-BoldItalic.eot'); - src: url('KaTeX_Math-BoldItalic.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Math-BoldItalic.woff') format('woff'), - url('KaTeX_Math-BoldItalic.ttf') format('truetype'); - font-weight: bold; - font-style: italic; -} - -@font-face { - font-family: 'KaTeX_Math'; - src: url('KaTeX_Math-Italic.eot'); - src: url('KaTeX_Math-Italic.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Math-Italic.woff') format('woff'), - url('KaTeX_Math-Italic.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'KaTeX_Math'; - src: url('KaTeX_Math-Regular.eot'); - src: url('KaTeX_Math-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Math-Regular.woff') format('woff'), - url('KaTeX_Math-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_SansSerif'; - src: url('KaTeX_SansSerif-Bold.eot'); - src: url('KaTeX_SansSerif-Bold.eot?#iefix') format('embedded-opentype'), - url('KaTeX_SansSerif-Bold.woff') format('woff'), - url('KaTeX_SansSerif-Bold.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_SansSerif'; - src: url('KaTeX_SansSerif-Italic.eot'); - src: url('KaTeX_SansSerif-Italic.eot?#iefix') format('embedded-opentype'), - url('KaTeX_SansSerif-Italic.woff') format('woff'), - url('KaTeX_SansSerif-Italic.ttf') format('truetype'); - font-weight: normal; - font-style: italic; -} - -@font-face { - font-family: 'KaTeX_SansSerif'; - src: url('KaTeX_SansSerif-Regular.eot'); - src: url('KaTeX_SansSerif-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_SansSerif-Regular.woff') format('woff'), - url('KaTeX_SansSerif-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Script'; - src: url('KaTeX_Script-Regular.eot'); - src: url('KaTeX_Script-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Script-Regular.woff') format('woff'), - url('KaTeX_Script-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Size1'; - src: url('KaTeX_Size1-Regular.eot'); - src: url('KaTeX_Size1-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Size1-Regular.woff') format('woff'), - url('KaTeX_Size1-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Size2'; - src: url('KaTeX_Size2-Regular.eot'); - src: url('KaTeX_Size2-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Size2-Regular.woff') format('woff'), - url('KaTeX_Size2-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Size3'; - src: url('KaTeX_Size3-Regular.eot'); - src: url('KaTeX_Size3-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Size3-Regular.woff') format('woff'), - url('KaTeX_Size3-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Size4'; - src: url('KaTeX_Size4-Regular.eot'); - src: url('KaTeX_Size4-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Size4-Regular.woff') format('woff'), - url('KaTeX_Size4-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} - -@font-face { - font-family: 'KaTeX_Typewriter'; - src: url('KaTeX_Typewriter-Regular.eot'); - src: url('KaTeX_Typewriter-Regular.eot?#iefix') format('embedded-opentype'), - url('KaTeX_Typewriter-Regular.woff') format('woff'), - url('KaTeX_Typewriter-Regular.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} diff --git a/static/index.html b/static/index.html @@ -3,7 +3,7 @@ <head> <title>KaTeX Test</title> <script src="katex.js" type="text/javascript"></script> - <link href="fonts/fonts.css" rel="stylesheet" type="text/css"> + <link href="fonts.css" rel="stylesheet" type="text/css"> <link href="katex.css" rel="stylesheet" type="text/css"> <link href="main.css" rel="stylesheet" type="text/css"> </head> diff --git a/static/katex.less b/static/katex.less @@ -1,12 +1,5 @@ -/* -things to do: -\sum, \int, \lim -\sqrt -big parens -*/ - .katex { - font: normal 1.21em katex_main; + font: normal 1.21em KaTeX_Main; line-height: 1.2; white-space: nowrap; diff --git a/test/huxley/test.html b/test/huxley/test.html @@ -3,7 +3,7 @@ <head> <title>Huxley test</title> <script src="/katex.js" type="text/javascript"></script> - <link href="/fonts/fonts.css" rel="stylesheet" type="text/css"> + <link href="/fonts.css" rel="stylesheet" type="text/css"> <link href="/katex.css" rel="stylesheet" type="text/css"> <style type="text/css"> #math, #pre, #post {