嘘~ 正在从服务器偷取页面 . . .

Hexo 多语言站点配置


Hexo 多语言站点配置

Hexo 就是我博客用的框架,然后最近打算搞点国际化的东东,就有了这篇文章。

官方是有什么国际化的,但是不好用。这里来说说我的做法,参考自 link

我就是把整个博客文件夹给复制了一下,放到了博客文件夹新建的 en 文件夹中。

然后我删掉了那个 en 文件夹里的 node_modules,并在那里重新下载依赖,即npm install

现在问题就来了,本来 hexo clean && hexo g && hexo d 啥的就好了

现在多了这个文件夹,但是它里面的东西是不会自己生成的。

因此这个方法的原理其实是单独建英文站,然后把它生成的东西复制到主站的 public 文件夹。

所以,就有了这个代码:(不会 bash 有啥办法),写的好烂

/*
    hexo 上传助手
    作者:q779
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF 0x3f3f3f3f3f3f3f3f
void up(int &x,int y) { x < y ? x = y : 0; }
void down(int &x,int y) { x > y ? x = y : 0; }
#define N ((int)())

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    // freopen("check.in","r",stdin);
    // freopen("check.out","w",stdout);

    cout << "欢迎使用 hexo 上传助手! \n";
    cout << "目前支持的操作有:\n";
    cout << "[0] 查看帮助选项 (这会终止程序) \n";
    cout << "[1] 本地快速调试(仅 zh-cn)  [2] 本地完整调试(包括 en) \n";
    cout << "[3] 完整生成                [4] en 快速合并(合并结束将自动打开调试) \n";
    cout << "请注意, 不要在本地调试开启时使用该程序!!\n";
    cout << "请输入操作标号: ";
    int op; cin >> op;
    switch(op)
    {
        case 0: // help
            cout << "-------------------------------------\n";
            cout << "[1] 不生成文件, 最基础且快速的本地调试\n";
            cout << "[2] 在 zh-cn 和 en 目录下均生成文件, 并将 en 目录下的文件复制到根目录的 public 文件夹\n";
            cout << "[3] 同 case2 , 只不过不开调试, 需要手动输入 hexo d 才能部署\n";
            cout << "[4] 在本地调试后, 手动生成 en 站并移动到 zh-cn 的 public 目录下, 便于调试所有站\n";
            cout << "    「依赖关系」: 建议在使用 [1] 之后再使用 [4]\n";
            cout << "-------------------------------------\n";
            cout << "程序结束!\n"; break;

        case 1: // 不生成文件,最基础且快速的本地调试
            system("cd /Users/qry/q779.github.io && hexo clean && hexo s");
            cout << "程序结束!\n"; break;

        case 2: // 在 zh-cn 和 en 目录下均生成文件,并将 en 目录下的文件复制到根目录的 public 文件夹
            system("cd /Users/qry/q779.github.io && hexo clean && hexo g");
            system("cd /Users/qry/q779.github.io/en && hexo clean && hexo g");
            system("cd /Users/qry/q779.github.io");
            system("cp -r /Users/qry/q779.github.io/en/public/. /Users/qry/q779.github.io/public/en/ && hexo s");
            cout << "程序结束!\n"; break;

        case 3: // 同 case2 ,只不过不开调试,需要手动输入 hexo d 才能部署
            system("cd /Users/qry/q779.github.io && hexo clean && hexo g");
            system("cd /Users/qry/q779.github.io/en && hexo clean && hexo g");
            system("cd /Users/qry/q779.github.io");
            system("cp -r /Users/qry/q779.github.io/en/public/. /Users/qry/q779.github.io/public/en/");
            cout << "程序结束!\n"; break;

        case 4: // 在本地调试过后,手动生成 en 站并移动到 zh-cn 的 public 目录下,便于调试所有站
            system("cd /Users/qry/q779.github.io/en && hexo clean && hexo g");
            system("cd /Users/qry/q779.github.io && mkdir -p public");
            system("cp -r /Users/qry/q779.github.io/en/public/. /Users/qry/q779.github.io/public/en/ && hexo s");
            cout << "程序结束!\n"; break;
            
        default:
            cout << "非法输入, 程序将退出! \n"; break;
    }
    return 0;
}

文章作者: q779
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 q779 !
评论
  目录