Hugoで小説サイトを作成する その4

目次

サマリーに「……」を付ける。


これです。なんかぶっ切れてて変ですよね。私はなんか気になります。ので、「……」を付け足して、まだ続きがありますよーという風に変更します。
テーマの_default/summary.html"をコピーし、ルートディレクトリのlayouts/_defaurt/に入れます。

layouts/_defaurt/summary.html"

	<div class="content list__excerpt post__content clearfix">
		{{ .Summary }}…… ⇐ これを足すだけ
	</div>

15行目に「……」を足すだけです。

スタイルシートでレイアウトを変更し、ダークモードで表示きるようにする。

基本、小説サイトは字が大きいほうが見やすいので、いつも真っ先に変更しています。あとはそれぞれの好みです。
スマホの普及でレスポンシブ対応が当たり前になり、それに合わせてレイアウト変更、また、近年はダークモード対応というところも増えてきました。私も年のせいか明るい画面が苦手で、会社でも家でもダークモードで作業しています。
というわけで、重い腰を上げてダークモード対応にサイトを変えます。(必要なレイアウト変更は終了しているものとします)

(1)config.tomlでcustom.cssがどのように指定されているか見ます。大体はルートディレクトリのstaticフォルダの中です。

├─static
│  ├─css
│  |   ├─custom.css
│  |  └─share.css

(2)custom.cssに「@media (prefers-color-scheme: dark) {}」と記述します。

static/custom.css

@media (prefers-color-scheme: dark) {
	}

(3)firefoxにサイト画面を表示させ、右クリックし、調査をクリックします。
一番左の矢印をクリックし、変更させたい部分のセレクタを表示させます。

次に、変更したい要素を入力すると、その要素だけ変わります。変更したセレクタをcustom.cssに記述します。

static/custom.css

@media (prefers-color-scheme: dark) {
  body {
    background: black; # #000でも可
  }
}

こんな感じで、ダークモードで変更したい部分を指定し、custom.cssの@media (prefers-color-scheme: dark) セレクタに記述していきます。
完成したのがこれです。 上の部分が普通のレイアウト変更、 ずいぶん下にダークモード変更が記述されています。 static/custom.css

body {
  font-family: "メイリオ", "Meiryo", 'Lucida Grande', "sans-serif";
  font-size: 16px;
  font-size: .98rem;
  line-height: 1.8;
  background: #f0f0f0;
  word-wrap: break-word;
}

.wrapper {
  padding: 50px;
  background: #f8f8f8;
}

.logo {
  background: #f8f8f8;
}

.menu__list {
  background: #333333;
}

a {
  color: #4682b4;
}

p {
  color: #444;
}

.kuhaku {
  margin: 50px 0;
  height: 2px;
  border: 0;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 20px;
  margin: 0 0 1.25rem;
  font-weight: 300;
  line-height: 1.3;
  color: #333;
}

h1 {
  font-size: 32px;
  font-size: 1.8rem;
}

h2 {
  font-size: 1.6rem;
}

h3 {
  font-size: 1.4rem;
}

h4 {
  font-size: 1.2rem;
}

h5 {
  font-size: 0.9rem;
}

h6 {
  font-size: 0.7rem;
}

.toc {
  background: #f9f9f9;
}

.toc__title {
  padding: 1px 10px;
}

.post__title {
  color: #999;
}

pre {
  color: #f9f9f9;
}

pre, code {
  background-color: #555;
  border: 1px solid #555;
  line-height: 1;
}


/* Button */

.menu__btn-title {
  background: #333333;
}

.btn {
  font-weight: 200;
  background: #333333;
  color: #fff;
}

.tags__item {
  float: left;
  margin: 0 6px 6px 0;
  margin: 0 .375rem .375rem 0;
  text-transform: uppercase;
  background: #999999;
}

.tags__link, .tags__link:hover {
  padding: 5px 10px;
}

.clap {
  margin-top: 50px;
  margin-bottom: 50px;
  text-align: center;
}

.footer {
  background: #333333;
}

@media screen and (max-width: 900px) {
  .wrapper {
    padding: 40px;
  }
}

@media screen and (max-width: 620px) {
  .wrapper {
    padding: 20px;
  }
  h1 {
    font-size: 1.5rem;
  }
  h2 {
    font-size: 1.3rem;
  }
  h3 {
    font-size: 1.1rem;
  }
  h4 {
    font-size: 0.9rem;
  }
  h5 {
    font-size: 0.7rem;
  }
  h6 {
    font-size: 0.5rem;
  }
  .main__title {
    font-size: 28px;
    font-size: 1.5rem;
  }
}

@media (prefers-color-scheme: dark) { # ⇐ 以下、ダークモード変更部分
  body {
    background: black;
  }
  .logo {
    background: #333;
  }
  .logo__title {
    color: white;
  }
  .logo__tagline {
    color: white;
    border-top: 1px solid white;
  }
  .menu__list, .js .menu__list {
    background: #000;
  }
  .menu__link {
    background: #000;
  }
  .wrapper {
    background: #333;
  }
  .widget-search__form {
    background: #333;
  }
  .widget-search__field {
    background: #e3d5d5;
    border: 1px solid #999;
  }
  a {
    color: #f7d28b;
  }
  a:hover {
    color: #fff;
  }
  .content a, .warning a, .authorbox__description a {
    color: #f7d28b;
  }
  .clearfix {
    display: block;
    color: #fff;
  }
  h1, h2, h3, h4, h5, h6 {
    color: #fff;
  }
  .post__title {
    color: white;
  }
  .meta, .meta a {
    color: silver;
  }
  .meta__text {
    color: silver;
  }
  p {
    color: #c8c7c7;
  }
  .toc {
    background: #555;
    border-color: #333;
  }
  .toc__menu a {
    color: #e1dada;
    border-bottom: 1px solid #333;
  }
  pre code {
    color: #d2cece;
  }
  .menu__btn-title {
    background: #555;
  }
  .tags__badge {
    background: #f7d28b;
  }
  .btn {
    background: #f7d28b;
    color: #3c2e2e;
  }
}

忘れてました。ソーシャルアイコンも変更しなければ。こちらはshare.cssの後半部分を変更するだけです。
static/css/share.css

#後半部分に記述
@media (prefers-color-scheme: dark) {

.sns_button {
  box-shadow: inset 0 0 0 2px #f7d28b;
}

.sns_button a {
  color: #f7d28b;
}

.sns_button:hover {
  box-shadow: inset 0 0 0 22px silver;
}

見事に変わっていますね。ようやく自分が望むサイトが作成されました!

後は、Filezillaで、soyo2フォルダの中にあるpublicフォルダの中身をアップロードするだけ です。

最後に

こんな感じで作れてしまいますが、hugoでサイト作成し、自分でサーバーを借りてサイト運営することは、自分で自分の面倒を見れる人に限られます。何が起こっても自己責任です。一方、有料ブログや投稿サイトだと、小説のバックアップだけでほぼ管理はありません。書くことに集中したい方はそちらのほうがよいでしょう。サイト運営はドツボにはまりやすいので、書くのも管理するのも好きという方にしかお勧めできませんね(^^)。 hugoはモジュールで管理すればぐんと楽になりますが、初心者の私にはエラーが多く、面倒なので当面は見送ります。こちらでは、原始的なhugoのサイトの作り方になります。ご了承ください。

広告と投稿サイトのルールが嫌なのが、サイト管理する一番の理由です。でも、読んでもらうにはいくつか投稿せざるを得ませんし、そのサイトの魅力もたっぷりあるのも否めません。何があっても、サーバーのルールさえ守っていれば小説は消えないのが、個人サイトの最大の強みです。