<tr>
<td class="center" align="center" valign="top">
<center>
- <container>
- <row>
- <columns large='10'>
- <h3> This is 10 Columns </h3>
-
- </columns>
- <columns large='2'>
- <h3> This is 10 Columns </h3>
-
+ <row>
+ <columns large="12">
+ Forever alone
</columns>
- </row>
+ </row>
</container>
<container>
<columns small='8' large='2'>
"row",
"container",
"columns",
- "button"
+ "button",
+ "subcolumns"
];
};
output = '<table class="button ' + compClass +'"><tbody><tr><td>' + inner + '</td></tr></tbody></table>';
break;
// TODO: This is super messed up right now
- case 'subcolumn':
+ case 'subcolumns':
var subColSize = '';
if ($(component).attr('small')) {
if ($(component).attr('large')) {
subColSize += 'large' + '-' + $(component).attr('large') + ' ';
}
- output = '<td class="sub-columns ' + compClass + ' ' + subColSize +'">' + inner + '</td>';
+
+ if ($(component).next()[0].name !== 'subcolumns') {
+ output = '<td class="sub-columns last ' + compClass + ' ' + subColSize +'">' + inner + '</td>';
+ }
+ else {
+ output = '<td class="sub-columns ' + compClass + ' ' + subColSize +'">' + inner + '</td>';
+ }
break;
case 'container':
},
// Description:
- // Returns output for column elements
+ // Returns output for column elements. TODO: this could be refactored to handle both cols and subcols
//
// Arguments:
// col (obj), siblings (str): the initial target column and its siblings within the same row
colSize += 'large' + '-' + $(col).attr('large') + ' ';
}
- wrapperHTML += '<table class="' + colSize + 'columns"><tr><td>';
- wrapperHTML += inner;
- wrapperHTML += '</td><td class="expander"></td></tr></table>';
+ wrapperHTML += '<table class="' + colSize + 'columns"><tr>';
+
+ // subcolumns do not need an extra td
+ if ($(col).children()[0] && $(col).children()[0].name !== 'subcolumns') {
+ wrapperHTML += '<td>' + inner + '</td>';
+ }
+ else {
+ wrapperHTML += inner;
+ }
+
+ wrapperHTML += '<td class="expander"></td></tr></table>';
$(col).replaceWith(wrapperHTML);
});
+++ /dev/null
-/* global describe, it, expect */
-
-"use strict";
-
-var inky = require('../node_modules/gulp-zurb-foundation-email/node_modules/gulp-zurb-inky');
-var cheerio = require('../node_modules/gulp-zurb-foundation-email/node_modules/cheerio');
-
-describe("the grid", function () {
-
- beforeEach(function() {
- // var str = inky.getHTML();
- var $ = cheerio.load("<div>Hello</div>");
- });
- it("returns the correct column syntax", function () {
- var $ = cheerio.load('<center><container><row><columns large="10"><h3>This is 10 Columns</h3></columns><columns large="2"><h3>This is 2 Columns</h3></columns></row></container></center>');
- $ = inky.releaseTheKraken($);
- expect($.html()).toEqual('<center><table class="container "><tbody><tr><td><table class="row "><tbody><tr><td class="wrapper "><table class="large-10 columns"><tr><td><h3>This is 10 Columns</h3></td><td class="expander"></td></tr></table></td><td class="wrapper last"><table class="large-2 columns"><tr><td><h3>This is 2 Columns</h3></td><td class="expander"></td></tr></table></td></tr></tbody></table></td></tr></tbody></table></center>');
- });
-
-
-});
--- /dev/null
+/* global describe, it, expect */
+
+"use strict";
+
+var inky = require('../node_modules/gulp-zurb-foundation-email/node_modules/gulp-zurb-inky');
+var cheerio = require('../node_modules/gulp-zurb-foundation-email/node_modules/cheerio');
+
+describe("the components", function () {
+
+ it("returns basic button syntax", function () {
+ var $ = cheerio.load('<center><row><columns large="12"><button>Big button</button></columns></row></center>');
+
+ $ = inky.releaseTheKraken($);
+ expect($.html()).toEqual('<center><table class="row "><tbody><tr><td class="wrapper last"><table class="large-12 columns"><tr><td><table class="button "><tbody><tr><td>Big button</td></tr></tbody></table></td><td class="expander"></td></tr></table></td></tr></tbody></table></center>');
+ });
+
+
+
+
+});
--- /dev/null
+/* global describe, it, expect */
+
+"use strict";
+
+var inky = require('../node_modules/gulp-zurb-foundation-email/node_modules/gulp-zurb-inky');
+var cheerio = require('../node_modules/gulp-zurb-foundation-email/node_modules/cheerio');
+
+describe("the grid", function () {
+ it("returns the correct row syntax", function() {
+ var $ = cheerio.load('<center><row>This is a row!</row></center>');
+
+ $ = inky.releaseTheKraken($);
+ expect($.html()).toEqual('<center><table class="row "><tbody><tr>This is a row!</tr></tbody></table></center>');
+ })
+
+ it("returns the correct container syntax", function() {
+ var $ = cheerio.load('<center><container>This is a container!</container></center>');
+
+ $ = inky.releaseTheKraken($);
+ expect($.html()).toEqual('<center><table class="container "><tbody><tr><td>This is a container!</td></tr></tbody></table></center>');
+ })
+
+ it("returns the correct column syntax", function () {
+ var $ = cheerio.load('<center><row><columns large="10"><h3>This is 10 Columns</h3></columns><columns large="2"><h3>This is 2 Columns</h3></columns></row></center>');
+
+ $ = inky.releaseTheKraken($);
+ expect($.html()).toEqual('<center><table class="row "><tbody><tr><td class="wrapper "><table class="large-10 columns"><tr><td><h3>This is 10 Columns</h3></td><td class="expander"></td></tr></table></td><td class="wrapper last"><table class="large-2 columns"><tr><td><h3>This is 2 Columns</h3></td><td class="expander"></td></tr></table></td></tr></tbody></table></center>');
+ });
+
+ it("nests subcolumns correctly", function() {
+ var $ = cheerio.load('<center><row><columns large="10"> <subcolumns large="6"><h3>I\'m just half of the parent 10 column</h3></subcolumns><subcolumns large="6"><h3>I\'m the other half of the parent 10 column</h3></subcolumns></columns><columns large="2"> <h3> This is 2 Columns </h3></columns></row></center>');
+
+ $ = inky.releaseTheKraken($);
+ expect($.html()).toEqual('<center><table class="row "><tbody><tr><td class="wrapper "><table class="large-10 columns"><tr> <td class="sub-columns large-6 "><h3>I'm just half of the parent 10 column</h3></td><td class="sub-columns last large-6 "><h3>I'm the other half of the parent 10 column</h3></td><td class="expander"></td></tr></table></td><td class="wrapper last"><table class="large-2 columns"><tr><td> <h3> This is 2 Columns </h3></td><td class="expander"></td></tr></table></td></tr></tbody></table></center>');
+ })
+
+ it("nests rows in containers", function() {
+ var $ = cheerio.load('<center><container></row>Row in container</row></container></center>');
+
+ $ = inky.releaseTheKraken($);
+ expect($.html()).toEqual('<center><table class="container "><tbody><tr><td>Row in container</td></tr></tbody></table></center>');
+ })
+
+ it("will place the 'last' class on the last column", function() {
+ })
+
+ it("will place the 'last' class on a solo column", function() {
+
+ })
+});
describe("inky", function () {
it("should be targetting custom tags", function () {
- expect(inky.getTags()).toEqual([ 'panel', 'row', 'container', 'columns', 'button' ]);
+ expect(inky.getTags()).toEqual([ 'panel', 'row', 'container', 'columns', 'button', 'subcolumns' ]);
});
});