薄·客 - 教程分享
type: channel
link: http://blog.snwl0311.cn/index.php/category/tutorial/
description: 我学到的，你也可以学到
items: 【完全解决】 Alist 预览PDF加载失败，预览错误
items: 【超完整】Handsome主题魔改记录与分享
items: N1盒子挂载小雅超集实现影音自由
items: Casa OS系统如何删除或导入待重建的APP
items: 【全面速懂】C#使用WSDL服务
items: Git安装与配置，详细图文教程
items: Git【 超详细】安装教程
items: Node.js常见问题及解决方案
items: Nodejs超详细安装教程【避坑篇】
items: Handsome友链自助申请插件

【完全解决】 Alist 预览PDF加载失败，预览错误
type: item
date: 2024-10-19T22:46:00+08:00
description: 前言博主搜集网上各种办法，均为直接解决，最后还是在自我动手下解决原始配置AList 原本的预览配置是调用的github的源，最明显的缺点就是慢，且会遇到很多问题：错误如下：[collapse status="true" title="Failed to fetch"][/collapse]解决方法自己搭建一个PDF预览的网站做接口一、从github获取pdf.js的Release版本进入项目地址：GitHub，找到Release，点击找到版本3.4.120,下载pdfjs-3.4.120-dist.zip[scode type="blue"]v3.4.120之后的版本都采用Node.js的.mjs进行部署的，我选择了.js的版本，即最后一版的v3.4.120如果你是较旧的浏览器，请下载legacy版，否则下载常规版本（推荐直接下载常规版本的）[/scode]二、网站部署pdf.js项目需要准备web网站环境（自行解决），我是用宝塔完成上传网站并解压后得到如下文件新建pdfjs-dist文件夹并移动解压后的文件到该文件夹内[scode type="yellow"]注意下载的Release的pdf.js项目里面的内容对pdf.js及相关文件的路径描述有特殊要求，即必须在pdfjs-dist文件内访问[/scode]去除元文件中的跨域验证编辑 /www/wwwroot/你的网站/pdfjs-dist/web/viewer.js文件的第1563-1565行，并注释这三行代码返回到网站 打开网站设置-网站目录 ，修改网站运行目录为 /pdfjs-dist验证网站打开网址 http://你的域名或IP/web/ 如果没有问题，则会自动打开一个预览PDF文件更新AList的预览配置为自己的就可以正常预览PDF啦不愿意动手的看这里，拿来就用获取代码自己部署（不用改直接用）使用我的预览接口在AList的预览设置中更换配置为博主的接口完结

【超完整】Handsome主题魔改记录与分享
type: item
date: 2024-10-13T21:45:00+08:00
description: 前言typecho的handsome主题美化美化过程1、时光机头像圆形打开后台-更改外观-设置外观-开发者设置-复制代码粘贴至自定义CSS即可/* 时光机圆形头像 */ .img-square {border-radius: 50%;} .list-group-item .thumb-sm .img-square {border-radius: 5px;}2、logo扫光效果打开后台-更改外观-设置外观-开发者设置-复制代码粘贴至自定义CSS即可/* logo扫光开始 */ .navbar-brand{position:relative;overflow:hidden;margin: 0px 0 0 0px;}.navbar-brand:before{content:""; position: absolute; left: -665px; top: -460px; width: 200px; height: 15px; background-color: rgba(255,255,255,.5); -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -ms-transform: rotate(-45deg); -o-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-animation: searchLights 6s ease-in 0s infinite; -o-animation: searchLights 6s ease-in 0s infinite; animation: searchLights 6s ease-in 0s infinite;}@-moz-keyframes searchLights{50%{left: -100px; top: 0;} 65%{left: 120px; top: 100px;}}@keyframes searchLights{40%{left: -100px; top: 0;} 60%{left: 120px; top: 100px;} 80%{left: -100px; top: 0px;}} /*logo扫光结束*/3、赞赏按钮跳动打开后台-更改外观-设置外观-开发者设置-复制代码粘贴至自定义CSS即可 /*赞赏按钮跳动开始*/ .btn-pay { animation: star 0.5s ease-in-out infinite alternate; } @keyframes star { from { transform: scale(1); } to { transform: scale(1.1); } } /*赞赏按钮跳动结束*/4、主题标题居中打开后台-更改外观-设置外观-开发者设置-复制代码粘贴至自定义CSS即可 /*主题标题居中*/ header.bg-light.lter.wrapper-md { text-align: center; }5、页面两侧框架留白间距打开后台-更改外观-设置外观-开发者设置-复制代码粘贴至自定义CSS即可 /*两侧框架留白间距*/ @media (min-width:1700px) { .app.container { width: 95% } .app.container .app-aside, .app.container .app-header { max-width: 95% } } @media (min-width:2048px) { .app.container { width: 93% } .app.container .app-aside, .app.container .app-header { max-width: 93% } } @media (min-width:1200px) { .app.container { width: 90% } .app.container .app-aside, .app.container .app-header { max-width: 90% } .app.container .app-footer-fixed { max-width: 970px } .app.container.app-aside-folded .app-footer-fixed { max-width: 1110px } .app.container.app-aside-dock .app-footer-fixed { max-width: 90% } }6、handsome原生入站提示打开后台-更改外观-设置外观-开发者设置-复制代码粘贴至…

N1盒子挂载小雅超集实现影音自由
type: item
date: 2024-10-13T11:27:00+08:00
description: 分享你我，少走弯路网上教程一大堆，能给你讲明白的，只有我前言关于小雅Alist就不多介绍了，懂的都懂，于是今天就和大家分享一下，流程同样非常简单，一行命令就能实现。操作前提刷好Casa OS的 N1盒子进入到SSH模式准备工作在部署小雅alist前需要获取阿里云盘token和Open toke，以及转存目录folder idToken获取[collapse status="false" title="阿里云盘token"]进入Alist官方文档网站点击图示按钮，会出现二维码，用阿里云盘APP扫码登录后继续点击按钮获取32位的Token,并记录保存备用[/collapse][collapse status="false" title="阿里云盘Open token"]通过Alist官方提供的链接进行登录点击 I have scan 获取335位的Open Token记录保存备用[/collapse][collapse status="false" title="阿里云盘转存文件夹的ID"]这里说明一下，阿里云盘对资源盘位置定义进行了更新，新版本没有了资源库目录，默认除备份盘（备份文件）、相册、密码箱外都是资源目录在根目录新建一个文件夹，这里我将它命名为 小雅资源库进入该文件夹，复制地址栏中最后一个斜杠后的字符串，这个就是需要准备好的最后一个转存目录id，把它复制下来保存好。[/collapse]这三个数据保存好，即可进入下一步部署小雅alist了部分可参考小雅指南挂载部署Alist 挂载 阿里云盘主要对以下这些设置进行配置与修改即可：挂载路径：阿里云盘（随意起名，自己能分辨且不和其他网盘名字相同即可）web代理：选项打开WebDAV 策略：选择本地代理刷新令牌：键入之前获取的32位Token点击保存状态显示显示Work即表示成功在Docker的Casa OS中部署 小雅Alist打开CasaOS终端 键入以下一键安装和更新容器命令部署小雅AListbash -c "$(curl http://docker.xiaoya.pro/update_new.sh)" -s host按照提示依次键入之前保存的阿里云盘token、阿里云盘OpenToken、转存文件夹ID第一次安装会出现下面的Error提示，可忽略部署完成后，我们回到Casa OS界面，可以看到新增了待重建的xiaoya应用，重建即可点击进行重建：IP地址栏输入Casa OS主机IP（在路由器查看），端口输入5678：然后点击既可在浏览器打开小雅web界面，显示获取设置失败，正在加载存储，这是正常现象，因为资源较多，稍等几分钟再刷新页面即可部署小雅守护，用以及时删除网盘缓存终端准备输入命令bash -c "$(curl -s https://xiaoyahelper.zengge99.eu.org/aliyun_clear.sh | tail -n +2)" -s 5 -tg回到Casa OS , 进行重建应用即可Alist 挂载 小雅Alist首先，我们需要在Casa OS 终端中执行下方命令创建一个在AList中挂载小雅所需要的token：docker exec -i xiaoya sqlite3 data/data.db <<EOF select value from x_setting_items where key = "token"; EOF上边命令中的xiaoya要以你部署的小雅NAMES为准，如果你有更改，请对应变更命令中的相关部分回到AList的web界面,添加存储驱动选择AList V3主要对以下这些设置进行配置与修改即可：挂载路径：随意，中英文都可以，我这里演示使用：/小雅影集根文件夹路径：斜杠即可链接：输入小雅alist的地址，即为http://主机ip:5678令牌：输入刚才获取的小雅挂载token即可保存状态显示显示Work即表示成功回到AList的主页，即能在这里对小雅alist和其他网盘中的资源进行管理可以直接点开文件夹中的资源，进行高清播放：成功在本地N1盒子上的Casa OS容器中部署了小雅AList并挂载到了AList中进行管理如有内网穿透需求，可搭配Cpolar实现，后期补充或自行百度

Casa OS系统如何删除或导入待重建的APP
type: item
date: 2024-10-13T00:50:00+08:00
description: 2024-10-12T16:51:52.pngSSH命令删除docker ps 查看容器docker stop 容器id #停止当前正在运行的容器 例：docker stop 6a758e4d9010docker rm 容器id #删除容器最后清理未使用的镜像包：docker system prune -a

【全面速懂】C#使用WSDL服务
type: item
date: 2022-09-29T15:40:00+08:00
description: C#使用WSDL服务前言做上位机，难免遇到需要和总控/MES等系统进行对接，那必然少不了接口的调用。例如WebServices；简单的用法请参考以下文章[post cid="58" /]可站在标准的开发过程，考虑到后期的扩展性、可维护性，那就需要做到类模块抽离，以满足后期的维护等。因此考虑到使用WSDL的方式来调用接口。环境鉴于我使用的是VS2022这个IDE，所以以下内容均以VS2022为例展开介绍如何在C#项目中高效使用WSDL。一、 获取wsdl介绍一种最简单的获取方法：运行并打开接口服务在地址栏后面添加?wsdl,并回车即可得到wsdl内容鼠标右击另存为wsdl文件二、 根据WSDL接口生成XXX.cs文件打开开始菜单内的VS 2022的开发人员命令提示符（这里注意用管理员身份） ：在刚刚打开的命令提示符内键入指令：wsdl /language:c# /n:GeneralControlService /out:C:\ApiService.cs C:\api.wsdl参数说明：序号参数作用1/language:C#指定编程语言为 C#2/n:GeneralControlService指定名称空间为 GeneralControlService3/out:指定文件保存路径和文件名 ApiService.cs，可以使用绝对路径也可以使用相对路径4C:\api.wsdlwsdl文件路径，也可以是网络路径（如：http://www.xxx.com/ApiService?wsdl）完成此步骤后，就可以看到ApiService.cs文件了三、根据XXX.cs文件生成XXX.dll文件还是步骤一的控制台（命令提示符）不要关，键入指令：csc /t:library ApiService.cs 在相同路径下，生成了ApiService.dll文件，拷贝到项目下，添加引用就可以了。四、使用方法项目的引用中添加引用：代码中使用：using GeneralControlService; GeneralControlServiceis = new GeneralControlService();或者GeneralControlService.WebServiceTask webService = new GeneralControlService.WebServiceTask();调用webService.XXX();点个赞再走呗

Git安装与配置，详细图文教程
type: item
date: 2022-05-25T16:24:00+08:00
description: [scode type="green"]推荐阅读[post cid="226" /][/scode]开始Git安装完成后，桌面右键出现Git GUI、Git bash选项，说明已安装：也可以在cmd中输入git命令,enter回车，若如下所示，说明安装成功啦！Git的环境配置GitHub或Gitee官网上注册一个账号，注册好后，桌面右键选择Git Bash，进行账号配置，命令如下：# 配置用户名("username"是自己的用户名) git config --global user.name "username" # 配置邮箱("username@email.com"是注册账号时所用的邮箱) git config --global user.email "username@email.com"执行完以上命令后，可用git config --global --list查看是否配置成功。继续，执行: ssh-keygen -t rsa ，(注意ssh-keygen无空格)，生成SSH(你的电脑与Gitee通信的安全连接)# 生成ssh ssh-keygen -t rsa # 命令执行后，连敲3次回车键执行完后到系统盘users目录(win: C:\Users\你的用户名.ssh\），查看生成的ssh文件：将公钥（ id_rsa.pub），添加到Github或Gitee平台中，这里以Gitee为例：4.1 gitee登录成功后，点击个人账户、找到设置，点击SSH公钥；4.2 左侧菜单栏找到SSH公钥4.3 将公钥（ id_rsa.pub）文件中的内容复制到key中，title随便起，或者key复制完后会自动生成title,点击确定就配置完成啦。回到Git bash命令窗口，输入 ssh -t git@gitee.com，如下所示，说明配置成功！顺便一提，如果执行上条命令，出现了下图情况：说明.ssh文件夹下缺少known_hosts文件，如果已经存在，那也在问答的时候输入yes,就可以了：

Git【 超详细】安装教程
type: item
date: 2022-05-25T14:53:00+08:00
description: 前言运行Vue项目时出现Git问题，果断安装一个 ::aru:discovertruth::Git安装Git 的下载以下 git-scm 是 Git 的官方，里面有不同系统不同平台的安装包和源代码，而 gitforwindows.org 里只有 windows 系统的安装包Git 官网下载对应系统的软件，下载地址为 git-scm.com或者gitforwindows.org上述下载地址国内访问没问题，但是下载就不友好了，所以推荐国内镜像源下载[scode type="blue"]找到最新日期的版本，即为当前最新版本。国内镜像下载：https://npm.taobao.org/mirrors/git-for-windows/[/scode]Git 的安装使用许可声明双击下载后的 Git-2.36.1-64-bit.exe，开始安装，这个界面主要展示了 GPL 第 2 版协议1的内容，点击 [next] 到第二步。选择安装目录可点击 “Browse…” 更换目录，也可直接在方框里面改，我一般直接将 “C\Program Files” 改为 “D”，这样就直接安装在 D 盘里了。点击 [next] 到第三步。选择安装组件图中这些英文都比较简单，我已经把大概意思翻译出来了，大家根据自己的需要选择勾选。点击 [next] 到第四步。选择开始菜单文件夹方框内 Git 可改为其他名字，也可点击 “Browse...” 选择其他文件夹或者给"Don't create a Start Menu folder" 打勾不要文件夹，点击 [next] 到第五步。选择 Git 默认编辑器Git 安装程序里面内置了 10 种编辑器供你挑选，比如 Atom、Notepad、Notepad++、Sublime Text、Visual Studio Code、Vim 等等，默认的是 Vim ，选择 Vim 后可以直接进行到下一步，但是 Vim 是纯命令行，操作有点难度，需要学习。如果选其他编辑器，则还需要去其官网安装后才能进行下一步，因为我本地已经安装VS Code ，所以我直接选择VSCode。下图为默认编辑器 Vim.可直接点击 [next] 到第六步。决定初始化新项目(仓库)的主干名字第一种是让 Git 自己选择，名字是 master ，但是未来也有可能会改为其他名字；第二种是我们自行决定，默认是 main，当然，你也可以改为其他的名字。一般默认第一种，点击 [next] 到第七步。注： 第二个选项下面有个 NEW！ ，说很多团队已经重命名他们的默认主干名为 main . 这是因为2020 年非裔男子乔治·弗洛伊德因白人警察暴力执法惨死而掀起的 Black Lives Matter(黑人的命也是命)运动，很多人认为 master 不尊重黑人，呼吁改为 main.调整你的 path 环境变量该页翻译过来是这样的：[scode type="yellow"][tabs][tab name="翻译" active="true"][/tab][tab name="释义"]第一种是仅从 Git Bash 使用 Git。这个的意思就是你只能通过 Git 安装后的 Git Bash 来使用 Git ，其他的什么命令提示符啊等第三方软件都不行。第二种是从命令行以及第三方软件进行 Git。这个就是在第一种基础上进行第三方支持，你将能够从 Git Bash，命令提示符(cmd) 和 Windows PowerShell 以及可以从 Windows 系统环境变量中寻找 Git 的任何第三方软件中使用 Git。推荐使用这个。第三种是从命令提示符使用 Git 和可选的 Unix 工具。选择这种将覆盖 Windows 工具，如 “ find 和 sort ”。只有在了解其含义后才使用此选项。一句话，适合比较懂的人折腾。[/tab][/tabs][/scode]选择 SSH 执行文件[scode type="yellow"][tabs][tab name="翻译" active="true"][/tab][tab name="释义"]默认吧！[/tab][/tabs][/scode]选择HTTPS后端传输[scode type="yellow"][tabs][tab name="翻译" active="true"][/tab][tab name="释义"]这两种选项有什么区别呢？来自https://stackoverflow.com/questions/62456484/whats-the-difference-between-openssl-and-the-native-windows-secure-channel-libr如果在具有企业管理证书的组织中使用 Git，则将需要使用安…

Node.js常见问题及解决方案
type: item
date: 2022-05-25T11:15:00+08:00
description: [scode type="green"]推荐阅读[post cid="181" /][/scode]总结了一些大家在安装及环境配置时容易出现的一些问题，分享给大家，希望对大家有帮助。一、运行npm install 时，卡在sill idealTree buildDeps没有反应.解决方案： 更换淘宝镜像可以使用如下命令设置为淘宝的镜像源：npm config set registry https://registry.npm.taobao.org使用如下命令检验是否成功：npm config get registry再次 npm install二、Error: EPERM: operation not permitted, mkdir ‘C:\node\node_cache’解决方案：提升操作权限，在任务栏搜索cmd，打开的时候右键以管理员身份运行就好。三、更改环境变量容易出现的问题[collapse status="true" title="环境变量更改"]环境变量需要使用配置正确，C:Users\用户名\AppData\Roaming\npm这个用户变量需要改掉,否则问题很大。环境变量需要有三处配置:用户变量node_ global, 例 C:\Program Files\nodejs\node_global环境变量NODE_ PATH，例 C:\Program Files\nodejs\node_global\node_modules记得path中增加%NODE_ PATH%path中配置nodejs的安装目录，例 C:\Program Files\nodejs[/collapse][scode type="blue"]更改完成后，可用以下指令验证：npm config get prefix //查看npm下载的模块存储路径 npm config get cache //查看缓存存储路径[/scode]四、npm install报错 npm ERR以下提供四种解决方法：错误一:npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\nanyi\AppData\Roaming\npm-cache_logs\2021-09-17T08_58_23_413Z-debug.l查看错误日志，错误日志就在上面展示的C:\Users…这里如果发现错误日志里有err mkdir错误原因：权限不足解决办法：关闭VsCode并以管理员权限启动VsCode即可（网上还有说在VsCode属性兼容性中直接配置管理员权限，但本人的VsCode配置后启动黑屏）错误二:npm ERR! code EINVALIDPACKAGENAME错误原因：npm版本问题解决办法：npm install --global npm错误三: npm : 无法加载文件 D:\nodejs\cnpm.ps1，因为在此系统上禁止运行脚本。解决办法：删除报错信息中无法加载的文件即可错误四npm ERR! Cannot read properties of null (reading ‘package’)解决办法：换用cnpm

Nodejs超详细安装教程【避坑篇】
type: item
date: 2022-05-25T09:18:00+08:00
description: 本篇教程，主要介绍如何在windows 64操作系统上教科书式的安装Node.js一、介绍Node.js发布于2009年5月，由Ryan Dahl开发，是一个基于Chrome V8引擎的JavaScript运行环境，使用了一个事件驱动、非阻塞式I/O模型，让JavaScript 运行在服务端的开发平台，它让JavaScript成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。Node.js对一些特殊用例进行优化，提供替代的API，使得V8在非浏览器环境下运行得更好，V8引擎执行Javascript的速度非常快，性能非常好，基于Chrome JavaScript运行时建立的平台， 用于方便地搭建响应速度快、易于扩展的网络应用。二、下载[scode type="yellow"]主要提示：建议使用16.X及以下版本，截止当前（2022年5月25日）最新版本为18.2.0。16.X以上版本可能会引起项目报错，新建项目不影响。[/scode][scode type="blue"]官网地址：https://nodejs.org/zh-cn/下载地址：https://nodejs.org/zh-cn/download/历史下载：https://nodejs.org/zh-cn/download/releases/[/scode]三、安装双击下载后的安装包，如下所示： 若出现如下提示，不用管，继续点击运行（Win10安装机制） 继续点击下一步（NEXT），如下界面： 勾选接受协议选项，点击 next（下一步） 按钮 : 选择安装目录（默认C盘，建议其他盘，因为后期会下载很多东西，比较占用空间，我是D:\nodejs） 点击树形图标来选择你需要的安装模式（一般情况下默认，不需要改动） , 然后点击下一步 next（下一步）[scode type="share"]Node.js runtime 表示运行环境npm package manager表示npm包管理器online documentation shortcuts 在线文档快捷方式Add to PATH添加到环境变量[/scode] 到以下界面，默认可以不选，看个人需要。[scode type="share"]表示一些附带工具的安装，一般包括Python、VS等，还有其他等[/scode] 点击Install开始进行安装 点击 Finish（完成）按钮退出安装向导。 四、验证我们以管理员权限打开命令提示符（CMD），检验一下node、npm的版本。node -v npm -v出现Nodejs以及npm工具包的版本号说明安装成功！五、软件环境配置[scode type="blue"]环境配置的目的主要是为了改变安装Nodejs依赖的下载位置，更加方便日后的包管理，以及配置缓存Cache的路径。因为Nodejs在执行安装语句时，会将安装的模块默认安装到C:\Users\用户名\AppData\Roaming\npm，从而占用C盘的空间。[/scode]创建npm模块安装目录首先分别在Nodejs安装目录下创建node_cache和node_global两个文件夹，创建文件夹后，打开dos命令窗口，分别执行下面两行命令。npm config set prefix "D:\NodeJS\node_global"npm config set cache "D:\NodeJS\node_cache"配置环境变量点击我的电脑->右键->属性->高级系统设置->高级->环境变量（或者直接在任务栏搜素环境变量，点击编辑系统环境变量->环境变量）新建NODE_PATH系统变量我们需要新建一个系统变量(NODE_PATH):D:\NodeJS\node_global\node_modules更改用户path变量这里我们需要将其中默认的C:\Users\用户名\AppData\Roaming\npm更改为：C:\Program Files\nodejs\node_global测试配置我们安装一个webpack模块进行测试，打开dos命令窗口，执行下面的命令.npm install -g webpack如图说明运行成功.打开D:\NodeJS\node_global\node_modules目录，可以发现多了一个webpack 的文件夹，说明安装成功！

Handsome友链自助申请插件
type: item
date: 2022-05-20T17:39:00+08:00
description: 插件ErcerLink[scode type="blue"]一个Typecho插件，仅适用于Handsome主题，通过此插件，你可以自助申请友链，效果见本站友链[button color="info" icon="paperclip" url="https://blog.snwl0311.cn/index.php/Links.html" type=""]直达友链[/button][/scode][collapse status="true" title="插件说明"]启用插件需要博客开启伪静态（宝塔直接伪静态选择 - Typecho）申请后会自动提交到你typecho程序的links数据库中管理员只需要打开 后台-管理-友情链接在此页面，可看到朋友萌提交滴友链默认提交的状态是失效链接，不会在任何位置输出，用于标注暂时失效的友链你需要手动设置链接输出位置（达到审核友链的目的）[/collapse]演示插件下载我的友链页面代码模板下载