The Official Blog Of Kang Mail

4/19/2016

Cara Membuat Sitemap Canggih Dan Keren Di Blog Valid HTML5

Seperti yang telah kita ketahui selama ini, Daftar isi atau yang lebih kita kenal dengan Sitemap merupakan sebuah halaman khusus dari blog atau website yang berfungsi untuk menampilkan daftar lengkap seluruh artikel yang pernah dipublikasikan di blog atau website kita. Dengan adanya halaman Sitemap / daftar isi ini, pengunjung dapat dengan mudah melihat semua artikel di blog kita dalam satu halaman. Dengan begitu maka pengunjung dapat mengetahui artikel-artikel kita mulai dari yang paling baru sampai artikel telah lama dipublikasikan.


Sudah banyak sekali tutorial cara membuat Sitemap ini dari sahabat blogger yang lain dengan berbagai macam style. Mulai dari Sitemap yang simpel, bentuk tabel hingga Sitemap bentuk menu accordeon. Nah untuk menambah referensi kamu yang mungkin saat ini sedang mencari style daftar isi yang cocok untuk blog kamu, pada artikel kali ini aku juga akan memberikan tutorial serupa namun dengan style yang berbeda. Sitemap atau Daftar isi yang akan aku bagikan ini bisa dikatakan memiliki fitur yang lengkap. Karena daftar isi ini dapat menampilkan daftar artikel berdasarkan yang paling baru, artikel yang terakhir diupdate atau dirubah, artikel berdasarkan kategori/label, memiliki fitur pencarian artikel dan juga menampilkan jumlah komentar pada setiap artikelnya. Daftar isi ini juga memiliki tampilan yang responsive serta valid HTML5 dan CSS3.


Bagi yang ingin mencoba Sitemap ini, silahkan ikuti tutorialnya di bawah ini:

Pertama, silahkan buka menu Laman di Dasbor Blogger. Lalu klik tombol Laman baru.

Kemudian beri nama dengan Daftar Isi atau sesuai keinginan kamu. Lalu pilih modeHTML.

Selanjutnya copy kode-kode dibawah ini dan masukkan pada kolom editor laman.


<style scoped="scoped" type="text/css">
#table-outer{padding:7px 10px;margin:0 auto}
#table-outer table{width:auto;margin:0 auto}
#table-outer form{font:inherit}
#table-outer label{display:block;text-align:right;margin:0 10px 0 0;padding:4px 0 0}
#table-outer select[disabled]{opacity:.4}
#post-searcher{display:block;margin:0;padding:0}
#table-outer input,#table-outer select{width:100%;border:none;margin:0;padding:5px;font-size:86%;text-transform:uppercase;outline:0;-webkit-box-shadow:inset 0 1px 3px #000,0 1px 0 #444;-moz-box-shadow:inset 0 1px 3px #000,0 1px 0 #444;box-shadow:inset 0 1px 3px #000,0 1px 0 #444;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}
#feed-container{display:block;clear:both;margin:0 30px;padding:0;list-style:none;overflow:hidden;position:relative;border-top:none}
#feed-container li{list-style:none;margin:0;padding:0;border-top:1px solid #eee;color:#555;width:auto;float:left;display:inline}
#feed-container li .inner{margin:15px 16px;height:auto;overflow:hidden;word-wrap:break-word;text-overflow:ellipsis}
#feed-container li a{text-decoration:none;color:#2C2C2C;font-weight:700}
#feed-container li a:hover{text-decoration:none;color:#E94141}
#feed-container li .news-text{margin:10px 0 0}
#feed-container li img{margin:0 10px 5px 0;padding:5px;float:left;display:block;}
#result-desc{margin:0 30px;padding:0;border-bottom:2px solid #eee}
#result-desc div,#result-desc span{display:block;margin:0;padding:5px 10px 7px;color:#D64D52}
#result-desc div{color:inherit}
#feed-nav{margin:10px 30px 0;text-align:center;font-weight:700}
#feed-nav a,#feed-nav span{border:1px solid #C9C9C9;padding:0;color:#757575;text-decoration:none;display:block;height:30px;line-height:32px}
#feed-nav a,#feed-nav span:hover{color:#1B1B1B}
#feed-nav a:active,#feed-nav a:hover{color:#555}
#feed-nav span{cursor:wait}
@media (max-width:600px){#table-outer table{margin:0 auto;width:100%}
#feed-container,#table-outer{margin:0 auto}
#feed-container li .inner{margin:5px auto;height:auto}
#feedContainer li{float:none;display:block;width:auto;height:auto}
#feed-container li .news-text, #feedContainer:after,#feed-container li img{display:none!important}
}
</style>
<div id="table-outer">
<table><tbody>
<tr><td><label for="feed-order">Urutkan artikel berdasarkan:</label></td> <td><select id="feed-order"> <option selected="" value="published">Artikel terbaru</option> <option value="updated">Artikel yang terakhir di update</option> </select></td></tr>
<tr><td><label for="label-sorter">Filter artikel berdasarkan kategori:</label></td> <td><select disabled="" id="label-sorter"> <option selected="">Loading....</option> </select></td></tr>
<tr>                 <td><label for="feed-q">Cari artikel dengan kata kunci:</label></td> <td><form id="post-searcher">
<input id="feed-q" type="text" />
</form>
</td></tr>
</tbody></table>
</div>
<header id="result-desc"></header>
<ul id="feed-container"></ul>
<div id="feed-nav">
</div>
<script src="https://googledrive.com/host/0B6d8LexqwLakUzlHQVBIaVJQSE0" type="text/javascript"></script>


Atau Sobat bisa mencoba yang ini lebih simple dan rapi.


<div style="padding: 10px; text-align: left;">
<div id="cl_option">
<img alt="Loading...." src="https://www.google.com/webmasters/tools/images/progress_spinner_24x24.gif" /> </div>
<div id="cl_content_list">
</div>
<script type="text/javascript">
var madjongke = 500;

<script>
var cl_summlen = madjongke;
var all_entries; var entries; var all_labels = []; var json;

function createEntries(json){
var entries_obj_list = [];
var entries = json.feed.entry;
for(var i=0; i<entries.length; i++){
var entry = entries[i];
var entry_obj = new Object;
entry_obj.id = entry.id.$t;
entry_obj.title = entry.title.$t;
entry_obj.href = getEntryHref(entry);
entry_obj.content = getEntryContent(entry);
entry_obj.labels = getEntryLabels(entry);
entry_obj.published = entry.published.$t.substr(0, 10);
entries_obj_list.push(entry_obj);
}
return entries_obj_list;
}
function getEntryById(id){
for(var i=0; i<all_entries.length; i++){
if(all_entries[i].id == id){return all_entries[i];}
} return null;
}
function getEntryContent(entry){
return entry.content ? entry.content.$t : entry.summary.$t;
}
function getEntryHref(entry){
var links = entry.link;
for(var i=0; i<links.length; i++){
if(links[i].rel == "alternate"){return links[i].href;}
}
return null;
}
function getEntryLabels(entry){
var labels = [];
var categories = entry.category;
if(!categories){return labels;}
for(var i=0; i<categories.length; i++){
var label = categories[i].term; 
if(!isExists(all_labels, label)){all_labels.push(label);} // while collecting all labels
labels.push(label);
}
return labels;
}
function getSomeEntries(cmp){
entries = [];
for(var i=0; i<all_entries.length; i++){
var entry = all_entries[i];
if(cmp(entry)){entries.push(entry);}
}
return entries;
}
function isExists(array, val){
for(var i=0; i<array.length; i++){
if(array[i] == val){return true;}
} return false;
}
function onLoadFeed(json_arg){
json = json_arg;
setTimeout("onLoadFeedTimeout()", 100);
}
function onLoadFeedTimeout(){
entries = createEntries(json);
all_entries = entries;
showHeaderOption();
showEntries(entries);
}
function showEntries(entries){
var s = "";
for(var i=0; i<entries.length; i++){
var entry = entries[i];
s += "
";
s += titleCode(entry);
s += "<span style='font-size:90%'>Label: " + labelsCode(entry);
s += " Pada " + publishedDateCode(entry) + "</span>";
s += "
";
}
s += "
";
s += "<div style='text-align:left; margin-top:10px; font-family:Verdana; font-size:70%'>
";
s += "<a href='http://www.madjongke.com/2012/05/membuat-sitemapdaftar-isi-canggih-keren.html' title='Buat sitemap'>SITEMAP</a>";
s += "</div>
";
document.getElementById("cl_content_list").innerHTML = s;
}
function showHeaderOption(){
var s = "";
s += "<table>";
s += "
<tr>";
s += "<td style='text-align:right'>Lihat Dengan : ";
s += "<td><select onchange='sortBy(this.value.substr(1), this.value.substr(0,1))'>";
s += "<option value='0published'/>Tanggal";
s += "<option value='1title'/>Judul";
s += "</select>";
s += "
<tr>";
s += "<td style='text-align:right'>Pilih Label : ";
s += "<td><select onchange='showPostsWLabel(this.value)' id='cl_labels'>";
s += "<option value='*'/>Semua Label";
for(var i=0; i<all_labels.length; i++){
var label = all_labels[i];
s += "<option value='"+label+"'/>" + label;
}
s += "</select>";
s += "</table>
";
document.getElementById("cl_option").innerHTML = s;
}
function shortenContent(entry){
var content = entry.content;
content = stripHTML(content);
if(content.length > cl_summlen){
content = content.substr(0, cl_summlen);
if(content.charAt(content.length-1) != " "){content = content.substr(0, content.lastIndexOf(" ")+1);}
content += "...";
}
entry.content = content;
return content;
}
function showHideSummary(obj){
var p = obj.nextSibling;
while(p.className != "cl_content"){p = p.nextSibling;}
var id = p.id;
var entry = getEntryById(id);
var content = shortenContent(entry);
if(p.innerHTML == ""){
p.innerHTML = content + "
";
obj.innerHTML = "&#9660;";
obj.title = "Tutup ringkasan";
} else {
p.innerHTML = "";
obj.innerHTML = "&#9658;";
obj.title = "buka ringkasan";
}
}
function sortBy(attribute, asc){
var cmp = function(entry1, entry2){
if(entry1[attribute] == entry2[attribute]){return 0;}
else if(asc=='1'){return entry1[attribute].toLowerCase() > entry2[attribute].toLowerCase();}
else{return entry1[attribute].toLowerCase() < entry2[attribute].toLowerCase();}
}
entries.sort(cmp);
showEntries(entries);
}
function stripHTML(s) {
var c;
var intag = false; var newstr = "";
for(var i=0; i<s.length; i++){
c = s.charAt(i);
if(c=="<"){intag = true;}
else if(c==">"){intag = false;}
if(c == ">"){newstr += " ";}
else if(!intag){newstr += c;}
}
return newstr;
}
// --------------------- functions returning HTML code -------------------- \
function labelsCode(entry){
var s = "";
if(entry.labels.length == 0){return " (tidak berlabel) ";}
for(var j=0; j<entry.labels.length; j++){
var label = entry.labels[j];
s += "<a href='javascript:showPostsWLabel(""+label+"")' ";
s += "title='Tampilkan semua pada label ""+label+""'>" + label + "</a>";
s += (j != entry.labels.length-1) ? ", " : "";
}
return s;
}
function publishedDateCode(entry){
var y = entry.published.substr(0, 4);
var m = entry.published.substr(5, 2);
var d = entry.published.substr(8, 2);
var s = "<a href='javascript:showPostsInDate(""+y+"")' title='Tampilkan semua saat "+y+"'>" + y + "</a>/";
s += "<a href='javascript:showPostsInDate(""+y+"-"+m+"")' title='Tampilkan semua saat "+y+"/"+m+"'>" + m + "</a>/";
s += "<a href='javascript:showPostsInDate(""+y+"-"+m+"-"+d+"")'title='Tampilkan semua saat "+y+"/"+m+"/"+d+"'>" + d + "</a>";
return s;
}
function titleCode(entry){
var s = "<span title='Buka ringkasan' onclick='showHideSummary(this)' style='cursor:pointer'>&#9658;</span> ";
s += "<b><a href='"+entry.href+"'>" + entry.title + "</a></b> 
";
s += "<span class='cl_content' id='"+entry.id+"'></span>";
return s;
}

// ----------------------- selection functions ------------------------------ \
function showPostsInDate(date){
var cmp = function(entry){return entry.published.indexOf(date) == 0;}
var entries = getSomeEntries(cmp);
showEntries(entries);
}
function showPostsWLabel(label){
var cmp = function(entry){
if(label == "*"){return true;}
for(var i=0; i<entry.labels.length; i++){
if(entry.labels[i] == label){return true;}
}
return false;
}
var entries = getSomeEntries(cmp);
showEntries(entries);
document.getElementById("cl_labels").value = label;
}
</script>
<script src="http://viktof.blogspot.com/feeds/posts/default?alt=json-in-script&amp;callback=onLoadFeed&amp;max-results=9999">

</script> </div>
<div style="clear: both;">
</div>
Ganti alamat yang berwarna merah di atas dengan alamat blog sobat sekalian. Setelah itu klik publikasikan atau save.

Itulah "Cara Membuat Sitemap Canggih Dan Keren Di Blog Valid HTML5", jika ada yang belum mengerti bisa di tanyakan di kolom komentar di bawah. Semoga bermanfaat untuk sobat semuanya. Salam

Cara Membuat Sitemap Canggih Dan Keren Di Blog Valid HTML5 Rating: 4.5 Diposkan Oleh: Unknown

1 komentar :