mirror of
https://github.com/jimeh/760-grid-system.git
synced 2026-02-19 03:06:39 +00:00
Initial import.
This commit is contained in:
116
generator/generate-grid.rb
Executable file
116
generator/generate-grid.rb
Executable file
@@ -0,0 +1,116 @@
|
||||
#! /usr/bin/env ruby
|
||||
|
||||
require "yaml"
|
||||
grids = YAML.load_file("grids.yml")
|
||||
|
||||
classes = {}
|
||||
grids.each do |grid_name, value|
|
||||
width = value["width"].to_i
|
||||
cells = value["cells"].to_i
|
||||
margin = value["margin"].to_i
|
||||
cell_size = width / cells;
|
||||
|
||||
# containers
|
||||
key = "\tmargin-left: auto;\n"
|
||||
key << "\tmargin-right: auto;\n"
|
||||
key << "\twidth: " + width.to_s + "px;\n"
|
||||
val = ".container_" + cells.to_s
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
|
||||
# global
|
||||
key = "\tdisplay: inline;\n"
|
||||
key << "\tfloat: left;\n"
|
||||
key << "\tmargin-left: " + margin.to_s + "px;\n"
|
||||
key << "\tmargin-right: " + margin.to_s + "px;\n"
|
||||
for i in 1..cells
|
||||
val = ".container_" + cells.to_s + " .grid_" + i.to_s
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
end
|
||||
|
||||
# alpha / omega
|
||||
key = "\tmargin-left: 0;\n"
|
||||
val = ".alpha"
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
key = "\tmargin-right: 0;\n"
|
||||
val = ".omega"
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
|
||||
# grid_*
|
||||
for i in 1..cells
|
||||
key = "\twidth: " + ((cell_size * i) - (margin * 2)).to_s + "px;\n"
|
||||
val = ".container_" + cells.to_s + " .grid_" + i.to_s
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
end
|
||||
|
||||
# prefix_*
|
||||
for i in 1..(cells-1)
|
||||
key = "\tpadding-left: " + ((cell_size) * i).to_s + "px;\n"
|
||||
val = ".container_" + cells.to_s + " .prefix_" + i.to_s
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
end
|
||||
|
||||
# suffix_*
|
||||
for i in 1..(cells-1)
|
||||
key = "\tpadding-right: " + ((cell_size) * i).to_s + "px;\n"
|
||||
val = ".container_" + cells.to_s + " .suffix_" + i.to_s
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
# clear
|
||||
key = "\tclear: both;\n"
|
||||
key << "\tdisplay: block;\n"
|
||||
key << "\toverflow: hidden;\n"
|
||||
key << "\tvisibility: hidden;\n"
|
||||
key << "\twidth: 0;\n"
|
||||
key << "\theight: 0;\n"
|
||||
val = ".clear"
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
|
||||
# clearfix
|
||||
key = "\tclear: both;\n"
|
||||
key << "\tcontent: '.';\n"
|
||||
key << "\tdisplay: block;\n"
|
||||
key << "\tvisibility: hidden;\n"
|
||||
key << "\theight: 0;\n"
|
||||
val = ".clearfix:after"
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
|
||||
key = "\tdisplay: inline-block;\n"
|
||||
val = ".clearfix"
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
|
||||
key = "\theight: 1%;\n"
|
||||
val = "* html .clearfix"
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
|
||||
key = "\tdisplay: block;\n"
|
||||
val = ".clearfix"
|
||||
classes[key] = [] if !classes.has_key?(key)
|
||||
classes[key].push(val)
|
||||
|
||||
|
||||
# generate output
|
||||
output = ""
|
||||
classes.sort
|
||||
|
||||
classes.sort{|a,b| a[0]<=>b[0]}.each do |key, value|
|
||||
output << value.uniq.join(",\n") + " {\n"
|
||||
output << key
|
||||
output << "}\n"
|
||||
output << "\n"
|
||||
end
|
||||
|
||||
puts output
|
||||
14
generator/grids.yml
Normal file
14
generator/grids.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
grid_1:
|
||||
width: 760
|
||||
cells: 20
|
||||
margin: 0
|
||||
|
||||
grid_2:
|
||||
width: 760
|
||||
cells: 38
|
||||
margin: 0
|
||||
|
||||
grid_3:
|
||||
width: 760
|
||||
cells: 76
|
||||
margin: 0
|
||||
Reference in New Issue
Block a user