Theme Labs Purwa

Ini adalah theme versi 01 yang dipakai untuk labs elang purwa dot com. Theme bersih kosongan.


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html b:css='false' b:defaultwidgetversion='2' b:js='false' b:layoutsVersion='3' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
<b:attr name='xmlns' value='http://www.w3.org/1999/xhtml'/>
<b:attr name='xmlns:b' value='http://www.google.com/2005/gml/b'/>
<b:attr name='xmlns:expr' value='http://www.google.com/2005/gml/expr'/>
<b:attr name='xmlns:data' value='http://www.google.com/2005/gml/data'/>
<head>
   	<meta charset='utf-8'/>
  	<meta content='width=device-width, initial-scale=1, shrink-to-fit=no' name='viewport'/>
    <!-- Bootstrap CSS -->  
  	<link crossorigin='anonymous' href='https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css' integrity='sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC' rel='stylesheet'/>  
  	<!-- Font Awesome CSS -->
    <link href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css' rel='stylesheet'/>
  	<link href='https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/themes/prism-tomorrow.min.css' rel='stylesheet'/>
  	<b:if cond='data:blog.pageType == &quot;index&quot;'>
      <title> <data:blog.pageTitle/></title>
      <b:else/>
      <b:if cond='data:blog.pageType != &quot;error_page&quot;'>
        <title> <data:blog.pageName/> | <data:blog.title/> </title>
         <meta expr:content='data:blog.url.canonical' property='og:url'/>
 		 <meta expr:content='data:view.title.escaped' property='og:title'/>
 		 <meta expr:content='data:view.description.escaped' property='og:description'/>       
        <b:else/>
        <title>
          404 ~ Page Not Found!
        </title>
      </b:if>
    </b:if>
    <b:skin><![CDATA[
-----------------------------------------------
Blogger Template Style
Name:        Pojok EP
Licence:     Free Version
Version:     1.0
Author:      ELang Purwa
Author Url:  https://www.elangpurwa.com/
----------------------------------------------- */

/*
<!-- Variable definitions -->
<Variable name="keycolor" description="Main Color" type="color" default="#5f27cd" value="#5f27cd"/>

<Group description="Adjust Widths" selector="body">
  <Variable name="row.x1.width" description="Main Container Width" type="length" default="980px" min="728px" max="1060px" value="980px"/>
  <Variable name="row.x2.width" description="Posts Container Width" type="length" default="728px" min="728px" max="980px" value="728px"/>
  <Variable name="row.x3.width" description="Intro Container Width" type="length" default="728px" min="680px" max="728px" value="728px"/>
</Group>

<Group description="Main Theme Colors" selector="body">
 <Variable name="main.color" description="Theme Color" type="color" default="#5f27cd" value="#5e26cd"/>
  <Variable name="dark.color" description="Dark Color" type="color" default="#161619" value="#161619"/>
  <Variable name="title.color" description="Title Color" type="color" default="#161619" value="#161619"/>
  <Variable name="footer.bg" description="Footer Background" type="color" default="$(dark.color)" value="#161619"/>
  <Variable name="footer.color" description="Footer Color" type="color" default="#f2f2f2" value="#f2f2f2"/>
</Group>

<Group description="Theme Body" selector="body">
  <Variable name="body.background.color" description="Body background color" type="color" default="#f8f8f8"  value="#f8f8f8"/>
  <Variable name="body.background" description="Background" type="background" color="#f8f8f8" default="$(color) url() repeat scroll top left" value="$(color) url() repeat scroll top left"/>
  <Variable name="body.text.color" description="Body Text Color" type="color" default="#5E5E5E"  value="#5e5e5e"/>
  <Variable name="body.link.color" description="Body Link Color" type="color" default="$(main.color)"  value="#5e26cd"/>
</Group>

<Group description="Author Intro" selector=".header-intro">
 <Variable name="intro.bg" description="Background" type="color" default="#161619" value="#161619"/>
  <Variable name="intro.color" description="Color" type="color" default="#ffffff" value="#ffffff"/>
 <Variable name="icon.bg" description="Icon Background" type="color" default="#161619" value="#161619"/>
 <Variable name="icon.bg.hover" description="Icon Background on Hover" type="color" default="$(main.color)" value="#5e26cd"/>
  <Variable name="icon.color" description="Icon Color" type="color" default="#ffffff" value="#ffffff"/>

<!-- Extra Variables -->
<Variable name="body.text.font" description="Font" hideEditor="true" type="font" default="14px Roboto, sans-serif"  value="14px Roboto, sans-serif"/>
<Variable name="posts.background.color" description="Post background color" hideEditor="true" type="color" default="#fff"  value="#ffffff"/>
<Variable name="tabs.font" description="Font 2" hideEditor="true" type="font" default="14px Roboto, sans-serif"  value="14px Roboto, sans-serif"/>
<Variable name="posts.title.color" description="Post title color" hideEditor="true" type="color" default="$(title.color)"  value="#161619"/>
<Variable name="posts.text.color" description="Post text color" hideEditor="true" type="color" default="$(body.text.color)"  value="#5E5E5E"/>
<Variable name="posts.icons.color" description="Post icons color" hideEditor="true" type="color" default="$(main.color)"  value="#5e26cd"/>
<Variable name="labels.background.color" description="Label background color" hideEditor="true" type="color" default="$(main.color)"  value="#5e26cd"/>
</Group>
*/

@media screen and (max-width:1024px){
body,.content-outer, .content-fauxcolumn-outer, .region-inner {width: 100%!important;min-width:100%!important;padding:0!important}
body .navbar {height: 0!important;}
.footer-inner {padding: 30px 0px!important;}
}
@media screen and (max-width: 603px){
.main-inner .columns {padding-right: 0!important;}
.main-inner .column-right-outer {width: 100%!important;margin-right: 0!important;}
}

       body{font-family:Arial,sans-serif}@font-face{font-family:'UthmanicHafs';src:url(https://konokae.github.io/qari/font/UthmanicHafs1Ver09.otf) format("opentype")}.arabic-text{font-family:'UthmanicHafs',serif;font-size:22px;direction:rtl;text-align:right}.amiri-regular{font-family:"Amiri",serif;font-size:20px;font-weight:400;font-style:normal}.amiri-bold{font-family:"Amiri",serif;font-weight:700;font-style:normal}.amiri-regular-italic{font-family:"Amiri",serif;font-weight:400;font-style:italic}.amiri-bold-italic{font-family:"Amiri",serif;font-weight:700;font-style:italic}.custom-audio{width:100%;border:none;outline:none;-webkit-appearance:none;appearance:none;background:none;padding:5px 0}.custom-audio-container{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:5px;width:100%}.custom-audio-container .play-pause-btn,.custom-audio-container .prev-btn,.custom-audio-container .next-btn,.custom-audio-container .shuffle-btn,.custom-audio-container .loop-btn,.custom-audio-container .close-btn{font-size:24px;cursor:pointer;margin:0 10px}.custom-audio-container .progress-container{flex-grow:1;margin:0 10px;height:5px;background:#f5c6cb;border-radius:5px;position:relative}.custom-audio-container .progress{height:100%;background:#dc3545;width:0;border-radius:5px}.custom-audio-container .progress-container input[type="range"]{width:100%;position:absolute;top:-7px;background:transparent;-webkit-appearance:none;appearance:none}.custom-audio-container .progress-container input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:15px;width:15px;border-radius:50%;background:#dc3545;cursor:pointer}.custom-audio-container .progress-container input[type="range"]::-moz-range-thumb{height:15px;width:15px;border-radius:50%;background:#dc3545;cursor:pointer}.custom-audio-container .time{font-size:14px;margin:0 10px}.custom-audio-container input[type="range"]{width:100px;margin:0 10px}.audio-popup{position:fixed;bottom:0;left:0;right:0;display:none;z-index:1000;width:100%}.close-btn{position:absolute;top:10px;right:10px;font-size:20px;cursor:pointer}.audio-info{font-size:16px;margin:0 10px}.nav-pills-wrapper{display:flex;align-items:center;overflow-x:auto;white-space:nowrap;padding:5px;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:5px}.nav-pills{display:flex;flex-wrap:nowrap;overflow-x:auto}.nav-pills .nav-item{flex:0 0 auto}.nav-pills .nav-link{cursor:pointer;display:inline-block;white-space:nowrap}.nav-pills .nav-link.active{background-color:#dc3545}
    .thumbnail {
            width: 50px;
            height: auto;
            margin-right: 10px;
        }
        .list-group-item {
            display: flex;
            align-items: center;
        }
        .play-icon {
            margin-left: auto;
            font-size: 24px;
            cursor: pointer;
        }
        .youtube-audio-player {
            display: none;
            position: fixed;
            bottom: 0;
            left: 5%;
            width: 90%;
            background: #f8f9fa;
            box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
            z-index: 1000;
            padding: 5px;
            text-align: center;
        }
        .audio-controls {
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .audio-controls button {
            border-radius: 50%;
            margin: 0 5px;
        }
        .slider {
            margin: 0 15px;
            width: 450px;
        }
        .song-title {
            margin-left: 10px;
        }
        @media (max-width: 768px) {
            .current-time, .total-duration, .song-title {
                display: none;
            }
            .slider {
                width: 150px;
            }
        }
        .volume-control {
            display: none;
        }
        .audio-controls .btn-shuffle.active,
        .audio-controls .btn-loop.active {
            background-color: #007bff;
            color: white;
        }
		.my-category {
            font-weight: bold;
            margin-top: 20px;
        }
        .my-link-list {
            margin-left: 20px;
        }
        .my-link-item {
            margin: 5px 0;
        }
        .my-container {
            display: flex;
            flex-wrap: wrap;
        }
        .my-column {
            flex: 1;
            min-width: 30%;
            box-sizing: border-box;
            padding: 10px;
        }
		        .about-image {
            float: left;
            margin-right: 20px;
            border-radius: 20px;
            overflow: hidden;
        }
      .custom-warning {
          border-radius: 25px;
          background-color: transparent;
          border: 2px solid #ffc107;
          color: #ffc107;
      }
      .custom-warning:hover {
          background-color: #ffc107;
          color: #fff;
      }
  	 .custom-primary {
    	 border-radius: 25px;
      }

      .custom-primary:hover {
          background-color: orange;
          border-color: orange;
      }
		.my-4,
      	.feed-links, 
		.entry-title {
 		 display: none;
		}
        textarea {
            width: 100%;
            height: 200px;
            margin-bottom: 20px;
            padding: 10px;
            font-family: monospace;
            font-size: 14px;
        }
		pre {
            max-height: 200px;
            overflow: auto;
        }
		.copy-button {
            position: absolute;
            top: 10px;
            right: 95px;
            padding: 5px 10px;
            font-size: 14px;
            cursor: pointer;
            display: none;
            background-color: #007bff;
            color: white;
            border: none;
            border-radius: 5px;
        }
      pre:hover .copy-button {
        display: block;
      }		
    ]]></b:skin>
</head>
<body>
    <div class='container'>
        <header class='my-4'>
            <h1 class='text-center'><data:blog.title/></h1>
            <p class='text-center'><data:blog.description/></p>
        </header>
        <main>
            <b:section class='blog-posts' id='main' showaddelement='yes'>
              <b:widget id='Blog1' locked='false' title='Postingan Blog' type='Blog' version='2' visible='true'>
                <b:widget-settings>
                  <b:widget-setting name='showDateHeader'>false</b:widget-setting>
                  <b:widget-setting name='commentLabel'>comments</b:widget-setting>
                  <b:widget-setting name='style.textcolor'>#ffffff</b:widget-setting>
                  <b:widget-setting name='showShareButtons'>false</b:widget-setting>
                  <b:widget-setting name='showCommentLink'>false</b:widget-setting>
                  <b:widget-setting name='style.urlcolor'>#ffffff</b:widget-setting>
                  <b:widget-setting name='postLocationLabel'>Location:</b:widget-setting>
                  <b:widget-setting name='showAuthor'>false</b:widget-setting>
                  <b:widget-setting name='style.linkcolor'>#ffffff</b:widget-setting>
                  <b:widget-setting name='style.unittype'>TextAndImage</b:widget-setting>
                  <b:widget-setting name='style.bgcolor'>#ffffff</b:widget-setting>
                  <b:widget-setting name='timestampLabel'>-</b:widget-setting>
                  <b:widget-setting name='reactionsLabel'/>
                  <b:widget-setting name='showAuthorProfile'>false</b:widget-setting>
                  <b:widget-setting name='style.layout'>1x1</b:widget-setting>
                  <b:widget-setting name='showLabels'>false</b:widget-setting>
                  <b:widget-setting name='showLocation'>false</b:widget-setting>
                  <b:widget-setting name='postLabelsLabel'>Labels:</b:widget-setting>
                  <b:widget-setting name='showTimestamp'>false</b:widget-setting>
                  <b:widget-setting name='postsPerAd'>1</b:widget-setting>
                  <b:widget-setting name='showBacklinks'>false</b:widget-setting>
                  <b:widget-setting name='style.bordercolor'>#ffffff</b:widget-setting>
                  <b:widget-setting name='showInlineAds'>false</b:widget-setting>
                  <b:widget-setting name='showReactions'>false</b:widget-setting>
                </b:widget-settings>
                <b:includable id='main' var='this'>               
  <div class='blog-posts hfeed container'>
    <b:loop index='i' values='data:posts' var='post'>
      <b:include data='post' name='postCommentsAndAd'/>
    </b:loop>
  </div>                
                  
  <b:include cond='data:view.isMultipleItems' name='postPagination'/>
  <b:include name='feedLinks'/>
</b:includable>
                <b:includable id='aboutPostAuthor'>
  <div class='author-name'>
    <a class='g-profile' expr:href='data:post.author.profileUrl' rel='author' title='author profile'>
      <span>
        <data:post.author.name/>
      </span>
    </a>
  </div>
  <div>
    <span class='author-desc'>
      <data:post.author.aboutMe/>
    </span>
  </div>
</b:includable>
                <b:includable id='addComments'>
  <a expr:href='data:post.commentsUrl' expr:onclick='data:post.commentsUrlOnclick'>
    <b:message name='messages.postAComment'/>
  </a>
</b:includable>
                <b:includable id='blogThisShare'>
  <b:with value='&quot;window.open(this.href, \&quot;_blank\&quot;, \&quot;height=270,width=475\&quot;); return false;&quot;' var='onclick'>
    <b:include name='platformShare'/>
  </b:with>
</b:includable>
                <b:includable id='bylineByName' var='byline'>
  <b:switch var='data:byline.name'>
  <b:case value='share'/>
    <b:include cond='data:post.shareUrl' name='postShareButtons'/>
  <b:case value='comments'/>
    <b:include cond='data:post.allowComments' name='postCommentsLink'/>
  <b:case value='location'/>
    <b:include cond='data:post.location' name='postLocation'/>
  <b:case value='timestamp'/>
    <b:include cond='not data:view.isPage' name='postTimestamp'/>
  <b:case value='author'/>
    <b:include name='postAuthor'/>
  <b:case value='labels'/>
    <b:include cond='data:post.labels' name='postLabels'/>
  <b:case value='icons'/>
    <b:include cond='data:post.emailPostUrl' name='emailPostIcon'/>
  </b:switch>
</b:includable>
                <b:includable id='bylineRegion' var='regionItems'>
  <b:loop values='data:regionItems' var='byline'>
    <b:include data='byline' name='bylineByName'/>
  </b:loop>
</b:includable>
                <b:includable id='commentAuthorAvatar'>
  <div class='avatar-image-container'>
    <img class='author-avatar' expr:src='data:comment.authorAvatarSrc' height='35' width='35'/>
  </div>
</b:includable>
                <b:includable id='commentDeleteIcon' var='comment'>
  <span expr:class='&quot;item-control &quot; + data:comment.adminClass'>
    <b:if cond='data:showCmtPopup'>
      <div class='goog-toggle-button'>
        <div class='goog-inline-block comment-action-icon'/>
      </div>
    <b:else/>
      <a class='comment-delete' expr:href='data:comment.deleteUrl' expr:title='data:messages.deleteComment'>
        <img src='https://resources.blogblog.com/img/icon_delete13.gif'/>
      </a>
    </b:if>
  </span>
</b:includable>
                <b:includable id='commentForm' var='post'>
  <div class='comment-form'>
    <a name='comment-form'/>
    <h4 id='comment-post-message'><data:messages.postAComment/></h4>
    <b:if cond='data:this.messages.blogComment != &quot;&quot;'>
      <p><data:this.messages.blogComment/></p>
    </b:if>
    <b:include data='post' name='commentFormIframeSrc'/>
    <iframe allowtransparency='allowtransparency' class='blogger-iframe-colorize blogger-comment-from-post' expr:height='data:cmtIframeInitialHeight ?: &quot;90px&quot;' frameborder='0' id='comment-editor' name='comment-editor' src='' width='100%'/>
    <data:post.cmtfpIframe/>
    <script type='text/javascript'>
      BLOG_CMT_createIframe(&#39;<data:post.appRpcRelayPath/>&#39;);
    </script>
  </div>
</b:includable>
                <b:includable id='commentFormIframeSrc' var='post'>
  <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>
</b:includable>
                <b:includable id='commentItem' var='comment'>
  <div class='comment' expr:id='&quot;c&quot; + data:comment.id'>
    <b:include cond='data:blog.enabledCommentProfileImages' name='commentAuthorAvatar'/>

    <div class='comment-block'>
      <div class='comment-author'>
        <b:if cond='data:comment.authorUrl'>
          <b:message name='messages.authorSaidWithLink'>
            <b:param expr:value='data:comment.author' name='authorName'/>
            <b:param expr:value='data:comment.authorUrl' name='authorUrl'/>
          </b:message>
        <b:else/>
          <b:message name='messages.authorSaid'>
            <b:param expr:value='data:comment.author' name='authorName'/>
          </b:message>
        </b:if>
      </div>
      <div expr:class='&quot;comment-body&quot; + (data:comment.isDeleted ? &quot; deleted&quot; : &quot;&quot;)'>
        <data:comment.body/>
      </div>
      <div class='comment-footer'>
        <span class='comment-timestamp'>
          <a expr:href='data:comment.url' title='comment permalink'>
            <data:comment.timestamp/>
          </a>
          <b:include data='comment' name='commentDeleteIcon'/>
        </span>
      </div>
    </div>
  </div>
</b:includable>
                <b:includable id='commentList' var='comments'>
  <div id='comments-block'>
    <b:loop values='data:comments' var='comment'>
      <b:include data='comment' name='commentItem'/>
    </b:loop>
  </div>
</b:includable>
                <b:includable id='commentPicker' var='post'>
  <b:if cond='data:post.showThreadedComments'>
    <b:include data='post' name='threadedComments'/>
  <b:else/>
    <b:include data='post' name='comments'/>
  </b:if>
</b:includable>
                <b:includable id='comments' var='post'>
  <section expr:class='&quot;comments&quot; + (data:post.embedCommentForm ? &quot; embed&quot; : &quot;&quot;)' expr:data-num-comments='data:post.numberOfComments' id='comments'>
    <a name='comments'/>
    <b:if cond='data:post.allowComments'>

      <b:include name='commentsTitle'/>

      <div expr:id='data:widget.instanceId + &quot;_comments-block-wrapper&quot;'>
        <b:include cond='data:post.comments' data='post.comments' name='commentList'/>
      </div>

      <b:if cond='data:post.commentPagingRequired'>
        <div class='paging-control-container'>
          <b:if cond='data:post.hasOlderLinks'>
            <a expr:class='data:post.oldLinkClass' expr:href='data:post.oldestLinkUrl'>
              <data:messages.oldest/>
            </a>
            <a expr:class='data:post.oldLinkClass' expr:href='data:post.olderLinkUrl'>
              <data:messages.older/>
            </a>
          </b:if>

          <span class='comment-range-text'>
            <data:post.commentRangeText/>
          </span>

          <b:if cond='data:post.hasNewerLinks'>
            <a expr:class='data:post.newLinkClass' expr:href='data:post.newerLinkUrl'>
              <data:messages.newer/>
            </a>
            <a expr:class='data:post.newLinkClass' expr:href='data:post.newestLinkUrl'>
              <data:messages.newest/>
            </a>
          </b:if>
        </div>
      </b:if>

      <div class='footer'>
        <b:if cond='data:post.embedCommentForm'>
          <b:if cond='data:post.allowNewComments'>
            <b:include data='post' name='commentForm'/>
          <b:else/>
            <data:post.noNewCommentsText/>
          </b:if>
        <b:else/>
          <b:if cond='data:post.allowComments'>
            <b:include data='post' name='addComments'/>
          </b:if>
        </b:if>
      </div>
    </b:if>
    <b:if cond='data:showCmtPopup'>
      <div id='comment-popup'>
        <iframe allowtransparency='allowtransparency' frameborder='0' id='comment-actions' name='comment-actions' scrolling='no'>
        </iframe>
      </div>
    </b:if>
  </section>
</b:includable>
                <b:includable id='commentsLink'>
  <a class='comment-link' expr:href='data:post.commentsUrl' expr:onclick='data:post.commentsUrlOnclick'>
    <b:if cond='data:post.numberOfComments &gt; 0'>
      <b:message name='messages.numberOfComments'>
        <b:param expr:value='data:post.numberOfComments' name='numComments'/>
      </b:message>
    <b:else/>
      <data:messages.postAComment/>
    </b:if>
  </a>
</b:includable>
                <b:includable id='commentsLinkIframe'>
  <!-- G+ comments, no longer available. The includable is retained for backwards-compatibility. -->
</b:includable>
                <b:includable id='commentsTitle'>
  <h3 class='title'><data:messages.comments/></h3>
</b:includable>
                <b:includable id='defaultAdUnit'>
  <ins class='adsbygoogle' data-ad-format='auto' expr:data-ad-client='data:adClientId ?: data:blog.adsenseClientId' expr:data-ad-host='data:blog.adsenseHostId' expr:style='data:style ?: &quot;display: block;&quot;'>
    <b:attr cond='not data:blog.analytics4' expr:value='data:blog.analyticsAccountNumber' name='data-analytics-uacct'/>
  </ins>
  <script>
   (adsbygoogle = window.adsbygoogle || []).push({});
  </script>
</b:includable>
                <b:includable id='emailPostIcon'>
  <span class='byline post-icons'>
    <!-- email post links -->
    <span class='item-action'>
      <a expr:href='data:post.emailPostUrl' expr:title='data:messages.emailPost'>
        <b:include data='{ iconClass: &quot;touch-icon sharing-icon&quot; }' name='emailIcon'/>
      </a>
    </span>
  </span>
</b:includable>
                <b:includable id='facebookShare'>
  <b:with value='&quot;window.open(this.href, \&quot;_blank\&quot;, \&quot;height=430,width=640\&quot;); return false;&quot;' var='onclick'>
    <b:include name='platformShare'/>
  </b:with>
</b:includable>
                <b:includable id='feedLinks'>
  <b:if cond='!data:view.isPost'> <!-- Blog feed links -->
    <b:if cond='data:feedLinks'>
      <div class='blog-feeds'>
        <b:include data='feedLinks' name='feedLinksBody'/>
      </div>
    </b:if>
  <b:else/> <!--Post feed links -->
    <div class='post-feeds'>
      <b:loop values='data:posts' var='post'>
        <b:if cond='data:post.allowComments and data:post.feedLinks'>
          <b:include data='post.feedLinks' name='feedLinksBody'/>
        </b:if>
      </b:loop>
    </div>
  </b:if>
</b:includable>
                <b:includable id='feedLinksBody' var='links'>
  <div class='feed-links'>
  <data:messages.subscribeTo/>
  <b:loop values='data:links' var='f'>
     <a class='feed-link' expr:href='data:f.url' expr:type='data:f.mimeType' target='_blank'><data:f.name/> (<data:f.feedType/>)</a>
  </b:loop>
  </div>
</b:includable>
                <b:includable id='footerBylines'>
  <b:if cond='data:widgets.Blog.first.footerBylines'>
    <b:loop index='i' values='data:widgets.Blog.first.footerBylines' var='region'>
      <b:if cond='not data:region.items.empty'>
        <div expr:class='&quot;post-footer-line post-footer-line-&quot; + (data:i + 1)'>
          <b:with value='&quot;footer-&quot; + (data:i + 1)' var='regionName'>
            <b:include data='region.items' name='bylineRegion'/>
          </b:with>
        </div>
      </b:if>
    </b:loop>
  </b:if>
</b:includable>
                <b:includable id='googlePlusShare'>
</b:includable>
                <b:includable id='headerByline'>
  <b:if cond='data:widgets.Blog.first.headerByline'>
    <div class='post-header'>
      <div class='post-header-line-1'>
        <b:with value='&quot;header-1&quot;' var='regionName'>
          <b:include data='data:widgets.Blog.first.headerByline.items' name='bylineRegion'/>
        </b:with>
      </div>
    </div>
  </b:if>
</b:includable>
                <b:includable id='homePageLink'>
  <a class='home-link' expr:href='data:blog.homepageUrl'>
    <data:messages.home/>
  </a>
</b:includable>
                <b:includable id='iframeComments' var='post'>
  <!-- G+ comments, no longer available. The includable is retained for backwards-compatibility. -->
</b:includable>
                <b:includable id='inlineAd' var='post'>
  <b:if cond='!data:view.isPreview'>
    <b:if cond='data:this.adCode or data:this.adClientId or data:blog.adsenseClientId'>
      <!-- Ad -->
      <div class='inline-ad'>
        <b:if cond='data:this.adCode != &quot;&quot;'>
          <data:this.adCode/>
        <b:else/>
          <b:include cond='data:this.adClientId or data:blog.adsenseClientId' name='defaultAdUnit'/>
        </b:if>
      </div>
    </b:if>
  <b:else/>
    <div class='inline-ad'>
      <div class='inline-ad-placeholder'>
        <span><b:message name='messages.adsGoHere'/></span>
      </div>
    </div>
  </b:if>
</b:includable>
                <b:includable id='linkShare'>
  <b:with value='&quot;window.prompt(\&quot;Copy to clipboard: Ctrl+C, Enter\&quot;, \&quot;&quot; + data:originalUrl + &quot;\&quot;); return false;&quot;' var='onclick'>
    <b:include name='platformShare'/>
  </b:with>
</b:includable>
                <b:includable id='nextPageLink'>
  <a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' expr:title='data:messages.olderPosts'>
    <data:messages.olderPosts/>
  </a>
</b:includable>
                <b:includable id='otherSharingButton'>
  <span class='sharing-platform-button sharing-element-other' expr:aria-label='data:messages.shareToOtherApps.escaped' expr:data-url='data:originalUrl' expr:title='data:messages.shareToOtherApps.escaped' role='menuitem' tabindex='-1'>
    <b:with value='{key: &quot;sharingOther&quot;}' var='platform'>
      <b:include name='sharingPlatformIcon'/>
    </b:with>
    <span class='platform-sharing-text'><data:messages.shareOtherApps.escaped/></span>
  </span>
</b:includable>
                <b:includable id='platformShare'>
  <a expr:class='&quot;goog-inline-block sharing-&quot; + data:platform.key' expr:data-url='data:originalUrl' expr:href='data:shareUrl + &quot;&amp;target=&quot; + data:platform.target' expr:onclick='data:onclick ? data:onclick : &quot;&quot;' expr:title='data:platform.shareMessage' target='_blank'>
    <span class='share-button-link-text'>
      <data:platform.shareMessage/>
    </span>
  </a>
</b:includable>
                <b:includable id='post' var='post'>
  <div class='post'>
    <b:include data='post' name='postMeta'/>
    <b:include data='post' name='postTitle'/>
    <b:include name='headerByline'/>
    <b:if cond='data:view.isSingleItem'>
      <b:include data='post' name='postBody'/>
    <b:else/>
      <b:include data='post' name='postBodySnippet'/>
      <b:include data='post' name='postJumpLink'/>
    </b:if>
    <b:include data='post' name='postFooter'/>
  </div>
</b:includable>
                <b:includable id='postAuthor'>
  <span class='byline post-author vcard'>
    <span class='post-author-label'>
      <data:byline.label/>
    </span>
    <span class='fn'>
      <b:if cond='data:post.author.profileUrl'>
        <meta expr:content='data:post.author.profileUrl'/>
        <a class='g-profile' expr:href='data:post.author.profileUrl' rel='author' title='author profile'>
          <span><data:post.author.name/></span>
        </a>
      <b:else/>
        <span><data:post.author.name/></span>
      </b:if>
    </span>
  </span>
</b:includable>
                <b:includable id='postBody' var='post'>
  <!-- If metaDescription is empty, use the post body as the schema.org description too, for G+/FB snippeting. -->
  <div class='post-body entry-content float-container' expr:id='&quot;post-body-&quot; + data:post.id'>
    <data:post.body/>
  </div>
</b:includable>
                <b:includable id='postBodySnippet' var='post'>
  <b:include data='post' name='postBody'/>
</b:includable>
                <b:includable id='postCommentsAndAd' var='post'>
  <article class='post-outer-container'>
    <!-- Post title and body -->
    <div class='post-outer'>
      <b:include data='post' name='post'/>
    </div>

    <!-- Comments -->
    <b:include cond='data:view.isSingleItem' data='post' name='commentPicker'/>

    <!-- Show ad inside post container, after comments, if single item. -->
    <b:include cond='data:view.isSingleItem and data:post.includeAd' data='post' name='inlineAd'/>
  </article>

  <!-- Show ad outside post container (between posts) for feed pages. -->
  <b:include cond='data:view.isMultipleItems and data:post.includeAd' data='post' name='inlineAd'/>
</b:includable>
                <b:includable id='postCommentsLink'>
  <b:if cond='data:view.isMultipleItems'>
    <span class='byline post-comment-link container'>
      <b:include cond='data:post.commentSource != 1' name='commentsLink'/>
    </span>
  </b:if>
</b:includable>
                <b:includable id='postFooter' var='post'>
  <div class='post-footer'>
    <b:include name='footerBylines'/>
    <b:include data='post' name='postFooterAuthorProfile'/>
  </div>
</b:includable>
                <b:includable id='postFooterAuthorProfile' var='post'>
  <b:if cond='data:post.author.aboutMe and data:view.isPost'>
    <div class='author-profile'>
      <b:if cond='data:post.author.authorPhoto.url'>
        <img class='author-image' expr:src='data:post.author.authorPhoto.url' width='50px'/>
        <div class='author-about'>
          <b:include data='post' name='aboutPostAuthor'/>
        </div>
      <b:else/>
        <b:include data='post' name='aboutPostAuthor'/>
      </b:if>
    </div>
  </b:if>
</b:includable>
                <b:includable id='postHeader' var='post'>
  <b:include name='headerByline'/>
</b:includable>
                <b:includable id='postJumpLink' var='post'>  
</b:includable>
                <b:includable id='postLabels'>
  <span class='byline post-labels'>
    <span class='byline-label'><data:byline.label/></span>
    <b:loop index='i' values='data:post.labels' var='label'>
      <a expr:href='data:label.url' rel='tag'>
        <data:label.name/>
      </a>
    </b:loop>
  </span>
</b:includable>
                <b:includable id='postLocation'>
  <span class='byline post-location'>
    <data:byline.label/>
    <a expr:href='data:post.location.mapsUrl' target='_blank'><data:post.location.name/></a>
  </span>
</b:includable>
                <b:includable id='postMeta' var='post'>
  <b:include data='post' name='postMetadataJSON'/>
</b:includable>
                <b:includable id='postMetadataJSONImage'>
  &quot;image&quot;: {
    &quot;@type&quot;: &quot;ImageObject&quot;,
    <b:if cond='data:post.featuredImage.isResizable'>
    &quot;url&quot;: &quot;<b:eval expr='resizeImage(data:post.featuredImage, 1200, &quot;1200:630&quot;)'/>&quot;,
    &quot;height&quot;: 630,
    &quot;width&quot;: 1200
    <b:else/>
    &quot;url&quot;: &quot;https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/&quot;,
    &quot;height&quot;: 348,
    &quot;width&quot;: 1200
    </b:if>
  },
</b:includable>
                <b:includable id='postMetadataJSONPublisher'>
 &quot;publisher&quot;: {
    &quot;@type&quot;: &quot;Organization&quot;,
    &quot;name&quot;: &quot;Blogger&quot;,
    &quot;logo&quot;: {
      &quot;@type&quot;: &quot;ImageObject&quot;,
      &quot;url&quot;: &quot;https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/&quot;,
      &quot;width&quot;: 206,
      &quot;height&quot;: 60
    }
  },
</b:includable>
                <b:includable id='postPagination'>
  <div class='blog-pager container' id='blog-pager'>
    <b:include cond='data:newerPageUrl' name='previousPageLink'/>
    <b:include cond='data:olderPageUrl' name='nextPageLink'/>
    <b:include cond='data:view.url != data:blog.homepageUrl' name='homePageLink'/>
  </div>
</b:includable>
                <b:includable id='postReactions'>
  <!-- Reaction feature no longer available. The includable is retained for backwards-compatibility. -->
</b:includable>
                <b:includable id='postShareButtons'>
  <div class='byline post-share-buttons goog-inline-block'>
    <b:with value='data:sharingId ?: ((data:widget.instanceId ?: &quot;sharing&quot;) + &quot;-&quot; + (data:regionName ?: &quot;byline&quot;) + &quot;-&quot; + data:post.id)' var='sharingId'>
      <!-- Note: 'sharingButtons' includable is from the default Sharing widget markup. -->
      <b:include data='{                                                sharingId: data:sharingId,                                                originalUrl: data:post.url,                                                platforms: data:this.sharing.platforms,                                                shareUrl: data:post.shareUrl,                                                shareTitle: data:post.title,                                              }' name='sharingButtons'/>
    </b:with>
  </div>
</b:includable>
                <b:includable id='postTimestamp'>
  <span class='byline post-timestamp'>
    <data:byline.label/>
    <b:if cond='data:post.url'>
      <meta expr:content='data:post.url.canonical'/>
      <a class='timestamp-link' expr:href='data:post.url' rel='bookmark' title='permanent link'>
        <time class='published' expr:datetime='data:post.date.iso8601' expr:title='data:post.date.iso8601'>
          <data:post.date/>
        </time>
      </a>
    </b:if>
  </span>
</b:includable>
                <b:includable id='postTitle' var='post'>
  <a expr:name='data:post.id'/>
  <b:if cond='data:post.title != &quot;&quot;'>
    <h3 class='post-title entry-title'>
      <b:if cond='data:post.link or (data:post.url and data:view.url != data:post.url)'>
        <a expr:href='data:post.link ?: data:post.url'><data:post.title/></a>
      <b:else/>
        <data:post.title/>
      </b:if>
    </h3>
  </b:if>
</b:includable>
                <b:includable id='previousPageLink'>
  <a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:messages.newerPosts'>
    <data:messages.newerPosts/>
  </a>
</b:includable>
                <b:includable id='sharingButton'>
  <span expr:aria-label='data:platform.shareMessage' expr:class='&quot;sharing-platform-button sharing-element-&quot; + data:platform.key' expr:data-href='data:shareUrl + &quot;&amp;target=&quot; + data:platform.target' expr:data-url='data:originalUrl' expr:title='data:platform.shareMessage' role='menuitem' tabindex='-1'>
    <b:include name='sharingPlatformIcon'/>
    <span class='platform-sharing-text'><data:platform.name/></span>
  </span>
</b:includable>
                <b:includable id='sharingButtonContent'>
  <div class='flat-icon-button ripple'>
    <b:include name='shareIcon'/>
  </div>
</b:includable>
                <b:includable id='sharingButtons'>
  <div class='sharing' expr:aria-owns='&quot;sharing-popup-&quot; + data:sharingId' expr:data-title='data:shareTitle'>
    <button class='sharing-button touch-icon-button' expr:aria-controls='&quot;sharing-popup-&quot; + data:sharingId' expr:aria-label='data:messages.share.escaped' expr:id='&quot;sharing-button-&quot; + data:sharingId' role='button'>
      <b:include name='sharingButtonContent'/>
    </button>
    <b:include name='sharingButtonsMenu'/>
  </div>
</b:includable>
                <b:includable id='sharingButtonsMenu'>
  <div class='share-buttons-container'>
    <ul aria-hidden='true' class='share-buttons hidden' expr:aria-label='data:messages.share.escaped' expr:id='&quot;sharing-popup-&quot; + data:sharingId' role='menu'>
      <b:loop values='(data:platforms ?: data:blog.sharing.platforms) filter (p =&gt; p.key not in {&quot;blogThis&quot;})' var='platform'>
        <li>
          <b:include name='sharingButton'/>
        </li>
      </b:loop>
      <li aria-hidden='true' class='hidden'>
        <b:include name='otherSharingButton'/>
      </li>
    </ul>
  </div>
</b:includable>
                <b:includable id='sharingPlatformIcon'>
  <b:include data='{ iconClass: (&quot;touch-icon sharing-&quot; + data:platform.key) }' expr:name='data:platform.key + &quot;Icon&quot;'/>
</b:includable>
                <b:includable id='threadedCommentForm' var='post'>
  <div class='comment-form'>
    <a name='comment-form'/>
    <h4 id='comment-post-message'><data:messages.postAComment/></h4>
    <b:if cond='data:this.messages.blogComment != &quot;&quot;'>
      <p><data:this.messages.blogComment/></p>
    </b:if>
    <b:include data='post' name='commentFormIframeSrc'/>
    <iframe allowtransparency='allowtransparency' class='blogger-iframe-colorize blogger-comment-from-post' expr:height='data:cmtIframeInitialHeight ?: &quot;90px&quot;' frameborder='0' id='comment-editor' name='comment-editor' src='' width='100%'/>
    <data:post.cmtfpIframe/>
    <script type='text/javascript'>
      BLOG_CMT_createIframe(&#39;<data:post.appRpcRelayPath/>&#39;);
    </script>
  </div>
</b:includable>
                <b:includable id='threadedCommentJs' var='post'>
  <script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>
  <b:template-script inline='true' name='threaded_comments'/>
  <script type='text/javascript'>
    blogger.widgets.blog.initThreadedComments(
        <data:post.commentJso/>,
        <data:post.commentMsgs/>,
        <data:post.commentConfig/>);
  </script>
</b:includable>
                <b:includable id='threadedComments' var='post'>
  <section class='comments threaded' expr:data-embed='data:post.embedCommentForm' expr:data-num-comments='data:post.numberOfComments' id='comments'>
    <a name='comments'/>

    <b:include name='commentsTitle'/>

    <div class='comments-content'>
      <b:if cond='data:post.embedCommentForm'>
        <b:include data='post' name='threadedCommentJs'/>
      </b:if>
      <div id='comment-holder'>
         <data:post.commentHtml/>
      </div>
    </div>

    <p class='comment-footer'>
      <b:if cond='data:post.allowNewComments'>
        <b:include data='post' name='threadedCommentForm'/>
      <b:else/>
        <data:post.noNewCommentsText/>
      </b:if>
      <b:if cond='data:post.showManageComments'>
        <b:include data='post' name='manageComments'/>
      </b:if>
    </p>

    <b:if cond='data:showCmtPopup'>
      <div id='comment-popup'>
        <iframe allowtransparency='allowtransparency' frameborder='0' id='comment-actions' name='comment-actions' scrolling='no'>
        </iframe>
      </div>
    </b:if>
  </section>
</b:includable>
              </b:widget>
            </b:section>
        </main>
        <footer class='text-center my-4'>
            <p>&#169; <data:blog.title/> - <data:date.year/></p>
        </footer>
    </div>
  <script>
  <![CDATA[
const audio = document.getElementById('audio');
        const playPauseBtn = document.querySelector('.play-pause-btn');
        const audioPopup = document.querySelector('.audio-popup');
        const audioSource = document.getElementById('audio-source');
        const progress = document.querySelector('.progress');
        const currentTimeDisplay = document.querySelector('.current-time');
        const durationTimeDisplay = document.querySelector('.duration-time');
        const seekBar = document.getElementById('seek-bar');
        const volumeBar = document.getElementById('volume-bar');
        const shuffleBtn = document.querySelector('.shuffle-btn');
        const loopBtn = document.querySelector('.loop-btn');
        const audioTitle = document.getElementById('audio-title');

        let currentAudioIndex = 0;
        let isShuffle = false;
        let isLoop = false;
        let audioUrl = '';

        function showPlayer(url, title) {
            audioUrl = url;
            loadAudio(audioUrl);
            audioTitle.textContent = title;
            audioPopup.style.display = 'flex';
        }

        function loadAudio(url) {
            audioSource.src = url;
            audio.load();
            audio.play();
            playPauseBtn.classList.remove('fa-play');
            playPauseBtn.classList.add('fa-pause');
        }

        function togglePlayPause(button) {
            if (audio.paused) {
                audio.play();
                button.classList.remove('fa-play');
                button.classList.add('fa-pause');
            } else {
                audio.pause();
                button.classList.remove('fa-pause');
                button.classList.add('fa-play');
            }
        }

        function updateProgress() {
            const progressPercent = (audio.currentTime / audio.duration) * 100;
            progress.style.width = `${progressPercent}%`;
            seekBar.value = progressPercent;
            currentTimeDisplay.textContent = formatTime(audio.currentTime);
            durationTimeDisplay.textContent = formatTime(audio.duration);
        }

        function seekAudio() {
            const seekTime = (seekBar.value / 100) * audio.duration;
            audio.currentTime = seekTime;
        }

        function adjustVolume() {
            audio.volume = volumeBar.value;
        }

        function formatTime(time) {
            const minutes = Math.floor(time / 60);
            const seconds = Math.floor(time % 60);
            return `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;
        }

        function closePlayer() {
            audioPopup.style.display = 'none';
            audio.pause();
            playPauseBtn.classList.remove('fa-pause');
            playPauseBtn.classList.add('fa-play');
        }

        function prevAudio() {
            // Implement previous audio functionality if needed
        }

        function nextAudio() {
            // Implement next audio functionality if needed
        }

        function toggleShuffle() {
            isShuffle = !isShuffle;
            shuffleBtn.classList.toggle('active', isShuffle);
        }

        function toggleLoop() {
            isLoop = !isLoop;
            loopBtn.classList.toggle('active', isLoop);
            audio.loop = isLoop;
        }

        audio.addEventListener('timeupdate', updateProgress);
        seekBar.addEventListener('input', seekAudio);
        volumeBar.addEventListener('input', adjustVolume);
        audio.addEventListener('ended', () => {
            if (!isLoop) nextAudio();
        });
    ]]>
  </script>
   <script>
        document.addEventListener(&quot;DOMContentLoaded&quot;, function() {
            var shortcodeHtml = `
                <div class='container px-4 py-5'>
                    <h2 class='pb-2 border-bottom text-center'>Info Pusat</h2>
                    <div class='row row-cols-1 row-cols-md-2 align-items-md-center g-5 py-5'>     
                        <div class='col'>
                            <div class='row row-cols-1 row-cols-sm-2 g-4'>
                                <div class='col d-flex flex-column gap-2'>            
                                    <h4 class='fw-semibold mb-0 text-body-emphasis fas fa-file'> Jasa Web</h4>
                                    <p class='text-body-secondary'>Paragraph of text beneath the heading to explain the heading.</p>
                                </div>
                                <div class='col d-flex flex-column gap-2'>            
                                    <h4 class='fw-semibold mb-0 text-body-emphasis fas fa-file-alt'> Panduan Web</h4>
                                    <p class='text-body-secondary'>Paragraph of text beneath the heading to explain the heading.</p>
                                </div>
                                <div class='col d-flex flex-column gap-2'>           
                                    <h4 class='fw-semibold mb-0 text-body-emphasis far fa-file-alt'> Jasa SEO</h4>
                                    <p class='text-body-secondary'>Paragraph of text beneath the heading to explain the heading.</p>
                                </div>
                                <div class='col d-flex flex-column gap-2'>           
                                    <h4 class='fw-semibold mb-0 text-body-emphasis fa fa-bars'> Elementor Widget</h4>
                                    <p class='text-body-secondary'>Paragraph of text beneath the heading to explain the heading.</p>
                                </div>
                            </div>
                        </div>
                        <div class='col d-flex flex-column align-items-center gap-2'>
                            <h2 class='fw-bold text-body-emphasis'>Laman Project EP</h2>
                            <p class='text-body-secondary'>Yang Anda lihat adalah project EP, bagian dari elangpurwa.com</p>
                            <div class='d-flex gap-2'>
                                <a class='btn btn-primary btn-lg custom-primary fas fa-angle-double-left' href='https://labs.elangpurwa.com/'> Project Lain</a>
                                <a class='btn btn-warning btn-lg custom-warning' href='#' id='contact'>Hubungi Kami</a>            
                            </div>
                        </div>
                    </div>
                </div>
            `;
            document.getElementById(&#39;shortcode-container&#39;).innerHTML = shortcodeHtml;
        });
    </script>
    <script src='https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/prism.min.js'/>
	<script src='https://cdnjs.cloudflare.com/ajax/libs/prism/1.23.0/components/prism-markup.min.js'/>
  	<script src='https://raw.githubusercontent.com/konokae/sl/main/js/ads.js'/>
    <script src='https://code.jquery.com/jquery-3.5.1.slim.min.js'/>
    <script src='https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js'/>
  	<script crossorigin='anonymous' integrity='sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM' src='https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js'/>
  <script>
    document.querySelectorAll(&#39;.copy-button&#39;).forEach(button =&gt; {
      button.addEventListener(&#39;click&#39;, () =&gt; {
        const pre = button.parentElement;
        const code = pre.querySelector(&#39;code&#39;).textContent;

        navigator.clipboard.writeText(code).then(() =&gt; {
          alert(&#39;Code copied successfully!&#39;);
        }).catch(err =&gt; {
          console.error(&#39;Failed to copy code: &#39;, err);
        });
      });
    });
  </script>
</body>
</html>
Audio Title
0:00 / 0:00
Next Post Previous Post