Site updated: 2025-02-17 00:12:27
This commit is contained in:
1 parent
77cae36fd1
commit
3fb658a630
241 files changed
+411
-358
No files matched your search
@@ -10,8 +10,8 @@
|
||||
</author>
|
||||
<description>天生我材必有用</description>
|
||||
<language>zh-CN</language>
|
||||
<pubDate>Sun, 29 Sep 2024 16:25:00 +0800</pubDate>
|
||||
<lastBuildDate>Sun, 29 Sep 2024 16:25:00 +0800</lastBuildDate>
|
||||
<pubDate>Sun, 16 Feb 2025 22:32:00 +0800</pubDate>
|
||||
<lastBuildDate>Sun, 16 Feb 2025 22:32:00 +0800</lastBuildDate>
|
||||
<category term="hito" />
|
||||
<category term="無言" />
|
||||
<category term="博客" />
|
||||
@@ -20,6 +20,82 @@
|
||||
<category term="心得体会" />
|
||||
<category term="技术分享" />
|
||||
<category term="踩坑" />
|
||||
<item>
|
||||
<guid isPermalink="true">https://hitoli.com/2025/02/16/%E6%9E%81%E7%A9%BA%E9%97%B4%E9%83%A8%E7%BD%B2Deepseek%EF%BC%88API%E8%B0%83%E7%94%A8%EF%BC%89/</guid>
|
||||
<title>极空间部署DeepSeek(API调用)</title>
|
||||
<link>https://hitoli.com/2025/02/16/%E6%9E%81%E7%A9%BA%E9%97%B4%E9%83%A8%E7%BD%B2Deepseek%EF%BC%88API%E8%B0%83%E7%94%A8%EF%BC%89/</link>
|
||||
<category term="极空间" scheme="https://hitoli.com/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" />
|
||||
<category term="Docker" scheme="https://hitoli.com/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" />
|
||||
<category term="DeepSeek" scheme="https://hitoli.com/tags/DeepSeek/" />
|
||||
<category term="AI" scheme="https://hitoli.com/tags/AI/" />
|
||||
<pubDate>Sun, 16 Feb 2025 22:32:00 +0800</pubDate>
|
||||
<description><![CDATA[ <h4 id="前言"><a class="anchor" href="#前言">#</a> 前言</h4>
|
||||
<p>最近 DeepSeek 比较火爆,到处都在夸。大部分人都想搭建自己的私有服务器,但我查了查资料还是放弃了想法,毕竟 30B 以下的没啥鸟用,以上的我又搞不起。🙂,最后又经不住诱惑就搞一个调用 api 的吧。经过研究,最终决定使用 justsong/one-api 加 vinlic/deepseek-free-api 加 yidadaa/chatgpt-next-web 的方案。justsong/one-api 用于统一管理、调用 AI 服务(当然也可以调用自己搭建的 DeepSeek🙂),vinlic/deepseek-free-api 用于调用 DeepSeek 官方接口,yidadaa/chatgpt-next-web 提供 web 界面用户和 ai 进行对话。大致了解清楚后就开始吧!</p>
|
||||
<h4 id="前期准备"><a class="anchor" href="#前期准备">#</a> 前期准备</h4>
|
||||
<p>需要自己先申请一个<span class="exturl" data-url="aHR0cHM6Ly9jaGF0LmRlZXBzZWVrLmNvbS8="> DeepSeek</span> 账号,并获取 token。获取方法是登陆后随便说一句话,然后按 F12 到应用程序 - 存储 - 本地存储中找到 userToken 的 value 值。<br />
|
||||
<img data-src="https://npic.hitoli.com:8443/images/2025/02/16/2025-02-16-23-54-54.png" alt="2025-02-16-23-54-54.png" /></p>
|
||||
<h5 id="安装deepseek-free-api"><a class="anchor" href="#安装deepseek-free-api">#</a> 安装 deepseek-free-api</h5>
|
||||
<ul>
|
||||
<li>1、端口</li>
|
||||
</ul>
|
||||
<p><img data-src="https://npic.hitoli.com:8443/images/2025/02/16/2025-02-16-23-52-13.png" alt="2025-02-16-23-52-13.png" /></p>
|
||||
<ul>
|
||||
<li>2、环境<br />
|
||||
<img data-src="https://npic.hitoli.com:8443/images/2025/02/16/2025-02-16-23-53-30.png" alt="2025-02-16-23-53-30.png" /></li>
|
||||
</ul>
|
||||
<div class="note info">
|
||||
<p>增加参数 DEEP_SEEK_CHAT_AUTHORIZATION 值:userToken 的 value 值</p>
|
||||
</div>
|
||||
<h5 id="安装one-api"><a class="anchor" href="#安装one-api">#</a> 安装 one-api</h5>
|
||||
<ul>
|
||||
<li>
|
||||
<p>1、文件夹与路径<br />
|
||||
<img data-src="https://npic.hitoli.com:8443/images/2025/02/16/2025-02-16-23-56-44.png" alt="2025-02-16-23-56-44.png" /></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>2、端口<br />
|
||||
<img data-src="https://npic.hitoli.com:8443/images/2025/02/16/2025-02-16-23-57-30.png" alt="2025-02-16-23-57-30.png" /></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>3、配置</p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="note info">
|
||||
<p>登陆 web 页面(极空间 ip+one-api 的本地端口,默认用户名密码 root/123456),先添加渠道,再添加令牌。渠道用于调用指定的 api,我这里调用的是 deepseek-free-api(密钥为 userToken 的 value 值)。令牌用于给 chatgpt-next-web 使用,记录、控制权限等。</p>
|
||||
</div>
|
||||
<p><img data-src="https://npic.hitoli.com:8443/images/2025/02/16/2025-02-16-23-58-41.png" alt="2025-02-16-23-58-41.png" /></p>
|
||||
<p><img data-src="https://npic.hitoli.com:8443/images/2025/02/17/2025-02-17-00-01-17.png" alt="2025-02-17-00-01-17.png" /></p>
|
||||
<h5 id="安装chatgpt-next-web"><a class="anchor" href="#安装chatgpt-next-web">#</a> 安装 chatgpt-next-web</h5>
|
||||
<ul>
|
||||
<li>
|
||||
<p>1、端口<br />
|
||||
<img data-src="https://npic.hitoli.com:8443/images/2025/02/17/2025-02-17-00-02-14.png" alt="2025-02-17-00-02-14.png" /></p>
|
||||
</li>
|
||||
<li>
|
||||
<p>2、环境</p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="note info">
|
||||
<p>参数 OPENAI_API_KEY 的值填 one-api 令牌页面复制的值。再增加一个 BASE_URL 参数,值为 one-api 的地址(极空间 ip+one-api 的本地端口)</p>
|
||||
</div>
|
||||
<p><img data-src="https://npic.hitoli.com:8443/images/2025/02/17/2025-02-17-00-04-28.png" alt="2025-02-17-00-04-28.png" /><br />
|
||||
<img data-src="https://npic.hitoli.com:8443/images/2025/02/17/2025-02-17-00-03-04.png" alt="2025-02-17-00-03-04.png" /></p>
|
||||
<ul>
|
||||
<li>3、对话</li>
|
||||
</ul>
|
||||
<div class="note info">
|
||||
<p>恭喜你,至此已经搭建完成。通过极空间 ip+chatgpt-next-web 的本地端口就可以开始和 DeepSeek 对话了。</p>
|
||||
</div>
|
||||
<p><img data-src="https://npic.hitoli.com:8443/images/2025/02/17/2025-02-17-00-06-07.png" alt="2025-02-17-00-06-07.png" /></p>
|
||||
<h5 id="nginx-proxy-manager配置"><a class="anchor" href="#nginx-proxy-manager配置">#</a> nginx proxy manager 配置</h5>
|
||||
<div class="note info">
|
||||
<p>chatgpt-next-web 反代时需要在高级里加入以下代码,否则会报错。</p>
|
||||
</div>
|
||||
<p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">location</span> <span class="string">/</span> &#123;</span><br><span class="line"> <span class="string">proxy_pass</span> <span class="string">http://极空间ip:chatgpt-next-web的本地端口;</span></span><br><span class="line"> <span class="string">proxy_set_header</span> <span class="string">Host</span> <span class="string">$host;</span></span><br><span class="line"> <span class="string">proxy_set_header</span> <span class="string">X-Forwarded-Host</span> <span class="string">$host:8443(nginx</span> <span class="string">proxy</span> <span class="string">manager的ssl外网端口);</span></span><br><span class="line"> <span class="string">proxy_set_header</span> <span class="string">X-Forwarded-Proto</span> <span class="string">$scheme;</span></span><br><span class="line"> &#125;</span><br></pre></td></tr></table></figure><br />
|
||||
最终成果<br />
|
||||
<img data-src="https://npic.hitoli.com:8443/images/2025/02/16/0d5ddc77d244fcc4e1a60a1828eed054.png" alt="0d5ddc77d244fcc4e1a60a1828eed054.png" /></p>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<guid isPermalink="true">https://hitoli.com/2024/09/29/dante-stunnel-clash-%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91/</guid>
|
||||
<title>dante+stunnel+clash 科学上网</title>
|
||||
@@ -571,7 +647,7 @@ sudo passwd proxy<br />
|
||||
2、修改 /etc/squid/conf.d/debian.conf 文件<br />
|
||||
两种方式都一样,在底部加入以下代码</p>
|
||||
</div>
|
||||
<p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#dns服务器地址</span></span><br><span class="line"><span class="string">dns_nameservers</span> <span class="number">8.8</span><span class="number">.8</span><span class="number">.8</span> <span class="number">8.8</span><span class="number">.4</span><span class="number">.4</span></span><br><span class="line"><span class="string">dns_v4_first</span> <span class="string">on</span></span><br><span class="line"><span class="comment"># 监听端口</span></span><br><span class="line"><span class="string">http_port</span> <span class="number">3128</span></span><br><span class="line"><span class="comment"># 定义squid密码文件与ncsa_auth文件位置</span></span><br><span class="line"><span class="string">auth_param</span> <span class="string">basic</span> <span class="string">program</span> <span class="string">/usr/lib/squid/basic_ncsa_auth</span> <span class="string">/etc/squid/squid_user.txt</span></span><br><span class="line"><span class="comment"># 认证进程的数量</span></span><br><span class="line"><span class="string">auth_param</span> <span class="string">basic</span> <span class="string">children</span> <span class="number">15</span></span><br><span class="line"><span class="comment"># 认证对话框显示提示信息</span></span><br><span class="line"><span class="string">auth_param</span> <span class="string">basic</span> <span class="string">realm</span> <span class="string">Squid</span> <span class="string">proxy-caching</span> <span class="string">web</span> <span class="string">server</span></sLine truncated
|
||||
<p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#dns服务器地址</span></span><br><span class="line"><span class="string">dns_nameservers</span> <span class="number">8.8</span><span class="number">.8</span><span class="number">.8</span> <span class="number">8.8</span><span class="number">.4</span><span class="number">.4</span></span><br><span class="line"><span class="string">dns_v4_first</span> <span class="string">on</span></span><br><span class="line"><span class="comment"># 监听端口</span></span><br><span class="line"><span class="string">http_port</span> <span class="number">3128</span></span><br><span class="line"><span class="comment"># 定义squid密码文件与ncsa_auth文件位置</span></span><br><span class="line"><span class="string">auth_param</span> <span class="string">basic</span> <span class="string">program</span> <span class="string">/usr/lib/squid/basic_ncsa_auth</span> <span class="string">/etc/squid/squid_user.txt</span></span><br><span class="line"><span class="comment"># 认证进程的数量</span&Line truncated
|
||||
<div class="note primary">
|
||||
<p>至次已经可以通过填写安装 squid 的服务器 ip 加端口 3128 加用户名密码进行代理访问了(通过访问<span class="blue"><span class="exturl" data-url="aHR0cHM6Ly93d3cuaXAuY24v"> https://www.ip.cn/</span></span> 查看 ip 就会发现自己的出口 ip 已经变成了 squid 服务器的 ip 了)。但是要想科学上网还必须对代理的数据进行加密,否则访问外网还是会被我国的长城防火墙阻挡,所以还需要安装 stunnel 来实现此目的。</p>
|
||||
</div>
|
||||
@@ -660,58 +736,6 @@ Lombok supports: OpenJDK javac, ECJ</p>
|
||||
<img data-src="https://npic.hitoli.com:8443/images/2023/07/08/34bac08a5d10.png" alt="" /></p>
|
||||
</li>
|
||||
</ol>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<guid isPermalink="true">https://hitoli.com/2023/07/01/shoka%E4%B8%BB%E9%A2%98%E9%80%9F%E5%BA%A6%E4%BC%98%E5%8C%96-%E6%8B%86%E5%88%86jsdelivr/</guid>
|
||||
<title>shoka主题速度优化-拆分jsdelivr</title>
|
||||
<link>https://hitoli.com/2023/07/01/shoka%E4%B8%BB%E9%A2%98%E9%80%9F%E5%BA%A6%E4%BC%98%E5%8C%96-%E6%8B%86%E5%88%86jsdelivr/</link>
|
||||
<category term="极空间" scheme="https://hitoli.com/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" />
|
||||
<category term="Docker" scheme="https://hitoli.com/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" />
|
||||
<category term="Hexo" scheme="https://hitoli.com/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/Hexo/" />
|
||||
<category term="Hexo" scheme="https://hitoli.com/tags/Hexo/" />
|
||||
<category term="Shoka" scheme="https://hitoli.com/tags/Shoka/" />
|
||||
<category term="jsdelivr" scheme="https://hitoli.com/tags/jsdelivr/" />
|
||||
<pubDate>Sat, 01 Jul 2023 01:15:00 +0800</pubDate>
|
||||
<description><![CDATA[ <h4 id="前言"><a class="anchor" href="#前言">#</a> 前言</h4>
|
||||
<div class="note primary">
|
||||
<p>该篇文章介绍了如何对 shoka 主题进行 jsdelivr 聚合拆分,以便使用国内镜像源和异步加载,从而优化网站速度。具体操作包括更改模板、注册 helper 和更改配置。其中,推荐使用 advVendors 配置,可自定义加载源和 js 文件名,同时支持异步加载、pjax 刷新和 integrity 防 XXS 等特性。</p>
|
||||
</div>
|
||||
<p>众所周知,jsdelivr 在国内的速度可以用慢的一批来形容而 shoka 主题使用了 jsdelivr 的 combine 功能加载第三方 js, 而 combine 在国内没有镜像源并且阻断了使用 CDN 并发加速的道路,本篇博文会将 jsdelivr 聚合拆分为几个独立的 js, 以便使用国内镜像源和异步加载。</p>
|
||||
<div class="note info">
|
||||
<p>此方案相较于本地化而言有较大速度优势,尤其在 CDN 并发加持下</p>
|
||||
</div>
|
||||
<h4 id="拆分-jsdelivr"><a class="anchor" href="#拆分-jsdelivr">#</a> 拆分 jsdelivr</h4>
|
||||
<ol>
|
||||
<li>更改模板</li>
|
||||
</ol>
|
||||
<p>打开 <span class="red">shoka\layout\_partials\layout.njk</span>,找到第 144 行左右:</p>
|
||||
<p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://cdn.polyfill.io/v3/polyfill.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span><span class="symbol">&amp;#123;</span> _vendor_js() <span class="symbol">&amp;#125;</span><span class="symbol">&amp;#125;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span><span class="symbol">&amp;#123;</span> _js(&#x27;app.js&#x27;) <span class="symbol">&amp;#125;</span><span class="symbol">&amp;#125;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span><span class="symbol">&amp;#123;</span> partial(&#x27;_partials/third-party/baidu-analytics.njk&#x27;, <span class="symbol">&amp;#123;</span><span class="symbol">&amp;#125;</span>, <span class="symbol">&amp;#123;</span>cache: true<span class="symbol">&amp;#125;</span>) <span class="symbol">&amp;#125;</span><span class="symbol">&amp;#125;</span></span><br></pre></td></tr></table></figure></p>
|
||||
<p>更改为如下内容:</p>
|
||||
<p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">script</span> <span class="attr">src</span>=<span class="string">&quot;https://cdn.polyfill.io/v3/polyfill.js&quot;</span>&gt;</span><span class="tag">&lt;/<span class="name">script</span>&gt;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span>%- if theme.advVendors.enable %<span class="symbol">&amp;#125;</span></span><br><span class="line"> <span class="symbol">&amp;#123;</span>% for i in _list_vendor_js() %<span class="symbol">&amp;#125;</span></span><br><span class="line"> <span class="symbol">&amp;#123;</span><span class="symbol">&amp;#123;</span> _adv_vendor_js(i) <span class="symbol">&amp;#125;</span><span class="symbol">&amp;#125;</span></span><br><span class="line"> <span class="symbol">&amp;#123;</span>% endfor %<span class="symbol">&amp;#125;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span>%- else %<span class="symbol">&amp;#125;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span><span class="symbol">&amp;#123;</span> _vendor_js() <span class="symbol">&amp;#125;</span><span class="symbol">&amp;#125;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span>%- endif %<span class="symbol">&amp;#125;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span><span class="symbol">&amp;#123;</span> _js(&#x27;app.js&#x27;)<span class="symbol">&amp;#125;</span><span class="symbol">&amp;#125;</span></span><br><span class="line"><span class="symbol">&amp;#123;</span><span class="symbol">&amp;#123;</span> partial(&#x27;_partials/third-party/baidu-analytics.njk&#x27;, <span class="symbol">&amp;#123;</span><span class="symbol">&amp;#125;</span>, <span class="symbol">&amp;#123;</span>cache: true<span class="symbol">&amp;#125;</span>) <span class="symbol">&amp;#125;</span><span class="symbol">&amp;#125;</span></span><br></pre></td></tr></table></figure></p>
|
||||
<ol start="2">
|
||||
<li>注册 helper</li>
|
||||
</ol>
|
||||
<p>打开 <span class="red">shoka\scripts\helpers\asset.js</span>, 最后一行新建空行,增加如下内容:</p>
|
||||
<p><figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line">hexo.<span class="property">extend</span>.<span class="property">helper</span>.<span class="title function_">register</span>(<span class="string">&#x27;_list_vendor_js&#x27;</span>, <span class="function">() =&gt;</span> &#123;</span><br><span class="line"> <span class="keyword">return</span> hexo.<span class="property">theme</span>.<span class="property">config</span>.<span class="property">vendorsList</span>.<span class="property">js</span>;</span><br><span class="line">&#125;);</span><br><span class="line"></span><br><span class="line">hexo.<span class="property">extend</span>.<span class="property">helper</span>.<span class="title function_">register</span>(<span class="string">&#x27;_adv_vendor_js&#x27;</span>, <span class="keyword">function</span> (<span class="params">js_name</span>) &#123;</span><br><span class="line"> <span class="keyword">const</span> config = hexo.<span class="property">theme</span>.<span class="property">config</span>.<span class="property">advVendors</span>.<span class="property">js</span>[js_name];</span><br><span class="line"> <span class="keyword">const</span> src = config[<span class="string">&quot;src&quot;</span>];</span><br><span class="line"> <span class="keyword">let</span> result;</span><br><span class="line"> <span class="keyword">if</span> (src.<span class="title function_">indexOf</span>(<span class="string">&quot;http&quot;</span>) !== -<span class="number">1</span>) &#123;</span><br><span class="line"> result = src;</span><br><span class="line"> &#125; <span class="keyword">else</span> <span class="keyword">if</span> (src.<span class="title function_">indexOf</span>(<span class="string">&quot;combine&quot;</span>) !== -<span class="number">1</span>) &#123;</span><br><span class="line"> <span class="variable language_">console</span>.<span class="title function_">log</span>(<span class="string">&quot;The cLine truncated
|
||||
<ol start="3">
|
||||
<li>更改配置</li>
|
||||
</ol>
|
||||
<p>在 shoka 目录下 <span class="red">_config.yml</span> 增加如下内容:</p>
|
||||
<div class="note info">
|
||||
<p>推荐内容,可根据自己情况更改</p>
|
||||
</div>
|
||||
<p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">advVendors:</span></span><br><span class="line"> <span class="attr">enable:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">github:</span> <span class="string">&quot;https://cdn.jsdelivr.net/gh/&quot;</span></span><br><span class="line"> <span class="attr">combine:</span> <span class="string">&quot;https://cdn.jsdelivr.net/&quot;</span></span><br><span class="line"> <span class="attr">npm:</span> <span class="string">&quot;https://unpkg.com/&quot;</span></span><br><span class="line"> <span class="attr">js:</span></span><br><span class="line"> <span class="attr">pace:</span></span><br><span class="line"> <span class="attr">src:</span> <span class="string">https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/pace/1.0.2/pace.min.js</span></span><br><span class="line"> <span class="attr">pjax:</span></span><br><span class="line"> <span class="attr">src:</span> <span class="string">https://lib.baomitu.com/pjax/0.2.8/pjax.min.js</span></span><br><span class="line"> <span class="attr">fetch:</span></span><br><span class="line"> <span class="attr">src:</span> <span class="string">npm/whatwg-fetch@3.4.0/dist/fetch.umd.js</span></span><br><span class="line"> <span class="attr">anime:</span></span><br><span class=&Line truncated
|
||||
<p>下面为结构详解:</p>
|
||||
<p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">advVendors:</span></span><br><span class="line"> <span class="attr">enable:</span> <span class="literal">true</span> <span class="comment">#是否开启,关闭使用主题默认加载</span></span><br><span class="line"> <span class="attr">github:</span> <span class="comment">#github 使用的加载源,需要协议头和末尾斜杠</span></span><br><span class="line"> <span class="attr">combine:</span> <span class="comment">#聚合 js 使用的加载源 (不建议使用)</span></span><br><span class="line"> <span class="attr">npm:</span> <span class="comment">#npm 的加载源</span></span><br><span class="line"> <span class="attr">js:</span></span><br><span class="line"> <span class="attr">jspackage:</span> <span class="comment">#js 名,可以与文件名不一致</span></span><br><span class="line"> <span class="attr">src:</span> <span class="string">&quot;资源地址,详情见后面&quot;</span></span><br><span class="line"> <span class="comment"># async: true 异步加载此 js</span></span><br><span class="line"> <span class="comment"># data-pjax: true 在 pjax 加载时刷新此 js</span></span><br><span class="line"> <span class="comment"># hash-value: 这个资源的 integrity 值,用于防 XXS</span></span><br><span class="line"> <span class="comment"># deferLoad: true 使用动态 DOM 节点添加延迟 js 加载 (实验性)</span></span><br><span class="line"></span><br><span class="line"><span class="attr">vendorsList:</span></span><br><span class="line"> <span class="attr">js:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">jspackage</span> <span class="comment">#与上方 jspackage 一致即可</span></span><br></pre></td></tr></table></figure></p>
|
||||
<p>资源地址格式如下:</p>
|
||||
<p><span class="red"><span class="exturl" data-url="aHR0cHM6Ly9leGFtcGxlLmNvbS94eHguanM=">https://example.com/xxx.js</span></span> 使用 http (s) 地址加载 js<br />
|
||||
<span class="red">combine/xxx.js,xxx.js</span> 使用 jsdelivr 的 combine 功能加载 (不推荐)<br />
|
||||
<span class="red">npm/xxx/xxx.js</span> 使用 npm 源加载 js<br />
|
||||
<span class="red">gh/xxx/xxx.js</span> 使用 gh 源加载 js<br />
|
||||
<span class="red">xxx.js</span> 从本地加载 js<br />
|
||||
优先级如下:<br />
|
||||
<span class="red">http&gt;combine&gt;npm&gt;gh &gt; 本地</span></p>
|
||||
]]></description>
|
||||
</item>
|
||||
</channel>
|
||||
|
||||
Reference in new issue
Block a user