diff options
author | wlt_lain | 2013-04-16 22:47:07 -0700 |
---|---|---|
committer | wlt_lain | 2013-04-16 23:04:24 -0700 |
commit | e6caec107ce1325ea5866c10d9f7000e75608180 (patch) | |
tree | b37e0d4c0a2549b1b5df5743de775d692326fa54 /sbmcommentsviewer.js | |
parent | 0e04b9204af46ae55d47120394af7b669bc1d835 (diff) | |
download | vimperator-plugins-e6caec107ce1325ea5866c10d9f7000e75608180.tar.bz2 |
fix #40 drop E4X sbmcommentsviewer.js
Diffstat (limited to 'sbmcommentsviewer.js')
-rw-r--r-- | sbmcommentsviewer.js | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/sbmcommentsviewer.js b/sbmcommentsviewer.js index fb9c647..a049432 100644 --- a/sbmcommentsviewer.js +++ b/sbmcommentsviewer.js @@ -12,7 +12,7 @@ var PLUGIN_INFO = xml` viewSBMComments [url] [options] url : 省略時は現在のURL options: - -f, -format : 出力時のフォーマット(`,'区切りのリスト) + -f, -format : 出力時のフォーマット(${'`'},'区切りのリスト) (default: id,timestamp,tags,comment) let g:def_sbm_format = ... で指定可能 -t, -type : 出力するSBMタイプ @@ -74,27 +74,28 @@ SBMContainer.prototype = { //{{{ )); }, toHTML: function(format, countOnly){ - var label = ` - {this.faviconURL ? <img src={this.faviconURL} width="16" height="16" style="vertical-align: middle; margin-right: 5px;" /> : ``} - {manager.type[this.type] + ' ' + this.count + '(' + this.entries.length + ')'} - {this.pageURL ? <a href="#" highlight="URL" style="margin-left: 5px;">{this.pageURL}</a> : ``} + var label = xml` + ${this.faviconURL ? xml`<img src=${this.faviconURL} width="16" height="16" style="vertical-align: middle; margin-right: 5px;" />` : ``} + ${manager.type[this.type] + ' ' + this.count + '(' + this.entries.length + ')'} + ${this.pageURL ? xml`<a href="#" highlight="URL" style="margin-left: 5px;">${this.pageURL}</a>` : ``} `; if (countOnly){ return label; } else { - let xml = <div highlight="CompGroup" class="liberator-sbmcommentsviewer" style="line-height: 1.6;"> - <div highlight="Completions"><div highlight="CompTitle"><li highlight="CompResult">{label}</li><li highlight="CompDesc"></li></div></div> - </div>; + let html = xml``; let self = this; - xml.* += (function(){ - var div = ``; + html = xml`${html}${(function(){ + var div = xml``; self.entries.forEach(function(e){ if (isFilterNoComments && !e.comment) return; - div += e.toHTML(format); + div = xml`${div}${e.toHTML(format)}`; }); return div; - })(); - return xml; + })()}`; + html = xml`<div highlight="CompGroup" class="liberator-sbmcommentsviewer" style="line-height: 1.6;"> + <div highlight="Completions"><div highlight="CompTitle"><li highlight="CompResult">${label}</li><li highlight="CompDesc"></li></div></div> + ${html}</div>`; + return html; } } }; //}}} @@ -125,39 +126,40 @@ SBMEntry.prototype = { //{{{ toHTML: function(format){ function makeLink(str, withLink){ let s = str; - let result = XMLList(); + let result = xml``; while (s.length > 0) { let m = s.match(/(?:https?:\/\/|mailto:)\S+/); if (m) { - result += `{s.slice(0, m.index)}<a href={withLink ? m[0] : '#'} highlight="URL">{m[0]}</a>`; + result = xml`${result}${s.slice(0, m.index)}<a href=${withLink ? m[0] : '#'} highlight="URL">${m[0]}</a>`; s = s.slice(m.index + m[0].length); } else { - result += `{s}`; + result = xml`${result}${s}`; break; } } return result; } - var xml = <div highlight="Completions" class="liberator-sbmcommentsviewer-content" style="margin: 0; padding: 3px 5px; border-bottom: 1px dotted;"/>; + var entry = xml``; var self = this; format.forEach(function(colum){ switch(colum){ case 'id': - xml.* += <span class="liberator-sbmcommentsviewer-id" style="margin-right: 10px;">{self.userIcon ? `<img src={self.userIcon} width="16" height="16" style="margin-right: 5px; vertical-align: middle;"/>{self.id}` : `{self.id}`}</span>; + entry = xml`${entry}<span class="liberator-sbmcommentsviewer-id" style="margin-right: 10px;">${self.userIcon ? xml`<img src=${self.userIcon} width="16" height="16" style="margin-right: 5px; vertical-align: middle;"/>${self.id}` : `${self.id}`}</span>`; break; case 'timestamp': - xml.* += <span class="liberator-sbmcommentsviewer-timestamp" style="margin-right: 10px;">{self.formatDate()}</span>; + entry = xml`${entry}<span class="liberator-sbmcommentsviewer-timestamp" style="margin-right: 10px;">${self.formatDate()}</span>`; break; case 'tags': - xml.* += <span class="liberator-sbmcommentsviewer-tags" highlight="Tag" style="margin-right: 10px;">{self.tags.join(',')}</span>; break; + entry = xml`${entry}<span class="liberator-sbmcommentsviewer-tags" highlight="Tag" style="margin-right: 10px;">${self.tags.join(',')}</span>`; break; case 'comment': - xml.* += <span class="liberator-sbmcommentsviewer-comment" style="margin-right: 10px; white-space: normal;">{makeLink(self.comment)}</span>; break; + entry = xml`${entry}<span class="liberator-sbmcommentsviewer-comment" style="margin-right: 10px; white-space: normal;">${makeLink(self.comment)}</span>`; break; default: - xml.* += <span>-</span>; + entry = xml`${entry}<span>-</span>`; } }); - return xml; + entry = xml`<div highlight="Completions" class="liberator-sbmcommentsviewer-content" style="margin: 0; padding: 3px 5px; border-bottom: 1px dotted;">${entry}</div>`; + return entry; }, formatDate: function(){ if (!this.timeStamp) return ''; |