mirror of
https://github.com/FortAwesome/Font-Awesome.git
synced 2024-12-27 14:01:30 +08:00
Global icons object
This commit is contained in:
parent
441d6f0ba1
commit
ce8d414b7b
1
.ruby-version
Normal file
1
.ruby-version
Normal file
@ -0,0 +1 @@
|
||||
1.9.3-p392
|
4
Gemfile
Executable file
4
Gemfile
Executable file
@ -0,0 +1,4 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'jekyll', '1.0'
|
||||
gem 'debugger'
|
46
Gemfile.lock
Normal file
46
Gemfile.lock
Normal file
@ -0,0 +1,46 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
classifier (1.3.3)
|
||||
fast-stemmer (>= 1.0.0)
|
||||
colorator (0.1)
|
||||
columnize (0.3.6)
|
||||
commander (4.1.3)
|
||||
highline (~> 1.6.11)
|
||||
debugger (1.6.0)
|
||||
columnize (>= 0.3.1)
|
||||
debugger-linecache (~> 1.2.0)
|
||||
debugger-ruby_core_source (~> 1.2.1)
|
||||
debugger-linecache (1.2.0)
|
||||
debugger-ruby_core_source (1.2.2)
|
||||
directory_watcher (1.4.1)
|
||||
fast-stemmer (1.0.2)
|
||||
highline (1.6.19)
|
||||
jekyll (1.0.0)
|
||||
classifier (~> 1.3)
|
||||
colorator (~> 0.1)
|
||||
commander (~> 4.1.3)
|
||||
directory_watcher (~> 1.4.1)
|
||||
kramdown (~> 0.14)
|
||||
liquid (~> 2.3)
|
||||
maruku (~> 0.5)
|
||||
pygments.rb (~> 0.4.2)
|
||||
safe_yaml (~> 0.7.0)
|
||||
kramdown (0.14.2)
|
||||
liquid (2.5.0)
|
||||
maruku (0.6.1)
|
||||
syntax (>= 1.0.0)
|
||||
posix-spawn (0.3.6)
|
||||
pygments.rb (0.4.2)
|
||||
posix-spawn (~> 0.3.6)
|
||||
yajl-ruby (~> 1.1.0)
|
||||
safe_yaml (0.7.1)
|
||||
syntax (1.0.0)
|
||||
yajl-ruby (1.1.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
debugger
|
||||
jekyll (= 1.0)
|
@ -10,7 +10,7 @@
|
||||
<div id="whats-new">
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<h4><i class="icon-lightbulb"></i> {{ site.font_awesome.new_icon_count }} New Icons in {{ site.font_awesome.version }}</h4>
|
||||
<h4><i class="icon-lightbulb"></i> {{ icons | version:site.font_awesome.version | size }} New Icons in {{ site.font_awesome.version }}</h4>
|
||||
Requested by the active community on the <a href="{{ site.font_awesome.github.url }}">Font Awesome GitHub project</a>.
|
||||
</div>
|
||||
<div class="span4">
|
||||
|
@ -6,26 +6,26 @@ relative_path: ../../
|
||||
<div class="jumbotron jumbotron-icon">
|
||||
<div class="container">
|
||||
<div class="info-icons">
|
||||
<i class="icon-{{ page.icon['id'] }} icon-6"></i>
|
||||
<i class="icon-{{ page.icon['id'] }} icon-5"></i>
|
||||
<i class="icon-{{ page.icon['id'] }} icon-4"></i>
|
||||
<i class="icon-{{ page.icon['id'] }} icon-3"></i>
|
||||
<i class="icon-{{ page.icon['id'] }} icon-2"></i>
|
||||
<i class="icon-{{ page.icon['id'] }} icon-1"></i>
|
||||
<i class="icon-{{ page.icon.id }} icon-6"></i>
|
||||
<i class="icon-{{ page.icon.id }} icon-5"></i>
|
||||
<i class="icon-{{ page.icon.id }} icon-4"></i>
|
||||
<i class="icon-{{ page.icon.id }} icon-3"></i>
|
||||
<i class="icon-{{ page.icon.id }} icon-2"></i>
|
||||
<i class="icon-{{ page.icon.id }} icon-1"></i>
|
||||
</div>
|
||||
<h1 class="info-class">
|
||||
icon-{{ page.icon['id'] }}
|
||||
icon-{{ page.icon.id }}
|
||||
<small>
|
||||
<i class="icon-{{ page.icon['id'] }}"></i> ·
|
||||
Unicode: <span class="upper">{{ page.icon['unicode'] }}</span> ·
|
||||
Created: v{{ page.icon['created'] }} ·
|
||||
<i class="icon-{{ page.icon.id }}"></i> ·
|
||||
Unicode: <span class="upper">{{ page.icon.unicode }}</span> ·
|
||||
Created: v{{ page.icon.created }} ·
|
||||
Categories:
|
||||
{% for category in page.icon['categories'] %}
|
||||
{% for category in page.icon.categories %}
|
||||
{{ category }}{% unless forloop.last %},{% endunless %}
|
||||
{% endfor %}
|
||||
{% if page.icon['aliases'] %}
|
||||
{% if page.icon.aliases %}
|
||||
· Aliases:
|
||||
{% for alias in page.icon['aliases'] %}
|
||||
{% for alias in page.icon.aliases %}
|
||||
icon-{{ alias }}{% unless forloop.last %},{% endunless %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
@ -42,11 +42,11 @@ relative_path: ../../
|
||||
<p>After you get <a href="{{ page.relative_path }}integration/">up and running</a>, you can place Font Awesome icons just about anywhere with the <code><i></code> tag:</p>
|
||||
<div class="well well-transparent">
|
||||
<div style="font-size: 24px; line-height: 1.5em;">
|
||||
<i class="icon-{{ page.icon['id'] }}"></i> icon-{{ page.icon['id'] }}
|
||||
<i class="icon-{{ page.icon.id }}"></i> icon-{{ page.icon.id }}
|
||||
</div>
|
||||
</div>
|
||||
{% highlight html linenos %}
|
||||
<i class="icon-{{ page.icon['id'] }}"></i> icon-{{ page.icon['id'] }}
|
||||
<i class="icon-{{ page.icon.id }}"></i> icon-{{ page.icon.id }}
|
||||
{% endhighlight %}
|
||||
<br>
|
||||
<div class="lead"><i class="icon-info-sign"></i> Looking for more? Check out the <a href="{{ page.relative_path }}examples/">examples</a>.</div>
|
||||
|
56
build/_plugins/css_preproc_generator.rb
Normal file
56
build/_plugins/css_preproc_generator.rb
Normal file
@ -0,0 +1,56 @@
|
||||
##
|
||||
# Create Less and Sass files
|
||||
|
||||
require 'yaml'
|
||||
require 'forwardable'
|
||||
require 'debugger'
|
||||
|
||||
module Jekyll
|
||||
|
||||
class CssPreProcPage < Page
|
||||
|
||||
def initialize(site, base, dir, name, icons)
|
||||
@site = site
|
||||
@base = base
|
||||
@dir = dir
|
||||
@name = name
|
||||
@icons = icons
|
||||
|
||||
self.process(@name)
|
||||
|
||||
self.read_yaml(File.join(base, site.config['layouts']), @name)
|
||||
|
||||
self.data['icons'] = icons
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class CssPreProcGenerator < Generator
|
||||
|
||||
##
|
||||
# Iterate over every described icon in a YAML file and create a page for it
|
||||
|
||||
safe true
|
||||
|
||||
def generate(site)
|
||||
# Need to figure use lessc to generate the files first
|
||||
return
|
||||
|
||||
less_destination = site.config['css_preproc']['less_destination']
|
||||
|
||||
# Less file
|
||||
site.pages << CssPreProcPage.new(
|
||||
site, site.source, less_destination,
|
||||
site.config['css_preproc']['less_layout'],
|
||||
site.icons)
|
||||
|
||||
# Less IE7 file
|
||||
site.pages << CssPreProcPage.new(
|
||||
site, site.source, less_destination,
|
||||
site.config['css_preproc']['less_ie7_layout'],
|
||||
site.icons)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
@ -2,6 +2,7 @@
|
||||
# Create individual pages for each icon in the FontAwesome set
|
||||
|
||||
require 'yaml'
|
||||
require 'debugger'
|
||||
|
||||
module Jekyll
|
||||
|
||||
@ -14,7 +15,7 @@ module Jekyll
|
||||
@site = site
|
||||
@base = base
|
||||
@dir = dir
|
||||
@name = "#{icon['id']}.html"
|
||||
@name = "#{icon.id}.html"
|
||||
@icon = icon
|
||||
|
||||
self.process(@name)
|
||||
@ -22,7 +23,7 @@ module Jekyll
|
||||
self.read_yaml(File.join(base, site.config['layouts']), site.config['icon_layout'])
|
||||
|
||||
self.data['icon'] = icon
|
||||
self.data['title'] = "icon-#{icon['id']}: " + self.data['title_suffix']
|
||||
self.data['title'] = "icon-#{icon.id}: " + self.data['title_suffix']
|
||||
end
|
||||
|
||||
end
|
||||
@ -35,10 +36,7 @@ module Jekyll
|
||||
safe true
|
||||
|
||||
def generate(site)
|
||||
icon_meta_filename = site.config['icon_meta']
|
||||
icon_meta = YAML.load_file(icon_meta_filename)
|
||||
|
||||
icon_meta['icons'].each do |icon|
|
||||
site.icons.each do |icon|
|
||||
site.pages << IconPage.new(site, site.source, site.config['icon_destination'], icon)
|
||||
end
|
||||
end
|
||||
|
100
build/_plugins/site.rb
Normal file
100
build/_plugins/site.rb
Normal file
@ -0,0 +1,100 @@
|
||||
##
|
||||
# Provide an icons attribute on the site object
|
||||
|
||||
require 'yaml'
|
||||
require 'forwardable'
|
||||
|
||||
module Jekyll
|
||||
|
||||
class Icon
|
||||
|
||||
attr_reader :name, :id, :unicode, :created, :categories
|
||||
|
||||
def initialize(icon_object)
|
||||
@icon_object = icon_object
|
||||
|
||||
@name = icon_object['name']
|
||||
@id = icon_object['id']
|
||||
@aliases = icon_object['aliases']
|
||||
@unicode = icon_object['unicode']
|
||||
@created = icon_object['created']
|
||||
@categories = icon_object['categories']
|
||||
end
|
||||
|
||||
def to_liquid
|
||||
return @icon_object
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class IconList
|
||||
##
|
||||
# A list of icons
|
||||
#
|
||||
include Enumerable
|
||||
extend Forwardable
|
||||
|
||||
def_delegators :@icon_array, :each, :<<
|
||||
|
||||
def initialize(icon_array)
|
||||
@original_icon_array = icon_array
|
||||
@icon_array = []
|
||||
|
||||
icon_array.each { |icon_object|
|
||||
@icon_array << Icon.new(icon_object)
|
||||
}
|
||||
end
|
||||
|
||||
def [](k)
|
||||
@icon_array[k]
|
||||
end
|
||||
|
||||
def to_liquid
|
||||
@original_icon_array
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
module IconFilters
|
||||
def category(icons, cat)
|
||||
icons.select { |icon| icon['categories'].include?(cat) }
|
||||
end
|
||||
|
||||
def version(icons, version)
|
||||
icons.select { |icon| icon['created'] == version }
|
||||
end
|
||||
end
|
||||
|
||||
Liquid::Template.register_filter(IconFilters)
|
||||
|
||||
class Site
|
||||
|
||||
attr_reader :icons
|
||||
|
||||
def process
|
||||
@icons = IconList.new(YAML.load_file(self.config['icon_meta'])['icons'])
|
||||
|
||||
self.reset
|
||||
self.read
|
||||
self.generate
|
||||
self.render
|
||||
self.cleanup
|
||||
self.write
|
||||
end
|
||||
|
||||
def site_payload
|
||||
{
|
||||
"site" => self.config.merge({
|
||||
"time" => self.time,
|
||||
"posts" => self.posts.sort { |a, b| b <=> a },
|
||||
"pages" => self.pages,
|
||||
"html_pages" => self.pages.reject { |page| !page.html? },
|
||||
"categories" => post_attr_hash('categories'),
|
||||
"tags" => post_attr_hash('tags')}),
|
||||
"icons" => @icons,
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue
Block a user