目次

前のトピックへ

Pygments による コードハイライト表示

次のトピックへ

Sphinx と git

このページ

reST と CotEditor

Emacs や vim には reST便利Scriptがたくさんあるけど、自分が愛用しているCotEditor用はなんだか少ないので、とりあえず使いそうなものだけ、ざくっと作ってみた。

CotEditor の良いところは以下を参照 * Mac - CotEditorがはげしくイカしている件

ちなみに、Emacs や vim で reST を幸せに書くための情報は以下を参照 * Emacs や vim で reST を幸せに書くための情報 ** reStructuredText(reST)をEmacsで書く際のまとめ ** rest.vim : A reStructuredText syntax mod

CotEditorのスクリプトについて

和製 Mac OS X 用プレーンテキストエディタ。 Cocoa のドキュメントベースアプリケーションです。

スクリプトはインストール後の ~/Library/Application Support/CotEditor/ScriptMenu/ 配下にファイルとして配置します。

詳細はインストール後の ~/Library/Application Support/CotEditor/ScriptMenu/_aboutScriptFolder.rtf を参照してください。

とりあえずぼそっと書いたスクリプト

code-block 自動置き換え (plain 版) / reST_code-block_PLAIN.pl

#!/usr/bin/perl
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%
use strict;
use warnings;
use encoding 'utf8';
binmode(STDERR, ':raw :encoding(utf8)');
my $insertathead = " ";
print " :: \n\n";
while (<>) {
print $insertathead,$_;
}
print "\n\n";

code-block 自動置き換え (perl 版) / reST_code-block_PERL.pl

#!/usr/bin/perl
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%
use strict;
use warnings;
use encoding 'utf8';
binmode(STDERR, ':raw :encoding(utf8)');
my $insertathead = " ";
print ".. code-block:: perl\n\n";
while (<>) {
print $insertathead,$_;
}
print "\n\n";

数字付きリスト 自動置き換え (Level 1) / reST_numList1.pl

#!/usr/bin/perl
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%
use strict;
use warnings;
use encoding 'utf8';
binmode(STDERR, ':raw :encoding(utf8)');
my $insertathead = "#. ";
while (<>) {
print $insertathead,$_;
}

セクション用アンダーライン 自動挿入 / reST_insertSectionLine.pl

#!/usr/bin/perl
# %%%{CotEditorXInput=Selection}%%%
# %%%{CotEditorXOutput=ReplaceSelection}%%%
use strict;
use warnings;
use encoding 'utf8';
binmode(STDERR, ':raw :encoding(utf8)');
my $count = 0;
my $insertathead = "";
while (<>) {
  if ( $count < length($_) ) {
       $count = bytes::length( $_ );
  }
  print $insertathead,$_;
}
print "\n";
while ( $count != 0 ) {
       print "=";
       $count--;
}