mengambil URL google Script agar bersih di blog dengan tampilan web google script

 bisa memilih antara 2 xml

1.halaman + posting

2.halaman(edit xml)

3.halaman pake default template umum dan postingan terbaru pake google script

1.recoment - halaman utama + postingan

caranya buat postingan baru, isi web url google scriptnya saja,

trus ubah template blog dengan code berikut

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE html>

<html b:version='2' class='v2' expr:dir='data:blog.languageDirection' 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' xmlns:item='http://google.com'>

  <head>

    <meta content='width=device-width,initial-scale=1' name='viewport'/>

    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>

    <title><data:blog.pageTitle/></title>


    <b:skin><![CDATA[

      body, html { margin: 0; padding: 0; height: 100%; width: 100%; overflow: hidden; background-color: #ffffff; }

      .full-iframe { position: fixed; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; border: none; z-index: 9999; }

      .navbar, #navbar-iframe, .header-outer, .footer-outer { display: none !important; }

    ]]></b:skin>

  </head>


  <body>

    

    <!-- 1. TAMPILAN HALAMAN UTAMA -->

    <b:if cond='data:view.isHomepage'>

      <!-- GANTI URL DI BAWAH DENGAN URL GOOGLE SCRIPT UTAMA -->

      <iframe class='full-iframe' src='https://script.google.com/macros/s/AKfycbzFU--URYD9jRClBxVzZOTds6LEUi2NItIstCOUztSOVmGxbrVr-kgTZEsNG6BA2RornA/exec'/>

    </b:if>


    <!-- 2. TAMPILAN HALAMAN POSTINGAN -->

    <b:if cond='data:view.isPost'>

      <b:section id='main' showaddelement='no'>

        <b:widget id='Blog1' locked='true' title='Postingan Blog' type='Blog' version='1'>

          <b:widget-settings>

            <b:widget-setting name='showDateHeader'>true</b:widget-setting>

            <b:widget-setting name='style.textcolor'>#ffffff</b:widget-setting>

            <b:widget-setting name='showShareButtons'>true</b:widget-setting>

            <b:widget-setting name='authorLabel'>By</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'>false</b:widget-setting>

            <b:widget-setting name='style.linkcolor'>#ffffff</b:widget-setting>

            <b:widget-setting name='style.unittype'>TextAndImage</b:widget-setting>

            <b:widget-setting name='style.bgcolor'>#ffffff</b:widget-setting>

            <b:widget-setting name='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'>

            <b:loop values='data:posts' var='post'>

              <!-- Menggunakan 'exp:src' untuk mengambil URL dari isi postingan -->

              <iframe class='full-iframe' expr:src='data:post.body' title='Post Iframe'/>

            </b:loop>

          </b:includable>

          <b:includable id='backlinkDeleteIcon' var='backlink'/>

          <b:includable id='backlinks' var='post'/>

          <b:includable id='comment-form' var='post'>

  <div class='comment-form'>

    <a name='comment-form'/>

    <b:if cond='data:mobile'>

      <h4 id='comment-post-message'>

        <a expr:id='data:widget.instanceId + &quot;_comment-editor-toggle-link&quot;' href='javascript:void(0)'><data:postCommentMsg/></a></h4>

      <p><data:blogCommentMessage/></p>

      <data:blogTeamBlogMessage/>

      <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>

      <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' expr:height='data:cmtIframeInitialHeight' frameborder='0' id='comment-editor' name='comment-editor' src='' style='display: none' width='100%'/>

    <b:else/>

      <h4 id='comment-post-message'><data:postCommentMsg/></h4>

      <p><data:blogCommentMessage/></p>

      <data:blogTeamBlogMessage/>

      <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>

      <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' expr:height='data:cmtIframeInitialHeight' frameborder='0' id='comment-editor' name='comment-editor' src='' width='100%'/>

    </b:if>

    <data:post.cmtfpIframe/>

    <script type='text/javascript'>

      BLOG_CMT_createIframe(&#39;<data:post.appRpcRelayPath/>&#39;);

    </script>

  </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:top.deleteCommentMsg'>

        <img src='https://resources.blogblog.com/img/icon_delete13.gif'/>

      </a>

    </b:if>

  </span>

</b:includable>

          <b:includable id='comment_count_picker' var='post'>

  <a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'>

    <data:post.commentLabelFull/>:

  </a>

</b:includable>

          <b:includable id='comment_picker' var='post'>

  <b:if cond='data:post.showThreadedComments'>

    <b:include data='post' name='threaded_comments'/>

  <b:else/>

    <b:include data='post' name='comments'/>

  </b:if>

</b:includable>

          <b:includable id='comments' var='post'>

  <div class='comments' id='comments'>

    <a name='comments'/>

    <b:if cond='data:post.allowComments'>

      <h4><data:post.commentLabelFull/>:</h4>


      <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>

              &#160;

            <a expr:class='data:post.oldLinkClass' expr:href='data:post.olderLinkUrl'><data:post.olderLinkText/></a>

              &#160;

          </b:if>


          <data:post.commentRangeText/>


          <b:if cond='data:post.hasNewerLinks'>

            &#160;

            <a expr:class='data:post.newLinkClass' expr:href='data:post.newerLinkUrl'><data:post.newerLinkText/></a>

            &#160;

            <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 + &quot;_comments-block-wrapper&quot;'>

        <dl expr:class='data:post.avatarIndentClass' id='comments-block'>

          <b:loop values='data:post.comments' var='comment'>

            <dt expr:class='&quot;comment-author &quot; + 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>

          &#160;

          <data:post.commentRangeText/>

          &#160;

          <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>


  </div>

</b:includable>

          <b:includable id='feedLinks'>

  <b:if cond='data:blog.pageType != &quot;item&quot;'> <!-- 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:include cond='data:post.allowComments and data:post.feedLinks' data='post.feedLinks' name='feedLinksBody'/>

      </b:loop>

    </div>

  </b:if>

</b:includable>

          <b:includable id='feedLinksBody' var='links'>

  <div class='feed-links'>

  <data:feedLinksMsg/>

  <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='iframe_comments' var='post'>

  <!-- G+ comments, no longer available. The includable is retained for backwards-compatibility. -->

</b:includable>

          <b:includable id='mobile-index-post' var='post'>

  <div class='mobile-date-outer date-outer'>

    <b:if cond='data:post.dateHeader'>

      <div class='date-header'>

        <span><data:post.dateHeader/></span>

      </div>

    </b:if>


    <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'>&amp;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 != &quot;static_page&quot;                          and data:post.allowComments                          and data:post.numComments != 0' data='post' name='comment_count_picker'/>

      </div>

    </div>

  </div>

</b:includable>

          <b:includable id='mobile-main' var='top'>

    <!-- posts -->

    <div class='blog-posts hfeed'>


      <b:include data='top' name='status-message'/>


      <b:if cond='data:blog.pageType == &quot;index&quot;'>

        <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'>

  <div class='blog-pager' id='blog-pager'>

    <b:if cond='data:newerPageUrl'>

      <div class='mobile-link-button' id='blog-pager-newer-link'>

      <a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle'>&amp;lsaquo;</a>

      </div>

    </b:if>


    <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 + &quot;_blog-pager-older-link&quot;' expr:title='data:olderPageTitle'>&amp;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:desktop6LinkUrl'><data:desktopLinkMsg/></a>

    </div>


  </div>

  <div class='clear'/>

</b:includable>

          <b:includable id='mobile-post' var='post'>

  <div class='date-outer'>

    <b:if cond='data:post.dateHeader'>

      <h2 class='date-header'><span><data:post.dateHeader/></span></h2>

    </b:if>

    <div class='date-posts'>

      <div class='post-outer'>


        <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='&quot;post-body-&quot; + 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 {&quot;item&quot;,&quot;static_page&quot;}                                  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 {&quot;static_page&quot;,&quot;item&quot;}' data='post' name='comment_picker'/>

      </div>

    </div>

  </div>

</b:includable>

          <b:includable id='nextprev'>

  <div class='blog-pager' id='blog-pager'>

    <b:if cond='data:newerPageUrl'>

      <span id='blog-pager-newer-link'>

      <a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle'><data:newerPageTitle/></a>

      </span>

    </b:if>


    <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 + &quot;_blog-pager-older-link&quot;' 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>


  </div>

  <div class='clear'/>

</b:includable>

          <b:includable id='post' var='post'>

  <div class='post hentry uncustomized-post-template' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>

    <b:if cond='data:post.firstImageUrl'>

      <meta expr:content='data:post.firstImageUrl' 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 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='&quot;post-body-&quot; + data:post.id' expr:itemprop='(data:blog.metaDescription ? &quot;&quot; : &quot;description &quot;) + &quot;articleBody&quot;'>

      <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 + &quot;#more&quot;' 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 {&quot;item&quot;,&quot;static_page&quot;}                          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>

  </div>

</b:includable>

          <b:includable id='postQuickEdit' var='post'>

  <b:if cond='data:post.editUrl'>

    <span expr:class='&quot;item-control &quot; + data:post.adminClass'>

      <a expr:href='data:post.editUrl' expr:title='data:top.editPostMsg'>

        <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/>

      </a>

    </span>

  </b:if>

</b:includable>

          <b:includable id='shareButtons' var='post'>

  <b:if cond='data:top.showEmailButton'><a class='goog-inline-block share-button sb-email' expr:href='data:post.sharePostUrl + &quot;&amp;target=email&quot;' expr:title='data:top.emailThisMsg' target='_blank'><span class='share-button-link-text'><data:top.emailThisMsg/></span></a></b:if><b:if cond='data:top.showBlogThisButton'><a class='goog-inline-block share-button sb-blog' expr:href='data:post.sharePostUrl + &quot;&amp;target=blog&quot;' expr:onclick='&quot;window.open(this.href, \&quot;_blank\&quot;, \&quot;height=270,width=475\&quot;); return false;&quot;' expr:title='data:top.blogThisMsg' target='_blank'><span class='share-button-link-text'><data:top.blogThisMsg/></span></a></b:if><b:if cond='data:top.showTwitterButton'><a class='goog-inline-block share-button sb-twitter' expr:href='data:post.sharePostUrl + &quot;&amp;target=twitter&quot;' expr:title='data:top.shareToTwitterMsg' target='_blank'><span class='share-button-link-text'><data:top.shareToTwitterMsg/></span></a></b:if><b:if cond='data:top.showFacebookButton'><a class='goog-inline-block share-button sb-facebook' expr:href='data:post.sharePostUrl + &quot;&amp;target=facebook&quot;' expr:onclick='&quot;window.open(this.href, \&quot;_blank\&quot;, \&quot;height=430,width=640\&quot;); return false;&quot;' expr:title='data:top.shareToFacebookMsg' target='_blank'><span class='share-button-link-text'><data:top.shareToFacebookMsg/></span></a></b:if><b:if cond='data:top.showPinterestButton'><a class='goog-inline-block share-button sb-pinterest' expr:href='data:post.sharePostUrl + &quot;&amp;target=pinterest&quot;' expr:title='data:top.shareToPinterestMsg' target='_blank'><span class='share-button-link-text'><data:top.shareToPinterestMsg/></span></a></b:if>

</b:includable>

          <b:includable id='status-message'>

  <b:if cond='data:navMessage'>

  <div class='status-msg-wrap'>

    <div class='status-msg-body'>

      <data:navMessage/>

    </div>

    <div class='status-msg-border'>

      <div class='status-msg-bg'>

        <div class='status-msg-hidden'><data:navMessage/></div>

      </div>

    </div>

  </div>

  <div style='clear: both;'/>

  </b:if>

</b:includable>

          <b:includable id='threaded-comment-form' var='post'>

  <div class='comment-form'>

    <a name='comment-form'/>

    <b:if cond='data:mobile'>

      <p><data:blogCommentMessage/></p>

      <data:blogTeamBlogMessage/>

      <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>

      <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' expr:height='data:cmtIframeInitialHeight' frameborder='0' id='comment-editor' name='comment-editor' src='' style='display: none' width='100%'/>

    <b:else/>

      <p><data:blogCommentMessage/></p>

      <data:blogTeamBlogMessage/>

      <a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>

      <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' expr:height='data:cmtIframeInitialHeight' frameborder='0' id='comment-editor' name='comment-editor' src='' width='100%'/>

    </b:if>

    <data:post.cmtfpIframe/>

    <script type='text/javascript'>

      BLOG_CMT_createIframe(&#39;<data:post.appRpcRelayPath/>&#39;);

    </script>

  </div>

</b:includable>

          <b:includable id='threaded_comment_js' var='post'>

  <script async='async' expr:src='data:post.commentSrc' type='text/javascript'/>


  <script type='text/javascript'>

    (function() {

      var items = <data:post.commentJso/>;

      var msgs = <data:post.commentMsgs/>;

      var config = <data:post.commentConfig/>;


// <![CDATA[

      var cursor = null;

      if (items && items.length > 0) {

        cursor = parseInt(items[items.length - 1].timestamp) + 1;

      }


      var bodyFromEntry = function(entry) {

        var text = (entry &&

                    ((entry.content && entry.content.$t) ||

                     (entry.summary && entry.summary.$t))) ||

            '';

        if (entry && entry.gd$extendedProperty) {

          for (var k in entry.gd$extendedProperty) {

            if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {

              return '<span class="deleted-comment">' + text + '</span>';

            }

          }

        }

        return text;

      }


      var parse = function(data) {

        cursor = null;

        var comments = [];

        if (data && data.feed && data.feed.entry) {

          for (var i = 0, entry; entry = data.feed.entry[i]; i++) {

            var comment = {};

            // comment ID, parsed out of the original id format

            var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);

            comment.id = id ? id[2] : null;

            comment.body = bodyFromEntry(entry);

            comment.timestamp = Date.parse(entry.published.$t) + '';

            if (entry.author && entry.author.constructor === Array) {

              var auth = entry.author[0];

              if (auth) {

                comment.author = {

                  name: (auth.name ? auth.name.$t : undefined),

                  profileUrl: (auth.uri ? auth.uri.$t : undefined),

                  avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)

                };

              }

            }

            if (entry.link) {

              if (entry.link[2]) {

                comment.link = comment.permalink = entry.link[2].href;

              }

              if (entry.link[3]) {

                var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);

                if (pid && pid[1]) {

                  comment.parentId = pid[1];

                }

              }

            }

            comment.deleteclass = 'item-control blog-admin';

            if (entry.gd$extendedProperty) {

              for (var k in entry.gd$extendedProperty) {

                if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {

                  comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;

                } else if (entry.gd$extendedProperty[k].name == 'blogger.displayTime') {

                  comment.displayTime = entry.gd$extendedProperty[k].value;

                }

              }

            }

            comments.push(comment);

          }

        }

        return comments;

      };


      var paginator = function(callback) {

        if (hasMore()) {

          var url = config.feed + '?alt=json&v=2&orderby=published&reverse=false&max-results=50';

          if (cursor) {6

            url += '&published-min=' + new Date(cursor).toISOString();

          }

          window.bloggercomments = function(data) {

            var parsed = parse(data);

            cursor = parsed.length < 50 ? null

                : parseInt(parsed[parsed.length - 1].timestamp) + 1

            callback(parsed);

            window.bloggercomments = null;

          }

          url += '&callback=bloggercomments';

          var script = document.createElement('script');

          script.type = 'text/javascript';

          script.src = url;

          document.getElementsByTagName('head')[0].appendChild(script);

        }

      };

      var hasMore = function() {

        return !!cursor;

      };

      var getMeta = function(key, comment) {

        if ('iswriter' == key) {

          var matches = !!comment.author

              && comment.author.name == config.authorName

              && comment.author.profileUrl == config.authorUrl;

          return matches ? 'true' : '';

        } else if ('deletelink' == key) {

          return config.baseUri + '/comment/delete/'

               + config.blogId + '/' + comment.id;

        } else if ('deleteclass' == key) {

          return comment.deleteclass;

        }

        return '';

      };


      var replybox = null;

      var replyUrlParts = null;

      var replyParent = undefined;


      var onReply = function(commentId, domId) {

        if (replybox == null) {

          // lazily cache replybox, and adjust to suit this style:

          replybox = document.getElementById('comment-editor');

          if (replybox != null) {

            replybox.height = '250px';

            replybox.style.display = 'block';

            replyUrlParts = replybox.src.split('#');

          }

        }

        if (replybox && (commentId !== replyParent)) {

          replybox.src = '';

          document.getElementById(domId).insertBefore(replybox, null);

          replybox.src = replyUrlParts[0]

              + (commentId ? '&parentID=' + commentId : '')

              + '#' + replyUrlParts[1];

          replyParent = commentId;

        }

      };


      var hash = (window.location.hash || '#').substring(1);

      var startThread, targetComment;

      if (/^comment-form_/.test(hash)) {

        startThread = hash.substring('comment-form_'.length);

      } else if (/^c[0-9]+$/.test(hash)) {

        targetComment = hash.substring(1);

      }


      // Configure commenting API:

      var configJso = {

        'maxDepth': config.maxThreadDepth

      };

      var provider = {

        'id': config.postId,

        'data': items,

        'loadNext': paginator,

        'hasMore': hasMore,

        'getMeta': getMeta,

        'onReply': onReply,

        'rendered': true,

        'initComment': targetComment,

        'initReplyThread': startThread,

        'config': configJso,

        'messages': msgs

      };


      var render = function() {

        if (window.goog && window.goog.comments) {

          var holder = document.getElementById('comment-holder');

          window.goog.comments.render(holder, provider);

        }

      };


      // render now, or queue to render when library loads:

      if (window.goog && window.goog.comments) {

        render();

      } else {

        window.goog = window.goog || {};

        window.goog.comments = window.goog.comments || {};

        window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];

        window.goog.comments.loadQueue.push(render);

      }

    })();

// ]]>

  </script>

</b:includable>

          <b:includable id='threaded_comments' var='post'>

  <div class='comments' id='comments'>

    <a name='comments'/>

    <h4><data:post.commentLabelFull/>:</h4>


    <div class='comments-content'>

      <b:include cond='data:post.embedCommentForm' data='post' name='threaded_comment_js'/>

      <div id='comment-holder'>

         <data:post.commentHtml/>

      </div>

    </div>


    <p class='comment-footer'>

      <b:if cond='data:post.allowNewComments'>

        <b:include data='post' name='threaded-comment-form'/>

      <b:else/>

        <data:post.noNewCommentsText/>

      </b:if>

    </p>


    <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>


    <div id='backlinks-container'>

    <div expr:id='data:widget.instanceId + &quot;_backlinks-container&quot;'>

    </div>

    </div>

  </div>

</b:includable>

        </b:widget>

      </b:section>

    </b:if>


    <!-- Section tambahan agar Blogger tidak error saat save -->

    <div style='display:none;'>

      <b:section id='hidden-section' showaddelement='yes'/>

    </div>


  </body>

</html>

////////////////////////////////

2.halaman(edit xml)

untuk cara 2 hanya template blognya saja

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE html>

<html b:version='2' class='v2' expr:dir='data:blog.languageDirection' 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' xmlns:item='http://google.com'>

  <head>

    <meta content='width=device-width,initial-scale=1' name='viewport'/>

    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>

    <title><data:blog.pageTitle/></title>


    <b:skin><![CDATA[

      /* Menghapus semua margin/padding bawaan */

      body, html { margin: 0; padding: 0; height: 100%; overflow: hidden; background-color: #ffffff; }

      

      /* Membuat iframe memenuhi seluruh layar */

      #google-script-iframe {

        position: absolute;

        top: 0;

        left: 0;

        width: 100%;

        height: 100%;

        border: none;

      }


      /* Menyembunyikan Navbar Blogger (jika ada) */

      #navbar-iframe, .navbar, .header-outer, .footer-outer { display: none !important; visibility: hidden !important; }

    ]]></b:skin>

  </head>


  <body>

    <!-- Iframe Full Page -->

    <iframe id='google-script-iframe' src='https://script.google.com/macros/s/AKfycbzFU--URYD9jRClBxVzZOTds6LEUi2NItIstCOUztSOVmGxbrVr-kgTZEsNG6BA2RornA/exec' title='Full Page App'/>


    <!-- Section Wajib Blogger (Dibiarkan Kosong agar Bersih) -->

    <b:section id='main' showaddelement='yes'/>

  </body>

</html>


///////////////////////////

3.halaman pake default template umum dan postingan terbaru pake google script  




Masukan ini diatas </body>


<b:if cond='data:view.isPost'>

<script type='text/javascript'>

//<![CDATA[

  (function() {

    // Mencari elemen artikel/postingan

    var postContent = document.body.innerText || document.body.textContent;

    

    // Cek apakah ada link Google Script di dalam isi postingan

    if (postContent.includes("https://script.google.com/macros/s/")) {

      

      // 1. Sembunyikan semua elemen anak langsung dari body (Template Blog)

      var bodyChildren = document.body.children;

      for (var i = 0; i < bodyChildren.length; i++) {

        bodyChildren[i].classList.add('hide-template-total');

      }

      

      // 2. Ambil URL script (membersihkan spasi/karakter liar)

      var match = postContent.match(/(https:\/\/script\.google\.com\/macros\/s\/[^\s\n]+)/);

      if (match) {

        var finalUrl = match[0].replace('exec','exec'); // Memastikan URL bersih

        

        // 3. Munculkan Iframe Full Screen

        var ifrm = document.createElement("iframe");

        ifrm.setAttribute("src", finalUrl);

        ifrm.className = "gs-full-page";

        document.body.appendChild(ifrm);

        

        // 4. Paksa body tidak bisa di-scroll

        document.body.style.overflow = "hidden";

      }

    }

  })();

//]]>

</script>

</b:if>


    

       

  </body>

  

  

 masukan ini diatas </head>


<b:if cond='data:view.isPost'>

  <style>

    /* Sembunyikan semua elemen template asli Anda */

    body { overflow: hidden !important; margin: 0 !important; padding: 0 !important; }

    header, footer, .sidebar, .post-header, .post-footer, .comments, .navbar, #navbar-iframe, .header-outer, .footer-outer, .main-outer { 

      display: none !important; 

      visibility: hidden !important; 

    }

    

    /* Buat Iframe memenuhi layar */

    .google-script-full {

      position: fixed;

      top: 0; left: 0; bottom: 0; right: 0;

      width: 100%; height: 100%;

      border: none; margin: 0; padding: 0;

      z-index: 999999;

      background: white;

    }

  </style>

</b:if>

<b:if cond='data:view.isPost'>

  <style>

    /* Class ini akan diaktifkan lewat JavaScript jika URL ditemukan */

    .hide-template-total { display: none !important; }

    

    .gs-full-page {

      position: fixed; top: 0; left: 0; width: 100%; height: 100%;

      border: none; z-index: 999999; background: white;

    }

  </style>

</b:if>


</head>


-----

Selanjutnya, cari tag <body> atau <data:post.body/>

Untuk bagian pemanggilnya, cara paling aman adalah memasukkannya di dalam widget postingan. Cari tag <data:post.body/> (biasanya ada beberapa, coba satu per satu atau cari yang di dalam includable id='main'), lalu tambahkan kode ini DI BAWAHNYA:


<b:if cond='data:view.isPost'>

  <script type='text/javascript'>

    //<![CDATA[

    (function() {

      var isiPost = "<data:post.body.snippet/>"; // Mengambil teks awal postingan

      // Jika isi postingan diawali dengan https://google.com

      if (isiPost.includes("https://google.com")) {

        var urlScript = isiPost.split(" ")[0]; // Ambil URL-nya saja

        document.write("<iframe class='google-script-full' src='" + urlScript + "'></iframe>");

      }

    })();

    //]]>

  </script>

</b:if>




 













mengambil URL google Script agar bersih di blog dengan tampilan web google script mengambil URL google Script agar bersih di blog dengan tampilan web google script Reviewed by Sance Aenul Yakin on 18:10 Rating: 5

No comments