らっちゃいブログ

日々の学びと気づきを発信するブログ

Qiitaがスライドモードをリリースしたみたいなので試してみた

Qiita がマークダウンでスライドを作れるようにしてくれたらしいので、さっそく試してみました。

使い方

Qiita の記事作成画面にて、『スライドモード』にチェックを入れます。

f:id:racchai:20160621093150p:plain

あとは通常のマークダウンを書きつつ、--- を挿入してページ分割していくだけです。

直感的な仕様なので簡単に使い始められますね。

実際にスライドを作ってみる

こんな感じでマークダウンを書いてみました。

# らっちゃいブログ

* Python
* ポエム
* などなど

---

# コードも書くよ

 ```py
print 'Hello World!'
 ```

----

# おしまい ![profile.gif](https://qiita-image-store.s3.amazonaws.com/0/125245/15ab03b8-b4ec-00c3-e64e-a14ff580df93.gif)

http://racchai.hatenablog.com/

そして完成形がこちら。Qiita 記事の上部にスライドが表示されています。

スライドモードを試してみたよ - Qiita

f:id:racchai:20160621094926p:plain

発表時にはフルスクリーン化してしまえばいいので、楽ちんでいいですね。

ひとこと

これまでは github の gist に書いてそのまま表示したり js 当ててスライド形式に変換したりしていましたが、今後は Qiita で発表資料が作れてしまうわけですね。

今回のように限定公開にすれば、仲間内での勉強会などにも活躍しそうです。

MicrosoftからMonacoエディタがリリースされました!

VSCodeやTypeScript Playgroundで使われているエディタを部分的に切り出したものが、Monacoとしてリリースされました。

https://microsoft.github.io/monaco-editor/index.html

今回は npm module としての提供となっています。

なにがうれしいのか

百聞は一見に如かずです。こちらをご覧ください。

Monaco Editor Playground

これまではこういった開発ツールを作ったり、Atomのような独自のエディタを作る際には一から自分で作る必要がありましたが、今後は Monaco をベースに開発することが可能となります。

あくまでプログラムやマークアップを記述するためのものだと思いますので、ブログ記事を書いたりするようなリッチテキストエディタには向かないかもしれません。

Monaco の機能

VSCodeのエディタそのままなので機能を挙げていけばキリがないのですが、このあたりの機能が普通に使えます。

  • IntelliSense
  • 言語毎のシンタックスチェックおよび色付け
  • テーマ切り替え
  • 差分(diff)表示

ただし、シンタックスチェックの方はTypeScript, JavaScript, CSS, LESSの対応のみとなっています。

試してみる

せっかくなので手元で簡単に動かしてみようと思います。

インストール

まずはインストールから。npm モジュールなので、コマンド一発で入ります。

$ npm install monaco-editor

HTML作成

公式サイトとほぼ同じですが、index.html として以下を作成します。公式のものと違うのは、script のパスをnpmでインストールした位置に変更しています。

<!DOCTYPE html>
<html>
<head>
   <meta http-equiv="X-UA-Compatible" content="IE=edge" />
   <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>
<body>
 
<div id="container" style="width:800px;height:600px;border:1px solid grey"></div>
 
<script src="node_modules/monaco-editor/min/vs/loader.js"></script>
<script>
   require.config({ paths: { 'vs': 'node_modules/monaco-editor/min/vs' }});
   require(['vs/editor/editor.main'], function() {
       var editor = monaco.editor.create(document.getElementById('container'), {
           value: [
               'function x() {',
               '\tconsole.log("Hello world!");',
               '}'
           ].join('\n'),
           language: 'javascript'
       });
   });
</script> 
</body>
</html>

動作確認

Webサーバを設定するほどのものでもないので、python で簡易HTTPサーバを立ち上げて確認します。

$ python -m SimpleHTTPServer 8888

ブラウザで http://localhost:8888/index.html にアクセスすれば、このようにエディタが表示されるはずです。

f:id:racchai:20160621145656p:plain

まとめ

Atomが登場し、Eclipseクラウド上で動いたりと昨今のエディタは徐々にブラウザベースへ移行している印象ですが、いまいちデファクトとなるエディタが決まっていません。Monacoによって、このあたりに決着を付けるすばらしいエディタが開発されることを祈っています。