Integrating Blog, YouTube & Affiliate SEO Growth
Aleo’s Tube Network Tracker membantu kreator, blogger, dan affiliate marketer mengelola backlink, afiliasi, serta performa SEO lintas platform secara efisien.
Proyek ini dibuat untuk menghubungkan seluruh aset digital — mulai dari blog, YouTube channel, hingga link afiliasi — dalam satu sistem pelacakan yang mudah digunakan, transparan, dan otomatis.
💡 “Empowering creators to build influence through smart SEO & affiliate growth.”
✅ Template Google Sheets untuk pelacakan backlink & afiliasi
✅ Integrasi lintas platform: Blog, YouTube, Shopee, Digistore24
✅ Tampilan visual profesional dengan gradasi merah–oranye khas Aleo’s Tube
✅ Lisensi MIT — bebas digunakan dan dimodifikasi
✅ Optimasi SEO bawaan (meta tags, rich snippet-ready)
📁 Aleos-Tube-Network/ │ ├── index.html # Landing page untuk GitHub Pages ├── Aleo's_Tube_Network_Banner.png # Header/banner resmi ├── LICENSE # Lisensi MIT └── README.md # Dokumentasi proyek (file ini)
| 🔧 Aksi | 🌍 Link |
|---|---|
| 📊 Buka Template Google Sheets | Klik di sini |
| 💾 Lihat di GitHub Pages | aleostube.github.io/backlink-tracker |
| 🧠 Baca Dokumentasi | README.md |
| 🌍 Platform | 🔗 Link |
|---|---|
| 🎥 YouTube | @Daily_vlog_anak_rantau |
| Aleostube Page | |
| 🐦 X (Twitter) | @aleostube |
| Aleostube on Pinterest | |
| 🛒 Shopee Affiliate | Produk Pilihan Shopee |
| 💰 Digistore24 Affiliate | Affiliate Hub |
- HTML5 + CSS3
- Google Sheets Integration
- GitHub Pages Deployment
- MIT Open Source License
Proyek ini dilindungi oleh MIT License.
Silakan gunakan, modifikasi, dan distribusikan — dengan tetap mencantumkan kredit kepada Aleo’s Tube Network.
👤 Aleo’s Tube
📺 Kreator konten & penulis digital
🌏 Membagikan pengetahuan, pengalaman, dan inspirasi dari kehidupan perantauan
📧 Hubungi: [email protected]
🌠 “Belajar, berbagi, dan tumbuh bersama — satu backlink dan satu ide setiap hari.”
⭐ Jika proyek ini bermanfaat, jangan lupa kasih bintang di repo GitHub kamu!
#AleoTube #SEO #AffiliateMarketing #BacklinkTracker #CreatorTools
<?xml version="1.0" encoding="UTF-8" ?>
/* Header
----------------------------------------------- */
.header-outer {
background:
color: $(header.text.color);
-moz-border-radius:
.Header img, .Header #header-inner {
-moz-border-radius:
.header-inner .Header .titlewrapper,
.header-inner .Header .descriptionwrapper {
padding-left:
.Header h1 { font: $(header.font); text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3); }
.Header h1 a { color: $(header.text.color); }
.Header .description { font-size: 130%; }
/* Tabs
----------------------------------------------- */
.tabs-inner {
margin: .5em
.tabs-inner .section { margin: 0; }
.tabs-inner .widget ul { padding: 0;
background:
-moz-border-radius:
.tabs-inner .widget li { border: none; }
.tabs-inner .widget li a { display: inline-block;
padding: .5em 1em; margin-$endSide: $(tabs.spacing);
color:
-moz-border-radius:
background: $(tab.background);
border-$endSide: 1px solid $(tabs.separator.color); }
.tabs-inner .widget li:first-child a { padding-$startSide: 1.25em;
-moz-border-radius-top$startSide: $(tab.first.border.radius); -moz-border-radius-bottom$startSide: $(tabs.border.radius); -webkit-border-top-$startSide-radius: $(tab.first.border.radius); -webkit-border-bottom-$startSide-radius: $(tabs.border.radius); -goog-ms-border-top-$startSide-radius: $(tab.first.border.radius); -goog-ms-border-bottom-$startSide-radius: $(tabs.border.radius); border-top-$startSide-radius: $(tab.first.border.radius); border-bottom-$startSide-radius: $(tabs.border.radius); }
.tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover { position: relative; z-index: 1;
background: $(tabs.selected.background.color) $(tab.selected.background.gradient) repeat scroll bottom; color: $(tabs.selected.text.color);
-moz-box-shadow: 0 0
/* Headings
----------------------------------------------- */
h2 {
font:
/* Main ----------------------------------------------- */ .main-outer { background: $(main.background);
-moz-border-radius:
-moz-box-shadow: 0
.main-inner { padding: 15px $(main.padding.sides) 20px; }
.main-inner .column-center-inner { padding: 0 0; }
.main-inner .column-left-inner { padding-left: 0; }
.main-inner .column-right-inner { padding-right: 0; }
/* Posts ----------------------------------------------- */ h3.post-title { margin: 0; font: $(post.title.font); }
.comments h4 { margin: 1em 0 0; font: $(post.title.font); }
.date-header span { color: $(date.header.color); }
.post-outer {
background-color:
-moz-border-radius:
padding: 15px 20px; margin: 0 $(post.margin.sides) 20px; }
.post-body { line-height: 1.4; font-size: 110%; position: relative; }
.post-header { margin: 0 0 1.5em;
color: $(post.footer.text.color); line-height: 1.6; }
.post-footer { margin: .5em 0 0;
color: $(post.footer.text.color); line-height: 1.6; }
#blog-pager { font-size: 140% }
#comments .comment-author { padding-top: 1.5em;
border-top: dashed 1px #ccc; border-top: dashed 1px rgba(128, 128, 128, .5);
background-position: 0 1.5em; }
#comments .comment-author:first-child { padding-top: 0;
border-top: none; }
.avatar-image-container { margin: .2em 0 0; }
/* Comments ----------------------------------------------- */ .comments .comments-content .icon.blog-author { background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==); }
.comments .comments-content .loadmore a {
border-top: 1px solid
.comments .continue { border-top: 2px solid $(link.hover.color); }
/* Widgets ----------------------------------------------- */ .widget ul, .widget #ArchiveList ul.flat { padding: 0; list-style: none; }
.widget ul li, .widget #ArchiveList ul.flat li { border-top: dashed 1px #ccc; border-top: dashed 1px rgba(128, 128, 128, .5); }
.widget ul li:first-child, .widget #ArchiveList ul.flat li:first-child { border-top: none; }
.widget .post-body ul { list-style: disc; }
.widget .post-body ul li { border: none; }
/* Footer ----------------------------------------------- */ .footer-outer { color:$(footer.text.color); background: $(footer.background);
-moz-border-radius:
-moz-box-shadow: 0
.footer-inner { padding: 10px $(main.padding.sides) 20px; }
.footer-outer a { color: $(footer.link.color); }
.footer-outer a:visited { color: $(footer.link.visited.color); }
.footer-outer a:hover { color: $(footer.link.hover.color); }
.footer-outer .widget h2 { color: $(footer.widget.title.text.color); }
/* Mobile ----------------------------------------------- */ html body.mobile { height: auto; }
html body.mobile { min-height: 480px; background-size: 100% auto; }
.mobile .body-fauxcolumn-outer { background: $(mobile.background.overlay); }
html .mobile .mobile-date-outer, html .mobile .blog-pager { border-bottom: none; background: $(main.background); margin-bottom: 10px; }
.mobile .date-outer { background: $(main.background); }
.mobile .header-outer, .mobile .main-outer, .mobile .post-outer, .mobile .footer-outer { -moz-border-radius: 0; -webkit-border-radius: 0; -goog-ms-border-radius: 0; border-radius: 0; }
.mobile .content-outer, .mobile .main-outer, .mobile .post-outer { background: inherit; border: none; }
.mobile .content-outer { font-size: 100%; }
.mobile-link-button { background-color: $(link.color); }
.mobile-link-button a:link, .mobile-link-button a:visited { color: $(post.background.color); }
.mobile-index-contents { color: $(body.text.color); }
.mobile .tabs-inner .PageList .widget-content { background: $(tabs.selected.background.color) $(tab.selected.background.gradient) repeat scroll bottom; color: $(tabs.selected.text.color); }
.mobile .tabs-inner .PageList .widget-content .pagelist-arrow { border-$startSide: 1px solid $(tabs.separator.color); } ]]></b:skin>
<b:template-skin>
<b:variable default='960px' name='content.width' type='length' value='700px'/>
<b:variable default='100%' name='main.column.left.width' type='length' value='0px'/>
<b:variable default='310px' name='main.column.right.width' type='length' value='0px'/>
<![CDATA[
body {
min-width: $(content.width);
}
.content-outer, .content-fauxcolumn-outer, .region-inner {
min-width: $(content.width);
max-width: $(content.width);
_width: $(content.width);
}
.main-inner .columns {
padding-left: $(main.column.left.width);
padding-right: $(main.column.right.width);
}
.main-inner .fauxcolumn-center-outer {
left: $(main.column.left.width);
right: $(main.column.right.width);
/* IE6 does not respect left and right together */
_width: expression(this.parentNode.offsetWidth -
parseInt("$(main.column.left.width)") -
parseInt("$(main.column.right.width)") + 'px');
}
.main-inner .fauxcolumn-left-outer {
width: $(main.column.left.width);
}
.main-inner .fauxcolumn-right-outer {
width: $(main.column.right.width);
}
.main-inner .column-left-outer {
width: $(main.column.left.width);
right: 100%;
margin-left: -$(main.column.left.width);
}
.main-inner .column-right-outer {
width: $(main.column.right.width);
margin-right: -$(main.column.right.width);
}
#layout {
min-width: 0;
}
#layout .content-outer {
min-width: 0;
width: 800px;
}
#layout .region-inner {
min-width: 0;
width: auto;
}
body#layout div.add_widget {
padding: 8px;
}
body#layout div.add_widget a {
margin-left: 32px;
}
]]>
</b:template-skin>
<b:if cond='data:skin.vars.body_background.image.isResizable'>
<b:include cond='not data:view.isPreview' data='{ image: data:skin.vars.body_background.image, selector: "body" }' name='responsiveImageStyle'/>
</b:if>
<b:include data='blog' name='google-analytics'/>
rotate(${hour}deg) translate(-50%, -50%);
document.querySelector('.analog-clock-footer .hand.minute').style.transform =
rotate(${minute}deg) translate(-50%, -50%);
document.querySelector('.analog-clock-footer .hand.second').style.transform =
rotate(${second}deg) translate(-50%, -50%);
}
setInterval(updateClockFooter, 1000); updateClockFooter(); //]]> </script>
<style> :root { --primary-color: #ffcc00; --subscribe-color: #ff0000; --light-bg: rgba(255,255,255,0.8); --light-text: #222; --dark-bg: rgba(20,20,20,0.8); --dark-text: #fff; }/* Footer mungil lonjong */ footer.mini-footer { position: fixed; bottom: 58px; left: 50%; transform: translateX(-50%); background: var(--light-bg); color: var(--light-text); border-radius: 20px; padding: 3px 10px; font-size: 10px; font-family: Arial, sans-serif; box-shadow: 0 2px 6px rgba(0,0,0,0.15); z-index: 900; opacity: 0; animation: fadeUp 0.6s ease forwards; } @media (prefers-color-scheme: dark) { footer.mini-footer { background: var(--dark-bg); color: var(--dark-text); } }
/* Navbar mungil */ .mini-nav { position: fixed; bottom: 8px; left: 50%; transform: translateX(-50%); background: var(--light-bg); border-radius: 30px; display: flex; gap: 12px; padding: 4px 10px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); z-index: 1000; opacity: 0; animation: fadeUp 0.8s ease forwards; } .mini-nav a { color: var(--light-text); font-size: 11px; text-decoration: none; display: flex; align-items: center; transition: all 0.2s ease; } .mini-nav a i { font-size: 13px; margin-right: 3px; } .mini-nav a:hover { color: var(--primary-color); } @media (prefers-color-scheme: dark) { .mini-nav { background: var(--dark-bg); } .mini-nav a { color: var(--dark-text); } }
/* Tombol Subscribe mungil dengan border pelangi + glow + floating */ .mini-subscribe { position: fixed; right: 12px; bottom: 100px; background: var(--subscribe-color); color: #fff; font-size: 11px; padding: 5px 12px; border-radius: 30px; text-decoration: none; font-weight: bold; z-index: 1100; display: inline-block !important; opacity: 0; animation: fadeUp 1s ease forwards, glowPulse 2s infinite, floatBounce 3s ease-in-out infinite; border: 2px solid transparent; background-clip: padding-box; position: relative; }
/* Border pelangi */ .mini-subscribe::before { content: ""; position: absolute; inset: -2px; border-radius: 30px; padding: 2px; background: linear-gradient(90deg, red, orange, yellow, green, blue, indigo, violet, red); background-size: 400%; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: rainbow 4s linear infinite; }
.mini-subscribe:hover { background: #cc0000; transform: scale(1.1); }
/* Animasi border pelangi */ @keyframes rainbow { 0% { background-position: 0% 50%; } 100% { background-position: 400% 50%; } }
/* Efek glow kedip */ @keyframes glowPulse { 0%, 100% { box-shadow: 0 0 6px rgba(255,0,0,0.6); } 50% { box-shadow: 0 0 14px rgba(255,0,0,0.9); } }
/* Animasi melayang naik-turun */ @keyframes floatBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
/* Animasi muncul */ @keyframes fadeUp { from { opacity: 0; transform: translateY(15px) translateX(-50%); } to { opacity: 1; transform: translateY(0) translateX(-50%); } } </style>
<iframe height='0' src='https://www.googletagmanager.com/ns.html?id=GTM-T5PTHLRB' style='display:none;visibility:hidden' width='0'/> <iframe height='0' src='https://www.googletagmanager.com/ns.html?id=GTM-MKB9TPDR' style='display:none;visibility:hidden' width='0'/> <iframe height='0' src='https://www.googletagmanager.com/ns.html?id=GTM-WR546M4D>m_auth=7_SAhutJuvX_5wv88hZpYg>m_preview=env-10>m_cookies_win=x' style='display:none;visibility:hidden' width='0'/> <script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://draft.blogger.com/navbar/8956348688248328686?origin\x3dhttp://localhost:80', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script><script type="text/javascript"> (function() { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = '//pagead2.googlesyndication.com/pagead/js/google_top_exp.js'; var head = document.getElementsByTagName('head')[0]; if (head) { head.appendChild(script); }})(); </script><b:if cond='data:blog.pageType == "index"'>
/* Avatar efek api */ .avatar-fire { position: relative; display: inline-block; margin-bottom: 20px; } .avatar-fire img { width: 90px; height: 90px; border-radius: 50%; object-fit: cover; z-index: 3; position: relative; }
/* Lidah api */ .flame { position: absolute; top: -25px; left: -25px; right: -25px; bottom: -25px; border-radius: 50%; filter: blur(28px); z-index: 1; opacity: 0.7; animation: flicker 2s infinite ease-in-out alternate; } .flame1 { background: radial-gradient(circle, rgba(255,140,0,0.8) 20%, transparent 70%); animation-delay: 0s; } .flame2 { background: radial-gradient(circle, rgba(255,69,0,0.8) 15%, transparent 80%); animation-delay: 0.5s; } .flame3 { background: radial-gradient(circle, rgba(255,215,0,0.7) 10%, transparent 80%); animation-delay: 1s; }
@keyframes flicker { 0% { transform: scale(1) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.2) rotate(12deg); opacity: 1; } 100% { transform: scale(1) rotate(-12deg); opacity: 0.6; } }
/* Sparks (percikan api) */ .spark { position: absolute; width: 6px; height: 6px; background: radial-gradient(circle, #ffec85 20%, #ff9900 70%, transparent 100%); border-radius: 50%; animation: sparkFly 3s linear infinite; opacity: 0.8; z-index: 2; } .spark:nth-child(4) { top: 10%; left: 40%; animation-delay: 0s; } .spark:nth-child(5) { top: 30%; left: 70%; animation-delay: 0.5s; } .spark:nth-child(6) { top: 60%; left: 20%; animation-delay: 1s; } .spark:nth-child(7) { top: 80%; left: 50%; animation-delay: 1.5s; } .spark:nth-child(8) { top: 40%; left: 10%; animation-delay: 2s; }
@keyframes sparkFly { 0% { transform: translateY(0) scale(1); opacity: 0.9; } 50% { transform: translateY(-40px) scale(0.8); opacity: 1; } 100% { transform: translateY(-80px) scale(0.5); opacity: 0; } }
/* Tombol oval horizontal */ .btn-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; } .btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 25px; font-size: 0.9rem; font-weight: 600; color: #fff; text-decoration: none; position: relative; overflow: hidden; z-index: 1; } .btn::before { content: ""; position: absolute; inset: -2px; border-radius: 30px; background: linear-gradient(90deg, red, orange, yellow, green, blue, violet); background-size: 400% 100%; animation: rainbowMove 6s linear infinite; z-index: -2; } .btn::after { content: ""; position: absolute; inset: 2px; border-radius: 25px; z-index: -1; } .btn-wa::after { background: #25D366; } .btn-yt::after { background: #FF0000; } .btn-ig::after { background: linear-gradient(45deg,#f58529,#dd2a7b,#8134af,#515bd4); } .btn-fb::after { background: #1877F2; } .btn-pin::after { background: #E60023; } .btn-th::after { background: #000; }
.btn i { font-size: 1rem; }
@keyframes rainbowMove { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } } </style>
<style> .aleo-monkey-widget { position: fixed; bottom: 12px; right: 12px; width: 78px; height: 84px; z-index: 99999; cursor: pointer; transition: transform 0.3s; } .aleo-monkey-widget:hover {transform: scale(1.18) rotate(-10deg);} .monkey-body { position: absolute; bottom: 5px; left: 15px; width: 50px; height: 45px; background: #d35400; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; border: 3px solid #a0522d; animation: monkeyDance 2s infinite; } @keyframes monkeyDance { 0%,100%{transform:rotate(-3deg) scale(1);} 25%{transform:rotate(3deg) scale(1.03);} 75%{transform:rotate(-5deg) scale(0.97);} } .monkey-head { position: absolute; top: 5px; left: 20px; width: 45px; height: 47px; background: #d35400; border-radius: 50% 50% 40% 40% / 65% 65% 35% 35%; border: 3px solid #a0522d; display: flex; align-items: center; justify-content: center; font-size: 25px; animation: headBob 1.5s infinite; } @keyframes headBob {0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}} .monkey-arms {position: absolute; top: 26px; left: 4px; display: flex; gap: 50px;} .monkey-arms .arm { width: 18px; height: 25px; background: #d35400; border: 2px solid #a0522d; border-radius: 50px; transform-origin: top center; } .monkey-arms .arm.left {animation: armSwing 1.2s infinite;} .monkey-arms .arm.right {animation: armSwing 1.2s infinite reverse;} @keyframes armSwing {0%,100%{transform:rotate(-20deg);}50%{transform:rotate(25deg);}} .coconut { position: absolute; top: -5px; right: 5px; font-size: 15px; animation: coconutSpin 2.5s infinite; color: #8b4513; } @keyframes coconutSpin {0%,100%{transform:rotate(0deg);}100%{transform:rotate(360deg);}} .monkey-speech { position: absolute; right: 85px; bottom: 35px; background: #e74c3c; color: white; border-radius: 20px; font-size: 10px; padding: 7px 12px; font-family: Arial, sans-serif; white-space: nowrap; opacity: 0; transition: opacity 0.4s; box-shadow: 0 3px 15px rgba(231,76,60,0.4); animation: speechWiggle 3s infinite; pointer-events: none; } @keyframes speechWiggle {0%,100%{transform:rotate(0);}25%{transform:rotate(-2deg);}75%{transform:rotate(2deg);}} .monkey-speech:after { content: ''; position: absolute; left: 100%; top: 50%; transform: translateY(-50%); border: 5px solid transparent; border-left-color: #e74c3c; } .aleo-monkey-widget:hover .monkey-speech {opacity: 1;} </style><b:if cond='data:useImage'> <b:if cond='data:imagePlacement == "BEHIND"'> <b:if cond='data:mobile'>
<b:else/> </b:if> <b:else/> </b:if> <b:else/> </b:if> </b:includable> <b:includable id='description'>
<div class='tabs-outer'>
<div class='tabs-cap-top cap-top'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
<div class='fauxborder-left tabs-fauxborder-left'>
<div class='fauxborder-right tabs-fauxborder-right'/>
<div class='region-inner tabs-inner'>
<b:section class='tabs' id='crosscol' maxwidgets='1' name='Cross-Column' showaddelement='yes'>
<b:widget id='HTML2' locked='false' title='' type='HTML'>
<b:widget-settings>
<b:widget-setting name='content'><![CDATA[<!-- ===============================
🏠 HOMEPAGE ALEO’S TUBE ================================ --> <b:if cond='data:blog.pageType == "index"'> Aleo’s Tube — Daily Vlog Anak Rantau
Gabungan cerita kehidupan, tutorial blogger, dan tools otomatis buatan Aleo.
<span class="spark"></span>
<span class="spark"></span>
<span class="spark"></span>
<span class="spark"></span>
<span class="spark"></span>
, <b:if cond='data:blog.pageType != "preview"'>
<script type='text/javascript'> // </script><!doctype html>
SEO Status — Aleo's Tube
<style> body{font-family:Segoe UI, Roboto, Arial; background:#f6f8fb; color:#0b1220; padding:28px;} .card{background:white;border-radius:12px;padding:18px;box-shadow:0 8px 28px rgba(13,41,77,0.06);max-width:920px;margin:0 auto;} h1{margin:0 0 12px;font-size:20px} .row{display:flex;gap:12px;align-items:center;margin-top:10px;flex-wrap:wrap} .badge{padding:8px 12px;border-radius:10px;background:linear-gradient(90deg,#ff6b00,#0077ff);color:#fff;font-weight:700} button{padding:8px 12px;border-radius:10px;border:none;background:#0077ff;color:#fff;cursor:pointer;font-weight:700} .muted{color:#5b6782;font-size:13px} pre{background:#0b1220;color:#dff4ff;padding:12px;border-radius:8px;overflow:auto} </style><div class="row" style="margin-top:18px">
<div>
<div class="muted">Consent analytics</div>
<div id="consentStatus" class="badge">—</div>
</div>
<div>
<div class="muted">Last auto-ping</div>
<div id="lastPing" style="padding:8px 12px;border-radius:8px;background:#f1f5f9;color:#0b1220;font-weight:700">—</div>
</div>
<div style="margin-left:auto; display:flex; gap:8px;">
<button id="manualPing">Ping Sekarang</button>
<button id="clearPing" style="background:#ff4d4f">Reset</button>
</div>
</div>
<section style="margin-top:18px;">
<h3 style="margin:8px 0">Log Ringkas</h3>
<div class="muted">Log di bawah hanya untuk debugging & tersimpan sementara di sessionStorage.</div>
<pre id="logArea" style="height:160px">—</pre>
</section>
<section style="margin-top:16px;">
<small class="muted">Catatan: Ping dilakukan via <code>fetch</code> ke endpoint publik (Google/Bing) dengan mode <code>no-cors</code>. Browser tidak menampilkan respons yang bisa dibaca — operasi bersifat "fire-and-forget".</small>
</section>
</!doctype>]]></b:widget-setting> </b:widget-settings> <b:includable id='main'>
<b:if cond='data:title != ""'>
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> </b:section> <b:section class='tabs' id='crosscol-overflow' name='Cross-Column 2' showaddelement='no'/>
<div class='main-outer'>
<div class='main-cap-top cap-top'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
<div class='fauxborder-left main-fauxborder-left'>
<div class='fauxborder-right main-fauxborder-right'/>
<div class='region-inner main-inner'>
<div class='columns fauxcolumns'>
<div class='fauxcolumn-outer fauxcolumn-center-outer'>
<div class='cap-top'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'/>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
</div>
<div class='fauxcolumn-outer fauxcolumn-left-outer'>
<div class='cap-top'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'/>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
</div>
<div class='fauxcolumn-outer fauxcolumn-right-outer'>
<div class='cap-top'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'/>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
</div>
<!-- corrects IE6 width calculation -->
<div class='columns-inner'>
<div class='column-center-outer'>
<div class='column-center-inner'>
<b:section class='main' id='main' name='Main' showaddelement='no'>
<b:widget id='Blog1' locked='false' title='Postingan Blog' type='Blog' version='1'>
<b:widget-settings>
<b:widget-setting name='commentLabel'>comments</b:widget-setting>
<b:widget-setting name='showShareButtons'>true</b:widget-setting>
<b:widget-setting name='authorLabel'>By Aleo</b:widget-setting>
<b:widget-setting name='style.unittype'>TextAndImage</b:widget-setting>
<b:widget-setting name='timestampLabel'>at</b:widget-setting>
<b:widget-setting name='reactionsLabel'/>
<b:widget-setting name='showAuthorProfile'>true</b:widget-setting>
<b:widget-setting name='style.layout'>1x1</b:widget-setting>
<b:widget-setting name='showLocation'>false</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='style.bordercolor'>#ffffff</b:widget-setting>
<b:widget-setting name='showDateHeader'>true</b:widget-setting>
<b:widget-setting name='style.textcolor'>#ffffff</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='postLocationLabel'>Location: Indonesia</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.bgcolor'>#ffffff</b:widget-setting>
<b:widget-setting name='showLabels'>false</b:widget-setting>
<b:widget-setting name='postLabelsLabel'>Labels: Daily Vlog Anak Rantau Indonesia,</b:widget-setting>
<b:widget-setting name='showBacklinks'>false</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='top'>
<b:if cond='!data:mobile'>
<b:include data='top' name='status-message'/>
<b:loop values='data:posts' var='post'>
<b:if cond='data:post.isDateStart and not data:post.isFirstPost'>
</div></div>
</b:if>
<b:if cond='data:post.isDateStart'>
<div class="date-outer">
</b:if>
<b:if cond='data:post.dateHeader'>
<h2 class='date-header'><span><data:post.dateHeader/></span></h2>
</b:if>
<b:if cond='data:post.isDateStart'>
<div class="date-posts">
</b:if>
<div class='post-outer'>
<b:include data='post' name='post'/>
<b:include cond='data:blog.pageType in {"static_page","item"}' data='post' name='comment_picker'/>
</div>
<!-- Ad -->
<b:if cond='data:post.includeAd'>
<div class='inline-ad'>
<data:adCode/>
</div>
</b:if>
</b:loop>
<b:if cond='data:numPosts != 0'>
</div></div>
</b:if>
</div>
<!-- navigation -->
<b:include name='nextprev'/>
<!-- feed links -->
<b:include name='feedLinks'/>
<b:else/> <b:include name='mobile-main'/> </b:if> </b:includable> <b:includable id='backlinkDeleteIcon' var='backlink'/> <b:includable id='backlinks' var='post'/> <b:includable id='comment-form' var='post'>
<b:if cond='data:post.commentPagingRequired'>
<span class='paging-control-container'>
<b:if cond='data:post.hasOlderLinks'>
<a expr:class='data:post.oldLinkClass' expr:href='data:post.oldestLinkUrl'><data:post.oldestLinkText/></a>
 
<a expr:class='data:post.oldLinkClass' expr:href='data:post.olderLinkUrl'><data:post.olderLinkText/></a>
 
</b:if>
<data:post.commentRangeText/>
<b:if cond='data:post.hasNewerLinks'>
 
<a expr:class='data:post.newLinkClass' expr:href='data:post.newerLinkUrl'><data:post.newerLinkText/></a>
 
<a expr:class='data:post.newLinkClass' expr:href='data:post.newestLinkUrl'><data:post.newestLinkText/></a>
</b:if>
</span>
</b:if>
<div expr:id='data:widget.instanceId + "_comments-block-wrapper"'>
<dl expr:class='data:post.avatarIndentClass' id='comments-block'>
<b:loop values='data:post.comments' var='comment'>
<dt expr:class='"comment-author " + data:comment.authorClass' expr:id='data:comment.anchorName'>
<b:if cond='data:comment.favicon'>
<img expr:src='data:comment.favicon' height='16px' style='margin-bottom:-2px;' width='16px'/>
</b:if>
<a expr:name='data:comment.anchorName'/>
<b:if cond='data:blog.enabledCommentProfileImages'>
<data:comment.authorAvatarImage/>
</b:if>
<b:if cond='data:comment.authorUrl'>
<a expr:href='data:comment.authorUrl' rel='nofollow'><data:comment.author/></a>
<b:else/>
<data:comment.author/>
</b:if>
<data:commentPostedByMsg/>
</dt>
<dd class='comment-body' expr:id='data:widget.instanceId + data:comment.cmtBodyIdPostfix'>
<b:if cond='data:comment.isDeleted'>
<span class='deleted-comment'><data:comment.body/></span>
<b:else/>
<p>
<data:comment.body/>
</p>
</b:if>
</dd>
<dd 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>
</dd>
</b:loop>
</dl>
</div>
<b:if cond='data:post.commentPagingRequired'>
<span class='paging-control-container'>
<a expr:class='data:post.oldLinkClass' expr:href='data:post.oldestLinkUrl'>
<data:post.oldestLinkText/>
</a>
<a expr:class='data:post.oldLinkClass' expr:href='data:post.olderLinkUrl'>
<data:post.olderLinkText/>
</a>
 
<data:post.commentRangeText/>
 
<a expr:class='data:post.newLinkClass' expr:href='data:post.newerLinkUrl'>
<data:post.newerLinkText/>
</a>
<a expr:class='data:post.newLinkClass' expr:href='data:post.newestLinkUrl'>
<data:post.newestLinkText/>
</a>
</span>
</b:if>
<p class='comment-footer'>
<b:if cond='data:post.embedCommentForm'>
<b:if cond='data:post.allowNewComments'>
<b:include data='post' name='comment-form'/>
<b:else/>
<data:post.noNewCommentsText/>
</b:if>
<b:elseif cond='data:post.allowComments'/>
<a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a>
</b:if>
</p>
</b:if>
<b:if cond='data:showCmtPopup'>
<div id='comment-popup'>
<iframe allowtransparency='true' frameborder='0' id='comment-actions' name='comment-actions' scrolling='no'>
</iframe>
</div>
</b:if>
<b:else/>
<div class='mobile-post-outer'>
<a expr:href='data:post.url'>
<h3 class='mobile-index-title entry-title' itemprop='name'>
<data:post.title/>
</h3>
<div class='mobile-index-arrow'>&rsaquo;</div>
<div class='mobile-index-contents'>
<b:if cond='data:post.thumbnailUrl'>
<div class='mobile-index-thumbnail'>
<div class='Image'>
<img expr:src='data:post.thumbnailUrl'/>
</div>
</div>
</b:if>
<div class='post-body'>
<b:if cond='data:post.snippet'><data:post.snippet/></b:if>
</div>
</div>
<div style='clear: both;'/>
</a>
<div class='mobile-index-comment'>
<b:include cond='data:blog.pageType != "static_page" and data:post.allowComments and data:post.numComments != 0' data='post' name='comment_count_picker'/>
</div>
</div>
<b:include data='top' name='status-message'/>
<b:if cond='data:blog.pageType == "index"'>
<b:loop values='data:posts' var='post'>
<b:include data='post' name='mobile-index-post'/>
</b:loop>
<b:else/>
<b:loop values='data:posts' var='post'>
<b:include data='post' name='mobile-post'/>
</b:loop>
</b:if>
</div>
<b:include name='mobile-nextprev'/> </b:includable> <b:includable id='mobile-nextprev'>
<b:if cond='data:olderPageUrl'>
<div class='mobile-link-button' id='blog-pager-older-link'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + "_blog-pager-older-link"' expr:title='data:olderPageTitle'>&rsaquo;</a>
</div>
</b:if>
<div class='mobile-link-button' id='blog-pager-home-link'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
</div>
<div class='mobile-desktop-link'>
<a class='home-link' expr:href='data:desktopLinkUrl'><data:desktopLinkMsg/></a>
</div>
<div class='post hentry uncustomized-post-template' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<b:if cond='data:post.thumbnailUrl'>
<meta expr:content='data:post.thumbnailUrl' itemprop='image_url'/>
</b:if>
<meta expr:content='data:blog.blogId' itemprop='blogId'/>
<meta expr:content='data:post.id' itemprop='postId'/>
<a expr:name='data:post.id'/>
<b:if cond='data:post.title'>
<h3 class='post-title entry-title' itemprop='name'>
<b:if cond='data:post.link'>
<a expr:href='data:post.link'><data:post.title/></a>
<b:elseif cond='data:post.url and data:blog.url != data:post.url'/>
<a expr:href='data:post.url'><data:post.title/></a>
<b:else/>
<data:post.title/>
</b:if>
</h3>
</b:if>
<div class='post-header'>
<div class='post-header-line-1'/>
</div>
<div class='post-body entry-content' expr:id='"post-body-" + data:post.id' itemprop='articleBody'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
<b:if cond='data:top.showAuthor'>
<b:if cond='data:post.authorProfileUrl'>
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta expr:content='data:post.authorProfileUrl' itemprop='url'/>
<a expr:href='data:post.authorProfileUrl' rel='author' title='author profile'>
<span itemprop='name'><data:post.author/></span>
</a>
</span>
<b:else/>
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<span itemprop='name'><data:post.author/></span>
</span>
</b:if>
</b:if>
</span>
<span class='post-timestamp'>
<b:if cond='data:top.showTimestamp'>
<data:top.timestampLabel/>
<b:if cond='data:post.url'>
<meta expr:content='data:post.url.canonical' itemprop='url'/>
<a class='timestamp-link' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='published' expr:title='data:post.timestampISO8601' itemprop='datePublished'><data:post.timestamp/></abbr></a>
</b:if>
</b:if>
</span>
<span class='post-comment-link'>
<b:include cond='data:blog.pageType not in {"item","static_page"} and data:post.allowComments' data='post' name='comment_count_picker'/>
</span>
</div>
<div class='post-footer-line post-footer-line-2'>
<b:if cond='data:top.showMobileShare'>
<div class='mobile-link-button goog-inline-block' id='mobile-share-button'>
<a href='javascript:void(0);'><data:shareMsg/></a>
</div>
</b:if>
</div>
</div>
</div>
<b:include cond='data:blog.pageType in {"static_page","item"}' data='post' name='comment_picker'/>
</div>
</div>
<b:if cond='data:olderPageUrl'>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + "_blog-pager-older-link"' expr:title='data:olderPageTitle'><data:olderPageTitle/></a>
</span>
</b:if>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
<b:if cond='data:mobileLinkUrl'>
<div class='blog-mobile-link'>
<a expr:href='data:mobileLinkUrl'><data:mobileLinkMsg/></a>
</div>
</b:if>
<a expr:name='data:post.id'/>
<b:if cond='data:post.title'>
<h3 class='post-title entry-title' itemprop='name'>
<b:if cond='data:post.link or (data:post.url and data:blog.url != data:post.url)'>
<a expr:href='data:post.link ? data:post.link : data:post.url'><data:post.title/></a>
<b:else/>
<data:post.title/>
</b:if>
</h3>
</b:if>
<div class='post-header'>
<div class='post-header-line-1'/>
</div>
<!-- Then use the post body as the schema.org description, for good G+/FB snippeting. -->
<div class='post-body entry-content' expr:id='"post-body-" + data:post.id' expr:itemprop='(data:blog.metaDescription ? "" : "description ") + "articleBody"'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<b:if cond='data:post.hasJumpLink'>
<div class='jump-link'>
<a expr:href='data:post.url + "#more"' expr:title='data:post.title'><data:post.jumpText/></a>
</div>
</b:if>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
<b:if cond='data:top.showAuthor'>
<data:top.authorLabel/>
<b:if cond='data:post.authorProfileUrl'>
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<meta expr:content='data:post.authorProfileUrl' itemprop='url'/>
<a class='g-profile' expr:href='data:post.authorProfileUrl' rel='author' title='author profile'>
<span itemprop='name'><data:post.author/></span>
</a>
</span>
<b:else/>
<span class='fn' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<span itemprop='name'><data:post.author/></span>
</span>
</b:if>
</b:if>
</span>
<span class='post-timestamp'>
<b:if cond='data:top.showTimestamp'>
<data:top.timestampLabel/>
<b:if cond='data:post.url'>
<meta expr:content='data:post.url.canonical' itemprop='url'/>
<a class='timestamp-link' expr:href='data:post.url' rel='bookmark' title='permanent link'><abbr class='published' expr:title='data:post.timestampISO8601' itemprop='datePublished'><data:post.timestamp/></abbr></a>
</b:if>
</b:if>
</span>
<span class='post-comment-link'>
<b:include cond='data:blog.pageType not in {"item","static_page"} and data:post.allowComments' data='post' name='comment_count_picker'/>
</span>
<span class='post-icons'>
<!-- email post links -->
<b:if cond='data:post.emailPostUrl'>
<span class='item-action'>
<a expr:href='data:post.emailPostUrl' expr:title='data:top.emailPostMsg'>
<img alt='' class='icon-action' height='13' src='https://resources.blogblog.com/img/icon18_email.gif' width='18'/>
</a>
</span>
</b:if>
<!-- quickedit pencil -->
<b:include data='post' name='postQuickEdit'/>
</span>
<!-- share buttons -->
<div class='post-share-buttons goog-inline-block'>
<b:include cond='data:post.sharePostUrl' data='post' name='shareButtons'/>
</div>
</div>
<div class='post-footer-line post-footer-line-2'>
<span class='post-labels'>
<b:if cond='data:top.showPostLabels and data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='not data:label.isLast'>,</b:if>
</b:loop>
</b:if>
</span>
</div>
<div class='post-footer-line post-footer-line-3'>
<span class='post-location'>
<b:if cond='data:top.showLocation and data:post.location'>
<data:postLocationLabel/>
<a expr:href='data:post.location.mapsUrl' target='_blank'><data:post.location.name/></a>
</b:if>
</span>
</div>
<b:if cond='data:post.authorAboutMe'>
<div class='author-profile' itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'>
<b:if cond='data:post.authorPhoto.url'>
<img expr:src='data:post.authorPhoto.url' itemprop='image' width='50px'/>
</b:if>
<div>
<a class='g-profile' expr:href='data:post.authorProfileUrl' itemprop='url' rel='author' title='author profile'>
<span itemprop='name'><data:post.author/></span>
</a>
</div>
<span itemprop='description'><data:post.authorAboutMe/></span>
</div>
</b:if>
</div>
</b:includable> <b:includable id='threaded_comments' var='post'>
true false 0 true true<b:include name='quickedit'/> </b:includable> <b:includable id='content'>
<style type='text/css'> .image { width: 100%; } </style></b:includable> </b:widget> <b:widget id='PopularPosts1' locked='false' title='' type='PopularPosts'> <b:widget-settings> <b:widget-setting name='numItemsToShow'>5</b:widget-setting> <b:widget-setting name='showThumbnails'>false</b:widget-setting> <b:widget-setting name='showSnippets'>true</b:widget-setting> <b:widget-setting name='timeRange'>ALL_TIME</b:widget-setting> </b:widget-settings> <b:includable id='main'> <b:if cond='data:title != ""'>
</b:if> <div class='column-left-outer'>
<div class='column-left-inner'>
<aside>
<macro:include id='main-column-left-sections' name='sections'>
<macro:param default='0' name='num' value='0'/>
<macro:param default='sidebar-left' name='idPrefix'/>
<macro:param default='sidebar' name='class'/>
<macro:param default='true' name='includeBottom'/>
</macro:include>
</aside>
</div>
</div>
<div class='column-right-outer'>
<div class='column-right-inner'>
<aside>
<macro:include id='main-column-right-sections' name='sections'>
<macro:param default='2' name='num' value='0'/>
<macro:param default='sidebar-right' name='idPrefix'/>
<macro:param default='sidebar' name='class'/>
<macro:param default='true' name='includeBottom'/>
</macro:include>
</aside>
</div>
</div>
</div>
<div style='clear: both'/>
<!-- columns -->
</div>
<!-- main -->
</div>
</div>
<div class='main-cap-bottom cap-bottom'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
</div>
<footer>
<div class='footer-outer'>
<div class='footer-cap-top cap-top'>
<div class='cap-left'/>
<div class='cap-right'/>
</div>
<div class='fauxborder-left footer-fauxborder-left'>
<div class='fauxborder-right footer-fauxborder-right'/>
<div class='region-inner footer-inner'>
<macro:include id='footer-sections' name='sections'>
<macro:param default='2' name='num' value='3'/>
<macro:param default='footer' name='idPrefix'/>
<macro:param default='foot' name='class'/>
<macro:param default='false' name='includeBottom'/>
</macro:include>
<!-- outside of the include in order to lock Attribution widget -->
<b:section class='foot' id='footer-3' name='Footer' showaddelement='no'>
<b:widget id='Attribution1' locked='false' title='' type='Attribution'>
<b:widget-settings>
<b:widget-setting name='copyright'><![CDATA[© 2025 Aleo's Tube. All Rights Reserved.]]></b:widget-setting>
</b:widget-settings>
<b:includable id='main'>
<div class='widget-content' style='text-align: center;'>
<b:if cond='data:attribution != ""'>
<data:attribution/>
</b:if>
</div>
<b:include name='quickedit'/>
</b:includable> </b:widget> </b:section>
Izinkan analytics & ping otomatis
Terima
<b:if cond='data:blog.pageType == "item"'> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BlogPosting", "mainEntityOfPage": { "@type": "WebPage", "@id": "data:post.url/" }, "headline": "data:post.title.escaped/", "description": "data:post.snippet/", "image": { "@type": "ImageObject", "url": "data:post.firstImageUrl/" }, "author": { "@type": "Person", "name": "data:post.author/", "url": "https://aleos-tube-daily-vlog-anak-rantau.blogspot.com/" }, "publisher": { "@type": "Organization", "name": "Aleo’s Tube", "logo": { "@type": "ImageObject", "url": "https://blogger.googleusercontent.com/img/b/logo.png" } }, "datePublished": "data:post.date.iso8601/", "dateModified": "data:post.dateLastUpdated.iso8601/", "inLanguage": "id-ID" } </script> </b:if>
<style> @media(prefers-color-scheme:dark){ body{background:#0b0d12;color:#eee;} } </style>]]> </b:if>
const grid = document.getElementById('scroll-box');
const titleEl = document.getElementById('labelTitle');
titleEl.textContent = ${THEME.icon} ${LABEL} Terbaru dari Aleo’s Tube;
const FALLBACK = [ {title:"Aleo's Tube — Premium Business Program", img:"https://www.digistore24-app.com/pb/img/merchant_371937/image/product/UOW66CMM.jpg", href:"https://www.digistore24.com/redir/472943/Aleostube/"}, {title:"InGenius Wave — Audio Focus", img:"https://www.digistore24-app.com/pb/img/merchant_3646207/image/product/A6KAKV3T.png", href:"https://ingeniuswave.com/DSvsl/#aff=Aleostube"}, {title:"Pineal10X — Mindset", img:"https://www.digistore24-app.com/pb/img/merchant_1632947/image/product/CWSY9T6E.png", href:"https://pineal10x.com/pnl10-index.php#aff=Aleostube"}, {title:"Superhuman At 70 — Supplement", img:"https://www.digistore24-app.com/pb/img/merchant_2005677/image/product/H4VEJAAT.gif", href:"https://www.advancedbionutritionals.com/DS24/Nitric-Oxide-Supplements/Superhuman-At-70/HD.htm#aff=Aleostube"}, {title:"Meridian Acupressure Mat", img:"https://www.digistore24-app.com/pb/img/merchant_771978/image/product/2WY9BT3X.png", href:"https://andbalanced.com/pages/meridian-acupressure-mat-and-pillow-set-dg#aff=Aleostube"} ];
function makeNode(item,i){
const color=['blue','orange','red'][i%3];
const el=document.createElement('div');
el.className='ao-item';
el.innerHTML=<img class="ao-thumb" loading="lazy" src="${item.img}" alt="${item.title}"> <div class="ao-title">${item.title}</div> <a class="ao-cta ${color}" href="${item.href}" target="_blank" rel="nofollow noopener">Lihat</a>;
el.style.animationDelay = (i * 0.12) + 's';
return el;
}
async function loadData(){ grid.innerHTML=''; try{ const res=await fetch(FEED_URL,{cache:'no-store'}); const txt=await res.text(); const json=JSON.parse(txt.slice(txt.indexOf('{'),txt.lastIndexOf('}')+1)); const entries=json.feed.entry||[]; if(entries.length){ entries.forEach((p,i)=>{ const title=p.title?.$t||"Tanpa Judul"; const href=(p.link?.find(l=>l.rel==="alternate")||{}).href||BLOG_URL; let img=p.media$thumbnail?.url; if(!img&&p.content?.$t){ const m=p.content.$t.match(/<img[^>]+src="([^">]+)/i); if(m) img=m[1]; } img=img||"https://via.placeholder.com/400x400?text=Aleo+Offer"; grid.appendChild(makeNode({title,img,href},i)); }); } else FALLBACK.forEach((f,i)=>grid.appendChild(makeNode(f,i))); }catch(e){ FALLBACK.forEach((f,i)=>grid.appendChild(makeNode(f,i))); } }
// 🌈 Auto-scroll lembut function autoScroll(el){ let speed = 0.5; let pause = false; function step(){ if(!pause){ el.scrollLeft += speed; if(el.scrollLeft >= el.scrollWidth - el.clientWidth){ el.scrollLeft = 0; } } requestAnimationFrame(step); } el.addEventListener('mouseenter', ()=>pause = true); el.addEventListener('mouseleave', ()=>pause = false); step(); }
await loadData(); autoScroll(grid); setInterval(loadData, 60000); })(); //]]> </script>
<style> :root { --widget-bg: #ffffff; --widget-text: #000000; --widget-accent: #ff66cc; --widget-shadow: rgba(0,0,0,0.3); } @media (prefers-color-scheme: dark) { :root { --widget-bg: #121212; --widget-text: #ffffff; --widget-accent: #ff99dd; --widget-shadow: rgba(255,255,255,0.2); } } #virtualsign-widget { position: fixed; bottom: 100px; right: 200px; z-index: 9999; width: 320px; height: 240px; box-shadow: 0 0 12px var(--widget-shadow); border-radius: 15px; overflow: hidden; opacity: 0; visibility: hidden; transition: all 0.5s ease; background: var(--widget-bg); } #virtualsign-widget.show {opacity: 1; visibility: visible;} .access-btn { position: fixed; bottom: 30px; z-index: 10000; border: none; border-radius: 50%; width: 60px; height: 60px; font-size: 28px; cursor: pointer; color: #fff; box-shadow: 0 0 10px var(--widget-shadow); transition: transform 0.3s ease, background 0.3s ease; } .access-btn:hover {transform: scale(1.1);} #toggle-sign { right: 200px; background: var(--widget-accent); } #toggle-voice { right: 275px; background: #00cc99; } #sign-label { position: fixed; bottom: 95px; right: 200px; background: rgba(0,0,0,0.8); color: #fff; padding: 6px 12px; border-radius: 10px; font-size: 15px; font-weight: 500; opacity: 0; visibility: hidden; z-index: 10001; transition: opacity 0.4s ease; } #sign-label.show {opacity: 1; visibility: visible;} #voice-select { position: fixed; bottom: 100px; right: 340px; z-index: 10002; background: var(--widget-bg); color: var(--widget-text); border-radius: 10px; border: 1px solid #ccc; font-size: 14px; padding: 6px 10px; display: none; } #voice-select.show {display: block;} @media (max-width: 768px) { #virtualsign-widget { width: 260px; height: 200px; bottom: 90px; left: 20px; right: auto; } #toggle-sign { left: 20px; right: auto; } #toggle-voice { left: 95px; right: auto; } #sign-label { left: 20px; right: auto; } #voice-select { left: 160px; right: auto; } } </style><macro:includable id='sections' var='col'> <macro:if cond='data:col.num == 0'> macro:else/ <b:section mexpr:class='data:col.class' mexpr:id='data:col.idPrefix + "-1"' preferred='yes' showaddelement='yes'/>
<macro:if cond='data:col.num >= 2'>
<table border='0' cellpadding='0' cellspacing='0' mexpr:class='"section-columns columns-" + data:col.num'>
<tbody>
<tr>
<td class='first columns-cell'>
<b:section mexpr:class='data:col.class' mexpr:id='data:col.idPrefix + "-2-1"'/>
</td>
<td class='columns-cell'>
<b:section mexpr:class='data:col.class' mexpr:id='data:col.idPrefix + "-2-2"'/>
</td>
<macro:if cond='data:col.num >= 3'>
<td class='columns-cell'>
<b:section mexpr:class='data:col.class' mexpr:id='data:col.idPrefix + "-2-3"'/>
</td>
</macro:if>
<macro:if cond='data:col.num >= 4'>
<td class='columns-cell'>
<b:section mexpr:class='data:col.class' mexpr:id='data:col.idPrefix + "-2-4"'/>
</td>
</macro:if>
</tr>
</tbody>
</table>
<macro:if cond='data:col.includeBottom'>
<b:section mexpr:class='data:col.class' mexpr:id='data:col.idPrefix + "-3"' showaddelement='no'/>
</macro:if>
</macro:if>
</macro:if> </macro:includable>
<b:section-contents id='footer-1'> <b:widget id='HTML18' locked='false' title='' type='HTML'> <b:widget-settings> <b:widget-setting name='content'><![CDATA[
<style> /* ============================================================ 💠 ALEOTUBE FLEX HEADER v10 — RESPONSIVE PREMIUM EDITION ============================================================ */ .header-outer { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; box-sizing: border-box; text-align: center; position: relative; overflow: hidden; background: rgba(255,255,255,0.08); backdrop-filter: blur(10px); border-bottom: 2px solid rgba(255,255,255,0.1); padding: 1.5rem 1rem; } .header-outer::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,140,0,0.3) 0%, rgba(0,123,255,0.25) 35%, rgba(255,0,0,0.25) 70%, rgba(255,255,255,0.1) 100%); z-index: 0; } .Header img { position: relative; z-index: 1; max-width: 180px; height: auto; border-radius: 12px; margin-bottom: 0.5rem; transition: transform 0.4s ease; } .Header img:hover { transform: scale(1.05); } .Header h1 { position: relative; z-index: 1; font-size: clamp(1.8rem, 4vw, 2.8rem); color: #fff; text-shadow: 1px 1px 8px rgba(0,0,0,0.4); margin: 0.3rem 0; font-weight: 700; letter-spacing: 1px; } .Header .description { position: relative; z-index: 1; font-size: clamp(1rem, 2.5vw, 1.2rem); color: rgba(255,255,255,0.85); margin-top: 0.2rem; font-weight: 400; } /* Tabs / Menu */ .tabs-inner { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; width: 100%; gap: 8px; margin: 1rem auto 0.5rem; padding: 0.5rem 0; position: relative; z-index: 2; } .tabs-inner ul { display: flex; flex-wrap: wrap; justify-content: center; list-style: none; margin: 0; padding: 0; gap: 6px; } .tabs-inner li a { display: inline-block; padding: 0.5rem 1rem; border-radius: 9999px; background: rgba(255,255,255,0.15); color: #fff; text-decoration: none; font-weight: 500; font-size: 0.95rem; letter-spacing: 0.5px; transition: all 0.3s ease; border: 1px solid rgba(255,255,255,0.15); } .tabs-inner li a:hover, .tabs-inner li.active a { background: linear-gradient(90deg, #ff7b00, #007bff, #ff003c); background-size: 200% 200%; animation: gradientMove 2s ease infinite; color: #fff; transform: translateY(-2px); border-color: transparent; } @keyframes gradientMove { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* Responsive */ @media (max-width: 768px) { .Header img { max-width: 150px; } .Header h1 { font-size: 1.9rem; } .Header .description { font-size: 1rem; } .tabs-inner li a { padding: 0.45rem 0.9rem; font-size: 0.9rem; } } @media (max-width: 480px) { .header-outer { padding: 1rem 0.5rem; } .Header img { max-width: 130px; } .Header h1 { font-size: 1.6rem; } .tabs-inner { flex-direction: column; gap: 5px; } .tabs-inner li a { width: 100%; text-align: center; } } </style><b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='HTML5' locked='false' title='' type='HTML'> <b:widget-settings> <b:widget-setting name='content'><![CDATA[
<script> (function() { const base = "https://aleos-tube-daily-vlog-anak-rantau.blogspot.com/"; const langs = ['id','en','tet','pt','es','fr','de','ja','zh','ko','tl','ms','vi','th','ar','ru']; const pages = [ '', 'about', 'contact', 'produk', 'travel', 'vlog', 'inspirasi', 'tips-hidup-mandiri', 'promo', 'review' ]; // Buat sitemap XML let xml = '\nxmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n'; langs.forEach(lang => { pages.forEach(page => { xml += ` \n`; xml += ` ${base}${lang === 'id' ? '' : lang + '/'}${page}\n`; xml += ` weekly\n`; xml += ` 0.8\n`; xml += ` \n`; }); }); xml += ''; // Buat sitemap JSON const json = { site: base, updated: new Date().toISOString(), languages: langs, urls: langs.map(lang => ({ lang, pages: pages.map(p => base + (lang === 'id' ? '' : lang + '/') + p) })) }; // Deteksi bot (Google, Bing, Yandex) const agent = navigator.userAgent.toLowerCase(); if (agent.includes('googlebot') || agent.includes('bingbot') || agent.includes('yandex')) { // Buat tampilan XML untuk bot const blob = new Blob([xml], { type: 'application/xml' }); const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = 'sitemap.xml'; document.body.appendChild(link); } else { // Buat sitemap viewer kecil untuk manusia const box = document.createElement('div'); box.style = "font-family:Arial;padding:15px;margin:15px;background:#fff;border-radius:10px;box-shadow:0 3px 8px rgba(0,0,0,0.2);"; box.innerHTML = `Diperbarui otomatis: ${new Date().toLocaleString()}
Lihat Sitemap JSON
${JSON.stringify(json, null, 2)}
</details>
`;
document.body.appendChild(box);
} })(); </script>]]></b:widget-setting> </b:widget-settings> <b:includable id='main'>
<b:if cond='data:title != ""'>
data:title/
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='HTML3' locked='false' title='' type='HTML'> <b:widget-settings> <b:widget-setting name='content'><![CDATA[
<span class="spark"></span>
<span class="spark"></span>
<span class="spark"></span>
<span class="spark"></span>
<span class="spark"></span>
<a
href="https://youtube.com/UCTHGlP7T12oHv2QHDuw0C3g" class="btn btn-yt"> YT IG FB Pin XT
/* Avatar efek api */ .avatar-fire { position: relative; display: inline-block; margin-bottom: 20px; } .avatar-fire img { width: 90px; height: 90px; border-radius: 50%; object-fit: cover; z-index: 3; position: relative; }
/* Lidah api */ .flame { position: absolute; top: -25px; left: -25px; right: -25px; bottom: -25px; border-radius: 50%; filter: blur(28px); z-index: 1; opacity: 0.7; animation: flicker 2s infinite ease-in-out alternate; } .flame1 { background: radial-gradient(circle, rgba(255,140,0,0.8) 20%, transparent 70%); animation-delay: 0s; } .flame2 { background: radial-gradient(circle, rgba(255,69,0,0.8) 15%, transparent 80%); animation-delay: 0.5s; } .flame3 { background: radial-gradient(circle, rgba(255,215,0,0.7) 10%, transparent 80%); animation-delay: 1s; }
@keyframes flicker { 0% { transform: scale(1) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.2) rotate(12deg); opacity: 1; } 100% { transform: scale(1) rotate(-12deg); opacity: 0.6; } }
/* Sparks (percikan api) */ .spark { position: absolute; width: 6px; height: 6px; background: radial-gradient(circle, #ffec85 20%, #ff9900 70%, transparent 100%); border-radius: 50%; animation: sparkFly 3s linear infinite; opacity: 0.8; z-index: 2; } .spark:nth-child(4) { top: 10%; left: 40%; animation-delay: 0s; } .spark:nth-child(5) { top: 30%; left: 70%; animation-delay: 0.5s; } .spark:nth-child(6) { top: 60%; left: 20%; animation-delay: 1s; } .spark:nth-child(7) { top: 80%; left: 50%; animation-delay: 1.5s; } .spark:nth-child(8) { top: 40%; left: 10%; animation-delay: 2s; }
@keyframes sparkFly { 0% { transform: translateY(0) scale(1); opacity: 0.9; } 50% { transform: translateY(-40px) scale(0.8); opacity: 1; } 100% { transform: translateY(-80px) scale(0.5); opacity: 0; } }
/* Tombol oval horizontal */ .btn-row { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; } .btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 25px; font-size: 0.9rem; font-weight: 600; color: #fff; text-decoration: none; position: relative; overflow: hidden; z-index: 1; } .btn::before { content: ""; position: absolute; inset: -2px; border-radius: 30px; background: linear-gradient(90deg, red, orange, yellow, green, blue, violet); background-size: 400% 100%; animation: rainbowMove 6s linear infinite; z-index: -2; } .btn::after { content: ""; position: absolute; inset: 2px; border-radius: 25px; z-index: -1; } .btn-wa::after { background: #25D366; } .btn-yt::after { background: #FF0000; } .btn-ig::after { background: linear-gradient(45deg,#f58529,#dd2a7b,#8134af,#515bd4); } .btn-fb::after { background: #1877F2; } .btn-pin::after { background: #E60023; } .btn-th::after { background: #000; }
.btn i { font-size: 1rem; }
@keyframes rainbowMove { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } } </style>]]></b:widget-setting> </b:widget-settings> <b:includable id='main'>
<b:if cond='data:title != ""'>
data:title/
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='ReportAbuse1' locked='false' title='' type='ReportAbuse'> <b:includable id='main'> <b:include name='reportAbuse'/> </b:includable> </b:widget> <b:widget id='Label1' locked='false' title='Label' type='Label'> <b:widget-settings> <b:widget-setting name='sorting'>FREQUENCY</b:widget-setting> <b:widget-setting name='display'>CLOUD</b:widget-setting> <b:widget-setting name='selectedLabelsList'/> <b:widget-setting name='showType'>ALL</b:widget-setting> <b:widget-setting name='showFreqNumbers'>true</b:widget-setting> </b:widget-settings> <b:includable id='main'> <b:if cond='data:title != ""'>
data:title/
</b:if>- ()
- ()
- ()
<b:else/> <!-- normal blog profile -->
<b:if cond='data:photo.url != ""'>
<a expr:href='data:userUrl'><img class='profile-img' expr:alt='data:messages.myPhoto' expr:height='data:photo.height' expr:src='data:photo.url' expr:width='data:photo.width'/></a>
</b:if>
<dl class='profile-datablock'>
<dt class='profile-data'>
<a class='profile-name-link g-profile' expr:href='data:userUrl' expr:style='"background-image: url(" + data:profileLogo + ");"' rel='author'>
<data:displayname/>
</a>
</dt>
<b:if cond='data:showlocation'>
<dd class='profile-data'><data:location/></dd>
</b:if>
<b:if cond='data:aboutme != ""'><dd class='profile-textblock'><data:aboutme/></dd></b:if>
</dl>
<a class='profile-link' expr:href='data:userUrl' rel='author'><data:viewProfileMsg/></a>
</b:if>
<b:include name='quickedit'/>
</div>
</b:includable> </b:widget> <b:widget id='BlogSearch1' locked='false' title='Cari Blog Ini' type='BlogSearch'> <b:includable id='main'> <b:if cond='data:title != ""'>
data:title/
</b:if><div class='widget-content'>
<div expr:id='data:widget.instanceId + "_form"'>
<form class='gsc-search-box' expr:action='data:blog.searchUrl'>
<b:attr cond='not data:view.isPreview' name='target' value='_top'/>
<table cellpadding='0' cellspacing='0' class='gsc-search-box'>
<tbody>
<tr>
<td class='gsc-input'>
<input autocomplete='off' class='gsc-input' expr:value='data:view.isSearch ? data:view.search.query.escaped : ""' name='q' size='10' title='search' type='text'/>
</td>
<td class='gsc-search-button'>
<input class='gsc-search-button' expr:value='data:messages.search' title='search' type='submit'/>
</td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
<b:include name='quickedit'/>
</b:includable> </b:widget> <b:widget id='PageList1' locked='false' title='' type='PageList'> <b:widget-settings> <b:widget-setting name='pageListJson'></b:widget-setting> <b:widget-setting name='homeTitle'>Beranda</b:widget-setting> </b:widget-settings> <b:includable id='main'> <b:if cond='data:title != ""'>
data:title/
</b:if></b:widget-settings>
<b:includable id='main'>
<b:if cond='data:title != ""'>
data:title/
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='HTML13' locked='false' title='' type='HTML'> <b:widget-settings> <b:widget-setting name='content'><![CDATA[# Creating a single-file HTML for "Premium v8.3 Pulse Edition" (Page Mode) with:
- Auto affiliate scanning (digistore24, shopee, tokopedia)
- Sitemap HTML + XML generator
- Auto-translate (Google Translate widget hidden + auto-select)
- Subscribe popup linking to provided YouTube channel
- Dark mode auto by visitor time + prefers-color-scheme fallback
html = """<!doctype html>
Pulse Edition v8.3 — Promo & Sitemap (Page Mode)
<style> :root{ --pulse-orange:#ff7a18; --pulse-blue:#1e90ff; --pulse-red:#ff3b30; --bg-dark:#0f1115; --bg-light:#f6f7fb; --card-radius:12px; --maxw:1100px; --shadow: 0 8px 30px rgba(2,6,23,0.18); --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; } *{box-sizing:border-box} html,body{height:100%;margin:0;font-family:var(--font);-webkit-font-smoothing:antialiased} .container{max-width:var(--maxw);margin:18px auto;padding:18px} .page-card{border-radius:var(--card-radius);padding:18px;box-shadow:var(--shadow);overflow:hidden;border:1px solid rgba(255,255,255,0.04)} .header{display:flex;align-items:center;justify-content:space-between;gap:12px} .title{font-size:20px;font-weight:800;margin:0;color:var(--pulse-orange)} .subtitle{font-size:13px;color:rgba(255,255,255,0.75)} .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px} .card{background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,0.03)} .thumb{width:100%;height:140px;object-fit:cover;background:#111;display:block} .meta{padding:12px} .title-sm{font-weight:700;font-size:14px;margin:0 0 6px} .desc{font-size:13px;color:rgba(255,255,255,0.8);margin:0 0 10px} .btn{display:inline-block;padding:8px 12px;border-radius:10px;background:linear-gradient(135deg,var(--pulse-orange),var(--pulse-blue));color:#fff;text-decoration:none;font-weight:700} .small{font-size:12px;color:rgba(255,255,255,0.7)} .controls{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap} /* sitemap */ .sitemap-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px} .sitemap-list a{text-decoration:none;padding:8px;border-radius:8px;color:var(--pulse-blue);display:block} /* modal subscribe */ .modal{position:fixed;inset:0;background:rgba(2,6,23,0.55);display:flex;align-items:center;justify-content:center;z-index:9999;padding:18px} .modal-inner{width:100%;max-width:420px;background:linear-gradient(180deg,#0b0c0f,#0f1115);padding:18px;border-radius:12px;position:relative;box-shadow:0 12px 40px rgba(2,6,23,0.5);text-align:center} .modal-close{position:absolute;right:10px;top:8px;border:0;background:transparent;color:#fff;font-size:18px;cursor:pointer} .subscribe-btn{display:inline-block;padding:10px 14px;border-radius:10px;background:var(--pulse-red);color:#fff;text-decoration:none;font-weight:800;margin-top:12px} /* hidden utility */ .hidden{display:none !important} /* LIGHT THEME */ .light body, .light .page-card{background:var(--bg-light);color:#111} .light .page-card{border:1px solid rgba(2,6,23,0.06)} .light .subtitle{color:rgba(0,0,0,0.6)} .light .desc{color:rgba(0,0,0,0.7)} /* accessibility */ @media (prefers-reduced-motion: no-preference){ .card{transition:transform .28s cubic-bezier(.22,.9,.24,1)} .card:hover{transform:translateY(-6px)} } /* hide Google Translate UI when it loads */ .goog-te-banner-frame.skiptranslate{display:none !important} .goog-te-gadget-icon{display:none !important} #google_translate_element{display:none} </style>Pulse Edition v8.3 — Promo & Sitemap
<div class="controls">
<button id="openSitemapBtn" class="btn" style="background:transparent;border:1px solid rgba(255,255,255,0.06);color:var(--pulse-blue)">Tampilkan Sitemap</button>
<button id="generateXmlBtn" class="btn">Generate XML Sitemap</button>
<span class="small">Widget otomatis memindai posting untuk link afiliasi (digistore24, shopee, tokopedia).</span>
</div>
<div id="cardGrid" class="grid" aria-live="polite" style="margin-top:14px">
<!-- cards injected -->
</div>
<div id="sitemapSection" class="hidden" style="margin-top:16px">
<h3 style="margin:0 0 8px">HTML Sitemap</h3>
<div id="sitemapOut" class="small sitemap-list">Sedang memuat…</div>
</div>
Dukung Aleo's Tube ❤️
Jika suka konten, klik subscribe ke channel YouTube Aleo's Tube untuk update video terbaru.
Subscribe' + escapeHtml(xml) + '');
w.document.close();
}
function escapeHtml(s){ return (s||'').replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); }
openSitemapBtn.addEventListener('click', ()=>{ sitemapSection.classList.toggle('hidden'); if(!sitemapSection.classList.contains('hidden')) window.scrollTo({top: sitemapSection.offsetTop - 20, behavior: 'smooth'}); });
generateXmlBtn.addEventListener('click', ()=> generateXML(window.__pulse_sitemap || []));
// show subscribe modal after scroll 20% (once) let subShown = false; function onScrollShowSubscribe(){ const scrolled = window.scrollY || window.pageYOffset; const docH = document.documentElement.scrollHeight - window.innerHeight; const ratio = docH>0 ? scrolled/docH : 0; if(ratio > 0.20 && !subShown){ subShown = true; subscribeModal.classList.remove('hidden'); window.removeEventListener('scroll', onScrollShowSubscribe); } } window.addEventListener('scroll', onScrollShowSubscribe);
closeSubscribe.addEventListener('click', ()=> subscribeModal.classList.add('hidden'));
// init await render(); // refresh while open (low cost) setInterval(render, 1000 * 60 * 10);
// ========================= // Auto-translate (hidden UI) // We'll load Google Translate element and programmatically set target language to visitor language. // Note: this uses Google's public translate widget. window.googleTranslateElementInit = function() { try { new google.translate.TranslateElement({ pageLanguage: 'id', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, autoDisplay: false }, 'google_translate_element');
// small delay then auto-select language matching navigator.language
setTimeout(()=>{
try {
const lang = (navigator.language || navigator.userLanguage || 'en').split('-')[0];
// find select within the iframe
const frame = document.querySelector('.goog-te-menu-frame');
if(frame){
// attempt to change language via queryParameter trick (best-effort)
// fallback: add url param to use translate.googleapis if possible
// Many browsers block direct interaction; we attempt select change on the widget select if present
const sel = document.querySelector('select.goog-te-combo');
if(sel){
sel.value = lang;
sel.dispatchEvent(new Event('change'));
}
} else {
const sel = document.querySelector('select.goog-te-combo');
if(sel){
sel.value = lang;
sel.dispatchEvent(new Event('change'));
}
}
} catch(e){/*fail silently*/ }
}, 900);
} catch(e){}
}; (function(){ var gt = document.createElement('script'); gt.type='text/javascript'; gt.async=true; gt.src = 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit'; document.head.appendChild(gt); })();
// ========================= // Auto dark/light mode based on visitor local time (00-06 light, 07-18 light, else dark) + prefers-color-scheme fallback function applyThemeByTime(){ try { const now = new Date(); const h = now.getHours(); // default: day 7-18 => light, else dark const isLight = (h >= 7 && h <= 18); if(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches){ // respect user preference if system set to dark // but still apply time-based as primary (user preference will override if we invert) } if(isLight){ document.documentElement.classList.add('light'); } else { document.documentElement.classList.remove('light'); } } catch(e){} } applyThemeByTime();
// accessibility: respects prefers-reduced-motion already via CSS })(); </script>
"""
write file
path = "/mnt/data/v8p_pulse_v8_3_pagemode.html" with open(path, "w", encoding="utf-8") as f: f.write(html)
print("File written to:", path) print("Download link: sandbox:" + path)</!doctype>]]></b:widget-setting> </b:widget-settings> <b:includable id='main'>
<b:if cond='data:title != ""'>
data:title/
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='HTML4' locked='false' title='' type='HTML'> <b:widget-settings> <b:widget-setting name='content'><![CDATA[<style> .mini-subscribe { position: fixed; right: 20px; bottom: 90px; background: red; color: #fff; font-size: 14px; padding: 6px 14px; border-radius: 30px; text-decoration: none; font-weight: bold; z-index: 9999; display: inline-block !important; } </style>
Subscribe ]]></b:widget-setting> </b:widget-settings> <b:includable id='main'>
<b:if cond='data:title != ""'>
data:title/
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='HTML6' locked='false' title='' type='HTML'> <b:widget-settings> <b:widget-setting name='content'><![CDATA[
</b:widget-settings>
<b:includable id='main'>
<b:if cond='data:title != ""'>
data:title/
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> </b:section-contents><b:section-contents id='footer-2-1'> <b:widget id='PageList2' locked='false' title='Halaman' type='PageList'> <b:widget-settings> <b:widget-setting name='pageListJson'></b:widget-setting> <b:widget-setting name='homeTitle'>Beranda</b:widget-setting> </b:widget-settings> <b:includable id='main'> <b:if cond='data:title != ""'>
data:title/
</b:if>
*
*
<textarea class='contact-form-email-message' cols='25' expr:id='data:widget.instanceId + "_contact-form-email-message"' name='email-message' rows='5'/>
try { const res = await fetch(PROXY); const data = await res.json(); const parser = new DOMParser(); const xml = parser.parseFromString(data.contents, 'application/xml'); const entries = xml.getElementsByTagName('entry');
const maxVideos = 6;
container.innerHTML = '';
for (let i = 0; i < Math.min(entries.length, maxVideos); i++) {
const entry = entries[i];
const title = entry.getElementsByTagName('title')[0].textContent;
const link = entry.getElementsByTagName('link')[0].getAttribute('href');
const idFull = entry.getElementsByTagName('id')[0].textContent;
const videoId = idFull.split(':').pop();
const thumb = `https://img.youtube.com/vi/${videoId}/hqdefault.jpg`;
const videoCard = document.createElement('div');
videoCard.style.cssText = `
border-radius:12px;
overflow:hidden;
background:#f8f9fa;
box-shadow:0 0 8px rgba(0,0,0,0.1);
transition:transform 0.3s ease, box-shadow 0.3s ease;
`;
videoCard.innerHTML = `
<a href="${link}" target="_blank" style="text-decoration:none;color:inherit;">
<img src="${thumb}" alt="${title}" style="width:100%;display:block;">
<div style="padding:10px;">
<h4 style="font-size:15px;margin:0;">${title}</h4>
</div>
</a>
`;
videoCard.onmouseover = () => videoCard.style.transform = 'scale(1.03)';
videoCard.onmouseout = () => videoCard.style.transform = 'scale(1)';
container.appendChild(videoCard);
}
} catch (err) { container.innerHTML = '
Gagal memuat video 😢
'; console.error('Feed error:', err); } })(); </script>]]></b:widget-setting> </b:widget-settings> <b:includable id='main'><b:if cond='data:title != ""'>
data:title/
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='Subscribe1' locked='false' title='Langganan' type='Subscribe'> <b:includable id='main'>
<div expr:class='"subscribe expanded subscribe-type-" + data:feed.type' expr:id='"SW_READER_LIST_" + data:widgetId + data:feed.type' style='display:none;'>
<div class='top'>
<span class='inner' expr:onclick='"return(_SW_toggleReaderList(event, \"" + data:widgetId +data:feed.type + "\"));"'>
<img class='subscribe-dropdown-arrow' expr:src='data:arrowDropdownImg'/>
<img align='absmiddle' alt='' border='0' class='feed-icon' expr:src='data:feedIconImg'/>
<data:feed.title/>
</span>
<div class='feed-reader-links'>
<a class='feed-reader-link' expr:href='"https://www.netvibes.com/subscribe.php?url=" + data:feed.encodedUrl' target='_blank'>
<img expr:src='data:imagePathBase + "subscribe-netvibes.png"'/>
</a>
<a class='feed-reader-link' expr:href='"https://add.my.yahoo.com/content?url=" + data:feed.encodedUrl' target='_blank'>
<img expr:src='data:imagePathBase + "subscribe-yahoo.png"'/>
</a>
<a class='feed-reader-link' expr:href='data:feed.url' target='_blank'>
<img align='absmiddle' class='feed-icon' expr:src='data:feedIconImg'/>
Atom
</a>
</div>
</div>
<div class='bottom'/>
</div>
<div class='subscribe' expr:id='"SW_READER_LIST_CLOSED_" + data:widgetId +data:feed.type' expr:onclick='"return(_SW_toggleReaderList(event, \"" + data:widgetId +data:feed.type + "\"));"'>
<div class='top'>
<span class='inner'>
<img class='subscribe-dropdown-arrow' expr:src='data:arrowDropdownImg'/>
<span expr:onclick='"return(_SW_toggleReaderList(event, \"" + data:widgetId +data:feed.type + "\"));"'>
<img align='absmiddle' alt='' border='0' class='feed-icon' expr:src='data:feedIconImg'/>
<data:feed.title/>
</span>
</span>
</div>
<div class='bottom'/>
</div>
</div>
</b:loop>
<div style='clear:both'/>
</div>
<b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='Stats1' locked='false' title='Total Tayangan Halaman' type='Stats'> <b:widget-settings> <b:widget-setting name='showGraphicalCounter'>false</b:widget-setting> <b:widget-setting name='showAnimatedCounter'>false</b:widget-setting> <b:widget-setting name='showSparkline'>true</b:widget-setting> <b:widget-setting name='sparklineStyle'>BLACK_TRANSPARENT</b:widget-setting> <b:widget-setting name='timeRange'>ALL_TIME</b:widget-setting> </b:widget-settings> <b:includable id='main'> <b:if cond='data:title != ""'>
data:title/
</b:if>Aleo’s Tube — Chat Bantuan
</b:widget-settings>
<b:includable id='main'>
<b:if cond='data:title != ""'>
data:title/
</b:if><b:include name='quickedit'/> </b:includable> </b:widget> <b:widget id='HTML9' locked='false' title='' type='HTML'> <b:widget-settings> <b:widget-setting name='content'><
