最后编辑于2024年11月07日
前言
因为使用hugo时,有几个很常用的指令,比如hugo server
之类的,但是去文件夹、然后打开ps7、再执行命令,这套流程实在是太麻烦了,所以我就想搞一个exe,把常用的功能都搞进去。
项目地址HugoHelper
常用命令
这段其实是为了防止我忘了而写了😋。
# 切环境
Set-Location -Path "D:\Tools\hugot\BST"
# 生成可以上传到github的网页文件
hugo --contentDir "C:\Users\15641\Documents\Blog"
# 运行本地测试服务
hugo server --port 6138 --contentDir "C:\Users\15641\Documents\Blog"
# 创建新博客
hugo new content ($fileName + ".md") --contentDir "C:\Users\15641\Documents\Blog"
# 清理垃圾
hugo --cleanDestinationDir --contentDir "C:\Users\15641\Documents\Blog"
注意!
刚运行玩本地服务不能马上git add .
,因为此时那些html的指向还是localhost😓,这时候上传就搞笑了。要hugo
一下才行。
开发进程
配置VS开发环境
其实直接在选择新项目里面就有可以添加新环境的地方,安装就行。
安装之后,新建一个.NET项目,然后就会看到一个设计用的窗口,这时候摁Ctrl+Alt+X
打开工具箱,拖一个Botton出来。
右键按钮 - 属性,可以修改(Name),这个(Name)是程序用的,好像只能字母数字。而后面那个Text才是我看到的按钮文本。
窗口的属性里面还能更改图标,就在那个Icon里面选一个ico文件就行。
“创建新Blog”按钮
基本思路就是新开一个ps7进程,然后输入指令,或者在启动的时候用-Command
来实现带命令启动。
我一开始就是直接将ps1脚本里面的内容搬到代码里,脚本内容是通过--fileName
来实现文件名的传递,但是如果直接照搬到-Command
之后,无论我怎么搞都不能实现正常的文件名传递。
然后我就用直接执行脚本 + 传递参数的方式,执行很完美,但是感觉代码太WET😅,放弃。
最后我就是通过新开一个无窗口ps7进程,重定向输入输出,然后通过streamWriter.WriteLine
,一行行地输入到ps7
最新的是新开了一个创建blog窗口,这样就可以自由输入文件名了,原来是硬编码以当前时间为文件名。
一些简单的按钮
就是一些在点击事件内就能完全执行的按钮,包括开启Server、构建网页、清理垃圾。
开启Server我想看到ps窗口,就简单设定了一下ps进程设定:
RedirectStandardInput = true, // 重定向标准输入
RedirectStandardOutput = false, // 重定向标准输出
UseShellExecute = false, // 不使用系统外壳程序启动
CreateNoWindow = false // 创建窗口
Git窗口
我是想将Git操作也写在窗口里,但是目前还没搞定。
手动
目前搞定了手动git,设置ps进程信息为进入public
目录,并添加NoExit
参数就行。
string script = $"Set-Location {AppConfig.HugoRootDir};cd public";
.........
FileName = "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
Arguments = $"-NoExit -Command {script}",
RedirectStandardOutput = false, // 重定向标准输出
UseShellExecute = false, // 不使用系统外壳程序启动
CreateNoWindow = false // 不创建窗口
自动
这个就确实没搞定。
11月7
添加配置文件
右键项目 - 添加 - 新建项,找到应用程序配置文件就行。在里面添加键值对就行,通过在代码使用ConfigurationManager.AppSettings["键"]
来获取对应的值。
我现在是把配置的初始化写在专门一个类里面AppConfig.cs
,只要其它的类的命名开机和它一样(都是namespace Hugo
),就可以通过AppConfig.HugoRootDir
直接调用。
窗口虚化
因为按钮的点击事件都是通过ps间接实现的,所以有的耗时,为了提醒我正在运行而不是没响应之类的。
现在是直接将窗口的透明度临时设置为0.91,结束再改回来。不过我想实现类似高斯模糊的效果,但是好像都要引入包。
参(帮)考(手)
最后修改于 2024-11-05
此篇文章的评论功能已经停用。