(async function() { async function getIpInfo() { var fetchUrl = "https://api.qjqq.cn/api/Local"; try { var response = await fetch(fetchUrl); var json = await response.json(); var ip = json.ip; var continent = json.data.continent; var country = json.data.country; var prov = json.data.prov; var city = json.data.city; var district = json.data.district; var isp = js ...
(async function() { async function getIpInfo() { var fetchUrl = "https://api.qjqq.cn/api/Local"; try { var response = await fetch(fetchUrl); var json = await response.json(); var ip = json.ip; var continent = json.data.continent; var country = json.data.country; var prov = json.data.prov; var city = json.data.city; var district = json.data.district; var isp = js ...
(async function() { async function getIpInfo() { var fetchUrl = "https://api.qjqq.cn/api/Local"; try { var response = await fetch(fetchUrl); var json = await response.json(); var ip = json.ip; var continent = json.data.continent; var country = json.data.country; var prov = json.data.prov; var city = json.data.city; var district = json.data.district; var isp = js ...
(async function() { async function getIpInfo() { var fetchUrl = "https://api.qjqq.cn/api/Local"; try { var response = await fetch(fetchUrl); var json = await response.json(); var ip = json.ip; var continent = json.data.continent; var country = json.data.country; var prov = json.data.prov; var city = json.data.city; var district = json.data.district; var isp = js ...
(async function() { async function getIpInfo() { var fetchUrl = "https://api.qjqq.cn/api/Local"; try { var response = await fetch(fetchUrl); var json = await response.json(); var ip = json.ip; var continent = json.data.continent; var country = json.data.country; var prov = json.data.prov; var city = json.data.city; var district = json.data.district; var isp = js ...
(async function() { async function getIpInfo() { var fetchUrl = "https://api.qjqq.cn/api/Local"; try { var response = await fetch(fetchUrl); var json = await response.json(); var ip = json.ip; var continent = json.data.continent; var country = json.data.country; var prov = json.data.prov; var city = json.data.city; var district = json.data.district; var isp = js ...
零成本搭建个人博客:Hexo + GitHub Pages + Cloudflare Pages 完整指南介绍本文详细介绍了如何使用Hexo框架搭建一个个人博客,并将其部署到GitHub Pages和Cloudflare Pages上。主要内容包括: 环境准备:安装Node.js和Git 配置Git和GitHub:设置SSH密钥,创建GitHub仓库 初始化Hexo项目:安装Hexo,创建新博客 部署到GitHub Pages:配置部署设置,推送静态文件 部署到Cloudflare Pages:连接GitHub仓库,自动部署 基本使用方法:创建新文章,本地预览,发布更新 这个教程适合那些想要快速搭建个人博客,但又不想花费太多成本的人。通过使用Hexo、GitHub和Cloudflare的免费服务,您可以轻松创建一个高效、简洁的博客网站。 1. 环境准备 域名(非必须,你也可以使用免费域名,或者GitHub.io或Pages.dev分配的域名也可以) GitHub(必须,你需要注册一个GitHub帐号) Cloudflare(非必须,你需要注册一个Cloudflare帐号, ...
telegraph-Image:搭建你的专属开源图床点击标题即可打开Github源项目链接 Demohttps://img.lianli.us.kg 账号:blog123 密码:blog123 介绍图床是一个在互联网上储存图片的空间,图床的人通常都是一些在网上分享博客的人,使用图床的人通常采用Markdown的方式去编辑文字。目前有许多获得图床的途径非常多,通常分为收费的和免费的。该文章讲述通过 Telegraph-Image 与赛博菩萨Cloudflare提供的 Pages、D1等,搭建一个专属于你自己的开源图床! 优点 无限图片储存数量,你可以上传不限数量的图片,but,单张图片不能超过5MB 无需服务器,托管于Cloudflare的网络上,当使用量不超过Cloudflare的免费额度时,完全免费 无需域名,可以使用Cloudflare Pages提供的*.pages.dev的免费二级域名,同时也支持绑定自定义域名 支持图片审查API,可根据需要开启,开启后不良图片将自动屏蔽,不再加载 支持后台管理,日志管理,查看访问前20的Referer、IP、img,可以对上传 ...

