• R/O
  • HTTP
  • SSH
  • HTTPS

feedblog_ext: Commit

JavaScriptのみで記述されたブログツール・ソフトウェアです。表示にExt JSを使用します


Commit MetaInfo

Revision53f2066a4f122d5d55bf7eb63547ba2485062714 (tree)
Time2009-06-06 16:48:26
Authorelixirel <elixirel@user...>
Commiterelixirel

Log Message

modified regexp for triming

Change Summary

Incremental Difference

--- a/js/lunardial/feedblog_ext.js
+++ b/js/lunardial/feedblog_ext.js
@@ -120,7 +120,8 @@ function requiredElementError(parent, name){
120120 }
121121
122122 function xmlAttrContentEscape(str){
123- return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
123+ // return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
124+ return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/^[ ]+/mg, "&nbsp;").replace(/^[\t]+/mg, "");
124125 }
125126
126127 /**
@@ -302,8 +303,10 @@ function searchMode(urlhash){
302303 '<div id="drawPanel"><div id="drawItem" class="code"><\/div><\/div>' +
303304 '<div style="line-height: ' +
304305 entrySpan +
305- 'px;"><br/></div>' +
306- '<div><table class="pager" width="' + extPanelWidth + '" cellspacing="1"><tbody>' +
306+ 'px;"><br/></div>' +
307+ '<div><table class="pager" width="' +
308+ extPanelWidth +
309+ '" cellspacing="1"><tbody>' +
307310 '<tr><td align="left"><<< 前の3件を表示</td><td align="center">[ 0 ]</td><td align="right">次の3件を表示 >>></td></tr>' +
308311 '<tr><td class="pager" colspan="3">1件~1件(全1件)目の記事を表示中<br/></td></tr></tbody></table></div>';
309312 document.getElementById("drawItem").innerHTML = contentsWithid(entry.content, entry.id);
--- a/js/lunardial/feedblog_ext_search.js
+++ b/js/lunardial/feedblog_ext_search.js
@@ -56,8 +56,8 @@ var loadedEntries;
5656 * Extへのイベント登録です。すべてのDOMが利用可能になった時点で実行されます。
5757 */
5858 $(document).ready(function(){
59- generateForm();
60-
59+ generateForm();
60+
6161 // テキストボックスをExt js化し、空欄入力を拒否します
6262 var searchTextBox = new Ext.form.TextField({
6363 applyTo: "searchWord",
@@ -102,7 +102,9 @@ function generateForm(){
102102 "<input type='checkbox' id='isAsyncOn'/><label for='isAsyncOn'>非同期通信モードで検索を行う</label><br/>" +
103103 "<span style='font-weight: bold;'>[ 注意 ]</span>非同期通信モードをオンにすると速度は上昇しますが、検索の順序が保障されません。<br/><br/>" +
104104 "▼ 検索対象ログ選択<br/><div id='logSelecter'/></div><input type='checkbox' id='allSearchCheck' checked='checked'/><label for='allSearchCheck'>すべてのログに対して検索を行う</label>" +
105- "<br/><a href='" + blogUrl + "'>トップページへ戻る</a><br/></form></td></tr></tbody></table>"
105+ "<br/><a href='" +
106+ blogUrl +
107+ "'>トップページへ戻る</a><br/></form></td></tr></tbody></table>"
106108 document.getElementById("genForm").innerHTML = formBuffer;
107109
108110 var resultAreaBuffer = "<table align='center'><tbody><tr><td class='resultarea' style='width: " + resultAreaWidth + "px;'>" +
@@ -229,7 +231,8 @@ function validateText(contents){
229231 * @param {String} str エスケープを行いたい文字列
230232 */
231233 function xmlAttrContentEscape(str){
232- return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
234+ // return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
235+ return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/^[ ]+/mg, "&nbsp;").replace(/^[\t]+/mg, "");
233236 }
234237
235238 /**
--- a/js/lunardial/feedblog_gen.js
+++ b/js/lunardial/feedblog_gen.js
@@ -288,7 +288,8 @@ function Entry(obj){
288288
289289 if (inputValidateMode == 1) {
290290 this.content = this.content.replace(/[\r\n]|\r\n/g, "");
291- this.content = this.content.replace(/<br>/ig, "\n");
291+ this.content = this.content.replace(/<br[ \/]*>/ig, "\n");
292+ this.content = this.content.replace(/^[ \t]*/mg, "");
292293 }
293294 }
294295
@@ -363,7 +364,7 @@ function convertContent(content){
363364 * @param {String} str エスケープを行う文字列
364365 */
365366 function xmlAttrContentEscape(str){
366- return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
367+ return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/^[ ]+/mg, "&nbsp;").replace(/^[\t]+/mg, "");
367368 }
368369
369370 /**
@@ -371,7 +372,7 @@ function xmlAttrContentEscape(str){
371372 * @param {String} str 逆エスケープを行う文字列
372373 */
373374 function xmlAttrContentUnescape(str){
374- return str.replace.replace(/&quot;/g, '"').replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
375+ return str.replace(/^[\t]+/mg, "").replace(/^[ ]+/mg, "&nbsp;").replace(/&quot;/g, '"').replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
375376 }
376377
377378 /**
--- a/js/lunardial/feedblog_mixi.js
+++ b/js/lunardial/feedblog_mixi.js
@@ -35,7 +35,7 @@ function logXMLLoader(){
3535 jQuery.ajax({
3636 url: logXmlUrl,
3737 method: "GET",
38- error: showError,
38+ // error: showError,
3939 success: function(xmlData){
4040 var separateTag = xmlData.getElementsByTagName("file");
4141 var fileList = new Array(separateTag.length);
@@ -127,7 +127,7 @@ function entryLoader(index){
127127 */
128128 function refleshEntrylistBox(){
129129 var stringBuffer = [];
130- stringBuffer.push("<form name='logform'><select name='logbox' style='width: " + comboWidth + "px' onchange='entryLoader(this.options[this.selectedIndex].value)'>");
130+ stringBuffer.push("<form name='logform'><select id='logBox' style='width: " + comboWidth + "px' onchange='entryLoader(this.options[this.selectedIndex].value)'>");
131131 for (var i = 0; i < entryList.length; i++) {
132132 stringBuffer.push("<option value='" + i + "'/>" + entryList[i].title + "</option>");
133133 }
@@ -213,8 +213,13 @@ function validateText(contents){
213213 }
214214
215215 // ブロック要素のタグが存在した場合、改行をその後に挿入します。
216- contents = contents.replace(/<(div|h\d|p)[^>]*>/ig, "-----------------------------------------------------------------------------\n");
217- contents = contents.replace(/(\n|)<\/(div|h\d|p)>/ig, "\n-----------------------------------------------------------------------------\n");
216+ if (document.getElementById("isCoverBlockTag").checked) {
217+ contents = contents.replace(/<(div|h\d|p)[^>]*>/ig, "-----------------------------------------------------------------------------\n");
218+ contents = contents.replace(/(\n|)<\/(div|h\d|p)>/ig, "\n-----------------------------------------------------------------------------\n");
219+ }
220+ else {
221+ contents = contents.replace(/<\/(div|h\d|p)>/ig, "\n");
222+ }
218223
219224 // 通常のタグすべてを削除する
220225 contents = contents.replace(/<[^>]*>|<\/[^>]*>/ig, "");
@@ -237,32 +242,17 @@ function showError(){
237242 }
238243
239244 /**
240- * <content>要素の変換を行います
241- * @param {String} content
242- */
243-function convertContent(content){
244- if (document.getElementById("addContentBr").checked) {
245- content = content.replace(/[\n\r]|\r\n/g, "<br>\n");
246- }
247- else {
248- content = content.replace(/<br>/ig, "\n");
249- }
250-
251- return content;
252-}
253-
254-/**
255245 * XMLのエスケープを行う関数
256246 * @param {String} str エスケープを行う文字列
257247 */
258248 function xmlAttrContentEscape(str){
259- return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
249+ return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/^[ ]+/mg, "&nbsp;").replace(/^[\t]+/mg, "");
260250 }
261251
262252 /**
263- * XMLのエスケープを行う関数
264- * @param {String} str エスケープを行う文字列
253+ * XMLの逆エスケープを行う関数
254+ * @param {String} str 逆エスケープを行う文字列
265255 */
266256 function xmlAttrContentUnescape(str){
267- return str.replace(/&quot;/g, '"').replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
257+ return str.replace(/^[\t]+/mg, "").replace(/^[ ]+/mg, "&nbsp;").replace(/&quot;/g, '"').replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
268258 }
--- a/mixi.html
+++ b/mixi.html
@@ -60,7 +60,7 @@
6060 <tbody>
6161 <tr>
6262 <td class="default" colspan="2" style="padding: 5px; text-align: center; vertical-align: bottom;">
63- <table>
63+ <table style="width: 100%">
6464 <tbody>
6565 <tr>
6666 <td class="formnavi" style="padding: 0px 20px 0px 20px;">
@@ -70,6 +70,11 @@
7070 <div id="logSelecter">
7171 </div>
7272 </td>
73+ <td style="width: 10px;">
74+ </td>
75+ <td class="formnavi">
76+ オプション
77+ </td>
7378 </tr>
7479 <tr>
7580 <td class="formnavi" style="padding: 0px 20px 0px 20px;">
@@ -79,6 +84,11 @@
7984 <div id="entrySelect">
8085 </div>
8186 </td>
87+ <td>
88+ </td>
89+ <td class="forminput">
90+ <input type="checkbox" id="isCoverBlockTag" checked="checked" onclick="entryLoader(document.getElementById('logBox').selectedIndex);">ブロック要素のタグを---で囲む
91+ </td>
8292 </tr>
8393 </tbody>
8494 </table>
Show on old repository browser