├── .gitignore ├── .npmignore ├── LICENSE.md ├── README.md └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | node_modules 3 | *.log 4 | .DS_Store 5 | bundle.js 6 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | bower_components 2 | node_modules 3 | *.log 4 | .DS_Store 5 | bundle.js 6 | test 7 | test.js 8 | demo/ 9 | .npmignore 10 | LICENSE.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2015 Matt DesLauriers 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy 5 | of this software and associated documentation files (the "Software"), to deal 6 | in the Software without restriction, including without limitation the rights 7 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the Software is 9 | furnished to do so, subject to the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be included in all 12 | copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 18 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 19 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 20 | OR OTHER DEALINGS IN THE SOFTWARE. 21 | 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # text-modules 2 | 3 | A collection of modules for processing, manipulating, and rendering text and fonts in Node and the browser. Please open an issue or submit a PR for suggestions/improvements. 4 | 5 | ### contents 6 | 7 | - [Articles](#articles) 8 | - [Font Processing](#font-processing) 9 | - [Bitmap Text](#bitmap-text) 10 | - [Vector Text](#vector-text) 11 | 12 | # # Articles 13 | 14 | - [Material Design on the GPU](http://mattdesl.svbtle.com/material-design-on-the-gpu) 15 | - [Drawing Text with Signed Distance Fields in MapboxGL](https://www.mapbox.com/blog/text-signed-distance-fields/) 16 | - [Improved Alpha-Test Magnification for Vector Textures](https://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf) 17 | - [Multi-Channel Distance Field Font Rendering](https://lambdacube3d.wordpress.com/2014/11/12/playing-around-with-font-rendering/) 18 | 19 | # # Font Processing 20 | 21 | - [opentype.js](https://www.npmjs.com/package/opentype.js) 22 | - [freetype2](https://www.npmjs.com/package/freetype2) 23 | - [node-fontnik](https://github.com/mapbox/node-fontnik) 24 | 25 | # # Bitmap Text 26 | 27 | ### generation tools 28 | 29 | - [BMFont](http://www.angelcode.com/products/bmfont/) (Windows only) 30 | - [Hiero](https://github.com/libgdx/libgdx/wiki/Hiero) 31 | - [GlyphDesigner](https://71squared.com/glyphdesigner) 32 | - [Littera](http://kvazars.com/littera/) 33 | - [gdx-fontpack](https://github.com/mattdesl/gdx-fontpack) 34 | - [bmGlyph](http://www.bmglyph.com/) 35 | 36 | ### command-line tools 37 | 38 | - [image-sdf](https://www.npmjs.com/package/image-sdf) get an image's Signed Distance Field 39 | - [convert-bmfont](https://www.npmjs.com/package/convert-bmfont) convert BMFont from one format to another 40 | 41 | ### parsing 42 | 43 | Parses BMFont file formats to a [standardized JSON](https://github.com/Jam3/load-bmfont/blob/master/json-spec.md). 44 | 45 | - [parse-bmfont-xml](https://www.npmjs.com/package/parse-bmfont-xml) 46 | - [parse-bmfont-ascii](https://www.npmjs.com/package/parse-bmfont-ascii) 47 | - [parse-bmfont-binary](https://www.npmjs.com/package/parse-bmfont-binary) 48 | - [unpack-bmfonts](https://www.npmjs.com/package/unpack-bmfonts) unpacks a binary of multiple BMFonts 49 | 50 | ### writing 51 | 52 | Writes to a specific format. 53 | 54 | - [write-bmfont-binary](https://www.npmjs.com/package/write-bmfont-binary) 55 | - [pack-bmfonts](https://www.npmjs.com/package/pack-bmfonts) packs multiple BMFonts into a single binary file 56 | 57 | ### loading 58 | 59 | - [load-bmfont](https://www.npmjs.com/package/load-bmfont) loads various BMFont file formats in Node/Browser 60 | 61 | ### rendering 62 | 63 | - [word-wrapper](https://www.npmjs.com/package/word-wrapper) wraps words based on arbitrary 2D glyphs 64 | - [layout-bmfont-text](https://www.npmjs.com/package/layout-bmfont-text) word-wraps and lays out text glyphs 65 | - [three-bmfont-text](https://www.npmjs.com/package/three-bmfont-text) renders BMFont files in ThreeJS 66 | - [gl-sprite-text](https://www.npmjs.com/package/gl-sprite-text) renders BMFont files in stackgl 67 | - [font-atlas](https://github.com/hughsk/font-atlas) populate a Canvas with bitmap font glyphs 68 | 69 | ### testing 70 | 71 | - [bmfont-lato](https://www.npmjs.com/package/bmfont-lato) Lato packed as a BMFont for testing 72 | 73 | ### misc 74 | 75 | - [sdf-bitmap-glyphs](https://www.npmjs.com/package/sdf-bitmap-glyphs) 76 | - [ndarray-bin-pack](https://www.npmjs.com/package/ndarray-bin-pack) 77 | - [distance-transform](https://www.npmjs.com/package/distance-transform) 78 | 79 | # # Vector Text 80 | 81 | ### generation 82 | 83 | - [vectorize-text](https://www.npmjs.com/package/vectorize-text) render a string to a vectorized cell complex 84 | 85 | ### triangulation 86 | 87 | - [cdt2d](https://www.npmjs.com/package/cdt2d) numerically robust delaunay triangulation 88 | - [earcut](https://www.npmjs.com/package/earcut) small and fast triangulation module 89 | - [triangulate-polyline](https://www.npmjs.com/package/triangulate-polyline) simple abstraction atop `cdt2d` 90 | - [triangulate-contours](https://www.npmjs.com/package/triangulate-polyline) triangulate using Tess2 91 | 92 | ### curves 93 | 94 | - [cubic-hermite-spline](https://www.npmjs.com/package/cubic-hermite-spline) 95 | - [b-spline](https://www.npmjs.com/package/b-spline) 96 | - [bezier-curve](https://www.npmjs.com/package/bezier-curve) 97 | - [adaptive-bezier-curve](https://www.npmjs.com/package/adaptive-bezier-curve) 98 | - [adaptive-quadratic-curve](https://www.npmjs.com/package/adaptive-quadratic-curve) 99 | - [cat-rom-spline](https://www.npmjs.com/package/cat-rom-spline) 100 | - [bezier-easing](https://www.npmjs.com/package/bezier-easing) 101 | 102 | ### paths 103 | 104 | - [simplify-path](https://www.npmjs.com/package/simplify-path) - simplify using radial distance and Douglas-Peucker 105 | - [chaikin-smooth](https://www.npmjs.com/package/chaikin-smooth) - Chaikin's smoothing algorithm for a polyline 106 | - [robust-orientation](https://www.npmjs.com/package/robust-orientation) and [is-clockwise](https://www.npmjs.com/package/is-clockwise) for polygon orientation -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "text-modules", 3 | "version": "1.0.5", 4 | "description": "a list of text/font modules", 5 | "main": "index.js", 6 | "license": "MIT", 7 | "author": { 8 | "name": "Matt DesLauriers", 9 | "email": "dave.des@gmail.com", 10 | "url": "https://github.com/mattdesl" 11 | }, 12 | "dependencies": {}, 13 | "devDependencies": {}, 14 | "scripts": { 15 | "test": "node test.js" 16 | }, 17 | "keywords": [ 18 | "text", 19 | "font", 20 | "modules", 21 | "list", 22 | "ecosystem", 23 | "ecosystem:text", 24 | "language", 25 | "fonts", 26 | "glyph", 27 | "glyphs", 28 | "ttf", 29 | "webgl", 30 | "canvas", 31 | "otf", 32 | "woff", 33 | "font-face", 34 | "bitmap", 35 | "bitmaps", 36 | "bmfont", 37 | "angel", 38 | "code", 39 | "angelcode" 40 | ], 41 | "repository": { 42 | "type": "git", 43 | "url": "git://github.com/mattdesl/text-modules.git" 44 | }, 45 | "homepage": "https://github.com/mattdesl/text-modules", 46 | "bugs": { 47 | "url": "https://github.com/mattdesl/text-modules/issues" 48 | } 49 | } 50 | --------------------------------------------------------------------------------