devlopr 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9d045a87260ad6666d4522656ca320335a5d807d
4
- data.tar.gz: 59a89ac026b5435d584752371560d57aa24ccf07
3
+ metadata.gz: 489e30b2e9767fa23cd49e548fe40fa95395f58f
4
+ data.tar.gz: 5d8b03e02f9cce5e218443c62ecbca55fd49557e
5
5
  SHA512:
6
- metadata.gz: 71d0aa00a17c4c746779f14e1a869b257b601276630db299c3af80ec0c44331972c252e8348a024d4ce34b5fca90ac90d4cf624d97654c91c3d725ab34e1a0ba
7
- data.tar.gz: c1eace9525a106af3f239ab3000fb9fa97bc824d0cd9c9781e9bd2b894aecbc01d5158cac46abc1112e1bf744f432495fccc8524ed5d70a381daa6365abfd937
6
+ metadata.gz: ec09b2937a1a3d8a9f6f6599f4d2eb55bdf1dae1809df9ca89e04e2ed3d8431f09365b6328940bf8cab8fd247605f93624d43411e0f0a68808494e4be88fa393
7
+ data.tar.gz: e59e29892eead7595caccc68b937221e036f3907bf9d4485d8f0ea4d43eafaa579ccdf6d7943239b889583dbc5c1c02c3af37dc157cfca6f65e68a86100e47ff
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Sujay Kundu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,46 @@
1
+ # devlopr
2
+
3
+ A Responsive Jekyll Theme For Developers and Bloggers
4
+
5
+
6
+ ## Installation
7
+
8
+ Add this line to your Jekyll site's `Gemfile`:
9
+
10
+ ```ruby
11
+ gem "devlopr"
12
+ ```
13
+
14
+ And add this line to your Jekyll site's `_config.yml`:
15
+
16
+ ```yaml
17
+ theme: devlopr
18
+ ```
19
+
20
+ And then execute:
21
+
22
+ $ bundle
23
+
24
+ Or install it yourself as:
25
+
26
+ $ gem install devlopr
27
+
28
+
29
+
30
+ ## Contributing
31
+
32
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hello. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
33
+
34
+ ## Development
35
+
36
+ To set up your environment to develop this theme, run `bundle install`.
37
+
38
+ Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
39
+
40
+ When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
41
+ To add a custom directory to your theme-gem, please edit the regexp in `devlopr.gemspec` accordingly.
42
+
43
+ ## License
44
+
45
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
46
+
@@ -0,0 +1,7 @@
1
+ <div class="container" id="footer">
2
+
3
+ <nav class="navbar navbar-light bg-light">
4
+ <p> All Rights Reserved. {{ site.title }}. Email at <a href="mailto::{{ site.email }}">{{ site.email }}</a>. Subscribe via <a href="{{ "/feed.xml" | prepend: site.baseurl }}">RSS</a></p>
5
+ </nav>
6
+
7
+ </div>
@@ -0,0 +1,19 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
5
+ <title>{% if page.title %}{{ page.title | escape }}{% else %}{{ site.title | escape }}{% endif %}</title>
6
+ <meta name="description" content="{% if page.excerpt %}{{ page.excerpt | strip_html | strip_newlines | truncate: 160 }}{% else %}{{ site.description }}{% endif %}">
7
+
8
+
9
+ <link rel="canonical" href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}">
10
+ <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}">
11
+ <link rel="stylesheet" type="text/css" href="{{ "/_assets/css/main.css" }}">
12
+ <!-- Compiled and minified CSS -->
13
+ <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
14
+
15
+ <!-- Compiled and minified JavaScript -->
16
+ <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
17
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
18
+ <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
19
+ </head>
@@ -0,0 +1,38 @@
1
+ <header>
2
+
3
+ <nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark">
4
+ <a class="navbar-brand" href="#">{{ site.title }}</a>
5
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
6
+ <span class="navbar-toggler-icon"></span>
7
+ </button>
8
+
9
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
10
+ <ul class="navbar-nav ml-auto">
11
+ <li class="nav-item ">
12
+ <a class="nav-link" href="/">Home</a>
13
+ </li>
14
+ <li class="nav-item active">
15
+ <a class="nav-link" href="/blog">Blog <span class="sr-only">(current)</span></a>
16
+ </li>
17
+ <li class="nav-item">
18
+ <a class="nav-link" href="/projects">Projects</a>
19
+ </li>
20
+ <!-- Dropdown Menu
21
+ <li class="nav-item dropdown">
22
+ <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
23
+ Dropdown
24
+ </a>
25
+ <div class="dropdown-menu" aria-labelledby="navbarDropdown">
26
+ <a class="dropdown-item" href="#">Action</a>
27
+ <a class="dropdown-item" href="#">Another action</a>
28
+ <div class="dropdown-divider"></div>
29
+ <a class="dropdown-item" href="#">Something else here</a>
30
+ </div>
31
+ </li>
32
+ -->
33
+
34
+ </div>
35
+ </nav>
36
+
37
+
38
+ </header>
@@ -0,0 +1,46 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+
8
+ {% include header.html %}
9
+
10
+ <div class="container-fluid">
11
+
12
+ <!-- Fetches blog.html for the layout -->
13
+
14
+ <div class="jumbotron">
15
+
16
+ <h1 class="page-title">Blog</h1>
17
+ <p class="page-desc"> Where I Post Almost Daily !</p>
18
+ </div>
19
+ <div class="container">
20
+ <div class="col-lg-12">
21
+
22
+ <ul class="blog-posts">
23
+ {% for post in site.posts %}
24
+ <div class="card" >
25
+ <div class="card-body">
26
+ <h4 class="card-title">{{ post.title }}</h4>
27
+ <h6 class="card-subtitle mb-2 text-muted">Updated :{{ post.date | date: "%b %-d, %Y" }}</h6>
28
+ <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
29
+ <a href="{{ post.url | prepend: site.baseurl }}" class="card-link"> Read </a>
30
+ <a href="#" class="card-link">Another link</a>
31
+ </div>
32
+ </div>
33
+
34
+ {% endfor %}
35
+ </ul>
36
+ </div>
37
+ </div>
38
+
39
+
40
+ </div>
41
+
42
+ {% include footer.html %}
43
+
44
+ </body>
45
+
46
+ </html>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+
8
+ {% include header.html %}
9
+
10
+ <div class="container-fluid">
11
+
12
+ {{ content }}
13
+
14
+ </div>
15
+
16
+ {% include footer.html %}
17
+
18
+ </body>
19
+
20
+ </html>
@@ -0,0 +1,44 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+
8
+ {% include header.html %}
9
+
10
+ <div class="container-fluid">
11
+
12
+ <!-- Fetches home.html for the layout -->
13
+ <div class="jumbotron center">
14
+
15
+ <h1 class="page-title"> {{ site.title }} </h1>
16
+ <p class="page-desc"> {{site.description }} </p>
17
+ </div>
18
+ <div class="container">
19
+ <div class="col-lg-12">
20
+ <h1> Recent Blog Posts :</h1>
21
+ <ul class="blog-posts">
22
+ {% for post in site.posts %}
23
+ <div class="card">
24
+ <div class="card-body">
25
+ <h4 class="card-title">{{ post.title }}</h4>
26
+ <h6 class="card-subtitle mb-2 text-muted">{{ post.date | date: "%b %-d, %Y" }}</h6>
27
+ <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p>
28
+ <a href="{{ post.url | prepend: site.baseurl }}" class="card-link"> Read </a>
29
+ </div>
30
+ </div>
31
+
32
+ {% endfor %}
33
+ </ul>
34
+ </div>
35
+ </div>
36
+
37
+
38
+ </div>
39
+
40
+ {% include footer.html %}
41
+
42
+ </body>
43
+
44
+ </html>
@@ -0,0 +1,11 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <!-- Layout For Page -->
5
+
6
+ <div class="jumbotron">
7
+ <h1 class="page-title">{{ page.title }}</h1>
8
+ </div>
9
+ <div class="container">
10
+ <div class="col-lg-12">{{ content }}</div>
11
+ </div>
@@ -0,0 +1,49 @@
1
+ ---
2
+ layout: default
3
+ comments: true
4
+ ---
5
+ <!-- Layout for Individual Post -->
6
+
7
+
8
+ <article class="post" itemscope itemtype="http://schema.org/BlogPosting">
9
+
10
+ <nav aria-label="breadcrumb" role="navigation">
11
+ <ol class="breadcrumb">
12
+ <li class="breadcrumb-item"><a href="/blog">Blog</a></li>
13
+ <li class="breadcrumb-item active" aria-current="page">{{ page.title }}</li>
14
+ </ol>
15
+ </nav>
16
+
17
+ <div class="jumbotron">
18
+ <h1 class="post-title" itemprop="name headline">{{ page.title }}</h1>
19
+ <p class="post-meta"><time datetime="{{ page.date }}" itemprop="datePublished">{{ page.date | date: "%b %-d, %Y" }}</time>{% if page.author %} • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{{ page.author }}</span></span>{% endif %}</p>
20
+ </div>
21
+
22
+ <div class="col-lg-6 offset-md-3" itemprop="articleBody">
23
+ {{ content }}
24
+ </div>
25
+ <div class="col-lg-6 offset-md-3">
26
+ {% if page.comments %}
27
+ <div id="disqus_thread"></div>
28
+ <script>
29
+
30
+ /*
31
+ var disqus_config = function () {
32
+ this.page.url = "{{ post.url }}"; // Replace PAGE_URL with your page's canonical URL variable
33
+ this.page.identifier = "{{ post.url }}"; // Replace PAGE_IDENTIFIER with your page's unique identifier variable
34
+ };
35
+ var disqus_shortname = "shortname";
36
+ var disqus_developer = 1;
37
+ */
38
+ (function() { // DON'T EDIT BELOW THIS LINE
39
+ var d = document, s = d.createElement('script');
40
+ s.src = 'https://disqus_shortname.disqus.com/embed.js';
41
+ s.setAttribute('data-timestamp', +new Date());
42
+ (d.head || d.body).appendChild(s);
43
+ })();
44
+ </script>
45
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
46
+ {% endif %}
47
+ </div>
48
+
49
+ </article>
@@ -0,0 +1,14 @@
1
+ /* Stylesheet for sujaykundu.com */
2
+
3
+ #footer{
4
+ margin-top:200px;
5
+ }
6
+ body,html{
7
+ margin-top: 100px;
8
+ }
9
+ .page-title,.page-desc,.post-title,.post-meta{
10
+ text-align: center;
11
+ }
12
+ .blog-posts{
13
+ list-style-type: none;
14
+ }
@@ -0,0 +1,322 @@
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
+ }(this, document));
@@ -0,0 +1,353 @@
1
+ /* Respond.js: min/max-width media query polyfill. (c) Scott Jehl. MIT Lic. j.mp/respondjs */
2
+ (function( w ){
3
+
4
+ "use strict";
5
+
6
+ //exposed namespace
7
+ var respond = {};
8
+ w.respond = respond;
9
+
10
+ //define update even in native-mq-supporting browsers, to avoid errors
11
+ respond.update = function(){};
12
+
13
+ //define ajax obj
14
+ var requestQueue = [],
15
+ xmlHttp = (function() {
16
+ var xmlhttpmethod = false;
17
+ try {
18
+ xmlhttpmethod = new w.XMLHttpRequest();
19
+ }
20
+ catch( e ){
21
+ xmlhttpmethod = new w.ActiveXObject( "Microsoft.XMLHTTP" );
22
+ }
23
+ return function(){
24
+ return xmlhttpmethod;
25
+ };
26
+ })(),
27
+
28
+ //tweaked Ajax functions from Quirksmode
29
+ ajax = function( url, callback ) {
30
+ var req = xmlHttp();
31
+ if (!req){
32
+ return;
33
+ }
34
+ req.open( "GET", url, true );
35
+ req.onreadystatechange = function () {
36
+ if ( req.readyState !== 4 || req.status !== 200 && req.status !== 304 ){
37
+ return;
38
+ }
39
+ callback( req.responseText );
40
+ };
41
+ if ( req.readyState === 4 ){
42
+ return;
43
+ }
44
+ req.send( null );
45
+ },
46
+ isUnsupportedMediaQuery = function( query ) {
47
+ return query.replace( respond.regex.minmaxwh, '' ).match( respond.regex.other );
48
+ };
49
+
50
+ //expose for testing
51
+ respond.ajax = ajax;
52
+ respond.queue = requestQueue;
53
+ respond.unsupportedmq = isUnsupportedMediaQuery;
54
+ respond.regex = {
55
+ media: /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,
56
+ keyframes: /@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,
57
+ comments: /\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,
58
+ urls: /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,
59
+ findStyles: /@media *([^\{]+)\{([\S\s]+?)$/,
60
+ only: /(only\s+)?([a-zA-Z]+)\s?/,
61
+ minw: /\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,
62
+ maxw: /\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,
63
+ minmaxwh: /\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,
64
+ other: /\([^\)]*\)/g
65
+ };
66
+
67
+ //expose media query support flag for external use
68
+ respond.mediaQueriesSupported = w.matchMedia && w.matchMedia( "only all" ) !== null && w.matchMedia( "only all" ).matches;
69
+
70
+ //if media queries are supported, exit here
71
+ if( respond.mediaQueriesSupported ){
72
+ return;
73
+ }
74
+
75
+ //define vars
76
+ var doc = w.document,
77
+ docElem = doc.documentElement,
78
+ mediastyles = [],
79
+ rules = [],
80
+ appendedEls = [],
81
+ parsedSheets = {},
82
+ resizeThrottle = 30,
83
+ head = doc.getElementsByTagName( "head" )[0] || docElem,
84
+ base = doc.getElementsByTagName( "base" )[0],
85
+ links = head.getElementsByTagName( "link" ),
86
+
87
+ lastCall,
88
+ resizeDefer,
89
+
90
+ //cached container for 1em value, populated the first time it's needed
91
+ eminpx,
92
+
93
+ // returns the value of 1em in pixels
94
+ getEmValue = function() {
95
+ var ret,
96
+ div = doc.createElement('div'),
97
+ body = doc.body,
98
+ originalHTMLFontSize = docElem.style.fontSize,
99
+ originalBodyFontSize = body && body.style.fontSize,
100
+ fakeUsed = false;
101
+
102
+ div.style.cssText = "position:absolute;font-size:1em;width:1em";
103
+
104
+ if( !body ){
105
+ body = fakeUsed = doc.createElement( "body" );
106
+ body.style.background = "none";
107
+ }
108
+
109
+ // 1em in a media query is the value of the default font size of the browser
110
+ // reset docElem and body to ensure the correct value is returned
111
+ docElem.style.fontSize = "100%";
112
+ body.style.fontSize = "100%";
113
+
114
+ body.appendChild( div );
115
+
116
+ if( fakeUsed ){
117
+ docElem.insertBefore( body, docElem.firstChild );
118
+ }
119
+
120
+ ret = div.offsetWidth;
121
+
122
+ if( fakeUsed ){
123
+ docElem.removeChild( body );
124
+ }
125
+ else {
126
+ body.removeChild( div );
127
+ }
128
+
129
+ // restore the original values
130
+ docElem.style.fontSize = originalHTMLFontSize;
131
+ if( originalBodyFontSize ) {
132
+ body.style.fontSize = originalBodyFontSize;
133
+ }
134
+
135
+
136
+ //also update eminpx before returning
137
+ ret = eminpx = parseFloat(ret);
138
+
139
+ return ret;
140
+ },
141
+
142
+ //enable/disable styles
143
+ applyMedia = function( fromResize ){
144
+ var name = "clientWidth",
145
+ docElemProp = docElem[ name ],
146
+ currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
147
+ styleBlocks = {},
148
+ lastLink = links[ links.length-1 ],
149
+ now = (new Date()).getTime();
150
+
151
+ //throttle resize calls
152
+ if( fromResize && lastCall && now - lastCall < resizeThrottle ){
153
+ w.clearTimeout( resizeDefer );
154
+ resizeDefer = w.setTimeout( applyMedia, resizeThrottle );
155
+ return;
156
+ }
157
+ else {
158
+ lastCall = now;
159
+ }
160
+
161
+ for( var i in mediastyles ){
162
+ if( mediastyles.hasOwnProperty( i ) ){
163
+ var thisstyle = mediastyles[ i ],
164
+ min = thisstyle.minw,
165
+ max = thisstyle.maxw,
166
+ minnull = min === null,
167
+ maxnull = max === null,
168
+ em = "em";
169
+
170
+ if( !!min ){
171
+ min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
172
+ }
173
+ if( !!max ){
174
+ max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
175
+ }
176
+
177
+ // if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true
178
+ if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){
179
+ if( !styleBlocks[ thisstyle.media ] ){
180
+ styleBlocks[ thisstyle.media ] = [];
181
+ }
182
+ styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
183
+ }
184
+ }
185
+ }
186
+
187
+ //remove any existing respond style element(s)
188
+ for( var j in appendedEls ){
189
+ if( appendedEls.hasOwnProperty( j ) ){
190
+ if( appendedEls[ j ] && appendedEls[ j ].parentNode === head ){
191
+ head.removeChild( appendedEls[ j ] );
192
+ }
193
+ }
194
+ }
195
+ appendedEls.length = 0;
196
+
197
+ //inject active styles, grouped by media type
198
+ for( var k in styleBlocks ){
199
+ if( styleBlocks.hasOwnProperty( k ) ){
200
+ var ss = doc.createElement( "style" ),
201
+ css = styleBlocks[ k ].join( "\n" );
202
+
203
+ ss.type = "text/css";
204
+ ss.media = k;
205
+
206
+ //originally, ss was appended to a documentFragment and sheets were appended in bulk.
207
+ //this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one!
208
+ head.insertBefore( ss, lastLink.nextSibling );
209
+
210
+ if ( ss.styleSheet ){
211
+ ss.styleSheet.cssText = css;
212
+ }
213
+ else {
214
+ ss.appendChild( doc.createTextNode( css ) );
215
+ }
216
+
217
+ //push to appendedEls to track for later removal
218
+ appendedEls.push( ss );
219
+ }
220
+ }
221
+ },
222
+ //find media blocks in css text, convert to style blocks
223
+ translate = function( styles, href, media ){
224
+ var qs = styles.replace( respond.regex.comments, '' )
225
+ .replace( respond.regex.keyframes, '' )
226
+ .match( respond.regex.media ),
227
+ ql = qs && qs.length || 0;
228
+
229
+ //try to get CSS path
230
+ href = href.substring( 0, href.lastIndexOf( "/" ) );
231
+
232
+ var repUrls = function( css ){
233
+ return css.replace( respond.regex.urls, "$1" + href + "$2$3" );
234
+ },
235
+ useMedia = !ql && media;
236
+
237
+ //if path exists, tack on trailing slash
238
+ if( href.length ){ href += "/"; }
239
+
240
+ //if no internal queries exist, but media attr does, use that
241
+ //note: this currently lacks support for situations where a media attr is specified on a link AND
242
+ //its associated stylesheet has internal CSS media queries.
243
+ //In those cases, the media attribute will currently be ignored.
244
+ if( useMedia ){
245
+ ql = 1;
246
+ }
247
+
248
+ for( var i = 0; i < ql; i++ ){
249
+ var fullq, thisq, eachq, eql;
250
+
251
+ //media attr
252
+ if( useMedia ){
253
+ fullq = media;
254
+ rules.push( repUrls( styles ) );
255
+ }
256
+ //parse for styles
257
+ else{
258
+ fullq = qs[ i ].match( respond.regex.findStyles ) && RegExp.$1;
259
+ rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
260
+ }
261
+
262
+ eachq = fullq.split( "," );
263
+ eql = eachq.length;
264
+
265
+ for( var j = 0; j < eql; j++ ){
266
+ thisq = eachq[ j ];
267
+
268
+ if( isUnsupportedMediaQuery( thisq ) ) {
269
+ continue;
270
+ }
271
+
272
+ mediastyles.push( {
273
+ media : thisq.split( "(" )[ 0 ].match( respond.regex.only ) && RegExp.$2 || "all",
274
+ rules : rules.length - 1,
275
+ hasquery : thisq.indexOf("(") > -1,
276
+ minw : thisq.match( respond.regex.minw ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ),
277
+ maxw : thisq.match( respond.regex.maxw ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" )
278
+ } );
279
+ }
280
+ }
281
+
282
+ applyMedia();
283
+ },
284
+
285
+ //recurse through request queue, get css text
286
+ makeRequests = function(){
287
+ if( requestQueue.length ){
288
+ var thisRequest = requestQueue.shift();
289
+
290
+ ajax( thisRequest.href, function( styles ){
291
+ translate( styles, thisRequest.href, thisRequest.media );
292
+ parsedSheets[ thisRequest.href ] = true;
293
+
294
+ // by wrapping recursive function call in setTimeout
295
+ // we prevent "Stack overflow" error in IE7
296
+ w.setTimeout(function(){ makeRequests(); },0);
297
+ } );
298
+ }
299
+ },
300
+
301
+ //loop stylesheets, send text content to translate
302
+ ripCSS = function(){
303
+
304
+ for( var i = 0; i < links.length; i++ ){
305
+ var sheet = links[ i ],
306
+ href = sheet.href,
307
+ media = sheet.media,
308
+ isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
309
+
310
+ //only links plz and prevent re-parsing
311
+ if( !!href && isCSS && !parsedSheets[ href ] ){
312
+ // selectivizr exposes css through the rawCssText expando
313
+ if (sheet.styleSheet && sheet.styleSheet.rawCssText) {
314
+ translate( sheet.styleSheet.rawCssText, href, media );
315
+ parsedSheets[ href ] = true;
316
+ } else {
317
+ if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base) ||
318
+ href.replace( RegExp.$1, "" ).split( "/" )[0] === w.location.host ){
319
+ // IE7 doesn't handle urls that start with '//' for ajax request
320
+ // manually add in the protocol
321
+ if ( href.substring(0,2) === "//" ) { href = w.location.protocol + href; }
322
+ requestQueue.push( {
323
+ href: href,
324
+ media: media
325
+ } );
326
+ }
327
+ }
328
+ }
329
+ }
330
+ makeRequests();
331
+ };
332
+
333
+ //translate CSS
334
+ ripCSS();
335
+
336
+ //expose update for re-running respond later on
337
+ respond.update = ripCSS;
338
+
339
+ //expose getEmValue
340
+ respond.getEmValue = getEmValue;
341
+
342
+ //adjust on resize
343
+ function callMedia(){
344
+ applyMedia( true );
345
+ }
346
+
347
+ if( w.addEventListener ){
348
+ w.addEventListener( "resize", callMedia, false );
349
+ }
350
+ else if( w.attachEvent ){
351
+ w.attachEvent( "onresize", callMedia );
352
+ }
353
+ })(this);
data/blog.md ADDED
@@ -0,0 +1,3 @@
1
+ ---
2
+ layout: blog
3
+ ---
data/index.md ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ # You don't need to edit this file, it's empty on purpose.
3
+ # Edit theme's home layout instead if you wanna make some changes
4
+ # See: https://jekyllrb.com/docs/themes/#overriding-theme-defaults
5
+ layout: home
6
+ ---
7
+
data/projects.md ADDED
@@ -0,0 +1,11 @@
1
+ ---
2
+ layout: page
3
+ title: Projects
4
+ permalink: /projects/
5
+ ---
6
+
7
+ <div class="jumbotron">
8
+
9
+ <h2> Some Description on your Projects</h2>
10
+
11
+ </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devlopr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sujay Kundu
@@ -44,7 +44,23 @@ email:
44
44
  executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
- files: []
47
+ files:
48
+ - LICENSE.txt
49
+ - README.md
50
+ - _includes/footer.html
51
+ - _includes/head.html
52
+ - _includes/header.html
53
+ - _layouts/blog.html
54
+ - _layouts/default.html
55
+ - _layouts/home.html
56
+ - _layouts/page.html
57
+ - _layouts/post.html
58
+ - assets/css/main.css
59
+ - assets/js/html5shiv.js
60
+ - assets/js/respond.js
61
+ - blog.md
62
+ - index.md
63
+ - projects.md
48
64
  homepage: https://github.com/sujaykundu777/devlopr.git
49
65
  licenses:
50
66
  - MIT