staple 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/Gemfile +13 -0
  4. data/LICENSE.md +23 -0
  5. data/README.md +51 -0
  6. data/Rakefile +0 -0
  7. data/config.rb +24 -0
  8. data/lib/snippet_helpers.rb +69 -0
  9. data/lib/staple/import_generator.rb +50 -0
  10. data/lib/staple/list_generator.rb +22 -0
  11. data/lib/staple.rb +2 -0
  12. data/source/CNAME +1 -0
  13. data/source/_accordion.html.erb +24 -0
  14. data/source/_accordion_tabs.html.erb +26 -0
  15. data/source/_accordion_tabs_minimal.html.erb +26 -0
  16. data/source/_badges.html.erb +7 -0
  17. data/source/_breadcrumbs.html.erb +7 -0
  18. data/source/_browser.html.erb +29 -0
  19. data/source/_button_group.html.erb +18 -0
  20. data/source/_cards.html.erb +59 -0
  21. data/source/_centered_navigation.html.erb +38 -0
  22. data/source/_code.html.erb +10 -0
  23. data/source/_comment.html.erb +21 -0
  24. data/source/_device.html.erb +10 -0
  25. data/source/_dropdown.html.erb +12 -0
  26. data/source/_expander.html.erb +6 -0
  27. data/source/_flashes.html.erb +15 -0
  28. data/source/_footer.html.erb +28 -0
  29. data/source/_footer_2.html.erb +33 -0
  30. data/source/_grid_items.html.erb +37 -0
  31. data/source/_grid_items_lines.html.erb +44 -0
  32. data/source/_hero.html.erb +11 -0
  33. data/source/_hover_tile_animation.html.erb +11 -0
  34. data/source/_icon_bullet_points.html.erb +30 -0
  35. data/source/_image_gradient_dynamic.html.erb +7 -0
  36. data/source/_intro_text.html.erb +6 -0
  37. data/source/_label_alerts.html.erb +5 -0
  38. data/source/_modal.html.erb +14 -0
  39. data/source/_navigation.html.erb +44 -0
  40. data/source/_pagination.html.erb +17 -0
  41. data/source/_progress_bar.html.erb +3 -0
  42. data/source/_progress_bar_indication.html.erb +5 -0
  43. data/source/_search_bar.html.erb +8 -0
  44. data/source/_search_tools.html.erb +58 -0
  45. data/source/_side_image.html.erb +10 -0
  46. data/source/_sliding_menu.html.erb +13 -0
  47. data/source/_snippet.html.erb +4 -0
  48. data/source/_switch.html.erb +4 -0
  49. data/source/_tables.html.erb +31 -0
  50. data/source/_tables_minimal.html.erb +31 -0
  51. data/source/_texture-legend.html.erb +24 -0
  52. data/source/_textures.html.erb +4 -0
  53. data/source/_tooltip.html.erb +6 -0
  54. data/source/_type_system_geometric.html.erb +18 -0
  55. data/source/_type_system_rounded.html.erb +18 -0
  56. data/source/_type_system_sans.html.erb +18 -0
  57. data/source/_type_system_serif.html.erb +19 -0
  58. data/source/_type_system_slab.html.erb +18 -0
  59. data/source/_type_system_traditional.html.erb +18 -0
  60. data/source/_vertical_tabs.html.erb +30 -0
  61. data/source/_video.html.erb +5 -0
  62. data/source/components.html.erb +174 -0
  63. data/source/index.html.erb +162 -0
  64. data/source/javascripts/all.js +11 -0
  65. data/source/javascripts/jquery.erToc.js +477 -0
  66. data/source/javascripts/jquery.glide.js +941 -0
  67. data/source/javascripts/staple/accordion.js +5 -0
  68. data/source/javascripts/staple/accordion_tabs.js +19 -0
  69. data/source/javascripts/staple/accordion_tabs_minimal.js +19 -0
  70. data/source/javascripts/staple/centered_navigation.js +14 -0
  71. data/source/javascripts/staple/dropdown.js +9 -0
  72. data/source/javascripts/staple/expander.js +53 -0
  73. data/source/javascripts/staple/navigation.js +23 -0
  74. data/source/javascripts/staple/search_tools.js +110 -0
  75. data/source/javascripts/staple/sliding_menu.js +13 -0
  76. data/source/javascripts/staple/vertical_tabs.js +32 -0
  77. data/source/layouts/layout.erb +1 -0
  78. data/source/refills-hero.html.erb +7 -0
  79. data/source/refills-menu.html.erb +5 -0
  80. data/source/refills-page-scripts.html.erb +66 -0
  81. data/source/stylesheets/_bourbon-nav.scss +86 -0
  82. data/source/stylesheets/_normalize.scss +425 -0
  83. data/source/stylesheets/_refills-nav.scss +102 -0
  84. data/source/stylesheets/_refills-styles.scss +543 -0
  85. data/source/stylesheets/all.scss +61 -0
  86. data/source/stylesheets/staple/_accordion-tabs-minimal.scss +60 -0
  87. data/source/stylesheets/staple/_accordion-tabs.scss +88 -0
  88. data/source/stylesheets/staple/_accordion.scss +55 -0
  89. data/source/stylesheets/staple/_badges.scss +44 -0
  90. data/source/stylesheets/staple/_breadcrumbs.scss +84 -0
  91. data/source/stylesheets/staple/_browser.scss +141 -0
  92. data/source/stylesheets/staple/_button-group.scss +81 -0
  93. data/source/stylesheets/staple/_cards.scss +132 -0
  94. data/source/stylesheets/staple/_centered-navigation.scss +251 -0
  95. data/source/stylesheets/staple/_comment.scss +60 -0
  96. data/source/stylesheets/staple/_device.scss +83 -0
  97. data/source/stylesheets/staple/_dropdown.scss +127 -0
  98. data/source/stylesheets/staple/_expander.scss +30 -0
  99. data/source/stylesheets/staple/_flashes.scss +29 -0
  100. data/source/stylesheets/staple/_footer-2.scss +117 -0
  101. data/source/stylesheets/staple/_footer.scss +76 -0
  102. data/source/stylesheets/staple/_grid-items-lines.scss +86 -0
  103. data/source/stylesheets/staple/_grid-items.scss +97 -0
  104. data/source/stylesheets/staple/_hero.scss +54 -0
  105. data/source/stylesheets/staple/_hover-tile-animation.scss +52 -0
  106. data/source/stylesheets/staple/_icon-bullet-points.scss +63 -0
  107. data/source/stylesheets/staple/_image-gradient-dynamic.scss +59 -0
  108. data/source/stylesheets/staple/_intro-text.scss +67 -0
  109. data/source/stylesheets/staple/_label-alerts.scss +11 -0
  110. data/source/stylesheets/staple/_modal.scss +147 -0
  111. data/source/stylesheets/staple/_navigation.scss +329 -0
  112. data/source/stylesheets/staple/_pagination.scss +51 -0
  113. data/source/stylesheets/staple/_progress-bar-indication.scss +39 -0
  114. data/source/stylesheets/staple/_progress-bar.scss +83 -0
  115. data/source/stylesheets/staple/_search-bar.scss +40 -0
  116. data/source/stylesheets/staple/_search-tools.scss +67 -0
  117. data/source/stylesheets/staple/_side-image.scss +59 -0
  118. data/source/stylesheets/staple/_sliding-menu.scss +63 -0
  119. data/source/stylesheets/staple/_switch.scss +77 -0
  120. data/source/stylesheets/staple/_tables-minimal.scss +60 -0
  121. data/source/stylesheets/staple/_tables.scss +88 -0
  122. data/source/stylesheets/staple/_texture-legend.scss +182 -0
  123. data/source/stylesheets/staple/_textures.scss +119 -0
  124. data/source/stylesheets/staple/_tooltip.scss +57 -0
  125. data/source/stylesheets/staple/_type-system-geometric.scss +103 -0
  126. data/source/stylesheets/staple/_type-system-rounded.scss +107 -0
  127. data/source/stylesheets/staple/_type-system-sans.scss +110 -0
  128. data/source/stylesheets/staple/_type-system-serif.scss +111 -0
  129. data/source/stylesheets/staple/_type-system-slab.scss +107 -0
  130. data/source/stylesheets/staple/_type-system-traditional.scss +114 -0
  131. data/source/stylesheets/staple/_vertical-tabs.scss +105 -0
  132. data/source/stylesheets/staple/_video.scss +21 -0
  133. data/source/type-systems.html.erb +67 -0
  134. data/source/vendor/javascripts/ZeroClipboard.min.js +9 -0
  135. data/source/vendor/javascripts/fixedsticky.js +185 -0
  136. data/source/vendor/javascripts/prism.js +13 -0
  137. data/source/vendor/javascripts/smooth-scroll.js +125 -0
  138. data/source/vendor/stylesheets/fixedsticky.css +22 -0
  139. data/source/vendor/stylesheets/prism.css +126 -0
  140. data/staple.gemspec +19 -0
  141. metadata +184 -0
@@ -0,0 +1,477 @@
1
+ /*
2
+ * Plugin Name: erToc plugin for jQuery
3
+ * Version: 1.0
4
+ * Author: everright.chen
5
+ * Email: everright.chen@gmail.com
6
+ * Website: http://everright.cn
7
+ * Testd on: jQuery 1.4+, IE 6+, Firefox, Chrome, Safari, Oprea
8
+ * erToc is a jQuery plugin that will automatically generate a table of contents for your page.
9
+ */
10
+ (function($) {
11
+ $.erToc = function(el, options) {
12
+ var base = this;
13
+
14
+ base.$this = $(el);
15
+
16
+ base.init = function() {
17
+ // merege custom options
18
+ base.options = $.extend({}, $.erToc.defaults, options);
19
+
20
+ // get nodes length, break down when have't nodes
21
+ var nodeLength = base.options.nodes.length;
22
+ if (!nodeLength) {
23
+ return;
24
+ }
25
+
26
+ // get and set the last node id number from $body data
27
+ base.nodeNum = $('body').data(base.options.nodeNumKey) || 1;
28
+ // initialize current level, current original level, current original min level
29
+ base.currentLevel = base.currentOriLevel = base.currentOriMinLevel = 0;
30
+ // get is tiered output of toc
31
+ base.tiered = base.tieredList();
32
+ // initialize output for toc
33
+ base.toc = '';
34
+
35
+ // get start level, if value is string, then auto convert to int
36
+ if (base.options.startLevel != parseInt(base.options.startLevel)) {
37
+ base.options.startLevel = $.inArray(base.options.startLevel, base.options.nodes);
38
+ } else {
39
+ base.options.startLevel -= 1;
40
+ }
41
+
42
+ if (!base.options.startLevel || 0 > base.options.startLevel) {
43
+ base.options.startLevel = 0;
44
+ }
45
+
46
+ // get max level, if value is string, then auto convert to int, auto set max level to nodes length when max level less than start level
47
+ if (base.options.maxLevel != parseInt(base.options.maxLevel)) {
48
+ base.options.maxLevel = $.inArray(base.options.maxLevel, base.options.nodes) + 1;
49
+ }
50
+
51
+ if (!base.options.maxLevel || base.options.maxLevel < base.options.startLevel) {
52
+ base.options.maxLevel = base.options.nodes.length;
53
+ }
54
+
55
+ // check and reset the max leven with new computed
56
+ var validLevel = nodeLength - base.options.startLevel;
57
+
58
+ if (base.options.startLevel > base.options.maxLevel || validLevel < base.options.maxLevel) {
59
+ base.options.maxLevel = validLevel;
60
+ }
61
+
62
+ // automatically broken down when the nodes does not meet the conditions
63
+ if (!base.initNodes()) {
64
+ return;
65
+ }
66
+ // initialize and append to toc output
67
+ base.initToc();
68
+ // append toc content to toc target element
69
+ base.createToc();
70
+
71
+ // set main scroll object when toc scroll or go to top feature was enabled
72
+ if (base.options.goTop || base.options.tocScroll) {
73
+ base.$body = (window.opera) ? ('CSS1Compat' == document.compatMode ? $('html') : $('body')) : $('html, body');
74
+ }
75
+
76
+ // initialize go to top
77
+ if (false !== base.options.goTop) {
78
+ // set go to top object, if not set, then set with body object
79
+ base.$topNode = $(base.options.goTopNode);
80
+
81
+ if (!base.$topNode.length) {
82
+ base.$topNode = $('body');
83
+ }
84
+
85
+ base.options.goTopNodes = base.options.goTopNodes || 'auto';
86
+
87
+ if ('auto' === base.options.goTopNodes) {
88
+ base.$topNode.data('isGoTopPosition', 'yes');
89
+ }
90
+
91
+ base.addGoTop();
92
+ }
93
+ };
94
+
95
+ /*
96
+ * Prepare nodes
97
+ * Min & Max conditions
98
+ * Group nodes, sort nodes
99
+ */
100
+ base.initNodes = function() {
101
+ var defaultNodes = [];
102
+ for (var i = 0, len = base.options.nodes.length; i < len; i++) {
103
+ defaultNodes[i] = base.options.nodes[i];
104
+ }
105
+ var tag,
106
+ nodes = defaultNodes.splice(base.options.startLevel, base.options.maxLevel);
107
+ base.$nodes = base.$this.find(nodes.join(', '));
108
+
109
+ if (!base.$nodes.length || (base.options.nodeMin > 0 && base.$nodes.length < base.options.nodeMin)) {
110
+ return false;
111
+ }
112
+
113
+ if (base.options.nodeMax > 0) {
114
+ base.$nodes = base.$nodes.filter(':lt(' + base.options.nodeMax + ')');
115
+ }
116
+
117
+ base.nodes = {
118
+ 'ids': [],
119
+ 'classes': [],
120
+ 'sorts': {'ids': {}, 'classes': {}}
121
+ };
122
+
123
+ for (var i in nodes) {
124
+ if ('.' == nodes[i].substring(0, 1)) {
125
+ tag = nodes[i].substring(1);
126
+ base.nodes.classes.push(tag);
127
+ base.nodes.sorts.classes[tag] = i;
128
+ } else {
129
+ tag = nodes[i].toLowerCase();
130
+ base.nodes.ids.push(tag);
131
+ base.nodes.sorts.ids[tag] = i;
132
+ }
133
+ }
134
+
135
+ return true;
136
+ };
137
+
138
+ /*
139
+ * Prepare toc content
140
+ */
141
+ base.initToc = function() {
142
+ if (base.tiered) {
143
+ base.listO = '<' + base.options.tocListType + '>';
144
+ base.listC = '</' + base.options.tocListType + '>';
145
+ base.listEO = '<li>';
146
+ base.listEC = '</li>';
147
+ base.toc += base.listO + base.listEO;
148
+ }
149
+
150
+ var node, level, currentLevel;
151
+
152
+ var numCurrLabel = '';
153
+ if (true === base.options.numbered) {
154
+ var numPrevLevel = 0,
155
+ numLevelCount = {},
156
+ numPrefix = {},
157
+ numPrevPrefix = '',
158
+ numLastPrefix = '';
159
+ }
160
+
161
+ base.$nodes.addClass(base.options.nodeClass).each(function(i, obj) {
162
+ node = $(obj);
163
+ level = base.getLevel(node);
164
+ if (base.tiered) {
165
+ currentLevel = base.currentLevel;
166
+
167
+ if (0 == i) {
168
+ base.currentOriLevel = level;
169
+ base.currentOriMinLevel = level;
170
+ } else {
171
+ if (level > base.currentOriLevel) {
172
+ currentLevel = base.currentLevel + 1;
173
+ base.currentOriLevel = level;
174
+ } else if (level < base.currentOriLevel) {
175
+ currentLevel = level <= base.currentOriMinLevel ? 0 : level - base.currentOriMinLevel;
176
+ base.currentOriLevel = level;
177
+
178
+ if (level < base.currentOriMinLevel) {
179
+ base.currentOriMinLevel = level;
180
+ }
181
+ }
182
+
183
+ base.toc += base.formatLevel(currentLevel, false);
184
+ }
185
+
186
+ if (true === base.options.numbered) {
187
+ if (!numLevelCount[currentLevel] || numPrevLevel < currentLevel) {
188
+ numLevelCount[currentLevel] = 1;
189
+ } else {
190
+ numLevelCount[currentLevel] += 1;
191
+ }
192
+
193
+ if (numPrevLevel == currentLevel) {
194
+ numCurrLabel = numLastPrefix + numLevelCount[currentLevel];
195
+ } else {
196
+ if (numPrevLevel < currentLevel) {
197
+ numLastPrefix = numPrevPrefix + base.options.numberedJoin;
198
+ numPrefix[currentLevel] = numLastPrefix;
199
+ } else{
200
+ numLastPrefix = '';
201
+ }
202
+ numCurrLabel = (currentLevel == 0) ? numLevelCount[currentLevel] : numPrefix[currentLevel] + numLevelCount[currentLevel];
203
+
204
+ }
205
+ numPrevPrefix = numCurrLabel;
206
+ numCurrLabel = base.options.numberedPrefix + numCurrLabel + base.options.numberedSuffix;
207
+ numPrevLevel = currentLevel;
208
+ }
209
+ }
210
+
211
+ base.toc += base.formatLink(node, level, numCurrLabel);
212
+
213
+ if (base.tiered && ((i + 1) == base.$nodes.length)) {
214
+ base.toc += base.formatLevel(currentLevel, true);
215
+ }
216
+
217
+ base.currentLevel = currentLevel;
218
+ });
219
+
220
+ if (base.tiered) {
221
+ base.toc += base.listEC + base.listC;
222
+ }
223
+
224
+ // set last nodeNum for other erToc use
225
+ $('body').data(base.options.nodeNumKey, base.nodeNum);
226
+ };
227
+
228
+ /*
229
+ * Append toc to target element
230
+ * title, title enable clicked, toc element scroll
231
+ */
232
+ base.createToc = function() {
233
+ base.$target = $(base.options.tocTarget);
234
+ base.$toc = $('<div class="er_toc_content"></div>').html(base.toc);
235
+
236
+ if (!base.$target.length) {
237
+ base.$target = $('<div></div>').prependTo(base.$this);
238
+ }
239
+ if (base.options.tocClass) {
240
+ base.$target.addClass(base.options.tocClass);
241
+ }
242
+
243
+ base.$target.append(base.$toc);
244
+
245
+ // set toc title
246
+ var title = $.trim(base.options.tocTitle);
247
+
248
+ if (title.length) {
249
+ var $title = $('<div></div>').html(title).append('<span></span>'),
250
+ hasTitleClass = base.options.tocTitleClass.length;
251
+
252
+ if (hasTitleClass) {
253
+ $title.addClass(base.options.tocTitleClass);
254
+ }
255
+
256
+ // bind hide show event
257
+ if (true === base.options.tocControl) {
258
+ var titleOpenClass = hasTitleClass ? base.options.tocTitleClass + '_open' : 'er_toc_title_open',
259
+ titleCloseClass = hasTitleClass ? base.options.tocTitleClass + '_close' : 'er_toc_title_close';
260
+
261
+ $title.css('cursor', 'pointer').click(function() {
262
+ if ($(this).hasClass(titleOpenClass)) {
263
+ $(this).removeClass(titleOpenClass).addClass(titleCloseClass);
264
+ base.$toc.slideUp();
265
+ } else {
266
+ $(this).removeClass(titleCloseClass).addClass(titleOpenClass);
267
+ base.$toc.slideDown();
268
+ }
269
+ }).click();
270
+ }
271
+
272
+ $title.prependTo(base.$target);
273
+ }
274
+
275
+ // binkd click scroll when toc scroll is enabled
276
+ if (base.options.tocScroll) {
277
+ base.$toc.find('a').click(function() {
278
+ base.$body.animate({scrollTop: ($($(this).attr('href')).offset().top - base.options.goTopBaseHeight)}, base.options.scrollSpeed);
279
+ return false;
280
+ });
281
+ }
282
+ };
283
+
284
+ /*
285
+ * Bind goTop action to nodes which can random, all, custom elements
286
+ */
287
+ base.addGoTop = function() {
288
+ var top,
289
+ goTop,
290
+ text = (true === base.options.goTop) ? 'Top' : base.options.goTop;
291
+
292
+ if ('all' === base.options.goTopNodes) {
293
+ goTop = base.$nodes;
294
+ } else if ('auto' === base.options.goTopNodes) {
295
+ var currentTop,
296
+ filterNodes = [],
297
+ lastTop = 0,
298
+ preTop = base.getPositionToTop(base.$this),
299
+ depth = Math.round(base.$this.height() / base.$nodes.length);
300
+
301
+ if (base.options.goTopDepth > depth) {
302
+ depth = base.options.goTopDepth;
303
+ }
304
+
305
+ base.$nodes.each(function(i) {
306
+ currentTop = $(this).position().top - lastTop;
307
+
308
+ if (0 == i) {
309
+ currentTop += preTop;
310
+ }
311
+
312
+ if (currentTop >= depth) {
313
+ filterNodes.push('#' + $(this).attr('id'));
314
+ lastTop = $(this).position().top;
315
+ }
316
+ });
317
+
318
+ if (filterNodes.length) {
319
+ goTop = base.$nodes.filter(filterNodes.join(', '));
320
+ }
321
+ } else {
322
+ goTop = base.$nodes.filter(base.options.goTopNodes);
323
+ }
324
+
325
+ top = $('<a href="#" class="' + base.options.goTopClass + '" title="' + text + '">' + text + '</a>');
326
+ goTop.append(top);
327
+ goTop.children('a.' + base.options.goTopClass).click(function() {
328
+ base.$body.animate({scrollTop: (base.$topNode.offset().top - base.options.goTopBaseHeight)}, base.options.scrollSpeed);
329
+ return false;
330
+ });
331
+ };
332
+
333
+ /*
334
+ * Get node element in which level
335
+ */
336
+ base.getLevel = function(node) {
337
+ var n;
338
+
339
+ if (base.nodes.ids.length) {
340
+ n = node.get(0).nodeName.toLowerCase();
341
+
342
+ if ($.inArray(n, base.nodes.ids) >= 0) {
343
+ return base.nodes.sorts.ids[n];
344
+ }
345
+ }
346
+
347
+ if (base.nodes.classes.length) {
348
+ for(var i in base.nodes.classes) {
349
+ n = base.nodes.classes[i];
350
+
351
+ if (node.hasClass(n)) {
352
+ return base.nodes.sorts.classes[n];
353
+ }
354
+ }
355
+ }
356
+
357
+ return 0;
358
+ };
359
+
360
+ /*
361
+ * Toc output with tieredList
362
+ */
363
+ base.tieredList = function() {
364
+ var exist = $.inArray(base.options.tocListType, ['ul', 'ol']);
365
+ return exist < 0 ? false : true;
366
+ };
367
+
368
+ /*
369
+ * Get current obj to go to the top of the height
370
+ */
371
+ base.getPositionToTop = function($obj) {
372
+ var top = 0, end;
373
+
374
+ while($obj) {
375
+ end = ($obj.data('isGoTopPosition') && 'yes' === $obj.data('isGoTopPosition')) ? true : false;
376
+
377
+ if (!end) {
378
+ top += $obj.position().top;
379
+ $obj = $obj.parent();
380
+ } else {
381
+ $obj = null;
382
+ break;
383
+ }
384
+ }
385
+
386
+ return top;
387
+ };
388
+
389
+ /*
390
+ * Prepare toc each text with link
391
+ */
392
+ base.formatLink = function(node, level, label) {
393
+ var text = node.text(),
394
+ id = node.attr('id') || base.options.nodeIdPrefix + base.nodeNum,
395
+ style = (base.tiered ? '' : ' class="' + base.options.tocClassPrefix + level + '"');
396
+
397
+ node.attr('id', id);
398
+ base.nodeNum++;
399
+
400
+ return label + '<a href="#' + id + '" title="' + text + '"' + style + '>' + text + '</a>';
401
+ };
402
+
403
+ /*
404
+ * Format tag with levels
405
+ */
406
+ base.formatLevel = function(level, last) {
407
+ if (true !== last) {
408
+ last = false;
409
+ }
410
+
411
+ var output = (level > base.currentLevel) ? base.formatTag(base.currentLevel, level, !last) : base.formatTag(level, base.currentLevel) + ((true === last) ? base.formatTag(0, base.currentLevel) : base.listEC + base.listEO);
412
+
413
+ return output;
414
+ };
415
+
416
+ /*
417
+ * Format tag
418
+ * <ul><li>, </ul><ul>, </li><li>
419
+ */
420
+ base.formatTag = function(start, end, open) {
421
+ var tags = [];
422
+
423
+ if (true !== open) {
424
+ open = false;
425
+ }
426
+
427
+ for (var i = start; i < end; i++) {
428
+ tags.push(open ? base.listO : base.listC);
429
+ }
430
+
431
+ return (open ? tags.join(base.listEO) + base.listEO : base.listEC + tags.join(base.listEC));
432
+ };
433
+
434
+ // ready go
435
+ base.init();
436
+ };
437
+
438
+ /*
439
+ * erToc default options
440
+ */
441
+ $.erToc.defaults = {
442
+ startLevel: 'h5', // node name, class or node array subscript [0|1]...n
443
+ maxLevel: 'h6', // node name, class or node array subscript [0|1]...n
444
+ nodes: ['h5', 'h6'], // nodes for prepare toc, support class ['.p1', '.p2', '.p3', '.p4', '.p5', '.p6']
445
+ nodeMin: 0, // min nodes for toc
446
+ nodeMax: 0, // max nodes for toc
447
+ nodeClass: 'er_toc_tag',
448
+ nodeIdPrefix: 'er-toc-id-',
449
+ tocTarget: '', // which element the toc will be append
450
+ tocClass: 'er_toc',
451
+ tocTitle: 'Table of Contents', // title for toc, if set empty string, then title will be hidden
452
+ tocTitleClass: 'er_toc_title',
453
+ tocListType: 'ul', // toc output type, ul, li, others will only include text with link
454
+ tocControl: true, // if have toc title, then can set true to control toc hide or show
455
+ tocClassPrefix: 'er_toc_level_',
456
+ tocScroll: true, // enable toc can be scroll, true or false
457
+ goTop: true, // enable go to top action, true or false
458
+ goTopBaseHeight: 0, //if the top is floating to fixed, then it should reduce the height of the top
459
+ goTopNodes: 'auto', // bind to which nodes, auto, all, and custom elements
460
+ goTopDepth: 450, // if go to top nodes was set auto, then here is the depth for two elements
461
+ goTopClass: 'er_toc_top',
462
+ goTopNode: 'body', // go to top element
463
+ scrollSpeed: 1000, // scroll speed, n seconds, slow, fast
464
+ nodeNumKey: 'erTocNodeNum',
465
+ numbered: false,
466
+ numberedJoin: '.',
467
+ numberedPrefix: '',
468
+ numberedSuffix: ' '
469
+ };
470
+
471
+ $.fn.erToc = function(options) {
472
+ return this.each(function(i){
473
+ (new $.erToc(this, options));
474
+ });
475
+ };
476
+
477
+ })(jQuery);