博客

  • LeePoet实操快速上手:Hexo静态博客搭建全攻略

    LeePoet实操快速上手:Hexo静态博客搭建全攻略

    HEXO是一个基于Node.js的快速、简洁且高效的博客框架。它使用Markdown(或其他渲染引擎)解析文章,在几秒内即可利用靓丽的主题生成静态网页,非常适合搭建个人博客网站。超快速度,Node.js 所带来的超快生成速度。 上百个页面在几秒内完成渲染。Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 Octopress 的大多数插件。只需一条指令即可部署到 GitHub Pages, Heroku 或其他平台。强大的 API 带来无限的可能。 支持数种模板引擎(EJS,Pug,Nunjucks等)。 可以与现有的NPM包 (Babel, PostCSS, Less/Sass 等) 轻松地集成。

    安装 Hexo 相当简单,只需要先安装下列应用程序即可:

    • Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)
    • Git

    如果您的电脑中已经安装上述必备程序,那么恭喜您! 你可以直接前往 安装 Hexo 步骤。

    如果您的电脑中尚未安装所需要的程序,请根据以下安装指示完成安装。

    • Windows:下载并安装 git
    • Mac:使用 Homebrew, MacPorts 或者下载 安装程序
    • Linux (Ubuntu, Debian):sudo apt-get install git-core
    • Linux (Fedora, Red Hat, CentOS):sudo yum install git-core

    Mac 用户

    如果在编译时可能会遇到问题。 请先到 App Store 安装 Xcode。 Xcode 完成后,启动并进入 Preferences -> Download -> Command Line Tools -> Install 安装命令行工具。

    Node.js 为大多数平台提供了官方的 安装程序

    其它的安装方法:

    • Windows:通过 nvs(推荐)或者 nvm 安装。
    • Mac:使用 HomebrewMacPorts 安装。
    • Linux(DEB/RPM-based):从 NodeSource 安装。
    • 其它:使用相应的软件包管理器进行安装。 可以参考由 Node.js 提供的 指导

    对于 Mac 和 Linux 同样建议使用 nvs 或者 nvm,以避免可能会出现的权限问题。

    Windows

    使用 Node.js 官方安装程序时,请确保勾选 Add to PATH 选项(默认已勾选)

    Mac / Linux

    如果在尝试安装 Hexo 的过程中出现 EACCES 权限错误,请遵循 由 npmjs 发布的指导 修复该问题。

    Linux

    如果您使用 Snap 来安装 Node.js,在 初始化 博客时您可能需要手动在目标文件夹中执行 npm install

    安装 Hexo

    我现在是用WINDOWS安装,所有必备的应用程序安装完成后,即可使用 npm 安装 Hexo。

    $ npm install -g hexo-cli
    

    还是使用用管理员身份运行,这条命令随便在哪个盘运行都无所谓。这相当于是HEXO的脚手架,只要安装了这个框架之后,后续安装HEXO随便在哪个盘使用npm install hexo安装,安装几个,都是独立的HEXO环境。

    HEXO的脚手架安装成功

    进阶安装和使用

    对于熟悉 npm 的进阶用户,可以仅局部安装 hexo 包。

    $ npm install hexo
    

    比如我现在要在E盘的WEB文件夹里安装一个HEXO:

    安装完后就有HEXO的文件了。

    验证安装

    hexo -v
    

    初始化博客项目

    创建并初始化项目

    hexo init my-blog  # 创建名为my-blog的博客项目
    cd my-blog
    npm install        # 安装项目依赖
    

    遇到了个问题,应该是我的Git没有配置环境变量,下面我配置一下

    打开控制面板 → 系统与安全 → 系统 → 高级系统设置

    点击”环境变量”,在系统变量中找到Path变量

    添加Git安装路径,如:E:\Program Files\Git\cmd

    重启命令行验证配置

    cd到leepoetnote并使用npm install安装依赖,注:以后使用HEXO管理leepoetnote时,都要先cd到这个文件夹之后才能执行以下的操作。

    项目结构解析

    初始化后的项目包含以下主要文件和文件夹:

    • _config.yml:站点配置文件,包含博客的基本设置
    • package.json:应用程序信息和依赖配置
    • scaffolds/:模板文件夹,用于新建文章的模板
    • source/:资源文件夹,存放文章(_posts目录)和其他资源
    • themes/:主题文件夹,存放博客主题文件9

    常用命令

    基础命令

    hexo new "文章标题"    # 创建新文章
    hexo clean            # 清理缓存文件
    hexo generate         # 生成静态文件(缩写:hexo g)
    hexo server           # 启动本地服务器(缩写:hexo s)
    hexo deploy           # 部署到远程平台(缩写:hexo d)
    

    组合命令

    hexo clean && hexo g && hexo s  # 清理、生成并启动本地预览
    hexo clean && hexo g && hexo d  # 清理、生成并部署
    
    .
    ├── _config.yml       # 站点的核心配置文件,网站标题、描述等都在这里设置
    ├── package.json      # 项目信息和依赖列表 
    ├── scaffolds         # 模板文件夹,新建文章时的默认格式 
    ├── source            # 源文件存放目录,你的文章就在这里!
    │   └── _posts        # 你的所有 Markdown 博客文章都放在这个文件夹内 
    ├── themes            # 主题文件夹,所有安装的主题都放在这里 
    └── public            # 执行生成命令后,Hexo 创建的静态网站文件会放在这里(此目录初始可能不存在)
    

    在这些文件和文件夹中,你最需要关注的是:

    • _config.yml:博客的“大脑”,大部分设置在这里修改。
    • source/_posts/:你写的文章(.md文件)都存放在这里,注:方便文章管理,可以自己在这个文件夹里手动新建对应文章的分类。如下图所示,以后通过HEXO G去生成文章。这些是不会被识别的,只是方便我们自己管理文章的一个小技巧。

    source/:这个文件夹下除了有_posts文件夹即:文章md文件之外之外,在source的目录下还可以放图片,通过/image/***.jpg即可以直接调用,同样是方便管理的小技巧。

    我们一般备份只需要拿以下这些文件即可:

    Tip:如果有需要也可以加上package.json以及db.json,其实也可有可无

    本地预览

    启动本地服务器后,在浏览器中访问 http://localhost:4000即可查看博客效果。

    为HEXO安装一个主题:

    先找到主题对应的开源仓库通过介绍安装

    使用 NPM 包进行安装如:

    使用 NPM 包进行安装 npm i hexo-theme-solitude

    应用主题 theme: solitude

    这里已经多出了一个_config.landscape.yml文件,基本上这样就可以了,有些主题是需要自己手动把主题配置改名为 _config.主题名.yml的之后再手动移到根目录的。具体还得看主题作者的介绍。下面就是修改HEXO的核心配置文件 _config.yml让主题生效。

    保存即可。然后通过hexo clean && hexo g && hexo s重新启动服务。

    其它的设置全在_config.landscape.yml这个主题配置文件里修改。


    其它配置

    本地搜索

    本地搜索是实现起来最快捷的方案。

    安装插件

    在Hexo博客的根目录下打开终端,执行以下命令安装核心插件。常用的插件有 hexo-generator-searchhexo-generator-searchdb

    npm install hexo-generator-searchdb --save
    
    1. 配置站点文件 打开博客根目录下的 _config.yml文件,在末尾添加以下配置(具体参数可根据插件文档和需求调整): search: path: search.xml # 生成的索引文件路径和名称 field: post # 搜索范围:post(文章)、page(页面)、all(全部) content: true # 是否包含文章全文,建议true以提高搜索命中率 format: html # 内容格式
    2. 启用主题的搜索功能 打开你正在使用的主题的配置文件(如 _config.[theme-name].yml),找到本地搜索相关的选项并启用它。例如,在流行的Next主题中: local_search: enable: true 对于Butterfly主题,配置类似。完成以上步骤后,执行 hexo clean && hexo g重新生成博客,然后启动本地服务器 hexo s预览,通常可以在页面右上角或侧边栏找到搜索图标。

    Hexo 有三种默认布局:postpage 和 draft,它们分别对应不同的路径,而自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹。

    布局路径
    postsource/_posts
    pagesource
    draftsource/_drafts

    如果你不想你的文章被处理,你可以将 Front-Matter 中的layout: 设为 false 。

    模版(Scaffold)

    在新建文章时,Hexo 会根据 scaffolds 文件夹内相对应的文件来建立文件,例如:

    $ hexo new photo "My Gallery"

    在执行这行指令时,Hexo 会尝试在 scaffolds 文件夹中寻找 photo.md,并根据其内容建立文章,以下是您可以在模版中使用的变量:

    变量描述
    layout布局
    title标题
    date文件建立日期

     Front-matter

    Front-matter是文件最上方以 --- 分隔的区域,用于指定个别文件的变量,举例来说:

    ---
    title: Hello World
    date: 2013/7/13 20:46:25
    ---

    注意:一般Front-matter使用的yaml语法,yaml语法需要注意空格,如title: Hello World冒号需要有一个空格,当然除YAML 外,你也可以使用 JSON 来编写 Front-matter。

    以下是预先定义的参数,您可在模板中使用这些参数值并加以利用。

    参数描述默认值
    layout布局
    title标题
    date建立日期文件建立日
    updated更新日期文件更新日期
    comments开启文章的评论功能true
    tags标签(不适用于分页)
    categories分类(不适用于分页)
    permalink覆盖文章网址

    分类和标签

    只有文章支持分类和标签,您可以在 Front-matter 中设置。在其他系统中,分类和标签听起来很接近,但是在 Hexo 中两者有着明显的差别:分类具有顺序性和层次性而标签没有顺序和层次

    categories:
    - Diary
    tags:
    - PS3
    - Games

    WordPress支持对一篇文章设置多个分类,而且这些分类可以是同级的,也可以是父子分类。但是Hexo不支持指定多个同级分类。下面的指定方法:
    categories:

    • Diary
    • Life

    会使分类Life成为Diary的子分类,而不是并列分类。因此,有必要为您的文章选择尽可能准确的分类.

    文章摘要

    设置文章摘要,我们只需在想显示为摘要的内容之后添 <!-- more --> 即可。像下面这样:

    ---
    title: hello hexo markdown
    date: 2016-11-16 18:11:25
    tags:
    - hello
    - hexo
    - markdown
    ---

    我是短小精悍的文章摘要(๑•̀ㅂ•́)و✧

    <!-- more -->

    紧接着文章摘要的正文内容

    这样,<!-- more --> 之前、文档配置参数之后中的内容便会被渲染为站点中的文章摘要。

    注意!文章摘要在文章详情页是正文中最前面的内容。

    资源引用

    写个博客,有时候会想添加个图片或者其他形式的资源等等。有以下两种方式进行解决:

    1. 使用绝对路径引用资源,在 Web 世界中就是资源的 URL
    2. 使用相对路径引用资源

    对于使用相对路径引用资源的,我们可以使用 Hexo 提供的资源文件夹功能。

    使用文本编辑器打开站点根目录下的 _ config.yml 文件,将 post_asset_folder 值设置为 true

    post_asset_folder: true

    修改之后会开启 Hexo 的文章资源文件管理功能。Hexo 将会在我们每一次通过 hexo new <title> 命令创建新文章时自动创建一个同名文件夹,于是我们便可以将文章所引用的相关资源放到这个同名文件夹下,然后通过相对路径引用。例如,你把一个 example.jpg 图片放在了这个同名文件夹中,使用相对路径的常规 markdown 语法 ![](./example.jpg)即可访问 。


    其它

    Linux 用户可以将 Hexo 所在的目录下的 node_modules 添加到环境变量之中即可直接使用 hexo <command>

    echo 'PATH="$PATH:./node_modules/.bin"' >> ~/.profile

  • 告别网络限制!利用Cloudflare免费服务,在国内稳定调用Gemini API

    告别网络限制!利用Cloudflare免费服务,在国内稳定调用Gemini API

    兄弟们,是不是被Gemini API那堵“墙”给整烦了?想用个最新的AI模型,还得各种折腾网络环境,代码动不动就给你报个400、403?别慌,今天李哥就带你玩个花的——直接白嫖Cloudflare的全球网络,给Gemini API搭个免费、高速还稳得一匹的“国内专线”!咱不整那些虚头巴脑的理论,就讲究一个实战落地。核心思路非常简单:利用 Cloudflare Workers​ 这个“神器”做个反向代理,让它帮你跑腿去访问Gemini,你再从国内直接调用这个代理地址就完事了。

    一、核心原理:反向代理(Reverse Proxy)

    简单来说,就是把 Cloudflare 当作一个“中转站”。

    我们遇到的问题是:我们的设备(电脑、服务器)无法直接访问 Google Gemini 的 API 服务器地址 generativelanguage.googleapis.com

    Cloudflare 的作用就是:

    1. 你访问 Cloudflare:你将本来要发送给 Gemini API 的请求,发送到一个由你控制的、Cloudflare 提供的域名上(例如 xxx.yourname.workers.dev)。

    2. Cloudflare 访问 Gemini:Cloudflare 的服务器遍布全球,它会从一个可以正常访问 Google 的海外节点,去请求真正的 Gemini API 地址 generativelanguage.googleapis.com

    3. Cloudflare 返回结果:Cloudflare 拿到 Gemini API 的返回结果后,再通过那个你可以访问的域名,原封不动地返回给你。

    在这个过程中,Cloudflare 就像一个中间人,帮你完成了“出海”访问的步骤。你的设备始终只和 Cloudflare 通信,从而绕过了直接访问的限制。

    Image

    二、实现方法:Cloudflare Workers (最常用、最灵活)

    Cloudflare Workers 是一个无服务器(Serverless)计算平台,允许你在 Cloudflare 的全球网络边缘上运行 JavaScript 代码。用它来做反向代理非常完美。

    准备工作:

    1. 一个 Cloudflare 账户(免费版即可)。

    2. 一个 Cloudflaret 托管的域名。

    3. 一个 Google Gemini API 密钥。


    三、操作步骤:

    1. 登录Cloudflare,点击左侧菜单Workers和Pages,点击创建应用程序

    https://dash.cloudflare.com/

    Image

    2. 选择从Hello World!开始,点击开始使用
    Image

    3. 给worker起个自己中意的名称,这里叫gemini-proxy;然后点击下方部署按钮。
    Image

    点击访问,打开页面就能看到Hello World了,说明部署成功。


    Image

     4点击编辑代码按钮。

    Image

    5. 将下列代码覆盖贴入左侧代码栏中,点击部署

    exportdefault {
    asyncfetch(request, env) {
        // 1. 解析原始 URL
        const url = newURL(request.url);

        // 2. 仅替换主机名(协议、路径、查询都保留)
        url.hostname = 'generativelanguage.googleapis.com';
        url.port   = '';          // 443 默认
        url.protocol = 'https:';  // 向外走 HTTPS

        // 3. 构造新请求:把 method、headers、body 原样带过去
        const newReq = newRequest(url.toString(), {
          method  : request.method,
          headers : request.headers,
          body    : request.body
        });

        // 4. 发出去并直接把响应返回给浏览器
        returnfetch(newReq);
      }
    };

    Image

    因为被封了这个域名后缀,这时需要梯子去访问你的worker地址。


    接下来我们进一步设置,就是用自己的域名去访问。


    Image

    6. 开始DNS解析记录操作,依次点击主页>DNS记录>添加记录
    Image

    Tips:

    • 代理状态关闭(仅DNS)。

    • DNS可以添加多个IP,选用以下即可,也可网上自行查找可用IP。

    • 点击查看支持的区域:https://ai.google.dev/available_regions


    #IP属地不对,使用时会报错


    Connection failed!
    {
      "error": {
        "code"400,
        "message""User location is not supported for the API use.",
        "status""FAILED_PRECONDITION"
      }
    }



    #可用IP

    104.23.240.1      # 美西 151 ms
    104.16.123.1      # 美西 140 ms
    172.64.32.1       # 美西 135 ms


    这里名称填写gemini,并指向可用的IP


    Image

    7. 左侧菜单Workers路由,点击添加路由按钮

    • Image
    • 设置的域名和worker的路由关系,填写如下:

    • gemini.chinapmcc.com/*

    • gemini-proxy

    • Image
    •  

    8. 生成Google AI的API密钥,需要梯子。 Gemini Pro的api key获取地址:https://makersuite.google.com/app/apikey
    Image

    9. 验证并应用,配置时用到两个东西:API KEY、API 地址 经过上述配置,就可以使用Gemini了,下面通过两个应用例子验证,在其他应用中使用也是一样的方法。 

    官方Gemini API 调用地址https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent?key={key}
    将前面地址替换成 
    https://gemini.chinapmcc.com/v1beta/models/{model}:generateContent?key={key}

    • 沉浸式翻译 API配置 API KEY,API 地址贴入,点击测试服务,绿色勾代表成功

      Image

      打开外文网站时,点击沉浸式翻译图标,翻译服务选择设置好的Gemini API,点击翻译即可翻译网站。

      Image


    • Chatbox API配置 https://web.chatboxai.app/settings API KEY,API 地址贴入,点击Check,Connection successful!代表成功,点击右上ESC返回 General Settings中可设置中文语言
      Image

      OK~现在可以在chatbox中免费使用Gemeni了

      Image


    Previous Posts
    往期推荐
    💡你的免费建站好搭档(Cloudflare R2):零成本享受云储服务,全球加速访问文件库

     

     

  • CloudFlare优选Cname域名

    CloudFlare优选Cname域名

    小提示:
    公共 cname 可能会将搜索引擎蜘蛛路线解析到其他服务器来劫持蜘蛛,请使用信得过的 cname 地址。
    公共地址可能存在解析到第三方服务器的情况,请使用信得过的 cname 地址。
    公共 CNAME 域名可能存在被污染的情况,请隔段时间测试一下,及时更换掉被污染的域名。
    第三方反代 IP 也可能会导致域名被注册局禁用或被墙的情况,网站用户不建议使用反代 IP。
    CloudFlare 每隔一段时间会调整变更路由线路,因此请尽可能选择更新频率高的 cname 域名。

    [members_only]
    网站使用 CloudFlare 优选域名的教程https://www.baota.me/post-433.html

    地址名称协议版本维护周期备注说明
    *.cloudflare.182682.xyz4&615ip/15分钟泛域名解析可以解析到任意前缀,本站提供维护
    bestcf.top424HVPS789
    cdn.2020111.xyz415ip/10分钟网络收集
    cfip.cfcdn.vip46ip/1天网络收集
    cf.0sm.com4&6手动更新网络收集
    cf.090227.xyz4&6未知频率网络收集
    cf.zhetengsha.eu.org4未知频率网络收集
    cloudflare.9jy.cc4未知频率网络收集
    cf.zerone-cdn.pp.ua4未知频率网络收集
    cfip.1323123.xyz4未知频率网络收集
    cnamefuckxxs.yuchen.icu4未知频率网络收集
    cfip.xxxxxxxx.tk4未知频率OTC大佬提供维护
    cloudflare-ip.mofashi.ltd4未知频率网络收集
    115155.xyz4&618ip/1小时网络收集
    cname.xirancdn.us4&6未知频率网络收集
    f3058171cad.002404.xyz4&6未知频率网络收集
    speed.marisalnc.com41000ip/3分钟【推荐】ktff大佬提供维护
    8.889288.xyz4未知频率网络收集
    cdn.tzpro.xyz4未知频率网络收集
    cf.877771.xyz4未知频率网络收集
    xn--b6gac.eu.org4未知频率↗↘↗.eu.org
    freeyx.cloudflare88.eu.org41000ip/3分钟同speed.marisalnc.com

    原站链接:CloudFlare优选Cname域名 – 微测网

    [/members_only]

  • 代理环境下的DNS缓存清理指南,一键清理DNS缓存全攻略

    代理环境下的DNS缓存清理指南,一键清理DNS缓存全攻略

    在网络访问异常,例如网页无法打开、显示解析错误或IP地址变更后无法访问时,清理DNS缓存往往是立竿见影的解决方法。尤其是在使用代理软件时,DNS解析可能涉及本地系统、代理服务器乃至网络设备的多层缓存,及时清理能确保获取到最新的解析记录。

    ​为什么要清理DNS缓存?​

    • ​强制获取最新IP​​:当网站服务器IP变更时,清理缓存可避免因旧记录导致的访问失败。
    • ​更新代理配置​​:更改代理设置或DNS服务器后,清理缓存能确保新配置立即生效。
    • ​排除潜在干扰​​:定期清理有助于减少因DNS缓存污染或劫持带来的安全风险。

    ​各操作系统清理方法​

    Windows系统‌:

    • 以管理员身份打开命令提示符,输入 ipconfig /flushdns 并回车,显示“已成功刷新DNS解析缓存”即完成。‌‌
    • 若无效,可依次执行 netsh int ip resetnetsh winsock resetipconfig /releaseipconfig /renew 后重启电脑。‌‌
    1. macOS系统‌:
      • 打开终端,输入 sudo killall -HUP mDNSResponder 并输入密码(输入时无显示)。‌‌
      • 旧版本(如10.10)需使用 sudo discoveryutil mdnsflushcache 或 sudo dscacheutil -flushcache。‌‌
    2. Linux系统‌:
      • 根据服务类型执行命令:
        1. systemd-resolvedsudo systemd-resolve --flush-caches
        2. dnsmasqsudo systemctl restart dnsmasq
        3. nscdsudo systemctl restart nscd。‌‌
    3. Android手机‌:
      • 开启飞行模式10秒后关闭,强制刷新DNS。‌‌
      • 或通过开发者选项重启网络服务(需Root权限)。‌‌

    其他辅助措施

    • 更换DNS服务器‌:在网络设置中手动输入公共DNS(如Google DNS:8.8.8.8;Cloudflare DNS:1.1.1.1)。‌‌
    • 重启路由器/光猫‌:拔电等待1分钟后按“光猫→路由器→电脑”顺序重启。‌‌
    • 清理浏览器缓存‌:在浏览器设置中清除“缓存文件”和“Cookie”。‌‌

    注意事项

    • 操作需管理员权限,否则命令无效。‌‌
    • 路由器DNS缓存可通过管理界面“清除缓存”选项或直接重启设备清除。‌‌
    • 若问题持续,可能是ISP的DNS服务器故障,需联系运营商。‌‌

  • 251114 昨天整理插件一次致命的误操作,导致20天的网站数据灰飞烟灭

    251114 昨天整理插件一次致命的误操作,导致20天的网站数据灰飞烟灭

    目前已经回到了25.10.23的备份数据,到现在也差不多20天了。

    丢失了不少期间设置信息以及文章心情不免有些低落。

    本身这段时间有空也在做站点的优化和SEO优化搞的这些数据也都没了。同时没了的还有我写了几个HEXO的优化以及使用心得,设置各种合适自己使用的参数数据。

    找过运营商说我这种是直接给ROOT权限的VPS,像定时备份和快照的功能他们根本不支持,想想也是我这服务器才多少钱。

    现在给我的感觉就是插件别乱装,养成备份的习惯,有大的操作的时候最好是先备份。

    现在心很累,只能在以后的时间慢慢来补回来。

  • 告别全家桶:手把手教你纯净安装并自定义Microsoft Office​

    告别全家桶:手把手教你纯净安装并自定义Microsoft Office​

    对于追求效率和控制的用户来说,图形界面安装程序远非最佳选择。本文将深入探讨如何运用microsoft office Deployment Tool (ODT) 这一命令行利器,通过编辑XML配置文件,实现Office的大规模、可重复且高度定制化的部署。无论你是系统管理员还是技术爱好者,这都将是你管理Office安装的终极参考。

    一、下载并安装Office Deployment Tool(ODT)​​

    下载ODT​​​​:访问微软官方网站下载Office Deployment Tool。下载完成后,会得到一个自解压文件(如officedeploymenttoolxxxx.exe)。Office 部署工具 (ODT) 是一个命令行工具,可用于下载即点即用版本的 Office(例如 Microsoft 365 企业应用版)并将其部署到客户端计算机。下载完成之后会得到officedeploymenttoolxxxx.exe的文件

    先不要着急安装。在C盘创建个文件夹比如就叫offices,然后双击刚才下载的.exe文件,下面有个接受条款和协议的框框勾选上后继续,然后需要选择刚才创建的文件夹。确定后,看到弹出 Files extracted successfully表示下载工具准备就绪。

    ​安装ODT​​​​:在C盘或其他指定位置创建一个文件夹(如offices)。双击下载的自解压文件,勾选接受条款和协议,然后选择刚才创建的文件夹作为解压目录。解压成功后,文件夹内会有setup.exe和示例XML文件(如configuration-Office365-x64.xml)。导出Config.xml的配置文件之后将配置文件复制到刚才新建的offices的文件夹中。

    1. 系统是64位的,打开configuration-Office365-x64.xml
    2. 系统是32位的,打开configuration-Office365-x86.xml

    二、生成自定义配置文件​

    因为默认是安装的365的商业英文版和Visio的英文版的全家桶。这里就需要官方的自定义配置文件来定制所需要的组件 Microsoft 365 Apps admin center (office.com)在这里选择创建新的配置 ​

    访问配置页面:打开微软提供的Office配置页面(如https://config.office.com/deploymentsettings)。

    选择Office版本:根据需求选择Office的版本(如Office LTSC Professional Plus 2024 – Version License)、体系结构(x64或x86)、应用程序、语言包等。

    若只安装Office的话就在 “产品*” 栏选 “Office LTSC Professional Plus 2024-Volume License” 这一项就行,其它不用管。然后继续向下 “更新频道和版本” 默认就行。再往下就是“应用” 这个也是按需选择。

    设置安装选项

    【语言】选简中,然后下一个。

    【安装】选Office 内容分发网络

    【更新和升级】**按需选择,如果之前有安装过MSI版本的,默认都选上。

    剩下的【授权和激活】【常规】【应用程序首选项】均默认即可,最后点完成之后,再点右侧的导出按钮,将配置导出

    导出配置文件:设置完成后,点击页面右上角的“导出”按钮,将配置文件导出为XML格式(如config.xml),并保存到ODT的安装目录下。

    三、使用ODT进行定制化安装​​

    准备安装环境:将导出的XML配置文件复制到ODT的安装目录下,与setup.exe文件放在一起。导出Config.xml之后,将这个配置文件复制到刚才第一步新建的offices的文件夹中。可以删去configuration-Office365-xxx.xml的文件(我们导出的配置文件就是代替这个的),此时文件夹应该只有这两个文件:setup.exeConfig.xml

    执行安装命令:

    以管理员身份运行命令提示符(CMD)或Windows PowerShell。

    使用cd命令切换到ODT的安装目录(如cd C:\offices)。(例如在E盘根目录下新建的Offices文件夹,需要先后执行 cd E:\officesE:两个命令;如果是在C盘创建的文件夹,则不需要第二个命令)。

    然后再输入以下命令并回车执行(假设配置文件名为Config.xml):

    下载命令:setup /download Config.xml

    下载完成之后执行安装命令:setup /configure Config.xml

    等待安装程序自动下载并安装Office,安装过程中命令窗口会显示进度,请勿关闭。

    完成安装:安装完成后,命令提示符窗口会显示相应提示。关闭窗口等安装完毕之后,先不要着急打开office。

    激活KMS命令激活Office2016方法​

    打开Windows PowerShell,先cd..到C盘,再cd到Office2016安装目录下:
    ①32位系统装32位office或者64位系统装64位office命令:
    cd “C:\Program Files\Microsoft Office\Office16”
    ②64位系统装32位office命令:
    cd “C:\Program Files (x86)\Microsoft Office\Office16”
    执行命令:
    cscript ospp.vbs /inpkey:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99
    【Office Professional Plus 2016:XQNVK-8JYDB-WJ9W3-YJ8YR-WFG99】
    【Office Standard 2016:JNRGM-WHDWX-FJJG3-K47QV-DRTFM】

    执行命令,设置kms服务器;
    cscript ospp.vbs /sethst:kms.03k.org
    执行命令,激活office2016;
    cscript ospp.vbs /act
    如果要查询office2016激活状态,执行命令:
    cscript ospp.vbs /dstatus

    备选的KMS
    kms.03k.org
    kms.chinancce.com
    kms.luody.info
    kms.lotro.cc
    kms.luochenzhimu.com
    kms8.MSGuides.com
    kms9.MSGuides.com


  • Stable Diffusion提示词全攻略:从基础到精通的完整指南

    Stable Diffusion提示词全攻略:从基础到精通的完整指南

    Stable Diffusion作为当前最受欢迎的AI绘画工具之一,其核心秘密就在于“提示词”的运用。本文基于详细的思维导图,为您全面解析SD提示词的使用技巧,帮助您精准实现创作意图。提示词是用户与Stable Diffusion模型之间起着“契约”的作用。通过精确的描述与灵活的控制方式,它们能够将抽象的概念转化为具体的图像;同时还能在保证生成结果多样性的同时,确保这些结果的可控性。

    1. 提示词基础原理:与AI沟通的“语法规则”​

    这部分是地基,理解了原理才能避免低级错误。

    • ​逗号分隔与换行​​:SD的模型无法像人类一样理解自然语言的句子结构。它依赖于分隔符(逗号)来切分不同的“概念单元”。换行加逗号是为了编写时的可读性,最终对模型来说,和写在一行没有区别。
    • ​权重与顺序​​:这是核心原理。排在越前面的提示词,AI在生成初期会给予越多的“关注度”,对画面整体构图和主体的影响越大。因此,​​最重要的元素(如主体、画风)应放在前面​​。所谓“每个词默认权重为1”,是一个便于理解权重调整功能的基准概念。
    • ​75个单词以内​​:这是一个经验值。提示词并非越多越好。过多的提示词会相互干扰,导致AI无法聚焦,可能生成混乱的图像。精益求精、突出重点比堆砌关键词更有效。

    ​2. 提示词的各种符号:微调控制的“秘密武器”​

    符号系统是SD提示词的精髓,让你从“描述内容”升级为“导演画面”。

    • ​小括号 ( )和大括号 { }​:都是增加权重。(keyword)或 {keyword}相当于 (keyword:1.1)。多层括号可以叠加,如 ((keyword))≈ 1.21倍。大括号增加幅度更小,用于精细调整。​​直接指定权重 (keyword:1.5)是最高效、最常用的方式​​,例如 (masterpiece:1.4)
    • ​中括号 [ ]​:用于降低权重,例如让某个过于突出的背景元素淡化一些。在实战中,​​更常见的用法是将不希望出现的元素放在负面提示词中​​,而非降低正面提示词的权重。
    • ​核心价值​​:权重系统允许你强调核心主体、平衡画面元素。例如,生成一个戴红帽子的女孩,如果帽子不明显,可以改为 (red hat:1.3)

    ​3. 进阶语法:时间控制的“高级魔法”​

    这是更高阶的技巧,能实现一些非常有趣的效果。

    • [提示词:0.6]​:在总采样步数的前60%之后,才开始考虑这个提示词。适合用于添加后期细节,比如在主体轮廓确定后,再添加“微笑”表情,避免影响初始构图。
    • [提示词:0.2]​:只在采样前20%起作用,之后被忽略。可用于设定初始构图或风格,然后让AI自由发挥。
    • [A:B:0.7]​:前70%采样步数使用提示词A,后30%切换至B。这是实现​​形态转变或风格融合​​的利器,例如 [cat:dog:0.5]可能生成一个猫头狗身的生物。
    • [A|B]​:交替采样,在每个采样步中随机选择A或B。通常用于创造一种​​混合风格​​的效果,而不是生成一个清晰的中间态。

    ​4. 提示词标准格式:专业工作流的“结构化思维”​

    这是将零散关键词组织成高效指令的黄金法则,遵循“从整体到局部”的逻辑。

    1. ​画质提升词+画风​​:首先定调。告诉AI你想要一张​​什么质量、什么风格​​的画。例如:masterpiece, best quality, 4k, detailed, anime style。这为整个生成过程设定了基准。
    2. ​画面主体描述​​:这是核心。详细描述人物、物体及其特征(年龄、发型、服饰、动作、表情等)。越具体,结果越可控。例如:1girl, brown hair, long hair, wearing a white dress, smiling, sitting
    3. ​环境、场景、灯光、构图​​:设定舞台。描述背景、光线类型(自然光、电影光)、视角(仰视、特写)等。例如:in a garden, cinematic lighting, close-up shot
    4. ​Lora模型调用​​:如果你使用了特定风格的Lora模型,需要在这里用语法调用,例如 <lora:gakuen_1:0.8>

    ​5. 常用提示词库:你的“词汇弹药库”​

    图中列举了负面词的范例,这非常重要。

    • ​负面提示词​​:其重要性不亚于正面提示词。它是你告诉AI“​​不要什么​​”的直接方式。图中列出的负面词库非常经典,涵盖了低质量、解剖错误、丑陋效果等常见问题。直接使用这个词库就能极大提升出图质量。
    • ​风格词举例​​:如 Cyberpunk(赛博朋克)、Chinese ink style(水墨风)等,为你提供了探索不同艺术风格的方向。

    ​6. 必备提示词插件:效率提升的“加速器”​

    工欲善其事,必先利其器。

    • ​One Button Prompt​​:适合快速启动或寻找灵感,一键生成成套的优质提示词。
    • ​sd-dynamic-prompts​​:支持动态语法,如 __cat|dog|bird__会分别生成三种动物,非常适合批量创作和测试。
    • ​prompt-all-in-one​​:集大成者,提供提示词管理、翻译、权重可视化调整等功能,极大提升编写和调试效率。
  • Linux 流行发行版家族全览:从新手到专家的选系指南

    Linux 流行发行版家族全览:从新手到专家的选系指南

    选择Linux发行版不仅是选一个系统,更是选择一种哲学和生态。就像选择手机系统有 iOS 和 Android,Linux 世界也分不同“家族”。本文将主流发行版归类导读,帮你找到最适合自己的那一款,本文深度剖析 Debian 的稳健、RedHat 的企业级基因等,为您提供一个清晰的决策框架,匹配您的核心需求。


    I. Debian系列产品的代表产品: 稳定与自由的基础
    Debian: Debian系列的Linux发行版以其稳定性、强大的软件包管理系统(如APT/dpkg),以及对自由软件原则的严格遵守而闻名。许多流行的Linux发行版都是以Debian为基础开发的。对于日常桌面使用来说,尤其是对于初学者而言,Ubuntu和Linux Mint提供了更加友好的用户界面以及更好的硬件支持,从而大大降低了使用难度。
    Ubuntu Ubuntu 是一款基于 ​​Debian​​ 的 ​​开源 Linux 发行版​​,由 Canonical 公司支持和维护。它以用户友好、稳定安全著称,非常适合桌面、服务器和云计算等多种场景。桌面环境​默认采用 ​​GNOME​​。软件管理​​使用 ​​APT​​ 包管理工具和 ​​.deb​​ 软件包格式,通过 apt-get等命令或软件中心安装管理软件Debian系列的Linux发行版以其稳定性、强大的软件包管理系统(如APT/dpkg),以及对自由软件原则的严格遵守而闻名。许多流行的Linux发行版都是以Debian为基础开发的。对于日常桌面使用来说,尤其是对于初学者而言,Ubuntu和Linux Mint提供了更加友好的用户界面和更好的硬件支持,从而大大降低了使用难度。.
    Linux Mint 这是一个基于Ubuntu和Debian开发的免费开源操作系统。它以其优雅的用户界面、出色的易用性以及强大的功能而闻名。. 作为全球最受欢迎的Linux发行版之一,Linux Mint深受用户的喜爱。它拥有与Windows相似的传统桌面布局,同时具备出色的多媒体处理能力,非常适合初学者使用。
    Deepin 它基于Debian系统开发,是中国最受欢迎的Linux发行版之一。该发行版以其设计精美、使用便捷的Deepin桌面环境而闻名——该桌面环境能够提供优雅的视觉效果及流畅的用户体验,其操作方式与macOS非常相似。系统预装了多种针对中文用户设计的应用程序,并能很好地适配中文用户及其使用的硬件设备,因此用户在使用该系统时可以享受到出色的体验。.
    目标用户群体: Linux初学者、日常使用桌面操作系统的用户、注重系统稳定性的开发人员,以及服务器管理员。


    II. RedHat系列产品:企业级产品的典范

    RHEL: Red Hat Enterprise Linux系列是企业级Linux发行版的标杆,以其出色的稳定性、强大的安全功能以及长期的技术支持而闻名。Fedora是一个由社区支持的免费发行版,它作为RHEL的上游测试平台,致力于新技术的应用与创新。CentOS Stream则位于Fedora与RHEL之间,是RHEL的上游开发版本,采用滚动更新机制进行维护。AlmaLinux是一个由社区推动开发的免费发行版,其二进制文件与RHEL完全兼容,因此成为CentOS Linux的替代选择之一。
    Fedora: 在社区的支持下,Fedora成为了RHEL的上游测试平台。它致力于引入最新的技术及创新成果,因此非常适合开发人员和技术爱好者来体验各种前沿功能。.
    AlmaLinux/Rocky Linux: 这些发行版位于 Fedora 和 RHEL 之间,属于 RHEL 的上游开发版本,采用滚动更新机制。它们非常适合那些希望紧跟 RHEL 的发展动态或为其进步做出贡献的用户。AlmaLinux 是一款开源、免费的、由社区推动开发的企业级 Linux 发行版,其目标是成为 CentOS 的稳定替代品。它最初由 CloudLinux 开发,曾获得每年 100 万美元的资助;如今它由一个非营利组织提供支持,因此能够获得长期维护服务——通常每个主要版本的可用安全更新及维护支持时长为 10 年。这些发行版的诞生是为了填补 CentOS 转向 Stream 版本后留下的市场空白。它们与 RHEL 在二进制层面完全兼容,是 CentOS 稳定版本的理想替代品,为用户提供了免费且由社区推动开发的企业级 Linux 解决方案。.

  • 实战指南:使用 V2Ray 搭建 SOCKS5 代理中转服务器​

    实战指南:使用 V2Ray 搭建 SOCKS5 代理中转服务器​

    在某些网络场景下,我们可能需要通过一台中转服务器来访问另一个代理服务器。本文将详细介绍如何在一台 Linux 中转服务器上安装和配置 V2Ray,将其设置为一个 SOCKS5 代理中转节点,从而将流量转发至最终的目标代理服务器(如 leepoet.com:1088

    步骤 1:安装 V2Ray​

    通过官方脚本在中转服务器上安装 V2Ray。

    执行安装命令:​​

    bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

    确认安装路径:​​ 安装完成后,V2Ray 的主配置文件通常位于 /usr/local/etc/v2ray/config.json。

    步骤 2:配置 V2Ray 流量转发​

    我们需要编辑配置文件,定义 V2Ray 的“入站”连接(接收客户端的请求)和“出站”连接(将请求转发至目标代理)。

    编辑配置文件:​

    nano /usr/local/etc/v2ray/config.json

    写入以下配置内容:​

    {
      "inbounds": [{
        "port": 8899, // 中转服务器监听的端口号
        "protocol": "socks", // 使用 SOCKS5 协议
        "settings": {
          "auth": "noauth", // 无需认证(生产环境建议设置认证)
          "udp": false      // 不启用 UDP 转发
        }
      }],
      "outbounds": [{
        "protocol": "socks", // 将流量转发至另一个 SOCKS5 代理
        "settings": {
          "servers": [{
            "address": "leepoet.com", // 目标代理服务器地址
            "port": 1088           // 目标代理服务器端口
          }]
        }
      }]
    }

    提示:​​ 请务必将 leepoet.com和 1088替换为你实际要连接的目标代理服务器的地址和端口。

    步骤 3:启动并设置 V2Ray 服务​

    配置完成后,启动 V2Ray 服务并设置开机自启。

    启动服务:​

    systemctl start v2ray

    设置开机自启:​

    systemctl enable v2ray

    ​检查服务状态:​

    systemctl status v2ray

    如果状态显示为 active (running),则表示服务已成功启动。

    步骤 4:客户端使用​

    现在,你的中转服务器已经搭建完成。在任何支持 SOCKS5 代理的客户端(如浏览器、电报等)中,进行如下设置:


    • ​服务器/地址:​​ 你的中转服务器的 IP 地址
    • •​​端口:​​ 8899(与配置中的 inbounds.port一致)
    • •​​协议:​​ SOCKS5
    • •​​认证:​​ 无

    配置完成后,客户端的流量就会通过中转服务器转发至目标代理服务器了。通过以上四个步骤,我们成功利用 V2Ray 实现了代理流量的中转。这种方法在需要绕过特定网络限制或优化连接路径时非常有用。


    极简版

    ​目标:​​ 在服务器上快速搭建 SOCKS5 中转,转发流量至另一代理。
    安装​

    bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

    配置​

    编辑 /usr/local/etc/v2ray/config.json,替换为以下内容(修改 address和 port为你自己的目标代理):

    {
      "inbounds": [{
        "port": 8899,
        "protocol": "socks",
        "settings": {"auth": "noauth", "udp": false}
      }],
      "outbounds": [{
        "protocol": "socks",
        "settings": {
          "servers": [{
            "address": "leepoet.com", // 改成你的目标代理IP/域名
            "port": 1088           // 改成你的目标代理端口
          }]
        }
      }]
    }

    启动​

    systemctl start v2ray
    systemctl enable v2ray
    systemctl status v2ray

    使用​

    客户端配置 SOCKS5 代理:

    • 服务器:<你的中转服务器IP>
    • 端口:8899
    • 协议:SOCKS5(无认证)

    使用场景:​​ 你想访问一个被墙的网站(B点),但你的网络直连不过去。幸好你有一台在国外的服务器(A点),而A点可以顺畅地连接到另一个更强大的代理服务器(C点)。这个教程就是教你把A点变成一个“传话员”,让你的请求 你 -> A -> C -> B这样跳转过去。

    操作步骤:​

    给你的“传话员”(服务器A)安装工具​​登录到你的服务器,输入一行魔法命令来安装 V2Ray 这个专业工具:

    bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)

    告诉“传话员”规则​

    找到配置文件(在 /usr/local/etc/v2ray/config.json),然后告诉它两件事:

    • ​听令:​​ 在 8899端口等着接收我(你的电脑)发来的指令。
    • ​传话:​​ 收到我的指令后,原样转发给最终的那个“强大代理C”(教程里例子是 leepoet.com:1088,你要改成自己实际的)。

    配置文件内容看起来像一串代码,核心就是定义了“从哪听”和“向哪转”。

    ​启动“传话员”​​输入几个命令,让配置生效并保证它一直在岗:

    systemctl start v2ray    # 立即上班
    systemctl enable v2ray # 保证下次服务器重启后自动上班
    1. 你这边开始使用​​在你自己的电脑上,网络设置里找到代理设置的地方:
      • ​服务器:​​ 填你“传话员”服务器A的IP地址。
      • ​端口:​​ 填 8899
      • ​类型:​​ 选择 ​​SOCKS5​​。保存之后,你的网络流量就开始“跳转”了!

    通过这个简单的设置,你那台本来普通的服务器就变成了一个高效的代理中转站,帮你更稳定、更灵活地访问网络。

  • hexo生成博客的文章数量过多耗尽所有内存资源后出现out of memory的解决方法

    hexo生成博客的文章数量过多耗尽所有内存资源后出现out of memory的解决方法

    Hexo博客文章数量积累到上千篇时,很可能会在生成静态文件(hexo generate)时遭遇令人头疼的“JavaScript heap out of memory”错误。这主要是因为Node.js默认的内存限制无法处理海量文章生成所需的内存开销。

    文章数量很多时,会出现生成不了的情况,具体的错误是out of memory,具体的错误如下:

    hexo生成博客的文章数量过多耗尽所有内存资源后出现out of memory的解决方法

    这个错误让我一度想要放弃hexo,因为真的太糟心了,试了很多网上的方法都没有用。

    原因
    这个问题出现的主要原始还是在于hexo项目本身的问题,太耗资源了,虽说hexo一直在改进这方面的问题,但是,还是很慢,而且耗费资源很大,导致出现内存溢出。

    解决方法
    最后,分享一些解决方法,网上的那些增大nodejs的内存限制,这些都是没有用的,因为根本原因不在这里,就算你改了,还是可能报错,运气好可能ok,但是希望不大。

    解决办法其实很简单,我查看hexo项目的时候发现,hexo在5.0之后就这个问题做了一些改进,在生成的时候采用限制并行执行数量的方法,避免出现内存溢出。

    命令:在生成博客的时候,使用参数-c,代表生成博客时线程的数量吧,例如:

    hexo -g -c 8
    

    执行这个命令后,跟以往的输出有所不同,会实时的显示正在生成的静态文件,同时,不会出现内存溢出的问题。


    💻 启动本地服务器的基本命令

    最基础的启动命令是:

    hexo clean #清理缓存和旧文件,这是一个好习惯,可以避免某些更新未能生效的问题。简写hexo cl
    hexo generate #这个命令会将你的Markdown文章等源文件转换成浏览器可以解析的静态网页,简写:hexo g
    hexo server #启动服务器,简写hexo s


    💡 可能遇到的问题

    • ​端口被占用​​:如果默认的4000端口已被其他程序使用,启动时会报错。使用 hexo s -p 5000命令换一个端口即可。
    • ​更改未生效​​:如果你修改了博客配置或文章内容,但在浏览器中刷新后看不到变化,可以尝试按 Ctrl + C停止服务器,然后按“清理 -> 生成 -> 启动”的完整流程重新操作一遍。

    启动Hexo本地服务器非常简单,通过几个命令就能在浏览器中预览你的博客。下面是一个快速指南,帮你启动和运行Hexo。

    🛠️ Hexo 内存溢出解决方案

    清理缓存并重新生成

    首先尝试最基本的清理操作,这能解决很多因缓存引起的问题:hexo clean

    增加 Node.js 内存限制,直接在执行命令时增加内存限制,这是最直接的解决方法:

    node --max-old-space-size=16384 ./node_modules/hexo/bin/hexo generate

    或者如果全局安装了 hexo-cli:

    node --max-old-space-size=16384 hexo generate

    这里的 16384表示 16GB 内存,你可以根据需要调整为 8192(8GB)或其他值。

    永久性配置方案

    修改 package.json 中的脚本在 package.json文件的 scripts部分添加内存限制:

    "scripts": {
      "build": "node --max-old-space-size=16384 ./node_modules/hexo/bin/hexo generate --concurrency 8",
      "serve": "node --max-old-space-size=16384 ./node_modules/hexo/bin/hexo server",
      "clean": "hexo clean"
    }

    你的脚本配置详解

    脚本命令功能说明优势
    "build": "node --max-old-space-size=4096 ./node_modules/hexo/bin/hexo generate --concurrency 8"增加内存至4GB,并限制生成线程为8个。--max-old-space-size=4096有效防止生成大量文章时的内存溢出错误。--concurrency 8限制并行处理文件的数量,降低内存峰值,提高大博客生成的稳定性。
    "serve": "node --max-old-space-size=4096 ./node_modules/hexo/bin/hexo server"增加内存至4GB后启动本地服务器。确保本地预览 (hexo s) 时也拥有足够内存,与生成环境一致。
    "clean": "hexo clean"清除缓存和已生成的静态文件。保持简洁,因为清理操作通常不需要额外内存。

    配置好后,你就不再需要直接输入 hexo g或 hexo s了,而是使用更强大的 npm run命令:

    # 1. 清除旧文件
    npm run clean
    
    # 2. 重新生成静态文件(使用了你配置的内存和线程优化)
    npm run build
    
    # 3. 启动服务器进行预览
    npm run serve

    你也可以将命令组合起来,实现一键清理和生成:npm run clean && npm run build

    "scripts": {
      "build": "node --max-old-space-size=4096 ./node_modules/hexo/bin/hexo generate --concurrency 8",
      "serve": "node --max-old-space-size=4096 ./node_modules/hexo/bin/hexo server",
      "clean": "hexo clean",
      "rebuild": "npm run clean && npm run build" // 新增的组合命令
    }


    之后,只需运行 npm run rebuild就会先执行清理,再重新生成网站。

    • 组合命令​​:你可以添加一个组合命令,让你一键完成清理、生成和启动服务器,虽然这需要借助如 npm-run-all的工具,但你可以简单地使用 npm run clean && npm run build && npm run serve
    • ​部署命令​​:如果你使用 hexo-deployer-git等工具自动部署到GitHub Pages或服务器,可以添加一个部署脚本,例如:”deploy”: “npm run clean && npm run build && hexo deploy”

    自定义服务器端口

    如果你的4000端口被其他程序占用,可以直接在 serve脚本中指定新端口。这是比修改配置文件更工程化的做法。

    "serve": "node --max-old-space-size=16384 ./node_modules/hexo/bin/hexo server -p 4001"

    配置好后,使用以下命令来操作博客:

    • ​清理并重新生成​​:npm run clean→ npm run build
    • ​启动本地服务器预览​​:npm run serve
    • 一键清理和生成​​(如果配置了 rebuild脚本):npm run rebuild

    修改 Windows 系统中的 hexo.cmd

    对于 Windows 系统,可以直接修改 hexo 的可执行文件:找到 ./node_modules/.bin/hexo.cmd文件,将其内容修改为:

    @IF EXIST "%~dp0\node.exe" (
      "%~dp0\node.exe" --max-old-space-size=16384 "%~dp0\..\hexo\bin\hexo" %*
    ) ELSE (
      @SETLOCAL
      @SET PATHEXT=%PATHEXT:;.JS;=;%
      node --max-old-space-size=16384 "%~dp0\..\hexo\bin\hexo" %*
    )

    如果上方的配置没用可以用下面的:

    @ECHO off
    GOTO start
    :find_dp0
    SET dp0=%~dp0
    EXIT /b
    :start
    SETLOCAL
    CALL :find_dp0
    
    IF EXIST "%dp0%\node.exe" (
      SET "_prog=%dp0%\node.exe"
    ) ELSE (
      SET "_prog=node"
      SET PATHEXT=%PATHEXT:;.JS;=;%
    )
    
    ENDLOCAL & GOTO :EOF
    
    "%~dp0\node.exe" --max-old-space-size=16384 "%~dp0\..\hexo\bin\hexo" %*
    goto :eof

    ⚙️ 修改系统级的启动文件(针对全局命令)

    如果你希望在任何地方运行 hexo generate这样的全局命令时都生效,可以修改系统环境变量。这通常不推荐作为首选,因为它会影响所有项目,但可以作为备选方案。

    ​•Windows系统​​:可以创建一个或修改一个名为 HEXO_NODE_OPTIONS的系统环境变量,将其值设置为 --max-old-space-size=16384。或者如果你想永久设置,可以使用 setx命令,但设置后需要重新打开终端:setx NODE_OPTIONS --max_old_space_size=16384

    •​​Linux/macOS系统​​:可以在你的 shell 配置文件(如 ~/.bashrc~/.zshrc等)中添加一行:

    export NODE_OPTIONS="--max-old-space-size=16384"

    然后执行 source ~/.zshrc(根据你使用的配置文件)使其立即生效。

    设置后,任何新启动的命令行窗口中运行的 Node.js 程序都会继承这个内存限制。

    针对大型博客的优化方案

    限制生成线程数

    如果您的博客文章数量很多(超过1000篇),可以使用 Hexo 5.0+ 提供的并发控制功能:

    hexo generate --concurrency 8   #简写:hexo -g -c 8

    这个参数会限制并行生成的文件数量,显著降低内存使用量。

    使用 increase-memory-limit 工具

    安装专门的内存限制提升工具:

    # 全局安装
    npm install -g increase-memory-limit
    
    # 进入项目目录执行
    increase-memory-limit


    ⚙️ 常用参数与组合用法

    除了基本命令,还有一些有用的参数和组合命令可以提升效率:

    用途命令说明
    ​调试模式​hexo s --debug方便排查问题,会在控制台输出详细日志。
    ​指定端口​hexo s -p 5000当4000端口被占用时,可以用 -p参数指定其他端口(如5000)。
    ​启动前生成​hexo s -g在启动服务器前,自动执行 hexo generate生成最新的静态文件,确保你看到的是最新改动。
    设置 Node.js 可使用的最大内存空间–max-old-space-size=16384设置 Node.js 可使用的最大老生代内存空间为 ​​16GB​​。这主要用于避免生成大量页面时出现内存溢出(OOM)错误
    指定要执行的 Hexo 核心位置./node_modules/hexo/bin/hexo指定要执行的 Hexo 核心程序文件的位置。
    设置最大并发数​​-c 100指定生成静态页面时的​​最大并发数​​为 100,旨在提升生成过程的效率

    除了在命令中直接指定,你还可以通过以下方式设置内存限制,以避免每次手动输入长命令:

    • ​修改 package.json中的 npm 脚本​​:在你的 Hexo 博客目录下,找到 package.json文件,在 "scripts"部分添加或修改命令。
    • 例如,将 “generate”: hexo generate改为 “generate”: node --max-old-space-size=8192 ./node_modules/hexo/bin/hexo generate
    • 之后,你只需要运行 npm run generate即可
    • 设置环境变量​​:你可以通过设置 NODE_OPTIONS环境变量来全局提升 Node.js 的内存限制。
    • 在 Linux 或 macOS 的终端中执行:export NODE_OPTIONS="--max-old-space-size=16384"
    • 在 Windows 的命令提示符(CMD)中执行:set NODE_OPTIONS="--max-old-space-size=16384"设置后,在同一终端会话中直接运行 hexo generate就会生效

    ⚠️ 注意事项

    • ​合理设置内存大小​​:请根据你电脑的实际物理内存来设置 --max-old-space-size的值。通常建议设置为系统总内存的 50%-70%,以确保系统本身和其他程序有足够的内存运行,避免因系统内存耗尽导致卡顿或崩溃。
    • ​并发数不是越高越好​​:-c参数也并非设置得越高越好,过高的并发数可能会过度消耗 CPU 资源。如果设置后生成过程不稳定,可以尝试适当调低该数值

    报错解决:定位问题文件

    首先需要确定是哪个文件导致了这个问题。错误信息显示 (unknown path),这意味着Hexo无法准确指出问题文件。建议:

    # 使用调试模式获取更详细的信息
    hexo generate --debug

    检查注释语法

    如果在文章或模板中使用了以下特殊字符,可能需要转义:

    • ​大括号​​ {和 }
    • ​注释标签​​ {#和 #}
    • ​其他模板语法字符​

    1.TypeError: logger.info is not a function

    将 themes/Acrylic/scripts/event/welcome.js文件中的代码修改为以下两种方案之一:

    ​方案一:直接使用导入的logger对象(推荐)​

    const logger = require('hexo-log'); // 关键修改:去掉调用括号

    hexo.on('ready', () => {
    const { version } = require('../../package.json')
    logger.info(`
    ===================================================================

    █████╗ ██████╗██████╗ ██╗ ██╗██╗ ██╗ ██████╗
    ██╔══██╗██╔════╝██╔══██╗╚██╗ ██╔╝██║ ██║██╔════╝
    ███████║██║ ██████╔╝ ╚████╔╝ ██║ ██║██║
    ██╔══██║██║ ██╔══██╗ ╚██╔╝ ██║ ██║██║
    ██║ ██║╚██████╗██║ ██║ ██║ ███████╗██║╚██████╗
    ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═════╝

    Next-${version}
    ===================================================================`)
    })

    ​方案二:使用Hexo内置的日志功能(备选)​

    hexo.on('ready', () => {
    const { version } = require('../../package.json')
    // 使用hexo自带的log方法
    hexo.log.info(`
    ===================================================================

    █████╗ ██████╗██████╗ ██╗ ██╗██╗ ██╗ ██████╗
    ██╔══██╗██╔════╝██╔══██╗╚██╗ ██╔╝██║ ██║██╔════╝
    ███████║██║ ██████╔╝ ╚████╔╝ ██║ ██║██║
    ██╔══██║██║ ██╔══██╗ ╚██╔╝ ██║ ██║██║
    ██║ ██║╚██████╗██║ ██║ ██║ ███████╗██║╚██████╗
    ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═════╝

    Next-${version}
    ===================================================================`)
    })