登 录
注册
Search
标签搜索
技术教程
typecho
JavaScript
成长日记
Joe主题
Typecho主题
前端学习
网站搭建
typecho函数
情感
css
帮助文档
虚拟机
服务器
typecho编辑器
插件
Linux
typecho插件
Windows
Win11
Brains - 灵感乌托邦
累计撰写
79
篇文章
累计收到
4,341
条评论
文章首页
分类栏目
技术教程
Typecho
程序代码
学习笔记
Web前端
CSS
JavaScript
其他文章
生活
独立页面
胡言乱语
生活吐槽
友情链接
网站统计
关于博主
自建图床
自建网盘
博主推荐
灵感宝物库
灵感图床库
Code-Server
在线工具箱
TypechoDoc
在线转换
灵感导航页
登录
丨
注册
六六丶
(共
79
篇)
搜索到
79
篇与
六六丶
的结果
此内容被密码保护
加密文章,请前往内页查看详情
2022年08月09日
15,329 阅读
0 评论
16 点赞
2022-08-09
『原创』『教程』为Joe主题文章页添加伸缩侧边栏的小挂件
> ## 前言 其实这个小挂件在Joe4.X的时候有的,只不过升级5.0之后作者将它删除了 我也是移植过来的,上个月有一位小伙伴看到后非常喜欢,让我出个教程  当时答应的很愉快,但是却是立了一个Flag,后半个月忙得不可开交,直到今天小伙伴又来问我,我才想起Flag还没拔 :$(发呆)  答应了的事不能再拖了,也很久没更新博客了,正好今天有空,就来写一写吧 > ## 效果展示  > ## 教程开始 ### 一、 添加后台开关  在 `Joe/functions.php` 里添加一下代码(当然,如果你看过我其他教程,引入了 `Joe/public/custom.php`这个文件,你也可以直接加在这个里面 ) ```php // 伸缩侧边栏开关 $AsideStretch = new Typecho_Widget_Helper_Form_Element_Select( 'AsideStretch', array( 'off' => '关闭(默认)', 'on' => '开启', ), 'on', '是否启用伸缩侧边栏开关功能', '介绍:开启后,页面出现可伸缩侧边栏的模块' ); $AsideStretch->setAttribute('class', 'joe_content joe_change'); //如未生效,需将joe_change换成joe_other $form->addInput($AsideStretch->multiMode()); ``` ### 二、添加按钮 将以下代码加入 `Joe/post.php` 中 {tabs} {tabs-pane label="添加代码"} 隐藏内容,请前往内页查看详情 {/tabs-pane} {tabs-pane label="添加位置"}  {/tabs-pane} {/tabs} 其他页面,如留言、说说等页面都是一样的添加到相应的位置就行了 ### 三、添加JS和CSS #### 1、添加JS代码 在 `Joe/assets/js/joe.post_page.min.js` 最后一个括号前添加以下代码 (当然你也可以添加在 `Joe/assets/js/joe.post_page.js` ,然后用minify插件压缩后替换就行了) 隐藏内容,请前往内页查看详情 #### 2、添加css代码 在 `Joe/assets/css/joe.post.min.css` 内添加以下代码 ```css .joe_aside.inactive{display:none}.joe_main{position:relative}@media(max-width: 768px){.joe-stretch{display:none}}.joe-stretch{height:100%;position:absolute;top:0;right:0;padding:40px 0}.joe-stretch .contain{position:-webkit-sticky;position:sticky;transition:top .5s;-webkit-animation:swingIconSet 2s infinite linear alternate;animation:swingIconSet 2s infinite linear alternate;z-index:333}@-webkit-keyframes swingIconSet{0%{transform:rotate(-30deg)}100%{transform:rotate(30deg)}}@keyframes swingIconSet{0%{transform:rotate(-30deg)}100%{transform:rotate(30deg)}}.joe-stretch .contain::before{content:"";position:absolute;top:0;left:0;width:10px;height:25px;border-top:2px solid var(--minor);border-right:2px solid var(--minor);transition:border .35s}.joe-stretch .contain svg{position:absolute;top:25px;left:-3px;width:24px;height:24px;fill:var(--minor);cursor:pointer;transition:fill .35s}.joe-stretch .contain:hover{-webkit-animation-play-state:paused;animation-play-state:paused}.joe-stretch .contain:hover svg{fill:var(--theme)}.joe-stretch .contain:hover::before{border-color:var(--theme)}.joe-stretch.active{display:block} ``` > ## 结语 教程到这里就结束了,此教程不仅Joe主题可以使用,也可以用在其他主题,灵活变通一下就可以了 没有固定的方法,只有固定的思维,所以一定要多思考、多变通。
2022年07月07日
15,059 阅读
53 评论
22 点赞
2022-07-07
『笔记』『教程』第三方电脑DIY华为一碰传教程,实现多屏协同+超级终端+控制中心
> ## 先上成果图   > ## 配置要求 #### 电脑网卡配置 蓝牙+5GWIFI的无线 多屏协同需要有支持HEVC硬件编码的显卡,一般A卡R9390和390之前的显卡不支持 #### 手机要求 一碰传不需要EMUI10 多屏协同需要EMUI10 自购NFC贴纸 笔者使用的某宝购买的NTAG215贴纸 电脑C面是金属的建议买防金属贴纸 > ## 动手开始 ### 一、安装电脑管家 #### 1、下载华为电脑管家软件12.0.1.20 和破解程序 下载地址 隐藏内容,请前往内页查看详情 文件比较大,请耐心等待下载 下载好后进行解压 #### 2、修改本地时间 打开电脑的设置,关闭自定设置时间,然后手动更改时间  将时间更改为 `2020年7月23日`  #### 3、开始安装 右键 `华为电脑管家安装软件` 以管理员身份运行  将文件夹内的 `PCManager_Setup_12.0.1.20(C233D003).exe` 复制到安装软件的安装目录位置  替换原来的包名,注意不要少了 `.exe` ,输入口令 `6E278B`  然后点击安装就可以了 **安装完后不要运行,直接右上角关闭就行** 然后替换两个文件 一个是 `version.dll` ,将他放到 `C:\Program Files\Huawei\PCManager`  另一个是 `IConnectConfig.json` ,放到 `C:\Program Files\Huawei\PCManager\config`  ### 二、伪装SN码 首先打开 `PowerShell` (以管理员身份打开  输入命令 wbentest  回车得到如下结果  点击连接后出现新的窗口再点击连接,得到如下结果  勾选启动所有特权,打开类  结果如下  添加属性  增加一个属性Seria1Number,数值选非NULL,填5EKPM18320000397,然后点保存属性  保存对象  **这样就完成了伪装SN码** ### 三、写入NFC标签 #### 1、获取序列号并生成二维码 打开你的华为电脑管家,查看序列号  然后再打开 `华为电脑管家安装软件` 如果你的电脑管家序列号与图里的序列号一致并且为18位,就可以使用NFC读写软件直接扫描左侧的二维码  如果不是或者少于18位,就手动将第二步伪装的SN码 `5EKPM18320000397` 输入到序列号这里(点击上方自定义SN即可自定义序列号),左侧二维码会自动变化 #### 2、将二维码信息写入NFC标签 你可以百度下载 `TegWriter` ,也可以下载华为的 `一碰传助手` **一碰传下载** 隐藏内容,请前往内页查看详情 下载安装后打开手机的NFC功能,然后打开软件扫描 `华为电脑管家安装软件` 左侧的二维码 扫描后开始写入NFC标签,将NFC标签放至手机NFC区域即可完成写入 > ## 结语 至此,你的第三方电脑就可以使用华为的多屏协同+超级终端+控制中心了 赶快来试试吧!!
2022年05月28日
12,695 阅读
32 评论
8 点赞
2022-05-28
『原创』『教程』博客的侧栏增加社交信息2.0
> ## 前言 因为之前出了一个给侧栏添加社交信息的模块,但是只能固定设置QQ、微信、B站、微博这四个联系方式 所以当时就想着能不能做一个无限添加信息的模块,就立了一个Flag,然后在3天之后才实现了这个功能(主要是懒,一直不想写) > ## 成果展示  如图提示,可以无限添加,5个为一行,并且自动均匀分布  > ## 教程开始 ### 一、添加PC端 打开 `Joe/public/aside.php` 文件,然后在想要增加的位置添加以下代码 {hide} ```php
2022年04月20日
19,229 阅读
111 评论
29 点赞
2022-04-20
『原创』『教程』给自己博客的侧栏增加社交信息,方便业务(PY)联系
> ## 前言 前不久突发奇想,录了一个视频然后留了自己的博客,却发现博客却没有链接回去的方式,所以就写了一个社交信息的侧栏模块 然后有小伙伴看到了,专门留言让我出个教程,当时答应的好好的,可是一连鸽了好几天,今天进入留言板看到许诺的话,不禁老脸一红,差点忘了这茬了 ::(狂汗)  > ## 成果展示 [博客的侧栏增加社交信息2.0](https://www.fuuuy.cn/archives/714.html) 这个模块适合任何主题及程序,只需要根据自己的主题或者程序进行改进就行 我这里演示的是我正在使用的Joe主题,是一款轻量、开源的主题 {tabs} {tabs-pane label="PC展示"}  {/tabs-pane} {tabs-pane label="PE展示"}  {/tabs-pane} {/tabs} > ## 教程开始 ### 一、添加PC端 打开 `Joe/public/aside.php` 文件,然后在想要增加的位置添加以下代码 {tabs} {tabs-pane label="代码"} {hide} ```php
2022年03月16日
16,408 阅读
80 评论
21 点赞
2022-03-16
『转载』『教程』搭建z-file文件目录并开启反向代理,可做图床和网盘
> ## ZFile 此项目是一个在线文件目录的程序, 支持各种对象存储和本地存储, 使用定位是个人放常用工具下载, 或做公共的文件库. 不会向多账户方向开发. 前端基于 h5ai 的原有功能使用 Vue 重新开发、后端采用 SpringBoot, 数据库采用内嵌数据库. > ## 成果   > ## 安装教程 ### 一、安装依赖 基于java开发,所以要先安装java环境 ```php # CentOS系统 yum install -y java-1.8.0-openjdk unzip # Debian/Ubuntu系统 apt update apt install -y openjdk-8-jre-headless unzip ``` ### 二、下载、上传项目 隐藏内容,请前往内页查看详情 直接下载并上传到网站根目录,然后解压  得到以下目录 ```php z-file ├─ META-INF ├─ WEB-INF └─ bin ├── start.sh # 启动脚本 ├── stop.sh # 停止脚本 └── restart.sh # 重启脚本 ``` ### 三、开启部署服务 直接在当前目录打开终端 输入以下代码 ```php ./bin/start.sh ```  Web默认端口为8080,如需修改端口可直接编辑配置文件 `/zfile/WEB-INF/classes/application.yml` 启动之后部署工作即宣告完成,可以在浏览器里直接输入ip:8080进入Web进行下一步配置,如果觉得每次都要加端口号麻烦可以参考后续设置反代。 具体访问地址如下 ### 四、域名访问 在宝塔面板中添加一个新的网站  如果想要开启HTTPS可以在设置反代之前在SSL选项卡配置证书 打开反向代理选项卡,选择添加反向代理,端口填你设置的端口号(我这里改成了8282),如图配置  ### 五、初始化 因为上一步已经配置了域名访问,所以直接输入域名,无需再加端口号,设置管理用户名和密码。 输入 域名/#/admin进入管理后台,可以设置域名,外观设置,修改密码,添加存储等。   ### 六、更多用法 #### 1、文件夹加密 直接在欲加密的文件夹中上传一个名为“password.txt”的文件即可,密码即为文件内容。加密之后效果如图  #### 2、显示readme 如果想在某个文件夹中显示readme文件,直接在该文件夹中上传readme.md文件即可,同时需要在后台中开启显示文档区功能。  #### 3、可以作为图床使用 如果你的博客需要图片外链,那么你可以将图片上传到某个目录,接着在zfile中打开这个目录,找到图片文件,右键并选择复制直链,这样就获取了这张图片的直链。  > ## 总结 Z-File作为一款开源免费的网盘列表程序,优点还是很多的。安装部署和配置都比较方便,也可以生成固定的文件链接,使用定位是个人放常用工具下载, 或做公共的文件库. 不会向多账户方向开发。
2022年03月13日
7,333 阅读
5 评论
12 点赞
2022-03-13
『转载』『教程』H5ai(Dplayer)完整安装使用教程及注意事项
> ## 前言 关于如何搭建 H5ai ,网上虽然有很多教程,但详细的却不多,有的也是比较模糊。本文将介绍一下如何在宝塔Nginx环境下搭建 H5ai 以及其中的一些注意事项。 > ## 成果 H5ai是一款德国程序员Lars Jung打造的基于HTTP Web服务器的现代文件索引器,是一款功能强大的PHP文件目录列表程序,适合做个人仓库,它提供多种文件目录列表呈现方式,支持 Apache Httpd, Lighttpd, Nginx等多种WEB服务器,支持多国语言(如英语,简体中文等),你可以在线预览以及下载TXT,图片,音频,视频等文件格式。  > ## 安装教程 ### 一、环境要求 {callout color="#f0ad4e"} - Nginx - MySQL - PHP 7.1或以上 - phpMyAdmin {/callout} ### 二、添加站点 请在左边的菜单栏,找到网站,然后点击添加站点,输入相关信息后点击提交即可  ### 三、H5ai下载 将文件解压后放在网站根目录下的_h5ai文件夹内,结构如下 下载地址 隐藏内容,请前往内页查看详情 ```php DOC_ROOT ├─ _h5ai ├─ your files └─ and folders ``` ### 四、上传文件 把你需要列的文件及目录放在_h5ai同目录下即可(我这里是把_去掉了)  ### 五、修改配置文件 在宝塔面板首页->左边的网站 -> H5ai(放H5ai的网站) -> 设置 -> 配置文件中  ### 六、查看依赖信息 访问 http(s)://你的网站名/_h5ai/public/index.php来查看H5ai的功能开放情况,默认密码为空  右边已经是yes或者变成绿色的,证明对应的依赖已经安装成功  ### 七、配置PHP #### 1、安装Use EXIF thumbs {callout color="#2bff00"} - 安装imagemagick和exif - Use EXIF thumbs会显示成yes - {/callout}  #### 2、Movie thumbs (ffmpeg)安装 CentOS 6和7安装方法是不一样的,下面分别说明: 安装前都需要先安装epel扩展源: ```php # yum -y install epel-release # su -c ‘yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm‘ # yum -y install ffmpeg ffmpeg-devel ``` #### 3、PDF thumbs安装 选择安装convert ```php # yum -y install ImageMagick ``` #### 4、Shell tar/Shell zip/Shell du安装 这三项根据h5ai官网,在 php.ini被禁用函数中去掉 exec和 passthru即可,是否有危险不知道,自己掂量,禁用好像也不影响一些功能,另外顺便把 scandir函数去掉禁用,不然会出现无非显示目录中文件的情况。 在你的软件商店中找到你下载的PHP版本–进入设置–禁用函数 {callout color="#14ffb9"} - 删除exec 和 passthru - Shell tar Shell zip Shell du就会显示成yes {/callout}  ### 八、给H5ai加密码 首先我们要找到这个文件 `_h5ai/public/index.php` ,在最下面增加以下代码: ```php function mima() { $user=array(‘填写你的用户名‘,‘填写你的密码‘); if(!($user[0]===$_SERVER[‘PHP_AUTH_USER‘] && $user[1]===$_SERVER[‘PHP_AUTH_PW‘])){ header(‘WWW-Authenticate: Basic realm="MY Mark"‘); header(‘HTTP/1.0 401 Unauthorized‘); die("please login"); } } ``` 然后在第一行,也就是
2022年03月13日
6,141 阅读
2 评论
3 点赞
2022-03-13
『转载』『教程』荣耀与华为系列的笔记本打开TPM2.0,直升win11
> ## 前言 经过努力,在去年年底成功给无法开启TPM2.0的笔记本开启了TPM,通过bate,通道升到了win11 本人笔记本荣耀magicbook2018,CPU是i5-8250U,体验还可以,没有卡顿,但确实果里果气的。 经过我了解,这种方法不仅适用于华为和荣耀系列的笔记本,而且所有笔记本都适用。 > ## 成果 >  > ## 视频教程 {bilibili bvid="BV1444y1e7Zn" page="1"/} > ## 教程 ### 一、更新BIOS 首先,你要去官网去下载你电脑型号对应的最新的bios的固件,用于编辑。 有好多人跟我说他们找不到自己的笔记本,说华为官方不管了,其实不是的,只是不容易找到了而已,这里我们可以用我们笔记本的序列号来准确定位。 同时要保证你目前笔记本装的是同一版本的固件,便于后期对应修改参数。 1、打开自带电脑管家找自己笔记本的序列号,这里如下图  2、然后点击快捷服务,右边页面左上角就有你电脑的序列号。点复制就好了,如下图。  3、然后打开华为售后官网 https://consumer.huawei.com/cn/support/driver-list/ 4、点右边的,按设备序列号搜索  进去以后输入序列号和验证码就可以找到自己对应的电脑了,还有关于你电脑的各种信息和各种驱动。 里面找到自己的bios固件并且下载下来。这里放的图是一个示例。  下载后解压,直接运行exe文件就行了 当然,你也可以在自带的电脑管家里直接升级BIOS ### 二、下载工具包 隐藏内容,请前往内页查看详情 ### 三、修改偏移集 打开工具包,先管理员运行 `WDFInst.exe` 再打开 `H2OUVE-W-GUIx64.exe` ,在这个程序里面, 点击 `File - Load Runtime` ,加载本机BIOS数据。  点左侧绿色按钮 Variable  在中间栏找到VarStore偏移集名称并双击,再找出偏移值对应坐标Varoffset,修改对应坐标即可(这张图给的是matebook2018的参数,其他笔记本可对应修改。 隐藏内容,请前往内页查看详情 > ## 最后 点击 File - Save保存后直接重启,系统会自动安装TPM驱动。 然后就可以运行检测工具,看你的电脑是否符合升级条件,符合的就可以通过检测更新进行版本升级了。
2022年02月25日
15,649 阅读
135 评论
9 点赞
2022-02-25
『转载』『Win11』MagicBook2018 跳过检测强制升级 Windows 11
> ## 前言 由于本人购买的MagicBook貌似并不支持TPM,所以通过正常渠道并不能升级到Windows11,所以只能找找旁门左道了。 > ## 成果  > ## 准备 {card-describe title="设备"} 设备: MagicBook 笔记本 型号: VLT-WX0 系统: Windows 10 专业版 {/card-describe} > ## 操作 ### 1、查看是否支持 Windows 升级  很明显, 不支持, 正常流程--全局终。。。 and 开始作死。。。 ### 2. 下载脚本 {\hide} {callout color="#61d7ff"} ** `github` 地址** {/callout} https://github.com/AveYo/MediaCreationTool.bat 点击 `code` , 点击 `Download ZIP`  {callout color="#61d7ff"} **本地下载** {/callout} {cloud title="本地备份下载" type="default" url="https://file.fuuuy.cn/s/tj14tt" password=""/} {/hide} ### 3.运行脚本 3.1 解压文件 3.2 进入解压文件夹 3.3 右键以管理员权限运行 `MediaCreationTool.bat`  3.4 点击 `11`  3.5 点击 `Auto Setup`  开始下载镜像  (其中有一步是将镜像保存到硬盘) ### 4. 等待下载  4.1. 加载下载的镜像文件,运行安装程序  4.2. 继续安装  ### 5.重启并验证  > ## 结尾 根据脚本作者的介绍,此脚本可以跳过Win11升级检查验证,强制升级Win11,同时兼容不同设备,基本上硬件符合的设备都可以强制升级
2022年02月25日
14,989 阅读
154 评论
16 点赞
2022-02-25
『原创』『表情』为Joe主题增加QQ,Bilibili,酷安,贴吧,微博表情包
> ## 前言 最近失恋了,就一直在学习前端基础,所以个人博客都好久没更新了 偶然在翠翠的博客看到给typecho添加表情包的教程,所以自己也添加了两组表情包 但是在添加途中遇到了一个问题,所以将自己遇到的坑记录下来 > ## 成果展示  **后台编辑器代码位置**  > ## 教程开始 ### 一、添加表情过滤 因为Joe主题之前被人恶意注入过xss,因此主题作者添加了关键词屏蔽,所以还要进行过滤 拿到一个表情包后,在 windows 系统中下这样操作,在表情包文件夹内创建一个 `文本文档`  然后双击打开,使用以下命令生成该文件夹文件(图片)列表: ```php dir /b > list.txt ```  保存后将文件后缀改为 `bat` ,然后再双击打开,就会生成一个 `list.txt` 文件  生成的 list.txt 就包含了改目录下的全部文件名,就可以很方便的批处理。 关键词拼串可以使用Excel进行,直接使用以下代码就行 ```php =A2&$F$2&A3 =E2&$F$2&A4 ```   然后打开 `Joe/core/parse.php` 文件,找到表情过滤 在下面添加你表情的关键词与表情地址 {tabs} {tabs-pane label="添加位置"}  {/tabs-pane} {tabs-pane label="代码"} 隐藏内容,请前往内页查看详情 {/tabs-pane} {/tabs} **这里有一个坑** ,因为原作者引用表情包地址是用的 `urlencode()` 函数,将文字转换为UrlEncode编码的字符 隐藏内容,请前往内页查看详情 ### 二、配置 OwO.json 打开 `Joe/assets/json` 下的 `joe.owo.json` 文件 在里面添加(请自行删除代码中的 `删除` 字符) ```text "表情": [ { "icon": "assets/owo/QQ/E788B1E4BDA0.gif", "data": ":删除$(爱你)" }, { "icon": "assets/owo/QQ/E788B1E5BF83.gif", "data": ":删除$(爱心)" }, { "icon": "assets/owo/QQ/E582B2E685A2.gif", "data": ":删除$(傲慢)" }, { "icon": "assets/owo/QQ/E799BDE79CBC.gif", "data": ":删除$(白眼)" }, { "icon": "assets/owo/QQ/E6A392E6A392E7B396.gif", "data": ":删除$(棒棒糖)" }, { "icon": "assets/owo/QQ/E78886E7AD8B.gif", "data": ":删除$(爆筋)" }, { "icon": "assets/owo/QQ/E68AB1E68BB3.gif", "data": ":删除$(抱拳)" }, { "icon": "assets/owo/QQ/E98499E8A786.gif", "data": ":删除$(鄙视)" }, { "icon": "assets/owo/QQ/E997ADE598B4.gif", "data": ":删除$(闭嘴)" }, { "icon": "assets/owo/QQ/E693A6E6B197.gif", "data": ":删除$(擦汗)" }, { "icon": "assets/owo/QQ/E88F9CE58880.gif", "data": ":删除$(菜刀)" }, { "icon": "assets/owo/QQ/E59083.gif", "data": ":删除$(吃)" }, { "icon": "assets/owo/QQ/E591B2E78999.gif", "data": ":删除$(呲牙)" }, { "icon": "assets/owo/QQ/E5A4A7E585B5.gif", "data": ":删除$(大兵)" }, { "icon": "assets/owo/QQ/E5A4A7E593AD.gif", "data": ":删除$(大哭)" }, { "icon": "assets/owo/QQ/E89B8B.gif", "data": ":删除$(蛋)" }, { "icon": "assets/owo/QQ/E5BE97E6848F.gif", "data": ":删除$(得意)" }, { "icon": "assets/owo/QQ/doge.gif", "data": ":删除$(doge)" }, { "icon": "assets/owo/QQ/E58F91E59186.gif", "data": ":删除$(发呆)" }, { "icon": "assets/owo/QQ/E58F91E68092.gif", "data": ":删除$(发怒)" }, { "icon": "assets/owo/QQ/E5A58BE69697.gif", "data": ":删除$(奋斗)" }, { "icon": "assets/owo/QQ/E5B0B4E5B0AC.gif", "data": ":删除$(尴尬)" }, { "icon": "assets/owo/QQ/E58BBEE5BC95.gif", "data": ":删除$(勾引)" }, { "icon": "assets/owo/QQ/E9BC93E68E8C.gif", "data": ":删除$(鼓掌)" }, { "icon": "assets/owo/QQ/E5AEB3E7BE9E.gif", "data": ":删除$(害羞)" }, { "icon": "assets/owo/QQ/E686A8E7AC91.gif", "data": ":删除$(憨笑)" }, { "icon": "assets/owo/QQ/E5A5BDE6A392.gif", "data": ":删除$(好棒)" }, { "icon": "assets/owo/QQ/E59388E6ACA0.gif", "data": ":删除$(哈欠)" }, { "icon": "assets/owo/QQ/E5969DE5BDA9.gif", "data": ":删除$(喝彩)" }, { "icon": "assets/owo/QQ/E6B2B3E89FB9.gif", "data": ":删除$(河蟹)" }, { "icon": "assets/owo/QQ/E59D8FE7AC91.gif", "data": ":删除$(坏笑)" }, { "icon": "assets/owo/QQ/E9A5A5E9A5BF.gif", "data": ":删除$(饥饿)" }, { "icon": "assets/owo/QQ/E6838AE68190.gif", "data": ":删除$(惊恐)" }, { "icon": "assets/owo/QQ/E6838AE5969C.gif", "data": ":删除$(惊喜)" }, { "icon": "assets/owo/QQ/E6838AE8AEB6.gif", "data": ":删除$(惊讶)" }, { "icon": "assets/owo/QQ/E88F8AE88AB1.gif", "data": ":删除$(菊花)" }, { "icon": "assets/owo/QQ/E58FAFE788B1.gif", "data": ":删除$(可爱)" }, { "icon": "assets/owo/QQ/E58FAFE6809C.gif", "data": ":删除$(可怜)" }, { "icon": "assets/owo/QQ/E68AA0E9BCBB.gif", "data": ":删除$(抠鼻)" }, { "icon": "assets/owo/QQ/E985B7.gif", "data": ":删除$(酷)" }, { "icon": "assets/owo/QQ/E5BFABE593ADE4BA86.gif", "data": ":删除$(快哭了)" }, { "icon": "assets/owo/QQ/E9AAB7E9AB85.gif", "data": ":删除$(骷髅)" }, { "icon": "assets/owo/QQ/E59BB0.gif", "data": ":删除$(困)" }, { "icon": "assets/owo/QQ/E7AFAEE79083.gif", "data": ":删除$(篮球)" }, { "icon": "assets/owo/QQ/E6B3AAE5A594.gif", "data": ":删除$(泪奔)" }, { "icon": "assets/owo/QQ/E586B7E6B197.gif", "data": ":删除$(冷汗)" }, { "icon": "assets/owo/QQ/E6B581E6B197.gif", "data": ":删除$(流汗)" }, { "icon": "assets/owo/QQ/E6B581E6B3AA.gif", "data": ":删除$(流泪)" }, { "icon": "assets/owo/QQ/E99ABEE8BF87.gif", "data": ":删除$(难过)" }, { "icon": "assets/owo/QQ/OK.gif", "data": ":删除$(OK)" }, { "icon": "assets/owo/QQ/E596B7E8A180.gif", "data": ":删除$(喷血)" }, { "icon": "assets/owo/QQ/E69287E598B4.gif", "data": ":删除$(撇嘴)" }, { "icon": "assets/owo/QQ/E595A4E98592.gif", "data": ":删除$(啤酒)" }, { "icon": "assets/owo/QQ/E5BCBA.gif", "data": ":删除$(强)" }, { "icon": "assets/owo/QQ/E695B2E68993.gif", "data": ":删除$(敲打)" }, { "icon": "assets/owo/QQ/E4BAB2E4BAB2.gif", "data": ":删除$(亲亲)" }, { "icon": "assets/owo/QQ/E7B397E5A4A7E4BA86.gif", "data": ":删除$(糗大了)" }, { "icon": "assets/owo/QQ/E68BB3E5A4B4.gif", "data": ":删除$(拳头)" }, { "icon": "assets/owo/QQ/E9AA9AE689B0.gif", "data": ":删除$(骚扰)" }, { "icon": "assets/owo/QQ/E889B2.gif", "data": ":删除$(色)" }, { "icon": "assets/owo/QQ/E8839CE588A9.gif", "data": ":删除$(胜利)" }, { "icon": "assets/owo/QQ/E6898BE69EAA.gif", "data": ":删除$(手枪)" }, { "icon": "assets/owo/QQ/E8A1B0.gif", "data": ":删除$(衰)" }, { "icon": "assets/owo/QQ/E79DA1.gif", "data": ":删除$(睡)" }, { "icon": "assets/owo/QQ/E8B083E79AAE.gif", "data": ":删除$(调皮)" }, { "icon": "assets/owo/QQ/E581B7E7AC91.gif", "data": ":删除$(偷笑)" }, { "icon": "assets/owo/QQ/E59090.gif", "data": ":删除$(吐)" }, { "icon": "assets/owo/QQ/E68998E885AE.gif", "data": ":删除$(托腮)" }, { "icon": "assets/owo/QQ/E5A794E5B188.gif", "data": ":删除$(委屈)" }, { "icon": "assets/owo/QQ/E5BEAEE7AC91.gif", "data": ":删除$(微笑)" }, { "icon": "assets/owo/QQ/E68FA1E6898B.gif", "data": ":删除$(握手)" }, { "icon": "assets/owo/QQ/E68891E69C80E7BE8E.gif", "data": ":删除$(我最美)" }, { "icon": "assets/owo/QQ/E697A0E5A588.gif", "data": ":删除$(无奈)" }, { "icon": "assets/owo/QQ/E59093.gif", "data": ":删除$(吓)" }, { "icon": "assets/owo/QQ/E5B08FE7BAA0E7BB93.gif", "data": ":删除$(小纠结)" }, { "icon": "assets/owo/QQ/E7AC91E593AD.gif", "data": ":删除$(笑哭)" }, { "icon": "assets/owo/QQ/E5B08FE6A0B7E584BF.gif", "data": ":删除$(小样儿)" }, { "icon": "assets/owo/QQ/E6969CE79CBCE7AC91.gif", "data": ":删除$(斜眼笑)" }, { "icon": "assets/owo/QQ/E8A5BFE7939C.gif", "data": ":删除$(西瓜)" }, { "icon": "assets/owo/QQ/E59898.gif", "data": ":删除$(嘘)" }, { "icon": "assets/owo/QQ/E7BE8AE9A9BC.gif", "data": ":删除$(羊驼)" }, { "icon": "assets/owo/QQ/E998B4E999A9.gif", "data": ":删除$(阴险)" }, { "icon": "assets/owo/QQ/E79691E997AE.gif", "data": ":删除$(疑问)" }, { "icon": "assets/owo/QQ/E58FB3E593BCE593BC.gif", "data": ":删除$(右哼哼)" }, { "icon": "assets/owo/QQ/E5B9BDE781B5.gif", "data": ":删除$(幽灵)" }, { "icon": "assets/owo/QQ/E69995.gif", "data": ":删除$(晕)" }, { "icon": "assets/owo/QQ/E5868DE8A781.gif", "data": ":删除$(再见)" }, { "icon": "assets/owo/QQ/E79CA8E79CBCE79D9B.gif", "data": ":删除$(眨眼睛)" }, { "icon": "assets/owo/QQ/E68A98E7A3A8.gif", "data": ":删除$(折磨)" }, { "icon": "assets/owo/QQ/E59292E9AA82.gif", "data": ":删除$(咒骂)" }, { "icon": "assets/owo/QQ/E68A93E78B82.gif", "data": ":删除$(抓狂)" }, { "icon": "assets/owo/QQ/E5B7A6E593BCE593BC.gif", "data": ":删除$(左哼哼)" } ], "BiliBili": [ { "icon": "assets/owo/bilibili/doge.gif", "data": ":删除#(doge)" }, { "icon": "assets/owo/bilibili/E4BAB2E4BAB2.gif", "data": ":删除#(亲亲)" }, { "icon": "assets/owo/bilibili/E581B7E7AC91.gif", "data": ":删除#(偷笑)" }, { "icon": "assets/owo/bilibili/E5868DE8A781.gif", "data": ":删除#(再见)" }, { "icon": "assets/owo/bilibili/E58F91E68092.gif", "data": ":删除#(发怒)" }, { "icon": "assets/owo/bilibili/E58F91E8B4A2.gif", "data": ":删除#(发财)" }, { "icon": "assets/owo/bilibili/E58FAFE788B1.gif", "data": ":删除#(可爱)" }, { "icon": "assets/owo/bilibili/E59090E8A180.gif", "data": ":删除#(吐血)" }, { "icon": "assets/owo/bilibili/E59186.gif", "data": ":删除#(呆)" }, { "icon": "assets/owo/bilibili/E59195E59090.gif", "data": ":删除#(呕吐)" }, { "icon": "assets/owo/bilibili/E59BB0.gif", "data": ":删除#(困)" }, { "icon": "assets/owo/bilibili/E59D8FE7AC91.gif", "data": ":删除#(坏笑)" }, { "icon": "assets/owo/bilibili/E5A4A7E4BDAC.gif", "data": ":删除#(大佬)" }, { "icon": "assets/owo/bilibili/E5A4A7E593AD.gif", "data": ":删除#(大哭)" }, { "icon": "assets/owo/bilibili/E5A794E5B188.gif", "data": ":删除#(委屈)" }, { "icon": "assets/owo/bilibili/E5AEB3E7BE9E.gif", "data": ":删除#(害羞)" }, { "icon": "assets/owo/bilibili/E5B0B4E5B0AC.gif", "data": ":删除#(尴尬)" }, { "icon": "assets/owo/bilibili/E5BEAEE7AC91.gif", "data": ":删除#(微笑)" }, { "icon": "assets/owo/bilibili/E6809DE88083.gif", "data": ":删除#(思考)" }, { "icon": "assets/owo/bilibili/E6838AE59093.gif", "data": ":删除#(惊吓)" }, { "icon": "assets/owo/bilibili/E68993E884B8.gif", "data": ":删除#(打脸)" }, { "icon": "assets/owo/bilibili/E68A93E78B82.gif", "data": ":删除#(抓狂)" }, { "icon": "assets/owo/bilibili/E68AA0E9BCBBE5AD90.gif", "data": ":删除#(抠鼻子)" }, { "icon": "assets/owo/bilibili/E6969CE79CBCE7AC91.gif", "data": ":删除#(斜眼笑)" }, { "icon": "assets/owo/bilibili/E697A0E5A588.gif", "data": ":删除#(无奈)" }, { "icon": "assets/owo/bilibili/E69995.gif", "data": ":删除#(晕)" }, { "icon": "assets/owo/bilibili/E6B581E6B197.gif", "data": ":删除#(流汗)" }, { "icon": "assets/owo/bilibili/E6B581E9BCBBE8A180.gif", "data": ":删除#(流鼻血)" }, { "icon": "assets/owo/bilibili/E782B9E8B59E.gif", "data": ":删除#(点赞)" }, { "icon": "assets/owo/bilibili/E7949FE6B094.gif", "data": ":删除#(生气)" }, { "icon": "assets/owo/bilibili/E7949FE79785.gif", "data": ":删除#(生病)" }, { "icon": "assets/owo/bilibili/E79691E997AE.gif", "data": ":删除#(疑问)" }, { "icon": "assets/owo/bilibili/E799BDE79CBC.gif", "data": ":删除#(白眼)" }, { "icon": "assets/owo/bilibili/E79DA1E79D80.gif", "data": ":删除#(睡着)" }, { "icon": "assets/owo/bilibili/E7AC91E593AD.gif", "data": ":删除#(笑哭)" }, { "icon": "assets/owo/bilibili/E885BCE88586.gif", "data": ":删除#(腼腆)" }, { "icon": "assets/owo/bilibili/E889B2.gif", "data": ":删除#(色)" }, { "icon": "assets/owo/bilibili/E8B083E79AAE.gif", "data": ":删除#(调皮)" }, { "icon": "assets/owo/bilibili/E98499E8A786.gif", "data": ":删除#(鄙视)" }, { "icon": "assets/owo/bilibili/E997ADE598B4.gif", "data": ":删除#(闭嘴)" }, { "icon": "assets/owo/bilibili/E99ABEE8BF87.gif", "data": ":删除#(难过)" }, { "icon": "assets/owo/bilibili/E9A68B.gif", "data": ":删除#(馋)" }, { "icon": "assets/owo/bilibili/E9BB91E4BABAE997AEE58FB7.gif", "data": ":删除#(黑人问号)" }, { "icon": "assets/owo/bilibili/E9BC93E68E8C.gif", "data": ":删除#(鼓掌)" } ] ``` 将上文中转码后的名称列成 Excel 表格,并在某单元格(比如图例中的 G2 ~ G5)输入前缀 ```php =$G$2&C2&$G$3&$G$4&A2&$G$5 ``` 然后对于每一行输入公式进行字符串拼接  之后可以将表格复制到 Excel 转 json 中获取相应的 json 文件,就不需要一个个做啦 ww 做完后将其复制到 `joe.owo.json` 就好了  注:我这里是将JSON格式化后的结构,建议格式后进行添加,不容易出错,而且看着不会眼睛疼( ~~压缩代码太伤眼了~~ ) ### 三、上传表情包文件 将重命名后的表情包文件上传到 `Joe/assets/owo` 文件夹中,当然你也可以上传到其他地方,只要能访问到就行 然后在打开网站查看效果就好啦~ > ## 表情包资源 当然其实这篇文章最重要的就是五套表情包的资源啦,资源的链接在下面,需要的话就拿去哦~>v< 隐藏内容,请前往内页查看详情
2021年12月28日
14,053 阅读
72 评论
238 点赞
2021-12-28
『原创』『教程』搭建在线VSCode,部署Code-Server并配置反向代理实现域名访问
> ## 前言 最近学习web开发,一边看视频一边练习,码代码、记笔记,实属有些不亦乐乎 但是无奈本子配置不高,每次同时打开vscode+Chrome,本子风扇呼呼作响不说,手里还像捧着个暖宝宝,实在不快 突然想起之前看到过的开源vscode—— `code-server` ,索性自己也来搭建一个web版的vscode > 成果展示  > ## 教程开始 ### 一、下载code-server源代码 其实codeserver有很多种安装方式,但是我这里使用的是通过宝塔进行本地安装 Docker安装虽然简单,但是后期维护和修改会很难受,所有我就采用本地安装吧 {card-default label="下载code-server源码" width=""} 官方github下载: [code-server](https://github.com/coder/code-server/releases/) 国内镜像下载: [code-server 3.12.0-linux-amd64.tar.gz](https://file.fuuuy.cn/s/gn3c5p) [code-server-4.1.0-linux-amd64.tar.gz](https://file.fuuuy.cn/s/a2el0f) [code-server-4.1.0-linux-arm64.tar.gz](https://file.fuuuy.cn/s/cvvt88) [code-server-4.1.0-macos-amd64.tar.gz](https://file.fuuuy.cn/s/pnrsff) {/card-default} ### 二、运行code-server #### 1、上传下载的文件到服务器 直接将下载好的文件上传到自己的服务器,当然你也可以先使用宝塔添加一个网站  然后上传到该网站对应的目录下  #### 2、解压文件  #### 3、运行code-server 直接在解压的文件夹内点击终端  进入终端  然后在终端输入以下代码直接启动 ```php ./bin/code-server --host 0.0.0.0 --port 8080 ``` 如图所示就是已经完成配置.  进入浏览器,输入服务器公网ip,加上刚才我们指定的端口号进入,显示欢迎界面输入密码进入 #### 4、修改密码 在第一次开启code-server时,会在服务器 `根目录-root-.config-code-server`下生成一个配置文件  打开后可以修改 `host:端口` 和 `密码` ,这里建议把host改为 `0.0.0.0` 以能够使用外网访问  如果不想使用密码,在 **启动命令** 中加 `--auth none` 即可无需密码进入。  成功访问。 到这里,我们就基本完成了 code-server 的部署。 > ## 存在的问题 虽然我们已成功部署了 code-server 服务,但有几个问题仍然不可避免! 1. **我们使用 `终端` 连接的方式启动 code-server,一旦断开连接,那么 code-server 就不可以再使用了** 2. **code-server 自签的证书被浏览器提示不安全** 3. **域名 + 端口的访问方式实在是太麻烦,而且还会暴露端口,不安全** > ## 优化 code-server 服务 ### 一、问题1 #### 1、创建开启脚本 直接在code-server同目录下创建一个 `start.sh` 文件,打开将以下代码复制进去 隐藏内容,请前往内页查看详情 #### 2、创建关闭脚本 创建一个 `stop.sh` 文件,将以下代码复制进去 ```php kill -9 'cat save_pid.txt' # 关闭这个进程,关闭code-server服务 ``` 这样一来我们就得到了开启和关闭的脚本文件 #### 3、启动开启脚本 在同目录文件夹下打开终端输入以下代码,就可以直接启动code-server并保持后台 ```php ./start.sh ``` 启动后不会有反馈,可以直接关闭当前终端,然后会发现同目录下生成了 `run.log` 文件 打开 `run.log` 即可看到运行日志 ### 二、问题2 {callout color="#38bdff"} 必须先添加 SSL 证书,然后设置反向代理 {/callout} 该步骤结合第三步,先添加一个站点,设置好域名,不需要任何环境,php 版本设置为纯静态,然后在面板的 SSL 中申请 Let’s Encrypt 免费 SSL 证书即可。 ### 三、问题3 这里我们改变默认端口进行访问,并且使用 Nginx 反向代理 修改端口:我们可以选择合适的端口开启 code-server,如: ./code-server --port 28865 #### 1、创建反向代理 点击刚才在宝塔 **添加的网站-反向代理-添加反向代理**  输入你的 **代理名称、目标URL** {callout color="#f0ad4e"} 代理名称:code-server(随便填) 目标URL:你的外网IP:端口 {/callout}  此时你就可以直接使用你的域名进行访问了,但是可能会报错 `Error: WebSocket close with status code 1006`  别急,这是正常现象,因为你的Nginx没有使用WebSocket代理 #### 2、修改反向代理的配置文件 点击反向代理里的 **配置文件** 进行修改  **在如下位置加入以下代码** 隐藏内容,请前往内页查看详情 然后再返回你的域名,你会发现可以正常访问了  > ## 结语 虽然code-server还达不到vscode的强大,但是已经可以方便很多了,至少对我来说,我的渣本再也不会呼呼作响了。 {bilibili bvid="bv1uL411P7VN" page=""/}
2021年11月26日
14,948 阅读
122 评论
447 点赞
2021-11-26
『笔记』JavaScript进阶学习笔记 0
> ## 数据类型 ### 1、分类 基本(值)类型 {alert type="info"} - String:任意字符串 - Number:任意的数字 - Boolean:true/false - undefined:undefined - null :null {/alert} 对象(引用)类型 {alert type="info"} - `object` :任意对象 - `function` :函数,一种特别的对象(可以执行) - `array` :数组,一种特别的对象(数值具有下标,内部数据是有序的) {/alert} ### 2、类型的判断 {alert type="success"} - `typeof` :可以判断 undefined/ 数值 / 字符串 / 布尔值Boolean / Function -不能判断 null和object object和array - `instanceof` :判断对象的具体类型 - `===` :全等,可以判断undefined,null {/alert} ```javascript // 1、基本数据类型 var a; // typeof返回数据类型的字符串表达 console.log(a, typeof a, typeof a==="undefined", a===undefined);//undefined "undefined" true true console.log(undefined === 'undefined'); //false a = 3; console.log(typeof a ==='number');//true a = 'abc'; console.log(typeof a ==='string');//true a = true; console.log(typeof a === 'boolean');//true a= null; console.log(typeof a, a===null); //obiect true console.log('--------------------') // 2、对象类型 console.log('对象类型') var b1 ={ b2:[1,'abc',console.log], b3:function(){ console.log('b3'); return function(){ return 'hello'; }; } }; // instanceof判断a(实例对象)是不是b(构造函数)类型的实例 console.log(b1 instanceof Object, b1 instanceof Array); //true false console.log(b1.b2 instanceof Array, b1.b2 instanceof Object); //true true console.log(b1.b3 instanceof Function, b1.b3 instanceof Object); //true true console.log(typeof b1.b2,'flag'); //'object' b1.b2为array(数组)类型 console.log(typeof b1.b3 === 'function'); //true console.log(b1.b2[2] instanceof Function, typeof b1.b2[2] === 'function'); //true true b1.b2[2]('你好'); //'你好' console.log(b1.b3()()); // hello b1.b3(); //可以执行 /*var obj = { name: 'tom', age:12 }; function test() { var a = 3; }; var arr = [3, "abc"]; console.log(arr[1]);*/ // 实例:实例对象 // 类型:类型对象 // 函数是一种特殊的对象(可执行) function Person(name,age){ //构造函数 类型 this.name = name; this.age = age; } var p = new Person('tom',12); //根据类型创建的实例对象 // Person('jack',12); ``` #### 1、undefined与null的区别? - `undefined` 代表定义未赋值 - `null` 代表定义并赋值了,但是值为null #### 2、什么时候给变量赋值为null? - 初始赋值:表明将要赋值为对象 - 结束前:让对象成为垃圾对象(垃圾回收) #### 3、严格区别变量类型与数据类型? (1)数据的类型 - 基本类型 - 对象类型 (2)变量的类型(变量内存值的类型) - 基本类型:保存的基本类型的数据 - 引用类型:保存的是地址值 对象类型即是引用类型 ```javascript var a; console.log(a); //undefined,未赋值 a = null; console.log(a); //null,赋值为null var b = null; //初始赋值为null,表面将要赋值为对象 // 确定对象就可以赋值 b = ['hello',12]; // 最后,为了释放对象内容 b = null; //让b指向的对象成为垃圾对象(被垃圾回收器回收:垃圾回收) // b = 2; //又重新赋值了,没有意义 // c保存的是地址值,即为引用类型 var c = function(){ }; console.log(typeof c) //'function' ``` ## 数据、变量、内存 #### 定义 1、什么是数据 - 存储在内存中代表特点信息的东西,本质上是0101....... - 数据的特点:可传递、可运算 2、什么是内存 - 内存条通电以后产生的可存储数据的空间(临时的) - 内存产生和死亡: `内存条(电路板)==>通电==>产生内存空间==>存储数据==>处理数据==>断电==>内存空间和数据都消失` - 一块小内存的2个数据 `内部存储的数据` `地址值` - 内存分类 `栈:保存全局变量/局部变量(变量名)` `堆:对象(函数、数组)` 3、什么是变量 - 可变化的量:由变量名、变量值组成 - 每个变量都对应一块小内存,变量名用来查找对应的内存,变量值就是内存中保存的数据 4、内存、数据、变量三者之间的关系 - 内存是用来存储数据的空间 - 变量是内存的标识  ```javascript var age = 18; console.log(age) var obj = {name:'tom'}; console.log(obj.name); function fn(){ var obj = {name:'tom'}; }; var a = 3; var b = a + 2; ```
2021年11月22日
6,122 阅读
0 评论
13 点赞
2021-11-22
1
2
3
...
7