プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

reST(reStructuredText)をライブプレビューできるエディタ、ReTextをMacにインストールする方法

初めに断っておきます

完全にプログラマ向けの内容です。

reSTをライブプレビューできるエディタは(Markdownに比べたら)少ないはずなので、本来なら非プログラマにも読めるように書いた方がいいとは思うのですが、この記事を書いている現在、ReTextをMacにインストールして使おうとするとどうしても中のソースコードをいじらないといけないっぽいので、非プログラマ向けに書くのは諦めました。

そういう人はこちらのリンク先を辿ると幸せになれると思います

本題

ネットの海を漂っていたら、こんな記事を見かけたので本エントリを書き始めた。

Marked で reST(reStructuredText) を リアルタイムプレビューする - Study08.net 対シンバシ殲滅用人型機動兵器

私が使っているのもMacなので同じことが出来るのだが、現在のiTunesアカウントの残金が100円を切っているため、Markedを購入できない!!

で、iTunesカードを買いに行くのも面倒でやっていないのだけど、とある理由からreSTをライブプレビューできるエディタが欲しいなあ、なんて思っていたときにこんなものを見つけました。

https://sourceforge.net/p/retext/home/ReText/

リンク先に飛んでもらえれば分かるのですが、「Linux向けのMarkdown & reStructuredTextエディタ」です。Qt製だそうです。で、以下のような特徴があるそうです。

Features

  • Full Markdown and reST support
  • Markdown extensions support
  • Tabs and live preview
  • Files auto-save option
  • HTML, PDF, ODT export; Export Extensions
  • WebPages generator
  • Google Docs uploads
  • CSS styles support
  • Syntax highlighting
  • Tags and symbols boxes for quick insert

で、見てみると"live preview"という文字が!!

というわけで、お金もなく、live previewに釣られたのでMacにインストールを試みることにしました。

インストール方法

こういうのは先人に聞くのが一番です。

MacOSXにReTextをインストールするよ - opamp_sando's blog

で、この通り作業をしていたのですが、途中で詰まったところが何カ所かあるので、それをメモ的に残しておきます。

HomebrewでPyQtを入れたら何故か動かなかった

システム環境を汚したくなかったのでHomebrewでPyQtを入れてインストールしてみようかな、と思ってやっていたら何故かPythonのmarkups(だったかな?)が認識されなくなって何度やってもダメだったので、しょうがないからHomebrewからPyQtをアンインストールして、インストーラーで入れました。そしたら何故か上手くいきました。

原因が分かってませんので、あんまり真似しない方がいいかもしれないです。

PyQtの山を越えても立ちふさがるQStringの壁…

ReTextをインストールする際には先人のリンク先にあるように

git clone git clone http://git.code.sf.net/p/retext/git retext-git
cd retext-git/ReText
python setup.py install

ってな感じのことをやった後、retext.pyと打てばReTextが起動するはず…なんですが、エラーが出るかもしれません。

この状況を再現しようと思ってvirtualenvで仮想環境を用意してエラー画面を出そうと思ったら普通に起動できてしまったので、私のやり方が悪かっただけなのかもしれませんが、以下のようなTypeErrorが発生したときに初めて試せばいいと思います。

Traceback (most recent call last):
  File "/Users/taku/.virtualenvs/retext/bin/retext.py", line 59, in <module>
    main()
  File "/Users/taku/.virtualenvs/retext/bin/retext.py", line 44, in main
    window = ReTextWindow()
  File "/Users/taku/Dropbox/Projects/ProgrammingProjects/PythonProjects/PythonApplications/third-party-apps/retext-git/ReText/window.py", line 163, in __init__
    self.aboutWindowTitle =  self.aboutWindowTitle % app_name
TypeError: unsupported operand type(s) for %: 'QString' and 'str'

結論だけ書くとReTextをアンインストールして

self.aboutWindowTitle =  self.aboutWindowTitle % app_name

となっているところを

self.aboutWindowTitle =  unicode(self.aboutWindowTitle) % app_name

と変更してpython setup.py installし直せば動くはずです。

本当はもっとスマートなやり方があるのかもしれませんが、検討するのが面倒くさかったので止めました。

目的はreSTをライブプレビューできるエディタで文書を書くことだったので、問題特定の沼にはまるわけにはいかないものでして…

まあ、そんなこんなでやっとインストールすることが出来ましたよ、という証を貼っておきます。

screenshot-of-retext

最後に

こんな風にreST押ししていますが、このブログはMarkdownで書いてますよ…はてなブログで書いているので。

…あ、石投げないで!

はてなさん、はてなブログをreSTに対応して!!