ctfd を構築した友人はおそらく知っているでしょうが、ctfd では問題が多くなると、すべての問題が 1 つのページに表示されます。その場合、カテゴリ分けとページネーションのプラグインが必要になります。インターネットで検索した結果、ctfshow や buuoj のような効果を持つプロジェクトがあることがわかりました。
プロジェクトのアドレス:https://github.com/frankli0324/ctfd-pages-theme
見てみたところ、このプロジェクトは多くの人が npm エラーを報告していました。私も何度か試しましたが、私も npm エラーが発生しました。それらのエラーの意味はわかりませんが、エラーが発生しても無視しても、必要な効果を得ることができます。
ここでは、構築手順を書いておきます。私はctfd-pages-theme
のcore
ディレクトリのファイルを直接変更しました。2 つのファイルを置き換えるだけです。
- CTFd/themes/core/assets/js/pages/challenges.js
- CTFd/themes/core/templates/challenges.html
challenges.*
ファイルを直接変更した場合、ctfd-pages-themeプロジェクトのwebpack.config.jsをリポジトリのwebpack.config.jsで置き換え、npmビルドを使用する
という指示は無視して、元のwebpack.config.js
ファイルを使用してください。
前提条件が整ったら、npm ビルドを開始できます。
- npm のインストール
sudo apt install npm
- npm のインストール後、npm のソースを設定します。
npm config set registry https://registry.npm.taobao.org
- ビルド
npm i && npm run build
- 次のようなエラーがビルド中に発生した場合、npm ビルドに問題があることを示します。
ただし、エラーメッセージの上部に緑色のメッセージが表示されている場合。
これは、ページのカテゴリページが使用できることを示しています。なぜエラーが発生するのでしょうか?調べてみたところ、おそらくadmin theme
テーマに関連しているようですが、このメッセージは無視しても構いません。
- 最後のステップは、
docker-compose
を再度実行し、ctfdコンテナ
を再起動することです。
sudo docker-compose up -d
sudo docker restart 13d
効果は以下の通りです:
終わり...
画像はこちらから:https://wallhaven.cc/