admin管理员组文章数量:1595929
背景:
typora是一个可以使用markdown的编辑器,即写即展示还是很舒服的。但是1.0版本之后是需要付费的,如果想继续使用,可以购买正版也可以自行百度破解版。
markdown的图片展示最好能结合图床,因为markdown的优势就是可以文图分离储存,但是如果在本地电脑,不需要图床这么复杂的系统,只想通过域名访问图片,则可以在本地安装nginx,通过访问本地来展示图片。
在本地电脑中启动一个nginx的好处:
- 可以将图片和文章分离,即图片单独放在一个文件夹中,文章可以放在其他的位置。
- 方便迁移,不存在绝对路径迁移后无法显示的情况。
- 不需要公网的图床服务,省去会员费用。
- 本地存储的图片,可随时编辑。
- 相对于图床系统,省去数据库和存储等中间组件,轻便耐用。
本次分享windows版本的的搭建方法。
需要组件:
- typora-windows
- nginx-windows
- 文件夹及路径 (C:\Users\cnxhs\Desktop\dn\images\)
编写脚本(上传到本地文件夹)
typora就是执行你写好的脚本,并且传几个参数进去(参数数量不是固定的),参数就是图片地址,像这样
powershell C:\Users\cnxhs\Desktop\t.ps1 "C:\\Users\\cnxhs\\AppData\\Local\\Temp/typora-icon2.png" "C:\\Users\\cnxhs\\AppData\\Local\\Temp/typora-icon.png"
我们需要对传进来的参数进行处理,可以通过接口上传图片,也可以通过拷贝的方式复制到文件夹中。
windows中,我是用的是powershell脚本,powershell是Windows自带的语言,不需要额外安装。
首先,打开一个notepad,将下边的代码放进去,并保存成 .ps1
结尾的文件。我就保存在了桌面上。
说几句:
1、这个脚本对本地和网络上的图片都会进行处理,分两种情况,如果是http开头的,会下载到指定文件夹,并返回指定的url,如果不是http开头的,则会复制图片到指定文件夹,并返回url。
2、windows版本的typora和mac版本的不一样,mac版本的typora在处理网络图片的时候会先下载到本地,传进来的参数是一个本机的句对路径,文件名也是png结尾的,但是windows的则是直接给你一个url,我遇到过几次下下来文件名不全的情况,所以对文件名做了一个重命名的操作,防止下来没法用,上半段就是在取名。
3、输出结果需要以Upload Success:开头,否则失败。
4、你需要修改的就只有 p a t h 和 path和 path和log_file两个参数,还有最后一行输出的url格式。
5、powershell的打开方式是把鼠标放到开始按钮上(屏幕左下角),右键,点击Windows Powershell
# 有可能windows没法执行powershell,需要执行下边的命令打开权限。
# Set-ExecutionPolicy Unrestricted
# 然后输入A
$path='C:\Users\cnxhs\Desktop\dn\images\' #图片存储的文件夹路径
$log_file='.\log.txt' #日志的位置和名字
echo "Upload Success:"
for($i=0;$i-lt$args.Count; $i++)
{
$($args[$i]) | Out-File -Append -FilePath $log_file # 传入的参数输出到日志
$f_change=1 # 防止由于取名次数过多导致卡死,设置了10次取名机会
while(1 -lt 2)
{
if($f_change -lt 10)
{ $f_change++}
else
{echo '10 times ,over now'
exit}
# 选择一个文件名
[string]$names_tmp=Get-ChildItem $path -Name #获取文件夹内的文件名字
if($names_tmp.Count -eq 0){}
else{$names=$names_tmp.split(" ")}
[string]$random_name=Get-Random # 为了防止网上的图片没有后缀名字,所以给一个随机数作为名字
$file_name=${random_name}+'.png' # 组成文件名
#$file_name='1053425145.png'
$f_same='False' # 名字是否有重名的标志
for($o=0;$o-lt$names.Count;$o++)
{
if ($file_name -eq $names[$o])
{
$f_same='True'
$output='same name: '+$file_name
Write-Host $output
$output | Out-File -Append -FilePath $log_file
break
}
}
if ($f_same -eq 'False')
{
break
}
}
# 如果以http开头的参数,就下载,否则就拷贝
if ($($args[$i]).StartsWith('http')){
cd $path
wget $($args[$i]) -OutFile $file_name
cd ..
}
else{
copy $($args[$i]) $path$file_name
}
Write-Host http://127.0.0.1/images/$file_name
}
最后保存之后的t.ps1长这样。
配置typora
路径:文件->偏好设置->图像
操作:如图
命令:powershell C:\Users\cnxhs\Desktop\t.ps1
测试:点击 验证图片上传选项
点击 验证图片上传选项,出现成功上传图片并获得新的URL则为成功。如果没成功可能是存储图片的文件夹不存在,或者你输出的url格式不对。这之后去文件夹中看看,应该有两个图片了。
nginx安装
下载nginx,nginx也有Windows版本的,别下错了,我下的nginx-1.18.0。
官网:nginx: download
操作:
1、将下载好的压缩包解压缩到本地,Nginx目录所在的路径中不要有中文字符,也不建议有空格。
2、启动Nginx
使用CMD命令start命令启动nginx
c: && cd c:\tools\nginx
start nginx
此时你在浏览器输入 127.0.0.1,可以得到nginx的相应。
nginx配置
这是最关键一步,能不能展示,全看ningx配置了。
进入nginx文件夹,找到conf文件夹,进去,在nginx.conf文件上右键,使用notepad打开。加入下边这段配置(虚线李里边的)。
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#----------------从这开始,复制----------------------------
location /images/ {
root C:/Users/cnxhs/Desktop/dn;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
charset utf-8,gbk;
}
#----------------到这结束,复制到location / {下边来---------
#error_page 404 /404.html;
重启nginx服务
nginx.exe -s reload
测试
至此,你往typora里边拉一个图片或者从网上直接copy一段带图片的文章到typora中,图片应该都直接存入指定文件夹中了,并且能展示出来。如果不能显示,那大概是你自作主张,改变了上边的配置,比如输出的url不是http开头的(也就是验证没通过),再或者你的nginx配置路径不对,图片存在了dn文件夹中,而不是dn的images文件夹中。再或者nginx没启动成功,反正任何一个错误都会导致看不到图片。
版权声明:本文标题:Typora 自定义命令自动上传图片-windows版 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728240439a1150622.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论