自分が使いそうな機能をあれこれプラグインにしてるが、あんまりニーズはなさそうだ。
これは色の名前で辞書を引き、
- その色をプレビュー
- 〜色などで末尾の不足があるとそれを補える
- カラーコードに変換
みたいな機能を提供する。
#ここから上はcolors.pyの内容(大量なので省略) def getColorCode(name): #colors.pyの関数を上書き if not name: return "" for i in dics: dic = dics[i] cats = dic[1] for j in cats: #category cat = cats[j] for k in cat: #array each if k.has_key(name): n = k[name] return "#" + dic[0][n] return "" def atok_plugin_run_process( a_request_data ): result_data = {} candidate_array = [] str = a_request_data[ 'composition_string' ] if str: ret = getColor(str) if ret: name = ret['name'] cc = unicode(ret['cc']) candidate_array.append( { 'hyoki' : str, 'comment_xhtml': ( u"""<?xml version="1.0" encoding="UTF-8" ?>""" """<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">""" """<head><title>preview: %s</title></head>""" """<br />""" """<center>""" """<small>preview</small><br />""" """<div style="width:100px;height:33px;background-color:%s;" />""" """</center>""" """<br />""" """</html>""" % (cc, cc) ) }) if str != name: candidate_array.append( { 'hyoki' : name, 'comment': u'末尾の不足を修正します' } ) candidate_array.append( { 'hyoki' : cc, 'comment': u'カラーコードに変換します' } ) result_data[ 'candidate' ] = candidate_array return result_data def getColor(name): ret = getColorCode(name) if ret: return {'name':name, 'cc': ret} #looseな対処 if re.search(r'\w' ,name): return None ret = getColorCode(name + u"色") if ret: return {'name':name + u"色", 'cc': ret} ret = getColorCode(name + u"茶") if ret: return {'name':name + u"茶", 'cc': ret} ret = getColorCode(name + u"ちゃ") if ret: return {'name':name + u"ちゃ", 'cc': ret} ret = getColorCode(name + u"しょく") if ret: return {'name':name + u"しょく", 'cc': ret} ret = getColorCode(name + u"いろ") if ret: return {'name':name + u"いろ", 'cc': ret} def test(): print atok_plugin_run_process({'composition_string': u'茜'}) if __name__ == '__main__': test()