#!/usr/bin/env python
# -*- coding: utf-8 -*-
from unicodedata import east_asian_width
text = u"""reStructuredText入門
******************
このセクションは、reStructuredText(reST)の考え方や文法についての短いイントロダクションです。Sphinxユーザがドキュ
メントを作成するために十分な情報を提供します。reSTはシンプルに設計された、控えめなマークアップ言語ですので、理解するのにそれほど時間はか
からないでしょう。
See also:
本家 reStructuredTextユーザドキュメント
このドキュメント中の参照リンクは、reSTのリファレンスの個々の要素の説明にリンクしています。
段落(パラグラフ)
=========
段落(>>:duref:`ref <paragraphs>`<<)はreSTドキュメントにおける、もっとも基本的な要素です。段落は1行以上の
空行で区切られた、シンプルなテキストの固まりです。 Pythonにおいてインデントが重要な意味を持つのと同様、reSTでもインデントは重要で
す。同じ段落のすべての行は、インデントを同じ高さにそろえて、左揃えにしなければなりません。
"""
new_buff = ''
for line in text.splitlines ( ) :
line_width = 0
for c in line:
char_width = east_asian_width( c)
if char_width in u'WFA' :
line_width += 2
else :
line_width += 1
if line_width > 60 :
new_buff += '\n ' + c
line_width = 1
else :
new_buff += c
new_buff += '\n '
print new_buff
IyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiMgLSotIGNvZGluZzogdXRmLTggLSotCgpmcm9tIHVuaWNvZGVkYXRhIGltcG9ydCBlYXN0X2FzaWFuX3dpZHRoCgp0ZXh0ID0gdSIiInJlU3RydWN0dXJlZFRleHTlhaXploAKKioqKioqKioqKioqKioqKioqCgrjgZPjga7jgrvjgq/jgrfjg6fjg7Pjga/jgIFyZVN0cnVjdHVyZWRUZXh0KHJlU1Qp44Gu6ICD44GI5pa544KE5paH5rOV44Gr44Gk44GE44Gm44Gu55+t44GE44Kk44Oz44OI44Ot44OA44Kv44K344On44Oz44Gn44GZ44CCU3BoaW5444Om44O844K244GM44OJ44Kt44OlCuODoeODs+ODiOOCkuS9nOaIkOOBmeOCi+OBn+OCgeOBq+WNgeWIhuOBquaDheWgseOCkuaPkOS+m+OBl+OBvuOBmeOAgnJlU1Tjga/jgrfjg7Pjg5fjg6vjgavoqK3oqIjjgZXjgozjgZ/jgIHmjqfjgYjjgoHjgarjg57jg7zjgq/jgqLjg4Pjg5foqIDoqp7jgafjgZnjga7jgafjgIHnkIbop6PjgZnjgovjga7jgavjgZ3jgozjgbvjganmmYLplpPjga/jgYsK44GL44KJ44Gq44GE44Gn44GX44KH44GG44CCCgpTZWUgYWxzbzoKCiAgIOacrOWutiByZVN0cnVjdHVyZWRUZXh044Om44O844K244OJ44Kt44Ol44Oh44Oz44OICiAgIOOBk+OBruODieOCreODpeODoeODs+ODiOS4reOBruWPgueFp+ODquODs+OCr+OBr+OAgXJlU1Tjga7jg6rjg5XjgqHjg6zjg7Pjgrnjga7lgIvjgIXjga7opoHntKDjga7oqqzmmI7jgavjg6rjg7Pjgq/jgZfjgabjgYTjgb7jgZnjgIIKCgrmrrXokL0o44OR44Op44Kw44Op44OVKQo9PT09PT09PT0KCuauteiQvSg+PjpkdXJlZjpgcmVmIDxwYXJhZ3JhcGhzPmA8PCnjga9yZVNU44OJ44Kt44Ol44Oh44Oz44OI44Gr44GK44GR44KL44CB44KC44Gj44Go44KC5Z+65pys55qE44Gq6KaB57Sg44Gn44GZ44CC5q616JC944GvMeihjOS7peS4iuOBrgrnqbrooYzjgafljLrliIfjgonjgozjgZ/jgIHjgrfjg7Pjg5fjg6vjgarjg4bjgq3jgrnjg4jjga7lm7rjgb7jgorjgafjgZnjgIIgUHl0aG9u44Gr44GK44GE44Gm44Kk44Oz44OH44Oz44OI44GM6YeN6KaB44Gq5oSP5ZGz44KS5oyB44Gk44Gu44Go5ZCM5qeY44CBcmVTVOOBp+OCguOCpOODs+ODh+ODs+ODiOOBr+mHjeimgeOBpwrjgZnjgILlkIzjgZjmrrXokL3jga7jgZnjgbnjgabjga7ooYzjga/jgIHjgqTjg7Pjg4fjg7Pjg4jjgpLlkIzjgZjpq5jjgZXjgavjgZ3jgo3jgYjjgabjgIHlt6bmj4PjgYjjgavjgZfjgarjgZHjgozjgbDjgarjgorjgb7jgZvjgpPjgIIKIiIiCgpuZXdfYnVmZiA9ICcnCmZvciBsaW5lIGluIHRleHQuc3BsaXRsaW5lcygpOgoJbGluZV93aWR0aCA9IDAKCWZvciBjIGluIGxpbmU6CgkJY2hhcl93aWR0aCA9IGVhc3RfYXNpYW5fd2lkdGgoYykKCQlpZiBjaGFyX3dpZHRoIGluIHUnV0ZBJzoKCQkJbGluZV93aWR0aCArPSAyCgkJZWxzZToKCQkJbGluZV93aWR0aCArPSAxCgoJCWlmIGxpbmVfd2lkdGggPiA2MDoKCQkJbmV3X2J1ZmYgKz0gJ1xuJyArIGMKCQkJbGluZV93aWR0aCA9IDEKCQllbHNlOgoJCQluZXdfYnVmZiArPSBjCgluZXdfYnVmZiArPSAnXG4nCgpwcmludCBuZXdfYnVmZgo=