gkh-fontcustom 1.3.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +21 -0
- data/.travis.yml +20 -0
- data/CHANGELOG.md +137 -0
- data/CONTRIBUTING.md +50 -0
- data/Gemfile +4 -0
- data/LICENSES.txt +60 -0
- data/README.md +112 -0
- data/Rakefile +8 -0
- data/bin/fontcustom +5 -0
- data/fontcustom.gemspec +28 -0
- data/gemfiles/Gemfile.listen_1 +6 -0
- data/lib/fontcustom.rb +43 -0
- data/lib/fontcustom/base.rb +54 -0
- data/lib/fontcustom/cli.rb +110 -0
- data/lib/fontcustom/error.rb +4 -0
- data/lib/fontcustom/generator/font.rb +109 -0
- data/lib/fontcustom/generator/template.rb +222 -0
- data/lib/fontcustom/manifest.rb +75 -0
- data/lib/fontcustom/options.rb +192 -0
- data/lib/fontcustom/scripts/eotlitetool.py +466 -0
- data/lib/fontcustom/scripts/generate.py +128 -0
- data/lib/fontcustom/scripts/sfnt2woff +0 -0
- data/lib/fontcustom/templates/_fontcustom-rails.scss +14 -0
- data/lib/fontcustom/templates/_fontcustom.scss +16 -0
- data/lib/fontcustom/templates/fontcustom-preview.html +174 -0
- data/lib/fontcustom/templates/fontcustom.css +14 -0
- data/lib/fontcustom/templates/fontcustom.yml +96 -0
- data/lib/fontcustom/utility.rb +117 -0
- data/lib/fontcustom/version.rb +3 -0
- data/lib/fontcustom/watcher.rb +90 -0
- data/spec/fixtures/example/_example-rails.scss +50 -0
- data/spec/fixtures/example/example-preview.html +253 -0
- data/spec/fixtures/example/example.css +50 -0
- data/spec/fixtures/example/example.eot +0 -0
- data/spec/fixtures/example/example.svg +75 -0
- data/spec/fixtures/example/example.ttf +0 -0
- data/spec/fixtures/example/example.woff +0 -0
- data/spec/fixtures/generators/.fontcustom-manifest-corrupted.json +25 -0
- data/spec/fixtures/generators/.fontcustom-manifest-empty.json +0 -0
- data/spec/fixtures/generators/.fontcustom-manifest.json +52 -0
- data/spec/fixtures/generators/fontcustom.yml +1 -0
- data/spec/fixtures/generators/mixed-output/another-font.ttf +0 -0
- data/spec/fixtures/generators/mixed-output/dont-delete-me.bro +0 -0
- data/spec/fixtures/generators/mixed-output/fontcustom.css +108 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_82a59e769bc60192484f2620570bbb59.eot +0 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_82a59e769bc60192484f2620570bbb59.svg +56 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_82a59e769bc60192484f2620570bbb59.ttf +0 -0
- data/spec/fixtures/generators/mixed-output/fontcustom_82a59e769bc60192484f2620570bbb59.woff +0 -0
- data/spec/fixtures/options/any-file-name.yml +1 -0
- data/spec/fixtures/options/config-is-in-dir/fontcustom.yml +1 -0
- data/spec/fixtures/options/fontcustom-empty.yml +1 -0
- data/spec/fixtures/options/fontcustom-malformed.yml +1 -0
- data/spec/fixtures/options/fontcustom.yml +1 -0
- data/spec/fixtures/options/no-config-here/.gitkeep +0 -0
- data/spec/fixtures/options/rails-like/config/fontcustom.yml +1 -0
- data/spec/fixtures/shared/not-a-dir +0 -0
- data/spec/fixtures/shared/templates/custom.css +4 -0
- data/spec/fixtures/shared/templates/regular.css +4 -0
- data/spec/fixtures/shared/vectors-empty/no_vectors_here.txt +0 -0
- data/spec/fixtures/shared/vectors/C.svg +14 -0
- data/spec/fixtures/shared/vectors/D.svg +15 -0
- data/spec/fixtures/shared/vectors/a_R3ally-eXotic f1Le Name.svg +6 -0
- data/spec/fontcustom/base_spec.rb +45 -0
- data/spec/fontcustom/cli_spec.rb +30 -0
- data/spec/fontcustom/generator/font_spec.rb +72 -0
- data/spec/fontcustom/generator/template_spec.rb +99 -0
- data/spec/fontcustom/manifest_spec.rb +17 -0
- data/spec/fontcustom/options_spec.rb +315 -0
- data/spec/fontcustom/utility_spec.rb +82 -0
- data/spec/fontcustom/watcher_spec.rb +121 -0
- data/spec/spec_helper.rb +103 -0
- metadata +252 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 61c9dd42ef13b63af350912729b5fb688fde5ffe
|
4
|
+
data.tar.gz: 88c91a34900c20d6b407c753bffcd35137de314d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 994a15d32c93f96cd34aaabda3004870d153653ac0218bf439d56556e5235097873adbdd5f97f093fd61d6d6899f2c9ff69c2ad8f348c8cd64a7e1588b6b6451
|
7
|
+
data.tar.gz: dd68754f4ae309049b6f118d6382423b30d4f119d9bb3012cad35d0ad167d1388677b7d03d1e1734d7f228062d3b4a26fda47b98482c28b2897712295682f7b3
|
data/.gitignore
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
spec/fixtures/sandbox/*
|
19
|
+
spec/fixtures/.fontcustom-manifest.json
|
20
|
+
.DS_Store
|
21
|
+
.ruby-version
|
data/.travis.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
language: ruby
|
2
|
+
before_install:
|
3
|
+
- sudo apt-get update -qq
|
4
|
+
- sudo apt-get install -qq fontforge
|
5
|
+
- wget http://people.mozilla.com/~jkew/woff/woff-code-latest.zip
|
6
|
+
- unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && sudo mv sfnt2woff /usr/local/bin/
|
7
|
+
- bundle
|
8
|
+
rvm:
|
9
|
+
- 2.1.1
|
10
|
+
- 2.0.0
|
11
|
+
- 1.9.3
|
12
|
+
- 1.9.2
|
13
|
+
gemfile:
|
14
|
+
- Gemfile
|
15
|
+
- gemfiles/Gemfile.listen_1
|
16
|
+
matrix:
|
17
|
+
exclude:
|
18
|
+
- gemfile: Gemfile
|
19
|
+
rvm: 1.9.2
|
20
|
+
script: bundle exec rake
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
## 1.3.4 (10/11/2014)
|
2
|
+
|
3
|
+
* Updates rspec tests to be compatible with rspec v3.1.6
|
4
|
+
* Add additional metrics to make it easier to have different size icon fonts ([#175](https://github.com/FontCustom/fontcustom/pull/175))
|
5
|
+
* Add woff data uri to generated CSS + template helper ([#182](https://github.com/FontCustom/fontcustom/pull/182))
|
6
|
+
* Support listen v1 and v2 ([#191](https://github.com/FontCustom/fontcustom/pull/191))
|
7
|
+
* Add multiple classes to config file ([#174](https://github.com/FontCustom/fontcustom/issues/174))
|
8
|
+
* Don't strip "%" symbol (and other potentially valid characters) from CSS selector ([#173](https://github.com/FontCustom/fontcustom/issues/173))
|
9
|
+
* Fix bug where custom template path appears in output filenames ([#198](https://github.com/FontCustom/fontcustom/pull/198), [#172](https://github.com/FontCustom/fontcustom/issues/172))
|
10
|
+
* SCSS content variables like Font Awesome ([#151](https://github.com/FontCustom/fontcustom/issues/151))
|
11
|
+
* Running compile on a folder containing directories shouldn't throw an error
|
12
|
+
|
13
|
+
## 1.3.3 (2/20/2014)
|
14
|
+
|
15
|
+
* Removes ttfautohint ([#160c](https://github.com/FontCustom/fontcustom/pull/160#issuecomment-34593191))
|
16
|
+
* Fixes rails-scss template helper ([#185](https://github.com/FontCustom/fontcustom/issues/185))
|
17
|
+
* Adds `text-rendering: optimizeLegibility` ([#181](https://github.com/FontCustom/fontcustom/pull/181))
|
18
|
+
|
19
|
+
## 1.3.2 (1/31/2014)
|
20
|
+
|
21
|
+
* Fixes `preprocessor_path` for Rails asset pipeline / Sprockets ([#162](https://github.com/FontCustom/fontcustom/pull/162), [#167](https://github.com/FontCustom/fontcustom/pull/167))
|
22
|
+
* Fixes bug where `preprocessor_path` was ignored by the scss template ([#171](https://github.com/FontCustom/fontcustom/issues/171))
|
23
|
+
* Fixes bug where relative output paths containing ".." would fail to compile
|
24
|
+
|
25
|
+
## 1.3.1 (12/28/2013)
|
26
|
+
|
27
|
+
* Fixes syntax error in generate.py that affects Python 2.6
|
28
|
+
|
29
|
+
## 1.3.0 (12/24/2013)
|
30
|
+
|
31
|
+
**If upgrading from 1.2.0, delete your old `.fontcustom-manifest.json` and output directories first.**
|
32
|
+
|
33
|
+
The big news: fixed glyph code points. Automatically assigned for now, but changing them by hand is just a matter of modifying the generated `.fontcustom-manifest.json`. A few breaking changes (`css_prefix`, custom template syntax, possibly others).
|
34
|
+
|
35
|
+
* Adds fixed glyph code points ([#56](https://github.com/FontCustom/fontcustom/issues/56))
|
36
|
+
* Drops bootstrap templates (maintenance overhead, unsure if anyone was using them)
|
37
|
+
* Stores relative paths for collaborative editing ([#149](https://github.com/FontCustom/fontcustom/pull/149))
|
38
|
+
* Changes `css_prefix` to `css_selector` to allow greater flexibility ([#126](https://github.com/FontCustom/fontcustom/pull/126))
|
39
|
+
* Skips compilation if inputs have not changed (and `force` option to bypass checks)
|
40
|
+
* Adds CSS template helpers for convenience and DRYness
|
41
|
+
* Improves rendering on Chrome Windows ([#143](https://github.com/FontCustom/fontcustom/pull/143))
|
42
|
+
* Improves Windows hinting ([#160](https://github.com/FontCustom/fontcustom/pull/160))
|
43
|
+
* Fixes Python 2.6 optsparse syntax ([#159](https://github.com/FontCustom/fontcustom/issues/159))
|
44
|
+
* Fixes bug where changes in custom templates were not detected by `watch`
|
45
|
+
* Improves error and debuggging messages
|
46
|
+
|
47
|
+
## 1.2.0 (11/2/2013)
|
48
|
+
|
49
|
+
* Preparation for fixed glyph code points.
|
50
|
+
* Tweaks command line options (more semantic aliases)
|
51
|
+
* Renames :data_cache to :manifest
|
52
|
+
* Sets the stage for a more streamlined, predictable workflow
|
53
|
+
* Drops EPS support (was buggy and unused)
|
54
|
+
* Turns glyph width adjustment into an option (off by default) ([#137](https://github.com/FontCustom/fontcustom/pull/137))
|
55
|
+
* Relaxes all dependency version requirements ([#127](https://github.com/FontCustom/fontcustom/issues/127))
|
56
|
+
|
57
|
+
## 1.1.1 (10/16/2013)
|
58
|
+
|
59
|
+
* Preview characters are turned off by default in the preview template.
|
60
|
+
* Relaxes JSON version requirement ([#125](https://github.com/FontCustom/fontcustom/pull/125))
|
61
|
+
* Fixes ttf hinting ([#124](https://github.com/FontCustom/fontcustom/pull/124))
|
62
|
+
* Cleans up README, fontcustom.yml template, .gitignore ([#123](https://github.com/FontCustom/fontcustom/pull/123), [#128](https://github.com/FontCustom/fontcustom/pull/128))
|
63
|
+
|
64
|
+
## 1.1.0 (9/22/2013)
|
65
|
+
|
66
|
+
More customizable interface for vastly improved workflow.
|
67
|
+
|
68
|
+
* Specify where input vectors/templates are stored ([#89](https://github.com/FontCustom/fontcustom/issues/89))
|
69
|
+
* Specify where output fonts/templates are saved ([#89](https://github.com/FontCustom/fontcustom/issues/89))
|
70
|
+
* Stock templates are saved as `#{font_name}.css` instead of `_fontcustom.css`
|
71
|
+
* More robust path handling (relative paths, customizable `project_root`)
|
72
|
+
* User-friendly variables for usage in custom templates
|
73
|
+
* Rails-friendly template
|
74
|
+
* Enable HTML data-attributes usage ([#118](https://github.com/FontCustom/fontcustom/pull/118))
|
75
|
+
* Helper characters in preview ([#107](https://github.com/FontCustom/fontcustom/pull/107))
|
76
|
+
* More robust execution of fontforge command ([#114](https://github.com/FontCustom/fontcustom/pull/114))
|
77
|
+
* Allow captial letters in font names ([#92](https://github.com/FontCustom/fontcustom/issues/92))
|
78
|
+
* More helpful, colorful messages
|
79
|
+
* More intuitive flags (`--verbose=false` => `--quiet`, `--file-hash=false` => `--no-hash`)
|
80
|
+
* More intuitive version (`fontcustom version` => `fontcustom --version`) ([#115](https://github.com/FontCustom/fontcustom/issues/115))
|
81
|
+
|
82
|
+
## 1.0.1 (7/21/2013)
|
83
|
+
|
84
|
+
Various bugfixes.
|
85
|
+
|
86
|
+
* Set glyph widths automatically ([#95](https://github.com/FontCustom/fontcustom/issues/95))
|
87
|
+
* Fixes Ruby 1.8.7 syntax error ([#94](https://github.com/FontCustom/fontcustom/issues/94))
|
88
|
+
* More robust fontforge error handling ([#99](https://github.com/FontCustom/fontcustom/issues/99))
|
89
|
+
|
90
|
+
## 1.0.0 (4/18/2013)
|
91
|
+
|
92
|
+
Big changes, more flexibility, better workflow. Be sure to check out the [docs](http://fontcustom.com) to see how it all ties together.
|
93
|
+
|
94
|
+
* Improved preview html to show glyphs at various sizes
|
95
|
+
* Added support for fontcustom.yml config file ([#49](https://github.com/FontCustom/fontcustom/issues/49))
|
96
|
+
* Added support for .fontcustom-data file ([#55](https://github.com/FontCustom/fontcustom/pull/55))
|
97
|
+
* Added support for custom templates ([#39](https://github.com/FontCustom/fontcustom/pull/39), [#48](https://github.com/FontCustom/fontcustom/issues/48))
|
98
|
+
* Added support for custom CSS selector namespaces ([#32](https://github.com/FontCustom/fontcustom/issues/32))
|
99
|
+
* Added support for --verbose=false ([#54](https://github.com/FontCustom/fontcustom/pull/54))
|
100
|
+
* Improved ascent/decent heights ([#33](https://github.com/FontCustom/fontcustom/issues/33))
|
101
|
+
* Added clean Ruby API ([#62](https://github.com/FontCustom/fontcustom/issues/62))
|
102
|
+
* Workaround for Sprockets compatibility ([#61](https://github.com/FontCustom/fontcustom/pull/61))
|
103
|
+
* Added clean (bootstrap free) CSS and made it the default choice ([#59](https://github.com/FontCustom/fontcustom/pull/59))
|
104
|
+
* Added option to pass different path to @font-face for SCSS partials ([#64](https://github.com/FontCustom/fontcustom/issues/64))
|
105
|
+
* Addes SCSS versions of Bootstrap and IE7 stylesheets
|
106
|
+
* Fixed CSS bug on IE8 and IE9's compatibility mode
|
107
|
+
* Fixed gem bug where watcher could fall into an infinite loop
|
108
|
+
* Added error messages for faulty input
|
109
|
+
* Refactored gem internals to use Thor more sanely
|
110
|
+
* Refactored tests
|
111
|
+
|
112
|
+
## 0.1.4 (2/19/2013)
|
113
|
+
|
114
|
+
* Instructions for stopping watcher ([#46](https://github.com/FontCustom/fontcustom/issues/46))
|
115
|
+
* Dev/contribution instructions ([#45](https://github.com/FontCustom/fontcustom/issues/45))
|
116
|
+
|
117
|
+
## 0.1.3 (2/2/2013)
|
118
|
+
|
119
|
+
* Add --debug CLI option, which shows fontforge output ([#37](https://github.com/FontCustom/fontcustom/issues/37))
|
120
|
+
* Patch for Illustrator CS6 SVG output ([#42](https://github.com/FontCustom/fontcustom/pull/42))
|
121
|
+
* Generate IE7 stylesheet ([#43](https://github.com/FontCustom/fontcustom/pull/43))
|
122
|
+
* Option to set custom font path for @font-face ([#43](https://github.com/FontCustom/fontcustom/pull/43))
|
123
|
+
* Option to generate test HTML file showing all glyphs ([#43](https://github.com/FontCustom/fontcustom/pull/43))
|
124
|
+
* Use eotlite.py instead of mkeot ([#43](https://github.com/FontCustom/fontcustom/pull/43))
|
125
|
+
|
126
|
+
## 0.1.0 (12/2/2012)
|
127
|
+
|
128
|
+
* Changed API to use Thor `class_option`s
|
129
|
+
* Added option to change the name of the font and generated files ([#6](https://github.com/FontCustom/fontcustom/issues/6))
|
130
|
+
* Added option to disable the file name hash ([#13](https://github.com/FontCustom/fontcustom/issues/13))
|
131
|
+
* `fontcustom watch` compiles automatically on the first run
|
132
|
+
* Better help messages
|
133
|
+
|
134
|
+
## 0.0.2 (11/26/2012)
|
135
|
+
|
136
|
+
* Fixed gemspec dependency bug ([#2](https://github.com/FontCustom/fontcustom/pull/2))
|
137
|
+
* Fixed Windows Chrome PUA bug ([#1](https://github.com/FontCustom/fontcustom/issues/1))
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
## Help make Font Custom better!
|
2
|
+
|
3
|
+
This project was born out of an overheard conversation between two devs in a
|
4
|
+
NYC coffee shop — it's come a long ways thanks to your support. Here's what's
|
5
|
+
on the menu:
|
6
|
+
|
7
|
+
* **Ruby on Rails integration**
|
8
|
+
* **Compass integration**
|
9
|
+
* Templates for LESS, stylus, etc.
|
10
|
+
* Ligature support
|
11
|
+
* Windows support
|
12
|
+
* Make better use of Thor
|
13
|
+
|
14
|
+
Just [file an issue](https://github.com/FontCustom/fontcustom/issues) if you
|
15
|
+
have an idea or would like to claim one.
|
16
|
+
|
17
|
+
### Rules of Thumb
|
18
|
+
|
19
|
+
If you catch a typo or a block of code that could be more elegant — please let
|
20
|
+
us know. No such thing as too small of an improvement.
|
21
|
+
|
22
|
+
* Spaces instead of tabs, please.
|
23
|
+
* Develop in a topic branch.
|
24
|
+
* Include passing tests if applicable.
|
25
|
+
* Follow the [Github ruby styleguide](https://github.com/styleguide/ruby) as
|
26
|
+
much as possible.
|
27
|
+
|
28
|
+
### Getting Started
|
29
|
+
|
30
|
+
You'll need:
|
31
|
+
|
32
|
+
* Fontforge with Python scripting (easiest via [Homebrew](http://brew.sh/) on Mac)
|
33
|
+
* Ruby 1.9.2+ (via [rbenv](https://github.com/sstephenson/rbenv), [RVM](https://rvm.io/), etc.)
|
34
|
+
* Rubygems
|
35
|
+
* Bundler
|
36
|
+
* Rake
|
37
|
+
* Rspec
|
38
|
+
|
39
|
+
Some helpful links:
|
40
|
+
|
41
|
+
* http://createdbypete.com/articles/ruby-on-rails-development-with-mac-os-x-mountain-lion/
|
42
|
+
* http://guides.rubygems.org/make-your-own-gem/
|
43
|
+
|
44
|
+
---
|
45
|
+
|
46
|
+
That's all there is to it. Thanks again, and please don't hesitate to reach out:
|
47
|
+
|
48
|
+
[Github Issues](https://github.com/FontCustom/fontcustom/issues)<br>
|
49
|
+
[@kaizau](https://twitter.com/kaizau)<br>
|
50
|
+
[@endtwist](https://twitter.com/endtwist)
|
data/Gemfile
ADDED
data/LICENSES.txt
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
fontcustom
|
2
|
+
|
3
|
+
Copyright (c) 2013 Kai Zau, Joshua Gross
|
4
|
+
|
5
|
+
MIT License
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
8
|
+
a copy of this software and associated documentation files (the
|
9
|
+
"Software"), to deal in the Software without restriction, including
|
10
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
11
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
12
|
+
permit persons to whom the Software is furnished to do so, subject to
|
13
|
+
the following conditions:
|
14
|
+
|
15
|
+
The above copyright notice and this permission notice shall be
|
16
|
+
included in all copies or substantial portions of the Software.
|
17
|
+
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
19
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
20
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
21
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
22
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
23
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
24
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
25
|
+
|
26
|
+
|
27
|
+
sfnt2woff
|
28
|
+
|
29
|
+
Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
30
|
+
|
31
|
+
The contents of this file are subject to the Mozilla Public License Version
|
32
|
+
1.1 (the "License"); you may not use this file except in compliance with
|
33
|
+
the License. You may obtain a copy of the License at
|
34
|
+
http://www.mozilla.org/MPL/
|
35
|
+
|
36
|
+
Software distributed under the License is distributed on an "AS IS" basis,
|
37
|
+
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
38
|
+
for the specific language governing rights and limitations under the
|
39
|
+
License.
|
40
|
+
|
41
|
+
The Original Code is WOFF font packaging code.
|
42
|
+
|
43
|
+
The Initial Developer of the Original Code is Mozilla Corporation.
|
44
|
+
Portions created by the Initial Developer are Copyright (C) 2009
|
45
|
+
the Initial Developer. All Rights Reserved.
|
46
|
+
|
47
|
+
Contributor(s):
|
48
|
+
Jonathan Kew <jfkthame@gmail.com>
|
49
|
+
|
50
|
+
Alternatively, the contents of this file may be used under the terms of
|
51
|
+
either the GNU General Public License Version 2 or later (the "GPL"), or
|
52
|
+
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
53
|
+
in which case the provisions of the GPL or the LGPL are applicable instead
|
54
|
+
of those above. If you wish to allow use of your version of this file only
|
55
|
+
under the terms of either the GPL or the LGPL, and not to allow others to
|
56
|
+
use your version of this file under the terms of the MPL, indicate your
|
57
|
+
decision by deleting the provisions above and replace them with the notice
|
58
|
+
and other provisions required by the GPL or the LGPL. If you do not delete
|
59
|
+
the provisions above, a recipient may use your version of this file under
|
60
|
+
the terms of any one of the MPL, the GPL or the LGPL.
|
data/README.md
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/fontcustom.png)](http://badge.fury.io/rb/fontcustom)
|
2
|
+
[![Build Status](https://api.travis-ci.org/FontCustom/fontcustom.png)](https://travis-ci.org/FontCustom/fontcustom)
|
3
|
+
[![Code Quality](https://codeclimate.com/github/FontCustom/fontcustom.png)](https://codeclimate.com/github/FontCustom/fontcustom) [![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=32953)](https://www.bountysource.com/trackers/32953-endtwist-fontcustom?utm_source=32953&utm_medium=shield&utm_campaign=TRACKER_BADGE)
|
4
|
+
|
5
|
+
## Font Custom
|
6
|
+
|
7
|
+
**Icon fonts from the command line.**
|
8
|
+
|
9
|
+
Generate cross-browser icon fonts and supporting files (@font-face CSS, etc.)
|
10
|
+
from a collection of SVGs
|
11
|
+
([example](https://rawgit.com/FontCustom/fontcustom/master/spec/fixtures/example/example-preview.html)).
|
12
|
+
|
13
|
+
[Changelog](https://github.com/FontCustom/fontcustom/blob/master/CHANGELOG.md)<br>
|
14
|
+
[Bugs/Support](https://github.com/FontCustom/fontcustom/issues)<br>
|
15
|
+
[Contribute!](https://github.com/FontCustom/fontcustom/blob/master/CONTRIBUTING.md)
|
16
|
+
|
17
|
+
### Installation
|
18
|
+
|
19
|
+
Requires **Ruby 1.9.2+**, **FontForge** with Python scripting.
|
20
|
+
|
21
|
+
```sh
|
22
|
+
# On Mac
|
23
|
+
brew install fontforge --with-python
|
24
|
+
brew install eot-utils
|
25
|
+
gem install fontcustom
|
26
|
+
|
27
|
+
# On Linux
|
28
|
+
sudo apt-get install fontforge
|
29
|
+
wget http://people.mozilla.com/~jkew/woff/woff-code-latest.zip
|
30
|
+
unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && sudo mv sfnt2woff /usr/local/bin/
|
31
|
+
gem install fontcustom
|
32
|
+
```
|
33
|
+
|
34
|
+
### Quick Start
|
35
|
+
|
36
|
+
```sh
|
37
|
+
fontcustom compile my/vectors # Compiles icons into `fontcustom/`
|
38
|
+
fontcustom watch my/vectors # Compiles when vectors are changed/added/removed
|
39
|
+
fontcustom compile # Uses options from `./fontcustom.yml` or `config/fontcustom.yml`
|
40
|
+
fontcustom config # Generate a blank a config file
|
41
|
+
fontcustom help # See all options
|
42
|
+
```
|
43
|
+
|
44
|
+
### Configuration
|
45
|
+
|
46
|
+
To manage settings between compiles, run `fontcustom config` to generate a
|
47
|
+
config file. Inside, you'll find a list of [**all possible options**](https://github.com/FontCustom/fontcustom/blob/master/lib/fontcustom/templates/fontcustom.yml).
|
48
|
+
Each option is also available as a dash-case command line flag (e.g.
|
49
|
+
`--css-selector`) that overrides the config file.
|
50
|
+
|
51
|
+
### SVG Guidelines
|
52
|
+
|
53
|
+
* All colors will be rendered identically. Watch out for white fills!
|
54
|
+
* Use only solid colors. SVGs with transparency will be skipped.
|
55
|
+
* For greater precision in curved icons, use fills instead strokes and [try
|
56
|
+
these solutions](https://github.com/FontCustom/fontcustom/issues/85).
|
57
|
+
* Activating `autowidth` trims horizontal white space from each glyph. This
|
58
|
+
can be much easier than centering dozens of SVGs by hand.
|
59
|
+
|
60
|
+
### Advanced
|
61
|
+
|
62
|
+
**For use with Compass and/or Rails**
|
63
|
+
|
64
|
+
Set `templates` to include `scss-rails` to generate a SCSS partial with the
|
65
|
+
compatible font-url() helper. You'll most likely also need to set
|
66
|
+
`preprocessor_path` as the relative path from your compiled CSS to your output
|
67
|
+
directory.
|
68
|
+
|
69
|
+
**Save CSS and fonts to different locations**
|
70
|
+
|
71
|
+
You can save generated fonts, CSS, and other files to different locations by
|
72
|
+
using `fontcustom.yml`. Font Custom can also read input vectors and templates
|
73
|
+
from different places.
|
74
|
+
|
75
|
+
Just edit the `input` and `output` YAML hashes and their corresponding keys.
|
76
|
+
|
77
|
+
**Tweak font settings**
|
78
|
+
|
79
|
+
By default, Font Custom assumes a square viewBox, 512 by 512, and 16 pica
|
80
|
+
points. Change `font_design_size`, `font_em`, `font_ascent`, `font_descent`,
|
81
|
+
and `autowidth` to suit your own needs.
|
82
|
+
|
83
|
+
**Generate LESS, Stylus, and other text files**
|
84
|
+
|
85
|
+
Custom templates give you the flexibility to generate just about anything you
|
86
|
+
want with Font Custom's output data.
|
87
|
+
|
88
|
+
Any non-SVG file in your input directory (or input:templates directory if you
|
89
|
+
set it in `fontcustom.yml`) will be available as a custom template to copy into
|
90
|
+
the output directory after compilation. You just need to specify the file name
|
91
|
+
under the `templates` hash.
|
92
|
+
|
93
|
+
Any embedded ruby in the templates will be processed, along with the following
|
94
|
+
helpers:
|
95
|
+
|
96
|
+
* `font_name`
|
97
|
+
* `font_face`: [FontSpring's Bulletproof @Font-Face Syntax](http://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax)
|
98
|
+
* `glyph_selectors`: comma-separated list of all icon CSS selectors
|
99
|
+
* `glyphs`: all selectors and their codepoint assignments (`.icon-example:before { content: "\f103"; }`)
|
100
|
+
* `@options`: a hash of options used during compilation
|
101
|
+
* `@manifest`: a hash of options, generated file paths, code points, and just about everything else Font Custom knows.
|
102
|
+
* `@font_path`: the path from CSS to font files (without an extension)
|
103
|
+
* `@font_path_alt`: if `preprocessor_path` was set, this is the modified path
|
104
|
+
|
105
|
+
`font_face` accepts a hash that modifies the CSS url() function and the path of
|
106
|
+
the font files (`font_face(url: "font-url", path: @font_path_alt)`).
|
107
|
+
|
108
|
+
---
|
109
|
+
|
110
|
+
[Licenses](https://github.com/FontCustom/fontcustom/blob/master/LICENSES.txt)
|
111
|
+
|
112
|
+
Brought to you by [@endtwist](https://github.com/endtwist) and [@kaizau](https://github.com/kaizau)
|
data/Rakefile
ADDED
data/bin/fontcustom
ADDED
data/fontcustom.gemspec
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "fontcustom/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "gkh-fontcustom"
|
8
|
+
gem.version = Fontcustom::VERSION
|
9
|
+
gem.authors = ["Kai Zau", "Joshua Gross"]
|
10
|
+
gem.email = ["kai@kaizau.com", "joshua@gross.is"]
|
11
|
+
gem.summary = "Generate icon fonts from the command line."
|
12
|
+
gem.description = "Font Custom makes using vector icons easy. Generate icon fonts and supporting templates (e.g. @font-face CSS) from a collection of SVGs."
|
13
|
+
gem.homepage = "http://fontcustom.com"
|
14
|
+
gem.post_install_message = ">> Thanks for installing Font Custom! Please ensure that fontforge is installed before compiling any icons. Visit <http://fontcustom.com> for instructions."
|
15
|
+
|
16
|
+
gem.files = `git ls-files`.split($/)
|
17
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
18
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
|
+
gem.require_paths = ["lib"]
|
20
|
+
|
21
|
+
gem.add_dependency "json", "~>1.4"
|
22
|
+
gem.add_dependency "thor", "~>0.14"
|
23
|
+
gem.add_dependency "listen", ">=1.0","<3.0"
|
24
|
+
|
25
|
+
gem.add_development_dependency "rake"
|
26
|
+
gem.add_development_dependency "bundler"
|
27
|
+
gem.add_development_dependency "rspec", "~>3.1.0"
|
28
|
+
end
|