下林明正のブログ

個人的かつ雑多なブログです。

はてなブログのエンジニア向け機能を調べてみる

いまいちどんな機能があるのか分からないので、わかった範囲内でメモをする。

Markdownモード

Markdown記法に対応しました - はてなブログ開発ブログ

記事をMarkdownで書くことができる。管理画面から編集モードを変更することで利用可能。 bタグの類なども併用できる(気持ち悪いけど)。

スーパーpre記法

はてなダイアリーでおなじみの記法。ソースコードがシンタックスハイライトされるのでよく利用される。

アクセス解析で見られるデータを過去30日分に増やしました - はてなブログ開発ブログ

スーパーpre記法のシンタックスハイライトについて、はてなダイアリーで使用できるものすべてに対応しました。さらに、CoffeeScriptやioなど、新たにいくつかの言語にも対応しました

ということで既にはてなダイアリーは超えているらしい。 はてなブログの雰囲気からいってもしかしたらこのあと更に対応言語が増えているかも知れない(未確認)。

ただし、Markdownモードだとスーパーpre記法は併用できない。

# The Greeter class
class Greeter
  def initialize(name)
    @name = name.capitalize
  end

  def salute
    puts "Hello #{@name}!"
  end
end

# Create a new object
g = Greeter.new("world")

# Output "Hello World!"
g.salute

Markdownモードでコードの貼り付け(行頭に4スペース入れるやつ)をしてもシンタックスハイライトはされないようだ。しかし、後述のgist記法で解決できる。

gist記法、TeX記法

はてなブログの新記法 - ヤルキデナイズド

公式での告知を探してみたけど、特に見つからなかった……試しに埋め込んでみる。

[gist:3300610]

美しいですね。

[tex:f(x)=\int_0^{x}g(t)dt]

f(x)=\int_0^{x}g(t)dt

僕はTeXを知らんのですが、便利そうですね。

さらに、はてなダイアリーTeX記法はリファラか何かでアクセス制御をしている様子でフィードリーダーからだと正常に表示されませんでしたが、はてなブログTeX記法はフィードリーダーからでも正常に表示できる様子です。

外部リソースの埋め込み

外部サイト埋め込み機能を強化し、Twitterのツイートなどを簡単に貼れるようにしました - はてなブログ開発ブログ

[http://www.slideshare.net/akimasashimobayashi/kyotorb-121108:embed]

[http://www.youtube.com/watch?v=zg8ZVAFRitI:movie]

[http://www.youtube.com/watch?v=zg8ZVAFRitI:embed]

oEmbedというプロトコルに対応しているものならこのように埋め込めるらしい(先日のSlideshareは普通にiframeタグで埋め込んでいたけど、その必要は全く無かった…)。

gistに関してもgist記法ではなくこの方法でも埋め込めるようだ。

続きを読む記法

はてな記法モードにしても使えない様子。

はてなブログで「続きを読む」記法 - カワイイはつくれる

頑張って自前で用意している人たちもいるようだ。

キュレーション

記事編集時のサイドバーから自分のTwitterの発言とかをクリックするだけで貼り付けられる。

はてブも、

はてなブログ1周年! ありがとうキャンペーンを開始します - はてなブログ開発ブログ

ナウな話題に言及するのに便利そう。

まとめ

はてなダイアリーで使われていたエンジニアが使いそうな機能はほぼはてなブログにあった。 それに加え、様々な便利機能が追加されていた。

しかし、ヘルプを眺めても一切その辺りに言及がなく、知っている人は知っている、みたいな状態になっていた。これはちょっともったいないと思う。

みさわ

もしかしたらまだまだ良い機能があるかも知れない。ご存知の方はぜひ教えて欲しいです。

追記

GitHub Flavored Markdown - Introduction

はてブロはGitHub Flavored Markdownに対応しているので、

```ruby

みたいな書き方でどうやらシンタックスハイライトしつつコード引用できるようだ。

# The Greeter class
class Greeter
  def initialize(name)
    @name = name.capitalize
  end
 
  def salute
    puts "Hello #{@name}!"
  end
end
 
# Create a new object
g = Greeter.new("world")
 
# Output "Hello World!"
g.salute