Project

General

Profile

Actions

QA #1037

open

URL貼り付けだけでリンク先のタイトル・要約を表示する

Added by 黒 猫 over 2 years ago. Updated over 2 years ago.

Status:
回答済
Priority:
通常
Assignee:
Category:
-
Target version:
Start date:
10/26/2019
Due date:
% Done:

0%

Estimated time:

Description

■現象/要望

RedmineでURLを貼り付けたとき、SNSやメッセンジャーアプリのように
カード形式のプレビュー表示ができると良い。
(タイトル付きでリンクを書くのが面倒くさい)

■解決策

「はてなブログカード」サービスを利用する。
https://help.hatenablog.com/entry/blogcards

はてなブログ以外での利用について、はてなさんに問い合わせたところ
「使用に特に制限はない。ただしサーバ負荷が著しく高いなどの場合、使用をお断りすることがある」とのこと。
一般的なHPレベルの規模であれば問題なさそうである。

(類似したものにembed.flyというサービスがあるが、こちらは有料)

■対応状況

ViewCustomizeプラグイン導入で実現可能。
URLリンクを探して、すぐ下にブログカードを挿入する。

表示例: スクリーンショット 2019-10-26 13.04.07.png

表示のカスタマイズ実装例:

//----------------------------------------
// URLリンクのサムネイル表示(はてなブログカード).
// @pattern .*
//----------------------------------------
$(function () {

    // Wikiエリア内のURLリンクを全て調査.
    $('div.wiki a[href^=http]').each(function (index, element) {

        // リンク先と文字列が同じ=URLリンクと判定.
        if ($(element).text() == $(element).attr('href')) {

            var url = $(element).attr('href');
            var iframe = $('<iframe>')
                .prop('class', 'hatenablogcard')
                .prop('frameborder', '0')
                .prop('scrolling', 'no')
                .prop('src', 'https://hatenablog-parts.com/embed?url=' + url);
            $(element).after(iframe);
            $(element).after('<br>');
        }
    });
})

■補足

「はてなブログカード」は外部サービスであるため、
一般公開されていないサイト(認証が必要なRedmineの内部リンクも含む)のタイトル・要約の取得はできない。


Files

Actions

Also available in: Atom PDF