middleman-hashicorp 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.travis.yml +12 -0
  4. data/Gemfile +2 -0
  5. data/LICENSE +21 -0
  6. data/Makefile +21 -0
  7. data/README.md +183 -0
  8. data/Rakefile +11 -0
  9. data/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  10. data/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  11. data/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  12. data/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  13. data/assets/images/fastly_logo.png +0 -0
  14. data/assets/images/icons/icon_centos.png +0 -0
  15. data/assets/images/icons/icon_darwin.png +0 -0
  16. data/assets/images/icons/icon_debian.png +0 -0
  17. data/assets/images/icons/icon_freebsd.png +0 -0
  18. data/assets/images/icons/icon_hashios.png +0 -0
  19. data/assets/images/icons/icon_linux.png +0 -0
  20. data/assets/images/icons/icon_macosx.png +0 -0
  21. data/assets/images/icons/icon_netbsd.png +0 -0
  22. data/assets/images/icons/icon_openbsd.png +0 -0
  23. data/assets/images/icons/icon_rpm.png +0 -0
  24. data/assets/images/icons/icon_solaris.png +0 -0
  25. data/assets/images/icons/icon_windows.png +0 -0
  26. data/assets/javascripts/bootstrap.js +2114 -0
  27. data/assets/javascripts/ie-compat.js +1 -0
  28. data/assets/javascripts/ie-compat/html5shiv-printshiv.js +520 -0
  29. data/assets/javascripts/ie-compat/html5shiv.js +322 -0
  30. data/assets/javascripts/ie-compat/respond.js +353 -0
  31. data/assets/javascripts/jquery.js +9190 -0
  32. data/docker/Dockerfile +22 -0
  33. data/lib/middleman-hashicorp.rb +6 -0
  34. data/lib/middleman-hashicorp/bintray.rb +98 -0
  35. data/lib/middleman-hashicorp/extension.rb +237 -0
  36. data/lib/middleman-hashicorp/redcarpet.rb +134 -0
  37. data/lib/middleman-hashicorp/releases.rb +32 -0
  38. data/lib/middleman-hashicorp/rouge.rb +16 -0
  39. data/lib/middleman-hashicorp/version.rb +5 -0
  40. data/lib/middleman_extension.rb +1 -0
  41. data/middleman-hashicorp.gemspec +48 -0
  42. data/spec/spec_helper.rb +34 -0
  43. data/spec/unit/helper_spec.rb +71 -0
  44. data/spec/unit/markdown_spec.rb +206 -0
  45. data/spec/unit/releases_spec.rb +34 -0
  46. metadata +330 -0
@@ -0,0 +1 @@
1
+ //= require_tree ./ie-compat
@@ -0,0 +1,520 @@
1
+ /**
2
+ * @preserve HTML5 Shiv 3.7.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3
+ */
4
+ ;(function(window, document) {
5
+ /*jshint evil:true */
6
+ /** version */
7
+ var version = '3.7.2';
8
+
9
+ /** Preset options */
10
+ var options = window.html5 || {};
11
+
12
+ /** Used to skip problem elements */
13
+ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
14
+
15
+ /** Not all elements can be cloned in IE **/
16
+ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
17
+
18
+ /** Detect whether the browser supports default html5 styles */
19
+ var supportsHtml5Styles;
20
+
21
+ /** Name of the expando, to work with multiple documents or to re-shiv one document */
22
+ var expando = '_html5shiv';
23
+
24
+ /** The id for the the documents expando */
25
+ var expanID = 0;
26
+
27
+ /** Cached data for each document */
28
+ var expandoData = {};
29
+
30
+ /** Detect whether the browser supports unknown elements */
31
+ var supportsUnknownElements;
32
+
33
+ (function() {
34
+ try {
35
+ var a = document.createElement('a');
36
+ a.innerHTML = '<xyz></xyz>';
37
+ //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
38
+ supportsHtml5Styles = ('hidden' in a);
39
+
40
+ supportsUnknownElements = a.childNodes.length == 1 || (function() {
41
+ // assign a false positive if unable to shiv
42
+ (document.createElement)('a');
43
+ var frag = document.createDocumentFragment();
44
+ return (
45
+ typeof frag.cloneNode == 'undefined' ||
46
+ typeof frag.createDocumentFragment == 'undefined' ||
47
+ typeof frag.createElement == 'undefined'
48
+ );
49
+ }());
50
+ } catch(e) {
51
+ // assign a false positive if detection fails => unable to shiv
52
+ supportsHtml5Styles = true;
53
+ supportsUnknownElements = true;
54
+ }
55
+
56
+ }());
57
+
58
+ /*--------------------------------------------------------------------------*/
59
+
60
+ /**
61
+ * Creates a style sheet with the given CSS text and adds it to the document.
62
+ * @private
63
+ * @param {Document} ownerDocument The document.
64
+ * @param {String} cssText The CSS text.
65
+ * @returns {StyleSheet} The style element.
66
+ */
67
+ function addStyleSheet(ownerDocument, cssText) {
68
+ var p = ownerDocument.createElement('p'),
69
+ parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
70
+
71
+ p.innerHTML = 'x<style>' + cssText + '</style>';
72
+ return parent.insertBefore(p.lastChild, parent.firstChild);
73
+ }
74
+
75
+ /**
76
+ * Returns the value of `html5.elements` as an array.
77
+ * @private
78
+ * @returns {Array} An array of shived element node names.
79
+ */
80
+ function getElements() {
81
+ var elements = html5.elements;
82
+ return typeof elements == 'string' ? elements.split(' ') : elements;
83
+ }
84
+
85
+ /**
86
+ * Extends the built-in list of html5 elements
87
+ * @memberOf html5
88
+ * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
89
+ * @param {Document} ownerDocument The context document.
90
+ */
91
+ function addElements(newElements, ownerDocument) {
92
+ var elements = html5.elements;
93
+ if(typeof elements != 'string'){
94
+ elements = elements.join(' ');
95
+ }
96
+ if(typeof newElements != 'string'){
97
+ newElements = newElements.join(' ');
98
+ }
99
+ html5.elements = elements +' '+ newElements;
100
+ shivDocument(ownerDocument);
101
+ }
102
+
103
+ /**
104
+ * Returns the data associated to the given document
105
+ * @private
106
+ * @param {Document} ownerDocument The document.
107
+ * @returns {Object} An object of data.
108
+ */
109
+ function getExpandoData(ownerDocument) {
110
+ var data = expandoData[ownerDocument[expando]];
111
+ if (!data) {
112
+ data = {};
113
+ expanID++;
114
+ ownerDocument[expando] = expanID;
115
+ expandoData[expanID] = data;
116
+ }
117
+ return data;
118
+ }
119
+
120
+ /**
121
+ * returns a shived element for the given nodeName and document
122
+ * @memberOf html5
123
+ * @param {String} nodeName name of the element
124
+ * @param {Document} ownerDocument The context document.
125
+ * @returns {Object} The shived element.
126
+ */
127
+ function createElement(nodeName, ownerDocument, data){
128
+ if (!ownerDocument) {
129
+ ownerDocument = document;
130
+ }
131
+ if(supportsUnknownElements){
132
+ return ownerDocument.createElement(nodeName);
133
+ }
134
+ if (!data) {
135
+ data = getExpandoData(ownerDocument);
136
+ }
137
+ var node;
138
+
139
+ if (data.cache[nodeName]) {
140
+ node = data.cache[nodeName].cloneNode();
141
+ } else if (saveClones.test(nodeName)) {
142
+ node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
143
+ } else {
144
+ node = data.createElem(nodeName);
145
+ }
146
+
147
+ // Avoid adding some elements to fragments in IE < 9 because
148
+ // * Attributes like `name` or `type` cannot be set/changed once an element
149
+ // is inserted into a document/fragment
150
+ // * Link elements with `src` attributes that are inaccessible, as with
151
+ // a 403 response, will cause the tab/window to crash
152
+ // * Script elements appended to fragments will execute when their `src`
153
+ // or `text` property is set
154
+ return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
155
+ }
156
+
157
+ /**
158
+ * returns a shived DocumentFragment for the given document
159
+ * @memberOf html5
160
+ * @param {Document} ownerDocument The context document.
161
+ * @returns {Object} The shived DocumentFragment.
162
+ */
163
+ function createDocumentFragment(ownerDocument, data){
164
+ if (!ownerDocument) {
165
+ ownerDocument = document;
166
+ }
167
+ if(supportsUnknownElements){
168
+ return ownerDocument.createDocumentFragment();
169
+ }
170
+ data = data || getExpandoData(ownerDocument);
171
+ var clone = data.frag.cloneNode(),
172
+ i = 0,
173
+ elems = getElements(),
174
+ l = elems.length;
175
+ for(;i<l;i++){
176
+ clone.createElement(elems[i]);
177
+ }
178
+ return clone;
179
+ }
180
+
181
+ /**
182
+ * Shivs the `createElement` and `createDocumentFragment` methods of the document.
183
+ * @private
184
+ * @param {Document|DocumentFragment} ownerDocument The document.
185
+ * @param {Object} data of the document.
186
+ */
187
+ function shivMethods(ownerDocument, data) {
188
+ if (!data.cache) {
189
+ data.cache = {};
190
+ data.createElem = ownerDocument.createElement;
191
+ data.createFrag = ownerDocument.createDocumentFragment;
192
+ data.frag = data.createFrag();
193
+ }
194
+
195
+
196
+ ownerDocument.createElement = function(nodeName) {
197
+ //abort shiv
198
+ if (!html5.shivMethods) {
199
+ return data.createElem(nodeName);
200
+ }
201
+ return createElement(nodeName, ownerDocument, data);
202
+ };
203
+
204
+ ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
205
+ 'var n=f.cloneNode(),c=n.createElement;' +
206
+ 'h.shivMethods&&(' +
207
+ // unroll the `createElement` calls
208
+ getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
209
+ data.createElem(nodeName);
210
+ data.frag.createElement(nodeName);
211
+ return 'c("' + nodeName + '")';
212
+ }) +
213
+ ');return n}'
214
+ )(html5, data.frag);
215
+ }
216
+
217
+ /*--------------------------------------------------------------------------*/
218
+
219
+ /**
220
+ * Shivs the given document.
221
+ * @memberOf html5
222
+ * @param {Document} ownerDocument The document to shiv.
223
+ * @returns {Document} The shived document.
224
+ */
225
+ function shivDocument(ownerDocument) {
226
+ if (!ownerDocument) {
227
+ ownerDocument = document;
228
+ }
229
+ var data = getExpandoData(ownerDocument);
230
+
231
+ if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
232
+ data.hasCSS = !!addStyleSheet(ownerDocument,
233
+ // corrects block display not defined in IE6/7/8/9
234
+ 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
235
+ // adds styling not present in IE6/7/8/9
236
+ 'mark{background:#FF0;color:#000}' +
237
+ // hides non-rendered elements
238
+ 'template{display:none}'
239
+ );
240
+ }
241
+ if (!supportsUnknownElements) {
242
+ shivMethods(ownerDocument, data);
243
+ }
244
+ return ownerDocument;
245
+ }
246
+
247
+ /*--------------------------------------------------------------------------*/
248
+
249
+ /**
250
+ * The `html5` object is exposed so that more elements can be shived and
251
+ * existing shiving can be detected on iframes.
252
+ * @type Object
253
+ * @example
254
+ *
255
+ * // options can be changed before the script is included
256
+ * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
257
+ */
258
+ var html5 = {
259
+
260
+ /**
261
+ * An array or space separated string of node names of the elements to shiv.
262
+ * @memberOf html5
263
+ * @type Array|String
264
+ */
265
+ 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
266
+
267
+ /**
268
+ * current version of html5shiv
269
+ */
270
+ 'version': version,
271
+
272
+ /**
273
+ * A flag to indicate that the HTML5 style sheet should be inserted.
274
+ * @memberOf html5
275
+ * @type Boolean
276
+ */
277
+ 'shivCSS': (options.shivCSS !== false),
278
+
279
+ /**
280
+ * Is equal to true if a browser supports creating unknown/HTML5 elements
281
+ * @memberOf html5
282
+ * @type boolean
283
+ */
284
+ 'supportsUnknownElements': supportsUnknownElements,
285
+
286
+ /**
287
+ * A flag to indicate that the document's `createElement` and `createDocumentFragment`
288
+ * methods should be overwritten.
289
+ * @memberOf html5
290
+ * @type Boolean
291
+ */
292
+ 'shivMethods': (options.shivMethods !== false),
293
+
294
+ /**
295
+ * A string to describe the type of `html5` object ("default" or "default print").
296
+ * @memberOf html5
297
+ * @type String
298
+ */
299
+ 'type': 'default',
300
+
301
+ // shivs the document according to the specified `html5` object options
302
+ 'shivDocument': shivDocument,
303
+
304
+ //creates a shived element
305
+ createElement: createElement,
306
+
307
+ //creates a shived documentFragment
308
+ createDocumentFragment: createDocumentFragment,
309
+
310
+ //extends list of elements
311
+ addElements: addElements
312
+ };
313
+
314
+ /*--------------------------------------------------------------------------*/
315
+
316
+ // expose html5
317
+ window.html5 = html5;
318
+
319
+ // shiv the document
320
+ shivDocument(document);
321
+
322
+ /*------------------------------- Print Shiv -------------------------------*/
323
+
324
+ /** Used to filter media types */
325
+ var reMedia = /^$|\b(?:all|print)\b/;
326
+
327
+ /** Used to namespace printable elements */
328
+ var shivNamespace = 'html5shiv';
329
+
330
+ /** Detect whether the browser supports shivable style sheets */
331
+ var supportsShivableSheets = !supportsUnknownElements && (function() {
332
+ // assign a false negative if unable to shiv
333
+ var docEl = document.documentElement;
334
+ return !(
335
+ typeof document.namespaces == 'undefined' ||
336
+ typeof document.parentWindow == 'undefined' ||
337
+ typeof docEl.applyElement == 'undefined' ||
338
+ typeof docEl.removeNode == 'undefined' ||
339
+ typeof window.attachEvent == 'undefined'
340
+ );
341
+ }());
342
+
343
+ /*--------------------------------------------------------------------------*/
344
+
345
+ /**
346
+ * Wraps all HTML5 elements in the given document with printable elements.
347
+ * (eg. the "header" element is wrapped with the "html5shiv:header" element)
348
+ * @private
349
+ * @param {Document} ownerDocument The document.
350
+ * @returns {Array} An array wrappers added.
351
+ */
352
+ function addWrappers(ownerDocument) {
353
+ var node,
354
+ nodes = ownerDocument.getElementsByTagName('*'),
355
+ index = nodes.length,
356
+ reElements = RegExp('^(?:' + getElements().join('|') + ')$', 'i'),
357
+ result = [];
358
+
359
+ while (index--) {
360
+ node = nodes[index];
361
+ if (reElements.test(node.nodeName)) {
362
+ result.push(node.applyElement(createWrapper(node)));
363
+ }
364
+ }
365
+ return result;
366
+ }
367
+
368
+ /**
369
+ * Creates a printable wrapper for the given element.
370
+ * @private
371
+ * @param {Element} element The element.
372
+ * @returns {Element} The wrapper.
373
+ */
374
+ function createWrapper(element) {
375
+ var node,
376
+ nodes = element.attributes,
377
+ index = nodes.length,
378
+ wrapper = element.ownerDocument.createElement(shivNamespace + ':' + element.nodeName);
379
+
380
+ // copy element attributes to the wrapper
381
+ while (index--) {
382
+ node = nodes[index];
383
+ node.specified && wrapper.setAttribute(node.nodeName, node.nodeValue);
384
+ }
385
+ // copy element styles to the wrapper
386
+ wrapper.style.cssText = element.style.cssText;
387
+ return wrapper;
388
+ }
389
+
390
+ /**
391
+ * Shivs the given CSS text.
392
+ * (eg. header{} becomes html5shiv\:header{})
393
+ * @private
394
+ * @param {String} cssText The CSS text to shiv.
395
+ * @returns {String} The shived CSS text.
396
+ */
397
+ function shivCssText(cssText) {
398
+ var pair,
399
+ parts = cssText.split('{'),
400
+ index = parts.length,
401
+ reElements = RegExp('(^|[\\s,>+~])(' + getElements().join('|') + ')(?=[[\\s,>+~#.:]|$)', 'gi'),
402
+ replacement = '$1' + shivNamespace + '\\:$2';
403
+
404
+ while (index--) {
405
+ pair = parts[index] = parts[index].split('}');
406
+ pair[pair.length - 1] = pair[pair.length - 1].replace(reElements, replacement);
407
+ parts[index] = pair.join('}');
408
+ }
409
+ return parts.join('{');
410
+ }
411
+
412
+ /**
413
+ * Removes the given wrappers, leaving the original elements.
414
+ * @private
415
+ * @params {Array} wrappers An array of printable wrappers.
416
+ */
417
+ function removeWrappers(wrappers) {
418
+ var index = wrappers.length;
419
+ while (index--) {
420
+ wrappers[index].removeNode();
421
+ }
422
+ }
423
+
424
+ /*--------------------------------------------------------------------------*/
425
+
426
+ /**
427
+ * Shivs the given document for print.
428
+ * @memberOf html5
429
+ * @param {Document} ownerDocument The document to shiv.
430
+ * @returns {Document} The shived document.
431
+ */
432
+ function shivPrint(ownerDocument) {
433
+ var shivedSheet,
434
+ wrappers,
435
+ data = getExpandoData(ownerDocument),
436
+ namespaces = ownerDocument.namespaces,
437
+ ownerWindow = ownerDocument.parentWindow;
438
+
439
+ if (!supportsShivableSheets || ownerDocument.printShived) {
440
+ return ownerDocument;
441
+ }
442
+ if (typeof namespaces[shivNamespace] == 'undefined') {
443
+ namespaces.add(shivNamespace);
444
+ }
445
+
446
+ function removeSheet() {
447
+ clearTimeout(data._removeSheetTimer);
448
+ if (shivedSheet) {
449
+ shivedSheet.removeNode(true);
450
+ }
451
+ shivedSheet= null;
452
+ }
453
+
454
+ ownerWindow.attachEvent('onbeforeprint', function() {
455
+
456
+ removeSheet();
457
+
458
+ var imports,
459
+ length,
460
+ sheet,
461
+ collection = ownerDocument.styleSheets,
462
+ cssText = [],
463
+ index = collection.length,
464
+ sheets = Array(index);
465
+
466
+ // convert styleSheets collection to an array
467
+ while (index--) {
468
+ sheets[index] = collection[index];
469
+ }
470
+ // concat all style sheet CSS text
471
+ while ((sheet = sheets.pop())) {
472
+ // IE does not enforce a same origin policy for external style sheets...
473
+ // but has trouble with some dynamically created stylesheets
474
+ if (!sheet.disabled && reMedia.test(sheet.media)) {
475
+
476
+ try {
477
+ imports = sheet.imports;
478
+ length = imports.length;
479
+ } catch(er){
480
+ length = 0;
481
+ }
482
+
483
+ for (index = 0; index < length; index++) {
484
+ sheets.push(imports[index]);
485
+ }
486
+
487
+ try {
488
+ cssText.push(sheet.cssText);
489
+ } catch(er){}
490
+ }
491
+ }
492
+
493
+ // wrap all HTML5 elements with printable elements and add the shived style sheet
494
+ cssText = shivCssText(cssText.reverse().join(''));
495
+ wrappers = addWrappers(ownerDocument);
496
+ shivedSheet = addStyleSheet(ownerDocument, cssText);
497
+
498
+ });
499
+
500
+ ownerWindow.attachEvent('onafterprint', function() {
501
+ // remove wrappers, leaving the original elements, and remove the shived style sheet
502
+ removeWrappers(wrappers);
503
+ clearTimeout(data._removeSheetTimer);
504
+ data._removeSheetTimer = setTimeout(removeSheet, 500);
505
+ });
506
+
507
+ ownerDocument.printShived = true;
508
+ return ownerDocument;
509
+ }
510
+
511
+ /*--------------------------------------------------------------------------*/
512
+
513
+ // expose API
514
+ html5.type += ' print';
515
+ html5.shivPrint = shivPrint;
516
+
517
+ // shiv for print
518
+ shivPrint(document);
519
+
520
+ }(this, document));