techbubble 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +48 -0
  4. data/_includes/archive.html +15 -0
  5. data/_includes/callout.html +1 -0
  6. data/_includes/custom/getting_started_series.html +19 -0
  7. data/_includes/custom/getting_started_series_next.html +10 -0
  8. data/_includes/custom/series_acme.html +19 -0
  9. data/_includes/custom/series_acme_next.html +30 -0
  10. data/_includes/custom/sidebarconfigs.html +36 -0
  11. data/_includes/custom/usermap.html +14 -0
  12. data/_includes/custom/usermapcomplex.html +91 -0
  13. data/_includes/disqus.html +16 -0
  14. data/_includes/feedback.html +1 -0
  15. data/_includes/footer.html +9 -0
  16. data/_includes/google_analytics.html +6 -0
  17. data/_includes/head.html +36 -0
  18. data/_includes/head_print.html +33 -0
  19. data/_includes/image.html +1 -0
  20. data/_includes/important.html +1 -0
  21. data/_includes/initialize_shuffle.html +130 -0
  22. data/_includes/inline_image.html +1 -0
  23. data/_includes/links.html +44 -0
  24. data/_includes/note.html +1 -0
  25. data/_includes/sidebar.html +56 -0
  26. data/_includes/taglogic.html +32 -0
  27. data/_includes/tip.html +1 -0
  28. data/_includes/toc.html +21 -0
  29. data/_includes/topnav.html +75 -0
  30. data/_includes/warning.html +1 -0
  31. data/_layouts/default.html +80 -0
  32. data/_layouts/default_print.html +25 -0
  33. data/_layouts/none.html +3 -0
  34. data/_layouts/page.html +70 -0
  35. data/_layouts/page_print.html +15 -0
  36. data/_layouts/post.html +41 -0
  37. data/_sass/bootstrap.min.css +5 -0
  38. data/_sass/customstyles.css +1181 -0
  39. data/_sass/font-awesome.min.css +4 -0
  40. data/_sass/fonts/FontAwesome.otf +0 -0
  41. data/_sass/fonts/fontawesome-webfont.eot +0 -0
  42. data/_sass/fonts/fontawesome-webfont.svg +565 -0
  43. data/_sass/fonts/fontawesome-webfont.ttf +0 -0
  44. data/_sass/fonts/fontawesome-webfont.woff +0 -0
  45. data/_sass/fonts/fontawesome-webfont.woff2 +0 -0
  46. data/_sass/lavish-bootstrap.css +5898 -0
  47. data/_sass/modern-business.css +93 -0
  48. data/_sass/printstyles.css +160 -0
  49. data/_sass/syntax.css +60 -0
  50. data/_sass/theme-blue.css +102 -0
  51. data/_sass/theme-green.css +99 -0
  52. data/assets/js/customscripts.js +55 -0
  53. data/assets/js/jekyll-search.js +1 -0
  54. data/assets/js/jquery.ba-throttle-debounce.min.js +9 -0
  55. data/assets/js/jquery.localScroll.min.js +7 -0
  56. data/assets/js/jquery.navgoco.min.js +8 -0
  57. data/assets/js/jquery.scrollTo.min.js +7 -0
  58. data/assets/js/jquery.shuffle.min.js +1588 -0
  59. data/assets/js/mydoc_scroll.html +240 -0
  60. data/assets/js/toc.js +82 -0
  61. metadata +145 -0
@@ -0,0 +1,130 @@
1
+ <script type="text/javascript">
2
+ $(document).ready(function() {
3
+ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3,h4' });
4
+ });
5
+
6
+ </script>
7
+ <!-- shuffle -->
8
+ <script>
9
+ var shuffleme = (function( $ ) {
10
+ 'use strict';
11
+
12
+ var $grid = $('#grid'),
13
+ $filterOptions = $('.filter-options'),
14
+ $sizer = $grid.find('.shuffle_sizer'),
15
+
16
+ init = function() {
17
+
18
+ // None of these need to be executed synchronously
19
+ setTimeout(function() {
20
+ listen();
21
+ setupFilters();
22
+ }, 100);
23
+
24
+ // instantiate the plugin
25
+ $grid.shuffle({
26
+ itemSelector: '[class*="col-"]',
27
+ sizer: $sizer
28
+ });
29
+ },
30
+
31
+ // Set up button clicks
32
+ setupFilters = function() {
33
+ var $btns = $filterOptions.children();
34
+ $btns.on('click', function() {
35
+ var $this = $(this),
36
+ isActive = $this.hasClass( 'active' ),
37
+ group = isActive ? 'all' : $this.data('group');
38
+
39
+ // Hide current label, show current label in title
40
+ if ( !isActive ) {
41
+ $('.filter-options .active').removeClass('active');
42
+ }
43
+
44
+ $this.toggleClass('active');
45
+
46
+ // Filter elements
47
+ $grid.shuffle( 'shuffle', group );
48
+ });
49
+
50
+ $btns = null;
51
+ },
52
+
53
+ // Re layout shuffle when images load. This is only needed
54
+ // below 768 pixels because the .picture-item height is auto and therefore
55
+ // the height of the picture-item is dependent on the image
56
+ // I recommend using imagesloaded to determine when an image is loaded
57
+ // but that doesn't support IE7
58
+ listen = function() {
59
+ var debouncedLayout = $.throttle( 300, function() {
60
+ $grid.shuffle('update');
61
+ });
62
+
63
+ // Get all images inside shuffle
64
+ $grid.find('img').each(function() {
65
+ var proxyImage;
66
+
67
+ // Image already loaded
68
+ if ( this.complete && this.naturalWidth !== undefined ) {
69
+ return;
70
+ }
71
+
72
+ // If none of the checks above matched, simulate loading on detached element.
73
+ proxyImage = new Image();
74
+ $( proxyImage ).on('load', function() {
75
+ $(this).off('load');
76
+ debouncedLayout();
77
+ });
78
+
79
+ proxyImage.src = this.src;
80
+ });
81
+
82
+ // Because this method doesn't seem to be perfect.
83
+ setTimeout(function() {
84
+ debouncedLayout();
85
+ }, 500);
86
+ };
87
+
88
+ return {
89
+ init: init
90
+ };
91
+ }( jQuery ));
92
+
93
+
94
+
95
+ $(document).ready(function() {
96
+ shuffleme.init();
97
+ });
98
+
99
+ </script>
100
+
101
+ <!-- new attempt-->
102
+
103
+ <script>
104
+ $(document).ready(function() {
105
+
106
+ /* initialize shuffle plugin */
107
+ var $grid = $('#grid');
108
+
109
+ $grid.shuffle({
110
+ itemSelector: '.item' // the selector for the items in the grid
111
+ });
112
+
113
+ });</script>
114
+
115
+ <script>
116
+ $('#filter a').click(function (e) {
117
+ e.preventDefault();
118
+
119
+ // set active class
120
+ $('#filter a').removeClass('active');
121
+ $(this).addClass('active');
122
+
123
+ // get group name from clicked item
124
+ var groupName = $(this).attr('data-group');
125
+
126
+ // reshuffle grid
127
+ $grid.shuffle('shuffle', groupName );
128
+ });</script>
129
+
130
+
@@ -0,0 +1 @@
1
+ <img class="inline" src="images/{{include.file}}" alt="{{include.alt}}" />
@@ -0,0 +1,44 @@
1
+ {% comment %}Get links from each sidebar, as listed in the _config.yml file under sidebars{% endcomment %}
2
+
3
+ {% for sidebar in site.sidebars %}
4
+ {% for entry in site.data.sidebars[sidebar].entries %}
5
+ {% for folder in entry.folders %}
6
+ {% for folderitem in folder.folderitems %}
7
+ {% if folderitem.url contains "html#" %}
8
+ [{{folderitem.url | remove: "/" }}]: {{folderitem.url | remove: "/"}}
9
+ {% else %}
10
+ [{{folderitem.url | remove: "/" | remove: ".html"}}]: {{folderitem.url | remove: "/"}}
11
+ {% endif %}
12
+ {% for subfolders in folderitem.subfolders %}
13
+ {% for subfolderitem in subfolders.subfolderitems %}
14
+ [{{subfolderitem.url | remove: "/" | remove: ".html"}}]: {{subfolderitem.url | remove: "/"}}
15
+ {% endfor %}
16
+ {% endfor %}
17
+ {% endfor %}
18
+ {% endfor %}
19
+ {% endfor %}
20
+ {% endfor %}
21
+
22
+
23
+ {% comment %} Get links from topnav {% endcomment %}
24
+
25
+ {% for entry in site.data.topnav.topnav %}
26
+ {% for item in entry.items %}
27
+ {% if item.external_url == null %}
28
+ [{{item.url | remove: "/" | remove: ".html"}}]: {{item.url | remove: "/"}}
29
+ {% endif %}
30
+ {% endfor %}
31
+ {% endfor %}
32
+
33
+ {% comment %}Get links from topnav dropdowns {% endcomment %}
34
+
35
+ {% for entry in site.data.topnav.topnav_dropdowns %}
36
+ {% for folder in entry.folders %}
37
+ {% for folderitem in folder.folderitems %}
38
+ {% if folderitem.external_url == null %}
39
+ [{{folderitem.url | remove: "/" | remove: ".html"}}]: {{folderitem.url | remove: "/"}}
40
+ {% endif %}
41
+ {% endfor %}
42
+ {% endfor %}
43
+ {% endfor %}
44
+
@@ -0,0 +1 @@
1
+ <div markdown="span" class="alert alert-info" role="alert"><i class="fa fa-info-circle"></i> <b>Note:</b> {{include.content}}</div>
@@ -0,0 +1,56 @@
1
+ {% include custom/sidebarconfigs.html %}
2
+
3
+ <ul id="mysidebar" class="nav">
4
+ <li class="sidebarTitle">{{sidebar[0].product}} {{sidebar[0].version}}</li>
5
+ {% for entry in sidebar %}
6
+ {% for folder in entry.folders %}
7
+ {% if folder.output contains "web" %}
8
+ <li>
9
+ <a href="#">{{ folder.title }}</a>
10
+ <ul>
11
+ {% for folderitem in folder.folderitems %}
12
+ {% if folderitem.output contains "web" %}
13
+ {% if folderitem.external_url %}
14
+ <li><a href="{{folderitem.external_url}}" target="_blank">{{folderitem.title}}</a></li>
15
+ {% elsif page.url == folderitem.url %}
16
+ <li class="active"><a href="{{folderitem.url | remove: "/"}}">{{folderitem.title}}</a></li>
17
+ {% else %}
18
+ <li><a href="{{folderitem.url | remove: "/"}}">{{folderitem.title}}</a></li>
19
+ {% endif %}
20
+ {% for subfolders in folderitem.subfolders %}
21
+ {% if subfolders.output contains "web" %}
22
+ <li class="subfolders">
23
+ <a href="#">{{ subfolders.title }}</a>
24
+ <ul>
25
+ {% for subfolderitem in subfolders.subfolderitems %}
26
+ {% if subfolderitem.output contains "web" %}
27
+ {% if subfolderitem.external_url %}
28
+ <li><a href="{{subfolderitem.external_url}}" target="_blank">{{subfolderitem.title}}</a></li>
29
+ {% elsif page.url == subfolderitem.url %}
30
+ <li class="active"><a href="{{subfolderitem.url | remove: "/"}}">{{subfolderitem.title}}</a></li>
31
+ {% else %}
32
+ <li><a href="{{subfolderitem.url | remove: "/"}}">{{subfolderitem.title}}</a></li>
33
+ {% endif %}
34
+ {% endif %}
35
+ {% endfor %}
36
+ </ul>
37
+ </li>
38
+ {% endif %}
39
+ {% endfor %}
40
+ {% endif %}
41
+ {% endfor %}
42
+ </ul>
43
+ {% endif %}
44
+ {% endfor %}
45
+ {% endfor %}
46
+ <!-- if you aren't using the accordion, uncomment this block:
47
+ <p class="external">
48
+ <a href="#" id="collapseAll">Collapse All</a> | <a href="#" id="expandAll">Expand All</a>
49
+ </p>
50
+ -->
51
+ </li>
52
+ </ul>
53
+ </div>
54
+
55
+ <!-- this highlights the active parent class in the navgoco sidebar. this is critical so that the parent expands when you're viewing a page. This must appear below the sidebar code above. Otherwise, if placed inside customscripts.js, the script runs before the sidebar code runs and the class never gets inserted.-->
56
+ <script>$("li.active").parents('li').toggleClass("active");</script>
@@ -0,0 +1,32 @@
1
+ <p>The following pages and posts are tagged with <button type="button" style="cursor: default" class="btn btn-default navbar-btn">{{page.tagName}}</button></p>
2
+ <table><thead><tr><th>Title</th><th>Type</th><th>Excerpt</th></tr></thead>
3
+ <tbody>
4
+ {% assign thisTag = page.tagName %}
5
+ {% for page in site.pages %}
6
+ {% for tag in page.tags %}
7
+ {% if tag == thisTag %}
8
+
9
+ <tr><td><a href="{{ page.url | remove: "/" }}">{{page.title}}</a></td>
10
+ <td><span class="label label-default">Page</span></td>
11
+ <td>{% if page.summary %} {{ page.summary | strip_html | strip_newlines | truncate: 160 }} {% else %} {{ page.content | truncatewords: 50 | strip_html }} {% endif %}</td>
12
+ </tr>
13
+ {% endif %}
14
+ {% endfor %}
15
+ {% endfor %}
16
+
17
+ {% assign thisTag = page.tagName %}
18
+ {% for post in site.posts %}
19
+ {% for tag in post.tags %}
20
+ {% if tag == thisTag %}
21
+
22
+ <tr><td><a href="{{ post.url | remove: "/" }}">{{post.title}}</a></td>
23
+ <td><span class="label label-primary">Post</span></td>
24
+ <td>{% if post.summary %} {{ post.summary | strip_html | strip_newlines | truncate: 160 }} {% else %} {{ post.content | truncatewords: 50 | strip_html }} {% endif %}</td>
25
+ </tr>
26
+ {% endif %}
27
+ {% endfor %}
28
+ {% endfor %}
29
+
30
+ </tbody>
31
+ </table>
32
+
@@ -0,0 +1 @@
1
+ <div markdown="span" class="alert alert-success" role="alert"><i class="fa fa-check-square-o"></i> <b>Tip:</b> {{include.content}}</div>
@@ -0,0 +1,21 @@
1
+
2
+ <!-- this handles the automatic toc. use ## for subheads to auto-generate the on-page minitoc. if you use html tags, you must supply an ID for the heading element in order for it to appear in the minitoc. -->
3
+ <script>
4
+ $( document ).ready(function() {
5
+ // Handler for .ready() called.
6
+
7
+ $('#toc').toc({ minimumHeaders: 0, listType: 'ul', showSpeed: 0, headers: 'h2,h3,h4' });
8
+
9
+ /* this offset helps account for the space taken up by the floating toolbar. */
10
+ $('#toc').on('click', 'a', function() {
11
+ var target = $(this.getAttribute('href'))
12
+ , scroll_target = target.offset().top
13
+
14
+ $(window).scrollTop(scroll_target - 10);
15
+ return false
16
+ })
17
+
18
+ });
19
+ </script>
20
+
21
+ <div id="toc"></div>
@@ -0,0 +1,75 @@
1
+ <!-- Navigation -->
2
+ <nav class="navbar navbar-inverse navbar-fixed-top">
3
+ <div class="container topnavlinks">
4
+ <div class="navbar-header">
5
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
6
+ <span class="sr-only">Toggle navigation</span>
7
+ <span class="icon-bar"></span>
8
+ <span class="icon-bar"></span>
9
+ <span class="icon-bar"></span>
10
+ </button>
11
+ <a class="fa fa-home fa-lg navbar-brand" href="index.html">&nbsp;<span class="projectTitle"> {{site.topnav_title}}</span></a>
12
+ </div>
13
+ <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
14
+ <ul class="nav navbar-nav navbar-right">
15
+ <!-- entries without drop-downs appear here -->
16
+ {% for entry in site.data.topnav.topnav %}
17
+ {% for item in entry.items %}
18
+ {% if item.external_url %}
19
+ <li><a href="{{item.external_url}}" target="_blank">{{item.title}}</a></li>
20
+ {% elsif page.url contains item.url %}
21
+ <li class="active"><a href="{{item.url | remove: "/"}}">{{item.title}}</a></li>
22
+ {% else %}
23
+ <li><a href="{{item.url | remove: "/"}}">{{item.title}}</a></li>
24
+ {% endif %}
25
+ {% endfor %}
26
+ {% endfor %}
27
+ <!-- entries with drop-downs appear here -->
28
+ <!-- conditional logic to control which topnav appears for the audience defined in the configuration file.-->
29
+ {% for entry in site.data.topnav.topnav_dropdowns %}
30
+ {% for folder in entry.folders %}
31
+ <li class="dropdown">
32
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ folder.title }}<b class="caret"></b></a>
33
+ <ul class="dropdown-menu">
34
+ {% for folderitem in folder.folderitems %}
35
+ {% if folderitem.external_url %}
36
+ <li><a href="{{folderitem.external_url}}" target="_blank">{{folderitem.title}}</a></li>
37
+ {% elsif page.url contains folderitem.url %}
38
+ <li class="dropdownActive"><a href="{{folderitem.url | remove: "/"}}">{{folderitem.title}}</a></li>
39
+ {% else %}
40
+ <li><a href="{{folderitem.url | remove: "/"}}">{{folderitem.title}}</a></li>
41
+ {% endif %}
42
+ {% endfor %}
43
+ </ul>
44
+ </li>
45
+ {% endfor %}
46
+ {% endfor %}
47
+ {% if site.feedback_disable == null or site.feedback_disable == false %}
48
+ {% include feedback.html %}
49
+ {% endif %}
50
+ <!--comment out this block if you want to hide search-->
51
+ <li>
52
+ <!--start search-->
53
+ <div id="search-demo-container">
54
+ <input type="text" id="search-input" placeholder="{{site.data.strings.search_placeholder_text}}">
55
+ <ul id="results-container"></ul>
56
+ </div>
57
+ <script src="{{ "js/jekyll-search.js"}}" type="text/javascript"></script>
58
+ <script type="text/javascript">
59
+ SimpleJekyllSearch.init({
60
+ searchInput: document.getElementById('search-input'),
61
+ resultsContainer: document.getElementById('results-container'),
62
+ dataSource: '{{ "search.json" }}',
63
+ searchResultTemplate: '<li><a href="{url}" title="{{page.title | replace: "'", "\"}}">{title}</a></li>',
64
+ noResultsText: '{{site.data.strings.search_no_results_text}}',
65
+ limit: 10,
66
+ fuzzy: true,
67
+ })
68
+ </script>
69
+ <!--end search-->
70
+ </li>
71
+ </ul>
72
+ </div>
73
+ </div>
74
+ <!-- /.container -->
75
+ </nav>
@@ -0,0 +1 @@
1
+ <div markdown="span" class="alert alert-danger" role="alert"><i class="fa fa-exclamation-circle"></i> <b>Warning:</b> {{include.content}}</div>
@@ -0,0 +1,80 @@
1
+ <!DOCTYPE html>
2
+ <head>
3
+ {% include head.html %}
4
+ <script>
5
+ $(document).ready(function() {
6
+ // Initialize navgoco with default options
7
+ $("#mysidebar").navgoco({
8
+ caretHtml: '',
9
+ accordion: true,
10
+ openClass: 'active', // open
11
+ save: false, // leave false or nav highlighting doesn't work right
12
+ cookie: {
13
+ name: 'navgoco',
14
+ expires: false,
15
+ path: '/'
16
+ },
17
+ slide: {
18
+ duration: 400,
19
+ easing: 'swing'
20
+ }
21
+ });
22
+
23
+ $("#collapseAll").click(function(e) {
24
+ e.preventDefault();
25
+ $("#mysidebar").navgoco('toggle', false);
26
+ });
27
+
28
+ $("#expandAll").click(function(e) {
29
+ e.preventDefault();
30
+ $("#mysidebar").navgoco('toggle', true);
31
+ });
32
+
33
+ });
34
+
35
+ </script>
36
+ <script>
37
+ $(function () {
38
+ $('[data-toggle="tooltip"]').tooltip()
39
+ })
40
+ </script>
41
+ {% if page.datatable == true %}
42
+ <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.5/css/jquery.dataTables.css">
43
+ <script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.5/js/jquery.dataTables.js"></script>
44
+ <script>
45
+ $(document).ready(function(){
46
+
47
+ $('table.datatable').DataTable( {
48
+ paging: false,
49
+ stateSave: true
50
+ }
51
+ );
52
+ </script>
53
+ {% endif %}
54
+
55
+ </head>
56
+ <body>
57
+ {% include topnav.html %}
58
+ <!-- Page Content -->
59
+ <div class="container">
60
+ <div class="col-lg-12">&nbsp;</div>
61
+ <!-- Content Row -->
62
+ <div class="row">
63
+ <!-- Sidebar Column -->
64
+ <div class="col-md-3">
65
+
66
+ {% include sidebar.html %}
67
+ <!-- Content Column -->
68
+ <div class="col-md-9">
69
+ {{content}}
70
+ </div>
71
+ <!-- /.row -->
72
+ </div>
73
+ <!-- /.container -->
74
+ </div>
75
+
76
+ </body>
77
+ {% if site.google_analytics %}
78
+ {% include google_analytics.html %}
79
+ {% endif %}
80
+ </html>