-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
346 lines (318 loc) · 23.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
<html>
<head>
<!-- header.ftl -->
<title>第1页 | Lab 023</title>
<h1><a href="https://lab023.github.io">Lab 023</a></h1>
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
<!-- css.ftl -->
<link href="/css/default_main.css" type="text/css" rel="stylesheet">
<link href="/css/prism.css" type="text/css" rel="stylesheet">
</head>
<body>
<div class="main_div">
<div>
<h2><a id="ShengChengGooglePlayappsigningWenJian" name="生成Google Play app signing文件" href="/blog/ShengChengGooglePlayappsigningWenJian.html">生成Google Play app signing文件</a></h2>
<div class="blog_unit">
<div class="blog_content">
<p>如果要使用Android App Bundle格式文件上传Google Play,就必须使用Google Play app signing。</p>
<p>官方邮件建议命令:</p>
<pre class="language-javascript"><code>keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks</code></pre>
<p> </p>
<p>另:签名是全局的,如果App要单独使用签名需要发邮件。</p>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-0307eab94117482eb49ac0e1b24b6b79-1.html?f=Android开发">Android开发 1</a> </div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/ShengChengGooglePlayappsigningWenJian.html#disqus_thread">0 讨论</a><a>Roy</a><a>Feb 24, 2020</a></div>
</div>
</div>
<div>
<h2><a id="Windows10MingLingXingTCPDuanKouZhuanFa" name="Windows 10命令行TCP端口转发" href="/blog/Windows10MingLingXingTCPDuanKouZhuanFa.html">Windows 10命令行TCP端口转发</a></h2>
<div class="blog_unit">
<div class="blog_content">
<p>添加端口转发:通过本机 192.168.1.88:60544访问远程地址192.168.1.103:6544</p>
<pre class="language-javascript"><code>netsh interface portproxy add v4tov4 listenaddress=192.168.1.88 listenport=60544 connectaddress=192.168.1.103 connectport=6544</code></pre>
<p> </p>
<p>删除端口转发</p>
<pre class="language-javascript"><code>netsh interface portproxy delete v4tov4 listenaddress=192.168.1.88 listenport=60544</code></pre>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-e89135adf3fd41b18ad0b9f6f11d969b-1.html?f=运维">运维 10</a> <a class="a-tag" href="/tag/tag-ef329eb2b5b3407e87ec9d610fe16a20-1.html?f=Batch">Batch 1</a></div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/Windows10MingLingXingTCPDuanKouZhuanFa.html#disqus_thread">0 讨论</a><a>Roy</a><a>Feb 22, 2020</a></div>
</div>
</div>
<div>
<h2><a id="PM2JiQunHuanJingShiYonglog4jsDaYinRiZhi" name="PM2集群环境使用log4js打印日志" href="/blog/PM2JiQunHuanJingShiYonglog4jsDaYinRiZhi.html">PM2集群环境使用log4js打印日志</a></h2>
<div class="blog_unit">
<div class="blog_content">
<p>pm2的日志性能很好,但log4js写起来更爽,用Node做开发追求的不就是敏捷开发么?</p>
<p>2020.03.01 更新解决不打印Console日志问题</p>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-d8757dce543f45eb8a40aeeaa5949d81-1.html?f=Node开发">Node开发 1</a> <a class="a-tag" href="/tag/tag-61bf7f7acabb40fd80b898f993a17b43-1.html?f=pm2">pm2 1</a><a class="a-tag" href="/tag/tag-da360ee28b8e413e80ccaa8e86fcda90-1.html?f=log4js">log4js 1</a></div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/PM2JiQunHuanJingShiYonglog4jsDaYinRiZhi.html#disqus_thread">0 讨论</a><a>Roy</a><a>Feb 22, 2020</a></div>
</div>
</div>
<div>
<h2><a id="YongDockerVagrantDaJianMesosShiYanHuanJing" name="用Docker、Vagrant搭建Mesos实验环境" href="/blog/YongDockerVagrantDaJianMesosShiYanHuanJing.html">用Docker、Vagrant搭建Mesos实验环境</a></h2>
<div class="blog_unit">
<div class="blog_content">
<p>Mesos躺在我的学习列表里面2年了,最近终于一口气玩了一把,也算完成一桩心事。</p>
<p>整个实验做下来,感觉生产环境可能原生安装会比较好,隔着Docker会有一些奇怪的问题。鉴于没有实战经验,也就不浪费时间瞎说了。</p>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-00f2de205f3e4737bfb1fa2574bdb6a5-1.html?f=学习">学习 1</a> <a class="a-tag" href="/tag/tag-43f6dca0eaf040ae9c527bc0a9dad327-1.html?f=Mesos">Mesos 1</a></div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/YongDockerVagrantDaJianMesosShiYanHuanJing.html#disqus_thread">0 讨论</a><a>Roy</a><a>Sep 21, 2019</a></div>
</div>
</div>
<div>
<h2><a id="IntelliJIDEAIUShuJuKuJiaoBenDaoChuJPAJDBCEntityWuLombok" name="IntelliJ IDEA IU数据库脚本: 导出JPA+JDBC Entity(无Lombok)" href="/blog/IntelliJIDEAIUShuJuKuJiaoBenDaoChuJPAJDBCEntityWuLombok.html">IntelliJ IDEA IU数据库脚本: 导出JPA+JDBC Entity(无Lombok)</a></h2>
<div class="blog_unit">
<div class="blog_content">
<p>使用方法: Database -> 右键数据库表 -> Scripted Extensions -> yourScript.groovy</p>
<p>生成Entity Class</p>
<p>内详</p>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-6cdd2a3f3bfb46cfa2c8b34ffdffcb1e-1.html?f=Java开发">Java开发 6</a> <a class="a-tag" href="/tag/tag-e75db186149a4d2fb15c5d1dba530356-1.html?f=Java">Java 2</a><a class="a-tag" href="/tag/tag-739faf8831284b65870dcdafac237a49-1.html?f=JPA/JDBC">JPA/JDBC 2</a></div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/IntelliJIDEAIUShuJuKuJiaoBenDaoChuJPAJDBCEntityWuLombok.html#disqus_thread">0 讨论</a><a>Roy</a><a>Aug 9, 2019</a></div>
</div>
</div>
<div>
<h2><a id="JavaHeKotlinHunYongYuDaoDeGeZhongWenTi" name="Java和Kotlin混用遇到的各种问题" href="/blog/JavaHeKotlinHunYongYuDaoDeGeZhongWenTi.html">Java和Kotlin混用遇到的各种问题</a></h2>
<div class="blog_unit">
<div class="blog_content">
<p>最近在旧Java项目中添加了Kotlin代码,感受到了新语法的魅力,也遇到了一些不尽如意的问题。使用不深,如有不妥还请指正。</p>
<p> </p>
<p><b>加分项</b></p>
<ol>
<li>SpringBoot集成无压力,快速嵌入。</li>
<li>语法简洁有效,既减少了冗余代码,又提高了可读性。</li>
<li>文档相对完善,遇到问题基本可以搜到解决方案。</li>
</ol>
<p> </p>
<p><b>减分项</b></p>
<ol>
<li>不支持Java代码的Lombok注释,或者说支持有缺陷。我配置了delombok也不能正确解析我自动生成的Entity类。</li>
<li>格式化代码很卡,我的2019.2 IU格式化或Inspection都会很卡顿(32G内存 + i7 7500U + 固态硬盘)。按理说自家产品支持力度应该很够,然并卵。</li>
<li>Java和Kotlin互调问题。Kotlin调用Java无压力,Java调用Kotlin就要注意权限了。</li>
<li>写算法部分能带来大量快感,日常代码并不会有太多优势。</li>
<li>不喜欢Kotlin的List类,没有集成Collection的大部分方法。</li>
</ol>
<p> </p>
<p>人生在于尝试,有的人浅尝辄止,有的人深入学习。<i><strike>而我在IDEA卡顿问题解决之前,不会再深入使用。</strike></i></p>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-6cdd2a3f3bfb46cfa2c8b34ffdffcb1e-1.html?f=Java开发">Java开发 6</a> </div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/JavaHeKotlinHunYongYuDaoDeGeZhongWenTi.html#disqus_thread">0 讨论</a><a>Roy</a><a>Aug 9, 2019</a></div>
</div>
</div>
<div>
<h2><a id="ElementJieTuShiYonghtml2canvasLeiKu" name="Element截图(使用html2canvas类库)" href="/blog/ElementJieTuShiYonghtml2canvasLeiKu.html">Element截图(使用html2canvas类库)</a></h2>
<div class="blog_unit">
<div class="blog_content">
<p>安装类库</p>
<pre class="language-bash"><code>npm install html2canvas --save</code></pre>
<p> </p>
<p><i>main.js</i>引入类库</p>
<pre class="language-javascript"><code>import html2canvas from 'html2canvas'
const MyPlugin = {
install(Vue, options) {
window.html2canvas = html2canvas
}
}
Vue.use(MyPlugin)</code></pre>
<p> </p>
<p>打印区域<i>capture</i></p>
<pre class="language-markup"><code><el-dialog :title="tempValues.bTable.title" id="capture" :visible.sync="tempValues.bTable.visiable" width="550px" height="978px" top="0vh" >
<!-- bTable -->
<el-table :data="tempValues.bTable.actionDataList" :cell-style="{'border': '1px dashed #ebeef5'}" :cell-class-name="_custom_tableCellClassNamePrint" :show-header="false" :key="tempValues.bTable.tableKey" v-loading="tempValues.bTable.loading" element-loading-text="正在加载数据" border fit highlight-current-row style="background: white!important; background-color: white!important; width: 100%">
<el-table-column header-align="center" :width="_custom_setColumnWidth(item.key)" :align="setColumnAlign(item.key)" :label="item.display_name" :key="item.key" v-for="item in visiblePrint">
<template slot-scope="scope">
<span style="font-size: 20px; font-weight: 400; width: 100%; height: 100%; display:block; padding: 8px 0 8px;">{{ scope.row[item.key] }}</span>
</template>
</el-table-column>
</el-table>
</el-dialog></code></pre>
<p> </p>
<p>打印方法</p>
<pre class="language-javascript"><code>async print(fileName) {
setTimeout(async function() {
window.html2canvas(document.querySelector('#capture').firstChild).then(canvas => {
// npm install file-saver
canvas.toBlob(function(blob) {
saveAs(blob, fileName + '.png')
})
})
}, 2000)
}</code></pre>
<p> </p>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-3ba9cece117140ca82056c0f92c15549-1.html?f=Web开发">Web开发 1</a> <a class="a-tag" href="/tag/tag-ecdfbaec143d4868992f4f8272a6995b-1.html?f=Vue.js">Vue.js 2</a></div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/ElementJieTuShiYonghtml2canvasLeiKu.html#disqus_thread">0 讨论</a><a>Roy</a><a>Aug 9, 2019</a></div>
</div>
</div>
<div>
<h2><a id="JavaShuChuWenZiBiaoGeGengXinV2" name="Java输出文字表格(更新V2)" href="/blog/JavaShuChuWenZiBiaoGeGengXinV2.html">Java输出文字表格(更新V2)</a></h2>
<div class="blog_unit">
<div class="blog_content">
<p>自己动手封装了一个String打印表格的类,兼容中文。</p>
<p>推荐一个真正的等宽Coding字体 <a href="https://github.com/be5invis/Sarasa-Gothic" target="_blank" rel="noopener">更纱黑体 Sarasa Term SC</a></p>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-6cdd2a3f3bfb46cfa2c8b34ffdffcb1e-1.html?f=Java开发">Java开发 6</a> </div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/JavaShuChuWenZiBiaoGeGengXinV2.html#disqus_thread">0 讨论</a><a>Roy</a><a>Jun 30, 2019</a></div>
</div>
</div>
<div>
<h2><a id="AnsiblePlaybookZiDongPeiZhiSSH" name="Ansible Playbook自动配置SSH" href="/blog/AnsiblePlaybookZiDongPeiZhiSSH.html">Ansible Playbook自动配置SSH</a></h2>
<div class="blog_unit">
<div class="blog_content">
<pre class="language-yaml"><code>---
- name: 16_PRO_SSHConfig.yml
hosts: all
gather_facts: yes
vars:
allow_root: True
allow_password: False
ssh_port: 34522
ssh_change_port: True
tasks:
- name: Delete GSS
lineinfile: dest=/etc/ssh/sshd_config state=absent regexp=".*GSS.*"
- name: Set UseDNS no
lineinfile: dest=/etc/ssh/sshd_config regexp=".*UseDNS.*" line="UseDNS no"
- name: if permit root login via publickey
lineinfile: dest=/etc/ssh/sshd_config regexp="^PermitRootLogin " insertafter="^#PermitRootLogin " line="PermitRootLogin without-password"
when: allow_root == 'True'
- name: if not allow rootlogin
lineinfile: dest=/etc/ssh/sshd_config regexp="^PermitRootLogin " insertafter="^#PermitRootLogin " line="PermitRootLogin no"
when: allow_root == 'False'
- lineinfile: dest=/etc/ssh/sshd_config regexp="^PasswordAuthentication" line="PasswordAuthentication yes"
when: allow_password == 'True'
- lineinfile: dest=/etc/ssh/sshd_config regexp="^PasswordAuthentication " line="PasswordAuthentication no"
when: allow_password == 'False'
- lineinfile: dest=/etc/ssh/sshd_config regexp="^RSAAuthentication " line="RSAAuthentication yes"
when: allow_password == 'False'
- lineinfile: dest=/etc/ssh/sshd_config regexp="^PubkeyAuthentication " line="PubkeyAuthentication yes"
when: allow_password == 'False'
- lineinfile: dest=/etc/ssh/sshd_config regexp="^AuthorizedKeysFile " line="AuthorizedKeysFile .ssh/authorized_keys"
when: allow_password == 'False'
- lineinfile: dest=/etc/ssh/sshd_config regexp=".*Port.*" line="Port {{ssh_port}}"
when: ssh_change_port == 'True'
- name: restart sshd service
service: name=sshd state=restarted</code></pre>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-e89135adf3fd41b18ad0b9f6f11d969b-1.html?f=运维">运维 10</a> <a class="a-tag" href="/tag/tag-482538027af8443d85893018b8c04b49-1.html?f=Ansible">Ansible 5</a><a class="a-tag" href="/tag/tag-8be888738248407aa574057256d807ad-1.html?f=OpenSSH">OpenSSH 2</a><a class="a-tag" href="/tag/tag-84d17d6b3e6f46548ef355a351332ab6-1.html?f=CentOS">CentOS 5</a></div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/AnsiblePlaybookZiDongPeiZhiSSH.html#disqus_thread">0 讨论</a><a>Roy</a><a>May 8, 2019</a></div>
</div>
</div>
<div>
<h2><a id="AnsiblePlaybookShenQingLetsEncryptZhengShu" name="Ansible Playbook申请Let's Encrypt证书" href="/blog/AnsiblePlaybookShenQingLetsEncryptZhengShu.html">Ansible Playbook申请Let's Encrypt证书</a></h2>
<div class="blog_unit">
<div class="blog_content">
<pre class="language-markup"><code>---
- name: Let's Encrypt CA CentOS 7.3[0.0.1] @LastModify 2018-11-13
hosts: all
gather_facts: yes
vars:
domain: www.***.com
mail: ****@qq.com
tasks:
- yum: name=yum-utils state=latest
- shell: yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
- yum: name=python2-certbot-nginx state=latest
- cron:
name: "let's encrypt cron"
minute: "0"
hour: "0,12"
job: "python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew --rsa-key-size 4096"
- name: certbot --rsa-key-size 4096 --nginx -d {{ domain }} --agree-tos --email {{ mail }} --no-bootstrap --server https://acme-v02.api.letsencrypt.org/directory
shell: certbot --rsa-key-size 4096 --nginx -d {{ domain }} --agree-tos --email {{ mail }} --no-bootstrap --server https://acme-v02.api.letsencrypt.org/directory
ignore_errors: yes
- name: test renew
shell: certbot renew --dry-run
ignore_errors: yes
# - shell: openssl dhparam -out /etc/letsencrypt/live/{{domain}}/dhparams.pem 4096</code></pre>
</div>
<div class="blog_type"><a class="a-type" href="/type/type-e89135adf3fd41b18ad0b9f6f11d969b-1.html?f=运维">运维 10</a> <a class="a-tag" href="/tag/tag-c20b4b5f29f644baba84ccad6dbb5017-1.html?f=Nginx">Nginx 3</a><a class="a-tag" href="/tag/tag-482538027af8443d85893018b8c04b49-1.html?f=Ansible">Ansible 5</a><a class="a-tag" href="/tag/tag-84d17d6b3e6f46548ef355a351332ab6-1.html?f=CentOS">CentOS 5</a></div>
<div class="blog_sign"><a href="https://lab023.github.io/blog/AnsiblePlaybookShenQingLetsEncryptZhengShu.html#disqus_thread">0 讨论</a><a>Roy</a><a>May 8, 2019</a></div>
</div>
</div>
<!-- pagination.ftl -->
<div class="d-pagination">
<a class="a-pagination next" href="/list/list-1.html">下页</a>
</div>
<!-- footer.ftl -->
<script>
var flag = false;
function showDonation(){
if(flag){
flag = false;
document.getElementsByClassName('d-donation')[0].style.display = 'none';
}else{
flag = true;
document.getElementsByClassName('d-donation')[0].style.display = 'block';
}
}
</script>
<div class="footer">
<p><a href="https://github.com/lab023/lab023.github.io/issues" >issue</a> | <a href="/LICENSE.txt" target="_blank">license</a></p>
</div>
<!-- Global Site Tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-130961613-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-130961613-1');
</script>
</div>
<div class="side_div" style="display: none">
<input type="text" id="search-input" onkeyup="blogSearch()" placeholder="搜索博客...">
<ul id="search-result">
</ul>
</div>
<!-- js.ftl -->
<script src="/js/prism.js"></script>
<script src="/js/fuse.js"></script>
<script id="dsq-count-scr" src="//lab023.disqus.com/count.js" async></script>
<script>
var midWidth = document.getElementsByTagName("body")[0].offsetWidth;
var windowWidth = document.getElementsByTagName("html")[0].offsetWidth;
var windowHeight = window.innerHeight;
var sideWidth = Math.floor((windowWidth - midWidth) / 2) - 20;
var sideHeight = windowHeight - 20;
document.getElementsByClassName("side_div")[0].style.width = sideWidth + 'px';
document.getElementsByClassName("side_div")[0].style.height = sideHeight + 'px';
document.getElementsByClassName("side_div")[0].style.display = 'block';
</script>
<script>
var books = [{"uri":"PM2JiQunHuanJingShiYonglog4jsDaYinRiZhi","title":"PM2集群环境使用log4js打印日志","subType":"Node开发","tags":["pm2","log4js"],"createdAt":1582348748000,"updatedAt":1583025820000},{"uri":"ShengChengGooglePlayappsigningWenJian","title":"生成Google Play app signing文件","subType":"Android开发","tags":[],"createdAt":1582510003000,"updatedAt":1582510216000},{"uri":"ElementJieTuShiYonghtml2canvasLeiKu","title":"Element截图(使用html2canvas类库)","subType":"Web开发","tags":["Vue.js"],"createdAt":1565310148000,"updatedAt":1582485387000},{"uri":"Windows10MingLingXingTCPDuanKouZhuanFa","title":"Windows 10命令行TCP端口转发","subType":"运维","tags":["Batch"],"createdAt":1582350378000,"updatedAt":1582350606000},{"uri":"YongDockerVagrantDaJianMesosShiYanHuanJing","title":"用Docker、Vagrant搭建Mesos实验环境","subType":"学习","tags":["Mesos"],"createdAt":1569041291000,"updatedAt":1569044046000},{"uri":"IntelliJIDEAIUShuJuKuJiaoBenDaoChuJPAJDBCEntityWuLombok","title":"IntelliJ IDEA IU数据库脚本: 导出JPA+JDBC Entity(无Lombok)","subType":"Java开发","tags":["Java","JPA/JDBC"],"createdAt":1565312511000,"updatedAt":1565312691000},{"uri":"JavaShuChuWenZiBiaoGeGengXinV2","title":"Java输出文字表格(更新V2)","subType":"Java开发","tags":[],"createdAt":1561853681000,"updatedAt":1565312330000},{"uri":"JavaHeKotlinHunYongYuDaoDeGeZhongWenTi","title":"Java和Kotlin混用遇到的各种问题","subType":"Java开发","tags":[],"createdAt":1565311096000,"updatedAt":1565312115000},{"uri":"AnsiblePlaybookShenQingLetsEncryptZhengShu","title":"Ansible Playbook申请Let's Encrypt证书","subType":"运维","tags":["Nginx","Ansible","CentOS"],"createdAt":1557304261000,"updatedAt":1561853609000},{"uri":"AnsiblePlaybookZiDongPeiZhiSSH","title":"Ansible Playbook自动配置SSH","subType":"运维","tags":["Ansible","OpenSSH","CentOS"],"createdAt":1557304532000,"updatedAt":1557305335000},{"uri":"AnsiblePlaybookNeiHeCanShuDiaoYou","title":"Ansible Playbook内核参数调优","subType":"运维","tags":["CentOS","Ansible"],"createdAt":1557304134000,"updatedAt":1557304455000},{"uri":"AnsiblePlaybookChuangJianappYongHu","title":"Ansible Playbook创建app用户","subType":"运维","tags":["Ansible","CentOS"],"createdAt":1557303978000,"updatedAt":1557304447000},{"uri":"AnsiblePlaybookAnZhuangJiChuZuJian","title":"Ansible Playbook安装基础组件","subType":"运维","tags":["CentOS","Ansible"],"createdAt":1557303798000,"updatedAt":1557304440000},{"uri":"NginxZiDongBianYiJiaoBen","title":"Nginx自动编译脚本","subType":"运维","tags":["Nginx","Linux"],"createdAt":1557302141000,"updatedAt":1557302329000},{"uri":"QualysSSLLabsManFenNginxPeiZhi","title":"Qualys SSL Labs满分Nginx配置","subType":"运维","tags":["Linux","Nginx"],"createdAt":1557301187000,"updatedAt":1557302160000},{"uri":"ZhangQiGengXinOpenSSHClientConfigTips","title":"「长期更新」OpenSSH Client Config Tips","subType":"运维","tags":["OpenSSH","Linux"],"createdAt":1555256928000,"updatedAt":1557299365000},{"uri":"IntelliJIDEAIUShuJuKuJiaoBenDaoChuJPAJDBCEntity","title":"IntelliJ IDEA IU数据库脚本: 导出JPA+JDBC Entity","subType":"Java开发","tags":["JPA/JDBC","Spring"],"createdAt":1556836584000,"updatedAt":1556932355000},{"uri":"IntelliJIDEAIUShuJuKuJiaoBenDaoChuJavaScriptDuiXiang","title":"IntelliJ IDEA IU数据库脚本: 导出JavaScript对象","subType":"Java开发","tags":["Vue.js","Spring","JavaScript"],"createdAt":1556836239000,"updatedAt":1556912228000},{"uri":"JiVPSTianJiaSWAPFenQu","title":"给VPS添加SWAP分区","subType":"运维","tags":["Virtualization","Linux"],"createdAt":1555258812000,"updatedAt":1556687285000},{"uri":"ZhangQiGengXinMavenCommandTips","title":"「长期更新」Maven Command Tips","subType":"Java开发","tags":["Maven","Java"],"createdAt":1556581489000,"updatedAt":1556654914000}];
var options = {
keys: ['title', 'uri', 'subType', 'tags']
};
var fuse = new Fuse(books, options);
console.log('search -> ', fuse.search(''));
function blogSearch () {
var text = document.getElementById("search-input").value;
var ulNode = document.getElementById('search-result');
var list = fuse.search(text);
var lis = '';
for (var i = 0; i < list.length; i++) {
lis += '<li><span class="a-type">' + list[i].subType + '</span><a href="/blog/' + list[i].uri +'.html">' + list[i].title + '</a></li>\n';
}
ulNode.innerHTML = lis;
}
</script>
</body>
</html>