2024年5月25日星期六

Jekyll如何使用自动同步脚本推送到Neocities免费网站空间?

原文链接:https://www.chenweiliang.com/cwl-31737.html

💻教你用Jekyll自动同步脚本✨快速推送到Neocities空间🎉


🚀快速上手!用Jekyll自动同步脚本✨将你的网站推送到Neocities免费空间🏡,再也不用手动操作啦!详细步骤📋+实用技巧💡,让你轻松搞定网站发布🌐。点击查看完整教程🔍,马上体验便捷操作!🎉


使用脚本来同步Jekyll生成的静态网站到Neocities的基本思路如下:


搭建Jekyll网站首先,你需要构建你的Jekyll网站。


  • 运行jekyll build命令,会在_site/目录下生成静态文件。

使用Neocities CLI:安装Neocities的命令行工具,这是一个Ruby gem


  • 可以通过运行以下命令来安装:

gem install neocities

  • 使用批处理脚本自动同步方式,可以将本地的静态网站目录同步推送到Neocities。

如何解决ERROR: Could not find a valid gem ‘neocities’?


假如运行了命令:


gem install neocities

出现以下错误:



ERROR: Could not find a valid gem ‘neocities-jekyll’ (>= 0), here is why:
     Unable to download data from https :// gems. ruby-china .com/ – SocketError: Failed to open TCP connection to gems.ruby-china.com:443 (getaddrinfo: 不知道这样的主机。 ) (https://gems.ruby-china.com/specs.4.8.gz)



出现该错误的原因是你使用的 RubyGems 源 https :// gems. ruby-china .com/ 无法连接。


这可能是由于以下几个原因:


  1. 网络问题: 你可能没有连接到互联网,或者你的互联网连接不稳定。

  2. RubyGems 源问题: RubyGems 源可能出现故障或在维护。

  3. 防火墙问题: 你的防火墙可能阻止了 RubyGems 连接到源。

以下是一些解决此问题的方案:


1. 检查网络连接


首先,请确保你已连接到互联网并可以访问其他网站。你可以打开网页浏览器并访问一些网站,例如 https://www.chenweiliang.com/https://www.etufo.org/,以测试你的连接。


2. 更改 RubyGems 源


如果你的网络连接如常,可以尝试更改 RubyGems 源。


你可以使用以下命令将 RubyGems 源更改为官方源:


gem source -a https://rubygems.org/

3. 然后,再次尝试安装 Neocities 插件:


gem install neocities

Jekyll如何使用自动同步脚本推送到Neocities免费网站空间?


Jekyll如何使用自动同步脚本推送到Neocities免费网站空间?


编写同步脚本:由于neocities push不会删除已存在的文件,你需要编写一个脚本来同步文件。


这个脚本可以比较本地 _site/目录和Neocities上的文件,删除Neocities上那些在本地已经不存在的文件。


下面是一个简单的 Windows 批处理脚本自动同步文件,展示了如何执行上述步骤:


@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

REM 设置Neocities API密钥环境变量
set NEOCITIES_API_KEY=%NEOCITIES_API_KEY%

REM 检查API密钥是否已经设置
IF "!NEOCITIES_API_KEY!" == "" (
echo Neocities API key is not set in the environment variables.
goto error
)

REM 定义本地静态网站目录
set LOCAL_SITE_DIR=d:\Jekyll\site1\_site

REM 删除不在目录中的站点文件(小心!)
neocities push --prune "%LOCAL_SITE_DIR%"

:sync
REM 同步本地静态网站到Neocities
echo Syncing local site to Neocities...
neocities push "%LOCAL_SITE_DIR%"

echo Sync complete.
goto end

:error
echo There were errors during the script execution.

ENDLOCAL

REM 定义本地静态网站目录
set LOCAL_SITE_DIR=d:\Jekyll\site1\_site


  • 将以上脚本里的 d:\Jekyll\site1 修改为你的文件夹名称。

使用说明:


  1. 将此脚本保存为 .bat 文件,例如 sync_to_neocities.bat

  2. 将API密钥设置为系统环境变量 NEOCITIES_API_KEY,然后在脚本中引用它(可从 Neocities 账户设置中找到你的 API 密钥)。

  3. 确保Neocities CLI工具已经安装,并且 neocities 命令可以在命令行中正常使用。

  4. 打开命令提示符(cmd)或PowerShell窗口。

  5. 导航到脚本所在的目录。

  6. 运行脚本:sync_to_neocities.bat

如何设置Neocities API密钥环境变量?


  1. 打开Windows的“控制面板”。

  2. 单击“系统和安全”。

  3. 在“系统和安全”下,单击“系统”。

  4. 在“系统面板”中,单击“高级系统设置”。

  5. 在系统属性对话框中,单击“环境变量”按钮。

  6. 在环境变量对话框中,单击新建、编辑或删除按钮以添加、编辑或删除系统或用户变量。

  7. 在“系统变量”中新建一个“NEOCITIES_API_KEY”变量,并将变量值设置为你的API密钥。

如何运行脚本?


打开命令提示符(cmd)。


导航到脚本所在的目录,例如:


cd /d d:\Jekyll\site1

运行脚本:


sync_to_neocities.bat

Neocities上传命令说明


Neocities Push


|\—/|
| o_O | Neocities
\_^_/


Push – 递归地将本地目录上传到你的 Neocities 站点


例子:


  • $ neocities push 递归上传当前目录。

  • $ neocities push -e node_modules -e Secret.txt 从推送中排除某些文件

  • $ neocities Push --no-gitignore不要使用 .gitignore 来排除文件

  • $ neocities Push --dry-run只需显示要上传的内容

  • $ neocities Push --prune 删除不在目录中的站点文件(小心!)



欢迎转载《Jekyll如何使用自动同步脚本推送到Neocities免费网站空间?

欢迎分享本文链接:https://www.chenweiliang.com/cwl-31737.html


网站地址:https://www.chenweiliang.com/



欲获取更多资讯内幕和秘技,欢迎进入Telegram频道:https://www.chenweiliang.com/go/tgchannel

没有评论:

发表评论