Index: /branches/testa-single-bookmark/js/build.js
===================================================================
--- /branches/testa-single-bookmark/js/build.js	(revision 65)
+++ /branches/testa-single-bookmark/js/build.js	(revision 66)
@@ -3,29 +3,30 @@
     }
 
-    setup(){
-	let item = $( '#data-build-build' )
+    set_anchor_url( part, item_name, href, text , kind){
+	if( href === undefined ){
+	    href = ""
+	}
+	Globalx.output_url_listx[text] = href
+	Globalx[part].sidemenu.set_anchor_down_url( item_name, href, text , kind)
+    }
+
+    setup(part){
+	let item = $( `#${part}-build-build` )
 	item.on('click' , () => {
-	    const part = Globalx.parts[ Globalx.index ]
 	    const cmd = "build_one_html"
 	    let textarea = $( Globalx[part].textarea_sel )
 	    const content = textarea.val()
 
+	    this.set_anchor_url( part, Globalx[part].item_name, "", "" , "full")
+	    this.set_anchor_url( part, Globalx[part].item_name, "", "" , "partial")
+
 	    Globalx.remotex.upload_file( cmd, Globalx.num, part, Globalx[part].key, content , (data) => {
 		if ( data !== undefined ){
-		    let array = null
-		    let len = null
 		    const obj = JSON.parse(data)
+		    console.log("full_download_url=" + obj["full_download_url"])
+		    console.log("partial_download_url=" + obj["partial_download_url"])
 
-		    array = obj["full_download_url"].split('/')
-		    len = array.length
-		    $('#data-down-url').attr('href' , obj["full_download_url"])
-
-		    $('#data-down-url').text( "Full HTML:" + array[len - 1] )
-
-		    array = obj["partial_download_url"].split('/')
-		    len = array.length
-		    $('#data-partial-down-url').attr('href' , obj["partial_download_url"])
-		    $('#data-partial-down-url').text( "Partial HTML:" + array[len - 1] )
-
+		    this.set_anchor_url( part, Globalx[part].item_name, obj["full_download_url"],    Globalx[part].item_name, "full")
+		    this.set_anchor_url( part, Globalx[part].item_name, obj["partial_download_url"], Globalx[part].item_name, "partial")
 		}
 		else{
Index: /branches/testa-single-bookmark/js/main.js
===================================================================
--- /branches/testa-single-bookmark/js/main.js	(revision 65)
+++ /branches/testa-single-bookmark/js/main.js	(revision 66)
@@ -30,4 +30,5 @@
     Globalx.bookmark_displayname_max_length = 18
     Globalx.output_url = null
+    Globalx.output_url_listx = null
     Globalx.remote_filename = 'php/content3.php'
     Globalx.build = new Build()
@@ -41,38 +42,59 @@
     Globalx.bookmarkmenu = null
 
-    Globalx.build.setup()
+    Globalx.build.setup('data')
 }
 
-async function update_all_filelist( ) {
+async function update_all_info_on_host_async( ) {
+    await Globalx.remotex.get_output_url_listx( Globalx.num , (text) => {
+	if( text.match( /{.*}/ ) !== null ){
+	    const obj = JSON.parse( text )
+//console.log("update_all_info_on_host text=" + text )
+	    Globalx.output_url_listx = obj
+	    Globalx.storagex.save_as_info_from_globalx()
+	}
+    } )
+
     Globalx.parts.map( ( part ) => {
 	Globalx[ part ].sidemenu.update(`#${part}-side`)
     } )
+
 }
 
+async function get_output_url( num ){
+    get_output_url_async( num, (str) => {
+	if( str.match( /{.*}/ ) !== null ){
+	    const obj = JSON.parse( str )
+//console.log("get_output_url obj=" + obj.output_url)
+	    Globalx.output_url = obj.output_url
+	    Globalx.storagex.save_as_info_from_globalx()
+	}
+    } )
+
+}
 async function get_output_url_async( num, func ){
-    let realData = Globalx.storagex.get_output_url()
+    let output_url = Globalx.storagex.get_output_url()
 
-    if( realData === undefined || realData === null ){
+    if( output_url === undefined || output_url === null ){
 	await Globalx.remotex.get_output_url( num, func )
     }
     else{
-	const obj = Globalx.storagex.get_output_url( num )
-	Globalx.output_url = obj.output_url
+	Globalx.output_url = output_url
 	Globalx.storagex.save_as_info_from_globalx()
     }
 } 
 
+async function get_output_url_listx_async( num ) {
+    await Globalx.remotex.get_output_url_listx( num , (text) => {
+	if( text.match( /{.*}/ ) !== null ){
+	    const obj = JSON.parse( text )
+//console.log("update_all_info_on_host text=" + text )
+	    Globalx.output_url_listx = obj
+	    Globalx.storagex.save_as_info_from_globalx()
+	}
+    } )
+}
 async function setup(){
-    get_output_url_async( Globalx.num, (text) => {
-	let str = text
-	let obj
-	if( str.match( /{.*}/ ) === null ){
-	    obj = {}
-	}
-	else {
-	    obj = JSON.parse( str )
-	}
-	Globalx.storagex.change_cache( obj, this.num , this.part )
-    } )
+    await get_output_url_listx_async( Globalx.num )
+    await get_output_url( Globalx.num )
 }
 
Index: /branches/testa-single-bookmark/js/remotex.js
===================================================================
--- /branches/testa-single-bookmark/js/remotex.js	(revision 65)
+++ /branches/testa-single-bookmark/js/remotex.js	(revision 66)
@@ -5,13 +5,4 @@
 	//	this.num = num
 	//	this.part = part
-    }
-
-    make_url_params0( arrayx ){
-	let params = new URLSearchParams();
-	arrayx.reduce(function(acc, element, index, array) {
-	    acc.append(element[0], element[1]);
-	    return acc;
-	}, params)
-	return params.toString();
     }
 
@@ -42,4 +33,9 @@
     async get_output_url(num, func) {
 	let param_array = [['cmd', 'get_output_url'], ['num', num ] ]
+	await this.fetchx( this.filename , param_array, 2, func )
+    }
+
+    async get_output_url_listx( num, func) {
+	let param_array = [['cmd', 'get_output_url_listx'] , ['num', num]]
 	await this.fetchx( this.filename , param_array, 2, func )
     }
Index: /branches/testa-single-bookmark/js/sidemenu.js
===================================================================
--- /branches/testa-single-bookmark/js/sidemenu.js	(revision 65)
+++ /branches/testa-single-bookmark/js/sidemenu.js	(revision 66)
@@ -7,5 +7,8 @@
 	this.textarea_sel = Globalx[part].textarea_sel
 	this.bookmark_op_sel = Globalx[part].bookmark_op_sel
-    }
+	this.full_download_url_sel = `#${part}-down-url`
+	this.partial_download_url_sel = `#${part}-partial-down-url`
+    }
+
     set_editor( editor ){
 	this.editor = editor /* Globalx[part].editor */
@@ -79,5 +82,9 @@
 	    this.set_globalx_item_name(part, "")
 	    Globalx[part].editor.getSession().setValue( "" );
+
 	    $( this.textarea_sel ).val( "" );
+	    this.set_anchor_url( part, Globalx[part].item_name, "", "" , "full")
+	    this.set_anchor_url( part, Globalx[part].item_name, "", "" , "partial")
+
 	    if( Globalx[part].key != '/' ){
 		let array = Globalx[part].key.split("/")
@@ -134,4 +141,11 @@
 		    $( Globalx[part].textarea_sel ).val( content );
 		});
+
+		this.set_anchor_down_url( item_name, Globalx.output_url_listx[item_name], item_name , "full" )
+		this.set_anchor_down_url( item_name, Globalx.output_url_listx[item_name], item_name , "partial" )
+	    }
+	    else{
+		this.set_anchor_url( part, Globalx[part].item_name, "", "" , "full")
+		this.set_anchor_url( part, Globalx[part].item_name, "", "" , "partial")
 	    }
 	}
@@ -168,4 +182,28 @@
 	dl.attr('download' , Globalx[part].item_name)
 	dl.removeAttr('href')
+    }
+
+    set_anchor_down_url( item_name, href, text , kind ){
+	let sel = null
+	if( href === undefined ){
+	    href = ""
+	}
+	Globalx.output_url_listx[item_name] = href
+
+	if( kind === "full" ){
+	    sel = this.full_download_url_sel
+	    if( text !== "" ){
+		text = "Full HTML:" + text
+	    }
+	}
+	else{
+	    sel = this.partial_download_url_sel
+	    if( text !== "" ){
+		text = "Partial HTML:" + text
+	    }
+	}
+
+	$( sel ).attr( "href" , href )
+	$( sel ).text( text )
     }
 
Index: /branches/testa-single-bookmark/js/storagex.js
===================================================================
--- /branches/testa-single-bookmark/js/storagex.js	(revision 65)
+++ /branches/testa-single-bookmark/js/storagex.js	(revision 66)
@@ -126,4 +126,8 @@
     }
 
+    get_filelist(num, part) {
+	return this.restore_from_localstorage(num, part)
+    }
+
     restore_info(){
 	const item_name = "info"
@@ -208,12 +212,4 @@
     }
 
-    get_filelist(num, part) {
-	return this.restore_from_localstorage(num, part)
-    }
-
-    get_output_url() {
-	return this._globalStorage.output_url
-    }
-
     reset_info() {
 	reset_localstorage('info')
Index: /branches/testa-single-bookmark/tmp/tmp.txt
===================================================================
--- /branches/testa-single-bookmark/tmp/tmp.txt	(revision 65)
+++ /branches/testa-single-bookmark/tmp/tmp.txt	(revision 66)
@@ -4,25 +4,25 @@
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
-    <title>md2site</title>
+    <title>md2site-web</title>
 <!-- AREA-START -->
     <link rel="stylesheet" href="./css/style.css" />
     <link href='https://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="css/style-3.css?132">
-    <link rel="stylesheet" href="css/tab.css?132">
-    <link rel="stylesheet" href="css/menu.css?132">
+    <link rel="stylesheet" href="css/style-3.css?146">
+    <link rel="stylesheet" href="css/tab.css?146">
+    <link rel="stylesheet" href="css/menu.css?146">
     <link href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" rel="stylesheet" />
     <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
     <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.5/ace.js"></script>
-    <script src="js/storagex.js?132>"></script>
-    <script src="js/sidemenu.js?132>"></script>
-    <script src="js/bookmark.js?132>"></script>
-    <script src="js/bookmarkmgr.js?132"></script>
-    <script src="js/bookmarkmenu.js?132"></script>
-    <script src="js/tab.js?132"></script>
-    <script src="js/topmenu.js?132"></script>
-    <script src="js/remotex.js?132"></script>
-    <script src="js/build.js?132"></script>
-    <script src="js/main.js?132"></script>
+    <script src="js/storagex.js?146>"></script>
+    <script src="js/sidemenu.js?146>"></script>
+    <script src="js/bookmark.js?146>"></script>
+    <script src="js/bookmarkmgr.js?146"></script>
+    <script src="js/bookmarkmenu.js?146"></script>
+    <script src="js/tab.js?146"></script>
+    <script src="js/topmenu.js?146"></script>
+    <script src="js/remotex.js?146"></script>
+    <script src="js/build.js?146"></script>
+    <script src="js/main.js?146"></script>
 
 <!-- AREA-END -->
@@ -35,5 +35,5 @@
       <li class="tab is-active">data</li>
       <li class="tab">output</li>
-      <li class="tab">setting</li>
+      <li class="tab">conf</li>
     </ul>
     <div id="all" class="panel-group">
@@ -44,5 +44,5 @@
 	      <ul>
 		<li><a id="data-file-upload" onclick="upload_to_host('data')">Save on host</a></li>
-		<li><a id="data-file-download" onclick="download_cmd('part')">Download</a></li>
+		<li><a id="data-file-download" class="disabled" >X Download</a></li>
 		<li><a id="data-file-rename" class="disabled" >X Rename</a></li>
 		<li><a id="data-file-move"class="disabled" >X Move</a></li>
@@ -52,13 +52,13 @@
 	    </li>
 	    <li id="data-menu-dir" class="disabled"><a href="#">Dir</a>
-	      <ul class="disabled">
-		<li id="data-dir-create" class="disabled"><a class="disabled" href="#">X Create</a></li>
-		<li id="data-dir-rename" class="disabled"><a href="#">X Rename</a></li>
-		<li id="data-dir-move" class="disabled"><a class="disabled" href="#">X Move</a></li>
-		<li id="data-dir-delete" class="disabled"><a class="disabled" href="#">X Delete</a></li>
-		<li id="data-dir-duplicate" class="disabled"><a class="disabled" href="#">X Duplicate</a></li>
-	      </ul>
-	    </li>
-	    <li><a href="#">Bookmark</a>
+	      <ul>
+		<li id="data-dir-create"><a href="#">X Create</a></li>
+		<li id="data-dir-rename"><a href="#">X Rename</a></li>
+		<li id="data-dir-move"><a href="#">X Move</a></li>
+		<li id="data-dir-delete"><a href="#">X Delete</a></li>
+		<li id="data-dir-duplicate"><a href="#">X Duplicate</a></li>
+	      </ul>
+	    </li>
+	    <li class="disabled"><a href="#">Bookmark</a>
               <ul id="data-bookmark">
 	      </ul>
@@ -67,13 +67,10 @@
 	      <ul>
 		<li><a id="data-build-build" href="#">Build</a></li>
-		<li><a id="data-build-get-filelist" href="#" onclick="get_filelist()">Get FileList</a></li>
-		<li><a id="data-build-forced-to-get-filelist" href="#" onclick="update_filelist()">Forced to get FileList</a></li>
-		<li><a id="data-build-restore-filelist" href="#" onclick="restore_filelist(0, '/rtk/fmp_kernel')">Restore FileList</a></li>
 	      </ul>
 	    </li>
 	    <li><a href="#">config</a>
 	      <ul>
-		<li><a id="data-host-update-all" onclick="update_all_filelist()">Update all on host</a></li>
-		<li><a id="data-host-update" onclick="Globalx.remotex.update('data')">Update on host</a></li>
+		<li><a id="data-host-update-all" onclick="update_all_info_on_host_async()">Update all on host</a></li>
+<!--		<li><a id="data-host-update" onclick="Globalx.remotex.update('data')">Update on host</a></li> -->
 		<li><a href="#" onclick="Globalx.storagex.save_info_from_globalx()">Save info</a></li>
 		<li><a href="#" onclick="Globalx.storagex.reset_info()">Reset Info</a></li>
@@ -81,4 +78,7 @@
 		<li><a href="#" onclick="Globalx.storagex.show_localstorage()">Show localstorage</a></li>
 		<li><a href="#" onclick="Globalx.storagex.show_globalx()">Show globalx</a></li>
+		<li><a id="data-build-get-filelist" href="#" onclick="get_filelist()">Get FileList</a></li>
+		<li><a id="data-build-forced-to-get-filelist" href="#" onclick="update_filelist()">Forced to get FileList</a></li>
+		<li><a id="data-build-restore-filelist" href="#" onclick="restore_filelist(0, '/rtk/fmp_kernel')">Restore FileList</a></li>
 	      </ul>
 	    </li>
@@ -96,9 +96,9 @@
 
 	  <input type="text" id="data-filelist_key" value="/" />
-	  <label id="data-bookmark_label">
-	    <input type="checkbox" id="data-bookmark_op" >
+	  <label id="data-bookmark_label" class="disabled">
+	    <input type="checkbox" id="data-bookmark_op"  class="disabled">
 	    BK
 	  </label>
-	  <a id="data-down-download" class="xxbutton" role="button" download="some.txt" >DL</a>
+	  <a id="data-down-download" class="xxbutton" role="button" download="some.txt" class="disabled"><!--DL --></a>
 	  <a id="data-down-url"></a>
 	  <a id="data-partial-down-url"></a>
@@ -131,5 +131,5 @@
 	    </ul>
 	  </li>
-	  <li><a href="#">Bookmark</a>
+	  <li class="disabled"><a href="#">Bookmark</a>
             <ul id="output-bookmark">
 	    </ul>
@@ -150,9 +150,9 @@
 
 	  <input type="text" id="output-filelist_key" value="/" />
-	  <label id="output-bookmark_label">
-	    <input type="checkbox" id="output-bookmark_op">
+	  <label id="output-bookmark_label" class="disabled">
+	    <input type="checkbox" id="output-bookmark_op" class="disabled">
 	    BK
 	  </label>
-	  <a id="output-down-download" class="xxbutton" role="button" download="some.txt" >DL</a>
+	  <a id="output-down-download" class="xxbutton" role="button" download="some.txt"  class="disabled"><!--DL --></a>
 	  <a id="output-down-url"></a>
 	  <a id="output-partial-down-url"></a>
@@ -165,28 +165,28 @@
         </div>
       </div>
-      <div id="area-setting" class="panel">
-	<div id="setting-menubar"></div>
+      <div id="area-conf" class="panel">
+	<div id="conf-menubar"></div>
 	<ul class="nav">
 	  <li><a href="#">File</a>
 	    <ul>
-	      <li><a id="setting-file-upload" onclick="upload_to_host('setting')">Save on host</a></li>
-	      <li><a id="setting-file-download" onclick="download_cmd('data')">Download</a></li>
-	      <li><a id="setting-file-rename" class="disabled" >-Rename</a></li>
-	      <li><a id="setting-file-move" class="disabled" >-Move</a></li>
-	      <li><a id="setting-file-delete" class="disabled" >-Delete</a></li>
-	      <li><a id="setting-file-duplicate" class="disabled" >-Duplicate</a></li>
+	      <li><a id="conf-file-upload" onclick="upload_to_host('conf')">Save on host</a></li>
+<!--	      <li><a id="conf-file-download" onclick="download_cmd('data')">Download</a></li> -->
+	      <li><a id="conf-file-rename" class="disabled" >-Rename</a></li>
+	      <li><a id="conf-file-move" class="disabled" >-Move</a></li>
+	      <li><a id="conf-file-delete" class="disabled" >-Delete</a></li>
+	      <li><a id="conf-file-duplicate" class="disabled" >-Duplicate</a></li>
 	    </ul>
 	  </li>
 	  <li class="disabled"><a href="#">Dir</a>
 	    <ul>
-	      <li><a id="setting-dir-create" class="disabled" href="#">-Create</a></li>
-	      <li><a id="setting-dir-rename" class="disabled" href="#">-Rename</a></li>
-	      <li><a id="setting-dir-move" class="disabled" href="#">-Move</a></li>
-	      <li><a id="setting-dir-delete" class="disabled" href="#">-Delete</a></li>
-	      <li><a id="setting-dir-duplicate" class="disabled" href="#">-Duplicate</a></li>
-	    </ul>
-	  </li>
-	  <li><a href="#">Bookmark</a>
-            <ul id="setting-bookmark">
+	      <li><a id="conf-dir-create" class="disabled" href="#">-Create</a></li>
+	      <li><a id="conf-dir-rename" class="disabled" href="#">-Rename</a></li>
+	      <li><a id="conf-dir-move" class="disabled" href="#">-Move</a></li>
+	      <li><a id="conf-dir-delete" class="disabled" href="#">-Delete</a></li>
+	      <li><a id="conf-dir-duplicate" class="disabled" href="#">-Duplicate</a></li>
+	    </ul>
+	  </li>
+	  <li class="disabled"><a href="#">Bookmark</a>
+            <ul id="conf-bookmark">
 	    </ul>
 	  </li>
@@ -199,23 +199,23 @@
 	  </li>
 	</ul>
-	<div id="setting-bar">
-	  <select id="setting-select-host">
+	<div id="conf-bar">
+	  <select id="conf-select-host">
 	  </select>
 
-	  <textarea id="setting-editor-t" name="setting-editor-t"></textarea>
-
-	  <input type="text" id="setting-filelist_key" value="/" />
-	  <label id="setting-bookmark_label">
-	    <input type="checkbox" id="setting-bookmark_op" >
+	  <textarea id="conf-editor-t" name="conf-editor-t"></textarea>
+
+	  <input type="text" id="conf-filelist_key" value="/" />
+	  <label id="conf-bookmark_label" class="disabled">
+	    <input type="checkbox" id="conf-bookmark_op"  class="disabled">
 	    BK
 	  </label>
-	  <a id="setting-down-download" class="xxbutton" role="button" download="some.txt" >DL</a>
-	  <a id="setting-down-url"></a>
-	  <a id="setting-partial-down-url"></a>
-	</div>
-	<div id="setting-side">
-	</div>
-	<div id="setting-work">
-	  <div id="setting-editor" style="height: 600px">
+	  <a id="conf-down-download" class="xxbutton" role="button" download="some.txt"  class="disabled"><!-- DL --></a>
+	  <a id="conf-down-url"></a>
+	  <a id="conf-partial-down-url"></a>
+	</div>
+	<div id="conf-side">
+	</div>
+	<div id="conf-work">
+	  <div id="conf-editor" style="height: 600px">
 	  </div>
 	</div>
