ব্লগার ভিডিও ট্যামপ্লেট রেডি কোড।


 



<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html b:css='false' b:defaultwidgetversion='2' b:layoutsVersion='3' expr:dir='data:blog.languageDirection' expr:lang='data:blog.locale' 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'>
<head>
    <meta charset='utf-8'/>
    <meta content='width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' name='viewport'/>
    <title><data:blog.pageTitle/></title>
    <b:include data='blog' name='all-head-content'/>
    
    <!-- Google Fonts & Icons -->
    <link href='https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&amp;display=swap' rel='stylesheet'/>
    <link href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css' rel='stylesheet'/>

    <b:skin><![CDATA[
        :root {
            --primary: #ef4444;
            --primary-hover: #dc2626;
            --accent-gradient: linear-gradient(135deg, #f43f5e 0%, #8b5cf6 100%);
            --bg-body: #050811;
            --bg-card: rgba(15, 23, 42, 0.75);
            --text-main: #f8fafc;
            --text-secondary: #94a3b8;
            --border-color: rgba(244, 63, 94, 0.15);
            --shadow-sm: 0 10px 30px 0 rgba(0, 0, 0, 0.5);
            --radius-md: 18px;
            --radius-full: 9999px;
            --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }
        body.light-mode {
            --bg-body: #f8fafc;
            --bg-card: rgba(255, 255, 255, 0.9);
            --text-main: #0f172a;
            --text-secondary: #64748b;
            --border-color: rgba(226, 232, 240, 0.8);
            --shadow-sm: 0 10px 30px 0 rgba(0, 0, 0, 0.05);
        }
        *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
        body { font-family: 'Inter', sans-serif; background-color: var(--bg-body); color: var(--text-main); line-height: 1.5; transition: background 0.3s ease; overflow-x: hidden; width: 100%; position: relative; }
        
        /* Ambient Background Glow */
        body:not(.light-mode)::before {
            content: '';
            position: absolute;
            top: 0; left: 50%;
            transform: translateX(-50%);
            width: 900px; height: 450px;
            background: radial-gradient(circle, rgba(244, 63, 94, 0.1) 0%, rgba(139, 92, 246, 0.04) 50%, transparent 80%);
            z-index: -1;
            pointer-events: none;
        }

        a { text-decoration: none; color: inherit; transition: var(--transition); }
        .container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 16px; }
        @media(min-width: 768px) { .container { padding: 0 24px; } }
        
        /* Header */
        .site-header { position: sticky; top: 0; z-index: 1000; background-color: var(--bg-card); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-bottom: 1px solid var(--border-color); height: 75px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; box-shadow: var(--shadow-sm); width: 100%; transition: height 0.3s ease; }
        .site-header.compact { height: 62px; }
        
        .site-logo { font-size: 20px; font-weight: 700; color: var(--text-main); display: flex; align-items: center; gap: 10px; }
        .logo-icon { background: var(--accent-gradient); color: #fff; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 12px; box-shadow: 0 4px 15px rgba(244, 63, 94, 0.35); }

        .nav-links { display: flex; align-items: center; gap: 28px; font-weight: 500; font-size: 14px; }
        .nav-links a { position: relative; color: var(--text-secondary); padding: 4px 0; }
        .nav-links a:hover, .nav-links a.active { color: var(--text-main); }
        .nav-links a.active::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 100%; height: 2px; background: var(--accent-gradient); border-radius: 2px; }
        
        .header-actions { display: flex; align-items: center; gap: 12px; }
        .theme-toggle-btn { background: var(--bg-card); border: 1px solid var(--border-color); color: var(--text-main); width: 40px; height: 40px; border-radius: var(--radius-full); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: var(--transition); box-shadow: var(--shadow-sm); }
        .theme-toggle-btn:hover { transform: scale(1.08); border-color: var(--primary); }
        
        .mobile-menu-toggle { display: none; background: none; border: none; color: var(--text-main); font-size: 22px; cursor: pointer; }
        @media(max-width: 768px) { .nav-links { display: none; } .mobile-menu-toggle { display: block; } }

        /* Mobile Nav Drawer */
        .mobile-nav { display: none; background: var(--bg-card); backdrop-filter: blur(16px); border-bottom: 1px solid var(--border-color); padding: 16px 24px; flex-direction: column; gap: 12px; width: 100%; }
        .mobile-nav.open { display: flex; }
        .mobile-nav a { font-size: 15px; font-weight: 500; color: var(--text-secondary); padding: 8px 0; border-bottom: 1px solid var(--border-color); }

        /* Buttons */
        .btn-gradient { background: var(--accent-gradient); color: #fff; border: none; padding: 10px 22px; border-radius: var(--radius-full); font-size: 13px; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; box-shadow: 0 4px 15px rgba(244, 63, 94, 0.35); transition: var(--transition); }
        .btn-gradient:hover { transform: translateY(-2px); opacity: 0.95; box-shadow: 0 6px 22px rgba(244, 63, 94, 0.5); }

        /* Shorts & Reels Grid (9:16 vertical video aspect ratio) */
        .shorts-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 24px; width: 100%; }
        @media(min-width: 580px) { .shorts-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
        @media(min-width: 992px) { .shorts-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } }
        @media(min-width: 1280px) { .shorts-grid { grid-template-columns: repeat(5, 1fr); } }

        .short-card { background-color: var(--bg-card); backdrop-filter: blur(12px); border: 1px solid var(--border-color); border-radius: var(--radius-md); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--shadow-sm); transition: var(--transition); position: relative; width: 100%; }
        .short-card:hover { transform: translateY(-6px); border-color: rgba(244, 63, 94, 0.5); box-shadow: 0 20px 40px rgba(244, 63, 94, 0.2); }

        /* Vertical Shorts Thumbnail Container (9:16 Aspect Ratio) */
        .short-thumb { position: relative; width: 100%; padding-top: 177.77%; background: #000; overflow: hidden; }
        .short-thumb img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
        .short-card:hover .short-thumb img { transform: scale(1.08); }

        /* Play Icon Overlay on Thumbnail */
        .play-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.35); display: flex; align-items: center; justify-content: center; opacity: 0; transition: var(--transition); }
        .short-card:hover .play-overlay { opacity: 1; }
        .play-btn-circle { width: 54px; height: 54px; background: var(--primary); color: #fff; border-radius: var(--radius-full); display: flex; align-items: center; justify-content: center; font-size: 18px; box-shadow: 0 4px 20px rgba(244, 63, 94, 0.6); transform: scale(0.8); transition: var(--transition); }
        .short-card:hover .play-btn-circle { transform: scale(1); }

        .short-badge { position: absolute; top: 12px; left: 12px; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(8px); color: #fff; padding: 4px 10px; border-radius: var(--radius-full); font-size: 11px; font-weight: 600; display: flex; align-items: center; gap: 5px; z-index: 2; border: 1px solid rgba(255,255,255,0.1); }
        .short-badge i { color: var(--primary); }

        .short-info { padding: 14px; display: flex; flex-direction: column; gap: 8px; flex-grow: 1; justify-content: space-between; }
        .short-title { font-size: 14px; font-weight: 600; color: var(--text-main); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
        .short-title:hover { color: var(--primary); }

        .short-meta { display: flex; align-items: center; justify-content: space-between; font-size: 11px; color: var(--text-secondary); border-top: 1px solid var(--border-color); padding-top: 10px; margin-top: 4px; }

        /* Single Video View */
        .video-player-container { width: 100%; max-width: 450px; margin: 20px auto; background: #000; border-radius: 20px; overflow: hidden; position: relative; box-shadow: 0 25px 50px rgba(0,0,0,0.6); border: 1px solid var(--border-color); }
        .video-wrapper { position: relative; padding-top: 177.77%; width: 100%; }
        .video-wrapper iframe, .video-wrapper video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }

        .post-body { font-size: 15px; line-height: 1.8; margin-top: 16px; word-break: break-word; color: var(--text-secondary); }
        .widget { background-color: var(--bg-card); backdrop-filter: blur(12px); border: 1px solid var(--border-color); border-radius: var(--radius-md); padding: 22px; margin-bottom: 24px; box-shadow: var(--shadow-sm); width: 100%; }

        /* Ad Gadgets */
        .ad-gadget { background: var(--bg-card); backdrop-filter: blur(10px); border: 2px dashed var(--border-color); padding: 14px; text-align: center; margin: 20px 0; color: var(--text-secondary); font-size: 12px; border-radius: var(--radius-md); width: 100%; }
    ]]></b:skin>
</head>
<body>

    <!-- Header -->
    <header class='site-header' id='siteHeader'>
        <a class='site-logo' expr:href='data:blog.homepageUrl'>
            <div class='logo-icon'><i class='fa-solid fa-play'/></div>
            <span>Tanbin Shorts</span>
        </a>
        <nav class='nav-links'>
            <a class='nav-link-tab active' expr:href='data:blog.homepageUrl'>Trending Reels</a>
            <a class='nav-link-tab' data-target='trendingView' href='javascript:void(0);'>Viral Shorts</a>
            <a class='nav-link-tab' data-target='categoriesView' href='javascript:void(0);'>Categories</a>
        </nav>
        <div class='header-actions'>
            <button class='theme-toggle-btn' id='themeToggleBtn' title='Toggle Mode'><i class='fa-solid fa-sun' id='themeIcon'/></button>
            <button class='mobile-menu-toggle' id='mobileMenuBtn'><i class='fa-solid fa-bars'/></button>
        </div>
    </header>

    <!-- Mobile Nav Drawer -->
    <div class='mobile-nav' id='mobileNav'>
        <a expr:href='data:blog.homepageUrl'>Trending Reels</a>
        <a class='nav-link-tab mobile-tab' data-target='trendingView' href='javascript:void(0);'>Viral Shorts</a>
        <a class='nav-link-tab mobile-tab' data-target='categoriesView' href='javascript:void(0);'>Categories</a>
    </div>

    <!-- AD GADGET 1 -->
    <div class='container'>
        <b:section class='ad-gadget' id='Ad-Gadget-1' showaddelement='yes' title='Ad Gadget 1: Top Banner'/>
    </div>

    <!-- Main Content Area -->
    <div class='container' id='mainHomeContent'>
        <main class='main-content'>
            
            <!-- AD GADGET 2 -->
            <b:section class='ad-gadget' id='Ad-Gadget-2' showaddelement='yes' title='Ad Gadget 2: Above Feed'/>

            <b:section id='main-blog-section' showaddelement='yes'>
              <b:widget id='Blog1' locked='false' title='Blog Posts' type='Blog' version='2' visible='true'>
                <b:widget-settings>
                  <b:widget-setting name='showDateHeader'>false</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'>true</b:widget-setting>
                  <b:widget-setting name='style.urlcolor'>#ffffff</b:widget-setting>
                  <b:widget-setting name='showAuthor'>true</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='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'>true</b:widget-setting>
                  <b:widget-setting name='showLocation'>true</b:widget-setting>
                  <b:widget-setting name='showTimestamp'>true</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'>
                        
                        <!-- INDEX / HOME VIEW (Shorts Grid Style) -->
                        <b:if cond='data:blog.pageType == &quot;index&quot; or data:blog.pageType == &quot;archive&quot; or data:blog.pageType == &quot;search&quot;'>
                            
                            <div style='display:flex; justify-content:space-between; align-items:center; margin-top:10px;'>
                                <h2 style='font-size: 18px; font-weight: 700;'><i class='fa-solid fa-fire' style='color:var(--primary);'/> Trending Video Shorts</h2>
                                <span style='font-size:13px; color:var(--text-secondary);'>Swipe &amp; Watch</span>
                            </div>

                            <div class='shorts-grid'>
                                <b:loop values='data:posts' var='post'>
                                    <div class='short-card'>
                                        <a class='short-thumb' expr:href='data:post.url'>
                                            <div class='short-badge'><i class='fa-solid fa-bolt'/> Shorts</div>
                                            <b:if cond='data:post.featuredImage'>
                                                <img expr:alt='data:post.title' expr:src='data:post.featuredImage' loading='lazy'/>
                                            <b:else/>
                                                <b:if cond='data:post.firstImageUrl'>
                                                    <img expr:alt='data:post.title' expr:src='data:post.firstImageUrl' loading='lazy'/>
                                                <b:else/>
                                                    <img alt='Video Thumbnail' loading='lazy' src='https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?q=80&amp;w=400&amp;auto=format&amp;fit=crop'/>
                                                </b:if>
                                            </b:if>
                                            <div class='play-overlay'>
                                                <div class='play-btn-circle'><i class='fa-solid fa-play'/></div>
                                            </div>
                                        </a>

                                        <div class='short-info'>
                                            <a class='short-title' expr:href='data:post.url'><data:post.title/></a>
                                            <div class='short-meta'>
                                                <span><i class='fa-regular fa-eye'/> 12.4K</span>
                                                <span><i class='fa-regular fa-heart' style='color:var(--primary);'/> 1.8K</span>
                                            </div>
                                        </div>
                                    </div>
                                </b:loop>
                            </div>

                            <!-- Pagination -->
                            <b:if cond='data:olderPageUrl'>
                                <div style='text-align: center; margin-top: 40px;'>
                                    <a class='btn-gradient' expr:href='data:olderPageUrl' style='padding: 12px 32px; font-size: 14px;'>আরও ভ&#2495;ড&#2495;ও দ&#2503;খ&#2497;ন <i class='fa-solid fa-arrow-right'/></a>
                                </div>
                            </b:if>

                        <!-- SINGLE VIDEO / SHORT VIEW -->
                        <b:else/>
                            <b:loop values='data:posts' var='post'>
                                <div class='video-player-container'>
                                    <div class='video-wrapper'>
                                        <!-- Post body will contain the video embed (YouTube Shorts / MP4 / iframe) -->
                                        <b:if cond='data:post.body'>
                                            <data:post.body/>
                                        <b:else/>
                                            <iframe allowfullscreen='true' src='https://www.youtube.com/embed/dQw4w9WgXcQ'/>
                                        </b:if>
                                    </div>
                                </div>

                                <div class='widget' style='max-width: 650px; margin: 20px auto;'>
                                    <h1 style='font-size: 20px; font-weight: 700; margin-bottom: 12px; word-break:break-word;'><data:post.title/></h1>
                                    <div class='post-body'>
                                        <data:post.snippet/>
                                    </div>
                                </div>

                                <div class='widget' style='max-width: 650px; margin: 20px auto;'>
                                    <b:include data='post' name='commentPicker'/>
                                </div>
                            </b:loop>
                        </b:if>

                    </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='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='commentsTitle'>
  <h3 class='title'><data:messages.comments/></h3>
</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='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='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='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='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='postMeta' var='post'>
  <b:include data='post' name='postMetadataJSON'/>
</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='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='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:includable id='tooltipCss'>
  <!-- LINT.IfChange -->
  <style>
    .post-body a.b-tooltip-container {
      position: relative;
      display: inline-block;
    }

    .post-body a.b-tooltip-container .b-tooltip {
      display: block !important;
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translate(-20%, 1px);
      visibility: hidden;
      opacity: 0;
      z-index: 1;
      transition: opacity 0.2s ease-in-out;
    }

    .post-body a.b-tooltip-container .b-tooltip iframe {
      width: 200px;
      height: 198px;
      max-width: none;
      border: none;
      border-radius: 20px;
      box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2);
    }

    @media (hover: hover) {
      .post-body a.b-tooltip-container:hover .b-tooltip {
        visibility: visible;
        opacity: 1;
      }
    }
  </style>
  <!-- LINT.ThenChange(//depot/google3/java/com/google/blogger/b2/layouts/widgets/v2-style.css) -->
</b:includable>
              </b:widget>
            </b:section>

            <!-- AD GADGET 3 -->
            <b:section class='ad-gadget' id='Ad-Gadget-3' showaddelement='yes' title='Ad Gadget 3: Bottom Banner'/>

        </main>
    </div>

    <footer style='text-align: center; padding: 40px 16px; font-size: 13px; color: var(--text-secondary); border-top: 1px solid var(--border-color); margin-top: 60px;'>
        &#169; 2026 Tanbin Shorts. All rights reserved.
    </footer>

    <!-- Script wrapped safely inside CDATA -->
    <script><![CDATA[
    document.addEventListener('DOMContentLoaded', function() {
        const toggleBtn = document.getElementById('themeToggleBtn');
        const icon = document.getElementById('themeIcon');
        const savedTheme = localStorage.getItem('tanbinshorts_theme');

        if(savedTheme === 'light') {
            document.body.classList.add('light-mode');
            if(icon) icon.className = 'fa-solid fa-moon';
        } else {
            document.body.classList.remove('light-mode');
            if(icon) icon.className = 'fa-solid fa-sun';
        }
        
        if(toggleBtn) {
            toggleBtn.addEventListener('click', function() {
                document.body.classList.toggle('light-mode');
                if(document.body.classList.contains('light-mode')) {
                    localStorage.setItem('tanbinshorts_theme', 'light');
                    if(icon) icon.className = 'fa-solid fa-moon';
                } else {
                    localStorage.setItem('tanbinshorts_theme', 'dark');
                    if(icon) icon.className = 'fa-solid fa-sun';
                }
            });
        }

        // Header Scroll Compact Effect
        const header = document.getElementById('siteHeader');
        window.addEventListener('scroll', function() {
            if(window.scrollY > 40) {
                header.classList.add('compact');
            } else {
                header.classList.remove('compact');
            }
        });

        // Mobile Drawer Menu Toggle
        const mobileMenuBtn = document.getElementById('mobileMenuBtn');
        const mobileNav = document.getElementById('mobileNav');
        if(mobileMenuBtn && mobileNav) {
            mobileMenuBtn.addEventListener('click', function() {
                mobileNav.classList.toggle('open');
            });
        }
    });
    ]]></script>

</body>
</html>

Comments