Skip to content

Commit

Permalink
Update 一个hexo博客后台–Qexo.md UTC 2024-05-14 Tuesday 11:15:05 Updated By …
Browse files Browse the repository at this point in the history
…Github Actions
  • Loading branch information
1422756921 committed May 14, 2024
0 parents commit dc9641a
Show file tree
Hide file tree
Showing 94 changed files with 78,023 additions and 0 deletions.
2,229 changes: 2,229 additions & 0 deletions 2021/11/18/hello-world/index.html

Large diffs are not rendered by default.

2,235 changes: 2,235 additions & 0 deletions 2021/11/20/关于博客的事/index.html

Large diffs are not rendered by default.

2,236 changes: 2,236 additions & 0 deletions 2021/11/22/把博客从GitHub迁移到Gitee/index.html

Large diffs are not rendered by default.

2,302 changes: 2,302 additions & 0 deletions 2021/11/24/Hexo博客搭建/index.html

Large diffs are not rendered by default.

2,305 changes: 2,305 additions & 0 deletions 2023/07/11/一个hexo博客后台–Qexo/index.html

Large diffs are not rendered by default.

2,298 changes: 2,298 additions & 0 deletions 2023/07/11/利用Github Actions自动化部署 Hexo博客/index.html

Large diffs are not rendered by default.

2,325 changes: 2,325 additions & 0 deletions 2023/07/13/推荐几个免费图床/index.html

Large diffs are not rendered by default.

2,186 changes: 2,186 additions & 0 deletions 404.html

Large diffs are not rendered by default.

2,327 changes: 2,327 additions & 0 deletions about/index.html

Large diffs are not rendered by default.

1,664 changes: 1,664 additions & 0 deletions archives/2021/11/index.html

Large diffs are not rendered by default.

1,664 changes: 1,664 additions & 0 deletions archives/2021/index.html

Large diffs are not rendered by default.

1,647 changes: 1,647 additions & 0 deletions archives/2023/07/index.html

Large diffs are not rendered by default.

1,647 changes: 1,647 additions & 0 deletions archives/2023/index.html

Large diffs are not rendered by default.

1,721 changes: 1,721 additions & 0 deletions archives/index.html

Large diffs are not rendered by default.

1,559 changes: 1,559 additions & 0 deletions categories/index.html

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions css/animate.min.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions css/fancybox.css

Large diffs are not rendered by default.

8,391 changes: 8,391 additions & 0 deletions css/style.css

Large diffs are not rendered by default.

Binary file added favicon.ico
Binary file not shown.
2,299 changes: 2,299 additions & 0 deletions friends/index.html

Large diffs are not rendered by default.

2,305 changes: 2,305 additions & 0 deletions gallery/bizhi/index.html

Large diffs are not rendered by default.

2,305 changes: 2,305 additions & 0 deletions gallery/fengjing/index.html

Large diffs are not rendered by default.

2,305 changes: 2,305 additions & 0 deletions gallery/gudian/index.html

Large diffs are not rendered by default.

2,329 changes: 2,329 additions & 0 deletions gallery/index.html

Large diffs are not rendered by default.

2,998 changes: 2,998 additions & 0 deletions index.html

Large diffs are not rendered by default.

349 changes: 349 additions & 0 deletions js/activate-power-mode.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,349 @@
(function webpackUniversalModuleDefinition(root, factory) {
if (typeof exports === "object" && typeof module === "object")
module.exports = factory();
else if (typeof define === "function" && define.amd) define([], factory);
else if (typeof exports === "object") exports["POWERMODE"] = factory();
else root["POWERMODE"] = factory();
})(this, function () {
return /******/ (function (modules) {
// webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};

/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if (installedModules[moduleId])
/******/ return installedModules[moduleId].exports;

/******/ // Create a new module (and put it into the cache)
/******/ var module = (installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false,
/******/
});

/******/ // Execute the module function
/******/ modules[moduleId].call(
module.exports,
module,
module.exports,
__webpack_require__
);

/******/ // Flag the module as loaded
/******/ module.loaded = true;

/******/ // Return the exports of the module
/******/ return module.exports;
/******/
}

/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;

/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;

/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";

/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/
})(
/************************************************************************/
/******/ [
/* 0 */
/***/ function (module, exports, __webpack_require__) {
"use strict";

var canvas = document.createElement("canvas");
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
canvas.style.cssText =
"position:fixed;top:0;left:0;pointer-events:none;z-index:999999";
window.addEventListener("resize", function () {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
});
document.body.appendChild(canvas);
var context = canvas.getContext("2d");
var particles = [];
var particlePointer = 0;
var rendering = false;

POWERMODE.shake = true;

function getRandom(min, max) {
return Math.random() * (max - min) + min;
}

function getColor(el) {
if (POWERMODE.colorful) {
var u = getRandom(0, 360);
return (
"hsla(" +
getRandom(u - 10, u + 10) +
", 100%, " +
getRandom(50, 80) +
"%, " +
1 +
")"
);
} else {
return window.getComputedStyle(el).color;
}
}

function getCaret() {
var el = document.activeElement;
var bcr;
if (
el.tagName === "TEXTAREA" ||
(el.tagName === "INPUT" && el.getAttribute("type") === "text")
) {
var offset = __webpack_require__(1)(el, el.selectionEnd);
bcr = el.getBoundingClientRect();
return {
x: offset.left + bcr.left,
y: offset.top + bcr.top,
color: getColor(el),
};
}
var selection = window.getSelection();
if (selection.rangeCount) {
var range = selection.getRangeAt(0);
var startNode = range.startContainer;
if (startNode.nodeType === document.TEXT_NODE) {
startNode = startNode.parentNode;
}
bcr = range.getBoundingClientRect();
return {
x: bcr.left,
y: bcr.top,
color: getColor(startNode),
};
}
return { x: 0, y: 0, color: "transparent" };
}

function createParticle(x, y, color) {
return {
x: x,
y: y,
alpha: 1,
color: color,
velocity: {
x: -1 + Math.random() * 2,
y: -3.5 + Math.random() * 2,
},
};
}

function POWERMODE() {
{
// spawn particles
var caret = getCaret();
var numParticles = 5 + Math.round(Math.random() * 10);
while (numParticles--) {
particles[particlePointer] = createParticle(
caret.x,
caret.y,
caret.color
);
particlePointer = (particlePointer + 1) % 500;
}
}
{
// shake screen
if (POWERMODE.shake) {
var intensity = 1 + 2 * Math.random();
var x = intensity * (Math.random() > 0.5 ? -1 : 1);
var y = intensity * (Math.random() > 0.5 ? -1 : 1);
document.body.style.marginLeft = x + "px";
document.body.style.marginTop = y + "px";
setTimeout(function () {
document.body.style.marginLeft = "";
document.body.style.marginTop = "";
}, 75);
}
}
if (!rendering) {
requestAnimationFrame(loop);
}
}
POWERMODE.colorful = false;

function loop() {
rendering = true;
context.clearRect(0, 0, canvas.width, canvas.height);
var rendered = false;
var rect = canvas.getBoundingClientRect();
for (var i = 0; i < particles.length; ++i) {
var particle = particles[i];
if (particle.alpha <= 0.1) continue;
particle.velocity.y += 0.075;
particle.x += particle.velocity.x;
particle.y += particle.velocity.y;
particle.alpha *= 0.96;
context.globalAlpha = particle.alpha;
context.fillStyle = particle.color;
context.fillRect(
Math.round(particle.x - 1.5) - rect.left,
Math.round(particle.y - 1.5) - rect.top,
3,
3
);
rendered = true;
}
if (rendered) {
requestAnimationFrame(loop);
} else {
rendering = false;
}
}

module.exports = POWERMODE;

/***/
},
/* 1 */
/***/ function (module, exports) {
/* jshint browser: true */

(function () {
// The properties that we copy into a mirrored div.
// Note that some browsers, such as Firefox,
// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,
// so we have to do every single property specifically.
var properties = [
"direction", // RTL support
"boxSizing",
"width", // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does
"height",
"overflowX",
"overflowY", // copy the scrollbar for IE

"borderTopWidth",
"borderRightWidth",
"borderBottomWidth",
"borderLeftWidth",
"borderStyle",

"paddingTop",
"paddingRight",
"paddingBottom",
"paddingLeft",

// https://developer.mozilla.org/en-US/docs/Web/CSS/font
"fontStyle",
"fontVariant",
"fontWeight",
"fontStretch",
"fontSize",
"fontSizeAdjust",
"lineHeight",
"fontFamily",

"textAlign",
"textTransform",
"textIndent",
"textDecoration", // might not make a difference, but better be safe

"letterSpacing",
"wordSpacing",

"tabSize",
"MozTabSize",
];

var isFirefox = window.mozInnerScreenX != null;

function getCaretCoordinates(element, position, options) {
var debug = (options && options.debug) || false;
if (debug) {
var el = document.querySelector(
"#input-textarea-caret-position-mirror-div"
);
if (el) {
el.parentNode.removeChild(el);
}
}

// mirrored div
var div = document.createElement("div");
div.id = "input-textarea-caret-position-mirror-div";
document.body.appendChild(div);

var style = div.style;
var computed = window.getComputedStyle
? getComputedStyle(element)
: element.currentStyle; // currentStyle for IE < 9

// default textarea styles
style.whiteSpace = "pre-wrap";
if (element.nodeName !== "INPUT") style.wordWrap = "break-word"; // only for textarea-s

// position off-screen
style.position = "absolute"; // required to return coordinates properly
if (!debug) style.visibility = "hidden"; // not 'display: none' because we want rendering

// transfer the element's properties to the div
properties.forEach(function (prop) {
style[prop] = computed[prop];
});

if (isFirefox) {
// Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275
if (element.scrollHeight > parseInt(computed.height))
style.overflowY = "scroll";
} else {
style.overflow = "hidden"; // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'
}

div.textContent = element.value.substring(0, position);
// the second special handling for input type="text" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037
if (element.nodeName === "INPUT")
div.textContent = div.textContent.replace(/\s/g, "\u00a0");

var span = document.createElement("span");
// Wrapping must be replicated *exactly*, including when a long word gets
// onto the next line, with whitespace at the end of the line before (#7).
// The *only* reliable way to do that is to copy the *entire* rest of the
// textarea's content into the <span> created at the caret position.
// for inputs, just '.' would be enough, but why bother?
span.textContent = element.value.substring(position) || "."; // || because a completely empty faux span doesn't render at all
div.appendChild(span);

var coordinates = {
top: span.offsetTop + parseInt(computed["borderTopWidth"]),
left: span.offsetLeft + parseInt(computed["borderLeftWidth"]),
};

if (debug) {
span.style.backgroundColor = "#aaa";
} else {
document.body.removeChild(div);
}

return coordinates;
}

if (
typeof module != "undefined" &&
typeof module.exports != "undefined"
) {
module.exports = getCaretCoordinates;
} else {
window.getCaretCoordinates = getCaretCoordinates;
}
})();

/***/
},
/******/
]
);
});
Loading

0 comments on commit dc9641a

Please sign in to comment.