├── .gitignore
├── LICENSE
├── README.md
├── bdzz
├── fudongdong_urls.txt
├── generateUrls.sh
├── push_fudongdong.com.sh
├── push_weizeling.com.sh
└── weizeling_urls.txt
├── bin
└── ossutil64
├── change_playground_index
├── docs
├── .vuepress
│ ├── .DS_Store
│ ├── SearchBox.vue
│ ├── components
│ │ ├── AudioPlayer.vue
│ │ ├── BlogComment.vue
│ │ ├── CssToJss.vue
│ │ ├── ImgPlayer.vue
│ │ ├── ImgPreview.vue
│ │ ├── ImgUploader.vue
│ │ ├── ImgView.vue
│ │ ├── ImgWithTitle.vue
│ │ ├── LastComment.vue
│ │ ├── LastPost.vue
│ │ ├── NaviLinks.vue
│ │ ├── OssPager.vue
│ │ ├── PhoneSnapshot.vue
│ │ ├── PvAccumulation.vue
│ │ ├── QrCodeRender.vue
│ │ ├── Qrcode.vue
│ │ ├── ShortUrl.vue
│ │ ├── SolidImgPlayer.vue
│ │ ├── TextTitle.vue
│ │ ├── TheEnd.vue
│ │ ├── VPhoneSnapshot.vue
│ │ ├── VideoPlayer.vue
│ │ └── WebFrame.vue
│ ├── config.js
│ ├── enhanceApp.js
│ ├── search.js
│ └── styles
│ │ └── index.styl
├── README.md
├── change_index
├── change_index.sh
├── change_playground_index
├── life
│ ├── 2022-labour-day.md
│ ├── 2024-new-year.md
│ ├── COVID-19.md
│ ├── README.md
│ ├── ai.md
│ ├── aosen.md
│ ├── baike.md
│ ├── beijing-wildlife-park.md
│ ├── bento.md
│ ├── bike.md
│ ├── billiards.md
│ ├── bombomspace.md
│ ├── christmas-of-2022.md
│ ├── chrome-keychain.md
│ ├── climbing.md
│ ├── cloud.md
│ ├── communication.md
│ ├── covid-19-positive.md
│ ├── da-wangjing-gongyuan.md
│ ├── dayidu.md
│ ├── decorate.md
│ ├── detection-of-covid-19.md
│ ├── economic-downturn.md
│ ├── email.md
│ ├── feeling.md
│ ├── first-snow-in-2022.md
│ ├── firstsnow.md
│ ├── flowercountry.md
│ ├── food.md
│ ├── friendship.md
│ ├── girl-in-spring-of-2022.md
│ ├── google-search-console.md
│ ├── halloween.md
│ ├── hengdian.md
│ ├── hk.md
│ ├── horrible-lift-well.md
│ ├── involution.md
│ ├── jeju.md
│ ├── july-xiangshan.md
│ ├── life-show.md
│ ├── love.md
│ ├── mingyu.md
│ ├── moha.md
│ ├── night.md
│ ├── olympic-forest-park.md
│ ├── olympic-tower.md
│ ├── openai.md
│ ├── pad-pasting.md
│ ├── playground.md
│ ├── procreate.md
│ ├── remove.md
│ ├── rent-a-house.md
│ ├── sanguo.md
│ ├── sanya.md
│ ├── sea.md
│ ├── shaoxing.md
│ ├── shijiazhuang.md
│ ├── sla-compensation.md
│ ├── snow.md
│ ├── solana.md
│ ├── spring-2023.md
│ ├── switch.md
│ ├── switchfitness.md
│ ├── taizhou.md
│ ├── thatgirl.md
│ ├── the-tomb-sweeping-day.md
│ ├── the-winter-olympics.md
│ ├── tianjin-2.md
│ ├── tianjin.md
│ ├── tianmen.md
│ ├── tsingtao.md
│ ├── turtledove.md
│ ├── ukraine.md
│ ├── us-visa.md
│ ├── usstock.md
│ ├── weight.md
│ ├── wine.md
│ ├── youth.md
│ ├── zelda-map.md
│ ├── zelda-overlook.md
│ ├── zelda.md
│ ├── zhuhai.md
│ └── zy-smooth4.md
├── misc
│ ├── 2021-11-06.md
│ ├── 2021-12-26.md
│ ├── README.md
│ ├── ai-usage.md
│ ├── ai.md
│ ├── aigc.md
│ ├── alfred-adcode-query.md
│ ├── alfred.md
│ ├── algolia.md
│ ├── aliyun.md
│ ├── android.md
│ ├── art-of-strategy.md
│ ├── attack-tuchuang.md
│ ├── blog-upgrade.md
│ ├── centos-8-eof.md
│ ├── china-in-1925.md
│ ├── chrome-extensions.md
│ ├── cmd-recommend.md
│ ├── comment-plugin.md
│ ├── contact.md
│ ├── cultrue-of-argument.md
│ ├── ddos-new.md
│ ├── ddos.md
│ ├── debian.md
│ ├── discrimination.md
│ ├── document-fragment.md
│ ├── fav-website.md
│ ├── gmail.md
│ ├── goodthings.md
│ ├── google-ads.md
│ ├── horror-music.md
│ ├── iOS16.md
│ ├── idea-plugins.md
│ ├── img-cloud.md
│ ├── invalid-attack.md
│ ├── ip-query.md
│ ├── ishot.md
│ ├── issue-from-comment-plugins.md
│ ├── it-tools.md
│ ├── iterm2.md
│ ├── karabiner.md
│ ├── lightproxy.md
│ ├── macos-ventura.md
│ ├── meiguodaxuan.md
│ ├── mvn.md
│ ├── new-macbook.md
│ ├── old-videos.md
│ ├── open-source-request.md
│ ├── opera.md
│ ├── paris-olympic-games.md
│ ├── pdf-to-url.md
│ ├── phone-blog.md
│ ├── plaza.md
│ ├── qrcode.md
│ ├── real-estate-trend.md
│ ├── realtime-caption.md
│ ├── redis-search.md
│ ├── religious.md
│ ├── rent-ratio.md
│ ├── report.md
│ ├── riskprins.md
│ ├── robots.txt.md
│ ├── rom.md
│ ├── ru.md
│ ├── short-url.md
│ ├── shortcut.md
│ ├── sls.md
│ ├── tech-article-skill.md
│ ├── the-nature-of-management.md
│ ├── try-files.md
│ ├── tuchuang-upgrade.md
│ ├── tuchuang.md
│ ├── ukraine.md
│ ├── ussr.md
│ ├── vue-weekly-download.md
│ ├── watermask.md
│ ├── weibo-jubao.md
│ ├── z-dot-wiki.md
│ └── zlib.md
├── notfound.md
├── resource
│ ├── apps.md
│ ├── ebooks.md
│ └── system-mirror-iso.md
├── snippets
│ ├── README.md
│ ├── css
│ │ ├── README.md
│ │ └── loading.md
│ ├── htaccess
│ │ ├── 301-redirects.md
│ │ └── README.md
│ ├── html
│ │ ├── README.md
│ │ └── no-spider.md
│ ├── javascript
│ │ ├── README.md
│ │ ├── csv-to-json.md
│ │ ├── debounce.md
│ │ ├── download-csv.md
│ │ ├── html-to-dom.md
│ │ ├── inject-script-dynamic.md
│ │ ├── set-cookie.md
│ │ ├── sleep.md
│ │ ├── sub-string-by-bytelength.md
│ │ └── timeago.md
│ ├── mac
│ │ ├── README.md
│ │ └── apache.md
│ ├── nginx
│ │ ├── README.md
│ │ ├── inject.md
│ │ ├── limit-req.md
│ │ ├── nginx-cache.md
│ │ ├── nginx-header.md
│ │ ├── nginx-log.md
│ │ ├── proxy.md
│ │ └── redirect.md
│ ├── robots
│ │ ├── README.md
│ │ └── robots.txt.md
│ └── shell
│ │ ├── README.md
│ │ ├── allproxy.md
│ │ ├── authorized_keys.md
│ │ ├── base64.md
│ │ ├── bc.md
│ │ ├── bg.md
│ │ ├── create-big-file.md
│ │ ├── crontab.md
│ │ ├── curl.md
│ │ ├── diff.md
│ │ ├── exclude-in-find-and-grep.md
│ │ ├── file.md
│ │ ├── find-exec.md
│ │ ├── gzip.md
│ │ ├── loop.md
│ │ ├── lsof.md
│ │ ├── num-seq.md
│ │ ├── number-compare.md
│ │ ├── parallel.md
│ │ ├── progress-bar.md
│ │ ├── rgeo.md
│ │ └── string-compare.md
├── tech
│ ├── 360zz.md
│ ├── README.md
│ ├── ai-text-split.md
│ ├── apple-privacy-protection.md
│ ├── arthas.md
│ ├── aspx.md
│ ├── baota.md
│ ├── bdzz.md
│ ├── beian.md
│ ├── cdn.md
│ ├── centos-set-swap.md
│ ├── chkconfig.md
│ ├── chromeext.md
│ ├── coordinate-system.md
│ ├── coroutine.md
│ ├── crontab.md
│ ├── css-to-jss.md
│ ├── db.md
│ ├── docker-container-port.md
│ ├── docker-tech.md
│ ├── docker.md
│ ├── download-speed.md
│ ├── edge-rubbish.md
│ ├── free-domain.md
│ ├── git.md
│ ├── github-passkey.md
│ ├── glm-130b.md
│ ├── google-console-insight.md
│ ├── google-seo.md
│ ├── growth.md
│ ├── here-document.md
│ ├── html-space-entity.md
│ ├── http.md
│ ├── http2.md
│ ├── java-httpclient.md
│ ├── jsbin.md
│ ├── jsonpath.md
│ ├── koa-vs-egg.md
│ ├── lets-encrypt.md
│ ├── lsof.md
│ ├── meeting.md
│ ├── mfe.md
│ ├── my-first-post-in-stackoverflow.md
│ ├── mysql-login.md
│ ├── neovim.md
│ ├── nginx-cache.md
│ ├── nodejs_chart.md
│ ├── placeholder.md
│ ├── pronunciation.md
│ ├── python.md
│ ├── request-merge.md
│ ├── reversal.md
│ ├── ripgrep.md
│ ├── secure-gallery.md
│ ├── shell.md
│ ├── snippets.md
│ ├── springboot-circular-dependencies.md
│ ├── sse.md
│ ├── tls.md
│ ├── uuid.md
│ ├── vim-jump.md
│ └── vim-macro.md
├── tmp.file
└── work
│ ├── README.md
│ ├── my-minds.md
│ ├── performance.md
│ └── the-answers-of-alibaba.md
├── log.txt
├── package-lock.json
├── package.json
├── shell
└── notice.sh
├── tools
├── manifest.json
├── reg
│ ├── index.html
│ └── reg_files
│ │ └── regex_tester.png
├── videos
│ └── 91E93E4050784659E14B59B3B52BBE05.MP4
└── works.html
└── update_index.sh
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | node_modules
3 | .DS_Store
4 |
5 |
6 | dist
7 | yarn-error.log
8 | deploy.sh
9 | clean_node_modules.sh
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | # blog of aowu
3 |
4 |
5 |
6 | [敖武的博客](https://z.wiki/)
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/bdzz/fudongdong_urls.txt:
--------------------------------------------------------------------------------
1 | https://z.wiki/
2 | https://z.wiki/tech/
3 | https://z.wiki/tech/docker.html
4 |
--------------------------------------------------------------------------------
/bdzz/generateUrls.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | cd ./docs
4 | find . -name "*.md" ! -path "*node_modules*" | sed 's/\.md/\.html/g' | sed 's/\.\//https:\/\/z.wiki\//g' > ../bdzz/fudongdong_urls.txt
5 | find . -name "*.md" ! -path "*node_modules*" | sed 's/\.md/\.html/g' | sed 's/\.\//https:\/\/weizeling.com\//g' > ../bdzz/weizeling_urls.txt
6 | cd ..
7 |
--------------------------------------------------------------------------------
/bdzz/push_fudongdong.com.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | curl -H 'Content-Type:text/plain' --data-binary @fudongdong_urls.txt "http://data.zz.baidu.com/urls?site=https://z.wiki&token=${1}"
4 |
--------------------------------------------------------------------------------
/bdzz/push_weizeling.com.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | curl -H 'Content-Type:text/plain' --data-binary @weizeling_urls.txt "http://data.zz.baidu.com/urls?site=https://weizeling.com&token=${1}"
4 |
--------------------------------------------------------------------------------
/bdzz/weizeling_urls.txt:
--------------------------------------------------------------------------------
1 | https://weizeling.com/
2 | https://weizeling.com/tech/
3 | https://weizeling.com/tech/docker.html
4 |
--------------------------------------------------------------------------------
/bin/ossutil64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yihuaxiang/ossblog/08256a0a59bc89fdbfe2d3b727e660c747bfb71f/bin/ossutil64
--------------------------------------------------------------------------------
/docs/.vuepress/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yihuaxiang/ossblog/08256a0a59bc89fdbfe2d3b727e660c747bfb71f/docs/.vuepress/.DS_Store
--------------------------------------------------------------------------------
/docs/.vuepress/components/AudioPlayer.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
27 |
28 |
33 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/ImgWithTitle.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{img.title}}
6 |
{{img.desc}}
7 |
8 |
9 |
10 |
11 |
36 |
37 |
84 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/NaviLinks.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
站点导航
4 |
5 |
6 |
7 | -
8 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
57 |
58 |
61 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/OssPager.vue:
--------------------------------------------------------------------------------
1 |
2 |
21 |
22 |
23 |
47 |
48 |
63 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/PvAccumulation.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | 访问量:{{pv || '-'}}
4 |
5 |
6 |
7 |
44 |
45 |
53 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/QrCodeRender.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
![]()
4 |
5 |
6 |
7 |
32 |
33 |
41 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/TextTitle.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
20 |
21 |
26 |
27 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/TheEnd.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/VPhoneSnapshot.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
![]()
4 |
5 |
6 |
7 |
8 |
9 |
10 |
29 |
30 |
79 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/VideoPlayer.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
22 |
23 |
28 |
--------------------------------------------------------------------------------
/docs/.vuepress/components/WebFrame.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
19 |
20 |
50 |
--------------------------------------------------------------------------------
/docs/.vuepress/search.js:
--------------------------------------------------------------------------------
1 | const { path } = require('@vuepress/shared-utils')
2 |
3 | /**
4 | * @type {import('@vuepress/types').Plugin}
5 | */
6 | module.exports = (options) => ({
7 | alias: {
8 | '@SearchBox':
9 | path.resolve(__dirname, 'SearchBox.vue')
10 | }
11 | })
12 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 敖武的博客,分享我的生活、技术、经验、总结
5 | - name: keywords
6 | content: 敖武的博客,技术,博客,经验,总结,思考,github
7 | ---
8 | # 欢迎👏🏻👏🏻👏🏻
9 |
10 | ## 关于博主
11 |
12 |
13 |
14 |
15 |
16 |
25 |
26 |
27 |
33 |
34 | 本站作者[敖武](https://z.wiki),站点为 [z.wiki](https://z.wiki)。
35 |
36 |
37 | 朋友,留下评论吧,毕竟这里有红包🧧
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 | ## 序
50 |
51 | 请赐予我力量,全力改变那些可以改变的事情,平静接受那些无能为力的事情,拥有智慧区分这两者。
52 |
53 |
54 | [京ICP备2021035392号](https://beian.miit.gov.cn/)
55 |
--------------------------------------------------------------------------------
/docs/life/2022-labour-day.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 2022年劳动节记录,分享劳动节期间的美好时光和照片
5 | - name: keywords
6 | content: 劳动节,2022,假期,照片,记录
7 | tags: ["生活", "假期", "劳动节", "2022"]
8 | ---
9 |
10 |
11 | # 22年劳动节
12 |
13 | 犒劳下自己,劳动节,劳动者最光荣~
14 |
15 |
--------------------------------------------------------------------------------
/docs/life/2024-new-year.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 2024年春节期间峨眉山之旅记录,分享峨眉山美景和旅行体验
5 | - name: keywords
6 | content: 峨眉山,春节,2024,旅行,风景,摄影
7 | tags: ["峨眉山", "春节", "2024", "旅行", "摄影"]
8 | ---
9 |
10 | # 2024年春节
11 |
12 | 大年初一前往[峨眉山](https://baike.baidu.com/item/%E5%B3%A8%E7%9C%89%E5%B1%B1/2676)。
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 |
--------------------------------------------------------------------------------
/docs/life/COVID-19.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 新冠疫情第三年的北京情况,记录疫情期间的生活状态和政府管控政策变化
5 | - name: keywords
6 | content: 新冠,COVID-19,疫情,北京,感染,管控,放开
7 | tags: ["COVID-19", "新冠", "疫情", "北京"]
8 | ---
9 |
10 | # 新冠第三年
11 |
12 | 新冠疫情爆发的第三年了,北京每天上千例感染,而且政府要放开管制的样子了
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/life/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 这里是我的生活记录,包含旅行、健身、节日和季节性活动的点滴记录
5 | - name: keywords
6 | content: 生活记录,青岛之旅,健身环,万圣节,大雪球,生活博客
7 | tags: ["生活", "旅行", "健身", "节日", "记录"]
8 | ---
9 |
10 | # 这里是我的生活记录
11 |
12 |
13 | 这里是生活相关记录,点击以下链接看详细内容吧(*❦ω❦)
14 |
15 |
16 |
17 | [青岛之旅](/life/tsingtao.html)
18 |
19 |
20 |
21 | [健身环之初体验](/life/switchfitness.html)
22 |
23 |
24 |
25 |
26 | [万圣节](/life/halloween.html)
27 |
28 |
29 |
30 |
31 | [大雪球](/life/snow.html)
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/docs/life/ai.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 敖武的 AI 助手
5 | - name: keywords
6 | content: 敖武的 AI 助手
7 | tags: ["AI", "助手", "敖武"]
8 | ---
9 |
10 | # 敖武的 AI 助手
11 |
12 |
13 |
14 | 关注 敖武的公众号 来体验以下吧🤣
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/life/aosen.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 北京 奥林匹克森林公园 鸳鸯
5 | - name: keywords
6 | content: 北京 奥林匹克森林公园 鸳鸯
7 | ---
8 | # 奥林匹克森林公园
9 |
10 |
11 |
19 |
20 |
--------------------------------------------------------------------------------
/docs/life/bento.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 健康又营养的减肥餐,明日便当食谱分享,帮助你轻松减肥的美味便当
5 | - name: keywords
6 | content: 便当,减肥餐,健康饮食,营养餐,明日便当
7 | tags: ["便当", "减肥餐", "健康饮食"]
8 | ---
9 |
10 |
11 | # 明日便当
12 |
13 | 健康又营养的减肥餐
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/life/bike.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 骑行指南与经验分享,包括自行车选购、维护保养、骑行技巧和路线推荐
5 | - name: keywords
6 | content: 骑行,自行车,单车,维护,保养,技巧,路线
7 | tags: ["骑行", "自行车", "单车", "户外运动"]
8 | ---
9 |
10 | # 骑行
11 |
12 | 见评论区。
13 |
--------------------------------------------------------------------------------
/docs/life/billiards.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 记录我的台球体验,从第一次打台球到后续的学习过程,分享台球初学者的心得体会
5 | - name: keywords
6 | content: 台球,桌球,初学者,体验,团建,休闲活动
7 | tags: ["台球", "桌球", "休闲活动", "生活记录"]
8 | ---
9 |
10 | # 第一次台球
11 |
12 | ### 首次体验
13 |
14 | 团建去打台球😀,第一次体验,针不戳、针不戳
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | 关注下,改天周末继续~
23 |
24 | ### 第二次体验
25 |
26 | 在大众点评上买了一张18元一小时的优惠券,去了才发现,啊,只能工作日使用,😌,不过现场八折优惠啊,👏👏
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/docs/life/christmas-of-2022.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 2022年圣诞节记录,包含玲娜贝儿-星黛露、金汤肥牛、好柿连连以及东小口城市休闲公园的照片和回忆
5 | - name: keywords
6 | content: 圣诞节,2022,玲娜贝儿,星黛露,金汤肥牛,好柿连连,东小口城市休闲公园
7 | tags: ["圣诞节", "2022", "玲娜贝儿", "星黛露", "美食", "公园"]
8 | ---
9 |
10 | # 2022年圣诞节
11 |
12 | ### 玲娜贝儿-星黛露
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | ### 金汤肥牛
21 |
22 |
23 |
24 |
25 |
26 | ### 好柿连连
27 |
28 |
29 |
30 | ### 东小口城市休闲公园
31 |
32 |
33 |
--------------------------------------------------------------------------------
/docs/life/chrome-keychain.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Chrome 与 keychain 的使用问题,Chrome 无法将密码存储到 keychain,以及通过 Safari 同步 Chrome 密码的解决方案
5 | - name: keywords
6 | content: Chrome,keychain,密码,同步,Safari,1password,密码管理
7 | tags: ["Chrome", "keychain", "密码管理", "Safari"]
8 | ---
9 |
10 | # chrome 与 keychain
11 |
12 | `Chrome`从`45`版本开始便无法将密码存储到`keychain`。
13 |
14 |
15 |
16 | 自此我一直生活在某种痛苦中:
17 | 我的一部分密码在`Google`的密码服务里面,
18 | 一部分在苹果的服务里面,
19 | 而且在国内访问谷歌又不方便,一但有紧急情况需要登录某系统的时候就只能通过电脑来操作。
20 |
21 |
22 |
23 | 所以我很长一段时间都在使用`1password`来实现全平台密码共享。但是架不住`1password`收费太贵了,每月`2.99`美元。
24 |
25 |
26 |
27 |
28 | 今天突然发现`safari`有从`Chrome`同步密码的功能,解决了我很大的痛苦:
29 | 所有的密码我都可以很方便的通过`keychain`获取,无论是在电脑上、手机上、平板上。
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/docs/life/climbing.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 敖武的爬山新装备
5 | - name: keywords
6 | content: 敖武的爬山新装备,登山杖
7 | ---
8 | # 爬山新装备
9 |
10 | 上周末刚爬[完香山](https://z.wiki/life/july-xiangshan.html),这周对爬山的热情迟迟无法消退。
11 |
12 | ### 登山杖
13 |
14 | 趁着热情尚未退却,多买点装备多爬几次山。在京东上买了两个登山杖(一个开拓者、一个探路者)。
15 |
16 |
17 |
22 |
23 | ### 为什么
24 |
25 | 1. 登山杖在爬山过程中可以很好的缓解腿部压力(特别是负重的情况下)
26 | 2. 登山杖可以辅助保持身体平衡
27 | 3. 加快爬山速度
28 | 4. 下坡时减轻落地的震动,保护膝盖
29 |
30 | ### 登山杖指北
31 |
32 | #### 直柄与T柄
33 |
34 |
35 |
36 | `T`柄又叫拐杖柄,适合腿脚不便的人群,其他人群则适合直柄。
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 | 登山杖一版都`200g`以内,和材质有关系,铝合金较重、碳纤维较轻。折叠起来后长度大约`65cm`以内,折叠型更短。
65 |
66 |
67 |
68 | #### 其他
69 |
70 | 1. 两根同时使用,为保证身体左右平衡,建议同时使用两个,毕竟四条腿远比三条腿稳定(doge)。
71 |
--------------------------------------------------------------------------------
/docs/life/cloud.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 锦绣河山,记录从杭州前往珠海的旅途风景与感受
5 | - name: keywords
6 | content: 锦绣河山,杭州,珠海,旅行,风景
7 | tags: ["旅行", "风景", "杭州", "珠海"]
8 | ---
9 |
10 | # 锦绣河山
11 |
12 | 从杭州前往珠海的路上
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/life/communication.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 良好的沟通技巧与原则,包括高效沟通和高情商沟通的8项原则,帮助解决80%以上的问题
5 | - name: keywords
6 | content: 沟通,沟通技巧,高效沟通,高情商沟通,清晰明了,重点前置,情绪管理,换位思考
7 | tags: ["沟通", "沟通技巧", "人际关系", "情商"]
8 | ---
9 |
10 | # 良好的沟通
11 |
12 | > 内容来自 [作家 李鲆](https://weibo.com/u/1226157155)
13 |
14 | ### 良好的沟通,可以解决80%以上的问题。
15 |
16 | 沟通可以分为高效沟通和高情商沟通,但二者并非泾渭分明。只是因时、因事、因人侧重不同。
17 |
18 | 简单来说,沟通有8项原则:
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 |
--------------------------------------------------------------------------------
/docs/life/covid-19-positive.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 记录新冠阳性的经历,包括症状发展过程、抗原检测结果以及个人感受
5 | - name: keywords
6 | content: 新冠,COVID-19,阳性,抗原检测,症状,发烧,弱阳性
7 | tags: ["新冠", "COVID-19", "健康", "抗原检测"]
8 | ---
9 |
10 | # 这就阳了?
11 |
12 | 周五晚上有点渴,回家后喝了不少水,周六感觉有点热,测了体温不算发烧(`37.2℃`),周六晚上就不行了,起来拉肚子好几次😌,今天发烧(`38℃`以上),哎
13 |
14 | 找我姐借了几个抗原试剂,这是弱阳性?🤔,第二条线特别不明显哎
15 |
16 |
17 |
18 | 果然,阳了。
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/life/decorate.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 家庭装修注意事项
5 | - name: keywords
6 | content: 橱柜,装修,家装,敖武,厨房,注意事项
7 | ---
8 | # 装修注意事项
9 |
10 | 最近搬家后想把厨房进行简单的装修,虽然这辈子已经第二次装修了,但是还是有很多坑不认得、没规避好,故写此总结,避免下次吃亏
11 |
12 | ### 价格忽悠
13 |
14 |
15 |
16 | 价格忽悠:谈的时候直说一延米的价格,其实还有很多其他的,加一块价格翻倍了(荷叶、拉手、抽屉、等等都要收费),有些费用看着少,加一起特别多,比如:
17 |
18 | - 荷叶10块钱,30个需要300块
19 | - 抽屉一个100,三个300块
20 | - 开口费(灶台、水池)一个一百
21 | - 拉手:240块
22 | - 等等
23 |
24 | 我只能说,套路太多了,防不胜防但是不得不防。
25 |
26 | ### 预付金
27 |
28 |
29 |
30 | 预付金一定不要交太多,卖家都是身经百战、各种玩弄顾客,让顾客交尽可能多的预付金,一旦钱交出去了你的底线就没了,所以一定要少交点预付金,比如:60%、70%。
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 |
--------------------------------------------------------------------------------
/docs/life/detection-of-covid-19.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 新冠感染检测方法及流程,包括核酸检测、抗原检测以及症状识别等内容
5 | - name: keywords
6 | content: 新冠,COVID-19,检测,核酸,抗原,症状,感染
7 | tags: ["COVID-19", "新冠", "检测", "健康"]
8 | ---
9 |
10 | # 新冠感染检测
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/life/economic-downturn.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 经济下行时期的个人生活记录,分享如何通过回收纸箱等副业增加收入的真实经历
5 | - name: keywords
6 | content: 经济下行,副业,纸箱回收,生活记录,额外收入
7 | tags: ["经济下行", "副业", "生活记录", "纸箱回收"]
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 |
--------------------------------------------------------------------------------
/docs/life/email.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 个人邮箱服务搭建与使用体验,分享自建邮箱服务器的过程和心得
5 | - name: keywords
6 | content: 邮箱,自建邮箱,邮件服务器,个人邮箱,电子邮件
7 | tags: ["邮箱", "自建服务", "电子邮件", "个人服务"]
8 | ---
9 |
10 | # 自己的邮箱
11 |
12 | 搞了一个自己的邮箱服务😀😀
13 |
--------------------------------------------------------------------------------
/docs/life/feeling.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 探讨人际关系中的不安全感,如何面对关系中的恐惧、愤怒和猜忌,以及挽救破裂关系的方法
5 | - name: keywords
6 | content: 感情,不安全感,关系,恐惧,愤怒,猜忌,成长差异
7 | tags: ["感情", "关系", "心理", "成长"]
8 | ---
9 |
10 | # 握不住的感觉
11 |
12 | 你平时会有那种握不住的感觉吗?
13 |
14 | 就像你的爱情一样,一开始你以为很稳固,但是后来感觉对方比你进步快,越来越不同频了,你被落下去了,
15 | 然后你就越来越愤怒,“他有了新朋友,有了新的成绩”,
16 | 你全都很愤怒,一开始你有这种感觉,你也觉得很可笑,很不理性,但是后来越来越强烈,无法控制住自己,
17 | 当你被这种愤怒和恐惧支配了之后,你会做出很多伤害这段关系的行为,不管是猜忌还是言语上的攻击,
18 | 在本来良好的关系上戳了一个有一个伤口,最后再也回不去了。
19 |
--------------------------------------------------------------------------------
/docs/life/first-snow-in-2022.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 2022年的第一场雪,记录冬日美景和美食
5 | - name: keywords
6 | content: 2022,第一场雪,冬天,雪景,意面
7 | tags: ["生活", "雪景", "美食", "2022"]
8 | ---
9 |
10 | # 2022年的第一场雪
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 |
--------------------------------------------------------------------------------
/docs/life/firstsnow.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 北京大雪,北京2021年初雪,望京下雪啦~
5 | - name: keywords
6 | content: 北京,望京,大雪,初雪,美女
7 | ---
8 | # 2021年初雪
9 |
10 |
11 |
12 | 一年有四个季节,每个季节都有不同的景色,而我最喜欢冬天下雪时的壮丽景色。冬天,大雪纷飞人们好象来到了一个幽雅恬静的境界,来到了一个晶莹透剔的童话般的世界。松的那清香,白雪的那冰香,给人一种凉莹莹的抚慰。一切都在过滤,一切都在升华,连我的心灵也在净化,变得纯洁而又美好。
13 |
14 |
15 |
16 | [comment]: <> ()
17 |
18 | [comment]: <> ()
19 |
20 | [comment]: <> ()
21 |
22 | [comment]: <> ()
23 |
24 | [comment]: <> ()
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 |
--------------------------------------------------------------------------------
/docs/life/flowercountry.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 欢乐谷半日游
5 | - name: keywords
6 | content: 北京,欢乐谷,游玩,观光,夏日
7 | tags: ["欢乐谷", "北京", "夏日"]
8 | ---
9 | # 花花世界
10 |
11 | 21年在欢乐谷
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 |
--------------------------------------------------------------------------------
/docs/life/friendship.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 探讨如何维持长久的友谊和交情,包括兴趣爱好、利益关系、亲情关系、深刻的交情和共同圈子等因素
5 | - name: keywords
6 | content: 交情,友谊,长久,兴趣爱好,利益关系,亲情,深刻交情,共同圈子
7 | tags: ["交情", "友谊", "人际关系", "社交"]
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 | 1. 工作上需要相互支持
35 | 2. 生活上需要相互照顾
36 |
37 | ### 亲情关系
38 |
39 |
40 |
41 |
42 | 亲情最难割舍,也无法割舍,平时也会相互照应,这种没有什么深仇大恨也都能长久下去,即使平时没有联系有事儿了一个电话也都能聚到一起。
43 |
44 | ### 深刻的交情
45 |
46 |
47 |
48 |
49 | 如同上学时最要好的朋友,可能在不同的城市,平时联系少,但会互相挂念、互相惦记。
50 |
51 | ### 共同的圈子
52 |
53 |
54 |
55 |
56 | 拥有共同的圈子也容易友谊地久天长,不然一群人聚在一起,你聊你的别墅、他聊他的仕途、我聊我的网贷,
57 | 除了泛黄的曾经的共同记忆其他的真聊不到一起。
58 |
--------------------------------------------------------------------------------
/docs/life/girl-in-spring-of-2022.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 春日出游记录,包含海棠花、花下姑娘和奥林匹克公园的美丽景色和照片
5 | - name: keywords
6 | content: 春日,出游,海棠花,奥林匹克公园,照片,春天
7 | tags: ["春天", "出游", "摄影", "海棠花", "奥林匹克公园"]
8 | ---
9 |
10 | # 春日出游
11 |
12 | ### 海棠花
13 |
14 | (请自动忽略臭水沟
15 |
21 |
22 |
23 |
24 | ### 花下姑娘
25 |
26 | 嗯?花姑娘?哦不,花下姑娘。。
27 |
35 |
36 |
37 |
38 | ### 奥林匹克公园
39 |
40 | (咳咳,P图过头了
41 |
47 |
48 |
--------------------------------------------------------------------------------
/docs/life/google-search-console.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Google Search Console 谷歌 站长
5 | - name: keywords
6 | content: Google Search Console 谷歌 站长
7 | ---
8 | # 网站搜索情况
9 |
10 | 前几天注册了 [Google Search Console](https://search.google.com/search-console/performance/search-analytics) ,看了下数据,还真有搜索 PV,惊喜
11 |
12 |
13 |
14 | ### 关键词
15 |
16 |
17 |
18 |
19 |
20 | 1. uuid 长度
21 | 2. adcode 查询
22 | 3. nginx 缓存配置
23 |
24 | 这几个关键词的搜索结果都在前五名
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/docs/life/halloween.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags: ["北京", "欢乐谷", "万圣节"]
3 | ---
4 |
5 | # 万圣节
6 |
7 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | 古拉古拉
25 |
--------------------------------------------------------------------------------
/docs/life/hk.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 香港旅游攻略,包含香港景点、美食、交通和住宿等实用信息
5 | - name: keywords
6 | content: 香港,旅游,攻略,景点,美食,交通,住宿
7 | tags: ["香港", "旅游", "攻略"]
8 | ---
9 |
10 | # 香港
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/docs/life/horrible-lift-well.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 恐怖电梯间体验记录,从30层步行下楼的阴暗惊悚经历和视频分享
5 | - name: keywords
6 | content: 恐怖电梯间,高层步行,阴暗楼梯,惊悚体验,视频记录
7 | tags: ["恐怖", "电梯间", "高层", "步行", "视频"]
8 | ---
9 |
10 | # 恐怖电梯间
11 |
12 | 😱😱😱
13 |
14 | 从将近`30`层走下去,足足走了`5`分钟,而且越往下越阴暗😱😱😱
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/life/involution.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 如何避开内卷,介绍降维竞争的多种方式,包括城市降维、学历降维、技能降维、国家降维、思维降维和颜值降维
5 | - name: keywords
6 | content: 内卷,避开内卷,降维,降维竞争,蓝海,城市降维,学历降维,技能降维,国家降维,思维降维,颜值降维
7 | tags: ["内卷", "降维", "蓝海", "竞争"]
8 | ---
9 |
10 | # 如何避开内卷 --- 风中的厂长
11 |
12 | 内容来自[风中的厂长](https://weibo.com/u/6169408204)
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 |
--------------------------------------------------------------------------------
/docs/life/jeju.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 韩国济州岛四日游攻略,详细介绍济州岛的景点、美食、住宿和交通信息
5 | - name: keywords
6 | content: 济州岛,韩国,旅游,攻略,四日游,景点,美食,住宿,交通
7 | tags: ["济州岛", "韩国", "旅游", "攻略"]
8 | ---
9 |
10 | # 济州
11 |
12 | 韩国济州岛四日游 啦啦啦
13 |
--------------------------------------------------------------------------------
/docs/life/life-show.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 马面裙写真集,展示精美的马面裙造型和摄影作品
5 | - name: keywords
6 | content: 马面裙,写真,摄影,造型,时尚
7 | tags: ["马面裙", "写真", "摄影", "时尚"]
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 |
--------------------------------------------------------------------------------
/docs/life/love.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 李峋之昌平分峋,展示爱心动画效果的实现方法和源码
5 | - name: keywords
6 | content: 李峋,昌平分峋,爱心,动画,JavaScript
7 | tags: ["李峋", "爱心", "动画", "JavaScript"]
8 | ---
9 |
10 | # 李峋之昌平分峋
11 |
12 |
13 |
14 | 源码:[爱心](https://z.wiki/jsbin/coquxevuko/edit?html,output)
15 |
--------------------------------------------------------------------------------
/docs/life/mingyu.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 探讨人生命运的无常与变化,从大悲到大喜,从天堂到地狱的瞬息转变
5 | - name: keywords
6 | content: 命运,人生,变化,无常,大悲大喜,人生哲学
7 | tags: ["命运", "人生", "哲学", "变化", "无常"]
8 | ---
9 |
10 | # 命运
11 |
12 | 人生的命运太不可测了,从大悲到大喜就在一瞬间,从天堂到地狱就在一刹那。
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/life/moha.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 苟利国家生死以
5 | - name: keywords
6 | content: 苟利国家生死以
7 | ---
8 | # 苟利国家生死以
9 |
10 | 苟利国家生死以 岂因祸福避趋之
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/life/night.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 夜晚的魅力与意义,探讨夜晚的安静、思考与休息,以及如何充分利用夜间时光
5 | - name: keywords
6 | content: 夜晚,夜生活,睡眠,休息,思考,安静,放松
7 | tags: ["夜晚", "生活", "休息", "思考"]
8 | ---
9 |
10 | # 夜晚
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/life/olympic-forest-park.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 五四奥森游记,记录在奥林匹克森林公园的游玩经历和美景
5 | - name: keywords
6 | content: 奥林匹克森林公园,奥森,北京,游记,公园,奥林匹克塔
7 | tags: ["奥林匹克森林公园", "奥森", "北京", "游记"]
8 | ---
9 |
10 | # 五四奥森游
11 |
12 | 带着小仙女、顶着烈日逛奥森
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/docs/life/openai.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: OpenAI 介绍及应用,包括 ChatGPT、GPT-4 等人工智能模型的使用及其在论文写作中的辅助功能
5 | - name: keywords
6 | content: OpenAI,ChatGPT,GPT-4,AI,人工智能,论文写作,AI辅助
7 | tags: ["OpenAI", "ChatGPT", "GPT-4", "AI", "人工智能"]
8 | ---
9 |
10 | # OpenAI
11 |
12 |
13 |
14 | 貌似可以用`openAI`来辅助写论文😂😂
15 |
--------------------------------------------------------------------------------
/docs/life/pad-pasting.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 手机防窥膜的购买和安装过程,详细记录了从开箱到完美贴膜的全过程
5 | - name: keywords
6 | content: 防窥膜,手机配件,贴膜,隐私保护,屏幕保护
7 | tags: ["防窥膜", "手机配件", "贴膜", "隐私保护"]
8 | ---
9 |
10 | # 防窥膜
11 |
12 | 在淘宝上`15`块钱买了一个防窥膜,刚取到货😝
13 |
14 |
15 |
16 | 打开包装,经典的四件套:按板、擦拭巾、软垫、防窥膜
17 |
18 |
22 |
23 | 摆好手机,开干!!!
24 |
25 |
26 |
27 |
28 | 犹抱琵琶半遮面的防窥膜
29 |
30 |
31 |
32 | 先擦干净手机屏幕
33 |
34 |
35 |
36 |
37 | 按上防窥膜
38 |
39 |
40 |
41 | 压紧
42 |
43 |
49 |
50 |
51 | 没有丝毫气泡,再把防窥膜擦干净,完美
52 |
53 |
57 |
58 | 我这手艺!!!等我失业了取路边摆摊贴膜!!!
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/docs/life/playground.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 敖武的游乐园,一个在线工具集合,提供各种实用的小工具和应用
5 | - name: keywords
6 | content: 游乐园,工具集,在线工具,敖武,playground
7 | tags: ["游乐园", "工具", "playground"]
8 | ---
9 |
10 | # 游乐园
11 |
12 | 游乐园第一版上线啦,在线链接 [敖武的游乐园](https://playground.z.wiki/)
13 |
14 |
15 |
16 | 预览图:
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/docs/life/procreate.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Procreate 绘画作品集,包含花蕊、菠萝、小熊、小树、小蘑菇、小墨鱼等创意插画
5 | - name: keywords
6 | content: Procreate,绘画,插画,数字艺术,花蕊,菠萝,小熊,小树,小蘑菇,小墨鱼
7 | tags: ["Procreate", "绘画", "插画", "数字艺术"]
8 | ---
9 |
10 | # procreate
11 |
12 | ### 2023/01/29
13 |
14 | #### 花蕊
15 |
16 |
17 |
18 | ### 2023/01/24
19 |
20 | #### 菠萝
21 |
22 |
23 |
24 | #### 小熊
25 |
26 |
27 |
28 | #### 小树
29 |
30 |
31 |
32 | #### 小蘑菇
33 |
34 |
35 |
36 | #### 小墨鱼
37 |
38 |
39 |
--------------------------------------------------------------------------------
/docs/life/remove.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 记录拆迁过程和感受,分享拆迁现场的照片和个人观察
5 | - name: keywords
6 | content: 拆迁,城市更新,房屋拆除,城市发展,变迁
7 | tags: ["拆迁", "城市更新", "生活记录"]
8 | ---
9 |
10 | # 拆迁
11 |
12 | 对面的房子拆迁了。
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/life/rent-a-house.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 租房经验分享,记录租房过程中遇到的各种问题及解决方案
5 | - name: keywords
6 | content: 租房,房屋租赁,租房问题,租房经验,租房注意事项
7 | tags: ["租房", "房屋租赁", "生活经验"]
8 | ---
9 |
10 | # 记录下租房遇到的问题
11 |
12 | 见评论。
13 |
--------------------------------------------------------------------------------
/docs/life/sanguo.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 三国里的经典台词,收集整理了三国演义中的名言名句和经典对白
5 | - name: keywords
6 | content: 三国,台词,名言,经典对白,三国演义
7 | tags: ["三国", "台词", "名言", "经典对白"]
8 | ---
9 |
10 | # 三国里的台词
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/life/sanya.md:
--------------------------------------------------------------------------------
1 | # 三亚
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/docs/life/shaoxing.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 绍兴半日游攻略,探索绍兴古城的历史文化景点、特色美食与旅游路线规划
5 | - name: keywords
6 | content: 绍兴,半日游,古城,旅游攻略,景点,美食,鲁迅故里,东湖,黄酒
7 | tags: ["绍兴", "旅游", "古城", "半日游", "浙江"]
8 | ---
9 |
10 | # 绍兴
11 |
12 |
13 | 绍兴半日游
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/life/shijiazhuang.md:
--------------------------------------------------------------------------------
1 | # 石家庄动物园
2 |
3 | 如题
4 |
--------------------------------------------------------------------------------
/docs/life/sla-compensation.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 阿里云SLA赔付流程及实际案例分享,包括赔偿标准、申请方式和个人经历
5 | - name: keywords
6 | content: 阿里云,SLA,赔付,服务等级协议,故障赔偿,云服务
7 | tags: ["阿里云", "SLA", "赔付", "云服务"]
8 | ---
9 |
10 | # 阿里云 SLA 赔付
11 |
12 |
13 |
14 | > 您好,非常抱歉阿里云11月12日发生的产品故障对您产生的影响。根据阿里云向您承诺的《服务等级协议》,本次您的SLA赔偿金总额应为0.82元,我们将为您实际发放总额50.00元。您可点击链接前往控制台-“SLA赔偿”查看并领取。 如您有任何疑问,欢迎联系您的商务经理、拨打400-80-13260转9、或提交工单联系我们。我们再次诚挚地为此次故障道歉。
15 |
16 | 2023.12.04 追加
17 |
18 | 差评,居然要我自己主动申请。。。
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/docs/life/snow.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 在望京堆雪球
5 | - name: keywords
6 | content: 在望京堆雪球
7 | tags: ["敖武", "大雪", "堆雪球"]
8 | ---
9 | # 大雪球
10 |
11 |
12 | 堆了一个大雪球,直径一米多😄
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/docs/life/solana.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 朝阳公园 蓝色港湾 夜游蓝色港湾
5 | - name: keywords
6 | content: 朝阳公园 蓝色港湾 夜游蓝色港湾
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 |
--------------------------------------------------------------------------------
/docs/life/switch.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 超级马力欧:奥德赛
5 | - name: keywords
6 | content: switch游戏机,超级马力欧,奥德赛
7 | tags: ["switch", "游戏机", "超级马力欧", "奥德赛"]
8 | ---
9 | # 超级马力欧:奥德赛
10 |
11 | 超级马里奥奥德赛(`Super Mario Odyssey`)是一款由任天堂开发的动作冒险游戏,于 `2017` 年发布。
12 | 游戏中,玩家扮演马里奥,在不同的世界中收集宝石并解决难题,最终打败最终`boss`。超级马里奥奥德赛收到了广泛好评,
13 | 被认为是马里奥系列游戏中的经典作品之一。
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/docs/life/taizhou.md:
--------------------------------------------------------------------------------
1 | # 台州
2 |
3 | 五一台州游
4 |
--------------------------------------------------------------------------------
/docs/life/thatgirl.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 长在四川现居北京的小美女
5 | - name: keywords
6 | content: 长在四川现居北京的小美女
7 | tags: ["四川", "雅安", "美女", "北京"]
8 | ---
9 | # 有脾气的二货
10 |
11 | 这个有脾气的二货
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/docs/life/the-tomb-sweeping-day.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 清明节出游记录,包括香山、圆明园的游览经历和黑天鹅的偶遇
5 | - name: keywords
6 | content: 清明节,香山,圆明园,黑天鹅,出游,旅行
7 | tags: ["清明节", "香山", "圆明园", "旅行", "黑天鹅"]
8 | ---
9 |
10 | # 清明出游
11 |
12 | ### 清明爬香山
13 |
14 | 清明第二天,出发爬香山,\(^o^)/
15 |
16 |
17 |
18 |
19 | 下了地铁转成西郊线
20 |
21 |
22 |
23 |
24 |
25 |
26 | 天啦噜,为什么去香山的人这么多呢?
27 |
28 |
29 |
30 |
31 |
32 | 根据我的 [降维理论](https://z.wiki/life/involution.html),香山人多我就去别的地方。机智如我🧐,用理论指导实践。
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 |
--------------------------------------------------------------------------------
/docs/life/the-winter-olympics.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 2022年冬奥会朝阳公园滑雪车和冰雪活动体验,记录冬奥会期间的美好瞬间
5 | - name: keywords
6 | content: 冬奥会,朝阳公园,滑雪车,冰雪活动,2022冬奥
7 | tags: ["冬奥会", "朝阳公园", "滑雪", "冰雪活动"]
8 | ---
9 |
10 | # 冬奥有我
11 |
12 | 2022-01-30 朝阳公园
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 |
--------------------------------------------------------------------------------
/docs/life/tianjin-2.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 天津 旅游 美女
5 | - name: keywords
6 | content: 天津 旅游 美女
7 | ---
8 | # 海边的她
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/life/tianjin.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 天津旅行记录,面朝大海的美丽风景照片集锦
5 | - name: keywords
6 | content: 天津,旅行,面朝大海,风景,照片
7 | tags: ["天津", "旅行", "风景", "摄影"]
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 |
--------------------------------------------------------------------------------
/docs/life/tianmen.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 天安门广场国庆节游览记录,包含2019年至2021年十月一日在天安门的照片和游览体验
5 | - name: keywords
6 | content: 天安门,国庆节,十月一日,我和我的祖国,北京,天安门广场
7 | tags: ["天安门", "国庆节", "北京", "十月一日"]
8 | ---
9 |
10 | # 我和我的祖国
11 |
12 | ### 2021年十月一日
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | ### 2020年十月一日
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | ### 2019年十月一日
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/life/tsingtao.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 青岛之旅记录,国庆期间游览崂山、海滩和城市夜景的美好体验
5 | - name: keywords
6 | content: 青岛,崂山,沙滩,夜景,旅游,国庆
7 | tags: ["青岛", "崂山", "旅游", "夜景", "国庆"]
8 | ---
9 |
10 | # 青岛之旅
11 |
12 | 2021年国庆期间,去青岛爬崂山、踩沙滩、拍夜景 (p≧w≦q)
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/life/turtledove.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 在西溪园区偶遇一只不怕人的小斑鸠,记录了这次有趣的邂逅
5 | - name: keywords
6 | content: 斑鸠,西溪园区,野生鸟类,自然观察,鸟类摄影
7 | tags: ["斑鸠", "野生动物", "自然观察", "摄影"]
8 | ---
9 |
10 | # 喜遇斑鸠
11 |
12 | 从西溪园区出来,往地铁口走,忽然看到路边一只小斑鸠
13 |
14 |
15 |
16 |
17 |
18 | 胆子真大,居然不害怕我
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/docs/life/ukraine.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 乌克兰局势分析,俄罗斯与波兰对乌克兰领土的态度与意图,包括波兰可能吞并西乌克兰的相关报道
5 | - name: keywords
6 | content: 乌克兰,波兰,俄罗斯,吞并,西乌克兰,全民公投
7 | tags: ["乌克兰", "波兰", "俄罗斯", "国际关系", "地缘政治"]
8 | ---
9 |
10 | # 波兰?
11 |
12 | [俄称波兰准备吞并西乌克兰,专家:各国有隐秘意图,有这种可能](https://www.163.com/dy/article/HNH19JA10515CCSC.html)
13 |
14 |
15 |
16 | [俄媒:俄情报高官称波兰拟在乌克兰西部举行全民公投,以实现吞并](https://www.163.com/dy/article/HNGTCKG00514R9OJ.html)
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/life/us-visa.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 美国签证申请全过程记录,包括预约面签、等待时间、面签体验和签证获批的完整经历
5 | - name: keywords
6 | content: 美国签证,面签,预约,等待时间,十年签证,B1/B2签证,签证费用
7 | tags: ["美国签证", "面签", "旅行", "签证申请", "十年签证"]
8 | ---
9 |
10 | # 申请美国签证
11 |
12 | 申请了美国签证,面签居然要等三个月🤣
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | > PS: 一千多的面签费,还不一定过,期待上帝保佑吧🙏
21 |
22 |
23 | ### 2024.03.14 更新
24 |
25 |
26 |
27 | 顺顺利利、平平安安,期待是个十年的有效期。
28 |
29 |
30 | ### 2024.03.19 更新
31 |
32 | 收到快递了,付了 106 的费用。
33 |
34 |
35 |
36 |
37 |
38 | PS: 十年有效期
39 |
40 |
41 |
--------------------------------------------------------------------------------
/docs/life/usstock.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 蔚来股东大会邀请函及个人感想,分享蔚来公司股东大会的邀请信息和参会体验
5 | - name: keywords
6 | content: 蔚来,股东大会,NIO,投资,股票,邀请函
7 | tags: ["蔚来", "股东大会", "投资", "股票"]
8 | ---
9 |
10 | # 蔚来股东大会
11 |
12 |
13 |
14 |
15 | 蛤?蔚来开股东大会居然叫我参加?等我成了大股东了再去吧😂
16 |
17 |
18 |
--------------------------------------------------------------------------------
/docs/life/weight.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 记录近一个月的体重变化趋势和数据,包含体重监测图表
5 | - name: keywords
6 | content: 体重,减肥,健康,体重监测,体重变化
7 | tags: ["健康", "体重", "减肥", "生活记录"]
8 | ---
9 |
10 | # 近一个月的体重
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/life/wine.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 分享一瓶比我年纪还大的酒,91年的古井贡酒,浓香型白酒的品鉴体验和感受
5 | - name: keywords
6 | content: 古井贡酒,老酒,91年,浓香型,白酒,品鉴
7 | tags: ["白酒", "古井贡酒", "老酒", "品鉴"]
8 | ---
9 |
10 | # 比我年纪大的酒
11 |
12 | 今天有幸喝到了一瓶比我年纪还大的酒,91年的酒,已经保存了30年了
13 |
14 |
15 |
16 | 安徽毫县古井酒厂 -- 古井贡酒
17 |
18 |
19 | ### 外观
20 |
21 | 外观看上去有点发黄,保存的很不错,只跑了瓶颈一小半的酒
22 |
23 |
24 |
25 | ### 口感
26 |
27 | 喝上去,不是特别辣,55度的老酒🍶,浓香型,这种酒真实喝一瓶少一瓶❤️
28 |
29 |
30 | ### 尊容
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/docs/life/youth.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 青春不是年华,而是心境。塞缪尔·厄尔曼的《青春》中英文对照,探讨青春的真谛与心态的重要性
5 | - name: keywords
6 | content: 青春,youth,塞缪尔·厄尔曼,Samuel Ullman,心境,理想,热忱,生命
7 | tags: ["青春", "youth", "诗歌", "心灵成长"]
8 | ---
9 |
10 | # 青春
11 |
12 | ### YOUTH
13 |
14 | by Samuel Ullman
15 |
16 | Youth is not a time of life; it is a state of mind; it is not a matter of rosy cheeks, red lips and supple knees; it is a matter of the will, a quality of the imagination, a vigor of the emotions; it is the freshness of the deep springs of life.
17 |
18 | Youth means a temperamental predominance of courage over timidity, of the appetite for adventure over the love of ease. This often exists in a man of 60 more than a boy of 20. Nobody grows old merely by a number of years. We grow old by deserting our ideals.
19 |
20 | Years may wrinkle the skin, but to give up enthusiasm wrinkles the soul. Worry, fear, self-distrust bows the heart and turns the spirit back to dust.
21 |
22 | Whether 60 or 16, there is in every human being’s heart the lure of wonder, the unfailing child-like appetite of what’s next and the joy of the game of living. In the center of your heart and my heart there is a wireless station: so long as it receives messages of beauty, hope, cheer, courage and power from men and from the Infinite, so long are you young.
23 |
24 | When the aerials are down, and your spirit is covered with snows of cynicism and the ice of pessimism, then you are grown old, even at 20, but as long as your aerials are up, to catch waves of optimism, there is hope you may die young at 80.
25 |
26 | ### 青春
27 |
28 | 塞缪尔.厄尔曼 作
29 |
30 | 青春不是年华,而是心境;青春不是桃面、丹唇、柔膝,而是深沉的意志,恢宏的想象,炙热的恋情;青春是生命的深泉在涌流。
31 |
32 | 青春气贯长虹,勇锐盖过怯弱,进取压倒苟安。如此锐气,二十后生而有之,六旬男子则更多见。年岁有加,并非垂老,理想丢弃,方堕暮年。
33 |
34 | 岁月悠悠,衰微只及肌肤;热忱抛却,颓废必致灵魂。忧烦,惶恐,丧失自信,定使心灵扭曲,意气如灰。
35 |
36 | 无论年届花甲,拟或二八芳龄,心中皆有生命之欢乐,奇迹之诱惑,孩童般天真久盛不衰。
37 |
38 | 人人心中皆有一台天线,只要你从天上人间接受美好、希望、欢乐、勇气和力量的信号,你就青春永驻,风华常存。
39 |
40 | 一旦天线下降,锐气便被冰雪覆盖,玩世不恭、自暴自弃油然而生,即使年方二十,实已垂垂老矣;然则只要树起天线,捕捉乐观信号,你就有望在八十高龄告别尘寰时仍觉年轻。
41 |
--------------------------------------------------------------------------------
/docs/life/zelda-map.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 塞尔达旷野之息神庙地图,详细介绍游戏中萨满祠的位置和攻略
5 | - name: keywords
6 | content: 塞尔达,旷野之息,神庙,萨满祠,地图,攻略,海拉尔大陆
7 | tags: ["塞尔达", "旷野之息", "神庙", "游戏攻略"]
8 | ---
9 |
10 | # 塞尔达旷野之息
11 |
12 | 神庙地图
13 |
14 |
15 |
16 | 《塞尔达传说:旷野之息》是一款开放世界的动作冒险游戏,其中的神庙,官方称为萨满祠,是游戏中最吸引玩家的设计之一。这些小型迷宫或谜题室散布在整个海拉尔大陆上,为玩家提供了丰富的探索和挑战机会。每个萨满祠都有其独特的主题和解决方案,而通过完成它们,玩家不仅可以获得精灵之球用于增强力量,还能深入了解游戏世界背后的神话和历史。
17 |
18 |
--------------------------------------------------------------------------------
/docs/life/zelda-overlook.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 塞尔达传说-旷野之息游戏体验与攻略分享,包含游戏截图、玩法技巧和探索心得
5 | - name: keywords
6 | content: 塞尔达传说,旷野之息,游戏,攻略,心得,Nintendo,Switch
7 | tags: ["塞尔达传说", "旷野之息", "游戏", "Nintendo", "Switch"]
8 | ---
9 |
10 | # 塞尔达传说-旷野之息
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/life/zelda.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 塞尔达传奇 旷野之息 塞尔达公主
5 | - name: keywords
6 | content: 塞尔达传奇 旷野之息 塞尔达公主
7 | ---
8 | # 塞尔达公主
9 |
10 |
11 |
--------------------------------------------------------------------------------
/docs/life/zhuhai.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 珠海 旅游 美女
5 | - name: keywords
6 | content: 珠海 旅游 美女
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 |
--------------------------------------------------------------------------------
/docs/life/zy-smooth4.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 记录使用稳定器拍摄的延时摄影和视频,展示稳定器的效果和使用体验
5 | - name: keywords
6 | content: 稳定器,延时摄影,视频拍摄,Smooth4,摄影技巧,前门大街
7 | tags: ["摄影", "稳定器", "延时摄影", "视频"]
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 |
--------------------------------------------------------------------------------
/docs/misc/2021-11-06.md:
--------------------------------------------------------------------------------
1 | # 今日の胡思乱想
2 |
3 | 博客得好好整理整理了,今天立一个`flag`,博客需要持续一年更新
--------------------------------------------------------------------------------
/docs/misc/2021-12-26.md:
--------------------------------------------------------------------------------
1 | # 哎
2 |
3 | 最新情绪不高啊
4 |
--------------------------------------------------------------------------------
/docs/misc/README.md:
--------------------------------------------------------------------------------
1 | # 琐碎
2 |
3 | 记录琐碎的事情~
4 |
5 |
6 |
--------------------------------------------------------------------------------
/docs/misc/ai-usage.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Cursor IDE 中 AI 的应用介绍,包括 AI 辅助编程、代码生成、代码解释和智能补全等功能
5 | - name: keywords
6 | content: Cursor,AI,人工智能,IDE,编程,代码生成,代码解释,智能补全
7 | tags: ["Cursor", "AI", "IDE", "编程辅助"]
8 | ---
9 |
10 | # AI 的应用
11 |
12 | ### 强大的 cursor
13 | Cursor 相对其他 IDE 在 AI 的应用上更彻底,到处都是 AI 的味道,确实好用。
14 |
15 | 如下图所示,使用 Cursor 的对话功能快速生成文章的 TDK 信息。
16 |
17 | 
18 |
19 | ### JetBrain 的优势
20 |
21 | 不过由于 Cursor 是基于 vscode 魔改的,整体体验上不如 JetBrain 的体验好。
22 |
23 | 举个例子:提交代码的时候如何进行对比呢?
24 |
25 | 下图第一个为 Cursor 的变更提交界面,第二个图为 JetBrain 的变更和提交界面:
26 |
27 | 
28 |
29 | 
30 |
31 | JetBrain 好用在
32 |
33 | 1. 可以通过键盘的上下来快速预览各个文件的变化,而 Cursor 必须点击才能预览(或者按 enter 进行预览,但是预览后无法上下切换了)
34 | 2. 可以通过键盘选择或或取消选择,便于部分提交,甚至可以只提交一个文件中的一部分修改
35 |
36 | 使用 JetBrain 基本可以做到键盘侠,这一直是我的最爱🩷🩷🩷
37 |
38 |
39 |
--------------------------------------------------------------------------------
/docs/misc/ai.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 关于人工智能的思考与探讨,AI技术的发展、应用及其对社会的影响
5 | - name: keywords
6 | content: AI,人工智能,机器学习,深度学习,ChatGPT,人工智能应用,AI伦理
7 | tags: ["AI", "人工智能", "技术", "未来"]
8 | ---
9 |
10 | # AI
11 |
12 | 关于 AI 的思考
13 |
14 |
--------------------------------------------------------------------------------
/docs/misc/aigc.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: AIGC自动生成文章技术介绍,展示如何通过人工智能自动生成内容,以51杀猪网为例
5 | - name: keywords
6 | content: AIGC,自动生成,文章生成,AI写作,内容创作,51杀猪网
7 | tags: ["AIGC", "自动生成", "AI写作", "内容创作"]
8 | ---
9 |
10 | # AIGC 自动生成文章
11 |
12 | 我部署的站点[51杀猪网](https://51shazhu.com/)用上了 AIGC ,只需要输入标题,内容自动生成,不错不错。
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/misc/alfred-adcode-query.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 查询 adcode 查询行政区划,提供 alfred 插件和 web 端在线查询
5 | - name: keywords
6 | content: adcode 查询 行政区划查询 行政编码
7 | ---
8 | # alfred adcode 查询插件
9 |
10 | ### WEB 版
11 |
12 | `web` 版地址:[adcode 查询平台](https://playground.z.wiki/lbs/showCityInfo?keyword=110000)
13 |
14 |
15 |
16 | ### 插件源码地址
17 |
18 | [https://github.com/yihuaxiang/alfred-adcode-query](https://github.com/yihuaxiang/alfred-adcode-query)
19 |
20 |
21 |
22 | ### adcode 简介
23 |
24 | `adcode`是用于标识某个城市的六位数字编码,如:`110000`表示北京,`130100`标识石家庄,
25 | `adcode`由国家统一指定,该插件提供了城市级、省级`adcode`查询功能。
26 |
27 | > 完整列表可通过 [高德地图](https://lbs.amap.com/api/webservice/download) 进行下载
28 |
29 | ### adcode 的规律
30 |
31 |
32 |
33 | `adcode`是有特定规律的
34 |
35 | `adcode`由六位数字组成,其中第一位表示大区,前两位表示特定省份(直辖市算作省份),中间两位表示城市,后两位表示区县。
36 |
37 | 举例说明:
38 |
39 | 1. `130100` 石家庄
40 |
41 | 第一位`1`表示华北区,华北包括北京、天津、河北、内蒙古、山西
42 |
43 | > 其他大区
44 | >
45 | > 1. 华北
46 | > 2. 东北
47 | > 3. 华东
48 | > 4. 华南
49 | > 5. 西南
50 | > 6. 西北
51 | > 7. 台湾
52 | > 8. 港澳
53 |
54 |
55 |
56 |
57 | 前两位`13`表示河北省,河北所有的`adcode`开头都是`13`
58 |
59 | >`11` 北京、 `12` 天津、`13` 河北、 `14` 山西、 `15` 内蒙,果然,顺序可不是随便排的
60 |
61 | 中间两位`01`表示石家庄,城市序号往往和城市排名一致,省会排第一位
62 |
63 | > 电话区号也有类似规律
64 | >
65 | > 冷知识:在台湾,台北区号是`02`,`01`是留给南京用的
66 |
67 |
68 |
69 | 最后两位`00`表示非区县,既:石家庄市
70 |
71 | 2. `130101` 石家庄市市辖区
72 |
73 | 结合第一个例子,唯一的区别是最后两位是`01`表示石家庄市内的第一个区县,既:市辖区
74 |
75 | 3. `130102` 石家庄市长安区
76 |
77 |
--------------------------------------------------------------------------------
/docs/misc/alfred.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Alfred 备忘录,记录 Alfred 使用的插件,包括 Encode/Decode、Code Case、Hash、IpIp 等工具
5 | - name: keywords
6 | content: Alfred,Mac,快捷启动器,插件,workflow,Encode,Decode,Code Case,Hash,IpIp
7 | tags: ["Alfred", "Mac", "工具", "插件", "workflow"]
8 | ---
9 |
10 | # alfred 备忘录
11 |
12 | > `Alfred` 是一款 `Mac` 平台上的快捷启动器和文件搜索工具。它可以帮助用户快速启动应用程序、查找文件和执行其他常用操作。
13 | `Alfred` 的基本版是免费的,如果想要使用更多高级功能,可以通过购买收费版来获取。
14 |
15 | 再次记录下我的`alfred`使用的插件。其中大部分插件都是从 [alfredforum](https://www.alfredforum.com/) 、 [awesome-alfred-workflows](https://github.com/alfred-workflows/awesome-alfred-workflows) 找到的。
16 |
17 | > 注:使用插件需要购买`Powerpack`
18 |
19 | ### Encode / Decode
20 |
21 | 编码、解码工具,支持`URL`、 `HTML`、`base64`、 `Unicode`等多种方式的编码、解码。
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | 插件地址:[github](https://github.com/willfarrell/alfred-encode-decode-workflow)
30 |
31 | ### Code Case
32 |
33 | 命名格式转换工具,如:大驼峰转小驼峰、下划线式、连字符式、空格分隔符、点分隔符等多种方式。
34 |
35 |
36 |
37 |
38 | 插件地址:[code case](http://www.packal.org/workflow/code-case)
39 |
40 |
41 | ### Hash
42 |
43 | 将输入转成常见的`hash`值,如:`md2`、 `md4`、`md5`、 `sha1`、 `sha244`、`sha256`、`sha384`、 `sha512/224`、`sha512/256`等等。
44 |
45 |
46 |
47 |
48 | 插件地址:[hash](https://github.com/BigLuck/alfred2-hash)
49 |
50 |
51 | ### IpIp
52 |
53 | 敖家独创(😂),支持获取本地`IP`和公网`IP`
54 |
55 |
56 |
57 |
58 | 源码地址: [alfred-workflow-ipip](https://github.com/yihuaxiang/alfred-workflow-ipip)
59 | 介绍文章地址: [IP 归属地查询](https://z.wiki/misc/ip-query.html#%E9%98%B6%E6%AE%B5%E6%80%A7%E6%88%90%E6%9E%9C)
60 |
--------------------------------------------------------------------------------
/docs/misc/algolia.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: vuepress 使用 algolia 搜索引擎
5 | - name: keywords
6 | content: vuepress,algolia,搜索引擎,站内搜索
7 | ---
8 | # algolia
9 |
10 | 将 `vuepress` 默认的搜索引擎替换成 `algolia`了,实时搜索服务,支持秒级全文检索。
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/misc/aliyun.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 阿里云使用体验及服务介绍,分享在阿里云平台上的长期使用心得和经验总结
5 | - name: keywords
6 | content: 阿里云,云服务,云计算,服务器,ECS,OSS,数据库,云存储
7 | tags: ["阿里云", "云服务", "云计算", "服务器"]
8 | ---
9 |
10 | # 阿里云
11 |
12 | 阿里云陪伴我 3232 天了
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/misc/android.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Android 开发指南,包含 Android 系统架构、应用开发、调试技巧及性能优化
5 | - name: keywords
6 | content: Android,安卓,开发,指南,系统架构,应用开发,调试,性能优化
7 | tags: ["Android", "安卓", "开发", "移动应用"]
8 | ---
9 |
10 | # 安卓
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/misc/art-of-strategy.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 博弈论基础知识与应用,介绍博弈论的核心概念、策略分析、纳什均衡及其在经济学和日常决策中的应用
5 | - name: keywords
6 | content: 博弈论,策略分析,纳什均衡,决策理论,零和博弈,非零和博弈
7 | tags: ["博弈论", "策略分析", "纳什均衡", "决策理论"]
8 | ---
9 |
10 | # 博弈论
11 |
--------------------------------------------------------------------------------
/docs/misc/attack-tuchuang.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 关于图床攻击的讨论,以及使用 Nginx + OSS 构建的简单图床解决方案
5 | - name: keywords
6 | content: 图床,攻击,Nginx,OSS,安全
7 | tags: ["图床", "攻击", "Nginx", "OSS", "安全"]
8 | ---
9 |
10 | # 攻击图床?
11 |
12 | 貌似一直有同学尝试来攻击[我的的图床](https://playground.z.wiki/img-cloud/index.html)
13 |
14 |
15 |
16 |
17 | 殊不知我的图床仅仅是用 Nginx + OSS 做的,嘿嘿
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/docs/misc/blog-upgrade.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 博客升级记录与功能更新说明,包含首页改版、评论系统优化及界面美化等内容
5 | - name: keywords
6 | content: 博客升级,网站更新,评论系统,界面优化,功能改进
7 | tags: ["博客升级", "网站更新", "评论系统", "界面优化"]
8 | ---
9 |
10 | # 博客升级
11 |
12 | ### 首页升级
13 |
14 | 首页增加了最新评论
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/docs/misc/china-in-1925.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 1925年中国地图,展示了当时中国的地理和政治格局
5 | - name: keywords
6 | content: 中国,1925,地图,历史,地理,政治格局
7 | tags: ["中国", "历史", "地图", "1925"]
8 | ---
9 |
10 | # 1925 的地图
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/docs/misc/comment-plugin.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 评论插件升级,从 Valine 迁移到自定义评论系统,支持回复评论、添加表情、敏感词屏蔽和图片上传等功能
5 | - name: keywords
6 | content: 评论插件,Valine,博客评论,评论系统,回复评论,表情,图片上传
7 | tags: ["评论插件", "博客", "Valine"]
8 | ---
9 |
10 | # 评论插件升级
11 |
12 | 博客中使用的 [Valine](https://valine.js.org/) 这个评论插件,商用版需要付费,开发版太不稳定了,时不时出错,得趁过年改写一版。
13 |
14 |
15 |
16 | ### 2024.04.13 更新
17 |
18 | 最新版评论插件已经支持了
19 |
20 | * 回复评论
21 | * 添加表情
22 | * 回复他人评论
23 | * 敏感词屏蔽
24 | * 图片上传
25 |
--------------------------------------------------------------------------------
/docs/misc/contact.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 敖武的博客,分享我的生活、技术、经验、总结
5 | - name: keywords
6 | content: 敖武的博客,技术,博客,经验,总结,思考,github,联系方式,微信
7 | ---
8 | # 联系方式
9 |
10 |
11 |
12 |
13 | 欢迎朋友们来加好友。
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/misc/ddos-new.md:
--------------------------------------------------------------------------------
1 | # DDos 攻击
2 |
3 | 【腾讯云】尊敬的用户,您的账号(ID:100004192171,昵称:唔咚)遭受大流量DDoS攻击已被封堵。
4 | 资产IP:82.**.71.**
5 | 资产ID:lhins-******38e2bef6******
6 | 资产名称:z.wiki
7 | 地区:北京
8 | 封堵时间:2025-05-07 20:55:46 (GMT+08:00)
9 | 预计解封时间:2025-05-08 20:50:46 (GMT+08:00)
10 | 攻击流量峰值:2525Mbps
11 | 请登录控制台查看:https://mc.tencent.com/W8wyw8HC
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | 我这破服务器可扛不住这么大的流量攻击啊
20 |
--------------------------------------------------------------------------------
/docs/misc/ddos.md:
--------------------------------------------------------------------------------
1 | # 被攻击了
2 |
3 |
4 |
5 |
6 |
7 | 没办法,只能暂时关闭网站了。。。
8 |
9 |
10 | 一堆分散的 IP 把带宽打满了
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/misc/document-fragment.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: DocumentFragment 性能分析,探讨 DocumentFragment 在前端性能优化中的作用和误区
5 | - name: keywords
6 | content: DocumentFragment,性能优化,DOM操作,前端性能,JavaScript
7 | tags: ["DocumentFragment", "性能优化", "DOM", "JavaScript"]
8 | ---
9 |
10 | # DocumentFragment
11 |
12 | `DocumentFragment`无助于性能提升🤔
13 |
14 |
15 |
16 | [原文链接](https://twitter.com/jaffathecake/status/1552242561313546241)
17 |
--------------------------------------------------------------------------------
/docs/misc/gmail.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 了解 Gmail 无限别名的使用方法及技巧,充分利用邮箱扩展功能,轻松实现邮件分类与高效管理。适用于个人和企业用户的必备指南。
5 | - name: keywords
6 | content: Gmail 无限别名, Gmail 别名功能, Gmail 邮箱管理, Gmail 使用技巧, 邮箱扩展方法
7 | ---
8 |
9 | # Gmail 无限别名指南
10 |
11 | 经常需要使用邮箱注册某些平台(比如注册多个 github 账号给自己点 star),但一直苦于没有足够多的邮箱账号。
12 |
13 | Gmail 自带一个很神奇的功能,让你在不注册新账号的情况下,玩出各种“变形”的邮箱地址。操作很简单,来看看几种方法:
14 |
15 | ### 1. 加个 `+` 号搞别名
16 |
17 | 你的 Gmail 地址可以加个 `+` 再带点字符,比如你原来的邮箱是 `username@gmail.com`,可以玩出这些花样:
18 | - `username+one@gmail.com`
19 | - `username+two@gmail.com`
20 | - `username+three@gmail.com`
21 |
22 | ---
23 |
24 | ### 2. 点号随便加,随便用
25 | Gmail 直接无视地址里的点号,随便加都没问题,比如:
26 | - `user.name@gmail.com`
27 | - `u.s.e.rname@gmail.com`
28 | - `username@gmail.com`
29 |
30 | 上面这三个地址,其实就是同一个邮箱。点号就像装饰品,爱加几颗加几颗。
31 |
32 | ---
33 |
34 | ### 3. 字母大小写无所谓
35 | Gmail 根本会自动忽略大小写,所以这些邮箱地址也完全没差别:
36 | - `username@gmail.com`
37 | - `UserName@gmail.com`
38 | - `USERNAME@gmail.com`
39 |
40 | ---
41 |
42 | ### 4. 换个后缀:`googlemail.com`
43 |
44 | `username@gmail.com` ➡ `username@googlemail.com`
45 |
46 | 这两个地址其实也是一个邮箱。
47 |
48 |
49 |
--------------------------------------------------------------------------------
/docs/misc/google-ads.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 记录我在网站上添加谷歌广告的经历和收入情况,包括审核过程、收入统计和PIN码验证
5 | - name: keywords
6 | content: 谷歌广告,Google Ads,网站收入,被动收入,广告收益,PIN码验证
7 | tags: ["谷歌广告", "Google Ads", "网站收入", "被动收入"]
8 | ---
9 |
10 | # 谷歌广告
11 |
12 | 在网站上加上了谷歌广告,争取挣点额外收入😄😄
13 |
14 |
15 |
16 |
17 |
18 | ### 人生第一笔非工资性收入
19 |
20 | 人生第一笔非工资性收入,甚是惊喜,今天早上才审核通过的,现在就有收入了。
21 |
22 |
23 |
24 |
25 |
26 | ### 2024.03.23
27 |
28 |
29 |
30 | ### 2024.08.10
31 |
32 | 我去,PIN 码通过真的“邮件”来发送。🤯
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/docs/misc/horror-music.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 恐怖音乐收藏与分享,包括闹鬼的地下室等恐怖氛围音乐资源
5 | - name: keywords
6 | content: 恐怖音乐,闹鬼的地下室,恐怖氛围,音乐资源,horror music
7 | tags: ["恐怖音乐", "音乐资源", "horror music"]
8 | ---
9 |
10 | # 恐怖音乐
11 |
12 | [闹鬼的地下室](https://8.z.wiki/autoupload/20240215/xr7U.Claustrophobia_-_%E9%97%B9%E9%AC%BC%E7%9A%84%E5%9C%B0%E4%B8%8B%E5%AE%A4.mp3)
13 |
--------------------------------------------------------------------------------
/docs/misc/iOS16.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 苹果手机升级 IOS 16
5 | - name: keywords
6 | content: 苹果手机升级 IOS 16
7 | ---
8 |
9 | # iOS 16
10 |
11 | 升级`IOS 16`啦,体验体验
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/docs/misc/img-cloud.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 敖武的图床,免费公共图床, 提供图片上传和图片外链服务, 原图保存, 全球CDN加速
5 | - name: keywords
6 | content: 敖武的图床,免费公共图床, 提供图片上传和图片外链服务, 原图保存, 全球CDN加速
7 | tags: ["图床", "敖武的图床", "免费图床"]
8 | ---
9 | # 敖武的图床
10 |
11 | > 传送门:
12 | >
13 | > 敖武的图床: [敖武的图床](https://playground.z.wiki/img-cloud/index.html)
14 |
15 | ### 故事起源
16 |
17 | 经常有很多图片需要上传,平时在公司直接用公司的图床,在`Idea`上传照片的话有一个 [Markdown Image Support](https://plugins.jetbrains.com/plugin/14097-markdown-image-support) 的插件,
18 | 可以支持在`markdown`文件中粘贴照片,但是有很多时候不是在`markdown`中上传。
19 |
20 |
21 |
22 | ### 操刀上阵
23 |
24 | 干脆自己开发一个小图床,地址 [敖武的图床](https://playground.z.wiki/img-cloud/index.html) 支持一键粘贴、一键复制。
25 |
26 |
27 |
28 | 支持历史数据查询,匿名使用,租户隔离😘
29 |
30 |
31 |
32 |
33 | ### 点滴困惑
34 |
35 | 不过貌似网速有点慢啊😂
36 |
37 |
38 |
39 |
40 | `vpn`的问题,关闭`vpn`,上传速度飞起。
41 |
42 |
43 |
44 |
45 | ### 展望规划
46 |
47 | > 展望 ≈ 随便一说,别当真(手动狗头
48 |
49 | 计划后续支持以下特性:
50 |
51 | 1. 多种压缩(无损压缩、有损压缩、原图上传等等)
52 | 2. 多种复制方式(`url`、`base64`等等) **注**:已支持
53 | 3. 照片实时处理(水印、旋转、实时压缩、模糊等等)
54 | 4. 多种上传方式(拖拽上传、`base64`上传等等)
55 | 5. 支持水印(使用`oss`+`nginx`实现) **注**:已支持
56 | 6. 支持`zip`文件上传 **注**:已支持
57 | 7. 多域名支持 **注**:已支持,目前有`10`个二级域名,每次上传都会随机选择一个域名,便于前端快速加载
58 | 8. 分页查询,已支持
59 | 9. 支持跨域访问,已支持
60 | 10. 支持二维码访问,已支持
61 | 11. 分享口令,已支持
62 | 12. 支持`CDN`加速,已支持
63 | 13. 支持 `http 2.0`
64 | 14. 支持邮箱登录,上传记录跟着账号走
65 |
66 |
67 |
68 |
69 |
70 | 以上别当真,会做我是小狗(手动狗头
71 |
--------------------------------------------------------------------------------
/docs/misc/ip-query.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: IP归属地查询,ip查询
5 | - name: keywords
6 | content: IP归属地查询,ip查询
7 | tags: ["IP 归属地查询", "敖武的游乐园", "IP 查询"]
8 | ---
9 | # IP 归属地查询
10 |
11 | [web 端传送门](https://playground.z.wiki/lbs/showIp)
12 |
13 |
14 |
15 | [alfred 插件](https://github.com/yihuaxiang/alfred-workflow-ipip)
16 |
17 |
18 |
19 | # 背景
20 |
21 |
22 | 经常有获取`IP`地址的需求,之前用过网上随便找的一些`API`,不过不怎么稳定。。。
23 |
24 | 干脆自己做一个,`API`+前端+小程序+`chrome`插件+`alfred`插件
25 |
26 | 目标如下:
27 |
28 |
29 |
30 |
31 |
32 | 经过短暂的开发有了阶段性结果(意思是到此为止吧🤣)
33 |
34 | ### 阶段性成果
35 |
36 | 前端地址:
37 |
38 | [https://playground.z.wiki/lbs/showIp](https://playground.z.wiki/lbs/showIp)
39 |
40 |
41 |
42 | `alfred` 插件:
43 |
44 | [alfred-workflow-ipip](https://github.com/yihuaxiang/alfred-workflow-ipip)
45 |
46 |
47 |
48 | `API`接口:
49 |
50 | 接口地址:
51 | ```
52 | https://playground.z.wiki/lbs/getIp
53 | ```
54 |
55 | 接口参数:
56 |
57 | | 参数 | 类型 | 是否必填 | 备注 |
58 | |-----|-----|-------------|----------|
59 | | ip | 字符串 | 否(默认取调用方IP) | 仅支持 IPv4 |
60 |
61 | 请求示例:
62 |
63 | ```shell
64 | curl -s -L "https://playground.z.wiki/lbs/getIp?ip=153.37.191.6" | jq
65 | ```
66 |
67 |
68 |
--------------------------------------------------------------------------------
/docs/misc/issue-from-comment-plugins.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 博客评论插件敏感词屏蔽功能介绍,分享如何防止恶意评论,以及相关敏感词库的整理与开源
5 | - name: keywords
6 | content: 评论插件,敏感词屏蔽,恶意评论,词库,开源
7 | tags: ["评论插件", "敏感词屏蔽", "词库", "开源"]
8 | ---
9 |
10 | # issue
11 |
12 | 博客[评论插件](https://z.wiki/misc/comment-plugin.html)重构的时候,为了防止恶意评论我加了一个敏感词屏蔽功能
13 |
14 |
15 |
16 | 有了敏感词屏蔽功能就需要有对应的词库,
17 | 于是我在收集部分词库后整理放到了[github](https://github.com/yihuaxiang/sensitive-words-in-china)中,
18 | 惊喜的是居然被人发现并给了一个[issue](https://github.com/yihuaxiang/sensitive-words-in-china/issues/1)来表达支持。
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/docs/misc/macos-ventura.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: macOS Ventura 系统设置面板的使用体验,探讨新版系统设置界面的设计问题
5 | - name: keywords
6 | content: macOS,Ventura,系统设置,设计问题,界面体验
7 | tags: ["macOS", "Ventura", "系统设置", "UI设计"]
8 | ---
9 |
10 | # macOS Ventura
11 |
12 | 升级到`macOS Ventura`,发现系统设置面板只能调节高度不能调节宽度,好奇怪的设计,明明横向上有更多空间而无法利用🤔
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/misc/meiguodaxuan.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 美国大选制度、流程、历史及最新动态分析,深入了解美国总统选举的全面信息
5 | - name: keywords
6 | content: 美国大选,总统选举,选举人团,初选,大选流程,美国政治
7 | tags: ["美国大选", "总统选举", "政治", "选举制度"]
8 | ---
9 |
10 | # 美国大选
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/misc/mvn.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Maven 配置阿里云镜像教程,提高 Maven 依赖下载速度,包括 settings.xml 和 pom.xml 配置方法
5 | - name: keywords
6 | content: Maven,阿里云镜像,settings.xml,pom.xml,仓库配置,依赖下载
7 | tags: ["Maven", "阿里云镜像", "依赖管理"]
8 | ---
9 |
10 | # maven 设置阿里云镜像
11 |
12 | 打开 `maven` 的配置文件( `windows` 机器一般在 `maven` 安装目录的 `conf/settings.xml` ),在``标签中添加 `mirror` 子节点:
13 |
14 | ```xml
15 |
16 | aliyunmaven
17 | *
18 | 阿里云公共仓库
19 | https://maven.aliyun.com/repository/public
20 |
21 | ```
22 |
23 |
24 | 修改远程仓库可在`pom.xml`中的``节点中加入对应的仓库使用地址。
25 |
26 | ```xml
27 |
28 | central
29 | https://maven.aliyun.com/repository/central
30 |
31 | true
32 |
33 |
34 | true
35 |
36 |
37 | ```
38 |
39 | `central`和`public`两个仓库的区别如下:
40 |
41 |
42 | | 仓库 | 源地址 |
43 | | ---- | ---- |
44 | | central | https://repo1.maven.org/maven2/ |
45 | | public | central仓和jcenter仓的聚合仓 |
46 |
--------------------------------------------------------------------------------
/docs/misc/new-macbook.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 记录新 MacBook 电脑的开箱和使用体验,展示了新电脑的外观和配置,包括 36G 内存等硬件规格
5 | - name: keywords
6 | content: MacBook,新电脑,开箱,使用体验,配置,内存
7 | tags: ["MacBook", "新电脑", "开箱", "配置"]
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 | 36G 内存,甚是满意。
47 |
48 |
--------------------------------------------------------------------------------
/docs/misc/old-videos.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 收藏的百年前的旧视频
5 | - name: keywords
6 | content: 旧,视频,大清,清朝,古代
7 | ---
8 | # 收藏老视频
9 |
10 | ### 100 年前各国视频
11 |
12 |
13 |
14 | ### 清光绪年间的视频
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/misc/opera.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Opera浏览器详细介绍,包含内置VPN功能、使用体验及界面展示,帮助用户了解这款安全私密的浏览器
5 | - name: keywords
6 | content: Opera,浏览器,VPN,免费VPN,安全浏览,私密浏览,网络隐私
7 | tags: ["Opera", "浏览器", "VPN", "网络隐私"]
8 | ---
9 |
10 | # Opera 浏览器
11 |
12 |
13 |
14 | [Opera](https://www.opera.com/zh-cn/secure-private-browser) 自带免费的 VPN,让人无法拒绝。
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/misc/paris-olympic-games.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 2024年巴黎奥运会赛事介绍、比赛项目、获奖情况及精彩瞬间回顾
5 | - name: keywords
6 | content: 巴黎奥运会,2024奥运会,奥运赛事,奥运金牌,奥运会项目
7 | tags: ["奥运会", "巴黎奥运会", "体育赛事", "2024奥运会"]
8 | ---
9 |
10 | # 巴黎奥运会
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/docs/misc/pdf-to-url.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: pdf文件怎么做成url网址链接?url在线转换工具,亚马逊,运营必备
5 | - name: keywords
6 | content: pdf文件怎么做成url网址链接?url在线转换工具,亚马逊,运营必备
7 | ---
8 |
9 | # pdf文件怎么做成url网址链接?url在线转换工具
10 |
11 | 更新时间:2024-10-01 16:34:48 作者:敖武
12 |
13 | ### 背景
14 |
15 | 随着互联网的发展,许多人需要将PDF文件转换为URL网址链接,方便在网页上共享和传播文件内容。本文将从以下几个方面详细介绍如何将PDF文件转换为URL网址链接。
16 |
17 |
18 | ### 一、什么是URL网址链接?
19 |
20 | URL英文全称是Uniform Resource Locator,中文意为统一资源定位符。URL是一个网页地址的标准化命名方式,通过URL可以在浏览器中精确定位到互联网上的一个资源,如网页、图片、音频、视频、文档等。
21 |
22 | ### 二、为什么需要将PDF转换为URL网址链接?
23 |
24 | 1. 方便共享和传播:将PDF文件转换为URL网址链接,可以方便地将文件在网页中展示,避免了传统的附件下载方式,更加便于共享和传播。
25 |
26 | 2. 跨平台访问:通过URL链接可以在不同平台、不同设备上打开文件,具有更广泛的适用性。
27 |
28 | 3. 便于修改和更新:对于需要频繁修改和更新的文档,通过URL链接可以直接修改源文件,而不需要重新上传和更新链接。
29 |
30 | ### 三、如何将PDF文件转换为URL网址链接?
31 |
32 | 1.打开 [敖武的图床](https://playground.z.wiki/img-cloud/index.html),点击上传区域
33 |
34 | 2.选择【文件】,[敖武的图床](https://playground.z.wiki/img-cloud/index.html)支持(视频、图片、音频、文件、网址、表单)等多种链接转换。
35 |
36 | 3.点击上传提前准备好要转换成链接的文件内容。
37 |
38 | 4.上传成功即可获取对应的 URL
39 |
40 |
41 |
42 | ### 四、转换注意事项和技巧
43 |
44 | 1. 文件大小和格式:转换过程中需要注意文件大小和格式限制,一些在线转换工具和云服务有文件大小或格式限制,需要提前了解并选择合适的工具。
45 |
46 | 2. 文件安全性:转换过程中要注意文件的安全性,尽量使用可信的工具和服务,并对生成的URL进行适当的权限设置,以防止文件被未经授权的人访问。
47 |
48 | ### 五、总结
49 |
50 | 通过将 PDF 文件转换为 URL 网址链接,可以方便地在互联网上共享和传播文件内容,提供更好的访问体验和便利性。选择适合的转换工具和方法,并注意转换过程中的注意事项和技巧,将会帮助您快速实现转换目标。相信本文提供的指导和建议能够帮助到您。
51 |
--------------------------------------------------------------------------------
/docs/misc/phone-blog.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 手机写博客的体验分享,包括使用手机进行博客创作的优缺点及实际效果展示
5 | - name: keywords
6 | content: 手机写博客,移动端写作,博客创作,PhoneSnapshot,移动办公
7 | tags: ["手机写博客", "移动端写作", "博客创作"]
8 | ---
9 |
10 | # 手机写博客
11 |
12 |
13 |
14 |
15 |
16 | 感觉还行😂😂
17 | _
18 |
19 |
20 | ----
21 |
22 | 2022年11月30日更新
23 |
24 | 写个博客或前端还行,如果是`java`的话,还得在服务器上安装`gnome`桌面、安装`idea`并通过`vnc`远程登录开发。
25 |
--------------------------------------------------------------------------------
/docs/misc/plaza.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 讨论区页面,提供一个开放的平台让用户分享想法、交流观点和提出问题
5 | - name: keywords
6 | content: 讨论区,留言板,交流平台,用户反馈,想法分享
7 | tags: ["讨论区", "交流平台", "用户反馈"]
8 | ---
9 |
10 | # 讨论区
11 |
12 | 留下一你想法。
13 |
--------------------------------------------------------------------------------
/docs/misc/qrcode.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 二维码生成器,递归二维码,循环二维码
5 | - name: keywords
6 | content: 二维码生成器,递归二维码,循环二维码
7 | tags: ["二维码", "敖武的二维码"]
8 | sidebar: false
9 |
10 | comment: false
11 | ---
12 |
13 | ### 二维码生成器
14 |
15 |
16 |
17 | > 循环编码:将二维码上传OSS
并对在线连接再次进行二维码编码,想获取原始内容需要递归扫二维码。
18 |
--------------------------------------------------------------------------------
/docs/misc/realtime-caption.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Chrome 浏览器实时字幕功能介绍,展示 Chrome 新增的实时字幕功能及其使用方法
5 | - name: keywords
6 | content: Chrome,实时字幕,Live Caption,字幕功能,谷歌,YouTube
7 | tags: ["Chrome", "实时字幕", "Live Caption", "字幕功能", "谷歌"]
8 | ---
9 |
10 | # chrome 实时字幕
11 |
12 | 突然发现,`chrome`新加了"实时字幕"功能。
13 |
14 |
15 |
16 |
17 | 以前知道`YouTube`看视频的时候可以开启实时字幕,看来谷歌已经把这项技术从`YouTube`扩展到了`chrome`,👍👍👍
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/docs/misc/redis-search.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 敖武的博客-搜索功能升级
5 | - name: keywords
6 | content: 搜索 redis-search 全文检索
7 | ---
8 | # 搜索升级
9 |
10 | ### 第一版搜索
11 |
12 | [vuepress](https://vuepress.vuejs.org/zh/) 内置基于标题的[搜索](https://v1.vuepress.vuejs.org/zh/theme/default-theme-config.html#%E5%86%85%E7%BD%AE%E6%90%9C%E7%B4%A2),该搜索会基于标题文字匹配进行搜索,无法搜索到内容,更无法全文检索。
13 |
14 | ### 第二版搜索
15 |
16 | 后来我将 [vuepress](https://vuepress.vuejs.org/zh/) 内置的搜索替换成 [algolia](https://z.wiki/misc/algolia.html)
17 |
18 |
19 |
20 | 但一直有两大难题压着我。
21 |
22 | 1. 索引不能实时更新
23 |
24 | [algolia](https://www.algolia.com/) 每周进行一个索引更新
25 |
26 |
27 |
28 | 2. 接口反应慢,第一次输入的时候迟迟没有结果
29 |
30 | ### 第三版搜索
31 |
32 | 这次从“进口”转“自研”,基于 [redis-search](https://redis.io/docs/interact/search-and-query/) 开发了自己的搜索服务:[敖武的搜索-敖索](https://playground.z.wiki/search/page)
33 |
34 |
35 |
36 |
37 | ### 升级
38 |
39 | 将评论也添加到索引中了,这下可以搜索到评论啦💐💐
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/docs/misc/religious.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 基督教、犹太教和伊斯兰教的关系与区别,探讨三大亚伯拉罕宗教的历史渊源和主要特点
5 | - name: keywords
6 | content: 基督教,犹太教,伊斯兰教,宗教关系,亚伯拉罕宗教,宗教比较
7 | tags: ["宗教", "基督教", "犹太教", "伊斯兰教", "亚伯拉罕宗教"]
8 | ---
9 |
10 | # 基督,犹太,伊斯兰教的关系
11 |
12 |
13 |
14 |
15 | [基督,犹太,伊斯兰教的关系](https://www.youtube.com/watch?v=ncXCHdTFBEs)
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/misc/rent-ratio.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 2020年全国重点50城租售比调研报告
5 | - name: keywords
6 | content: 城市,出租,租售比,调研报告
7 | ---
8 | # 租售比调研报告
9 |
10 |
11 | 如题,文件:[2020 年全国重点50 城租售比调查研究报告](https://z.wiki/autoupload/2022-09-09/9288e49d5df34cc2b4a7a0ef34d6eecc.5fe052aa643e0.pdf)
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/docs/misc/report.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 高德 交通 分析报告
5 | - name: keywords
6 | content: 高德 交通 分析报告
7 | ---
8 | # 交通分析报告
9 |
10 |
11 |
12 |
13 |
14 | [2022年度中国主要城市交通分析报告](https://z.wiki/autoupload/20230204/IsdA.2022年度中国主要城市交通分析报告final.pdf)
15 |
16 | [2022Q3中国主要城市交通分析报告](https://z.wiki/autoupload/20221201/VV5w.2022Q3中国主要城市交通分析报告final.pdf)
17 |
18 | [2022年国庆假期出行预测报告](https://z.wiki/autoupload/20221201/txAu.2022年国庆假期出行预测报告-final.pdf)
19 |
20 | [2022年中秋小长假出行提示](https://z.wiki/autoupload/20221201/fdUJ.2022年中秋小长假出行提示.pdf)
21 |
--------------------------------------------------------------------------------
/docs/misc/riskprins.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Riskprins聊天室和留言板系统介绍,探讨14年前开发的聊天系统可能被入侵的情况
5 | - name: keywords
6 | content: Riskprins,聊天室,留言板,网络安全,历史消息,系统入侵
7 | tags: ["Riskprins", "聊天室", "留言板", "网络安全", "系统入侵"]
8 | ---
9 |
10 | # Riskprins
11 |
12 | 14 年写的聊天室、留言板,今天一看,历史消息都没了,这是被入侵了?
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/misc/ru.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 美国生物实验室 乌克兰 美俄冲突 俄乌冲突
5 | - name: keywords
6 | content: 美国生物实验室 乌克兰 美俄冲突 俄乌冲突
7 | ---
8 | # 生物实验室
9 |
10 | 据说,这是美国在乌克兰设立的生物实验室资料,吃瓜
11 |
12 |
13 |
14 | 原资料已保存🥰,[点此下载](https://z.wiki/autoupload/2022-08-24/9dbc7237112d436aa9f6f0bbb3a14a93.doc-2022-03-10.zip)
15 |
16 | 以下是资料截图😂
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/misc/short-url.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 短网址服务
5 | - name: keywords
6 | content: 短网址服务
7 | tags: ["敖武的博客", "短网址服务"]
8 | sidebar: false
9 |
10 | comment: false
11 | # comments: false
12 | ---
13 |
14 | # 短网址服务
15 |
16 | ### 免费的短网址服务
17 |
18 | 输入原始网址即可转换为短网址。
19 |
20 |
21 |
22 | > 本站生成的网址永久有效 请放心使用 -- 敖武
23 |
24 |
25 |
--------------------------------------------------------------------------------
/docs/misc/shortcut.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Manico 破解版 Thor Launcher 下载 安装 mac 软件
5 | - name: keywords
6 | content: Manico 破解版 Thor Launcher 下载 安装 mac 软件
7 | ---
8 | # 神器的 Manico
9 |
10 | 一直想要一个 Mac 上全局激活某个 app 的快捷键设置程序
11 |
12 | [Manico](https://manico.im/) 正式我所想要的
13 |
14 |
15 | > Manico mac破解版,是一款Mac App 快速启动及切换工具,Manico 的使用非常简单。安装打开后,按下 「Option」 键,屏幕中央会出现类似切换器的图标栏,默认设置下显示的是 Dock 栏模式。按下应用图标旁边相应的快捷键(或使用鼠标点击)便能快速启动或切换应用了。
16 | >
17 | > 下载地址:[https://z.wiki/autoupload/20240417/XZ74.Manico_2.10.1.dmg](https://z.wiki/autoupload/20240417/XZ74.Manico_2.10.1.dmg)
18 |
19 | 简单配置下😘,以后直接`Command + Option +M`就能打开邮箱了,开心开心
20 |
21 |
22 |
23 |
24 | 试用了一会,感觉非常良好,付费软件开始购买吧
25 |
26 |
27 |
28 |
29 |
30 | 🤣🤣🤣
31 |
32 |
33 |
34 |
35 |
36 | 点击"购买"陷入死循环了啊,网页显示打开"app store",app store 里面只有打开软件的链接,没购买🔗啊😂
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 | 神器的软件🤩🧐
45 |
46 |
47 | 算了,还是用免费的`Thor Launcher`吧,功能基本一样
48 |
49 |
50 |
51 |
52 |
53 | 而且,不存在按住`Option`键就弹出快捷键提示了😎😎😎
54 |
--------------------------------------------------------------------------------
/docs/misc/sls.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 阿里云日志服务SLS介绍,通过logtail收集日志,配置生成报表的使用方法
5 | - name: keywords
6 | content: 阿里云,SLS,日志服务,logtail,日志收集,报表
7 | tags: ["阿里云", "SLS", "日志服务", "logtail"]
8 | ---
9 |
10 | # sls 是个好东西
11 |
12 | 通过`logtail`就能轻松收集日志,简单配置下生成各种报表,针不戳针不戳!
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/misc/tech-article-skill.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 程序员写作技巧 文章 博客
5 | - name: keywords
6 | content: 程序员写作技巧 文章 博客
7 | ---
8 | # 技术写作的首要诀窍
9 |
10 | [阮一峰的网络日志](https://mp.weixin.qq.com/s/VfjrGFbUK4lscpghGupPVQ)
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 | 有一篇老外的文章[7],使用图形表示文章结构,非常形象。
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 |
--------------------------------------------------------------------------------
/docs/misc/the-nature-of-management.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 管理的本质是激发和释放人们固有的善意和潜能,为他人创造价值,而非操纵控制他人
5 | - name: keywords
6 | content: 管理,本质,善意,潜能,价值创造,领导力
7 | tags: ["管理", "领导力", "价值创造", "团队建设"]
8 | ---
9 |
10 | # 管理的本质
11 |
12 |
13 |
14 | “真正的管理其目的和本质是激发和释放人们固有的善意和潜能去为他人创造价值,而不是利用人性中的邪恶和弱点去操纵和控制他们达成个人和小集团的目的。”
15 |
--------------------------------------------------------------------------------
/docs/misc/try-files.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 介绍 Nginx try_files 指令的用法,以及如何部署单页应用,如何设置状态码。
5 | - name: keywords
6 | content: nginx try_files spa部署 单页应用部署
7 | ---
8 | # try_files 指令
9 |
10 | 突然发现 try_files 指令非常适合但也应用的部署。
11 |
12 | try_files 是 Nginx 配置中的一个重要指令,用于按顺序检查文件的存在性,并根据找到的第一个匹配进行处理。如果所有的文件都不存在,它可以设置一个默认的处理程序,例如重定向到某个脚本或返回404错误。
13 |
14 |
15 | ```
16 | try_files file ... uri;
17 |
18 | # 或
19 |
20 | try_files file ... =code;
21 |
22 | ```
23 |
24 |
25 |
26 | 其中 file ... 是一系列文件路径,Nginx 会按顺序尝试这些路径。uri 是当所有文件都不存在时需要进行的内部重定向的 URI(这可能会触发另一轮 location 匹配)。而 =code 是指直接返回的 HTTP 状态码。
27 |
28 | 举例来说,假设你想设置一个简单的静态站点,同时还能处理一些特殊的路由。你可能会在 Nginx 配置中使用 try_files 指令如下:
29 |
30 |
31 | ```
32 | server {
33 | listen 80;
34 | server_name example.com;
35 | root /var/www/example.com;
36 |
37 | location / {
38 | # 首先尝试作为文件提供请求的 URI
39 | # 然后尝试作为目录提供,最后传递给 index.php 处理
40 | try_files $uri $uri/ /index.php;
41 | }
42 | }
43 | ```
44 |
45 |
46 | 在这个例子中,对于每个请求,Nginx 将:
47 |
48 | 检查请求的 URI 是否对应文件系统中的一个真实文件;
49 | 如果不是文件,检查是否是一个目录;
50 | 如果都不是,将请求重定向到 /index.php。
51 | 如果想直接返回一个状态码而不进行内部路由转发,可以像这样:
52 |
53 |
54 | ```
55 | location / {
56 | try_files $uri $uri/ =404;
57 | }
58 | ```
59 |
60 | 在这种情况下,如果文件或目录不存在,则直接返回 HTTP 404 错误。
61 |
62 | try_files 是实现“前端控制器模式”(front controller pattern)的理想选择,比如当你在使用某些 PHP 框架(如 Laravel、Symfony)或其他需要进行 URL 重写的单页面应用(SPA)时。通过使用 try_files,你可以确保所有的 HTTP 请求都指向同一个入口文件(通常是 index.php),除非请求的是一个真实存在的文件(像 CSS 或 JavaScript 文件)或目录。
63 |
64 |
--------------------------------------------------------------------------------
/docs/misc/tuchuang-upgrade.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 图床升级计划,展示新版图床UI设计和功能更新,包含图床的使用说明和反馈渠道
5 | - name: keywords
6 | content: 图床,升级,UI,设计,图片上传,图片托管
7 | tags: ["图床", "UI设计", "图片上传", "图片托管"]
8 | ---
9 |
10 | # 图床升级
11 |
12 | [图床](https://tuchuang.z.wiki/misc/tuchuang.html)已经运行一年多了,毫无美感的`UI`已经到了亟需优化的地步了,最近找`UE`给帮忙设计了下,效果如下:
13 |
14 |
15 |
16 |
17 | 等有空了开发一版💪🏻
18 |
19 | ### 第一版
20 |
21 | [传送门](https://playground.z.wiki/img-cloud/index.html)
22 |
23 | 一期到此为止,基本功能是有。
24 |
25 | ### 反馈
26 |
27 | 有需求的朋友们可以[在此](https://support.qq.com/product/659406)反馈。
28 |
--------------------------------------------------------------------------------
/docs/misc/tuchuang.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 敖武的图床,免费公共图床, 提供图片上传和图片外链服务, 原图保存, 全球CDN加速
5 | - name: keywords
6 | content: 敖武的图床,免费公共图床, 提供图片上传和图片外链服务, 原图保存, 全球CDN加速
7 | tags: ["图床", "敖武的图床", "免费图床"]
8 | sidebar: false
9 |
10 | comment: false
11 | # comments: false
12 | ---
13 | # 敖武的图床
14 |
15 | ### 免费的公共图床
16 |
17 | 复制图片,打开页面并按下`Ctrl+V` 或 `Command+V`就能自动上传照片啦~
18 |
19 | > 支持上传`照片`、`视频`、`ZIP`、`pdf`等多种文件,最大支持`100M`,上传后支持复制`url`、`base64`、`Markdown 照片`三种方式
20 |
21 | 新版传送门
22 |
23 |
24 |
--------------------------------------------------------------------------------
/docs/misc/ukraine.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 俄乌战争的详细分析与最新进展,包括战争起因、发展历程和国际影响
5 | - name: keywords
6 | content: 俄乌战争,乌克兰,俄罗斯,战争分析,国际关系,地缘政治
7 | tags: ["俄乌战争", "乌克兰", "俄罗斯", "国际关系", "地缘政治"]
8 | ---
9 |
10 | # 俄乌战争
11 |
12 | 精彩
13 |
--------------------------------------------------------------------------------
/docs/misc/ussr.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 苏联民族分布图,展示1941年苏联境内各民族的地理分布情况
5 | - name: keywords
6 | content: 苏联,民族分布,地图,1941年,民族地理
7 | tags: ["苏联", "民族分布", "地图", "历史"]
8 | ---
9 |
10 | # 苏联民族分布
11 |
12 | 1941年苏联的民族分布
13 |
14 | 
15 |
--------------------------------------------------------------------------------
/docs/misc/vue-weekly-download.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Vue.js 下载量激增现象分析,展示 Vue 框架在前端开发中的流行趋势和使用情况
5 | - name: keywords
6 | content: Vue.js,下载量,前端框架,JavaScript框架,npm统计
7 | tags: ["Vue.js", "前端框架", "下载统计", "JavaScript"]
8 | ---
9 |
10 | # vue 下载量激增?
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/misc/weibo-jubao.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 微博举报指南,包含微博举报方法、流程和注意事项的详细说明
5 | - name: keywords
6 | content: 微博,举报,微博举报,社交媒体,内容审核
7 | tags: ["微博", "举报", "社交媒体", "内容审核"]
8 | ---
9 |
10 | # 微博举报
11 |
12 | 备份,防止看到不,内容见评论区。
13 |
--------------------------------------------------------------------------------
/docs/misc/z-dot-wiki.md:
--------------------------------------------------------------------------------
1 | # z.wiki
2 |
3 | 购买了新域名,`z.wiki`
4 |
5 | 备案中...
6 |
7 | 🎉🎉🎉
8 |
9 | 🎆🎆🎆
10 |
11 | 💐💐💐
12 |
--------------------------------------------------------------------------------
/docs/misc/zlib.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: z-library 免费电子书 最新地址 长期有效 下载 epub
5 | - name: keywords
6 | content: z-library 免费电子书 最新地址 长期有效 下载 epub
7 | ---
8 |
9 | # z-library
10 |
11 | z-library 是个好东西,大量的免费书籍可以下载,但是由于侵权, z-library 经常遭到封禁,地址变来变去。
12 |
13 | 为了获取最新地址,可以给 blackbox@zlib.se 发送邮件,该邮箱是 z-library 的官方邮箱,邮件内容随便写,回信就是最新地址。
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/docs/notfound.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 404 页面未找到,您访问的页面不存在或已被移除
5 | - name: keywords
6 | content: 404,页面未找到,not found,错误页面
7 | tags: ["404", "not found", "错误页面"]
8 | ---
9 |
10 | # 404
11 |
12 | 找不到您所需要的页面
13 |
14 |
--------------------------------------------------------------------------------
/docs/resource/apps.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 破解软件下载,parallels
5 | - name: keywords
6 | content: 破解软件下载,parallels
7 | tags: ["破解软件", "下载", "parallels"]
8 | ---
9 |
10 |
11 | # Parallels Desktop
12 |
13 | [Parallels Desktop 18.1.1 53328 破解教程(pd18永久授权)](https://z.wiki/images/apps/Parallels%20Desktop%2018.1.1_MacApp.dmg)
14 |
--------------------------------------------------------------------------------
/docs/resource/ebooks.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 电子书 程序员 编程 IT
5 | - name: keywords
6 | content: 电子书 程序员 编程 IT
7 | tags: ["电子书", "编程", "程序员", "IT"]
8 | ---
9 |
10 | # 电子书
11 |
12 | ###
13 |
14 |
15 | [代码整洁之道.epub](https://z.wiki/autoupload/20230902/lmXU.%E4%BB%A3%E7%A0%81%E6%95%B4%E6%B4%81%E4%B9%8B%E9%81%93.epub)
16 |
17 | [图解HTTP_.pdf](https://z.wiki/autoupload/20230902/KClD.%E5%9B%BE%E8%A7%A3HTTP_.pdf)
18 |
19 | [代码之外的功夫:程序员精进之路.pdf](https://z.wiki/autoupload/20230902/hiLv.%E4%BB%A3%E7%A0%81%E4%B9%8B%E5%A4%96%E7%9A%84%E5%8A%9F%E5%A4%AB%EF%BC%9A%E7%A8%8B%E5%BA%8F%E5%91%98%E7%B2%BE%E8%BF%9B%E4%B9%8B%E8%B7%AF.pdf)
20 |
21 | [第一本docker书.epub](https://z.wiki/autoupload/20230902/twry.%E7%AC%AC%E4%B8%80%E6%9C%ACdocker%E4%B9%A6.epub)
22 |
23 | [大话数据结构.epub](https://z.wiki/autoupload/20230902/8hb0.%E5%A4%A7%E8%AF%9D%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.epub)
24 |
25 | [HTTP权威指南.pdf](https://z.wiki/autoupload/20230902/WVJl.HTTP%E6%9D%83%E5%A8%81%E6%8C%87%E5%8D%97.pdf)
26 |
27 | [淘宝技术这十年.pdf](https://7.z.wiki/autoupload/20230902/TnZj.%E6%B7%98%E5%AE%9D%E6%8A%80%E6%9C%AF%E8%BF%99%E5%8D%81%E5%B9%B4.pdf)
28 |
29 | [大型分布式网站架构设计与实践.pdf](https://fudongdong-statics.oss-cn-beijing.aliyuncs.com/autoupload/20230902/xQov.%E5%A4%A7%E5%9E%8B%E5%88%86%E5%B8%83%E5%BC%8F%E7%BD%91%E7%AB%99%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E8%B7%B5.pdf)
30 |
31 | [大话设计模式.mobi](https://fudongdong-statics.oss-cn-beijing.aliyuncs.com/autoupload/20230902/Rku1.%E5%A4%A7%E8%AF%9D%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.mobi)
32 |
33 |
--------------------------------------------------------------------------------
/docs/snippets/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 代码片段集合,包括 CSS、htaccess、HTML、JavaScript、Mac、Nginx、robots.txt 和 Shell 等常用代码片段
5 | - name: keywords
6 | content: 代码片段,CSS,htaccess,HTML,JavaScript,Mac,Nginx,robots,Shell,snippets
7 | tags: ["代码片段", "CSS", "htaccess", "HTML", "JavaScript", "Mac", "Nginx", "robots", "Shell", "snippets"]
8 | ---
9 |
10 | # 代码片段
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/docs/snippets/css/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: CSS 代码片段集合,包含常用样式、布局技巧、动画效果和响应式设计等实用代码
5 | - name: keywords
6 | content: CSS,代码片段,样式,布局,动画,响应式设计,前端开发
7 | tags: ["CSS", "代码片段", "样式", "布局", "前端开发"]
8 | ---
9 |
10 | # 代码片段-CSS
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/snippets/css/loading.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: CSS加载动画效果实现,提供简洁易用的loading动画样式代码和使用方法
5 | - name: keywords
6 | content: CSS,loading,加载动画,动画效果,前端样式,spinZoom
7 | tags: ["CSS", "loading", "加载动画", "前端样式"]
8 | ---
9 |
10 | # 加载中动画
11 |
12 |
13 | 引入如下代码,通过给目标元素加上`loading`这个类,自动变成加载中动画,使用方便、性能好。
14 |
15 | ```css
16 | a[class*=-btn].loading,
17 | label[class*=-btn].loading {
18 | position: relative;
19 | }
20 | a[class*=-btn].loading::first-line,
21 | label[class*=-btn].loading::first-line {
22 | color: transparent;
23 | }
24 | a[class*=-btn].loading::before,
25 | label[class*=-btn].loading::before {
26 | width: 4px; height: 4px;
27 | margin: auto;
28 | content: '';
29 | -webkit-animation: spinZoom 1s steps(8) infinite;
30 | animation: spinZoom 1s steps(8) infinite;
31 | border-radius: 100%;
32 | box-shadow: 0 -10px 0 1px currentColor, 10px 0 currentColor, 0 10px currentColor, -10px 0 currentColor, -7px -7px 0 .5px currentColor, 7px -7px 0 1.5px currentColor, 7px 7px currentColor, -7px 7px currentColor;
33 | /* center */
34 | position: absolute;
35 | top: 0; right: 0; bottom: 0; left: 0;
36 | }
37 | /* loading动画 */
38 | @-webkit-keyframes spinZoom {
39 | 0% {
40 | -webkit-transform: scale(.75) rotate(0);
41 | }
42 | 100% {
43 | -webkit-transform: scale(.75) rotate(360deg);
44 | }
45 | }
46 | @keyframes spinZoom {
47 | 0% {
48 | transform: scale(.75) rotate(0);
49 | }
50 | 100% {
51 | transform: scale(.75) rotate(360deg);
52 | }
53 | }
54 | ```
55 |
--------------------------------------------------------------------------------
/docs/snippets/htaccess/301-redirects.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Apache .htaccess 301重定向配置指南,包含单页面和整站跳转的配置方法和示例
5 | - name: keywords
6 | content: htaccess,301,重定向,跳转,Apache,redirect
7 | tags: ["htaccess", "301", "redirect", "Apache", "重定向"]
8 | ---
9 |
10 | # 301跳转
11 |
12 |
13 | 单页面:
14 |
15 | ```
16 | Redirect 301 /oldpage.html https://www.yoursite.com/newpage.html
17 | Redirect 301 /oldpage2.html https://www.yoursite.com/folder/
18 | ```
19 |
20 | 整站:
21 |
22 | ```
23 | Redirect 301 / https://newsite.com/
24 | ```
25 |
26 |
--------------------------------------------------------------------------------
/docs/snippets/htaccess/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: htaccess 配置文件使用指南,包含常见的 URL 重写、访问控制、缓存设置等实用配置示例
5 | - name: keywords
6 | content: htaccess,Apache,URL重写,rewrite,访问控制,缓存设置,重定向,301,302
7 | tags: ["htaccess", "Apache", "URL重写", "rewrite", "服务器配置"]
8 | ---
9 |
10 | # 代码片段-htaccess
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/snippets/html/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: HTML 代码片段集合,包含常用的 HTML 标签、结构、表单和布局示例
5 | - name: keywords
6 | content: HTML,代码片段,标签,结构,表单,布局,示例
7 | tags: ["HTML", "代码片段", "前端开发", "网页设计"]
8 | ---
9 |
10 | # 代码片段-html
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/snippets/html/no-spider.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 通过 HTML meta 标签和 rel 属性禁止搜索引擎爬虫爬取网页内容的方法
5 | - name: keywords
6 | content: HTML,meta,robots,noindex,nofollow,爬虫,搜索引擎优化,SEO
7 | tags: ["HTML", "SEO", "爬虫", "meta标签"]
8 | ---
9 |
10 | # 通过 meta 标签禁止爬虫爬取
11 |
12 |
13 | 所有的爬虫走开:
14 |
15 | ```html
16 |
17 | ```
18 |
19 | 不要爬这个链接:
20 |
21 | ```html
22 | 私有链接
23 | ```
24 |
--------------------------------------------------------------------------------
/docs/snippets/javascript/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: JavaScript 代码片段集合,包含常用函数、技巧和最佳实践示例
5 | - name: keywords
6 | content: JavaScript,代码片段,函数,技巧,最佳实践,JS,前端开发
7 | tags: ["JavaScript", "代码片段", "前端开发", "JS"]
8 | ---
9 |
10 | # 代码片段-js
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/docs/snippets/javascript/csv-to-json.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: CSV 转 JSON 的 JavaScript 实现,提供简单高效的 CSV 数据转换为 JSON 格式的方法
5 | - name: keywords
6 | content: JavaScript,CSV,JSON,转换,数据处理,前端开发
7 | tags: ["JavaScript", "CSV", "JSON", "数据处理"]
8 | ---
9 |
10 | # csv 转 json
11 |
12 |
13 | 实现代码
14 |
15 | ```JavaScript
16 | const CSVToJSON = (data, delimiter = ',') => {
17 | const titles = data.slice(0, data.indexOf('\n')).split(delimiter);
18 | return data
19 | .slice(data.indexOf('\n') + 1)
20 | .split('\n')
21 | .map(v => {
22 | const values = v.split(delimiter);
23 | return titles.reduce(
24 | (obj, title, index) => ((obj[title] = values[index]), obj),
25 | {}
26 | );
27 | });
28 | };
29 | ```
30 |
31 | 效果
32 |
33 | ```JavaScript
34 | CSVToJSON('col1,col2\na,b\nc,d');
35 | // [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
36 | CSVToJSON('col1;col2\na;b\nc;d', ';');
37 | // [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
38 | ```
39 |
--------------------------------------------------------------------------------
/docs/snippets/javascript/debounce.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: JavaScript 防抖函数实现详解,介绍防抖函数的原理、实现方法和使用场景
5 | - name: keywords
6 | content: JavaScript,防抖,debounce,函数,优化,性能
7 | tags: ["JavaScript", "防抖", "debounce", "性能优化"]
8 | ---
9 |
10 | # 防抖函数
11 |
12 | 防抖函数是一种优化技术,用来限制某个函数在一定时间内被调用的频率。当事件被触发后,它会等待一段时间,如果在这段时间内再次被触发,那么它会重新开始等待。
13 |
14 | 下面是一个使用`JavaScript`实现的简单防抖函数:
15 |
16 |
17 | ```javascript
18 | function debounce(func, wait) {
19 | let timeout;
20 |
21 | return function() {
22 | const context = this;
23 | const args = arguments;
24 |
25 | clearTimeout(timeout);
26 |
27 | timeout = setTimeout(() => {
28 | func.apply(context, args);
29 | }, wait);
30 | };
31 | }
32 | ```
33 |
--------------------------------------------------------------------------------
/docs/snippets/javascript/html-to-dom.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: JavaScript 将 HTML 字符串转换为 DOM 元素的方法,介绍如何使用 template 元素实现 HTML 到 DOM 的转换
5 | - name: keywords
6 | content: JavaScript,HTML,DOM,字符串转DOM,template,createElement,innerHTML
7 | tags: ["JavaScript", "HTML", "DOM", "Web开发"]
8 | ---
9 |
10 | # html 字符串转 dom
11 |
12 |
13 | html 字符串转 dom:
14 |
15 | ```js
16 | function htmlToElement(html) {
17 | var template = document.createElement('template');
18 | html = html.trim(); // 避免返回空文本 node 节点
19 | template.innerHTML = html;
20 | return template.content.firstChild;
21 | }
22 | ```
23 |
--------------------------------------------------------------------------------
/docs/snippets/javascript/inject-script-dynamic.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 动态插入 JavaScript 脚本的方法,介绍如何在网页运行时动态加载 JS 文件
5 | - name: keywords
6 | content: JavaScript,动态插入,脚本,script,动态加载,异步加载
7 | tags: ["JavaScript", "动态加载", "脚本注入"]
8 | ---
9 |
10 | # 动态插入 js 脚本
11 |
12 |
13 | 动态插入 js 脚本
14 |
15 | ```JavaScript
16 | var injectScript = (function () {
17 | var relative = document.getElementsByTagName('script')[0];
18 |
19 | return function (src, callback) {
20 | var script = document.createElement('script');
21 | script.async = 1;
22 | script.src = src;
23 | if (callback) script.onload = callback.call(script);
24 | relative.parentNode.insertBefore(script, relative);
25 | return script;
26 | }
27 | })();
28 | ```
29 |
--------------------------------------------------------------------------------
/docs/snippets/javascript/set-cookie.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: JavaScript cookie 操作,包括设置 cookie 和读取 cookie 的方法实现
5 | - name: keywords
6 | content: JavaScript,cookie,setCookie,getCookie,设置cookie,读取cookie
7 | tags: ["JavaScript", "cookie", "前端"]
8 | ---
9 |
10 | # cookie 操作
11 |
12 |
13 | 设置`cookie`
14 |
15 | ```JavaScript
16 | function setCookie(name, value, domain, expriesDays, encode = false) {
17 | const Days = expriesDays || 10
18 | const exp = new Date()
19 | exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000)
20 | value = encode ? escape(value) : value
21 | document.cookie = `${name}=${value};domain=${domain};path=/;expires=${exp.toUTCString()}`
22 | }
23 | ```
24 |
25 | 读取`cookie`
26 |
27 | ```JavaScript
28 | function getCookie(k) {
29 | const res = RegExp('(^|; )' + encodeURIComponent(k) + '=([^;]*)').exec(document.cookie)
30 | return res && res[2]
31 | }
32 | ```
33 |
--------------------------------------------------------------------------------
/docs/snippets/javascript/sleep.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: JavaScript sleep 函数实现,介绍如何在 JavaScript 中实现延时等待功能
5 | - name: keywords
6 | content: JavaScript,sleep,延时,等待,Promise,setTimeout
7 | tags: ["JavaScript", "sleep", "Promise", "setTimeout"]
8 | ---
9 |
10 | # sleep
11 |
12 |
13 | sleep 方法:
14 |
15 | ```js
16 | function sleep(milliseconds): Promise {
17 | return new Promise((resolve) => {
18 | setTimeout(() => {
19 | resolve(milliseconds);
20 | }, milliseconds);
21 | });
22 | }
23 | ```
24 |
25 | 使用方法:
26 |
27 | ```js
28 | async function bizMethod() {
29 | // ... do something
30 | await sleep(1000) // sleep 1秒
31 | // ... do something else
32 | }
33 | ```
34 |
35 |
36 |
--------------------------------------------------------------------------------
/docs/snippets/javascript/sub-string-by-bytelength.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 按字节长度截取字符串,处理中英文混合字符串按字节长度截取的方法
5 | - name: keywords
6 | content: JavaScript,字符串,截取,字节长度,中文,英文,混合字符串
7 | tags: ["JavaScript", "字符串处理", "字节长度"]
8 | ---
9 |
10 | # 按字节长度截取字符串
11 |
12 |
13 | 按字节长度截取字符串
14 |
15 | ```JavaScript
16 | function sub_string(str, len){
17 | var newLength = 0;
18 | var newStr = "";
19 | var chineseRegex = /[^\x00-\xff]/g;
20 | var singleChar = "";
21 | var strLength = str.replace(chineseRegex,"**").length;
22 | for(var i = 0;i < strLength;i++) {
23 | singleChar = str.charAt(i).toString();
24 | if(singleChar.match(chineseRegex) != null) {
25 | newLength += 2;
26 | } else {
27 | newLength++;
28 | }
29 | if(newLength > len) {
30 | break;
31 | }
32 | newStr += singleChar;
33 | }
34 | return newStr;
35 | }
36 | ```
37 |
--------------------------------------------------------------------------------
/docs/snippets/mac/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Mac 相关代码片段、技巧和工具集合,包括常用命令、快捷键、效率工具和开发环境配置
5 | - name: keywords
6 | content: Mac,代码片段,技巧,工具,命令,快捷键,效率,开发环境
7 | tags: ["Mac", "代码片段", "技巧", "工具"]
8 | ---
9 |
10 | # 代码片段-Mac
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/snippets/mac/apache.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: macOS 内置 Apache 服务器的使用指南,包括启动、关闭和配置路径
5 | - name: keywords
6 | content: macOS,Apache,服务器,启动,关闭,配置
7 | tags: ["macOS", "Apache", "服务器"]
8 | ---
9 |
10 | # 内置 Apache
11 |
12 |
13 | ### 启动内置 Apache 服务
14 |
15 | ```shell
16 | sudo apachectl start
17 | ```
18 |
19 | ### 关闭内置 Apache 服务
20 |
21 | ```shell
22 | sudo apachectl stop
23 | ```
24 |
25 | ### 其他
26 |
27 | 1. 站点跟目录 `/Library/WebServer/Documents/`
28 | 2. 配置路径 `/etc/apache2/httpd.conf`
29 |
--------------------------------------------------------------------------------
/docs/snippets/nginx/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Nginx 配置、优化和使用技巧,包括负载均衡、反向代理、缓存和性能调优
5 | - name: keywords
6 | content: nginx,配置,优化,反向代理,负载均衡,缓存,性能调优
7 | tags: ["nginx", "web服务器", "反向代理", "负载均衡"]
8 | ---
9 |
10 | # 代码片段-Nginx
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/snippets/nginx/inject.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: nginx 内容注入技巧,介绍如何使用 sub_filter 指令进行内容替换和注入
5 | - name: keywords
6 | content: nginx,sub_filter,内容注入,内容替换,反向代理
7 | tags: ["nginx", "sub_filter", "内容注入", "反向代理"]
8 | ---
9 |
10 | # nginx 注入内容
11 |
12 |
13 | 通过`nginx`进行反向代理的时候可以通过`sub_filter`指令进行内容替换、内容注入
14 |
15 | ```Nginx
16 | location / {
17 | ...
18 | sub_filter
19 | '';
20 | sub_filter_once on;
21 | ...
22 | }
23 | ```
24 |
25 |
26 | ### 注意事项一:
27 |
28 | 如果被代理的服务返回的是`gzip`压缩的内容,则上述指令无效,可以通过`proxy_set_header Accept-Encoding "";`确保被代理的服务返回非压缩内容。
29 |
30 | ### 注意事项二:
31 |
32 |
33 | `sub_filter` 指令由`http_sub_module`模块提供,`nginx`默认没有安装,可通过`nginx -V`查看已安装的模块。
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/docs/snippets/nginx/limit-req.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: nginx 限流配置详解,包括限流模块的使用方法、参数配置及实际应用场景
5 | - name: keywords
6 | content: nginx,limit_req,限流,rate limiting,burst,nodelay
7 | tags: ["nginx", "limit_req", "限流"]
8 | ---
9 |
10 | # nginx 限流
11 |
12 |
13 | ### nginx 限流
14 |
15 |
16 |
17 | ```
18 | http {
19 | limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
20 | ...
21 | server {
22 | ...
23 | location / {
24 | ...
25 | limit_req zone=one burst=5 nodelay;
26 | }
27 | }
28 | }
29 | ```
30 |
31 |
--------------------------------------------------------------------------------
/docs/snippets/nginx/nginx-cache.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: nginx 缓存配置详解,包括静态资源缓存、代理缓存等配置方法和最佳实践
5 | - name: keywords
6 | content: nginx,cache,缓存,静态资源,配置,代理缓存
7 | tags: ["nginx", "cache", "缓存", "配置"]
8 | ---
9 |
10 | # nginx 缓存
11 |
12 |
13 | ### 静态资源缓存
14 |
15 | 设置为一天缓存,更多缓存配置可参考[nginx 缓存](https://z.wiki/tech/nginx-cache.html)
16 |
17 | ```
18 | location ~* .(?:css|js)$ {
19 | expires 1d;
20 | add_header Cache-Control "public";
21 | }
22 | ```
23 |
--------------------------------------------------------------------------------
/docs/snippets/nginx/nginx-header.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: nginx header 添加与删除,解决跨域问题,处理 OSS 自动下载问题
5 | - name: keywords
6 | content: nginx,header,添加,删除,跨域,CORS,OSS,proxy_hide_header
7 | tags: ["nginx", "header", "CORS", "proxy"]
8 | ---
9 |
10 | # nginx header 添加与删除
11 |
12 |
13 | 接口和前端部署在不同与名下时可以通过`nginx` 添加`cors header`解决跨域问题
14 |
15 | ## 添加 header
16 |
17 | ```
18 | location / {
19 | ...
20 | add_header X-Frame-Options SAMEORIGIN;
21 | add_header X-Content-Type-Options nosniff;
22 | add_header Access-Control-Allow-Origin *; # 允许跨域访问
23 | }
24 | ```
25 |
26 | ## 删除 header
27 |
28 | 网站博客部署在`OSS`上,访问`oss`的页面时都会自动下载,
29 | 原因是:响应头中添加了`x-oss-force-download`、`Content-Disposition: attachmeng`等字段,
30 | 导致浏览器自动下载,故通过`nginx`转发时需要对`header`进行操作
31 |
32 |
33 | ```
34 | location / {
35 | ...
36 | proxy_hide_header Content-Disposition;
37 | proxy_hide_header x-oss-force-download;
38 | }
39 | ```
40 |
--------------------------------------------------------------------------------
/docs/snippets/nginx/nginx-log.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: nginx 打印请求体内容,介绍如何通过 nginx 配置来记录 HTTP 请求体中的参数
5 | - name: keywords
6 | content: nginx,log,请求体,request body,日志配置,access_log
7 | tags: ["nginx", "log", "request body", "配置"]
8 | ---
9 |
10 | # nginx 打印请求体(body)内容
11 |
12 |
13 |
14 | 通过`nginx`打印请求体中的参数
15 | ```nginx
16 | http {
17 |
18 | log_format postdata $request_body;
19 |
20 | server {
21 | location / {
22 | access_log /var/log/nginx/postdata.log postdata;
23 | proxy_paass http://localhost:8080;
24 | }
25 | }
26 | }
27 |
28 | ```
29 |
30 |
--------------------------------------------------------------------------------
/docs/snippets/nginx/proxy.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: nginx 反向代理配置指南,包括如何设置反向代理并追加参数,解决域名解析问题
5 | - name: keywords
6 | content: nginx,反向代理,proxy_pass,resolver,域名解析,参数追加
7 | tags: ["nginx", "反向代理", "proxy_pass", "resolver"]
8 | ---
9 |
10 | # nginx 反向代理并追加参数
11 |
12 |
13 |
14 | 反向代理并追加参数
15 | ```nginx
16 | location /v1/resources {
17 | resolver 8.8.8.8;
18 | proxy_pass https://domain.com$uri?key=value;
19 | }
20 | ```
21 |
22 | 设置`resolver`是因为`proxy_pass`转发到某个域名时会尝试自行从`DNS`缓存中获取域名解析后的`ip`,
23 | 由于未设置域名解析服务导致如果没有缓存就会报错。
24 |
--------------------------------------------------------------------------------
/docs/snippets/nginx/redirect.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: nginx 重定向配置指南,包括单页面重定向、整站重定向和子路径重定向的实现方法
5 | - name: keywords
6 | content: nginx,redirect,重定向,301重定向,永久重定向,临时重定向,单页面重定向,整站重定向
7 | tags: ["nginx", "redirect", "重定向", "服务器配置"]
8 | ---
9 |
10 | # nginx 重定向 redirect
11 |
12 |
13 |
14 | 单页面重定向
15 | ```nginx
16 | server {
17 | location = /oldpage.html {
18 | return 301 http://example.org/newpage.html;
19 | }
20 | }
21 | ```
22 |
23 |
24 | 整站重定向
25 | ```nginx
26 | server {
27 | server_name old-site.com
28 | return 301 $scheme://new-site.com$request_uri;
29 | }
30 | ```
31 |
32 |
33 | 子路径重定向
34 | ```nginx
35 | location /old-site {
36 | rewrite ^/old-site/(.*) http://example.org/new-site/$1 permanent;
37 | }
38 | ```
39 |
40 |
41 |
--------------------------------------------------------------------------------
/docs/snippets/robots/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 机器人相关代码片段集合,包含机器人编程、控制算法、传感器数据处理等实用示例
5 | - name: keywords
6 | content: 机器人,代码片段,编程,控制算法,传感器,ROS,Arduino
7 | tags: ["机器人", "代码片段", "ROS", "Arduino", "控制算法"]
8 | ---
9 |
10 | # 代码片段-robots
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/snippets/robots/robots.txt.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: robots.txt 文件详解,包括用途、格式及常见配置示例,帮助网站管理员控制搜索引擎爬虫的访问权限
5 | - name: keywords
6 | content: robots.txt,爬虫,搜索引擎,网站优化,SEO,User-agent,Allow,Disallow
7 | tags: ["robots.txt", "SEO", "爬虫", "搜索引擎优化"]
8 | ---
9 |
10 | # robots.txt
11 |
12 |
13 | # robots.txt 是什么
14 |
15 | `robots.txt` 是位于网站根目录下的纯文本文件,用于告知网络爬虫"改网站中哪些可以被爬取,哪些不可以被爬取"。
16 |
17 | `robots.txt` 只是约定俗成的协议,`Google`、百度、`bing`等爬虫都会遵守该规范,但并非所有搜索引擎都支持,故通过`robots.txt`无法 100% 地保证爬取效果(屏蔽效果)。
18 |
19 | # robots.txt 怎么用
20 |
21 | 允许所有的爬虫:
22 |
23 | ```
24 | User-agent: *
25 | Allow:/
26 | ```
27 |
28 |
29 | 仅允许特定的爬虫:(name_spider用真实名字代替)
30 |
31 | ```
32 | User-agent: name_spider
33 | Allow:
34 | ```
35 |
36 |
37 | 拦截所有的爬虫:
38 |
39 | ```
40 | User-agent: *
41 | Disallow: /
42 | ```
43 |
44 | 禁止所有爬虫访问特定目录:
45 |
46 | ```
47 | User-agent: *
48 | Disallow: /cgi-bin/
49 | Disallow: /images/
50 | Disallow: /tmp/
51 | Disallow: /private/
52 | ```
53 |
54 |
55 | 仅禁止坏爬虫访问特定目录(BadBot用真实的名字代替):
56 |
57 | ```
58 | User-agent: BadBot
59 | Disallow: /private/
60 | ```
61 |
62 |
63 | 禁止所有爬虫访问特定文件类型:
64 |
65 | ```
66 | User-agent: *
67 | Disallow: /*.php$
68 | Disallow: /*.js$
69 | Disallow: /*.inc$
70 | Disallow: /*.css$
71 | ```
72 |
73 |
74 | # 非标准扩展协议
75 |
76 | ## Sitemaps
77 |
78 | 目前主流搜索引擎均支持`Sitemap`,`sitemap`用于告诉浏览器网站都包含哪些`URL`,
79 |
80 | 使用方法(写到 `robots.txt` 中)
81 |
82 | ```shell
83 | Sitemap:
84 | ```
85 |
86 | ## Crawl-delay 指令
87 |
88 | `Crawl-delay`参数设置爬虫的爬取时间间隔,避免对服务器的性能造成影响
89 |
90 | ```
91 | User-agent: *
92 | Crawl-delay: 10
93 | # 每次爬取等待10秒后继续爬取其他链接
94 | ```
95 |
96 | # 其他替代品
97 |
98 | `robots.txt`是最为广泛使用的方法,
99 | 此外也可以通过`robots Meta`标签针对特定页面做设置。
100 |
101 | ```html
102 |
103 |
104 |
105 | ```
106 |
107 | 更详细介绍:[敖武的博客-robots.txt](https://z.wiki/misc/robots.txt.html)
108 |
--------------------------------------------------------------------------------
/docs/snippets/shell/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Shell 脚本代码片段集合,包含常用的 Shell 命令、脚本示例和最佳实践
5 | - name: keywords
6 | content: shell,bash,脚本,代码片段,命令行,linux,unix
7 | tags: ["shell", "bash", "脚本", "命令行", "linux"]
8 | ---
9 |
10 | # 代码片段-shell
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/snippets/shell/allproxy.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 终端翻墙设置指南,介绍如何在命令行终端中配置代理实现科学上网
5 | - name: keywords
6 | content: 终端,翻墙,代理,proxy,socks5,http_proxy,all_proxy,shell
7 | tags: ["终端", "翻墙", "代理", "proxy", "shell"]
8 | ---
9 |
10 | # 终端翻墙
11 |
12 | 电脑上打开代理软件后,终端其实并不会自动翻墙,运行如下命令可以实现终端翻墙。
13 |
14 |
15 | ```shell
16 | export all_proxy="socks5://127.0.0.1:1086"
17 |
18 | # 或
19 |
20 | export http_proxy=http://127.0.0.1:1087
21 | ```
22 |
--------------------------------------------------------------------------------
/docs/snippets/shell/authorized_keys.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: SSH 免密登录教程,介绍如何通过公钥认证实现无需密码登录服务器
5 | - name: keywords
6 | content: SSH,免密登录,公钥,私钥,ssh-copy-id,ssh-keygen,authorized_keys
7 | tags: ["SSH", "免密登录", "公钥认证", "服务器"]
8 | ---
9 |
10 | # ssh 免密登录
11 |
12 |
13 | 在登录服务器的时候经常需要输入密码,其实可以通过上传公钥的方式来实现免密登录,以下脚本可实现自动将本地公钥上传到目标服务器上。
14 |
15 | ```shell
16 | ssh-copy-id -i ~/.ssh/id_rsa.pub 账号@服务器IP
17 | ```
18 |
19 | 如果本地尚未生成公钥私钥的话,可以通过以下命令生成。
20 |
21 | ```shell
22 | ssh-keygen -t rsa
23 | ```
24 |
25 |
26 |
--------------------------------------------------------------------------------
/docs/snippets/shell/base64.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: base64 编码解码操作指南,介绍如何在服务器和本地之间通过 base64 编码传输文件
5 | - name: keywords
6 | content: base64,编码,解码,文件传输,shell
7 | tags: ["base64", "shell", "文件传输", "编码"]
8 | ---
9 |
10 | # base64 操作
11 |
12 |
13 | 经常需要将服务器上的照片复制到本地,
14 | 如果本地直连服务器,可以通过`scp`进行复制,
15 | 如果有网络隔离,
16 | 可以先将照片转`base64`编码再进行文本复制、还原照片。
17 |
18 | ```shell
19 | base64
20 | ```
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/docs/snippets/shell/bc.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: bc 命令从入门到精通,介绍 bc 基本计算器的使用方法,包括数学计算、小数精度设置等功能
5 | - name: keywords
6 | content: bc,basic calculator,基本计算器,数学计算,小数精度,shell计算
7 | tags: ["bc", "calculator", "shell", "计算器"]
8 | ---
9 |
10 | # 数学计算-bc
11 |
12 |
13 |
14 | ## 数学计算
15 |
16 | > `bc` 全称 `basic calculator`,支持加减乘除关系运算等多种运算方式
17 |
18 | 进行基础的数学计算
19 |
20 | ```shell
21 | echo "1.356 * 1.2" | bc -l
22 | echo '( 32 / 5 )' | bc
23 | echo '( 32 / 5 ) * 9 ' | bc
24 | ```
25 |
26 | 设定小数精度
27 |
28 | ```shell
29 | echo 'scale=2; ( 32 / 5 )' | bc
30 | echo 'scale=2; ( 32 / 5 ) * 9' | bc
31 |
32 | ```
33 |
--------------------------------------------------------------------------------
/docs/snippets/shell/bg.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Linux 后台运行程序指南,详解多种让程序在后台执行的方法及相关命令使用
5 | - name: keywords
6 | content: Linux,后台运行,nohup,jobs,fg,bg,shell,命令行
7 | tags: ["Linux", "后台运行", "nohup", "shell", "命令行"]
8 | ---
9 |
10 | # 后台运行程序
11 |
12 |
13 | `linux`后台运行程序的方式
14 |
15 | ### 方式一
16 |
17 | `${command} &`
18 |
19 | 该方式可以让程序后台执行,但同时日志会实时输出到终端。通过`${command} > tmp.log 2>&1 &`可以将日志输出到文件`tmp.log`中。
20 |
21 | 命令执行后会输出进程`ID`,通过该进程`ID`可以查看或管理进程。
22 |
23 | 缺点:终端终止的时候运行的程序也会终止。
24 |
25 |
26 | ### 方式二
27 |
28 | `nohup ${command} &`
29 |
30 | 功能同上,但是终端终止的时候程序不会终止。
31 |
32 |
33 | ### 其他相关命令
34 |
35 | `jobs`:查看当前在后台运行的程序。
36 | `fg`:将后台运行的程序放到前台。
37 | `bg`:将后台挂起的程序放到后台继续运行,程序依然会占据标准输入流、标准输出流,终端一旦关闭程序也会关闭。
38 | `Ctrl+Z`:将当前运行的程序放到后台执行。
39 |
--------------------------------------------------------------------------------
/docs/snippets/shell/create-big-file.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 在 Linux 系统中创建大文件的方法,包括使用 dd 和 fallocate 命令的详细说明和示例
5 | - name: keywords
6 | content: Linux,大文件,dd,fallocate,创建文件,shell,命令行
7 | tags: ["Linux", "Shell", "文件操作", "dd", "fallocate"]
8 | ---
9 |
10 | # 创建大文件
11 |
12 |
13 |
14 | ### 使用`dd`创建大文件
15 |
16 | ```shell
17 | dd if=/dev/zero of=./test.file bs=1024 count=1M
18 | ```
19 |
20 | `dd`会不停从`/dev/zero`中读取数据并写入`./test.file`中,在创建大文件时会消耗一定时间。
21 |
22 | ### 使用`fallocate`创建大文件
23 |
24 | ```shell
25 | fallocate -l 10G gentoo_root.img
26 | ```
27 |
28 |
29 | `fallocate`是创建大文件的最优选择,磁盘会直接给该文件分配指定的空间,
30 | 由于不会写入内容所以创建速度极快。
31 |
32 |
--------------------------------------------------------------------------------
/docs/snippets/shell/curl.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: curl 命令详解,网络请求工具的使用方法,包括限速、接口测试等功能
5 | - name: keywords
6 | content: curl,网络请求,接口测试,限速,HTTP
7 | tags: ["curl", "网络请求", "HTTP", "命令行工具"]
8 | ---
9 |
10 | # curl
11 |
12 |
13 |
14 |
15 | `curl`是和网络请求相关使用最频繁的工具,甚至某种程度上可以替代`postman`来进行接口测试。
16 |
17 |
18 | ## 限速
19 |
20 | ```shell
21 | # 限速 `10k` 进行页面下载
22 | curl -i -L --limit-rate 10k z.wiki
23 | ```
24 |
--------------------------------------------------------------------------------
/docs/snippets/shell/diff.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 文本对比工具和技巧,介绍如何使用 diff、vimdiff 等工具进行文本内容比较和差异分析
5 | - name: keywords
6 | content: diff,vimdiff,文本对比,差异分析,shell,排序对比
7 | tags: ["diff", "vimdiff", "shell", "文本对比"]
8 | ---
9 |
10 | # 文本对比
11 |
12 |
13 | 两个文件进行`diff`,先排序、后对比。
14 |
15 | ```shell
16 | bash -c 'vimdiff <(sort text2) <(sort text1)'
17 | ```
18 |
--------------------------------------------------------------------------------
/docs/snippets/shell/exclude-in-find-and-grep.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 介绍如何在 find 和 grep 命令中排除指定目录,提高搜索效率和准确性
5 | - name: keywords
6 | content: find,grep,exclude,排除目录,node_modules,搜索,查找
7 | tags: ["shell", "find", "grep", "exclude", "排除目录"]
8 | ---
9 |
10 | # find、grep 排除指定目录
11 |
12 |
13 | 通过`find`、`grep`查找文件、内容的时候排查指定目录(如`node_modules`)
14 |
15 | ## grep
16 | ```shell
17 | grep -i --exclude-dir=node_modules -r "content" *
18 | ```
19 |
20 | > 通过`grep`查找内容速度过慢时,推荐使用,参考文档 [rgrep](https://z.wiki/tech/ripgrep.html)
21 |
22 | ## find
23 | ```shell
24 | find . -name "package.json" ! -path "*node_modules*"
25 | ```
26 |
27 |
--------------------------------------------------------------------------------
/docs/snippets/shell/file.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Linux 和 Unix 系统中的文件操作命令,包括查看文件大小、文件排序、文件查找等常用操作
5 | - name: keywords
6 | content: Linux,Unix,文件操作,文件大小,du,sort,文件查找,文件管理
7 | tags: ["Linux", "Unix", "文件操作", "Shell"]
8 | ---
9 |
10 | # 文件操作
11 |
12 |
13 | 查看所有文件、文件夹大小
14 |
15 | ```shell
16 | du -hs * | sort -h
17 | ```
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/snippets/shell/find-exec.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: find命令与exec结合使用教程,介绍如何查找文件并执行其他命令的高效方法
5 | - name: keywords
6 | content: find,exec,xargs,查找文件,执行命令,Linux,Shell
7 | tags: ["find", "exec", "xargs", "shell", "linux"]
8 | ---
9 |
10 | # find 并执行其他命令
11 |
12 |
13 | 先通过`find`查找文件并对文件执行特定命令
14 |
15 | 通过`-exec`选项实现
16 |
17 | ```shell
18 | find . -type f -exec ls -l {} \;
19 | ```
20 |
21 | 通过`xargs`实现
22 | ```shell
23 | find . -maxdepth 1 -name "*.log" | xargs -i du -hs {}
24 | ```
25 |
26 | ### 应用实战一
27 |
28 | 查找所有项目并自动拉取`master`分支上的最新代码
29 |
30 | ```shell
31 | find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \;
32 | ```
33 |
34 | ### 应用实战二
35 |
36 | 查找特定的文件并清空内容
37 |
38 | ```shell
39 | find . -type f -name "user*" -exec bash -c 'echo 0x0 > {}' \;
40 | ```
41 |
42 | 找到所有`user`开头的文件,并对每个文件执行脚本`echo 0x0 > {}`清空文件内容,
43 | 当脚本执行的时候`{}`会被动态替换成当前文件名,
44 | 最后结尾的`\;`表示该分号是执行子命令的内容,不是`find`需要处理的分号。
45 |
--------------------------------------------------------------------------------
/docs/snippets/shell/gzip.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 查找文件并进行 gzip 压缩,介绍如何使用 find 命令查找 js 和 css 文件并进行 gzip 压缩
5 | - name: keywords
6 | content: gzip,find,压缩,js,css,shell,命令行
7 | tags: ["gzip", "find", "shell", "压缩"]
8 | ---
9 |
10 | # 查找文件并进行 gzip
11 |
12 | 查找 js css 文件并进行 gzip
13 |
14 |
15 | ```shell
16 | find . \( -name "*\.js" -o -name "*\.css" \) -exec bash -c 'echo Compressing "{}" && gzip -c --best "{}" > "{}.gz"' \;
17 | ```
18 |
19 |
--------------------------------------------------------------------------------
/docs/snippets/shell/loop.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Shell 循环执行命令从入门到精通,介绍 shell 中循环执行命令的方法、间隔设置和实际应用
5 | - name: keywords
6 | content: shell,loop,循环,执行,间隔,while,sleep
7 | tags: ["shell", "loop", "循环", "命令"]
8 | ---
9 |
10 | # 循环执行
11 |
12 |
13 | 循环执行,间隔`5`秒
14 |
15 | ```shell
16 | while true; do
17 | sleep 5
18 | pwd
19 | done
20 | ```
21 |
--------------------------------------------------------------------------------
/docs/snippets/shell/lsof.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: lsof 命令详解,介绍如何使用 lsof 查看打开的文件、网络连接、进程和用户信息
5 | - name: keywords
6 | content: lsof,linux,unix,文件,网络连接,进程,端口,用户
7 | tags: ["lsof", "linux", "unix", "文件管理"]
8 | ---
9 |
10 | # lsof
11 |
12 |
13 | `lsof` 是一个列出所有打开文件的工具,可以用来检查打开的文件、网络连接、进程等信息。下面是 `lsof` 常用的功能和用途:
14 |
15 |
16 |
17 |
18 |
19 | 1. 查看文件
20 |
21 | `lsof` 可以查看系统中打开的所有文件,包括文本文件、二进制文件、设备文件、目录等。可以使用 `lsof filename` 命令来查看某个文件被哪些进程打开。
22 |
23 | 2. 查看网络连接
24 |
25 | `lsof` 可以查看系统中所有打开的网络连接,包括 TCP、UDP、Unix 域套接字、网络文件系统等。可以使用 `lsof -i` 或 `lsof -i tcp:8080` 或 `lsof -i:8080` 等命令来查看某些指定端口的网络连接。
26 |
27 | 3. 查看进程
28 |
29 | `lsof` 可以查看系统中所有运行的进程信息,包括进程 ID、进程所占用的端口号、进程运行的程序、进程打开的文件等。可以使用 `lsof -p PID` 命令来查看某个指定进程的信息。
30 |
31 | 4. 查看登录的用户
32 |
33 | `lsof` 可以查看登录到系统中的所有用户信息,包括用户 ID、用户所在的组、用户登录的终端等。可以使用 `lsof -u username` 命令来查看某个指定用户的信息。
34 |
35 | 5. 查看设备文件
36 |
37 | `lsof` 可以查看系统中所有打开的设备文件,包括磁盘、光驱、串口、USB 等。可以使用 `lsof /dev/disk1` 命令来查看某个指定设备的信息。
38 |
--------------------------------------------------------------------------------
/docs/snippets/shell/num-seq.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Shell 脚本中的数字序列生成方法,介绍使用花括号语法创建数字序列的基本用法和示例
5 | - name: keywords
6 | content: shell,bash,数字序列,花括号,for循环,序列生成
7 | tags: ["shell", "bash", "数字序列", "for循环"]
8 | ---
9 |
10 | # 数字序列
11 |
12 |
13 | ```shell
14 | #!/bin/bash
15 | for n in {1..5}
16 | do
17 | echo $n
18 | done
19 | ```
20 |
--------------------------------------------------------------------------------
/docs/snippets/shell/number-compare.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: shell 中进行数字比较的方法,介绍 shell 脚本中数字大小比较的语法和使用示例
5 | - name: keywords
6 | content: shell,数字比较,比较运算符,-gt,-lt,-eq,-ne,-ge,-le
7 | tags: ["shell", "数字比较", "脚本"]
8 | ---
9 |
10 | # shell 中进行数字比较
11 |
12 |
13 | 在 shell 中进行数字比较
14 |
15 | ```shell
16 | if [2 -gt 3]
17 | then
18 | print "2 is greater"
19 | else
20 | print "2 is not greater"
21 | fi
22 | ```
23 |
24 |
--------------------------------------------------------------------------------
/docs/snippets/shell/parallel.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: shell 并发执行命令的方法,介绍如何使用 xargs 实现并行处理和多线程执行
5 | - name: keywords
6 | content: shell,并发,并行,xargs,多线程,parallel
7 | tags: ["shell", "并发", "xargs", "parallel"]
8 | ---
9 |
10 | # shell 并发执行
11 |
12 |
13 | 并发执行`curl`
14 |
15 | ```shell
16 | xargs -I % -P 8 curl -X POST "https://z.wiki" < <(printf '%s\n' {1..4})
17 | ```
18 |
--------------------------------------------------------------------------------
/docs/snippets/shell/progress-bar.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: shell 进度条实现方法,包括初级和高级进度条的代码示例和运行效果展示
5 | - name: keywords
6 | content: shell,进度条,bash,terminal,console,ANSI,转义序列
7 | tags: ["shell", "bash", "进度条", "terminal"]
8 | ---
9 |
10 | # shell 进度条
11 |
12 |
13 | 在`shell`中输出进度条
14 |
15 | ## 初级进度条
16 |
17 | ```
18 | #!/bin/bash
19 |
20 | for((i=1;i<100;i++))
21 | do
22 | printf "\u001b[1000D 进度:${i}";
23 | sleep 1;
24 | done
25 | ```
26 |
27 | 运行效果:
28 |
29 | 
30 |
31 | ## 高级进度条
32 |
33 | ```
34 | #!/bin/bash
35 | i=0
36 | str=""
37 | arry=("\\" "|" "/" "-")
38 | while [ $i -le 100 ]
39 | do
40 | let index=i%4
41 | printf "\u001b[1000D[%-100s] %d %c" "$str" "$i" "${arry[$index]}"
42 | sleep 0.1
43 | let i=i+1
44 | str+="#"
45 | done
46 | echo ""
47 | ```
48 |
49 | 运行效果:
50 |
51 | 
52 |
53 | > 更信息内容可查看 [ANSI转义序列](https://z.wiki/tech/my-first-post-in-stackoverflow.html);
54 |
--------------------------------------------------------------------------------
/docs/snippets/shell/rgeo.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 高德地图逆地理编码API使用教程,通过坐标获取地理位置信息,包括道路名称等详细数据
5 | - name: keywords
6 | content: 高德地图,逆地理编码,regeo,坐标,地理位置,API,curl,shell
7 | tags: ["高德地图", "逆地理编码", "API", "shell", "curl"]
8 | ---
9 |
10 | # 逆地理
11 |
12 |
13 | 根据坐标获取道路名称:
14 |
15 | ```shell
16 | curl -s "https://restapi.amap.com/v3/geocode/regeo?output=json&location=116.310003,39.991957&key=xxx&radius=1000&extensions=all" | jq . | grep "name" | head -1 | awk -F ":" '{print $2}' | sed 's/"//g' | sed 's/,//g'
17 | ```
18 |
19 | 注1:`Mac` 系统安装`GNU`版的`curl`
20 |
21 | 注2:`xxx`需替换,请自动去 [高德地图 LBS](https://lbs.amap.com/) 注册
22 |
--------------------------------------------------------------------------------
/docs/snippets/shell/string-compare.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: shell 中进行字符串比较的方法,包括字符串相等判断、子串判断以及其他常用判断方法
5 | - name: keywords
6 | content: shell,字符串比较,字符串相等,子串判断,bash,条件判断
7 | tags: ["shell", "bash", "字符串比较", "条件判断"]
8 | ---
9 |
10 | # shell 中进行字符串比较
11 |
12 |
13 |
14 |
15 | 判断字符串是否相等
16 |
17 | ```shell
18 | #!/bin/bash
19 |
20 | VAR1="one"
21 | VAR2="two"
22 |
23 | if [ "$VAR1" = "$VAR2" ]; then
24 | echo "Strings are equal."
25 | else
26 | echo "Strings are not equal."
27 | fi
28 | ```
29 |
30 |
31 | 字符串子串判断
32 |
33 | ```shell
34 | #!/bin/bash
35 |
36 | VAR='GNU/Linux is an operating system'
37 | if [[ $VAR == *"Linux"* ]]; then
38 | echo "It's there."
39 | fi
40 | ```
41 |
42 | 其他判断方法
43 |
44 | ```
45 | var1 = var2 // 判断 var1 和 var2 相等
46 | var1 != var2 // 判断 var1 和 var2 不相等
47 | var1 < var2 // 判断 var1 比 var2 小
48 | var1 > var2 // 判断 var1 比 var2 大
49 | -n var1 // 判断 var1 长度不为 0
50 | -z var1 // 判断 var1 长度为 0
51 | -d file // 判断 file 为目录
52 | -e file // 判断 file 存在
53 | -w file // 判断 file 存在并可写入
54 | -r file // 判断 file 存在并可读
55 | -s file // 判断 file 存在并不为空
56 | -f file // file 存在并且为文件
57 | -O file // file 存在并且 owner 为当前用户
58 | -G file // file 存在并且 owner 和当前用户同为一个 group
59 | -x file // file 存在并且具有可执行权限
60 | fA -nt fB // 判断 文件A 比 文件B 新
61 | fA -ot fB // 判断 文件A 比 文件B 旧
62 | ```
63 |
--------------------------------------------------------------------------------
/docs/tech/360zz.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 360站长平台使用指南,包括网站管理、验证方式和自动收录功能的详细介绍
5 | - name: keywords
6 | content: 360站长,网站管理,验证方式,自动收录,sitemap,CNAME验证
7 | tags: ["360站长", "SEO", "网站管理", "站点验证", "自动收录"]
8 | ---
9 |
10 | # 360 站长
11 |
12 | ### 地址
13 |
14 |
15 |
16 | ### 管理网站
17 |
18 | 进入后"添加网站",添加后需要进行验证
19 |
20 | 常见的有3中验证方式
21 |
22 | 1. 代码验证
23 |
24 | 在首页中增加`meta`标签
25 |
26 |
27 |
28 |
29 | 3. 文件验证
30 |
31 | 上传特定的文件到服务器中
32 |
33 |
34 |
35 |
36 |
37 | 4. CNAME验证
38 |
39 | 添加`CNAME`记录
40 |
41 |
42 |
43 |
44 | ### 自动收录
45 |
46 | 360 站长也提供了多种收录方式
47 |
48 | 1. 手动提交
49 | 手动提交:即手动通过表单逐个提交,适用于网址较少的情况
50 | 2.
51 |
52 |
53 | 2. `sitemap`提交
54 |
55 | `sitemap` 适用于网址较多的情况,可以将网址统一到同一个文件中批量提交
56 |
57 |
58 |
59 |
60 | 4. 自动提交
61 |
62 | 360 站长并没有像百度站长那样提供`API`,而是提供了前端脚本,每次页面被浏览的时候自动进行提交,优势是:无服务器依赖,缺点是:网站更新后只有访问到了才能更新,各有利弊
63 |
64 |
65 |
--------------------------------------------------------------------------------
/docs/tech/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 技术文章集合,包含编程、开发、系统架构等各类技术内容
5 | - name: keywords
6 | content: 技术,编程,开发,架构,教程,指南
7 | tags: ["技术", "编程", "开发"]
8 | ---
9 |
10 | # 技术文章
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/tech/ai-text-split.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: AI 大模型 文本切割
5 | - name: keywords
6 | content: AI 大模型 文本切割
7 | ---
8 | # 文本切割
9 |
10 | 文本切分的时候如何保证数据不丢失?如何切分更合理?🤔️
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/docs/tech/apple-privacy-protection.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 苹果隐私保护功能测试与分析,揭示邮件隐私保护的真实效果与局限性
5 | - name: keywords
6 | content: 苹果,隐私保护,邮件隐私,IP地址,远程内容,保护邮件活动,隐藏IP地址
7 | tags: ["苹果", "隐私保护", "邮件", "IP地址", "测试"]
8 | ---
9 |
10 | # 隐私保护
11 |
12 | 苹果的隐私保护原来只是个幌子啊,
13 |
14 |
15 |
16 |
17 | > 邮件隐私保护
18 | >
19 | > 你收到的电子邮件可能包括远程内容,使电子邮件发件人能够了解你的信息。打开电子邮件时,发件人即可收集你的“邮件”活动信息,此过程不透明,且你无法控制共享哪些信息。电子邮件发件人可能会了解你打开其电子邮件的时间和次数、是否转发了该电子邮件、你的互联网协议(IP)地址以及其他可用于建立你个人行为档案并知晓你位置的数据。
20 | >
21 | > “保护邮件活动”可阻止包括Apple在内的电子邮件发件人了解你“邮件”的活动信息,从而保护你的隐私。在“邮件”App中收到电子邮件时,无论你是否与电子邮件进行交互,“保护邮件活动”都会默认在后台下载远程内容,而非在你打开电子邮件时下载远程内容。Apple不会获取与内容相关的任何信息。
22 | >
23 | > 此外,“保护邮件活动”会通过由不同实体运行的两次独立中继转接“邮件”下载的所有远程内容。第一次中继知道你的IP地址,但不知道你收到的远程“邮件”内容。第二次中继知道你收到的远程“邮件”内容,但不知道你的IP地址,而是向目的位置提供一个泛化的身份信息。通过这种方式,任何实体都无法掌握可同时识别你身份和你收到远程“邮件”内容的信息。发件人无法将你的IP地址作为唯一标识符与你在网站或App中的活动关联,并以此建立你的档案。
24 | >
25 | > 前往“设置”>“邮件”>“隐私保护”,然后轻点关闭“保护邮件活动”,即可随时在iOS和iPadOS设备上停用“保护邮件活动”。在Mac上,前往“邮件”>“设置”>“隐私”,然后取消选择“保护邮件活动”。
26 | >
27 | > 若你选择停用“保护邮件活动”,“隐藏IP地址”功能将仍沿用两次独立互联网中继的设计遮盖你的IP地址。前往“设置”>“邮件”>“隐私保护”,然后轻点关闭“隐藏IP地址”,即可随时在iOS和iPadOS设备上停用“隐藏IP地址”。在Mac上,前往“邮件”>“设置”>“隐私”,然后取消选择“隐藏IP地址”。
28 | >
29 | > 使用这些功能即表示你同意和允许Apple及其下属公司及代理机构按上述条件传输、收集、维护、处理和使用这些信息。
30 | >
31 | > Apple收集的信息始终会遵照Apple的“隐私政策”处理,其内容可参阅www.apple.com/cn/privacy。
32 |
33 |
34 | 说的这么神奇,然而我测了下,依然可以跟踪到用户的真是IP,以及邮件的首次查看情况。
35 |
36 | 测试原理如下:
37 |
38 | 1. 发送邮件给自己,其中邮件中包含一个远程图片
39 | 2. 在服务器上查看这个图片的访问情况
40 | 3. 当第一次我打开邮件的时候,能检测到图片被访问一次
41 | 4. 远程 IP 确实是我的真是 IP
42 |
43 |
44 |
45 |
46 |
47 | > Mac 的邮件客户端好歹会提示“无法通过隐私模式加载”,手机邮箱客户端可是什么提示都没有。。。
48 |
49 | 通过上述步骤 3 和 4 说明
50 |
51 | 1. “而非在你打开电子邮件时下载远程内容” 这个是不真实的,当我第一次打开的时候才进行下载远程内容(手机邮箱客户端直接下载的)
52 | 2. 我可以获取到用户公网 IP ,进而推断出用户的位置
53 |
54 |
55 | 此外,苹果官网说由于 [VPN 和代理](https://support.apple.com/zh-cn/102289)导致的,然而我并没有任何 VPN 或代理。
56 |
--------------------------------------------------------------------------------
/docs/tech/aspx.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: ASP.NET (ASPX) 技术介绍,包含京东网站的实际应用案例和Windows服务器环境说明
5 | - name: keywords
6 | content: aspx,asp.net,京东,windows服务器,web技术
7 | tags: ["aspx", "asp.net", "windows", "web技术"]
8 | ---
9 |
10 | # aspx
11 |
12 |
13 |
14 | 京东还有服务用了`asp.net`技术,那服务器想必也是`Windows`系统了。
15 |
16 | [京东](https://www.jd.com/allSort.aspx)
17 |
--------------------------------------------------------------------------------
/docs/tech/baota.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 宝塔 linux 面板使用体验,包括一键安装环境、系统监控、安全防护、文件管理、软件商店、站点管理和数据库管理等功能介绍
5 | - name: keywords
6 | content: 宝塔,linux,面板,服务器管理,环境部署,系统监控,安全防护,文件管理,软件商店,站点管理,数据库管理
7 | tags: ["宝塔", "linux", "面板", "服务器管理"]
8 | ---
9 |
10 | # 宝塔 linux 面板
11 |
12 | 宝塔`linux`面板是个好东西,在`docker`里面体验了下,方便很多。
13 |
14 |
15 |
16 |
17 | 不过,已部署项目的系统中无法使用。
18 |
19 | ```bash
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 |
--------------------------------------------------------------------------------
/docs/tech/bdzz.md:
--------------------------------------------------------------------------------
1 | ---
2 | tags: ["站长", "百度站长", "爬虫"]
3 | ---
4 |
5 | # 百度站长自动推送配置
6 |
7 | ### 注册百度站长
8 |
9 | // TODO
10 |
11 | ### 新增站点
12 |
13 | // TODO
14 |
15 | ### 普通收录
16 |
17 | // TODO
18 |
19 | #### API 提交
20 |
21 | 在`github`的`workflow`中配置推送流程,在代码部署的时候自动推送到百度
22 |
23 | > 注:API 提交有次数限制
24 |
25 | 推送流程分三步
26 |
27 | 1. `workflow`中调用推送流程
28 | 2. 根据文件生成所有连接地址
29 | 3. 调用百度`API`进行推送
30 |
31 | #### sitemap
32 |
33 |
34 |
35 |
36 | 文件地址格式为txt或xml,每个地址文件最多包含50,000个网址且需小于10MB。
37 | sitemap提交工具仅对已验证站点开放使用,开发者无法提交同一主域下其他未验证站点的数据。详细说明
38 | 请勿提交索引型sitemap,索引型不予处理,且若存在索引型sitemap,将不允许提交新文件;请删除索引型sitemap后再尝试提交数据。
39 | 填写站点的主体备案号,可以提高每日提交上限。去填写
40 |
41 | #### 手动提交
42 |
43 |
44 |
45 |
46 | 请在输入框中填写当前选择站点的链接;如需提交其他验证站点链接,请选择对应的站点
47 | 您每次最多可提交20条链接,每行一条
48 | 仅支持页面对应链接的提交,不支持sitemap形式的文件提交
49 | 如果需要提交非验证本站链接,请点击提交非验证站点链接
50 |
51 |
52 | ### 百度爬虫抓取
53 |
54 | 连续4天了,每天都在给百度推送链接,终于等来了百度爬虫的一次爬去,开心哭了😂
55 |
56 | 不过百度也真够慢的,`Google`、`bing`早就天天开始爬取我的网站了,百度一直没反应,主动推送链接也反应极慢
57 |
58 |
59 |
--------------------------------------------------------------------------------
/docs/tech/chkconfig.md:
--------------------------------------------------------------------------------
1 | # chkconfig
2 |
3 | 腾讯云上的服务器总有需要重启的时候,每次重启都会需要手动开启一堆服务和应用,
4 | 如`nginx`、聊天室、博客对应的后台`Java`服务、`node`服务等等,
5 | 针对这种情况,之前的文章中介绍过如何通过`crontab`、`pm2`去解决
6 | ([crontab](https://z.wiki/tech/crontab.html#%E7%94%A8%E6%88%B7%E4%BB%BB%E5%8A%A1)),
7 | 这次介绍下`chkconfig`。
8 |
9 | ### chkconfig 是什么
10 |
11 | `chkconfig`是用来管理系统初始化期间启动服务的程序
12 |
13 | 通过`man`手册可以更具体的了解`chkconfig`
14 |
15 | ```text
16 | CHKCONFIG(8) System Manager's Manual CHKCONFIG(8)
17 |
18 | NAME
19 | chkconfig - updates and queries runlevel information for system ser‐
20 | vices
21 |
22 | SYNOPSIS
23 | chkconfig [--list] [--type type] [name]
24 | chkconfig --add name
25 | chkconfig --del name
26 | chkconfig --override name
27 | chkconfig [--level levels] [--type type] [--no-redirect] name
28 |
29 | chkconfig [--level levels] [--type type] [--no-redirect] name
30 |
31 | DESCRIPTION
32 | chkconfig provides a simple command-line tool for maintaining the
33 | /etc/rc[0-6].d directory hierarchy by relieving system administrators
34 | of the task of directly manipulating the numerous symbolic links in
35 | those directories.
36 | ```
37 |
38 | ### 启动基础知识
39 |
40 | 当`Linux`机器启动时,出现的第一个程序时`init`,再由`init`执行
41 | `/etc/inittab`下的任务。
42 |
43 |
44 | 未完待续...
45 |
--------------------------------------------------------------------------------
/docs/tech/chromeext.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 谷歌插件 chrome 插件开发
5 | - name: keywords
6 | content: 谷歌插件 chrome 插件开发
7 | tags: ["谷歌插件", "浏览器", "开发"]
8 | ---
9 |
10 | # 谷歌插件
11 |
12 | 回想下,到现在自己做过的插件都有四五个了吧,多列搜索、默认首页、地图可视化搭建平台扩展工具、标签选择器等,但是真正发布出去的还真没有呢
13 |
14 |
15 | ### 插件发布
16 |
17 | 发布谷歌插件得申请专门的用于发布的账号,很久之前申请的了,当时还专门花了5美元开通什么服务来着。。。记不清了,没外币卡估计这一步会卡住。。。
18 |
19 |
20 | 今天把标签选择器插件提交了发布申请,过几天看看吧,据以往经验,得5天才会审核,😌。
21 |
22 |
23 |
24 | # 2021-11-09 更新
25 | 尴尬了,删除默认快捷键后没测就提交了。。还得重新等待审核
26 |
27 |
28 |
29 | # 2021-11-11 更新
30 | 上线成功👏👏👏
31 |
32 |
33 | # 2021-11-13 更新
34 | 两个已上线,两个审核中👏👏👏
35 |
36 | # 2021-11-13 更新
37 | `manifest 3` 尝试升级中
38 | 上传了一个,看看是否真的审核快吧
39 |
40 | # 2021-11-15 更新
41 | 经测,`manifest 3`确实审核快😏
42 |
--------------------------------------------------------------------------------
/docs/tech/coordinate-system.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: GPS 坐标系简介 WGS84 GCJ02 BD09 火星坐标系
5 | - name: keywords
6 | content: GPS 坐标系简介 WGS84 GCJ02 BD09 火星坐标系
7 | tags: ["GPS", "坐标系", "WGS84", "GCJ02", "BD09", "火星坐标系"]
8 | ---
9 |
10 | # 坐标系
11 |
12 |
13 |
14 | 摘要:国际通用`WGS84`坐标系,高德使用在此基础上加密的火星坐标系(国内通用),百度又是在火星坐标系上加密的
15 |
16 |
17 | ### WGS84坐标系
18 |
19 | 即地球坐标系,国际上通用的坐标系。
20 |
21 |
22 | ### GCJ02坐标系
23 |
24 | 即火星坐标系,`WGS84`坐标系经加密后的坐标系。
25 | 出于国家安全考虑,国内所有导航电子地图必须使用国家测绘局制定的加密坐标系统,即将一个真实的经纬度坐标加密成一个不正确的经纬度坐标。
26 |
27 |
28 |
29 | ### BD09坐标系
30 |
31 | 即百度坐标系,`GCJ02`坐标系经加密后的坐标系
32 |
33 |
34 |
--------------------------------------------------------------------------------
/docs/tech/coroutine.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 协程从入门到精通,介绍协程的概念、原理、实现方式及在并发编程中的应用
5 | - name: keywords
6 | content: 协程,coroutine,并发,轻量级线程,任务调度,异步编程
7 | tags: ["协程", "coroutine", "并发编程", "异步"]
8 | ---
9 |
10 | # 协程
11 |
12 | 协程是一种线程之间的轻量级并发机制,
13 | 它能够在同一线程中实现多个任务的交替执行,
14 | 从而提高程序的效率。
15 | 故,协程就是一种能够在一个线程中进行多个任务的并发机制,
16 | 它可以避免线程切换带来的性能损失,
17 | 并且能够更加灵活地管理任务的执行顺序,
18 | 协程就是一种更加高效、更加灵活的并发编程方式,可以更好地处理并发问题。
19 |
--------------------------------------------------------------------------------
/docs/tech/css-to-jss.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: CSS 转 JSS 教程,详细介绍如何将 CSS 样式转换为 JavaScript 样式表格式
5 | - name: keywords
6 | content: CSS,JSS,转换,样式表,JavaScript,React,样式
7 | tags: ["CSS", "JSS", "React", "前端开发", "样式转换"]
8 | ---
9 |
10 | # CSS 转 JSS
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/docs/tech/db.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 数据库选型指南,介绍不同类型数据库的特点、适用场景及选择依据
5 | - name: keywords
6 | content: 数据库,选型,SQL,NoSQL,关系型数据库,非关系型数据库,数据存储
7 | tags: ["数据库", "选型", "SQL", "NoSQL"]
8 | ---
9 |
10 |
11 | # 数据库选型
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/tech/docker-container-port.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Docker 容器端口映射动态修改方法,介绍如何为正在运行的 Docker 容器添加或修改端口映射
5 | - name: keywords
6 | content: Docker,端口映射,动态修改,容器端口,config.v2.json,hostconfig.json
7 | tags: ["Docker", "端口映射", "容器配置"]
8 | ---
9 |
10 | # docker 动态修改端口映射
11 |
12 | ### Docker 端口映射动态修改方法
13 |
14 | 在 `Docker` 中,通常使用 `docker run -p` 命令将容器内部端口映射到宿主机的指定端口上。
15 | 但有些情况下需要临时映射端口,例如 `Docker` 运行 `MySQL` 容器时,默认端口是不开放的。
16 | 那么有什么办法可以让正在运行的容器暴露指定的端口呢?
17 |
18 | 一种方法是通过修改 `Docker` 的配置文件来实现。
19 | 需要修改的文件包括 `config.v2.json` 和 `hostconfig.json`,
20 | 默认路径是 `/var/lib/docker/containers/`。具体操作步骤如下:
21 |
22 |
23 | 1. 首先使用 `systemctl stop docker` 命令关闭 `Docker` 服务。
24 | 2. 然后修改 `config.v2.json` 文件中的 `ExposedPorts` 配置信息,例如添加内部端口 `8080/tcp` 的映射:
25 |
26 | ```
27 | "Config": {
28 | "ExposedPorts": {
29 | "8080/tcp": {}
30 | },
31 | ...
32 | },
33 | ```
34 |
35 | 3. 接着修改 `hostconfig.json` 文件中的 `PortBindings` 配置信息,例如添加内部端口 `8080/tcp` 和外部端口 `8080` 的映射:
36 |
37 | ```
38 | "PortBindings": {
39 | "8080/tcp": [
40 | {
41 | "HostIp": "",
42 | "HostPort": "8080"
43 | }
44 | ]
45 | }
46 |
47 | ```
48 |
49 | 4. 完成以上配置后使用 `systemctl restart docker` 命令重启 `Docker` 服务。最后重启指定容器即可访问对应的端口。
50 |
51 |
52 | 需要注意的是,修改 `Docker` 配置文件的操作风险较高,
53 | 需要谨慎操作并备份文件。此外,修改 `Docker` 配置文件是一次性的操作,需要重启 `Docker` 服务或容器后才能生效。
54 | 因此,除非特别需要,一般不建议使用这种方法来暴露容器的端口。可以通过使用 `docker run -p` 命令来指定需要暴露的端口,
55 | 避免不必要的风险。
56 |
57 |
--------------------------------------------------------------------------------
/docs/tech/edge-rubbish.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Edge浏览器的垃圾功能及解决方法,介绍如何关闭Edge内置JSON查看器等不友好功能
5 | - name: keywords
6 | content: Edge,浏览器,JSON查看器,垃圾功能,edge://flags,浏览器设置
7 | tags: ["Edge", "浏览器", "JSON查看器", "功能优化"]
8 | ---
9 |
10 | # Edge 的垃圾功能
11 |
12 | Edge 从 112 版本开始内置 JSON 查看器,这个查看器的体验实在无法恭维
13 |
14 | 1. 默认无法折叠(需要每次手动开启折叠)
15 | 2. 完全阻止其他 JSON 查看插件的使用
16 | 3. 不具备区块高亮
17 |
18 | [edge JSON 折叠](https://learn.microsoft.com/zh-cn/microsoft-edge/devtools-guide-chromium/whats-new/2023/04/devtools-112#the-json-viewer-in-microsoft-edge-supports-code-folding)
19 |
20 |
21 |
22 |
23 |
24 | 不过,可以打开 Edge 的
25 | 实验页面 `edge://flags/`
26 | 可以关闭内置的 JSON 查看器:
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/docs/tech/free-domain.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 免费域名申请指南,详细介绍eu.org免费域名的申请流程、使用体验及申请结果
5 | - name: keywords
6 | content: 免费域名,eu.org,域名申请,免费资源,网站搭建
7 | tags: ["免费域名", "eu.org", "域名申请", "网站资源"]
8 | ---
9 |
10 | # 免费域名
11 |
12 | 申请了几个免费的`eu.org`域名,等几天看看。
13 |
14 | 另外,[https://nic.eu.org/](https://nic.eu.org/) 这是我见过最简洁的网站了。
15 |
16 |
17 |
18 |
19 | ### 简洁如下
20 |
21 |
22 |
23 |
24 |
25 |
26 | ### 申请结果
27 |
28 | 没想到申请到这么多域名😂
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/tech/google-console-insight.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Google Search Console 数据分析与搜索影响力统计,展示网站在 Google 搜索中的表现和流量趋势
5 | - name: keywords
6 | content: Google,Search Console,搜索影响力,网站流量,SEO,数据分析
7 | tags: ["Google", "Search Console", "SEO", "数据分析"]
8 | ---
9 |
10 | # Google 搜索影响力
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | ### 2024.04.04
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/docs/tech/google-seo.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: seo 优化 网站 排名 搜索
5 | - name: keywords
6 | content: seo 优化 网站 排名 搜索
7 | ---
8 | # SEO 优化
9 |
10 | 我们都知道 html 中的 description keyword 等 [meta](https://www.w3schools.com/tags/tag_meta.asp) 信息对 [SEO](https://zh.wikipedia.org/zh-hans/%E6%90%9C%E5%B0%8B%E5%BC%95%E6%93%8E%E6%9C%80%E4%BD%B3%E5%8C%96) 至关重要。
11 |
12 |
13 |
14 | 今天我们就做一个实验,来看下 meta 标签对排名的影响,以我的站点为例:
15 |
16 | ### 关键词:nginx 缓存
17 |
18 | 点击链接 [nginx 缓存](https://www.google.com/search?q=nginx+%E7%BC%93%E5%AD%98&oq=nginx+%E7%BC%93%E5%AD%98&gs_lcrp=EgZjaHJvbWUyBggAEEUYOTIGCAEQRRg8MgYIAhBFGDwyBggDEEUYPdIBBzIwM2owajGoAgCwAgA&sourceid=chrome&ie=UTF-8)
19 | 即可打开 Google 的搜索结果,如下图 排名第四。
20 |
21 |
22 |
23 | 这时候还没修改页面中的 description keyword 等 meta 标签呢,现在已修改并发布到线上,等几天再更新看下效果。
24 |
25 |
26 |
27 |
28 | ### 关键词:绩效自评
29 |
30 |
31 | 点击链接 [绩效自评](https://www.google.com/search?q=%E7%BB%A9%E6%95%88%E8%87%AA%E8%AF%84&oq=%E7%BB%A9%E6%95%88%E8%87%AA%E8%AF%84&gs_lcrp=EgZjaHJvbWUqBggAEEUYOzIGCAAQRRg7MgYIARBFGDsyBggCEEUYPTIGCAMQRRg8MgYIBBBFGDzSAQgzODMzajBqMagCALACAA&sourceid=chrome&ie=UTF-8)
32 | 即可打开 Google 的搜索结果,如下图 排名第五。情况同上。
33 |
34 |
35 |
36 |
37 |
38 | ### 未完待续
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/docs/tech/growth.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 技术人员成长指南,从业务支撑到技术深度再到广度拓展的进阶之路,帮助开发者突破瓶颈实现自我提升
5 | - name: keywords
6 | content: 技术成长,业务支撑,技术深度,技术广度,自我提升,开发者成长,技术探索
7 | tags: ["技术成长", "业务支撑", "技术深度", "技术广度", "自我提升"]
8 | ---
9 |
10 |
11 | # 如何成长
12 |
13 | ### 在业务中如何成长?
14 |
15 |
16 | 总结一下,希望新的一年做地更好
17 |
18 |
19 |
20 | #### 业务
21 |
22 | 在业务中成长,如果业务都支撑不好(或者作出的产品bug很多、体验很差)那肯定不能算一个优秀的开发者,所以,第一步要把业务支撑好
23 |
24 |
25 |
26 | #### 解脱
27 |
28 | 支撑好业务之后,比较好的支撑业务之后,容易进入这种状态:日复一日的重复、重复、重复。
29 | 这时候就需要自己去提升,从重复的业务中提升难度,比如:一个通用的日期选择功能,很多地方都有,那如何去提炼呢?
30 | 需要提取每个模块对日期组件的要求,需要参考别人是如何设计的(比如antd,这时候要看API也要看源码),
31 | 模仿好的案例,组件提炼好后,可能会逐步开始开发自己的组件库,这时候要了解其他组件库的整体设计并学习。
32 |
33 | 通过技术深度,来实现从重复的业务中解脱出来
34 |
35 |
36 |
37 | #### 广度
38 |
39 | 有了一定深度后,接下要要扩充广度,广度扩充的机会时刻都在身边,
40 | 广度从一个专业的领域到宽泛的生活都有广度扩充的机会。
41 |
42 | 比如:
43 |
44 | 1. 3D可视化,通过网上的可视化项目来熟悉这个领域,知道这个领域是什么、有什么能力、有哪些应用场景等等
45 | 2. 高并发,各个大公司的开放平台都是如何设计、实现的。
46 | 3. 你发现产品给你的资料格式有问题,需要自己整理,通过java、awk、js、shell、多行编辑、excel函数等等很多种方式,
47 | 4. 世界政治局势(咦,这个也算?)
48 |
49 | 但是如何才能知道有这些方式可以用呢?关注社区、关注别人。
50 |
51 |
52 |
53 |
54 | #### 探索
55 |
56 | 探索就是去摸索新技术。
57 | 学习新技术一定要和业务结合起来,好处是
58 |
59 | 1. 有充分的时间
60 | 2. 环境会逼迫自己深入去学
61 | 3. 学以致用,天天接触不容易忘掉
62 |
63 |
64 |
65 | #### 工具
66 |
67 | 俗话说得好,好记性比如烂笔头,这里的烂笔头就是工具,工具用的好,晚上下班早
68 |
69 |
70 |
71 | ##### 常用工具如下
72 |
73 | 1. 搜索技巧
74 | 1. 搜索的时候需要会提炼关键字,坏的习惯:”xxx和yyy哪个好“,好的习惯 “xxx vs yyy”
75 | 2. 搜索引擎的技巧,比如双引号表示必须有,site 可以显示搜索范围等
76 | 2. 英文文档
77 | 1. 习惯阅读英文文章、英文搜索、查看官网文档(而非劣质二手文章)
78 |
--------------------------------------------------------------------------------
/docs/tech/here-document.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: here document 详解,介绍 shell 中 heredoc 的概念、语法和使用场景,包含多个实用示例
5 | - name: keywords
6 | content: here document,heredoc,shell,重定向,多行文本,EOF
7 | tags: ["shell", "heredoc", "重定向"]
8 | ---
9 |
10 | # here document
11 |
12 |
13 | 在 `shell` 脚本语言中,`here document`(有时也称作 `heredoc` 或 `here-document`)是一种`IO`重定向的方法,
14 | 允许你将一个字符串文本块作为输入传递给程序。
15 |
16 | `here document` 允许你定义一个输入界定符(通常命名为 `EOF` 或其他任何你选择的文本),
17 | 然后在两个界定符之间包含文本。`Shell` 解释器会读取两个界定符之间的所有文本,并将其作为单个数据块提供给程序。
18 |
19 | 这种技术的一个主要用途是避免多次使用 `echo` 或其他输出命令,
20 | 或者省去创建和维护额外的文件。相反,你可以在脚本内部直接包含必要的多行数据,使得脚本更加自包含和可移植。
21 |
22 | 下面是一个`here document`的示例,在 `Shell` 脚本中使用 `cat` 命令将内联文本输出到 `stdout`:
23 |
24 |
25 | ```shell
26 | cat <<'EOF'
27 | 这里是第一行文本。
28 | 这里是第二行文本。
29 | 这里是第三行文本。
30 | EOF
31 |
32 | ```
33 |
34 | 在这个例子中,文本直到遇到第二个 `EOF` 为止会被作为 `cat` 命令的输入数据。
35 | 注意,如果在第一个界定符(`<
13 |
14 | 今日看到`html`字符实体中的空格部分,原以为`nbsp`只是普通空格符的等价映射,结果发现空格字符也别有洞天。
15 |
16 | ### 定义
17 |
18 | [https://www.w3.org/TR/html401/sgml/entities.html](https://www.w3.org/TR/html401/sgml/entities.html)
19 |
20 | ```text
21 |
22 | ```
23 |
24 | 从`w3`的定义上看,`nbsp`是"非折行空格符",一段文字在宽度不足的情况下会按空白符进行折行,
25 | 其中普通空格就是折行符的一个,而`nbsp`是非折行空格符,意味着`nbsp`前后的单词紧密连接在一起不会中间折行。
26 |
27 | ### 应用
28 |
29 | 在书名、系统名称等单词中使用`nbsp`这个字符实体,可以保证书名、系统名称不会中间折断,此外`html`中相连的多个普通空格字符会在解析式解析成一个空白字符,
30 | 但是`nbsp`字符实体不会进行合并。
31 |
32 | ### 扩展
33 |
34 | `nbsp` 全称为`non-breaking space`,那是不是还有其他空白字符实体呢?还真有,继续看`w3`的文档。
35 |
36 | ```text
37 | ...
38 |
39 |
40 |
41 | ...
42 | ```
43 |
44 | 同样叫空白字符还有`ensp`、`emsp`、`thinsp`等。
45 |
46 | 1. `ensp`:`en space`,`en`是排版领域的一个单位,长度为字体的一般,如:字体为`12px`,那`1en`表示`6px`,故`ensp`为长度为字体一半的宽度的空格符,在中文中等同于半角的空格符。
47 | 2. `emsp`: `em space`,`em`也是排版领域的一个单位,与前者的区别是`1em`表示字体大小,如:字体为`12px`,则`1em`同为`12px`,`emsp`即为字体相同长度的空格符,在中文中等同于全角的空格符。
48 | 3. `thinsp`: `thin space`,顾名思义,就是比较瘦的空格符,宽度为`ensp`的一半。
49 |
50 |
--------------------------------------------------------------------------------
/docs/tech/http2.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: HTTP/2 协议详解,介绍 HTTP/2 的主要特性、性能优势及在 Nginx 中的配置方法,包含实际部署案例
5 | - name: keywords
6 | content: HTTP/2,HTTP2.0,Nginx配置,性能优化,网站加速,协议升级
7 | tags: ["HTTP2", "Nginx", "性能优化"]
8 | ---
9 |
10 | # 全站开启 http 2.0 协议
11 |
12 |
13 |
14 |
15 |
16 |
17 | > 参考文档:[nginx 开启 http2.0](https://www.tecmint.com/enable-http-2-in-nginx/)
18 |
--------------------------------------------------------------------------------
/docs/tech/jsbin.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: jsbin 在线代码编辑器,支持 HTML、CSS、JavaScript 实时预览,方便编写和分享代码示例
5 | - name: keywords
6 | content: jsbin,在线编辑器,代码预览,HTML,CSS,JavaScript,代码分享
7 | tags: ["jsbin", "编辑器", "代码"]
8 | ---
9 |
10 | # jsbin
11 |
12 | 部署了一套`jsbin`服务,平时用来写写`demo`啥的~
13 |
14 | 访问地址:[https://z.wiki/jsbin](https://z.wiki/jsbin)
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/tech/lets-encrypt.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Let's Encrypt 自动化部署证书
5 | - name: keywords
6 | content: 证书 安全 网站 博客 阿里云 Let's Encrypt https 免费证书
7 | ---
8 | # Let's Encrypt 证书
9 |
10 | ### 阿里云证书
11 |
12 | 一直是[阿里云](http://aliyun.com/)的忠实粉丝,从上学的时候就开始用阿里云的服务,到现在十多年了。
13 |
14 |
15 |
16 |
17 | 网站的证书也一直用阿里云的免费证书,免费证书是一年有效期,到期后需要手动更新,人力成本倒也可控。
18 |
19 |
20 |
21 |
22 | 然而 23 年年底服务调整,有效期统一改为 3 个月。
23 |
24 | > 对于免费领取的SSL证书,签发后的证书有效期统一变更为3个月。如果您希望继续使用12个月有效期的免费证书,则需收取相关服务费,费用为68元/张/年。购买以及升级指南,请参见申请免费DV单域名试用证书和免费版SSL证书升级指南。
25 |
26 |
27 |
28 | 目前我申请了十多个证书,三个月一次手动更新成本确实高了点。
29 |
30 | ### 新证书
31 |
32 | 简单问了下 ChatGPT,目前就流行的免费证书为 [Let's Encrypt](https://letsencrypt.org/),不仅免费,还能通过程序自动化更新。
33 |
34 |
35 |
36 |
37 |
38 | 参考文档:[How to Install Let’s Encrypt (Certbot) on CentOS 8](https://tecadmin.net/how-to-install-certbot-on-centos-8/)
39 |
40 |
41 | 通过脚本一键更新证书,后续还可以结合 [crontab](https://z.wiki/snippets/shell/crontab.html) 自动更新,再也不用关心证书的事情啦。
42 |
43 |
44 |
45 |
46 | ```shell
47 | # 模拟更新所有证书
48 | sudo certbot renew --nginx --dry-run
49 |
50 | # 一键更新所有 nginx 证书
51 | sudo certbot renew --nginx
52 | ```
53 |
54 |
55 | ### 总结
56 |
57 | 总结下 Let's encrypt 的有点
58 |
59 | * 自动下载
60 | * 自动部署
61 | * 自动续期
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/docs/tech/lsof.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: lsof 命令详解,介绍 lsof 的基本用法、查看文件、网络连接、进程、用户和设备文件等功能
5 | - name: keywords
6 | content: lsof,linux,文件,网络连接,进程,用户,设备
7 | tags: ["lsof", "linux", "命令行"]
8 | ---
9 |
10 | # lsof
11 |
12 | `lsof` 含义为:`list of open file`
13 |
14 |
15 |
16 |
17 | `lsof` 是一个列出所有打开文件的工具,可以用来检查打开的文件、网络连接、进程等信息。下面是 `lsof` 常用的功能和用途:
18 |
19 | 1. 查看文件
20 |
21 | `lsof` 可以查看系统中打开的所有文件,包括文本文件、二进制文件、设备文件、目录等。可以使用 `lsof filename` 命令来查看某个文件被哪些进程打开。
22 |
23 | 2. 查看网络连接
24 |
25 | `lsof` 可以查看系统中所有打开的网络连接,包括 TCP、UDP、Unix 域套接字、网络文件系统等。可以使用 `lsof -i` 或 `lsof -i tcp:8080` 或 `lsof -i:8080` 等命令来查看某些指定端口的网络连接。
26 |
27 | 3. 查看进程
28 |
29 | `lsof` 可以查看系统中所有运行的进程信息,包括进程 ID、进程所占用的端口号、进程运行的程序、进程打开的文件等。可以使用 `lsof -p PID` 命令来查看某个指定进程的信息。
30 |
31 | 4. 查看登录的用户
32 |
33 | `lsof` 可以查看登录到系统中的所有用户信息,包括用户 ID、用户所在的组、用户登录的终端等。可以使用 `lsof -u username` 命令来查看某个指定用户的信息。
34 |
35 | 5. 查看设备文件
36 |
37 | `lsof` 可以查看系统中所有打开的设备文件,包括磁盘、光驱、串口、USB 等。可以使用 `lsof /dev/disk1` 命令来查看某个指定设备的信息。
38 |
39 | 更多脚本可访问[敖武的代码片段](https://snippets.z.wiki/#!./snippets/shell/lsof/)
40 |
--------------------------------------------------------------------------------
/docs/tech/meeting.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 抢购脚本,通过程序自动进行页面点击、订单下载
5 | - name: keywords
6 | content: 脚本,js,抢购,自动化,程序,下单
7 | ---
8 | # 抢购脚本
9 |
10 | 每周都要抢 _***_ ,作为程序员的我怎么能纯人肉抢呢?于是这个脚本应运而生。
11 |
12 |
13 |
14 | ### 脚本内容
15 |
16 | ```JavaScript
17 | (function() {
18 | 'use strict';
19 | var clicked = false; // 标记抢订状态,确保只抢订一次
20 | function doClick() {
21 | var minutes = new Date().getMinutes();
22 | if(minutes == 0 && !clicked) { // 时间点分钟数正好为0️⃣的时候进行抢订
23 | console.info('doClick', new Date(), new Date().getMilliseconds());
24 | document.querySelector('.next-dialog button.next-btn-primary').click(); // 需要点击的按钮,根据实际需要来修改
25 | clicked = true;
26 | } else {
27 | console.info('not doClick')
28 | }
29 | }
30 |
31 | function loop() {
32 | doClick();
33 | requestAnimationFrame(loop); // 循环执行抢订函数
34 | }
35 |
36 | requestAnimationFrame(loop);
37 | })();
38 | ```
39 |
40 | ### 使用方法
41 |
42 | 打开浏览器控制台,切换到`console`面板,复制以上内容并粘贴进去回车执行即可
43 |
44 |
45 |
46 | 自此,生产力极大提升
47 |
48 |
49 |
50 | ### 免责声明
51 |
52 | 请勿使用该脚本抢月饼哟🐶🐶🐶
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/docs/tech/mysql-login.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: mysql 非交互式密码输入
5 | - name: keywords
6 | content: mysql,密码输入,非交互式,数据库,登录
7 | ---
8 | # mysql 非交互式密码输入
9 |
10 | 以往在登陆`mysql`服务的时候都会交互式输入密码,
11 | 一旦密码复杂的话每次都重复性输入,
12 | 或需要通过程序老师行定时任务,
13 | 交互式密码输入是在让人头大。
14 |
15 |
16 |
17 | 下面介绍一种非交互式密码输入的方式
18 |
19 | ### 配置文件
20 |
21 | 在`~`(即`home`)目录下创建`.my.cnf`文件,并写入如下内容:
22 |
23 | ```
24 | [mysql]
25 | user = user
26 | password = password
27 |
28 | [mysqldump]
29 | user = user
30 | password = password
31 | ```
32 |
33 | > 注:用户名密码结合实际来修改
34 |
35 | ### 使用
36 |
37 | 写入如上文件后只需要登录时执行`mysql -h host -u user`即可登录
38 |
39 |
40 | ### 参考
41 |
42 | [tecadmin.net](https://tecadmin.net/mysql-commands-without-password-prompt/#:~:text=First%20commands%20will%20allow%20you%20login%20to%20mysql,any%20shell%20script%20or%20schedule%20crontab%20for%20backup.)
43 |
--------------------------------------------------------------------------------
/docs/tech/nodejs_chart.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Node.js 聊天室项目回顾,包含在线音乐播放器和实时聊天功能的简单实现
5 | - name: keywords
6 | content: nodejs,聊天室,websocket,音乐播放器,实时聊天,项目回顾
7 | tags: ["nodejs", "聊天室", "websocket"]
8 | ---
9 |
10 | # 重温8年前写的聊天室
11 |
12 | 附上链接 [聊天室](https://chat.z.wiki/)
13 |
14 | [代码](https://github.com/yihuaxiang/nodejs_chat)
15 |
16 | ### 本地预览
17 |
18 | 经过层层努力,终于本地运行起来了,倍感欣慰
19 |
20 | 之前做的简单的音乐播放器😂,硬编码进去两手歌曲,`Moon River` `Sound Of Silence`,曾经很喜欢这两首个,现在已经很少听了
21 |
22 |
23 |
24 | [音乐播放器](https://chat.z.wiki/player)
25 |
26 | 还有如此简陋的聊天室😂
27 |
28 |
29 |
30 | [聊天室](https://chat.z.wiki/)
31 |
32 | 真的喜极而泣🤡
33 |
34 |
35 |
36 | 发上去了😅 感动自己了😚😋😛
37 |
--------------------------------------------------------------------------------
/docs/tech/python.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: Python 编程语言基础知识,包括 Poetry 依赖管理工具的使用、虚拟环境配置和项目打包发布
5 | - name: keywords
6 | content: python,poetry,依赖管理,虚拟环境,打包,发布
7 | tags: ["python", "poetry", "依赖管理"]
8 | ---
9 |
10 | # python 知多少
11 |
12 |
13 | ### poetry
14 |
15 |
16 | Poetry 是 Python 的 依赖管理 和 打包工具,它旨在简化 Python 项目的依赖管理、虚拟环境管理和项目发布流程。可以看作是 pip 和 virtualenv 的现代替代品,同时提供类似 npm(Node.js)或 Cargo(Rust)的体验。
17 |
18 |
19 | #### Poetry 的主要功能
20 |
21 | ##### 管理 Python 依赖
22 |
23 | Poetry 通过 pyproject.toml 文件管理项目依赖,替代了 requirements.txt,可以更高效地解决依赖冲突。
24 |
25 | ```shell
26 | poetry add requests
27 | ```
28 |
29 | ##### 创建和管理 Python 虚拟环境
30 |
31 | Poetry 默认会为你的项目创建 独立的虚拟环境,并自动在其中安装依赖:
32 |
33 | ```shell
34 | poetry shell
35 | ```
36 |
37 |
38 | ##### 锁定依赖版本
39 |
40 | Poetry 使用 poetry.lock 文件确保项目的依赖版本一致,避免因为不同环境的库版本不同导致的问题。
41 |
42 | ##### 打包和发布
43 |
44 | Poetry 让打包和发布 Python 包变得简单:
45 |
46 |
47 | ```shell
48 | poetry build
49 | poetry publish
50 | ```
51 |
52 |
--------------------------------------------------------------------------------
/docs/tech/reversal.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 反转棋 小游戏
5 | - name: keywords
6 | content: 反转棋 小游戏
7 | ---
8 | # 做了一个反转棋
9 |
10 | 最近在小学生圈里比较流程反转棋,为了更好的融入进去,我抄了一个反转棋😜
11 |
12 | 地址:[https://playground.z.wiki/reversal/index.html](https://playground.z.wiki/reversal/index.html)
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/docs/tech/ripgrep.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: ripgrep 使用教程,介绍 ripgrep 的安装、使用和性能优势,以及与 grep、Ack、Ag 等工具的对比
5 | - name: keywords
6 | content: ripgrep,rg,grep,文本搜索,代码搜索,性能对比
7 | tags: ["ripgrep", "grep", "文本搜索", "代码搜索"]
8 | ---
9 |
10 | # ripgrep 是个好东西
11 |
12 | [项目地址](https://github.com/BurntSushi/ripgrep)
13 |
14 |
15 | ### 背景
16 |
17 | 工作中最害怕的事情之一就是:上游服务变更,作为下游,可能多个服务都要调整,每当如此都要通过IDE打开每个每个项目,根据关键词查找代码,看看项目中是否有使用到上游服务。
18 | 也许是习惯了,又或许是麻木了,我看周边每个同时都如此做着重复的事情。
19 |
20 | 不想这样,我大抵是厌倦了,横竖不想这么麻烦,打开谷歌搜了下"shell 文本查找",歪歪扭扭的每页都写满了`grep`
21 |
22 |
23 |
24 |
25 |
26 | ### 解决方案
27 |
28 | `grep` 是 `Linux`系统内置的一款强大的文本搜索工具,支持使用正则表达式递归对目录中的文件内容进行匹配。
29 |
30 | 用法如下:
31 | ```shell
32 | grep -F -r "KEY_WORD" --exclude-dir=node_modules * -B 3 -A 3
33 | ```
34 |
35 | 含义讲解:
36 |
37 | > `-F`:需要匹配字符串为固定字符串(非正则表达式)
38 | >
39 | > `-r`:进行递归匹配
40 | >
41 | > `--exclude-dir=node_modules`: 进行文件匹配的时候排查`node_modules`目录
42 | >
43 | > `*`: 对任意文件名进行内容匹配
44 | >
45 | > `-B 3 -A 3`:对匹配到的内容,打印前3行+后3行
46 |
47 | 相比,逐个项目查找,利用`grep`已经极大提升了效率
48 |
49 | 我作为一个程序员,找到`grep`这个命令来进行内容匹配,这也是很合理的。
50 |
51 |
52 |
53 |
54 | ### 更好的方案
55 |
56 | `grep` 作为系统内置的内容匹配工具,已经很好了,然而,对于特大型项目,速度还是不够理想,开源方案如`Ack`、`Ag`都是更优秀的方案
57 |
58 | 从16年起,其实就已经有了更好的(最好)的替代方案:`ripgrep`
59 |
60 |
61 |
62 | `ripgrep` 相比 `grep`,有很多特性,
63 |
64 | 1. 多线程,运行更快
65 | 2. 自动递归搜索
66 | 3. 支持 `.gitignore`,自动跳过已经忽略的文件
67 | 4. 支持压缩文件搜索(zip、xz、bzip2、lz4、等等)
68 | 5. 等等(懒得写了🤣)
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/docs/tech/secure-gallery.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: web 安全 常见漏洞 XSS sql注入 跨权 CSRF
5 | - name: keywords
6 | content: web 安全 常见漏洞 XSS sql注入 跨权 CSRF
7 | ---
8 | # web 安全知多少
9 |
10 | WIP
11 |
--------------------------------------------------------------------------------
/docs/tech/snippets.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 代码片段集合,提供常用的小脚本和代码片段,包括htaccess、JavaScript、shell、css、Nginx、html等多种语言和服务
5 | - name: keywords
6 | content: 代码片段,snippets,htaccess,JavaScript,shell,css,Nginx,html,小脚本
7 | tags: ["代码片段", "snippets", "JavaScript", "shell", "Nginx", "html"]
8 | ---
9 |
10 |
11 |
12 |
13 | # snippets
14 |
15 | 新开发的"代码片段"功能,收集常用的小脚本、小片段,
16 | 目前包括`htaccess`、`JavaScript`、`shell`、`css`、`Nginx`、`html`等语言或服务的部分小片段。
17 |
18 | [点此围观 snippets](https://snippets.z.wiki/)
19 |
20 |
21 |
--------------------------------------------------------------------------------
/docs/tech/vim-jump.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: vim 括号跳转技巧,介绍如何在匹配的括号之间快速跳转,以及如何使用 mark 功能快速返回
5 | - name: keywords
6 | content: vim,括号跳转,mark,百分号,跳转技巧
7 | tags: ["vim", "跳转", "mark"]
8 | ---
9 |
10 | # 在匹配括号之间跳转
11 |
12 | vim 提供了大量快速移动的命令,例如:`%` 可以在闭合括号之间快速移动,该括号包括小括号、中括号、大括号。
13 |
14 | 经常有需求需要修改括号类型,如将小括号改成中括号
15 |
16 | ```
17 | this is a test content (Yes 。。。。。。。。)
18 | ```
19 |
20 | 如需要将上述中的小括号改成中括号,在改之前可以从左括号直接跳转到右括号,但是一旦左边改了就没办法跳转到右边了,尴尬了。
21 |
22 |
23 | ```
24 | this is a test content [Yes 。。。。。。。。)
25 | ```
26 |
27 | 这时候最好的办法是:修改前进行一次跳转,修改一边后点击`''`就可以回到原来的位置了,原来每次`%`跳转,vim 都会将跳转前的位置 `mark` 为`'`,
28 | 于是就能通过`''`快速回去了,
29 | 通过查看 mark 内容能看到各个 mark 的位置。
30 |
31 |
32 |
33 |
34 | vim 的官方文档解释如下:
35 |
36 | ```
37 | '' `` To the position before the latest jump, or where the
38 | last "m'" or "m`" command was given. Not set when the
39 | |:keepjumps| command modifier was used.
40 | Also see |restore-position|.
41 | ```
42 |
43 |
44 |
45 | 新技能 get。
46 |
47 |
--------------------------------------------------------------------------------
/docs/tech/vim-macro.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: vim macro 从入门到精通,介绍 vim 宏的定义、录制、执行和进阶使用
5 | - name: keywords
6 | content: vim,macro,宏,录制,执行,进阶
7 | tags: ["vim", "macro", "宏"]
8 | ---
9 |
10 | # vim macro 从入门到精通
11 |
12 |
13 |
14 | ### 什么是`Vim`宏
15 |
16 | #### 宏的定义和作用
17 |
18 |
19 |
20 | 对于文本编辑器来说,“宏”是一个由用户定义的命令序列,可以在编辑器中多次执行这个序列。
21 |
22 | `Vim`宏是一种可以录制、回放和重复执行一系列操作的功能。
23 | 宏的目的是为了减少在编辑大批量文本时的手动操作,提高编辑效率。
24 | `Vim`宏可以用于处理大量文本,例如代码缩进、文本替换、注释添加等。
25 |
26 | ### 如何录制`Vim`宏
27 |
28 |
29 |
30 | #### 开始和停止录制宏
31 |
32 | `Vim`宏的录制需要使用`qq`等一系列命令。
33 |
34 | 开始录制宏时,需要按下`q`命令来启动录制,表示开始录制一个名为``的宏,``可以是任意英文字母。
35 | 接着执行一系列操作,例如在文本中进行的查找、替换、删除等操作。
36 | 完成录制后,需要按下`q`命令来停止录制。
37 |
38 |
39 | #### 如何执行录制好的宏
40 |
41 | 录制完成后,可以通过`@`命令来重复执行这个宏,其中``是宏的名称,可以是任意英文字母。
42 |
43 | #### 读取和修改宏
44 |
45 |
46 | 通过命令`:reg `查看名称为``的宏(即寄存器``中保存的内容)。
47 |
48 | 通过命令`:let @=""`命令可以对寄存器的内容进行二次修改。
49 |
50 |
51 | ### `Vim`宏的进阶使用
52 |
53 |
54 |
55 | #### 强制执行宏
56 |
57 | `Vim`宏的执行可能因为某些原因而遇到错误,例如替换时找不到匹配项等。
58 | 虽然这些错误会中断宏的执行,但可以通过强制执行宏来忽略这些错误,让宏继续执行。
59 | 使用`q!`命令可以强制执行宏,即使它遇到错误也不会中断执行。
60 |
61 | #### 如何在`Vim`中设置宏的快捷键
62 |
63 | `Vim`宏可以通过映射来自定义快捷键,并将其与宏关联起来。
64 | 使用`:nnoremap`命令可以创建一个新的映射,让快捷键与宏关联。
65 | ```
66 | nnoremap , @
67 | ```
68 |
69 | > 注:配置中的` `需要根据实际需要替换。
70 | 在使用映射时,只需要按下对应的快捷键,即可自动执行宏。
71 |
72 | ### 实例应用
73 |
74 |
75 |
76 | #### 通过宏快速添加后缀
77 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/docs/tmp.file:
--------------------------------------------------------------------------------
1 | []
--------------------------------------------------------------------------------
/docs/work/README.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 工作思考与经验总结,包含技术分享、项目管理、团队协作等职场相关内容
5 | - name: keywords
6 | content: 工作,思考,经验,技术,项目管理,团队协作,职场
7 | tags: ["工作", "思考", "经验", "技术", "项目管理"]
8 | ---
9 |
10 | # 工作思考
11 |
12 |
13 |
--------------------------------------------------------------------------------
/docs/work/my-minds.md:
--------------------------------------------------------------------------------
1 | ---
2 | meta:
3 | - name: description
4 | content: 个人思考与心得体会,关于生活、工作和学习的深度思考与反思
5 | - name: keywords
6 | content: 思考,心得,反思,生活哲学,工作方法,学习策略
7 | tags: ["思考", "心得", "反思", "生活哲学"]
8 | ---
9 |
10 | # 思考
11 |
12 | 1. 不要用战术上的勤奋来掩盖战略上的懒惰
13 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "blog-of-aowu",
3 | "version": "1.0.0",
4 | "description": "敖武的博客 - 我的日常记录",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "docs:dev": "vuepress dev docs",
9 | "dev": "vuepress dev docs",
10 | "docs:build": "vuepress build docs",
11 | "build": "vuepress build docs"
12 | },
13 | "author": "fudongdonguestc@gmail.com",
14 | "license": "ISC",
15 | "devDependencies": {
16 | "@mr-hope/vuepress-plugin-git": "^1.28.5",
17 | "@vuepress/plugin-back-to-top": "^1.8.2",
18 | "@vuepress/plugin-nprogress": "^1.8.2",
19 | "vuepress": "^1.8.2",
20 | "vuepress-plugin-comment": "^0.7.3",
21 | "vuepress-plugin-copyright": "^1.0.2",
22 | "vuepress-plugin-medium-zoom": "^1.1.9",
23 | "vuepress-plugin-seo": "^0.1.4",
24 | "vuepress-plugin-social-share": "^1.0.0"
25 | },
26 | "dependencies": {
27 | "axios": "^0.26.1",
28 | "cross-fetch": "^3.1.5",
29 | "dayjs": "^1.10.7",
30 | "lodash": "^4.17.21",
31 | "qrcode": "^1.5.0",
32 | "swiper": "^5.3.6",
33 | "uuid": "^8.3.2",
34 | "vue-awesome-swiper": "^4.1.0",
35 | "vue-notification": "^1.3.20",
36 | "vuepress-plugin-img-lazy": "^1.0.4",
37 | "vuepress-plugin-sitemap": "^2.3.1"
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/shell/notice.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | curl "https://oapi.dingtalk.com/robot/send?access_token=${1}" -H 'Content-Type: application/json' -d '{"msgtype": "text","text": {"content":"ossblog-'${2}'"}}'
4 |
--------------------------------------------------------------------------------
/tools/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "theme_color" : "#ffffff",
3 | "background_color" : "#ffffff",
4 | "display" : "standalone",
5 | "scope" : "/",
6 | "start_url" : "/",
7 | "name" : "敖武博客",
8 | "short_name" : "敖武",
9 | "icons": [{
10 | "src": "https://z.wiki/autoupload/20221227/6vAS.128X128-128.png",
11 | "sizes": "128x128",
12 | "type": "image/png"
13 | }, {
14 | "src": "https://z.wiki/autoupload/20221227/Swgu.144X144-144.png",
15 | "sizes": "144x144",
16 | "type": "image/png"
17 | }, {
18 | "src": "https://z.wiki/autoupload/20221227/OjYr.192X192-192.png",
19 | "sizes": "192x192",
20 | "type": "image/png"
21 | }, {
22 | "src": "https://z.wiki/autoupload/20221227/epDQ.256X256-256.png",
23 | "sizes": "256x256",
24 | "type": "image/png"
25 | }, {
26 | "src": "https://z.wiki/autoupload/20221227/fFPJ.512X512-512.png",
27 | "sizes": "512x512",
28 | "type": "image/png"
29 | }],
30 | "description" : "敖武的博客"
31 | }
32 |
--------------------------------------------------------------------------------
/tools/reg/reg_files/regex_tester.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yihuaxiang/ossblog/08256a0a59bc89fdbfe2d3b727e660c747bfb71f/tools/reg/reg_files/regex_tester.png
--------------------------------------------------------------------------------
/tools/videos/91E93E4050784659E14B59B3B52BBE05.MP4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yihuaxiang/ossblog/08256a0a59bc89fdbfe2d3b727e660c747bfb71f/tools/videos/91E93E4050784659E14B59B3B52BBE05.MP4
--------------------------------------------------------------------------------
/update_index.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 |
4 | cd docs
5 |
6 | echo "" > change_index
7 |
8 | # 找到当前目录及所有子目录下的 .md 文件
9 | find . -name '*.md' -print0 | while IFS= read -r -d $'\0' file; do
10 | # 提取文件的一级标题,假设标题以 # 开头
11 | title=$(sed -n '/^# /{s/^# //;p;q;}' "$file")
12 |
13 | # 读取文件内容,使用一个工具如 cat 或者 sed 来获取文件完整内容
14 | # 根据需要清洗文件内容,使其适合作为 HSET 的值
15 | # 注意: 如果内容包含特殊字符(如引号),你需要适当地转义它们
16 | content=$(cat "$file" | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/"/\\"/g' | sed -E 's/^#+//' | sed 's/[[:space:]]\{1,\}/ /g')
17 |
18 | # 生成文件路径(移除'./'前缀并替换空格为'-')
19 | file_path=$(echo "$file" | sed 's/^.\///' | sed 's/ /-/g' | sed 's/\.md//' | sed 's/README/index/')
20 | echo path is https://playground.z.wiki/comment/list?path=/${file_path}.html
21 | curl "https://playground.z.wiki/comment/list?path=/${file_path}.html" -o tmp.file
22 | comments=$(cat tmp.file | jq . | grep comment | awk -F '"comment"' '{print $2}')
23 | comments=$(echo "$comments" | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/"/\\"/g' | sed 's/\\\\"/\\"/g' | sed 's/[[:space:]]\{1,\}/ /g')
24 | content="${content}${comments}"
25 |
26 |
27 | echo $content
28 | # 输出 HSET 命令
29 | echo "HSET blogs:https://z.wiki/${file_path}.html title \"$title\" content \"$content\"" >> change_index
30 | echo ${file_path}
31 | done
32 |
33 |
34 | redis-cli -p 6378 < change_index
35 |
36 |
37 | echo update index for playground.z.wiki
38 |
39 | curl https://playground.z.wiki/link/getLinksForSearch > change_playground_index
40 | redis-cli -p 6378 < change_playground_index
41 |
--------------------------------------------------------------------------------