mirror of
https://github.com/Mabbs/mabbs.github.io
synced 2026-01-10 05:21:47 +08:00
Compare commits
62 Commits
AR-Backup-
...
AR-Backup-
| Author | SHA1 | Date | |
|---|---|---|---|
| b666bd16b2 | |||
| bc094788c2 | |||
| c0b1009935 | |||
| 129c4d1b5b | |||
| a8b9118a20 | |||
| dff8a2d2c9 | |||
| 2952d9f63e | |||
| 3de3d63d77 | |||
| 3dab9f333a | |||
| 85aa965218 | |||
| 0e065bf282 | |||
| 680afdca5a | |||
| 9e7e727897 | |||
| f5accbcad4 | |||
| d3ef0a278b | |||
| 38c549606e | |||
| 443d65ac50 | |||
| c8ce8de1d9 | |||
| 03d9517241 | |||
| 9b9efd0f60 | |||
| 07a3d18350 | |||
| 550321e80a | |||
| 50c6c49c4c | |||
| 593b4fa003 | |||
| 46f1b8d742 | |||
| 7a525073f9 | |||
| dc37b70586 | |||
| 2fd191d418 | |||
| 99ec7de3cd | |||
| cd294479e0 | |||
| b7ab4e6356 | |||
| 934c04aea7 | |||
| 5c7773fb59 | |||
| 41ce7aabb0 | |||
| cbe4db5992 | |||
| 04e63388b6 | |||
| 106aa95def | |||
| f1e7070380 | |||
| 10a3521795 | |||
| 881ed13576 | |||
| 982a87e0bf | |||
| 5097364988 | |||
| c437b255f1 | |||
| efaaa32674 | |||
| 8a51f7a942 | |||
| afe8b95115 | |||
| 2aad4be863 | |||
| 74cb7d028c | |||
| d74fe7b4b8 | |||
| 8f7d02697d | |||
| 4afea923c5 | |||
| e6281bfa5f | |||
| a4e9d17cf1 | |||
| 975fcf9d8e | |||
| 1734d36dd5 | |||
| eefdb73475 | |||
| c622346eaa | |||
| 7609bb0b8f | |||
| 2298c9b271 | |||
| f9abd1e5d7 | |||
| 62ea62e8e8 | |||
| 3dc82a814a |
@ -6,14 +6,14 @@
|
|||||||
|
|
||||||
# Template project: https://gitlab.com/pages/jekyll
|
# Template project: https://gitlab.com/pages/jekyll
|
||||||
# Docs: https://docs.gitlab.com/ee/pages/
|
# Docs: https://docs.gitlab.com/ee/pages/
|
||||||
image: ruby:2.6
|
image: ruby:2.7
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
JEKYLL_ENV: production
|
JEKYLL_ENV: production
|
||||||
LC_ALL: C.UTF-8
|
LC_ALL: C.UTF-8
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- gem install bundler
|
- gem install bundler -v 2.4.22
|
||||||
- bundle install
|
- bundle install
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
|
|||||||
16
Gemfile
16
Gemfile
@ -1,11 +1,13 @@
|
|||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
gem "jekyll", "~> 4.1.0"
|
gem "jekyll", "~> 3.9.3"
|
||||||
group :jekyll_plugins do
|
group :jekyll_plugins do
|
||||||
gem "jekyll-gist"
|
gem "jekyll-gist", "~> 1.5.0"
|
||||||
gem "jekyll-coffeescript"
|
gem "jekyll-coffeescript", "~> 1.1.1"
|
||||||
gem "jekyll-assets"
|
gem "jekyll-assets", "~> 1.0.0"
|
||||||
gem "jekyll-sitemap"
|
gem "jekyll-sitemap", "~> 1.4.0"
|
||||||
gem "jekyll-feed"
|
gem "jekyll-feed", "~> 0.15.1"
|
||||||
gem "jekyll-theme-minimal"
|
gem "jekyll-theme-minimal"
|
||||||
gem "jekyll-paginate"
|
gem "jekyll-paginate", "~> 1.1.0"
|
||||||
|
gem "kramdown-parser-gfm", "~> 1.1.0"
|
||||||
|
gem "kramdown", "~> 2.3.2"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -79,7 +79,7 @@
|
|||||||
background-color: rgba(74, 59, 114,0.9);
|
background-color: rgba(74, 59, 114,0.9);
|
||||||
}
|
}
|
||||||
.live_talk_input_name_body{
|
.live_talk_input_name_body{
|
||||||
width:70px;
|
width:100px;
|
||||||
box-sizing:border-box;
|
box-sizing:border-box;
|
||||||
height:24px;
|
height:24px;
|
||||||
border: 2px solid rgb(223, 179, 241);
|
border: 2px solid rgb(223, 179, 241);
|
||||||
|
|||||||
@ -158,7 +158,7 @@ if(!norunFlag){
|
|||||||
function showHitokoto(){
|
function showHitokoto(){
|
||||||
if(sessionStorage.getItem("Sleepy")!=="1"){
|
if(sessionStorage.getItem("Sleepy")!=="1"){
|
||||||
if(!AITalkFlag){
|
if(!AITalkFlag){
|
||||||
$.getJSON('https://v1.hitokoto.cn/',function(result){
|
$.getJSON('https://hitokoto.mayx.eu.org/',function(result){
|
||||||
talkValTimer();
|
talkValTimer();
|
||||||
showMessage(result.hitokoto, 0);
|
showMessage(result.hitokoto, 0);
|
||||||
});
|
});
|
||||||
@ -188,7 +188,26 @@ if(!norunFlag){
|
|||||||
if(Array.isArray(text)) text = text[Math.floor(Math.random() * text.length + 1)-1];
|
if(Array.isArray(text)) text = text[Math.floor(Math.random() * text.length + 1)-1];
|
||||||
//console.log('showMessage', text);
|
//console.log('showMessage', text);
|
||||||
$('.message').stop();
|
$('.message').stop();
|
||||||
$('.message').html(text);
|
if(text instanceof EventSource){
|
||||||
|
var outputContainer = $('.message')[0];
|
||||||
|
var eventFlag = false;
|
||||||
|
text.onmessage = (event) => {
|
||||||
|
if (event.data == "[DONE]") {
|
||||||
|
text.close();
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
if(!eventFlag){
|
||||||
|
talkValTimer();
|
||||||
|
outputContainer.textContent = "";
|
||||||
|
eventFlag = true;
|
||||||
|
}
|
||||||
|
const data = JSON.parse(event.data);
|
||||||
|
outputContainer.textContent += data.response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$('.message').html(text);
|
||||||
|
}
|
||||||
$('.message').fadeTo(200, 1);
|
$('.message').fadeTo(200, 1);
|
||||||
//if (timeout === null) timeout = 5000;
|
//if (timeout === null) timeout = 5000;
|
||||||
//hideMessage(timeout);
|
//hideMessage(timeout);
|
||||||
@ -275,36 +294,18 @@ if(!norunFlag){
|
|||||||
});
|
});
|
||||||
$('#talk_send').on('click',function(){
|
$('#talk_send').on('click',function(){
|
||||||
var info_ = $('#AIuserText').val();
|
var info_ = $('#AIuserText').val();
|
||||||
var userid_ = $('#AIuserName').val();
|
// var userid_ = $('#AIuserName').val();
|
||||||
|
let add_id = "";
|
||||||
|
if($('#load_this').prop("checked")){
|
||||||
|
add_id = "&id="+encodeURIComponent($('#post_id').val());
|
||||||
|
}
|
||||||
if(info_ == "" ){
|
if(info_ == "" ){
|
||||||
showMessage('写点什么吧!',0);
|
showMessage('写点什么吧!',0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(userid_ == ""){
|
|
||||||
showMessage('聊之前请告诉我你的名字吧!',0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
showMessage('思考中~', 0);
|
showMessage('思考中~', 0);
|
||||||
$.ajax({
|
const evSource = new EventSource(talkAPI + "?info=" + encodeURIComponent(info_) + add_id);
|
||||||
type: 'POST',
|
showMessage(evSource);
|
||||||
url: talkAPI,
|
|
||||||
data: {
|
|
||||||
"info":info_,
|
|
||||||
"userid":userid_
|
|
||||||
},
|
|
||||||
success: function(res) {
|
|
||||||
if(res.code !== 100000){
|
|
||||||
talkValTimer();
|
|
||||||
showMessage('似乎有什么错误,请和站长联系!',0);
|
|
||||||
}else{
|
|
||||||
talkValTimer();
|
|
||||||
showMessage(res.text,0);
|
|
||||||
}
|
|
||||||
console.log(res);
|
|
||||||
$('#AIuserText').val("");
|
|
||||||
sessionStorage.setItem("live2duser", userid_);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}else{
|
}else{
|
||||||
$('#showInfoBtn').hide();
|
$('#showInfoBtn').hide();
|
||||||
@ -379,11 +380,11 @@ if(!norunFlag){
|
|||||||
showMessage('音乐似乎加载不出来了呢!',0);
|
showMessage('音乐似乎加载不出来了呢!',0);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//获取用户名
|
// //获取用户名
|
||||||
var live2dUser = sessionStorage.getItem("live2duser");
|
// var live2dUser = sessionStorage.getItem("live2duser");
|
||||||
if(live2dUser !== null){
|
// if(live2dUser !== null){
|
||||||
$('#AIuserName').val(live2dUser);
|
// $('#AIuserName').val(live2dUser);
|
||||||
}
|
// }
|
||||||
//获取位置
|
//获取位置
|
||||||
var landL = sessionStorage.getItem("historywidth");
|
var landL = sessionStorage.getItem("historywidth");
|
||||||
var landB = sessionStorage.getItem("historyheight");
|
var landB = sessionStorage.getItem("historyheight");
|
||||||
|
|||||||
@ -16,13 +16,16 @@ Powered by [Jekyll](https://github.com/jekyll/jekyll)
|
|||||||
[Simple-Jekyll-Search](https://github.com/christian-fei/Simple-Jekyll-Search)
|
[Simple-Jekyll-Search](https://github.com/christian-fei/Simple-Jekyll-Search)
|
||||||
|
|
||||||
## 使用的网络资源
|
## 使用的网络资源
|
||||||
[Github](https://github.com/) | 包含:
|
[Github](https://github.com/) | 包含:
|
||||||
- Issue
|
- Issue
|
||||||
- Pages
|
- Pages
|
||||||
- Git
|
- Git
|
||||||
|
|
||||||
|
[Cloudflare](https://www.cloudflare.com/) | 包含:
|
||||||
|
- CDN、规则以及缓存
|
||||||
|
- Workers、D1 SQL 数据库、Vectorize 数据库、AI
|
||||||
|
|
||||||
[网易云音乐](https://music.163.com/)
|
[网易云音乐](https://music.163.com/)
|
||||||
[一言](https://hitokoto.cn/)
|
|
||||||
[CDNJS](https://cdnjs.com/)
|
[CDNJS](https://cdnjs.com/)
|
||||||
[unpkg](https://unpkg.com/)
|
[unpkg](https://unpkg.com/)
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@ -2,89 +2,161 @@
|
|||||||
layout: default
|
layout: default
|
||||||
---
|
---
|
||||||
|
|
||||||
<small>{{ page.date | date: "%-d %B %Y" }} - 字数统计:{% if page.layout == "encrypt" %}God Knows {% else %}{{ page.content | strip_html | strip_newlines | remove: " " | size }} - 阅读大约需要{{ page.content | strip_html | strip_newlines | remove: " " | size | divided_by: 350 | plus: 1 }}分钟{% endif %} - Hits: <span id="{{ page.url }}" class="visitors" >Loading...</span>
|
<small>{{ page.date | date: "%-d %B %Y" }} - 字数统计:{% if page.layout == "encrypt" %}God Knows {% else %}{{ page.content | strip_html | strip_newlines | remove: " " | size }} - 阅读大约需要{{ page.content | strip_html | strip_newlines | remove: "" | size | divided_by: 350 | plus: 1 }}分钟{% endif %} - Hits: <span id="{{ page.url }}" class="visitors">Loading...</span></small>
|
||||||
</small>
|
|
||||||
<h1>{{ page.title }}</h1>
|
<h1>{{ page.title }}</h1>
|
||||||
|
|
||||||
<p class="view">by <a href="//github.com/{{ page.author | default: "Mabbs" }}">{{ page.author | default: site.author }}</a></p>
|
<p class="view">by <a href="//github.com/{{ page.author | default: "Mabbs" }}">{{ page.author | default: site.author }}</a></p>
|
||||||
<div id="outdate" style="display:none;">
|
<div id="outdate" style="display:none;">
|
||||||
<hr />
|
<hr />
|
||||||
这是一篇创建于 <span id="outime"></span> 天前的文章,其中的信息可能已经有所发展或是发生改变。
|
这是一篇创建于 <span id="outime"></span> 天前的文章,其中的信息可能已经有所发展或是发生改变。
|
||||||
<br /><br />
|
<br /><br />
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
BirthDay = new Date("{{ page.date | date: "%m/%d/%Y" }} 00:00:00");
|
BirthDay = new Date("{{ page.date | date: "%m/%d/%Y" }} 00:00:00");
|
||||||
today = new Date();
|
today = new Date();
|
||||||
timeold = (today.getTime() - BirthDay.getTime());
|
timeold = (today.getTime() - BirthDay.getTime());
|
||||||
secondsold = Math.floor(timeold / 1000);
|
secondsold = Math.floor(timeold / 1000);
|
||||||
e_daysold = timeold / (24 * 60 * 60 * 1000);
|
e_daysold = timeold / (24 * 60 * 60 * 1000);
|
||||||
daysold = Math.floor(e_daysold);
|
daysold = Math.floor(e_daysold);
|
||||||
if (daysold > 90) {
|
if (daysold > 90) {
|
||||||
document.getElementById("outdate").style.display = "block";
|
document.getElementById("outdate").style.display = "block";
|
||||||
document.getElementById("outime").innerHTML = daysold;
|
document.getElementById("outime").innerHTML = daysold;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
{% if page.layout != "encrypt" %}
|
||||||
|
<!--[if !IE]> -->
|
||||||
|
<b>AI摘要</b>
|
||||||
|
<p id="ai-output">正在生成中……</p>
|
||||||
|
<script>
|
||||||
|
async function sha(str) {
|
||||||
|
const encoder = new TextEncoder();
|
||||||
|
const data = encoder.encode(str);
|
||||||
|
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
|
||||||
|
const hashArray = Array.from(new Uint8Array(hashBuffer)); // convert buffer to byte array
|
||||||
|
const hashHex = hashArray
|
||||||
|
.map((b) => b.toString(16).padStart(2, "0"))
|
||||||
|
.join(""); // convert bytes to hex string
|
||||||
|
return hashHex;
|
||||||
|
}
|
||||||
|
async function ai_gen(){
|
||||||
|
var postContent = "文章标题:" + {{ page.title | jsonify }} + ";文章内容:" + {{ page.content | strip_html | strip_newlines | jsonify }};
|
||||||
|
var postContentSign = await sha(postContent);
|
||||||
|
var outputContainer = document.getElementById("ai-output");
|
||||||
|
$.get(BlogAPI + "/is_uploaded?id={{ page.url }}&sign=" + postContentSign, function (data) {
|
||||||
|
if (data == "yes") {
|
||||||
|
$.get(BlogAPI + "/get_summary?id={{ page.url }}&sign=" + postContentSign, function (data2) {
|
||||||
|
outputContainer.textContent = data2;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$.post(BlogAPI + "/upload_blog?id={{ page.url }}", postContent, function (data) {
|
||||||
|
$.get(BlogAPI + "/get_summary?id={{ page.url }}&sign=" + postContentSign);
|
||||||
|
const evSource = new EventSource(BlogAPI + "/summary?id={{ page.url }}");
|
||||||
|
outputContainer.textContent = "";
|
||||||
|
evSource.onmessage = (event) => {
|
||||||
|
if (event.data == "[DONE]") {
|
||||||
|
evSource.close();
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
const data = JSON.parse(event.data);
|
||||||
|
outputContainer.textContent += data.response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
ai_gen();
|
||||||
|
</script>
|
||||||
|
<hr />
|
||||||
|
<!-- <![endif]-->
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% include toc.html html=content sanitize=true h_max=3 %}
|
{% include toc.html html=content sanitize=true h_max=3 %}
|
||||||
|
|
||||||
{{content}}
|
{{content}}
|
||||||
|
|
||||||
{% if page.tags %}
|
{% if page.tags %}
|
||||||
<small>tags: <em>{{ page.tags | join: "</em> - <em>" }}</em></small>
|
<small>tags: <em>{{ page.tags | join: "</em> - <em>" }}</em></small>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<p id="suggest-container"></p>
|
||||||
|
<script>
|
||||||
|
var blogurl = "{{ page.url }}";
|
||||||
|
var suggest = $("#suggest-container")[0];
|
||||||
|
suggest.innerHTML = "Loading...";
|
||||||
|
$.get(BlogAPI + "/suggest?id=" + blogurl + "&update=" + lastUpdated.valueOf(), function (data) {
|
||||||
|
if (data.length) {
|
||||||
|
getSearchJSON(function (search) {
|
||||||
|
suggest.innerHTML = '<b>推荐文章</b><hr style="margin: 0 0 5px"/>';
|
||||||
|
const searchMap = new Map(search.map(item => [item.url, item]));
|
||||||
|
const merged = data.map(suggestObj => {
|
||||||
|
const searchObj = searchMap.get(suggestObj.id);
|
||||||
|
return searchObj ? { ...searchObj } : null;
|
||||||
|
});
|
||||||
|
merged.forEach(element => {
|
||||||
|
if (element) {
|
||||||
|
suggest.innerHTML += "<a href=" + element.url + ">" + element.title + "</a> - " + element.date + "<br />";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
suggest.innerHTML = "暂无推荐文章……";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
<div class="pagination">
|
<div class="pagination">
|
||||||
{% if page.previous.url %}
|
{% if page.previous.url %}
|
||||||
<span class="prev" >
|
<span class="prev">
|
||||||
<a href="{{ site.baseurl }}{{ page.previous.url }}">
|
<a href="{{ site.baseurl }}{{ page.previous.url }}">
|
||||||
上一篇:{{ page.previous.title }}
|
上一篇:{{ page.previous.title }}
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<br />
|
<br />
|
||||||
{% if page.next.url %}
|
{% if page.next.url %}
|
||||||
<span class="next" >
|
<span class="next">
|
||||||
<a href="{{ site.baseurl }}{{ page.next.url }}">
|
<a href="{{ site.baseurl }}{{ page.next.url }}">
|
||||||
下一篇:{{ page.next.title }}
|
下一篇:{{ page.next.title }}
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--[if !IE]> -->
|
<!--[if !IE]> -->
|
||||||
<link rel="stylesheet" href="/css/gitalk.css">
|
<link rel="stylesheet" href="/css/gitalk.css">
|
||||||
<script src="/js/gitalk.min.js"></script>
|
<script src="/js/gitalk.min.js"></script>
|
||||||
|
|
||||||
<div id="gitalk-container"></div>
|
<div id="gitalk-container"></div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
if (window.location.host != "mabbs.github.io")
|
if (window.location.host != "mabbs.github.io") {
|
||||||
{
|
var gitalk = new Gitalk({
|
||||||
var gitalk = new Gitalk({
|
clientID: '098934a2556425f19d6e',
|
||||||
clientID: '098934a2556425f19d6e',
|
clientSecret: '0bd44eed8425e5437ce43c4ba9b2791fbc04581d',
|
||||||
clientSecret: '0bd44eed8425e5437ce43c4ba9b2791fbc04581d',
|
repo: 'mabbs.github.io',
|
||||||
repo: 'mabbs.github.io',
|
owner: 'Mabbs',
|
||||||
owner: 'Mabbs',
|
admin: ['Mabbs'],
|
||||||
admin: ['Mabbs'],
|
id: '{{ page.id }}', // Ensure uniqueness and length less than 50
|
||||||
id: '{{ page.id }}', // Ensure uniqueness and length less than 50
|
distractionFreeMode: false, // Facebook-like distraction free mode
|
||||||
distractionFreeMode: false // Facebook-like distraction free mode
|
proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
var gitalk = new Gitalk({
|
||||||
var gitalk = new Gitalk({
|
clientID: '36557aec4c3cb04f7ac6',
|
||||||
clientID: '36557aec4c3cb04f7ac6',
|
clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb',
|
||||||
clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb',
|
repo: 'mabbs.github.io',
|
||||||
repo: 'mabbs.github.io',
|
owner: 'Mabbs',
|
||||||
owner: 'Mabbs',
|
admin: ['Mabbs'],
|
||||||
admin: ['Mabbs'],
|
id: '{{ page.id }}', // Ensure uniqueness and length less than 50
|
||||||
id: '{{ page.id }}', // Ensure uniqueness and length less than 50
|
distractionFreeMode: false, // Facebook-like distraction free mode
|
||||||
distractionFreeMode: false // Facebook-like distraction free mode
|
proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token"
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
gitalk.render('gitalk-container')
|
gitalk.render('gitalk-container')
|
||||||
</script>
|
</script>
|
||||||
<!-- <![endif]-->
|
<!-- <![endif]-->
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
33
_posts/2023-10-21-game.md
Normal file
33
_posts/2023-10-21-game.md
Normal file
File diff suppressed because one or more lines are too long
24
_posts/2023-12-10-openfyde.md
Normal file
24
_posts/2023-12-10-openfyde.md
Normal file
File diff suppressed because one or more lines are too long
24
_posts/2023-12-24-android.md
Normal file
24
_posts/2023-12-24-android.md
Normal file
File diff suppressed because one or more lines are too long
21
_posts/2024-01-01-summary.md
Normal file
21
_posts/2024-01-01-summary.md
Normal file
File diff suppressed because one or more lines are too long
25
_posts/2024-01-20-renpy.md
Normal file
25
_posts/2024-01-20-renpy.md
Normal file
File diff suppressed because one or more lines are too long
23
_posts/2024-02-03-1panel.md
Normal file
23
_posts/2024-02-03-1panel.md
Normal file
File diff suppressed because one or more lines are too long
24
_posts/2024-02-24-luckfox.md
Normal file
24
_posts/2024-02-24-luckfox.md
Normal file
File diff suppressed because one or more lines are too long
41
_posts/2024-03-16-ssl-pinning.md
Normal file
41
_posts/2024-03-16-ssl-pinning.md
Normal file
File diff suppressed because one or more lines are too long
213
_posts/2024-04-06-old-pc.md
Normal file
213
_posts/2024-04-06-old-pc.md
Normal file
File diff suppressed because one or more lines are too long
30
_posts/2024-05-19-bt-ops.md
Normal file
30
_posts/2024-05-19-bt-ops.md
Normal file
File diff suppressed because one or more lines are too long
27
_posts/2024-06-16-hackintosh.md
Normal file
27
_posts/2024-06-16-hackintosh.md
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user