OSDN Git Service

modified regexp for triming
authorelixirel <elixirel@users.sourceforge.jp>
Sat, 6 Jun 2009 07:48:26 +0000 (16:48 +0900)
committerelixirel <elixirel@users.sourceforge.jp>
Sat, 6 Jun 2009 07:48:26 +0000 (16:48 +0900)
js/lunardial/feedblog_ext.js
js/lunardial/feedblog_ext_search.js
js/lunardial/feedblog_gen.js
js/lunardial/feedblog_mixi.js
mixi.html

index 62b0882..9b4c59d 100644 (file)
@@ -120,7 +120,8 @@ function requiredElementError(parent, name){
 }
 
 function xmlAttrContentEscape(str){
-    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
+    // return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
+    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/^[ ]+/mg, "&nbsp;").replace(/^[\t]+/mg, "");
 }
 
 /**
@@ -302,8 +303,10 @@ function searchMode(urlhash){
                                 '<div id="drawPanel"><div id="drawItem" class="code"><\/div><\/div>' +
                                 '<div style="line-height: ' +
                                 entrySpan +
-                                'px;"><br/></div>' + 
-                                '<div><table class="pager" width="' + extPanelWidth + '" cellspacing="1"><tbody>' +
+                                'px;"><br/></div>' +
+                                '<div><table class="pager" width="' +
+                                extPanelWidth +
+                                '" cellspacing="1"><tbody>' +
                                 '<tr><td align="left"><<< 前の3件を表示</td><td align="center">[ 0 ]</td><td align="right">次の3件を表示 >>></td></tr>' +
                                 '<tr><td class="pager" colspan="3">1件~1件(全1件)目の記事を表示中<br/></td></tr></tbody></table></div>';
                                 document.getElementById("drawItem").innerHTML = contentsWithid(entry.content, entry.id);
index 3517f7f..439bf9c 100644 (file)
@@ -56,8 +56,8 @@ var loadedEntries;
  * Extへのイベント登録です。すべてのDOMが利用可能になった時点で実行されます。
  */
 $(document).ready(function(){
-       generateForm();
-       
+    generateForm();
+    
     // テキストボックスをExt js化し、空欄入力を拒否します
     var searchTextBox = new Ext.form.TextField({
         applyTo: "searchWord",
@@ -102,7 +102,9 @@ function generateForm(){
     "<input type='checkbox' id='isAsyncOn'/><label for='isAsyncOn'>非同期通信モードで検索を行う</label><br/>" +
     "<span style='font-weight: bold;'>[ 注意 ]</span>非同期通信モードをオンにすると速度は上昇しますが、検索の順序が保障されません。<br/><br/>" +
     "▼ 検索対象ログ選択<br/><div id='logSelecter'/></div><input type='checkbox' id='allSearchCheck' checked='checked'/><label for='allSearchCheck'>すべてのログに対して検索を行う</label>" +
-    "<br/><a href='" + blogUrl + "'>トップページへ戻る</a><br/></form></td></tr></tbody></table>"
+    "<br/><a href='" +
+    blogUrl +
+    "'>トップページへ戻る</a><br/></form></td></tr></tbody></table>"
     document.getElementById("genForm").innerHTML = formBuffer;
     
     var resultAreaBuffer = "<table align='center'><tbody><tr><td class='resultarea' style='width: " + resultAreaWidth + "px;'>" +
@@ -229,7 +231,8 @@ function validateText(contents){
  * @param {String} str エスケープを行いたい文字列
  */
 function xmlAttrContentEscape(str){
-    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
+    // return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
+    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/^[ ]+/mg, "&nbsp;").replace(/^[\t]+/mg, "");
 }
 
 /**
index d9759a0..bdc5b1e 100644 (file)
@@ -288,7 +288,8 @@ function Entry(obj){
     
     if (inputValidateMode == 1) {
         this.content = this.content.replace(/[\r\n]|\r\n/g, "");
-        this.content = this.content.replace(/<br>/ig, "\n");
+        this.content = this.content.replace(/<br[ \/]*>/ig, "\n");
+        this.content = this.content.replace(/^[ \t]*/mg, "");
     }
 }
 
@@ -363,7 +364,7 @@ function convertContent(content){
  * @param {String} str エスケープを行う文字列
  */
 function xmlAttrContentEscape(str){
-    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
+    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/^[ ]+/mg, "&nbsp;").replace(/^[\t]+/mg, "");
 }
 
 /**
@@ -371,7 +372,7 @@ function xmlAttrContentEscape(str){
  * @param {String} str 逆エスケープを行う文字列
  */
 function xmlAttrContentUnescape(str){
-    return str.replace.replace(/&quot;/g, '"').replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
+    return str.replace(/^[\t]+/mg, "").replace(/^[ ]+/mg, "&nbsp;").replace(/&quot;/g, '"').replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
 }
 
 /**
index f9706b9..dea178b 100644 (file)
@@ -35,7 +35,7 @@ function logXMLLoader(){
     jQuery.ajax({
         url: logXmlUrl,
         method: "GET",
-        error: showError,
+        // error: showError,
         success: function(xmlData){
             var separateTag = xmlData.getElementsByTagName("file");
             var fileList = new Array(separateTag.length);
@@ -127,7 +127,7 @@ function entryLoader(index){
  */
 function refleshEntrylistBox(){
     var stringBuffer = [];
-    stringBuffer.push("<form name='logform'><select name='logbox' style='width: " + comboWidth + "px' onchange='entryLoader(this.options[this.selectedIndex].value)'>");
+    stringBuffer.push("<form name='logform'><select id='logBox' style='width: " + comboWidth + "px' onchange='entryLoader(this.options[this.selectedIndex].value)'>");
     for (var i = 0; i < entryList.length; i++) {
         stringBuffer.push("<option value='" + i + "'/>" + entryList[i].title + "</option>");
     }
@@ -213,8 +213,13 @@ function validateText(contents){
     }
     
     // ブロック要素のタグが存在した場合、改行をその後に挿入します。
-    contents = contents.replace(/<(div|h\d|p)[^>]*>/ig, "-----------------------------------------------------------------------------\n");
-    contents = contents.replace(/(\n|)<\/(div|h\d|p)>/ig, "\n-----------------------------------------------------------------------------\n");
+    if (document.getElementById("isCoverBlockTag").checked) {
+        contents = contents.replace(/<(div|h\d|p)[^>]*>/ig, "-----------------------------------------------------------------------------\n");
+        contents = contents.replace(/(\n|)<\/(div|h\d|p)>/ig, "\n-----------------------------------------------------------------------------\n");
+    }
+    else {
+        contents = contents.replace(/<\/(div|h\d|p)>/ig, "\n");
+    }
     
     // 通常のタグすべてを削除する
     contents = contents.replace(/<[^>]*>|<\/[^>]*>/ig, "");
@@ -237,32 +242,17 @@ function showError(){
 }
 
 /**
- * <content>要素の変換を行います
- * @param {String} content
- */
-function convertContent(content){
-    if (document.getElementById("addContentBr").checked) {
-        content = content.replace(/[\n\r]|\r\n/g, "<br>\n");
-    }
-    else {
-        content = content.replace(/<br>/ig, "\n");
-    }
-    
-    return content;
-}
-
-/**
  * XMLのエスケープを行う関数
  * @param {String} str エスケープを行う文字列
  */
 function xmlAttrContentEscape(str){
-    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
+    return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/^[ ]+/mg, "&nbsp;").replace(/^[\t]+/mg, "");
 }
 
 /**
- * XMLのエスケープを行う関数
- * @param {String} str エスケープを行う文字列
+ * XMLのエスケープを行う関数
+ * @param {String} str エスケープを行う文字列
  */
 function xmlAttrContentUnescape(str){
-    return str.replace(/&quot;/g, '"').replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
+    return str.replace(/^[\t]+/mg, "").replace(/^[ ]+/mg, "&nbsp;").replace(/&quot;/g, '"').replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
 }
index 868f897..e23d95d 100644 (file)
--- a/mixi.html
+++ b/mixi.html
@@ -60,7 +60,7 @@
                 <tbody>
                     <tr>
                         <td class="default" colspan="2" style="padding: 5px; text-align: center; vertical-align: bottom;">
-                            <table>
+                            <table style="width: 100%">
                                 <tbody>
                                     <tr>
                                         <td class="formnavi" style="padding: 0px 20px 0px 20px;">
                                             <div id="logSelecter">
                                             </div>
                                         </td>
+                                        <td style="width: 10px;">
+                                        </td>
+                                        <td class="formnavi">
+                                            オプション
+                                        </td>
                                     </tr>
                                     <tr>
                                         <td class="formnavi" style="padding: 0px 20px 0px 20px;">
                                             <div id="entrySelect">
                                             </div>
                                         </td>
+                                        <td>
+                                        </td>
+                                        <td class="forminput">
+                                            <input type="checkbox" id="isCoverBlockTag" checked="checked" onclick="entryLoader(document.getElementById('logBox').selectedIndex);">ブロック要素のタグを---で囲む
+                                        </td>
                                     </tr>
                                 </tbody>
                             </table>