jekyll-zeta 0.9.5.3 → 0.9.8

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
  SHA256:
3
- metadata.gz: 2b77877e58bbe892e776930edf846fca7feb836f1d329b98b5658100f1e474f9
4
- data.tar.gz: d61959c7dd998e78b66357cc2622c3084be0862b3b8e1e9f693ab7591ace9d10
3
+ metadata.gz: fa86d3bd66ee76b459472c8ed572fea26c2b2612bc47b09e99bd7714f2beda88
4
+ data.tar.gz: e4527f7f75eaebff06f1a30f38884f2d6e9a53e6897ec9477defcdcda51de011
5
5
  SHA512:
6
- metadata.gz: 4033fe8c0d6761c44f1b649c1eee6da07eb58783392a982d2cc221c2ee613f8a81490412ab1755c7ae448ed1f5502f1cc6063295d3064e52f4a66b24f3029f5d
7
- data.tar.gz: f19852036c85e7c453d5a0641d8756cf0852d963c1472f308fe8a075acd1988733c5c13f7ab6b7d342782ce7c3972c1d5f9bf7a081aead0427f150fe8b9561e0
6
+ metadata.gz: fcb887d4f38746a4e6f683a66dd338e525d9b6572702a6afc1c46210a3c5a78b243df25b234975a6ffa0d4c9bc530ba7334b8122d78b7d4084dce7d10c257fed
7
+ data.tar.gz: 382bf62a7ea5075b3d72b12f3f0745eb3cdeebfdebb8d06331efd6db71789f6b0a0b515b8d493a06d4cd6c7de7a784d9d3b5dcbe485023c358b81602abd84992
data/_config.yml CHANGED
@@ -51,6 +51,8 @@ theme_config:
51
51
  - /tags/
52
52
  - title: About
53
53
  url: /about.html
54
+ - title: Happy Life
55
+ url: /happylife.html
54
56
 
55
57
  #
56
58
  # forbid_cache_password: true
@@ -81,4 +83,6 @@ enc_tags:
81
83
  # 123
82
84
  password: AQAQACAAIQCvWkhJdhn0b21Pz381AdTeMLb5bRO4d2F3usQtpIL0fDD0G8cg4klENXxJNX+rAHwD8VW2iJo4hZKDQrjdOjbJFugo60XnMmbdLEfzXpkqGpjjbe875/owWyNnGGPk3Vf4
83
85
  - tag: encryp_abcd
84
- password: AQAQACAAIQDpWALGGTzrk5vX930Eq/4CzvN0JZjzlBHDSf1of9tXL9OlxpR5EsuIELyQ2bmliMYDzaDZC7SBQC+p103Gtt91K3DEq2v/r2NRv+QYMes1u6mu/AHi5B4aqhNE8f416Bjc
86
+ password: AQAQACAAIQDpWALGGTzrk5vX930Eq/4CzvN0JZjzlBHDSf1of9tXL9OlxpR5EsuIELyQ2bmliMYDzaDZC7SBQC+p103Gtt91K3DEq2v/r2NRv+QYMes1u6mu/AHi5B4aqhNE8f416Bjc
87
+ - tag: happy_life
88
+ password: AQAQACAAIQA4iKfMvVHya5kaVOktOEUetbNm+B/IYr+wOodayIezEQQYZKIkfyO5TPVHHyzBVtUCZEHTY7twL9g40ECLbr/a0IPoiT3hSQF5AV7cJ9Vish55Ng+HXsLxc+tAc9vLpkXV
@@ -209,8 +209,14 @@ function uint8ArrayToHex(uint8Array) {
209
209
 
210
210
  window.dispatchEvent(loadevent)
211
211
  window.dispatchEvent(DOMContentLoaded_event)
212
+
213
+ const DECFUN = window['_after_dec_fun']
214
+
215
+ if (DECFUN && typeof DECFUN == 'function') {
216
+ DECFUN()
217
+ }
212
218
 
213
- }, 500);
219
+ }, 100);
214
220
  } catch (error) {
215
221
  console.log(error)
216
222
  // alert("wrong password.")
@@ -234,6 +240,11 @@ function uint8ArrayToHex(uint8Array) {
234
240
  document.getElementById('decryptContent').innerHTML = ':)'
235
241
 
236
242
  clearKey()
243
+
244
+ const ENCFUN = window['_after_enc_fun']
245
+ if (ENCFUN && typeof ENCFUN == 'function') {
246
+ ENCFUN()
247
+ }
237
248
  }
238
249
 
239
250
 
@@ -38,6 +38,8 @@
38
38
  var _showWeek = '{{ HeatMapShowWeek | default: "Sun Mon Tue Wed Thu Fri Sat" }}';
39
39
  var _allyearurl = '{{ "assets/dyn/allyear.json" | relative_url }}';
40
40
  {% include heatmap.js %}
41
+
42
+ __filldata(heatmapid,endYear,WeeKStartStr,heatMapLoadCount,_MonthStr,_showWeek,_allyearurl)
41
43
  }
42
44
  </script>
43
45
 
data/_includes/heatmap.js CHANGED
@@ -1,4 +1,4 @@
1
- ;!(function () {
1
+ function __filldata(heatmapid,endYear,WeeKStartStr,heatMapLoadCount,_MonthStr,_showWeek,_allyearurl,dataSourceObj,checkPrefix) {
2
2
 
3
3
  const WeeKStart = parseInt(WeeKStartStr)
4
4
 
@@ -17,8 +17,24 @@
17
17
  }
18
18
 
19
19
  const todayYmd = date2ymd(new Date())
20
- const strictMod = endYear && endYear.length == 4;
21
- const maxDateYmd = `${endYear}-12-31`
20
+ // 指定日期,可以是年2014 或者 年月 2012-12-03
21
+
22
+ var maxDateYmd = `${endYear}-12-31`
23
+ if (endYear && endYear.length == 4) {
24
+ maxDateYmd = `${endYear}-12-31`
25
+ }else if(endYear && endYear.length == 10) { ///
26
+ maxDateYmd = endYear
27
+ }else if(!endYear){
28
+ maxDateYmd = todayYmd
29
+
30
+ }
31
+ endYear = maxDateYmd.substring(0, 4)
32
+
33
+ const minYmd = `${Number(endYear) - 1}${maxDateYmd.substring(4)}`
34
+
35
+
36
+ console.log('maxDateYmd',maxDateYmd)
37
+
22
38
  const dateEnd =
23
39
  endYear && endYear.length == 4 ? new Date(maxDateYmd) : new Date();
24
40
 
@@ -36,8 +52,14 @@
36
52
  let queue = window._y_queue || []
37
53
  window._y_queue = queue;
38
54
 
55
+
39
56
 
40
57
  function getAllYearCfg(){
58
+ /// 如果直接有数据,那么组装成
59
+ if (dataSourceObj && dataSourceObj.allYear) {
60
+ return Promise.resolve(dataSourceObj.allYear)
61
+ }
62
+
41
63
 
42
64
 
43
65
  if (GDATA['_allYear']) {
@@ -132,7 +154,7 @@
132
154
  const element = data[key];
133
155
  if (Array.isArray(element)) {
134
156
  element.forEach((e) => {
135
- if (e.date && e.title && e.url) {
157
+ if (e.date ) {
136
158
  let arr = Map[e.date];
137
159
  if (!arr) {
138
160
  arr = [];
@@ -180,7 +202,6 @@
180
202
 
181
203
  shuffle(SEQ);
182
204
 
183
- const minYmd = `${endYear - 1}${maxDateYmd.substring(4)}`
184
205
  function update1Day() {
185
206
  if (G_idxOfDay < 0) {
186
207
  return;
@@ -190,8 +211,8 @@
190
211
  let arrPostInOneDay = Map[dateKeyYmd];
191
212
 
192
213
  let hideblock = false
193
- if (strictMod) {
194
- hideblock = dateKeyYmd <= minYmd;
214
+ if (minYmd) {
215
+ hideblock = dateKeyYmd < minYmd;
195
216
  }
196
217
 
197
218
  let isFuture = dateKeyYmd > todayYmd;
@@ -204,6 +225,7 @@
204
225
  }
205
226
  else{
206
227
 
228
+ const checkClassPrefix = checkPrefix || 'hm'
207
229
  const nobg =
208
230
  parseInt(dateKeyYmd.substring(5, 7)) % 2 == 1
209
231
  ? "hm-check-no-b"
@@ -211,9 +233,11 @@
211
233
  dayCell.classList = `heatmap-day-cell ${
212
234
  !arrPostInOneDay
213
235
  ? nobg
214
- : arrPostInOneDay.length > 1
215
- ? "hm-check2"
216
- : "hm-check"
236
+ : arrPostInOneDay.length > 2
237
+ ? (checkClassPrefix + "-check3")
238
+ : arrPostInOneDay.length == 2 ?
239
+ (checkClassPrefix + "-check2")
240
+ : checkClassPrefix + "-check"
217
241
  }`;
218
242
 
219
243
  if (arrPostInOneDay && arrPostInOneDay.length > 0) {
@@ -222,7 +246,8 @@
222
246
 
223
247
  if (isDirectly) {
224
248
  let lnk = document.createElement("a");
225
- lnk.href = arrPostInOneDay[0].url;
249
+
250
+ lnk.href = arrPostInOneDay[0].url ? arrPostInOneDay[0].url : 'javascript:void(0);';
226
251
  dayCell.appendChild(lnk);
227
252
  }
228
253
 
@@ -231,7 +256,7 @@
231
256
  arrPostInOneDay.forEach((element) => {
232
257
  let lnk = document.createElement("a");
233
258
  lnk.className = "hm-tiplink";
234
- lnk.href = element.url;
259
+ lnk.href = element.url || 'javascript:void(0);'
235
260
  tip.appendChild(lnk);
236
261
 
237
262
  let t = document.createElement("span");
@@ -272,7 +297,7 @@
272
297
  function getYearData(year) {
273
298
  year = '' + year
274
299
 
275
-
300
+ if (dataSourceObj ) {return Promise.resolve(dataSourceObj[year])}
276
301
  if(GDATA[year]){
277
302
 
278
303
  return GDATA[year]
@@ -364,7 +389,7 @@
364
389
  }
365
390
 
366
391
  let m = document.createElement("span");
367
- m.classList = `heatmap-day-cell hm-check-nodata`;
392
+ m.classList = `heatmap-day-cell ${checkPrefix || "hm"}-check-nodata`;
368
393
  dayEle.appendChild(m);
369
394
  }
370
395
  }
@@ -372,4 +397,4 @@
372
397
  Frag.appendChild(dayEle);
373
398
  Father.append(Frag);
374
399
  })();
375
- })();
400
+ };
@@ -0,0 +1,262 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {%- assign titlelen = page.title.size -%}
6
+ {%- if titlelen > 0 -%}
7
+ <h2>{{ page.title }}</h2>
8
+ {%- endif -%}
9
+ <time datetime="{{ page.date }}">{{ page.date | date: site.theme_config.post_date_format }}</time> &nbsp; &nbsp;
10
+ {%- for tag in page.tags -%}
11
+ {%- capture tag_name -%}{{ tag }}{%- endcapture -%}
12
+ <a href="{{ site.baseurl }}/tags/{{ tag_name }}.html" class="tag"><text><nobr>#{{ tag_name }}</nobr></text>&nbsp;</a>
13
+ {%- endfor -%}
14
+
15
+ <br/>
16
+
17
+
18
+
19
+ <style>
20
+ .lv-year{
21
+ margin-top: 2.5rem;
22
+ font-family: 'Courier New', Courier, monospace;
23
+ }
24
+
25
+ .lv-year-title{
26
+ font-weight: bold;
27
+ font-size: 1.8em;
28
+ display: inline-block;
29
+ color: #aaa;
30
+
31
+ }
32
+ .lv-year-count{
33
+ font-weight: bold;
34
+ display: inline-block;
35
+ font-size: 1.2em;
36
+ color: #aaa;
37
+
38
+ }
39
+ .lv-year-count::before{
40
+ content: "x";
41
+ margin-left: 1em;
42
+ margin-right: 0.2em;
43
+ font-weight: 400;
44
+ font-size: 1.5rem;
45
+ color: #aaa;
46
+ }
47
+
48
+ #loveiContainer{
49
+ margin-bottom: 2em;
50
+ }
51
+
52
+ </style>
53
+
54
+
55
+
56
+ <script >
57
+ function create_heatmap(heatmapid,endYear,dataObj,title,count){
58
+ let container = document.getElementById('loveiContainer')
59
+ let divtitle = document.createElement('div')
60
+ divtitle.className = 'lv-year'
61
+
62
+ let divYear = document.createElement('div')
63
+ divYear.className = 'lv-year-title'
64
+ divYear.innerText = title || endYear
65
+ divtitle.appendChild(divYear)
66
+
67
+ let divYearC = document.createElement('div')
68
+ divYearC.className = 'lv-year-count'
69
+ divYearC.innerText = count || ('' + dataObj.allYear[endYear])
70
+ divtitle.appendChild(divYearC)
71
+
72
+
73
+
74
+ container.appendChild(divtitle)
75
+ let div = document.createElement('div')
76
+ div.className = 'heatmap'
77
+ div.id = heatmapid
78
+
79
+ container.appendChild(div)
80
+
81
+ setTimeout(() => {
82
+ create_heatmap0( heatmapid,endYear,dataObj)
83
+ }, 1);
84
+ }
85
+ function create_heatmap0(heatmapid,endYear,dataObj){
86
+
87
+ {%- assign MothStr = site.theme_config.heatMapMonth -%}
88
+ {%- assign HeatMapShowWeek = site.theme_config.heatMapShowWeek -%}
89
+ {%- assign heatMapLoadCount = site.theme_config.heatMapLoadCount | default: 9 -%}
90
+
91
+ const WeeKStartStr = "{{ site.theme_config.heatMapWeekStart | default: 0 }}" ;// 0 sunday 1 monday 2. tuesday ...
92
+
93
+ const heatMapLoadCount = {{heatMapLoadCount}};
94
+ var _MonthStr = '{{ MothStr | default: "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec" }}';
95
+ var _showWeek = '{{ HeatMapShowWeek | default: "Sun Mon Tue Wed Thu Fri Sat" }}';
96
+ var _allyearurl = '{{ "assets/dyn/allyear.json" | relative_url }}';
97
+ {% include heatmap.js %}
98
+
99
+
100
+ __filldata(heatmapid,endYear,WeeKStartStr,heatMapLoadCount,_MonthStr,_showWeek,_allyearurl,dataObj,'lv')
101
+ }
102
+
103
+
104
+
105
+ </script>
106
+
107
+
108
+
109
+
110
+
111
+ <article>
112
+
113
+
114
+ {%- assign encid = "" | get_encrypt_id:page -%}
115
+ {%- if encid == '' -%}
116
+ <div id="loveiContainer">
117
+
118
+ <!-- <div class='heatmap' id="loveid"> -->
119
+
120
+ </div>
121
+
122
+ {{ content }}
123
+ {%- else -%}
124
+ {%-include encrypted.html-%}
125
+ {%- endif -%}
126
+
127
+ </article>
128
+
129
+
130
+
131
+ <script>
132
+ (function(){
133
+
134
+ /// 2025-01-01 描述,日期格式yyyy-mm-dd,空格后跟上 描述
135
+ function getDataFromSignleLine(str0){
136
+ let str = str0.trim()
137
+ if(!str) return null
138
+ var arr = str.split(" ")
139
+ var date0 = arr[0]
140
+ let date = ''
141
+ if(date0 ){
142
+ let ymd = date0.split("-")
143
+ if(ymd.length == 3){
144
+ let year = ymd[0]
145
+ let month = ymd[1]
146
+ let day = ymd[2]
147
+
148
+ let nY = Number(year)
149
+ let nM = Number(month)
150
+ let nD = Number(month)
151
+ if (isNaN(nY) || isNaN(nD) || isNaN(nM) || nY < 1900 || nY > 2100 || nM < 1 || nM > 12 || nD < 1 || nD > 31) {
152
+ return null
153
+ }
154
+ date = year + "-" + month.padStart(2, '0') + "-" + day.padStart(2, '0')
155
+ }
156
+ }
157
+ else{
158
+ return null
159
+ }
160
+
161
+ if (!date) {
162
+ console.error("Invalid date format: " + str0)
163
+ return null
164
+ }
165
+ var title = ""
166
+ if(arr.length > 1){
167
+ title = arr.slice(1).join(" ")
168
+ }
169
+ return {date:date,title:title}
170
+ }
171
+
172
+ function fillDataObj(data,item){
173
+ if(!item) return
174
+ let y = item.date.substring(0,4);
175
+ let m = item.date.substring(5,7);
176
+ let c = data.allYear[y];
177
+ data.allYear[y] = c ? c + 1 : 1;
178
+
179
+ let yObj = data[y]
180
+ if(!yObj){
181
+ yObj = {}
182
+ data[y] = yObj;
183
+ }
184
+
185
+ let arr = yObj[m]
186
+ if(!arr){
187
+ arr = []
188
+ yObj[m] = arr
189
+ }
190
+ arr.push(item)
191
+
192
+ }
193
+ function initData(){
194
+ var endYear = "{{ include.endYear }}"
195
+
196
+ let allYear = {}
197
+ let data = {allYear:allYear};
198
+
199
+
200
+
201
+
202
+ let Recent365Count = 0;
203
+ let nowDate = new Date
204
+ let Recent365YMD = `${nowDate.getFullYear()-1}-${(nowDate.getMonth() + 1).toString().padStart(2, '0')}-${nowDate.getDate().toString().padStart(2, '0')}`
205
+
206
+ console.log(Recent365YMD)
207
+
208
+
209
+ let arrCodes = document.querySelectorAll('pre > code')
210
+ if(!arrCodes || arrCodes.length == 0) return
211
+ if(arrCodes.length > 0){
212
+ arrCodes.forEach(function(code){
213
+ var strAll = code.textContent
214
+ strAll.split("\n").forEach(function(str){
215
+ let item = getDataFromSignleLine(str)
216
+ fillDataObj(data,item)
217
+ if(item ){
218
+ if(item.date >= Recent365YMD){
219
+
220
+ Recent365Count ++
221
+ }
222
+
223
+ }
224
+ })
225
+
226
+ })
227
+ }
228
+
229
+ let allYearArr = Object.keys(allYear).sort().reverse()
230
+
231
+ create_heatmap('lmpRecent365' ,'',data ,"Last 1Y",Recent365Count)
232
+ for(let i = 0; i < allYearArr.length; i++){
233
+ let y = allYearArr[i]
234
+ create_heatmap('lmp' + y ,y,data )
235
+
236
+
237
+ }
238
+
239
+
240
+ };
241
+
242
+ initData()
243
+
244
+ window['_after_dec_fun'] = function(){
245
+ let con = document.getElementById('loveiContainer')
246
+ if(!con){
247
+ let decryptContent = document.getElementById('decryptContent')
248
+ if(!decryptContent) return
249
+ con = document.createElement('div')
250
+ con.id = 'loveiContainer'
251
+ decryptContent.insertBefore(con,decryptContent.firstChild)
252
+
253
+ }
254
+
255
+ initData()
256
+ }
257
+ window['_after_enc_fun'] = function (){
258
+ document.getElementById('loveiContainer').innerHTML = ''
259
+ }
260
+ })();
261
+
262
+ </script>
data/_sass/heatmap.scss CHANGED
@@ -7,7 +7,7 @@ $heatFont:Georgia,"Nimbus Roman No9 L","Songti SC",STSong,"AR PL New Sung","AR P
7
7
  display: grid;
8
8
  grid-template-rows: auto 1fr;
9
9
  grid-template-columns: auto 1fr;
10
- max-width: 640px;
10
+ max-width: 680px;
11
11
  }
12
12
 
13
13
  .heatmap-title{
@@ -100,17 +100,53 @@ $heatFont:Georgia,"Nimbus Roman No9 L","Songti SC",STSong,"AR PL New Sung","AR P
100
100
  background-color: #93d5dc;
101
101
  }
102
102
 
103
- .hm-check{
104
- background-color: #40c463bb;
103
+ .lv-check-nodata{
104
+ background-color: #add5a2;
105
+ }
106
+
107
+
108
+ .hm-checkBase{
105
109
  position: relative;
110
+ background-color: #40c46377;
106
111
  cursor: pointer;
107
112
  }
113
+ .hm-check{
114
+
115
+ @extend .hm-checkBase;
116
+ background-color: #40c46377;
117
+
118
+ }
108
119
 
109
120
  .hm-check2{
121
+ @extend .hm-checkBase;
122
+ background-color: #40c463bb;
123
+
124
+ }
125
+
126
+ .hm-check3{
127
+ @extend .hm-checkBase;
110
128
  background-color: #40c463ff;
111
- position: relative;
112
129
  }
113
130
 
131
+ .lv-check{
132
+
133
+ @extend .hm-checkBase;
134
+ background-color: #ef347399;
135
+
136
+ }
137
+
138
+ .lv-check2{
139
+ @extend .hm-checkBase;
140
+ background-color: #ef3473cc;
141
+
142
+ }
143
+
144
+ .lv-check3{
145
+ @extend .hm-checkBase;
146
+ background-color: #ef3473;
147
+ }
148
+
149
+
114
150
  .hm-check-no-a{
115
151
  background-color: #edebf0;;
116
152
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-zeta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5.3
4
+ version: 0.9.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - vitock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-07 00:00:00.000000000 Z
11
+ date: 2025-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -83,6 +83,7 @@ files:
83
83
  - _layouts/default.html
84
84
  - _layouts/heatmap.html
85
85
  - _layouts/home.html
86
+ - _layouts/lovemap.html
86
87
  - _layouts/page.html
87
88
  - _layouts/paginate.html
88
89
  - _layouts/post.html