no-style-please2 0.9.1 → 0.9.2

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
  SHA256:
3
- metadata.gz: 0a414bf659d218a6172f51f2f94d2690ed5fcaa0cdfbb1ab86defce0f30d11f2
4
- data.tar.gz: 765ae86a6dd407d9f599193cacf792e3d23ee15df877da5e52ec9fc2eba639d1
3
+ metadata.gz: 18874d617afbc3b090611e8c116f74ced4dc84f5620137ba864b662aac85b995
4
+ data.tar.gz: fa7008e985c74baa0468222af02105a9691ddc7a18f76b0ca9c24ab22ddd2f0c
5
5
  SHA512:
6
- metadata.gz: 4e4ddcde05a6447b796245e22cc5a93c52993c757faca894006996decd41588d0e2deea863df4360defd614d757cf7948c9cc615ec5e89eb064281d93ee6a59b
7
- data.tar.gz: 78f79386b22615140119143f94e6eb902c5a0cef3180ab6e585e9437c39e55d3dd33840f292ba5b365f290ddb3fd8b52238cc15f86fac30b765649ee87a6b63d
6
+ metadata.gz: 50a71db2e8b501fcb6b37df96ef594387ebc28bd1a1c274f650fb725529cf60c0c3352a4607eb44d9a4428e1bde24f0ac4b395efdca2b6b492b50183426eb5a5
7
+ data.tar.gz: 96acf13b7abd37fb66357282ff28834f095f9563136a9e06b8f0fa197c6e2e31aa75daf047bdf4e24a6431c0984ce90247d654bbbbc8216e063ea57a4e22fe50
data/README.md CHANGED
@@ -7,9 +7,9 @@ Inspired by [elly's site](http://tilde.town/~elly/) [riggraz](https://riggraz.de
7
7
 
8
8
  <img src="https://raw.githubusercontent.com/riggraz/no-style-please/master/_screenshots/featured-image.png" />
9
9
 
10
- ## Features
10
+ # Features
11
11
 
12
- + ### new
12
+ + # new
13
13
  + tags support
14
14
  + mathjax , inluce_code post_link support, include support, link to other post
15
15
  + encrytion support. Only those who know the password can view the article
@@ -18,12 +18,34 @@ Inspired by [elly's site](http://tilde.town/~elly/) [riggraz](https://riggraz.de
18
18
  ONLY textual contents of article will be encrypted ,the pictures will **NOT** be encrypted
19
19
 
20
20
 
21
- #### Encrypt your post
21
+ # Encrypt your post
22
22
 
23
+ Here are two options for encrypting your password: the first is a web-based method, and the second involves using a Ruby tool. We highly recommend choosing the web-based method.
23
24
 
24
- > ✧ Using this [web tool, it's very convenient to complete the following tasks](https://vitock.github.io/jekyll-zeta/post/2024/12/30/ToolForEncryption.html)
25
+ > ✧ Using this [web tool, it's very convenient to complete the following tasks](https://vitock.github.io/jekyll-zeta/Proctect-your-password)
25
26
 
27
+ 1. get your privateKey
28
+ open the website 'https://vitock.github.io/jekyll-zeta/Proctect-your-password'
29
+ ![](s1.png)
26
30
 
31
+ 2. encrypt Your password
32
+ ![](s2.png)
33
+
34
+ 3. edit the `_config.yml`
35
+
36
+ ![alt text](image.png)
37
+
38
+ 4. set your private Key to github ci
39
+ ![alt text](image-1.png)
40
+ ![alt text](image-2.png)
41
+
42
+ 5. push the repo
43
+
44
+ ## using web tool
45
+
46
+ 1. generate keypair through this website
47
+
48
+ ## using ruby tool
27
49
 
28
50
 
29
51
  1. generate your own public & private key to protect your password
data/_config.yml CHANGED
@@ -60,3 +60,9 @@ enc_tags:
60
60
  - tag: encrypt2
61
61
  # 123
62
62
  password: AQAQACAAIQCvWkhJdhn0b21Pz381AdTeMLb5bRO4d2F3usQtpIL0fDD0G8cg4klENXxJNX+rAHwD8VW2iJo4hZKDQrjdOjbJFugo60XnMmbdLEfzXpkqGpjjbe875/owWyNnGGPk3Vf4
63
+ - tag: encrypt_abc
64
+ # abc
65
+ password: AQAQACAAIQCX8chuGK6MCLP9eGuTUCcmHwjxAQv74m/iir3IzZU1j9JPyGnfi2qGNcU3dryjTT8Co4V6vRtgbnl3onQBcO3hcC8FgCd9KJpe/F59TIdmyEPTER1U2OSG5xo6jsFzsAxt
66
+ - tag: encrypt_456
67
+
68
+ password: AQAQACAAIQASewKsG2ThLm8E0ZQEvTxhoQ3VbVDECINAwi9mxoHJiT5xI8pjCMgfeSpx3q4WpusD6EaCifx7ZjeZeVfdZDVKIJ86CIZbyMPLNwJoNP1K/XWbCiyvtzoMF5nbBtkIgKeJ
@@ -25,13 +25,28 @@
25
25
  var exports = exports || {}
26
26
  </script>
27
27
  <script src="//cdn.jsdelivr.net/gh/vitock/jsdelivr@0.1.2/js/base64js.js"></script>
28
+
29
+ <script>
30
+
31
+
32
+ </script>
33
+
34
+
35
+
36
+
28
37
  <script>
38
+
39
+
40
+ {% assign HEXKEY = '' | rand_bytes:32 %}
41
+ const keyData = "{{ '' | encrypt_key:page,HEXKEY ,encid}}"
42
+ const contentEnc = '{{ content | encrypt_content_v2:HEXKEY }}'
43
+
29
44
  !function(){
30
45
 
31
46
  const substl = crypto.subtle
32
47
  const preFix = '{{encid}}';
33
48
  const encid = preFix
34
- const encryptedContent = '{{ content | encrypt_content:page, encid}}'
49
+ const encryptedContent = contentEnc;
35
50
  const base64str = encryptedContent.substring(3)
36
51
  const bfMsg = base64js.decode(base64str)
37
52
  const bfIv = bfMsg.subarray(0,12)
@@ -47,7 +62,50 @@
47
62
  return await substl.deriveBits(pbkdf2,key,256);
48
63
  }
49
64
 
65
+ async function decryptRaw(msg64,key){
66
+ const base64str = msg64.substring(3)
67
+ const bfMsg = base64js.decode(base64str)
68
+ const bfIv = bfMsg.subarray(0,16)
69
+ const bfCipher = bfMsg.subarray(16)
50
70
 
71
+ var aeskey = {
72
+ name:"AES-CBC",
73
+ }
74
+ var keyObj = await substl.importKey('raw',key,aeskey,false,['decrypt'])
75
+ var aesDec= {name: "AES-CBC",iv:bfIv}
76
+ var bfDec
77
+ try{
78
+ bfDec = await substl.decrypt(aesDec,keyObj,bfCipher)
79
+ }catch (error) {
80
+ console.log(error)
81
+ throw error
82
+ }
83
+
84
+ return new Uint8Array(bfDec)
85
+ }
86
+ async function checkKey(key){
87
+ {% assign TestData = '' | rand_bytes:12 %}
88
+ var testData = '{{ TestData }}';
89
+ var testDataEnc = '{{ TestData | encrypt_content_v2:HEXKEY }}';
90
+
91
+ let arrKeys = keyData.split('#')
92
+ let keyBf = null
93
+ for (let i = 0; i < arrKeys.length; i++) {
94
+ const element = arrKeys[i];
95
+ try{
96
+
97
+ let d = await decryptRaw(element,key)
98
+ let dec = await decryptRaw(testDataEnc,d)
99
+ if((new TextDecoder).decode(dec) == testData ){
100
+ keyBf = d;
101
+ break;
102
+ }
103
+ }catch (e){
104
+ }
105
+ }
106
+
107
+ return keyBf
108
+ }
51
109
 
52
110
  async function decrypt (key0,isCached){
53
111
  // const key = Uint8Array([...]); // 32 bytes key
@@ -65,13 +123,18 @@
65
123
  }
66
124
 
67
125
  var aeskey = {
68
- name:"AES-GCM",
126
+ name:"AES-CBC",
69
127
  length:256
70
128
  }
129
+
71
130
  var keyObj = await substl.importKey('raw',key,aeskey,false,['decrypt'])
72
- var aesDec= {name: "AES-GCM",iv:bfIv,tagLength:128}
131
+ var aesDec= {name: "AES-CBC",iv:bfIv}
73
132
  try {
74
- var bfDec = await substl.decrypt(aesDec,keyObj,bfCipher)
133
+ let keyBf = await checkKey(key)
134
+ if(!keyBf){
135
+ throw 'error psw'
136
+ }
137
+ var bfDec = await decryptRaw(contentEnc,keyBf)
75
138
  var plain = new TextDecoder().decode(bfDec);
76
139
  setKey(key)
77
140
  document.getElementById("encrypted").style.display = 'none'
@@ -92,6 +155,7 @@
92
155
 
93
156
  }, 500);
94
157
  } catch (error) {
158
+ console.log(error)
95
159
  alert("wrong password.")
96
160
  }
97
161
  }
@@ -14,8 +14,7 @@
14
14
  <ul>
15
15
  {%- for post in posts limit: include.limit -%}
16
16
  <li>
17
- <span>{{- post.date | date: site.theme_config.date_format -}}</span>
18
- <a href="{{ post.url | relative_url }}">{{ post.title | downcase }}</a>
17
+ {% include postitem.html post=post%}
19
18
  </li>
20
19
  {%- endfor -%}
21
20
  {%- if include.show_more and limit_exceeded -%}
@@ -0,0 +1,11 @@
1
+ {% capture archive_date_titleformat %} {{ site.theme_config.archive_title_date_format | default: "%m-%d"}}{% endcapture %}
2
+ {%- assign post = include.post -%}
3
+ {%- assign fmt = include.fmt | default:archive_date_titleformat -%}
4
+
5
+ {% assign encid = '' | get_encrypt_id:post | default: "" %}
6
+ <span>{{- post.date | date: fmt }}</span>
7
+ <a href="{{ post.url | relative_url }}">{{ post.title | downcase }}
8
+ {%- if encid.size > 1 -%}
9
+ <img style="width:12px;height:12px;display: inline;margin-left: 5px;" src="{{ 'assets/image/lock.svg' | relative_url}}">
10
+ {%- endif -%}
11
+ </a>
@@ -27,8 +27,7 @@ layout: default
27
27
  {% assign ymPre = ymCur %}
28
28
 
29
29
  <li>
30
- <span>{{- post.date | date: archive_date_titleformat }}</span>
31
- <a href="{{ post.url | relative_url }}">{{ post.title | downcase }}</a>
30
+ {% include postitem.html post=post%}
32
31
  </li>
33
32
 
34
33
  {%- endfor -%}
@@ -7,9 +7,7 @@ layout: default
7
7
 
8
8
  <ul>
9
9
  {% for post in site.tags[page.tag] %}
10
- <li><a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a> ({{ post.date | date_to_string }})<br>
11
- {{ post.description }}
12
- </li>
10
+ <li>{% include postitem.html post=post fmt="%Y-%m-%d" %}</li>
13
11
  {% endfor %}
14
12
 
15
13
  {% if site.theme_config.tag_showall %}
@@ -0,0 +1,7 @@
1
+ <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg" t="1685339750585" class="icon" version="1.1" p-id="3294">
2
+ <g>
3
+ <title>Layer 1</title>
4
+ <path d="m160.80336,228.40263l177.01586,0l0,-67.57791q0,-37.30864 -25.93006,-63.70627t-62.57787,-26.39763t-62.57787,26.39763t-25.93006,63.70627l0,67.57791l0,0zm287.65078,33.78896l0,202.73375q0,14.07874 -9.68056,23.93385t-23.50992,9.85512l-331.90475,0q-13.82936,0 -23.50992,-9.85512t-9.68056,-23.93385l0,-202.73375q0,-14.07874 9.68056,-23.93385t23.50992,-9.85512l11.0635,0l0,-67.57791q0,-64.76217 45.6369,-111.22199t109.25198,-46.45982t109.25198,46.45982t45.6369,111.22199l0,67.57791l11.06349,0q13.82936,0 23.50992,9.85512t9.68056,23.93385l0,0z" p-id="3295" id="svg_1"/>
5
+ </g>
6
+
7
+ </svg>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: no-style-please2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - vitock
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-31 00:00:00.000000000 Z
11
+ date: 2025-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.7.2
33
+ version: 0.8.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.7.2
40
+ version: 0.8.0
41
41
  description:
42
42
  email:
43
43
  - r
@@ -58,6 +58,7 @@ files:
58
58
  - _includes/main.css
59
59
  - _includes/menu_item.html
60
60
  - _includes/post_list.html
61
+ - _includes/postitem.html
61
62
  - _layouts/archive.html
62
63
  - _layouts/default.html
63
64
  - _layouts/heatmap.html
@@ -69,6 +70,7 @@ files:
69
70
  - _sass/heatmap.scss
70
71
  - _sass/no-style-please.scss
71
72
  - assets/css/main.scss
73
+ - assets/image/lock.svg
72
74
  - assets/js/mouse_coords.js
73
75
  homepage: https://github.com/vitock/no-style-please
74
76
  licenses: