らいちのヒミツ基地

公然のひみつ基地です

MENU

はてなブログに検索専用のページを作る方法

はてなブログに検索専用のページを作ってみたので作り方を解説します。

はてなブログに検索専用のページを作る方法

f:id:AzuLitchi:20190204000753j:plain
f:id:AzuLitchi:20190204000758j:plain
こんなページを作ってみました。
www.secret-base.org

f:id:AzuLitchi:20190203181204j:plain

検索専用のページ用のコード

準備

サイドバーに検索モジュールとカテゴリ一モジュールを設置してあることが前提です。
設定→詳細→headに要素を追加

f:id:AzuLitchi:20190203181230p:plain

でjQueryを読み込むコードを追加しておきます。

<script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?version=1.12.3"></script>

上記は、はてなブログのシステム側で読み込むjQueryなので、ヘッダーで読み込んでも読み込み速度はほぼ変わりません。

検索専用ページの作成

普通にエントリーで作ってもいいのでしょうけど、ここは固定ページ機能を使用。

f:id:AzuLitchi:20190203181411p:plain

ダッシュボード>固定ページから
適宜urlを設定して固定ページ作ってhtmlモードで以下コードをコピペ。

<div id="search-box"> </div>
<div id="category-box"> </div>
<style type="text/css"><!--
#search-box .search-form {
    border: 1px solid #ddd;
    border-radius: 3px;
    width: 100%;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
#search-box .search-module-input {
    -webkit-box-flex: 1;
    -ms-flex: 1 0;
    flex: 1 0;
    padding: 5px;
    color: #454545;
    background: none;
    border: none;
    outline: none;
    height: 20px;
}
#search-box .search-module-button {
    width: 24px;
    height: 24px;
    margin-right: 5px;
    background: transparent url(//blog.hatena.ne.jp/images/theme/search@2x.png) no-repeat center;
    background-size: 20px 20px;
    border: none;
    outline: none;
    color: transparent;
    overflow: hidden;
    opacity: .5;
    cursor: pointer;
}
#category-box ul{
    margin:0 8px;
}
#category-box ul.hatena-urllist li{
	display: inline-block;
	text-decoration: none;
	padding: 0px 4px;
	margin: 8px 0px;
	background: #eee;
	line-height: 200%;
}
#category-box ul.hatena-urllist {
	text-align: justify;
}
--></style>
<script>// <![CDATA[
$(window).load(function () {
$('#search-box').append($('.hatena-module-search-box').html());
$('#category-box').append($('.hatena-module-category').html());
});
// ]]></script>

プレビュー観て問題なさそげなら公開を。
適宜cssは調整してください。

技術解説

このコードで適当なdivのboxを作ってやって

<div id="search-box"> </div>
<div id="category-box"> </div>

jQueryでサイドバーからhtmlを複製しています。

<script>// <![CDATA[
$(window).load(function () {
$('#search-box').append($('.hatena-module-search-box').html());
$('#category-box').append($('.hatena-module-category').html());
});
// ]]></script>

あとはスタイルシートで整形。

<style type="text/css"></style>

のところはこのページ専用のcssです。

要は、箱作ってhtmlをコピーしてスタイルで整形してるって話です。

これって・・・?

f:id:AzuLitchi:20190204001132j:plain
検索だけならこのコード貼って「example.com」のとこだけ自分のブログに対応させるだけでOK。

<div class="hatena-module hatena-module-search-box">
  <div class="hatena-module-title">
    記事検索
  </div>
  <div class="hatena-module-body">
    <form class="search-form" role="search" action="https://example.com/search" method="get">
  <input type="text" name="q" class="search-module-input" value="" placeholder="記事を検索" required="">
  <input type="submit" value="検索" class="search-module-button">
</form>
  </div>
</div>

f:id:AzuLitchi:20190204001136j:plain
f:id:AzuLitchi:20190204001139j:plain
いいんですよ!

まとめ

需要が無さそうな上にろくでもないコードですが、はてなブログってこんなこともできるんだよ!的なアレです!
JavaScriptやcssが記事内にこんなに自由に書けるブログシステムってワクワクするじゃないですかー。

ちょっとそこのキミもはてなしない?

f:id:AzuLitchi:20190204001301j:plain

はてしない物語(岩波少年文庫) 上・下セット

はてしない物語(岩波少年文庫) 上・下セット



それではまた・・・さよならいち!・∀・)ノ