jekyll-theme-mdui 0.4.6 → 0.4.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 14ccbb04ad71ab034c9703cc76f3e9ee9011f6ea
4
- data.tar.gz: f0eadc385802b8f7c12a03223eb10741562df3a5
3
+ metadata.gz: 3f94ec4000bc32d137aa8a1d1ff8a67fa64a7889
4
+ data.tar.gz: 4c29aadf4a10cf44d5ecc0a61ff9355ba6038401
5
5
  SHA512:
6
- metadata.gz: 9b8a44c7e69d2db2909ec3cca3372e41019ffcd9311608f5ae7cec715310dec07afb90e3783b7efa6ecfba7a2464aec0e2f6e1b3797f865c2be854dfdbe98fd3
7
- data.tar.gz: 12bf74d03234c673262ada6b8c1b37acf11179203dd526c98a737c879828bf4357b9cf06c0cb460e328d88c901da9035afd3918bd4e7823b283fb2f3c60bdb21
6
+ metadata.gz: '0874b2432b2c7e8fc1bebc96351c814c24e5dd26a8c2f90da9da2d41f2197213d4daade0f26f58b553950f77f923564d1e406432cc7bc74d8e9d457505219dcf'
7
+ data.tar.gz: a2313e1189a9033d075228661c72570a1004482b963a8b250d5662dafc08fc27a8b1c5db964bfd0f37a250de34e943f799157ece8afc9a0ac3001e88d2e1d242
data/README.md CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  ## General
20
20
 
21
- [![Version](https://img.shields.io/badge/version-0.4.5-green.svg?style=flat-square)]()
21
+ [![Version](https://img.shields.io/badge/version-0.4.7-green.svg?style=flat-square)]()
22
22
  [![Jekyll](https://img.shields.io/badge/Jekyll-3.4+-green.svg?style=flat-square)](https://jekyllrb.com/)
23
23
  [![Gem](https://img.shields.io/gem/dt/jekyll-theme-mdui.svg?style=flat-square)](https://rubygems.org/gems/jekyll-theme-mdui/)
24
24
 
@@ -40,13 +40,13 @@
40
40
 
41
41
  ## Docs
42
42
 
43
- [Docs](http://mdui.kejun.space/#/)
43
+ [Docs](http://mdui.kejun.space/#/)(!!!Need Help!!!)
44
44
 
45
45
  [中文文档](http://mdui.kejun.space/#/zh-cn/)
46
46
 
47
47
  ## TODO
48
48
 
49
- - [ ] Editor - Online preview
49
+ - [ ] Editor - Online preview (!!!Need Help!!!)
50
50
  - [ ] Category - Better style
51
51
  - [ ] Site style - More custom options
52
52
 
@@ -62,6 +62,7 @@ File Required or Optional:
62
62
  |tags.json|Optional|If you use the tags page, it is required.|
63
63
  |_data/friends.yml|Optional|If you use the friends page, it is required.|
64
64
  |_data/sns.yml|Optional|It is footer sns,if you want userd, it is required.|
65
+ |_data/meng.yml|Optional|It is Meng option,if you want userd, it is required.|
65
66
  |_data/site.yml|Required|It is theme config.|
66
67
  |_data/lang.yml|Required|It is language config.|
67
68
  |_data/menus.yml|Required|It is site menus config.|
@@ -10,7 +10,7 @@
10
10
  {% if site.data.meng.console.switch == true %}
11
11
  {% if site.data.meng.console.theme_info == true %}
12
12
  <script>
13
- console.info("\n %c © Jekyll Theme MDUI | Version: 0.4.5 | https://github.com/KeJunMao/jekyll-theme-mdui \n\n", "color: #fff; background: #448aff; padding:5px 0; border-radius: 5px 5px 5px 5px;");
13
+ console.info("\n %c © Jekyll Theme MDUI | Version: 0.4.7 | https://github.com/KeJunMao/jekyll-theme-mdui \n\n", "color: {{site.data.meng.console.color}}; background:{{site.data.meng.console.background}}; padding:5px 0; border-radius: 5px 5px 5px 5px;");
14
14
  </script>
15
15
  {% endif %}
16
16
  <script>
@@ -275,82 +275,38 @@ var disqus = {
275
275
  {% if site.data.site.uiux.meng == true %}
276
276
  {% if site.data.meng.header.switch == true%}
277
277
  <script>
278
- const REG_HEX = /(^#?[0-9A-F]{6}$)|(^#?[0-9A-F]{3}$)/i;
279
-
280
- /*
281
- * rgb字符串解析
282
- * accepts: #333 #accded (without # is also fine)
283
- * not accept yet: rgb(), rgba()
284
- */
285
- var rgbToHex = function(rgb) {
286
- var color = rgb.toString().match(/\d+/g);
287
- var hex = "#";
288
- for (var i = 0; i < 3; i++) {
289
- hex += ("0" + Number(color[i]).toString(16)).slice(-2);
290
- }
291
- return hex;
292
- };
293
- function parseRGB(str){
294
- if(typeof str === 'string' && REG_HEX.test(str) ){
295
- str = str.replace('#', '');
296
- let arr;
297
- if(str.length === 3){
298
- arr = str.split('').map(c => (c+c));
299
- }
300
- else if(str.length === 6){
301
- arr = str.match(/[a-zA-Z0-9]{2}/g);
302
- }
303
- else{
304
- throw new Error('wrong color format');
305
- }
306
- return arr.map((c) => parseInt(c, 16));
307
- }
308
- throw new Error('color should be string');
309
- }
310
-
311
- /*
312
- * rgb value to hsl 色相(H)、饱和度(S)、明度(L)
313
- */
314
- function rgbToHsl(rgbStr){
315
- let [r, g, b] = parseRGB(rgbStr);
316
- r /= 255, g /= 255, b /= 255;
317
- let max = Math.max(r, g, b), min = Math.min(r, g, b);
318
- let h, s, l = (max + min) / 2;
319
-
320
- if(max == min){
321
- h = s = 0;
322
- }else{
323
- let d = max - min;
324
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
325
- switch(max){
326
- case r: h = (g - b) / d + (g < b ? 6 : 0); break;
327
- case g: h = (b - r) / d + 2; break;
328
- case b: h = (r - g) / d + 4; break;
329
- }
330
- h /= 6;
331
- }
332
- return [h, s, l];
333
- }
334
-
335
- /*
336
- * 判断颜色属于深色还是浅色
337
- */
338
- function isColorDarkOrLight(rgbStr){
339
- var color = rgbToHex(rgbStr);
340
- let [h, s, l] = rgbToHsl(color);
341
- return (l > 0.5)? 'light' : 'dark';
342
- }
343
278
  var appVersion = navigator.appVersion;
344
-
345
279
  if (appVersion.indexOf('Mobile') > 0){
346
280
  var isMobile = true;
347
281
  }
348
- if (isMobile){
349
- var s = document.createElement('script'); s.async = true;
350
- s.type = 'text/javascript';
351
- s.src = '{{ "/assets/js/rgbaster.min.js" | prepend: site.baseurl }}';
352
- (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
353
- }
282
+ {% if page.themecolor == null %}
283
+ var pagethemecolorid = '{{page.id | remove:"/"}}ThemeColor';
284
+ var headertextcolor;
285
+ if (!localStorage[pagethemecolorid]){
286
+ if (isMobile){
287
+ var s = document.createElement('script'); s.async = true;
288
+ s.type = 'text/javascript';
289
+ s.src = '{{ "/assets/js/rgbaster.min.js" | prepend: site.baseurl }}';
290
+ (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
291
+ }
292
+ }else{
293
+ if (isMobile){
294
+ headerthemecolor = localStorage[pagethemecolorid];
295
+ headertextcolor = localStorage[pagethemecolorid+'text'];
296
+ $('header').css('background-color',headerthemecolor);
297
+ $("meta[name='theme-color']").attr('content', headerthemecolor);
298
+ $('header').css('color',headertextcolor);
299
+ }
300
+ }
301
+ {% else %}
302
+ headerthemecolor = {{page.themecolor}};
303
+ headertextcolor = {{page.themetextcolor}};
304
+ if (isMobile){
305
+ $('header').css('background-color',headerthemecolor);
306
+ $("meta[name='theme-color']").attr('content', headerthemecolor);
307
+ $('header').css('color',headertextcolor);
308
+ }
309
+ {% endif %}
354
310
  </script>
355
311
  {% endif %}
356
312
  {% endif %}
@@ -1,8 +1,16 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
+ <div class="k-posts-list"></div>
5
+ {% if site.data.site.uiux.meng == true %}
6
+ {% if site.data.meng.background.switch == true %}
7
+ <div class="k-container mdui-card">
8
+ {% else %}
9
+ <div class="k-container">
10
+ {% endif %}
11
+ {% else %}
4
12
  <div class="k-container">
5
- <div class="k-posts-list"></div>
13
+ {% endif %}
6
14
  {% for category in site.categories %}
7
15
  <ul class="mdui-list">
8
16
  <li class="mdui-subheader"><a name="{{ category | first }}">{{ category | first | upcase }}</a>
data/_layouts/tags.html CHANGED
@@ -10,9 +10,16 @@ layout: default
10
10
 
11
11
  {% assign sortedtags = tags | split:' ' | sort %}
12
12
 
13
-
13
+ <div class="k-posts-list"></div>
14
+ {% if site.data.site.uiux.meng == true %}
15
+ {% if site.data.meng.background.switch == true %}
16
+ <div class="k-container mdui-card">
17
+ {% else %}
18
+ <div class="k-container">
19
+ {% endif %}
20
+ {% else %}
14
21
  <div class="k-container">
15
- <div class="k-posts-list"></div>
22
+ {% endif %}
16
23
  {% for tag in sortedtags %}
17
24
  {% assign index = site.tags[tag] | size %}
18
25
  {% assign fontsize = 14 %}
data/assets/css/main.css CHANGED
@@ -208,6 +208,47 @@ a{
208
208
  cursor:url({{site.data.meng.cursor.pointer_url}}), pointer;
209
209
  }
210
210
  {% endif %}
211
+ {% if site.data.meng.background.switch == true %}
212
+ body{
213
+ background-image: url({{site.data.meng.background.background_img}});
214
+ background-size: cover;
215
+ background-position: 50% 50%;
216
+ background-attachment: fixed;
217
+ background-repeat: no-repeat;
218
+ }
219
+ #toc-card{
220
+ background-color:transparent;
221
+ }
222
+ #toc a{
223
+ color: {{site.data.meng.background.text_color}};
224
+ }
225
+ {% if site.data.meng.background.transparent_header == true %}
226
+ header{
227
+ background-color:rgba(0, 0, 0, 0);
228
+ color: {{site.data.meng.background.text_color}};
229
+ }
230
+ {% endif %}
231
+ {% if site.data.meng.background.transparent_footer == true %}
232
+ footer .mdui-card{
233
+ color: {{site.data.meng.background.text_color}};
234
+ background-color:rgba(0, 0, 0, 0);
235
+ }
236
+ {% endif %}
237
+ {% endif %}
238
+ {% if site.data.meng.card.switch ==true %}
239
+ .k-list-card{
240
+ background-color:{{site.data.meng.card.background_color}};
241
+ }
242
+ .k-container.mdui-card{
243
+ background-color:{{site.data.meng.card.background_color}};
244
+ }
245
+ .k-friend .mdui-card{
246
+ background-color:{{site.data.meng.card.background_color}};
247
+ }
248
+ .k-post-media{
249
+ opacity: {{site.data.meng.card.card_img_opacity}};
250
+ }
251
+ {% endif %}
211
252
  {% endif %}
212
253
 
213
254
  {% for sns in site.data.sns %}
@@ -1,11 +1,84 @@
1
1
  !function(n,t){"use strict";var e=function(n,t){var e=document.createElement("canvas");return e.setAttribute("width",n),e.setAttribute("height",t),e.getContext("2d")},r=function(n,t){var r=new Image,i=n.src||n;"data:"!==i.substring(0,5)&&(r.crossOrigin="Anonymous"),r.onload=function(){var n=e(r.width,r.height);n.drawImage(r,0,0);var i=n.getImageData(0,0,r.width,r.height);t&&t(i.data)},r.src=i},i=function(n){return["rgb(",n,")"].join("")},a=function(n){var t=[];for(var e in n)t.push(o(e,n[e]));return t.sort(function(n,t){return t.count-n.count}),t},u=function(n,t){if(n.length>t)return n.slice(0,t);for(var e=n.length-1;t-1>e;e++)n.push(o("0,0,0",0));return n},o=function(n,t){return{name:i(n),count:t}},c=10,s={};s.colors=function(n,e){e=e||{};var o=e.exclude||[],s=e.paletteSize||c;r(n,function(n){for(var r={},c="",f=[],d=0;d<n.length;d+=4)f[0]=n[d],f[1]=n[d+1],f[2]=n[d+2],c=f.join(","),-1===f.indexOf(t)&&0!==n[d+3]&&-1===o.indexOf(i(c))&&(r[c]=c in r?r[c]+1:1);if(e.success){var g=u(a(r),s+1);e.success({dominant:g[0].name,secondary:g[1].name,palette:g.map(function(n){return n.name}).slice(1)})}})},n.RGBaster=n.RGBaster||s}(window);
2
- var img = $('.k-post-media').css('background-image').replace('url(','').replace(')','').replace(/\"/gi, "");
2
+ const REG_HEX = /(^#?[0-9A-F]{6}$)|(^#?[0-9A-F]{3}$)/i;
3
+
4
+ /*
5
+ * rgb字符串解析
6
+ * {{page.id}}
7
+ * accepts: #333 #accded (without # is also fine)
8
+ * not accept yet: rgb(), rgba()
9
+ */
10
+ var rgbToHex = function(rgb) {
11
+ var color = rgb.toString().match(/\d+/g);
12
+ var hex = "#";
13
+ for (var i = 0; i < 3; i++) {
14
+ hex += ("0" + Number(color[i]).toString(16)).slice(-2);
15
+ }
16
+ return hex;
17
+ };
18
+ function parseRGB(str){
19
+ if(typeof str === 'string' && REG_HEX.test(str) ){
20
+ str = str.replace('#', '');
21
+ let arr;
22
+ if(str.length === 3){
23
+ arr = str.split('').map(c => (c+c));
24
+ }
25
+ else if(str.length === 6){
26
+ arr = str.match(/[a-zA-Z0-9]{2}/g);
27
+ }
28
+ else{
29
+ throw new Error('wrong color format');
30
+ }
31
+ return arr.map((c) => parseInt(c, 16));
32
+ }
33
+ throw new Error('color should be string');
34
+ }
35
+
36
+ /*
37
+ * rgb value to hsl 色相(H)、饱和度(S)、明度(L)
38
+ */
39
+ function rgbToHsl(rgbStr){
40
+ let [r, g, b] = parseRGB(rgbStr);
41
+ r /= 255, g /= 255, b /= 255;
42
+ let max = Math.max(r, g, b), min = Math.min(r, g, b);
43
+ let h, s, l = (max + min) / 2;
44
+
45
+ if(max == min){
46
+ h = s = 0;
47
+ }else{
48
+ let d = max - min;
49
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
50
+ switch(max){
51
+ case r: h = (g - b) / d + (g < b ? 6 : 0); break;
52
+ case g: h = (b - r) / d + 2; break;
53
+ case b: h = (r - g) / d + 4; break;
54
+ }
55
+ h /= 6;
56
+ }
57
+ return [h, s, l];
58
+ }
59
+
60
+ /*
61
+ * 判断颜色属于深色还是浅色
62
+ */
63
+ function isColorDarkOrLight(rgbStr){
64
+ var color = rgbToHex(rgbStr);
65
+ let [h, s, l] = rgbToHsl(color);
66
+ return (l > 0.5)? 'light' : 'dark';
67
+ }
68
+ var headerColor;
69
+ var img = $('.k-post-media').css('background-image').replace('url(','').replace(')','').replace(/\"/gi, "");
3
70
  var colors = RGBaster.colors(img, {
4
71
  paletteSize: 30,
5
72
  success: function(colors){
73
+ headerColor = colors.dominant;
74
+ localStorage[pagethemecolorid] = headerColor;
6
75
  if(isColorDarkOrLight(colors.dominant) === "dark"){
76
+ headertextcolor = '#fff';
77
+ localStorage[pagethemecolorid+'text'] = headertextcolor;
7
78
  $('header').css('color','#fff');
8
79
  }else{
80
+ headertextcolor = '#000';
81
+ localStorage[pagethemecolorid+'text'] = headertextcolor;
9
82
  $('header').css('color','#000');
10
83
  }
11
84
  $('header').css('background-color',colors.dominant);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-mdui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - KeJun