<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-ph"><title>techmagus</title><link rel="self" type="application/atom+xml" hreflang="en-ph" href="https://im.youronly.one/techmagus/cat/how-to/feed.xml"/><link rel="alternate" type="application/atom+xml" hreflang="ja" href="https://im.youronly.one/techmagus/ja/cat/%E6%96%B9%E6%B3%95/feed.xml"/><link rel="alternate" type="application/atom+xml" hreflang="ko" href="https://im.youronly.one/techmagus/ko/cat/%EC%96%B4%EB%96%BB%EA%B2%8C/feed.xml"/><link rel="alternate" type="application/atom+xml" hreflang="x-default" href="https://im.youronly.one/techmagus/cat/how-to/feed.xml"/><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/cat/how-to/"/><link rel="alternate" type="application/rss+xml" hreflang="en-ph" href="https://im.youronly.one/techmagus/cat/how-to/index.xml"/><id>/techmagus</id><updated>2025-04-02T22:30:08Z</updated><generator>Hugo 0.135.0</generator><entry><title>Reach a wider audience with Fediverse Threads!</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/kb/ddfon/fediverse-threads-reach-wider-audience/"/><id>https://im.youronly.one/techmagus/kb/ddfon/fediverse-threads-reach-wider-audience/</id><updated>2024-06-26T06:55:00Z</updated><summary type="html"><![CDATA[<p>Earlier today, <span class="quote_name" translate="no"><bdi lang="en">Meta</bdi></span>’s <span class="quote_name" translate="no"><bdi lang="en">Threads</bdi></span>.net microblogging social network rolled out its much-anticipated <span class="quote_name" translate="no"><bdi lang="en"><a href="https://im.youronly.one/techmagus/kb/ddfon/sns-social-media-terminologies-explained/#dfn-fediverse" title="SNS, social media terminologies explained">Fediverse</a></bdi></span> feature to over 100 countries (except for European Union members), including many in the Asia-Pacific region. If you’re keen on expanding your audience as a content creator, or as a content consumer you want to follow content creators without creating yet another account, activating this feature is highly recommended.</p>]]></summary><content type="html"><![CDATA[<img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-07-now-enabled.png" /><p>Earlier today, <span class="quote_name" translate="no"><bdi lang="en">Meta</bdi></span>’s <span class="quote_name" translate="no"><bdi lang="en">Threads</bdi></span>.net microblogging social network rolled out its much-anticipated <span class="quote_name" translate="no"><bdi lang="en"><a href="https://im.youronly.one/techmagus/kb/ddfon/sns-social-media-terminologies-explained/#dfn-fediverse" title="SNS, social media terminologies explained">Fediverse</a></bdi></span> feature to over 100 countries (except for European Union members), including many in the Asia-Pacific region. If you’re keen on expanding your audience as a content creator, or as a content consumer you want to follow content creators without creating yet another account, activating this feature is highly recommended.</p>
<p>But what exactly is the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span>?</p>
<h2 id="what-is-the-span-classquote_name-translatenobdi-langenfediversebdispan">What is the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span>?</h2>
<p>In simple terms, the <span class="quote_name" translate="no"><bdi lang="en"><a href="https://im.youronly.one/techmagus/kb/ddfon/sns-social-media-terminologies-explained/#dfn-fediverse" title="SNS, social media terminologies explained">Fediverse</a></bdi></span> is a <em><a href="https://im.youronly.one/techmagus/kb/ddfon/sns-social-media-terminologies-explained/#dfn-mycelium-network" title="SNS, social media terminologies explained">mycelium network</a></em> powered by the <span class="quote_name" translate="no"><bdi lang="en">ActivityPub</bdi></span> protocol. <span class="quote_name" translate="no"><bdi lang="en">ActivityPub</bdi></span> is a web standard endorsed by the <span class="quote_name" translate="no"><bdi lang="en">World Wide Web Consortium</bdi></span> (W3C), the authoritative body for web standards ensuring seamless interoperability across platforms. Some examples are SMTP for emails, HTTP/S for browsing, and HTML and CSS for websites. This makes the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> essentially the web standard for social networking services (SNS), commonly referred to as social media in English-speaking countries.</p>
<h2 id="whats-in-it-for-me-as-a-content-creatorconsumer">What’s in it for me as a content creator/consumer?</h2>
<p>Activating the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> feature on your <span class="quote_name" translate="no"><bdi lang="en">Threads</bdi></span>.net account allows you to reach a broader audience. As a content creator, your fans more likely urged you before to join yet another network where they already are. Or, as a content consumer, you had no choice but to create a new account on yet another platform just to follow a content creator. With the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span>, content creators and content consumers can interact across different platforms, as long as <strong>both sides are connected to the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span></strong>. This means fewer accounts to manage for both content creators and content consumers.</p>
<h2 id="how-to-activate-the-span-classquote_name-translatenobdi-langenfediversebdispan-feature-in-span-classquote_name-translatenobdi-langenthreadsbdispannet">How to activate the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> feature in <span class="quote_name" translate="no"><bdi lang="en">Threads</bdi></span>.net?</h2>
<p>It’s straightforward. Follow these steps:</p>
<ol>
<li>
<p>Go to <code>Settings</code> > <code>Account</code> > <code>Fediverse sharing</code>.</p>
<div class="obj_center"><figure class="figure_box txt_center">
          <div><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step01.png" rel="noopener">
              <picture><source srcset="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step01_hu5628134355729593887.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step01.png" alt="How to activate Fediverse Threads: Step 1" type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
              </picture>
              </a></div>
          <figcaption class="attribution_caption txt_center">
            <p><cite><b>How to activate Fediverse Threads: Step 1</b></cite></p>
            <p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
                  <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step01.png" rel="dct:title noopener">How to activate Fediverse Threads: Step 1</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                      licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">Creative Commons Attribution-ShareAlike (CC By-SA) 4.0 International License</a>.<br/>Date: 2024-06-26T05:11:42+08:00
                      </small></p></figcaption>
        </figure></div>

</li>
<li>
<p>Read their version of “What is the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span>?” and tap <code>Next</code>.</p>
<div class="obj_center"><figure class="figure_box txt_center">
          <div><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step02c.png" rel="noopener">
              <picture><source srcset="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step02c_hu8177340152911333886.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step02c.png" alt="How to activate Fediverse Threads: Step 2" type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
              </picture>
              </a></div>
          <figcaption class="attribution_caption txt_center">
            <p><cite><b>How to activate Fediverse Threads: Step 2</b></cite></p>
            <p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
                <small>To the extent possible under law, <a href="https://im.youronly.one/" rel="dct:publisher noopener">I'M YourOnly.One</a> has <a href="https://creativecommons.org/publicdomain/zero/1.0/" rel="license noopener external">waived all copyright and related or neighbouring rights</a> to <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step02c.png" rel="dct:title noopener">How to activate Fediverse Threads: Step 2</a></cite>. This work is published from <span property="vcard:Country" datatype="dct:ISO3166" content="PH" about="https://en.wikipedia.org/wiki/Philippines"><a href="https://en.wikipedia.org/wiki/Philippines" rel="noopener external">Philippines</a></span>.</small></p></figcaption>
        </figure></div>

</li>
<li>
<p>Read the additional information provided and tap <code>Turn on sharing</code>.</p>
<div class="obj_center"><figure class="figure_box txt_center">
          <div><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step03.png" rel="noopener">
              <picture><source srcset="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step03_hu11910392994401624440.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step03.png" alt="How to activate Fediverse Threads: Step 3" type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
              </picture>
              </a></div>
          <figcaption class="attribution_caption txt_center">
            <p><cite><b>How to activate Fediverse Threads: Step 3</b></cite></p>
            <p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
                <small>To the extent possible under law, <a href="https://im.youronly.one/" rel="dct:publisher noopener">I'M YourOnly.One</a> has <a href="https://creativecommons.org/publicdomain/zero/1.0/" rel="license noopener external">waived all copyright and related or neighbouring rights</a> to <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-01-enable-step03.png" rel="dct:title noopener">How to activate Fediverse Threads: Step 3</a></cite>. This work is published from <span property="vcard:Country" datatype="dct:ISO3166" content="PH" about="https://en.wikipedia.org/wiki/Philippines"><a href="https://en.wikipedia.org/wiki/Philippines" rel="noopener external">Philippines</a></span>.</small></p></figcaption>
        </figure></div>

</li>
<li>
<p>Copy your <span class="quote_name" translate="no"><bdi lang="en">Threads</bdi></span>.net <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> username and share it with everyone!</p>
<div class="obj_center"><figure class="figure_box txt_center">
          <div><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-02-username.png" rel="noopener">
              <picture><source srcset="https://im.youronly.one/techmagus/images/f/fediverse-threads-02-username_hu4964697545973008430.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-02-username.png" alt="Welcome to the standards-based Fediverse mycelium network: Copy and share your Fediverse Threads username" type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
              </picture>
              </a></div>
          <figcaption class="attribution_caption txt_center">
            <p><cite><b>Welcome to the standards-based Fediverse mycelium network</b></cite></p>
            <p><i>Copy and share your Fediverse Threads username</i></p><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
                  <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-02-username.png" rel="dct:title noopener">Welcome to the standards-based Fediverse mycelium network</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                      licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">Creative Commons Attribution-ShareAlike (CC By-SA) 4.0 International License</a>.<br/>Date: 2024-06-26T05:13:47+08:00
                      </small></p></figcaption>
        </figure></div>

</li>
</ol>
<p>Congratulations! You’re now part of the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> <em>mycelium network</em>! Your posts will be visible to any account connected to the <span class="quote_name" translate="no"><bdi lang="en"><a href="https://im.youronly.one/techmagus/kb/ddfon/sns-social-media-terminologies-explained/#dfn-fediverse" title="SNS, social media terminologies explained">Fediverse</a></bdi></span>, no matter the platform they’re using.</p>
<p>You don’t have to think about it. Just do your regular social network routine. It all happens in the background.</p>
<div class="obj_center"><figure class="figure_box txt_center">
      <div><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-05-example-01-cim-mastodon.png" rel="noopener">
          <picture><source srcset="https://im.youronly.one/techmagus/images/f/fediverse-threads-05-example-01-cim-mastodon_hu16662121915194890187.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-05-example-01-cim-mastodon.png" alt="A Fediverse Threads.net post as seen in the C.IM Mastodon-powered instance." type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Threads.net post as seen on Mastodon-powered C.IM server</b></cite></p>
        <p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-05-example-01-cim-mastodon.png" rel="dct:title noopener">Threads.net post as seen on Mastodon-powered C.IM server</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">Creative Commons Attribution-ShareAlike (CC By-SA) 4.0 International License</a>.<br/>Date: 2024-06-26T05:27:12+08:00
                  </small></p></figcaption>
    </figure></div>

<div class="obj_center"><figure class="figure_box txt_center">
      <div><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-05-example-02-cwtf-rebased.png" rel="noopener">
          <picture><source srcset="https://im.youronly.one/techmagus/images/f/fediverse-threads-05-example-02-cwtf-rebased_hu14270071483395339397.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-05-example-02-cwtf-rebased.png" alt="A Fediverse Threads.net post as seen in the C.WTF Rebased-powered instance." type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Threads.net post as seen on Rebased-powered C.WTF server</b></cite></p>
        <p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-05-example-02-cwtf-rebased.png" rel="dct:title noopener">Threads.net post as seen on Rebased-powered C.WTF server</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">Creative Commons Attribution-ShareAlike (CC By-SA) 4.0 International License</a>.<br/>Date: 2024-06-26T09:21:16+08:00
                  </small></p></figcaption>
    </figure></div>

<h2 id="a-friendly-note-its-still-being-tested">A friendly note: It’s still being tested</h2>
<p>As of 2024-06-26, interoperability with the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> via the <span class="quote_name" translate="no"><bdi lang="en">ActivityPub</bdi></span> protocol is still undergoing thorough testing. Expect some limitations in interaction for now, such as:</p>
<ul>
<li>Not all replies from the wider <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> may appear on <span class="quote_name" translate="no"><bdi lang="en">Threads</bdi></span>.net.</li>
<li>Only the original post creator will see replies from the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span>.</li>
<li><span class="quote_name" translate="no"><bdi lang="en">Threads</bdi></span>.net users currently cannot reply to replies from <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> users.</li>
<li>Posts may take at least five minutes to appear in both directions.</li>
<li><span class="quote_name" translate="no"><bdi lang="en">Threads</bdi></span>.net accounts cannot yet follow or search for <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> accounts.</li>
</ul>
<div class="obj_center"><figure class="figure_box txt_center">
      <div><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-06-reply-from-fediverse-01.png" rel="noopener">
          <picture><source srcset="https://im.youronly.one/techmagus/images/f/fediverse-threads-06-reply-from-fediverse-01_hu17120535316916667716.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-06-reply-from-fediverse-01.png" alt="Notification of a Fediverse reply as seen on Threads.net." type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Notification of a Fediverse reply</b></cite></p>
        <p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-06-reply-from-fediverse-01.png" rel="dct:title noopener">Notification of a Fediverse reply</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">Creative Commons Attribution-ShareAlike (CC By-SA) 4.0 International License</a>.<br/>Date: 2024-06-26T05:27:17+08:00
                  </small></p></figcaption>
    </figure></div>

<div class="obj_center"><figure class="figure_box txt_center">
      <div><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-06-reply-from-fediverse-02.png" rel="noopener">
          <picture><source srcset="https://im.youronly.one/techmagus/images/f/fediverse-threads-06-reply-from-fediverse-02_hu11931565313317693909.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/images/f/fediverse-threads-06-reply-from-fediverse-02.png" alt="A Fediverse reply as seen on Threads.net." type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Fediverse reply on Threads.net</b></cite></p>
        <p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-06-reply-from-fediverse-02.png" rel="dct:title noopener">Fediverse reply on Threads.net</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">Creative Commons Attribution-ShareAlike (CC By-SA) 4.0 International License</a>.<br/>Date: 2024-06-26T05:27:24+08:00
                  </small></p></figcaption>
    </figure></div>

<p>Once again, welcome to the <span class="quote_name" translate="no"><bdi lang="en">Fediverse</bdi></span> <em><a href="https://im.youronly.one/techmagus/kb/ddfon/sns-social-media-terminologies-explained/#dfn-mycelium-network" title="SNS, social media terminologies explained">mycelium network</a></em>, powered by the standards-based <span class="quote_name" translate="no"><bdi lang="en">ActivityPub</bdi></span> protocol! Embrace this new way of connecting and enjoy the expanded reach of your online account!</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
            <small>・ Cover image: To the extent possible under law, <a href="https://im.youronly.one/" rel="dct:publisher noopener">I'M YourOnly.One</a> has <a href="https://creativecommons.org/publicdomain/zero/1.0/" rel="license noopener external">waived all copyright and related or neighbouring rights</a> to <cite><a href="https://im.youronly.one/techmagus/images/f/fediverse-threads-07-now-enabled.png" rel="dct:title noopener">Fediverse Threads</a></cite>. This work is published from <span property="vcard:Country" datatype="dct:ISO3166" content="PH" about="https://en.wikipedia.org/wiki/Philippinees"><a href="https://en.wikipedia.org/wiki/Philippinees" rel="noopener external">Philippines</a></span>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="web" label="Web" scheme="https://im.youronly.one/techmagus/cat/web/"/><category term="decentralization" label="Decentralization" scheme="https://im.youronly.one/techmagus/tag/decentralization/"/><category term="federation" label="Federation" scheme="https://im.youronly.one/techmagus/tag/federation/"/><published>2024-06-26T06:55:00Z</published></entry><entry><title>Styling diacritics</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/codebits/styling-diacritics/"/><id>https://im.youronly.one/techmagus/codebits/styling-diacritics/</id><updated>2023-02-18T04:50:27Z</updated><summary type="html">&lt;p>If you are wondering if there is a way to add a colour to diacritical marks, also called accent signs, then you are in the right place! Why? Because the answer is, &lt;strong>yes&lt;/strong>, and I will show you how.&lt;/p></summary><content type="html"><![CDATA[<img src="https://im.youronly.one/techmagus/images/d/diacritics.png" /><p>If you are wondering if there is a way to add a colour to diacritical marks, also called accent signs, then you are in the right place! Why? Because the answer is, <strong>yes</strong>, and I will show you how.</p>
<ol>
<li>
<p>Create a CSS style like this:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="p">.</span><span class="nc">diacritics</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="k">color</span><span class="p">:</span> <span class="nb">hsla</span><span class="p">(</span><span class="mi">0</span><span class="kt">deg</span><span class="p">,</span> <span class="mi">100</span><span class="kt">%</span><span class="p">,</span> <span class="mi">50</span><span class="kt">%</span><span class="p">,</span> <span class="mi">1</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="k">color</span><span class="p">:</span> <span class="nb">hwb</span><span class="p">(</span><span class="mi">0</span><span class="kt">deg</span> <span class="mi">0</span><span class="kt">%</span> <span class="mi">0</span><span class="kt">%</span> <span class="o">/</span> <span class="mi">100</span><span class="kt">%</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">  <span class="k">font-family</span><span class="p">:</span> <span class="s2">"DejaVu Sans"</span><span class="p">;</span> <span class="c">/* Currently, DejaVu Sans has the highest accuracy in diacritical mark positioning. */</span>
</span></span><span class="line"><span class="cl">  <span class="k">font-weight</span><span class="p">:</span> <span class="kc">bold</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Place the diacritics within the <code>diacritics</code> class</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></</span><span class="nt">span</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ol>
<p>Done!</p>
<p>Here are examples:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">bata<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>̀<span class="p"></</span><span class="nt">span</span><span class="p">></span>
</span></span><span class="line"><span class="cl">panibugho<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>̂<span class="p"></</span><span class="nt">span</span><span class="p">></span>
</span></span><span class="line"><span class="cl">ara<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>́<span class="p"></</span><span class="nt">span</span><span class="p">></span>w–a<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>́<span class="p"></</span><span class="nt">span</span><span class="p">></span>raw
</span></span><span class="line"><span class="cl">ke<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>̈<span class="p"></</span><span class="nt">span</span><span class="p">></span>tke<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>̈<span class="p"></</span><span class="nt">span</span><span class="p">></span>t
</span></span><span class="line"><span class="cl">sag<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>̃<span class="p"></</span><span class="nt">span</span><span class="p">></span>nay or sagn<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>̃<span class="p"></</span><span class="nt">span</span><span class="p">></span>ay
</span></span><span class="line"><span class="cl">pan<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>͠<span class="p"></</span><span class="nt">span</span><span class="p">></span>gulo
</span></span><span class="line"><span class="cl">a<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>̄<span class="p"></</span><span class="nt">span</span><span class="p">></span>so
</span></span><span class="line"><span class="cl">h<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>͞<span class="p"></</span><span class="nt">span</span><span class="p">></span>oy
</span></span><span class="line"><span class="cl">pu<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>̱<span class="p"></</span><span class="nt">span</span><span class="p">></span>sà
</span></span><span class="line"><span class="cl">trab<span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"diacritics"</span><span class="p">></span>͟<span class="p"></</span><span class="nt">span</span><span class="p">></span>aho
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li><span lang="fil">bata<span class="text-guide diacritics-sans-dejavu">̀</span> [ba·ta<span class="diacritics-sans-dejavu">̀</span>]</span></li>
<li><span lang="fil">panibugho<span class="text-guide diacritics-sans-dejavu">̂</span> [pa·ni·bu<span class="diacritics-sans-dejavu">̄</span>g·ho<span class="diacritics-sans-dejavu">̂</span>]</span></li>
<li><span lang="fil">ara<span class="text-guide diacritics-sans-dejavu">́</span>w–a<span class="text-guide diacritics-sans-dejavu">́</span>raw [a·ra<span class="diacritics-sans-dejavu">́</span>w–a<span class="diacritics-sans-dejavu">́</span>·raw]</span></li>
<li><span lang="fil">ke<span class="text-guide diacritics-sans-dejavu">̈</span>tke<span class="text-guide diacritics-sans-dejavu">̈</span>t [ke<span class="diacritics-sans-dejavu">̈</span>t·ke<span class="diacritics-sans-dejavu">̈</span>t]</span></li>
<li><span lang="fil">sag<span class="text-guide diacritics-sans-dejavu">̃</span>nay or sagn<span class="text-guide diacritics-sans-dejavu">̃</span>ay [sa·n<span class="diacritics-sans-dejavu">̃</span>gay]</span></li>
<li><span lang="fil">pan<span class="text-guide diacritics-sans-dejavu">͠</span>gulo [pa·n<span class="diacritics-sans-dejavu">͠</span>gu·lo]</span></li>
<li><span lang="fil">a<span class="text-guide diacritics-sans-dejavu">̄</span>so [a<span class="diacritics-sans-dejavu">̄</span>·so]</span></li>
<li><span lang="fil">h<span class="text-guide diacritics-sans-dejavu">͞</span>oy [h<span class="diacritics-sans-dejavu">͞</span>oy]</span></li>
<li><span lang="fil">pu<span class="text-guide diacritics-sans-dejavu">̱</span>sa<span class="diacritics-sans-dejavu">̀</span> [pu<span class="diacritics-sans-dejavu">̱</span>·sa<span class="diacritics-sans-dejavu">̀</span>]</span></li>
<li><span lang="fil">trab<span class="text-guide diacritics-sans-dejavu">͟</span>aho [tra·b<span class="diacritics-sans-dejavu">͟</span>a·ho]</span></li>
</ul>
<p>It is also available via <a href="https://codepen.io/techmagus/pen/NWLqoLd" title="CodePen" class="icon_external" rel="noopener external">CodePen</a>. Or, you can clone a simple test page from my <a href="https://github.com/techmagus/test-repo/tree/noto-diacriticals" title="test-repo: Noto Diacriticals" class="icon_external" rel="noopener external">test-repo: Noto Diacriticals</a> Git branch.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
            <small>・ Cover image: To the extent possible under law, <a href="https://im.youronly.one/" rel="dct:publisher noopener">I'M YourOnly.One</a> has <a href="https://creativecommons.org/publicdomain/zero/1.0/" rel="license noopener external">waived all copyright and related or neighbouring rights</a> to <cite>Filipino Diacritics</cite>. This work is published from <span property="vcard:Country" datatype="dct:ISO3166" content="ph" about="https://en.wikipedia.org/wiki/Philippines"><a href="https://en.wikipedia.org/wiki/Philippines" rel="noopener external">Philippines</a></span>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="web" label="Web" scheme="https://im.youronly.one/techmagus/cat/web/"/><category term="css" label="CSS" scheme="https://im.youronly.one/techmagus/tag/css/"/><category term="html" label="HTML" scheme="https://im.youronly.one/techmagus/tag/html/"/><published>2023-02-18T04:50:27Z</published></entry><entry><title>How-To add link icons in Hugo markdown links</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/codebits/hugo/hugo-render-link/how-to-add-link-icons-hugo-markdown-links/"/><id>https://im.youronly.one/techmagus/codebits/hugo/hugo-render-link/how-to-add-link-icons-hugo-markdown-links/</id><updated>2022-06-17T06:07:01Z</updated><summary type="html">&lt;p>Link icons are great. It signals to the reader what a link is. It is external? Or perhaps a video? If the link is clicked, will it start a download or will it open the default mail program? Link icons also helps a developer or content creator to easily find links, or the lack thereof.&lt;/p></summary><content type="html"><![CDATA[<img src="https://im.youronly.one/techmagus/images/h/hugo-markdown-link-render.webp" /><p>Link icons are great. It signals to the reader what a link is. It is external? Or perhaps a video? If the link is clicked, will it start a download or will it open the default mail program? Link icons also helps a developer or content creator to easily find links, or the lack thereof.</p>
<p>Link icons started with and was popularised by <cite class="quote_title" translate="no"><bdi lang="en">Wikipedia</bdi></cite> a decade ago <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Everyone were looking for CMS plugins to add link icons to their websites and blogs. The method back then was to use a small <code>.png</code> image file as the icon. But today? We are going to use <span class="quote_name" translate="no"><bdi lang="en">Unicode</bdi></span> emojis and only use <code>.svg</code> if an appropriate emoji is not available.</p>
<p>In this post, we will add link icons support in <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span> through <span class="quote_name" translate="no"><bdi lang="en">Markdown</bdi></span> links. No shortcode needed, just plain regular <code>[text](https://example.com "Title")</code> links, thanks to the power of render hooks <sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>.</p>
<h2 id="features">Features</h2>
<ul>
<li>Add link icons without using <span class="quote_name" translate="no"><bdi lang="en">JavaScript</bdi></span>
<ul>
<li>With internal <span class="quote_name" translate="no"><bdi lang="en">Markdown</bdi></span> links support</li>
</ul>
</li>
<li>Features from <a href="https://im.youronly.one/techmagus/codebits/hugo/hugo-render-link/how-to-add-cross-reference-hugo-markdown-links/" title="How-To add cross reference in Hugo markdown links">How-To add cross reference in Hugo markdown links</a></li>
</ul>
<h2 id="whats-new">What’s new</h2>
<ul>
<li>
<p>2022-06-17:</p>
<ul>
<li>ftp icon changed to: <span class="emoji">↔️</span></li>
<li><code>sftp://</code> protocol moved to ftp category</li>
<li>ref: switched to <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span>’s <code>findRE</code> where appropriate</li>
<li>fix: <code>[text](./path/to/content/)</code> and <code>[text.ext](./path/to/file.ext)</code> formats</li>
</ul>
</li>
<li>
<p>2022-05-27:</p>
<ul>
<li>Same (sub)-domain no longer have external icon.</li>
<li>More external link support like audio, video, fonts, disk images, documents, presentations, spreadsheets, and more!</li>
</ul>
</li>
</ul>
<h2 id="steps">Steps</h2>
<p>To add link icons, follow the steps below:</p>
<ol>
<li>
<p>Create a file called <code>render-link.html</code> in this directory <code>/layouts/_default/_markup/</code></p>
</li>
<li>
<p>Copy and paste this code:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span><span class="lnt">40
</span><span class="lnt">41
</span><span class="lnt">42
</span><span class="lnt">43
</span><span class="lnt">44
</span><span class="lnt">45
</span><span class="lnt">46
</span><span class="lnt">47
</span><span class="lnt">48
</span><span class="lnt">49
</span><span class="lnt">50
</span><span class="lnt">51
</span><span class="lnt">52
</span><span class="lnt">53
</span><span class="lnt">54
</span><span class="lnt">55
</span><span class="lnt">56
</span><span class="lnt">57
</span><span class="lnt">58
</span><span class="lnt">59
</span><span class="lnt">60
</span><span class="lnt">61
</span><span class="lnt">62
</span><span class="lnt">63
</span><span class="lnt">64
</span><span class="lnt">65
</span><span class="lnt">66
</span><span class="lnt">67
</span><span class="lnt">68
</span><span class="lnt">69
</span><span class="lnt">70
</span><span class="lnt">71
</span><span class="lnt">72
</span><span class="lnt">73
</span><span class="lnt">74
</span><span class="lnt">75
</span><span class="lnt">76
</span><span class="lnt">77
</span><span class="lnt">78
</span><span class="lnt">79
</span><span class="lnt">80
</span><span class="lnt">81
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-go-html-template" data-lang="go-html-template"><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$baseurl</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">urls</span><span class="na">.Parse</span><span class="w"> </span><span class="nx">site</span><span class="na">.BaseURL</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$url</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">urls</span><span class="na">.Parse</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$getpage</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">site</span><span class="na">.GetPage</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$internal</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">lt</span><span class="w"> </span><span class="o">(</span><span class="k">len</span><span class="w"> </span><span class="nx">$url</span><span class="na">.Host</span><span class="o">)</span><span class="w"> </span><span class="nx">1</span><span class="w"> </span><span class="cp">-}}</span> <span class="cm">{{/* NOTE: internal links will always have an empty $url.Host */}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">$url</span><span class="na">.Fragment</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">printf</span><span class="w"> </span><span class="s">"#%s"</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="cp">}}{{-</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$internal</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">(</span><span class="nx">strings</span><span class="na">.HasPrefix</span><span class="w"> </span><span class="nx">$url</span><span class="na">.Path</span><span class="w"> </span><span class="s">"./"</span><span class="o">)</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">    <span class="cm">{{/* NOTE: for links starting with ./ */}}</span>
</span></span><span class="line"><span class="cl">    <span class="cp">{{-</span><span class="w"> </span><span class="nx">$urltrimmed</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">strings</span><span class="na">.TrimPrefix</span><span class="w"> </span><span class="s">"./"</span><span class="w"> </span><span class="nx">$url</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">    <span class="cp">{{-</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">printf</span><span class="w"> </span><span class="s">"%s://%s/%s%s"</span><span class="w"> </span><span class="nx">$baseurl</span><span class="na">.Scheme</span><span class="w"> </span><span class="nx">$baseurl</span><span class="na">.Host</span><span class="w"> </span><span class="nx">$urltrimmed</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">    <span class="cm">{{/* NOTE: for internal links */}}</span>
</span></span><span class="line"><span class="cl">    <span class="cp">{{-</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">printf</span><span class="w"> </span><span class="s">"%s%s"</span><span class="w"> </span><span class="nx">$getpage</span><span class="na">.RelPermalink</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">{{/* PROTOCOLS */}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$chat</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"^(?:discord|irc[s6]?|jabber|skype|xmpp)://"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$ftp</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"^(?:[as]?ftp)://"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$magnet</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">strings</span><span class="na">.HasPrefix</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="s">"magnet://"</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$mail</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">strings</span><span class="na">.HasPrefix</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="s">"mailto:"</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$remote</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"^(?:bzr|git|s(?:sh|vn)|telnet)://"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$tel</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">strings</span><span class="na">.HasPrefix</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="s">"tel:"</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">{{/* READING */}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$books</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="o">(</span><span class="nx">strings</span><span class="na">.HasPrefix</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="s">"doi://"</span><span class="o">)</span><span class="w"> </span><span class="o">(</span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:epub|mobi|pdf)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="o">)</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$document</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:docx?|odt|s(?:dw|xw)|sxw|uo[ft])$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$text</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:csv|txt)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$presentation</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:f?odp|pptx?|s(?:d[dp]|xi)|uop)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$spreadsheet</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:f?ods|s(?:d[cx]|xc)|uos|xlsx?)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">{{/* MEDIA */}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$audio</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:(?:fl|a)ac|mka|og[ag]|opus|mp[3a]|midi?|wave?|wma)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$video</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:av[1i]|divx|mk(?:3d|v)|mp(?:(?:e?g)?4?|v)|og[mv]|xvid|webm)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$subtitle</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:dfxp|mks|s(?:bv|cc|rt|ub)|ttml|vtt)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">{{/* EXECUTABLES */}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$executable</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:apk|com|deb|exe|msi)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$scripts</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:bat|sh)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cm">{{/* OTHERS */}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$fonts</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:otf|tt[fc]|woff2?)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$compressed</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:[7g]?z(?:ip)?|bz(?:ip)?2?|[rt]ar)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$diskimage</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:[di]mg|iso|md[sfx])$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$imagediting</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">findRE</span><span class="w"> </span><span class="s">"\\.(?:psd|xcf)$"</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$chat</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"chat"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$ftp</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"ftp"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$magnet</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"magnet"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$mail</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"mail"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$remote</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"remote"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$tel</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"tel"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$books</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"books"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$document</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"document"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$text</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"text"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$presentation</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"presentation"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$spreadsheet</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"spreadsheet"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$audio</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"audio"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$video</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"video"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$subtitle</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"subtitle"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$executable</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"executable"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$scripts</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"scripts"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$fonts</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"fonts"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$compressed</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"compressed"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$diskimage</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"diskimage"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$imagediting</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"imagediting"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">and</span><span class="w"> </span><span class="o">(</span><span class="k">not</span><span class="w"> </span><span class="nx">$internal</span><span class="o">)</span><span class="w"> </span><span class="o">(</span><span class="k">ne</span><span class="w"> </span><span class="nx">$url</span><span class="na">.Host</span><span class="w"> </span><span class="nx">$baseurl</span><span class="na">.Host</span><span class="o">)</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"external"</span><span class="w"> </span><span class="cp">}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nx">safeURL</span><span class="w"> </span><span class="cp">}}</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="na">.Title</span><span class="w"> </span><span class="nx">$getpage</span><span class="na">.LinkTitle</span><span class="w"> </span><span class="na">.Text</span><span class="w"> </span><span class="cp">}}</span> <span class="na">title</span><span class="o">=</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="na">.</span><span class="w"> </span><span class="cp">}}</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">}}{{</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="nx">$icon</span><span class="w"> </span><span class="cp">}}</span> <span class="na">class</span><span class="o">=</span><span class="s">"icon_</span><span class="cp">{{</span><span class="w"> </span><span class="na">.</span><span class="w"> </span><span class="cp">}}</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">}}{{</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="nx">$internal</span><span class="w"> </span><span class="cp">}}</span> <span class="na">rel</span><span class="o">=</span><span class="s">"noopener external"</span><span class="cp">{{</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">}}</span><span class="p">></span><span class="cp">{{</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="na">.Text</span><span class="w"> </span><span class="na">.Title</span><span class="w"> </span><span class="nx">$getpage</span><span class="na">.LinkTitle</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nx">safeHTML</span><span class="w"> </span><span class="cp">}}</span><span class="p"></</span><span class="nt">a</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>In your stylesheet file add:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span><span class="lnt">24
</span><span class="lnt">25
</span><span class="lnt">26
</span><span class="lnt">27
</span><span class="lnt">28
</span><span class="lnt">29
</span><span class="lnt">30
</span><span class="lnt">31
</span><span class="lnt">32
</span><span class="lnt">33
</span><span class="lnt">34
</span><span class="lnt">35
</span><span class="lnt">36
</span><span class="lnt">37
</span><span class="lnt">38
</span><span class="lnt">39
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="c">/********************
</span></span></span><span class="line"><span class="cl"><span class="c">** BGN: Link icons **
</span></span></span><span class="line"><span class="cl"><span class="c">********************/</span>
</span></span><span class="line"><span class="cl">  <span class="o">[</span><span class="nt">class</span><span class="o">^=</span><span class="s2">"icon_"</span><span class="o">]</span><span class="p">::</span><span class="nd">after</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">display</span><span class="p">:</span> <span class="kc">inline-block</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">text-decoration</span><span class="p">:</span> <span class="kc">none</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">white-space</span><span class="p">:</span> <span class="kc">pre-wrap</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">margin-left</span><span class="p">:</span> <span class="mf">0.25</span><span class="kt">em</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="k">width</span><span class="p">:</span> <span class="mi">1</span><span class="kt">em</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_external</span><span class="p">::</span><span class="nd">after</span>     <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F517"</span><span class="p">;</span>                                    <span class="c">/* 🔗 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_chat</span><span class="p">::</span><span class="nd">after</span>         <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F4AC"</span><span class="p">;</span>                                    <span class="c">/* 💬 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_ftp</span><span class="p">::</span><span class="nd">after</span>          <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\2194\FE0F"</span><span class="p">;</span>                                <span class="c">/* ↔️ */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_magnet</span><span class="p">::</span><span class="nd">after</span>       <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F9F2"</span><span class="p">;</span>                                    <span class="c">/* 🧲 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_mail</span><span class="p">::</span><span class="nd">after</span>         <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F4E7"</span><span class="p">;</span>                                    <span class="c">/* 📧 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_remote</span><span class="p">::</span><span class="nd">after</span>       <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F4BB"</span><span class="p">;</span>                                    <span class="c">/* 💻 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_tel</span><span class="p">::</span><span class="nd">after</span>          <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\260E\FE0F"</span><span class="p">;</span>                                <span class="c">/* ☎️ */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_books</span><span class="p">::</span><span class="nd">after</span>        <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F4D6"</span><span class="p">;</span>                                    <span class="c">/* 📖 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_document</span><span class="p">::</span><span class="nd">after</span>     <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F4C4"</span><span class="p">;</span>                                    <span class="c">/* 📄 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_text</span><span class="p">::</span><span class="nd">after</span>         <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F4DD"</span><span class="p">;</span>                                    <span class="c">/* 📝 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_presentation</span><span class="p">::</span><span class="nd">after</span> <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="nb">url</span><span class="p">(</span><span class="s2">"../img/link-icons-presentation.svg"</span><span class="p">);</span>   <span class="c">/* https://openclipart.org/detail/36505/tango-x-office-presentation */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_spreadsheet</span><span class="p">::</span><span class="nd">after</span>  <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="nb">url</span><span class="p">(</span><span class="s2">"../img/link-icons-spreadsheet.svg"</span><span class="p">);</span>    <span class="c">/* https://openclipart.org/detail/36517/tango-x-office-spreadsheet */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_audio</span><span class="p">::</span><span class="nd">after</span>        <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F3B5"</span><span class="p">;</span>                                    <span class="c">/* 🎵 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_video</span><span class="p">::</span><span class="nd">after</span>        <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F4FD\FE0F"</span><span class="p">;</span>                               <span class="c">/* 📽️ */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_subtitle</span><span class="p">::</span><span class="nd">after</span>     <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="nb">url</span><span class="p">(</span><span class="s2">"../img/link-icons-subtitle.svg"</span><span class="p">);</span>       <span class="c">/* https://openclipart.org/detail/212110/mimetype-subtitle */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_executable</span><span class="p">::</span><span class="nd">after</span>   <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="nb">url</span><span class="p">(</span><span class="s2">"../img/link-icons-executable.svg"</span><span class="p">);</span>     <span class="c">/* https://openclipart.org/detail/212161/mimetype-binary */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_scripts</span><span class="p">::</span><span class="nd">after</span>      <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="nb">url</span><span class="p">(</span><span class="s2">"../img/link-icons-scripts.svg"</span><span class="p">);</span>        <span class="c">/* https://openclipart.org/detail/36175/tango-text-x-script */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_fonts</span><span class="p">::</span><span class="nd">after</span>        <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="nb">url</span><span class="p">(</span><span class="s2">"../img/link-icons-fonts.svg"</span><span class="p">);</span>          <span class="c">/* https://openclipart.org/detail/35257/tango-preferences-desktop-font */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_compressed</span><span class="p">::</span><span class="nd">after</span>   <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F5DC\FE0F"</span><span class="p">;</span>                               <span class="c">/* 🗜️ */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_diskimage</span><span class="p">::</span><span class="nd">after</span>    <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="s2">"\1F4BD"</span><span class="p">;</span>                                    <span class="c">/* 💽 */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">  <span class="p">.</span><span class="nc">icon_imagediting</span><span class="p">::</span><span class="nd">after</span>  <span class="p">{</span> <span class="k">content</span><span class="p">:</span> <span class="nb">url</span><span class="p">(</span><span class="s2">"../img/link-icons-imageediting.svg"</span><span class="p">);</span>   <span class="c">/* https://openclipart.org/detail/231061/artists-brush-and-paint */</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="c">/********************
</span></span></span><span class="line"><span class="cl"><span class="c">** END: Link icons **
</span></span></span><span class="line"><span class="cl"><span class="c">********************/</span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Download <code>.svg</code> icons: <a href="https://im.youronly.one/techmagus/dls/link-icons.7z" title="link-icons.7z" class="icon_compressed">link-icons.7z</a></p>
<ul>
<li>
<p>Sources (all in the Public Domain):</p>
<ul>
<li>Presentation: <a href="https://openclipart.org/detail/36505/tango-x-office-presentation" title="tango x office presentation" class="icon_external" rel="noopener external">tango x office presentation</a> by <a href="https://openclipart.org/artist/warszawianka" title="warszawianka" class="icon_external" rel="noopener external">warszawianka</a></li>
<li>Spreadsheet: <a href="https://openclipart.org/detail/36517/tango-x-office-spreadsheet" title="tango x office spreadsheet" class="icon_external" rel="noopener external">tango x office spreadsheet</a> by <a href="https://openclipart.org/artist/warszawianka" title="warszawianka" class="icon_external" rel="noopener external">warszawianka</a></li>
<li>Subtitle: <a href="https://openclipart.org/detail/212110/mimetype-subtitle" title="mimetype subtitle" class="icon_external" rel="noopener external">mimetype subtitle</a> by <a href="https://openclipart.org/artist/sixsixfive" title="sixsixfive" class="icon_external" rel="noopener external">sixsixfive</a></li>
<li>Executable: <a href="https://openclipart.org/detail/212161/mimetype-binary" title="mimetype binary" class="icon_external" rel="noopener external">mimetype binary</a> by <a href="https://openclipart.org/artist/sixsixfive" title="sixsixfive" class="icon_external" rel="noopener external">sixsixfive</a></li>
<li>Scripts: <a href="https://openclipart.org/detail/36175/tango-text-x-script" title="tango text x script" class="icon_external" rel="noopener external">tango text x script</a> by <a href="https://openclipart.org/artist/warszawianka" title="warszawianka" class="icon_external" rel="noopener external">warszawianka</a></li>
<li>Fonts: <a href="https://openclipart.org/detail/35257/tango-preferences-desktop-font" title="tango preferences desktop font" class="icon_external" rel="noopener external">tango preferences desktop font</a> by <a href="https://openclipart.org/artist/warszawianka" title="warszawianka" class="icon_external" rel="noopener external">warszawianka</a></li>
<li>Image editing: <a href="https://openclipart.org/detail/231061/artists-brush-and-paint" title="Artists Brush And Paint" class="icon_external" rel="noopener external">Artists Brush And Paint</a> by <a href="https://openclipart.org/artist/GDJ" title="GDJ" class="icon_external" rel="noopener external">GDJ</a></li>
</ul>
<p class="note">It is possible to hotlink from the listed sources. However, there is no information if they were setup for it.</p>
</li>
</ul>
</li>
<li>
<p>Extract the <code>.svg</code> files in <code>/static/img/</code> folder.</p>
</li>
</ol>
<h2 id="how-to-use">How to use</h2>
<p>The following <span class="quote_name" translate="no"><bdi lang="en">Markdown</bdi></span> links</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="k">-</span> External links
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">https://example.com/#fragment</span>](<span class="na">https://example.com/#fragment "https://example.com/#fragment"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Chat
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">irc://</span>](<span class="na">irc://example.com "irc://"</span>) | [<span class="nt">ircs://</span>](<span class="na">ircs://example.com "ircs://"</span>) | [<span class="nt">irc6://</span>](<span class="na">irc6://example.com "irc6://"</span>) | [<span class="nt">xmpp://</span>](<span class="na">xmpp://example.com "xmpp://"</span>) | [<span class="nt">jabber://</span>](<span class="na">jabber://example.com "jabber://"</span>) | [<span class="nt">discord://</span>](<span class="na">discord://example.com "discord://"</span>) | [<span class="nt">skype://</span>](<span class="na">skype://example.com "skype://"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> FTP
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">sftp://</span>](<span class="na">sftp://example.com "sftp://"</span>) | [<span class="nt">ftp://</span>](<span class="na">ftp://example.com "ftp://"</span>) | [<span class="nt">aftp://</span>](<span class="na">aftp://example.com "aftp://"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Magnet
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">magnet://</span>](<span class="na">magnet://example.com "magnet://"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Mail
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">mailto:</span>](<span class="na">mailto:noreply@example.com "mailto:"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Remote
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">telnet://</span>](<span class="na">telnet://example.com "telnet://"</span>) | [<span class="nt">ssh://</span>](<span class="na">ssh://example.com "ssh://"</span>) | [<span class="nt">git://</span>](<span class="na">git://example.com "git://"</span>) | [<span class="nt">svn://</span>](<span class="na">svn://example.com "svn://"</span>) | [<span class="nt">bzr://</span>](<span class="na">bzr://example.com "bzr://"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Tel
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">tel:</span>](<span class="na">tel:123-456-7890 "tel:"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Books
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">doi://</span>](<span class="na">doi://example.com "doi://"</span>) | [<span class="nt">.epub</span>](<span class="na">https://example.com/file.epub ".epub"</span>) | [<span class="nt">.mobi</span>](<span class="na">https://example.com/file.mobi ".mobi"</span>) | [<span class="nt">.pdf</span>](<span class="na">https://example.com/file.pdf ".pdf"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Document
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.odt</span>](<span class="na">https://example.com/file.odt ".odt"</span>) | [<span class="nt">.sdw</span>](<span class="na">https://example.com/file.sdw ".sdw"</span>) | [<span class="nt">.sxw</span>](<span class="na">https://example.com/file.sxw ".sxw"</span>) | [<span class="nt">.uof</span>](<span class="na">https://example.com/file.uof ".uof"</span>) | [<span class="nt">.uot</span>](<span class="na">https://example.com/file.uot ".uot"</span>) | [<span class="nt">.doc</span>](<span class="na">https://example.com/file.doc ".doc"</span>) | [<span class="nt">.docx</span>](<span class="na">https://example.com/file.docx ".docx"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Text
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.txt</span>](<span class="na">https://example.com/file.txt ".txt"</span>) | [<span class="nt">.csv</span>](<span class="na">https://example.com/file.csv ".csv"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Presentation
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.odp</span>](<span class="na">https://example.com/file.odp ".odp"</span>) | [<span class="nt">.fodp</span>](<span class="na">https://example.com/file.fodp ".fodp"</span>) | [<span class="nt">.sdd</span>](<span class="na">https://example.com/file.sdd ".sdd"</span>) | [<span class="nt">.sdp</span>](<span class="na">https://example.com/file.sdp ".sdp"</span>) | [<span class="nt">.sxi</span>](<span class="na">https://example.com/file.sxi ".sxi"</span>) | [<span class="nt">.uop</span>](<span class="na">https://example.com/file.uop ".uop"</span>) | [<span class="nt">.ppt</span>](<span class="na">https://example.com/file.ppt ".ppt"</span>) | [<span class="nt">.pptx</span>](<span class="na">https://example.com/file.pptx ".pptx"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Spreadsheet
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.ods</span>](<span class="na">https://example.com/file.ods ".ods"</span>) | [<span class="nt">.fods</span>](<span class="na">https://example.com/file.fods ".fods"</span>) | [<span class="nt">.sdc</span>](<span class="na">https://example.com/file.sdc ".sdc"</span>) | [<span class="nt">.sxc</span>](<span class="na">https://example.com/file.sxc ".sxc"</span>) | [<span class="nt">.uos</span>](<span class="na">https://example.com/file.uos ".uos"</span>) | [<span class="nt">.xls</span>](<span class="na">https://example.com/file.xls ".xls"</span>) | [<span class="nt">.xlsx</span>](<span class="na">https://example.com/file.xlsx ".xlsx"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Audio
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.flac</span>](<span class="na">https://example.com/file.flac ".flac"</span>) | [<span class="nt">.aac</span>](<span class="na">https://example.com/file.aac ".aac"</span>) | [<span class="nt">.mka</span>](<span class="na">https://example.com/file.mka ".mka"</span>) | [<span class="nt">.ogg</span>](<span class="na">https://example.com/file.ogg ".ogg"</span>) | [<span class="nt">.oga</span>](<span class="na">https://example.com/file.oga ".oga"</span>) | [<span class="nt">.opus</span>](<span class="na">https://example.com/file.opus ".opus"</span>) | [<span class="nt">.mp3</span>](<span class="na">https://example.com/file.mp3 ".mp3"</span>) | [<span class="nt">.mpa</span>](<span class="na">https://example.com/file.mpa ".mpa"</span>) | [<span class="nt">.mid</span>](<span class="na">https://example.com/file.mid ".mid"</span>) | [<span class="nt">.midi</span>](<span class="na">https://example.com/file.midi ".midi"</span>) | [<span class="nt">.wav</span>](<span class="na">https://example.com/file.wav ".wav"</span>) | [<span class="nt">.wave</span>](<span class="na">https://example.com/file.wave ".wave"</span>) | [<span class="nt">.wma</span>](<span class="na">https://example.com/file.wma ".wma"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Video
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.av1</span>](<span class="na">https://example.com/file.av1 ".av1"</span>) | [<span class="nt">.webm</span>](<span class="na">https://example.com/file.webm ".webm"</span>) | [<span class="nt">.xvid</span>](<span class="na">https://example.com/file.xvid ".xvid"</span>) | [<span class="nt">.mkv</span>](<span class="na">https://example.com/file.mkv ".mkv"</span>) | [<span class="nt">.mk3d</span>](<span class="na">https://example.com/file.mk3d ".mk3d"</span>) | [<span class="nt">.ogm</span>](<span class="na">https://example.com/file.ogm ".ogm"</span>) | [<span class="nt">.ogv</span>](<span class="na">https://example.com/file.ogv ".ogv"</span>) | [<span class="nt">.divx</span>](<span class="na">https://example.com/file.divx ".divx"</span>) | [<span class="nt">.avi</span>](<span class="na">https://example.com/file.avi ".avi"</span>) | [<span class="nt">.mp4</span>](<span class="na">https://example.com/file.mp4 ".mp4"</span>) | [<span class="nt">.mpeg4</span>](<span class="na">https://example.com/file.mpeg4 ".mpeg4"</span>) | [<span class="nt">.mpv</span>](<span class="na">https://example.com/file.mpv ".mpv"</span>) | [<span class="nt">.mpeg</span>](<span class="na">https://example.com/file.mpeg ".mpeg"</span>) | [<span class="nt">.mpg</span>](<span class="na">https://example.com/file.mpg ".mpg"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Subtitle
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.vtt</span>](<span class="na">https://example.com/file.vtt ".vtt"</span>) | [<span class="nt">.ttml</span>](<span class="na">https://example.com/file.ttml ".ttml"</span>) | [<span class="nt">.dfxp</span>](<span class="na">https://example.com/file.dfxp ".dfxp"</span>) | [<span class="nt">.srt</span>](<span class="na">https://example.com/file.srt ".srt"</span>) | [<span class="nt">.sub</span>](<span class="na">https://example.com/file.sub ".sub"</span>) | [<span class="nt">.sbv</span>](<span class="na">https://example.com/file.sbv ".sbv"</span>) | [<span class="nt">.scc</span>](<span class="na">https://example.com/file.scc ".scc"</span>) | [<span class="nt">.mks</span>](<span class="na">https://example.com/file.mks ".mks"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Executables
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.deb</span>](<span class="na">https://example.com/file.deb ".deb"</span>) | [<span class="nt">.apk</span>](<span class="na">https://example.com/file.apk ".apk"</span>) | [<span class="nt">.exe</span>](<span class="na">https://example.com/file.exe ".exe"</span>) | [<span class="nt">.com</span>](<span class="na">https://example.com/file.com ".com"</span>) | [<span class="nt">.msi</span>](<span class="na">https://example.com/file.msi ".msi"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Scripts
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.bat</span>](<span class="na">https://example.com/file.bat ".bat"</span>) | [<span class="nt">.sh</span>](<span class="na">https://example.com/file.sh ".sh"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Fonts
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.woff</span>](<span class="na">https://example.com/file.woff ".woff"</span>) | [<span class="nt">.woff2</span>](<span class="na">https://example.com/file.woff2 ".woff2"</span>) | [<span class="nt">.otf</span>](<span class="na">https://example.com/file.otf ".otf"</span>) | [<span class="nt">.ttf</span>](<span class="na">https://example.com/file.ttf ".ttf"</span>) | [<span class="nt">.ttc</span>](<span class="na">https://example.com/file.ttc ".ttc"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Compressed files
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.7z</span>](<span class="na">https://example.com/file.7z ".7z"</span>) | [<span class="nt">.7zip</span>](<span class="na">https://example.com/file.7zip ".7zip"</span>) | [<span class="nt">.tar</span>](<span class="na">https://example.com/file.tar ".tar"</span>) | [<span class="nt">.gz</span>](<span class="na">https://example.com/file.gz ".gz"</span>) | [<span class="nt">.gzip</span>](<span class="na">https://example.com/file.gzip ".gzip"</span>) | [<span class="nt">.bz2</span>](<span class="na">https://example.com/file.bz2 ".bz2"</span>) | [<span class="nt">.bzip2</span>](<span class="na">https://example.com/file.bzip2 ".bzip2"</span>) | [<span class="nt">.zip</span>](<span class="na">https://example.com/file.zip ".zip"</span>) | [<span class="nt">.rar</span>](<span class="na">https://example.com/file.rar ".rar"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Disk images
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.img</span>](<span class="na">https://example.com/file.img ".img"</span>) | [<span class="nt">.iso</span>](<span class="na">https://example.com/file.iso ".iso"</span>) | [<span class="nt">.dmg</span>](<span class="na">https://example.com/file.dmg ".dmg"</span>) | [<span class="nt">.mds</span>](<span class="na">https://example.com/file.mds ".mds"</span>) | [<span class="nt">.mdf</span>](<span class="na">https://example.com/file.mdf ".mdf"</span>) | [<span class="nt">.mdx</span>](<span class="na">https://example.com/file.mdx ".mdx"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> Image editing
</span></span><span class="line"><span class="cl">  <span class="k">-</span> [<span class="nt">.xcf</span>](<span class="na">https://example.com/file.xcf ".xcf"</span>) | [<span class="nt">.psd</span>](<span class="na">https://example.com/file.psd ".psd"</span>)
</span></span></code></pre></div><p>Will render as:</p>
<ul>
<li>External links
<ul>
<li><a href="https://example.com/#fragment" title="https://example.com/#fragment" class="icon_external" rel="noopener external">https://example.com/#fragment</a></li>
</ul>
</li>
<li>Chat
<ul>
<li><a href="#ZgotmplZ" title="irc://" class="icon_chat" rel="noopener external">irc://</a> | <a href="#ZgotmplZ" title="ircs://" class="icon_chat" rel="noopener external">ircs://</a> | <a href="#ZgotmplZ" title="irc6://" class="icon_chat" rel="noopener external">irc6://</a> | <a href="#ZgotmplZ" title="xmpp://" class="icon_chat" rel="noopener external">xmpp://</a> | <a href="#ZgotmplZ" title="jabber://" class="icon_chat" rel="noopener external">jabber://</a> | <a href="#ZgotmplZ" title="discord://" class="icon_chat" rel="noopener external">discord://</a> | <a href="#ZgotmplZ" title="skype://" class="icon_chat" rel="noopener external">skype://</a></li>
</ul>
</li>
<li>FTP
<ul>
<li><a href="#ZgotmplZ" title="sftp://" class="icon_ftp" rel="noopener external">sftp://</a> | <a href="#ZgotmplZ" title="ftp://" class="icon_ftp" rel="noopener external">ftp://</a> | <a href="#ZgotmplZ" title="aftp://" class="icon_ftp" rel="noopener external">aftp://</a></li>
</ul>
</li>
<li>Magnet
<ul>
<li><a href="#ZgotmplZ" title="magnet://" class="icon_magnet" rel="noopener external">magnet://</a></li>
</ul>
</li>
<li>Mail
<ul>
<li><a href="https://im.youronly.one/techmagus/" title="mailto:" class="icon_mail">mailto:</a></li>
</ul>
</li>
<li>Remote
<ul>
<li><a href="#ZgotmplZ" title="telnet://" class="icon_remote" rel="noopener external">telnet://</a> | <a href="#ZgotmplZ" title="ssh://" class="icon_remote" rel="noopener external">ssh://</a> | <a href="#ZgotmplZ" title="git://" class="icon_remote" rel="noopener external">git://</a> | <a href="#ZgotmplZ" title="svn://" class="icon_remote" rel="noopener external">svn://</a> | <a href="#ZgotmplZ" title="bzr://" class="icon_remote" rel="noopener external">bzr://</a></li>
</ul>
</li>
<li>Tel
<ul>
<li><a href="https://im.youronly.one/techmagus/" title="tel:" class="icon_tel">tel:</a></li>
</ul>
</li>
<li>Books
<ul>
<li><a href="#ZgotmplZ" title="doi://" class="icon_books" rel="noopener external">doi://</a> | <a href="https://example.com/file.epub" title=".epub" class="icon_books" rel="noopener external">.epub</a> | <a href="https://example.com/file.mobi" title=".mobi" class="icon_books" rel="noopener external">.mobi</a> | <a href="https://example.com/file.pdf" title=".pdf" class="icon_books" rel="noopener external">.pdf</a></li>
</ul>
</li>
<li>Document
<ul>
<li><a href="https://example.com/file.odt" title=".odt" class="icon_document" rel="noopener external">.odt</a> | <a href="https://example.com/file.sdw" title=".sdw" class="icon_document" rel="noopener external">.sdw</a> | <a href="https://example.com/file.sxw" title=".sxw" class="icon_document" rel="noopener external">.sxw</a> | <a href="https://example.com/file.uof" title=".uof" class="icon_document" rel="noopener external">.uof</a> | <a href="https://example.com/file.uot" title=".uot" class="icon_document" rel="noopener external">.uot</a> | <a href="https://example.com/file.doc" title=".doc" class="icon_document" rel="noopener external">.doc</a> | <a href="https://example.com/file.docx" title=".docx" class="icon_document" rel="noopener external">.docx</a></li>
</ul>
</li>
<li>Text
<ul>
<li><a href="https://example.com/file.txt" title=".txt" class="icon_text" rel="noopener external">.txt</a> | <a href="https://example.com/file.csv" title=".csv" class="icon_text" rel="noopener external">.csv</a></li>
</ul>
</li>
<li>Presentation
<ul>
<li><a href="https://example.com/file.odp" title=".odp" class="icon_presentation" rel="noopener external">.odp</a> | <a href="https://example.com/file.fodp" title=".fodp" class="icon_presentation" rel="noopener external">.fodp</a> | <a href="https://example.com/file.sdd" title=".sdd" class="icon_presentation" rel="noopener external">.sdd</a> | <a href="https://example.com/file.sdp" title=".sdp" class="icon_presentation" rel="noopener external">.sdp</a> | <a href="https://example.com/file.sxi" title=".sxi" class="icon_presentation" rel="noopener external">.sxi</a> | <a href="https://example.com/file.uop" title=".uop" class="icon_presentation" rel="noopener external">.uop</a> | <a href="https://example.com/file.ppt" title=".ppt" class="icon_presentation" rel="noopener external">.ppt</a> | <a href="https://example.com/file.pptx" title=".pptx" class="icon_presentation" rel="noopener external">.pptx</a></li>
</ul>
</li>
<li>Spreadsheet
<ul>
<li><a href="https://example.com/file.ods" title=".ods" class="icon_spreadsheet" rel="noopener external">.ods</a> | <a href="https://example.com/file.fods" title=".fods" class="icon_spreadsheet" rel="noopener external">.fods</a> | <a href="https://example.com/file.sdc" title=".sdc" class="icon_spreadsheet" rel="noopener external">.sdc</a> | <a href="https://example.com/file.sxc" title=".sxc" class="icon_spreadsheet" rel="noopener external">.sxc</a> | <a href="https://example.com/file.uos" title=".uos" class="icon_spreadsheet" rel="noopener external">.uos</a> | <a href="https://example.com/file.xls" title=".xls" class="icon_spreadsheet" rel="noopener external">.xls</a> | <a href="https://example.com/file.xlsx" title=".xlsx" class="icon_spreadsheet" rel="noopener external">.xlsx</a></li>
</ul>
</li>
<li>Audio
<ul>
<li><a href="https://example.com/file.flac" title=".flac" class="icon_audio" rel="noopener external">.flac</a> | <a href="https://example.com/file.aac" title=".aac" class="icon_audio" rel="noopener external">.aac</a> | <a href="https://example.com/file.mka" title=".mka" class="icon_audio" rel="noopener external">.mka</a> | <a href="https://example.com/file.ogg" title=".ogg" class="icon_audio" rel="noopener external">.ogg</a> | <a href="https://example.com/file.oga" title=".oga" class="icon_audio" rel="noopener external">.oga</a> | <a href="https://example.com/file.opus" title=".opus" class="icon_audio" rel="noopener external">.opus</a> | <a href="https://example.com/file.mp3" title=".mp3" class="icon_audio" rel="noopener external">.mp3</a> | <a href="https://example.com/file.mpa" title=".mpa" class="icon_audio" rel="noopener external">.mpa</a> | <a href="https://example.com/file.mid" title=".mid" class="icon_audio" rel="noopener external">.mid</a> | <a href="https://example.com/file.midi" title=".midi" class="icon_audio" rel="noopener external">.midi</a> | <a href="https://example.com/file.wav" title=".wav" class="icon_audio" rel="noopener external">.wav</a> | <a href="https://example.com/file.wave" title=".wave" class="icon_audio" rel="noopener external">.wave</a> | <a href="https://example.com/file.wma" title=".wma" class="icon_audio" rel="noopener external">.wma</a></li>
</ul>
</li>
<li>Video
<ul>
<li><a href="https://example.com/file.av1" title=".av1" class="icon_video" rel="noopener external">.av1</a> | <a href="https://example.com/file.webm" title=".webm" class="icon_video" rel="noopener external">.webm</a> | <a href="https://example.com/file.xvid" title=".xvid" class="icon_video" rel="noopener external">.xvid</a> | <a href="https://example.com/file.mkv" title=".mkv" class="icon_video" rel="noopener external">.mkv</a> | <a href="https://example.com/file.mk3d" title=".mk3d" class="icon_video" rel="noopener external">.mk3d</a> | <a href="https://example.com/file.ogm" title=".ogm" class="icon_video" rel="noopener external">.ogm</a> | <a href="https://example.com/file.ogv" title=".ogv" class="icon_video" rel="noopener external">.ogv</a> | <a href="https://example.com/file.divx" title=".divx" class="icon_video" rel="noopener external">.divx</a> | <a href="https://example.com/file.avi" title=".avi" class="icon_video" rel="noopener external">.avi</a> | <a href="https://example.com/file.mp4" title=".mp4" class="icon_video" rel="noopener external">.mp4</a> | <a href="https://example.com/file.mpeg4" title=".mpeg4" class="icon_video" rel="noopener external">.mpeg4</a> | <a href="https://example.com/file.mpv" title=".mpv" class="icon_video" rel="noopener external">.mpv</a> | <a href="https://example.com/file.mpeg" title=".mpeg" class="icon_video" rel="noopener external">.mpeg</a> | <a href="https://example.com/file.mpg" title=".mpg" class="icon_video" rel="noopener external">.mpg</a></li>
</ul>
</li>
<li>Subtitle
<ul>
<li><a href="https://example.com/file.vtt" title=".vtt" class="icon_subtitle" rel="noopener external">.vtt</a> | <a href="https://example.com/file.ttml" title=".ttml" class="icon_subtitle" rel="noopener external">.ttml</a> | <a href="https://example.com/file.dfxp" title=".dfxp" class="icon_subtitle" rel="noopener external">.dfxp</a> | <a href="https://example.com/file.srt" title=".srt" class="icon_subtitle" rel="noopener external">.srt</a> | <a href="https://example.com/file.sub" title=".sub" class="icon_subtitle" rel="noopener external">.sub</a> | <a href="https://example.com/file.sbv" title=".sbv" class="icon_subtitle" rel="noopener external">.sbv</a> | <a href="https://example.com/file.scc" title=".scc" class="icon_subtitle" rel="noopener external">.scc</a> | <a href="https://example.com/file.mks" title=".mks" class="icon_subtitle" rel="noopener external">.mks</a></li>
</ul>
</li>
<li>Executables
<ul>
<li><a href="https://example.com/file.deb" title=".deb" class="icon_executable" rel="noopener external">.deb</a> | <a href="https://example.com/file.apk" title=".apk" class="icon_executable" rel="noopener external">.apk</a> | <a href="https://example.com/file.exe" title=".exe" class="icon_executable" rel="noopener external">.exe</a> | <a href="https://example.com/file.com" title=".com" class="icon_executable" rel="noopener external">.com</a> | <a href="https://example.com/file.msi" title=".msi" class="icon_executable" rel="noopener external">.msi</a></li>
</ul>
</li>
<li>Scripts
<ul>
<li><a href="https://example.com/file.bat" title=".bat" class="icon_scripts" rel="noopener external">.bat</a> | <a href="https://example.com/file.sh" title=".sh" class="icon_scripts" rel="noopener external">.sh</a></li>
</ul>
</li>
<li>Fonts
<ul>
<li><a href="https://example.com/file.woff" title=".woff" class="icon_fonts" rel="noopener external">.woff</a> | <a href="https://example.com/file.woff2" title=".woff2" class="icon_fonts" rel="noopener external">.woff2</a> | <a href="https://example.com/file.otf" title=".otf" class="icon_fonts" rel="noopener external">.otf</a> | <a href="https://example.com/file.ttf" title=".ttf" class="icon_fonts" rel="noopener external">.ttf</a> | <a href="https://example.com/file.ttc" title=".ttc" class="icon_fonts" rel="noopener external">.ttc</a></li>
</ul>
</li>
<li>Compressed files
<ul>
<li><a href="https://example.com/file.7z" title=".7z" class="icon_compressed" rel="noopener external">.7z</a> | <a href="https://example.com/file.7zip" title=".7zip" class="icon_compressed" rel="noopener external">.7zip</a> | <a href="https://example.com/file.tar" title=".tar" class="icon_compressed" rel="noopener external">.tar</a> | <a href="https://example.com/file.gz" title=".gz" class="icon_compressed" rel="noopener external">.gz</a> | <a href="https://example.com/file.gzip" title=".gzip" class="icon_compressed" rel="noopener external">.gzip</a> | <a href="https://example.com/file.bz2" title=".bz2" class="icon_compressed" rel="noopener external">.bz2</a> | <a href="https://example.com/file.bzip2" title=".bzip2" class="icon_compressed" rel="noopener external">.bzip2</a> | <a href="https://example.com/file.zip" title=".zip" class="icon_compressed" rel="noopener external">.zip</a> | <a href="https://example.com/file.rar" title=".rar" class="icon_compressed" rel="noopener external">.rar</a></li>
</ul>
</li>
<li>Disk images
<ul>
<li><a href="https://example.com/file.img" title=".img" class="icon_diskimage" rel="noopener external">.img</a> | <a href="https://example.com/file.iso" title=".iso" class="icon_diskimage" rel="noopener external">.iso</a> | <a href="https://example.com/file.dmg" title=".dmg" class="icon_diskimage" rel="noopener external">.dmg</a> | <a href="https://example.com/file.mds" title=".mds" class="icon_diskimage" rel="noopener external">.mds</a> | <a href="https://example.com/file.mdf" title=".mdf" class="icon_diskimage" rel="noopener external">.mdf</a> | <a href="https://example.com/file.mdx" title=".mdx" class="icon_diskimage" rel="noopener external">.mdx</a></li>
</ul>
</li>
<li>Image editing
<ul>
<li><a href="https://example.com/file.xcf" title=".xcf" class="icon_imagediting" rel="noopener external">.xcf</a> | <a href="https://example.com/file.psd" title=".psd" class="icon_imagediting" rel="noopener external">.psd</a></li>
</ul>
</li>
</ul>
<p>An official list of Uniform Resource Identifier (URI) Schemes can be found at the IANA official website. <sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> However, not all popular URI Schemes were registered and/or submitted, for example, <code>discord://</code> and <code>bzr://</code> (as of IANA document dated 2022-05-13). Regardless, these popular unregistered URI Schemes were included in the above code.</p>
<p>I hope you find it useful!</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite>How To Customize Markdown Links in Hugo</cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">Creative Commons Attribution-ShareAlike 4.0 International</a>.</small></p></footer>
    </div></div>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a href="https://en.wikipedia.org/wiki/Help:External_link_icons" title="w:Help:External link icons" class="icon_external" rel="noopener external">w:Help:External link icons</a> <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:2">
<p><a href="https://gohugo.io/templates/render-hooks/" title="Hugo: Markdown Render Hooks" class="icon_external" rel="noopener external">Hugo: Markdown Render Hooks</a> <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:3">
<p>IANA: <a href="https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml" title="URI Schemes" class="icon_external" rel="noopener external">URI Schemes</a> <a href="#fnref:3" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
</ol>
</div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="hugo" label="Hugo" scheme="https://im.youronly.one/techmagus/tag/hugo/"/><published>2022-05-20T11:24:30Z</published></entry><entry><title>How-To add cross reference in Hugo markdown links</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/codebits/hugo/hugo-render-link/how-to-add-cross-reference-hugo-markdown-links/"/><id>https://im.youronly.one/techmagus/codebits/hugo/hugo-render-link/how-to-add-cross-reference-hugo-markdown-links/</id><updated>2022-06-17T06:07:00Z</updated><summary type="html"><![CDATA[<p>One of the less commonly used feature of <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span> is render hooks. In this post, we are going to use render hooks to add internal cross reference support to <span class="quote_name" translate="no"><bdi lang="en">Markdown</bdi></span>’s default way of creating links: <code>[text](https://example.com#fragment "Title")</code>.</p>]]></summary><content type="html"><![CDATA[<img src="https://im.youronly.one/techmagus/images/h/hugo-markdown-link-render.webp" /><p>One of the less commonly used feature of <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span> is render hooks. In this post, we are going to use render hooks to add internal cross reference support to <span class="quote_name" translate="no"><bdi lang="en">Markdown</bdi></span>’s default way of creating links: <code>[text](https://example.com#fragment "Title")</code>.</p>
<p>Internal cross references in <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span> is usually done by using the built-in shortcodes <code>{{< ref >}}</code> or <code>{{% relref %}}</code> but did you know since <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span> v0.62.0 <sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> the advisable method is to use render hooks <sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>?</p>
<h2 id="features">Features</h2>
<ul>
<li>Use regular <span class="quote_name" translate="no"><bdi lang="en">Markdown</bdi></span> link format to cross reference within <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span>
<ul>
<li><code>{{< ref >}}</code> and <code>{{% relref %}}</code>, or any variation thereof, is a thing of the past</li>
<li>Automatically use the content’s title</li>
<li>Multilingual support</li>
<li><span class="quote_name" translate="no"><bdi lang="en">Markdown</bdi></span> link text and title support</li>
<li>With URI fragment support</li>
</ul>
</li>
</ul>
<h2 id="whats-new">What’s new</h2>
<ul>
<li>
<p>2022-06-17:</p>
<ul>
<li>fix: <code>[text](./path/to/content/)</code> and <code>[text.ext](./path/to/file.ext)</code> formats</li>
</ul>
</li>
<li>
<p>2022-05-27:</p>
<ul>
<li><code>[text](./path/to/content/)</code></li>
<li><code>[text.ext](./path/to/file.ext)</code></li>
<li>reorganized the <a href="https://im.youronly.one/techmagus#how-to-use" title="How To Use">How To Use</a> section</li>
</ul>
</li>
</ul>
<h2 id="steps">Steps</h2>
<ol>
<li>
<p>Create a file called <code>render-link.html</code> in this directory <code>/layouts/_default/_markup/</code></p>
</li>
<li>
<p>Add the code below:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span><span class="lnt">20
</span><span class="lnt">21
</span><span class="lnt">22
</span><span class="lnt">23
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-go-html-template" data-lang="go-html-template"><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$baseurl</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">urls</span><span class="na">.Parse</span><span class="w"> </span><span class="nx">site</span><span class="na">.BaseURL</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$url</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">urls</span><span class="na">.Parse</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$getpage</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">site</span><span class="na">.GetPage</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$internal</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">lt</span><span class="w"> </span><span class="o">(</span><span class="k">len</span><span class="w"> </span><span class="nx">$url</span><span class="na">.Host</span><span class="o">)</span><span class="w"> </span><span class="nx">1</span><span class="w"> </span><span class="cp">-}}</span> <span class="cm">{{/* NOTE: internal links will always have an empty $url.Host */}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">$url</span><span class="na">.Fragment</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="cp">-}}{{</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">printf</span><span class="w"> </span><span class="s">"#%s"</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="cp">}}{{-</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">""</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="nx">$internal</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">(</span><span class="nx">strings</span><span class="na">.HasPrefix</span><span class="w"> </span><span class="nx">$url</span><span class="na">.Path</span><span class="w"> </span><span class="s">"./"</span><span class="o">)</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">    <span class="cm">{{/* NOTE: for links starting with ./ */}}</span>
</span></span><span class="line"><span class="cl">    <span class="cp">{{-</span><span class="w"> </span><span class="nx">$urltrimmed</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">strings</span><span class="na">.TrimPrefix</span><span class="w"> </span><span class="s">"./"</span><span class="w"> </span><span class="nx">$url</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">    <span class="cp">{{-</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">printf</span><span class="w"> </span><span class="s">"%s://%s/%s%s"</span><span class="w"> </span><span class="nx">$baseurl</span><span class="na">.Scheme</span><span class="w"> </span><span class="nx">$baseurl</span><span class="na">.Host</span><span class="w"> </span><span class="nx">$urltrimmed</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">    <span class="cm">{{/* NOTE: for internal links */}}</span>
</span></span><span class="line"><span class="cl">    <span class="cp">{{-</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">printf</span><span class="w"> </span><span class="s">"%s%s"</span><span class="w"> </span><span class="nx">$getpage</span><span class="na">.RelPermalink</span><span class="w"> </span><span class="nx">$fragment</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">  <span class="cp">{{-</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="na">.Destination</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl"><span class="cp">{{-</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">-}}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="nx">$destination</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nx">safeURL</span><span class="w"> </span><span class="cp">}}</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="na">.Title</span><span class="w"> </span><span class="nx">$getpage</span><span class="na">.LinkTitle</span><span class="w"> </span><span class="na">.Text</span><span class="w"> </span><span class="cp">}}</span> <span class="na">title</span><span class="o">=</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="na">.</span><span class="w"> </span><span class="cp">}}</span><span class="s">"</span><span class="cp">{{</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">}}{{</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="nx">$internal</span><span class="w"> </span><span class="cp">}}</span> <span class="na">rel</span><span class="o">=</span><span class="s">"noopener external"</span><span class="cp">{{</span><span class="w"> </span><span class="k">end</span><span class="w"> </span><span class="cp">}}</span><span class="p">></span><span class="cp">{{</span><span class="w"> </span><span class="k">or</span><span class="w"> </span><span class="na">.Text</span><span class="w"> </span><span class="na">.Title</span><span class="w"> </span><span class="nx">$getpage</span><span class="na">.LinkTitle</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="nx">safeHTML</span><span class="w"> </span><span class="cp">}}</span><span class="p"></</span><span class="nt">a</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ol>
<p>That’s it.</p>
<h2 id="how-to-use">How to use</h2>
<h3 id="traditional">Traditional</h3>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">https://example.com/#fragment</span>](<span class="na">https://example.com/#fragment "https://example.com/#fragment"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">direct</span>](<span class="na">https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/ "Title"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">direct with #fragment</span>](<span class="na">https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/#fragment "Title"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">#fragment only</span>](<span class="na">#fragment</span>)
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li><a href="https://example.com/#fragment" title="https://example.com/#fragment" class="icon_external" rel="noopener external">https://example.com/#fragment</a></li>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/" title="Title" rel="noopener external">direct</a></li>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/#fragment" title="Title" rel="noopener external">direct with #fragment</a></li>
<li><a href="https://im.youronly.one/techmagus#fragment" title="#fragment only">#fragment only</a></li>
</ul>
<h3 id="new">New</h3>
<h4 id="special">Special</h4>
<p>The <code>[text](./path/to/content/)</code> format is useful when you want to create a link to another part of your website, under the same (sub)-domain but not part of the current <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span> project. This format will not generate an external link icon if the <a href="https://im.youronly.one/techmagus/codebits/hugo/hugo-render-link/how-to-add-link-icons-hugo-markdown-links/" title="How-To add link icons in Hugo markdown links">How-To add link icons in Hugo markdown links</a> is also installed.</p>
<p>The <code>[text.ext](./path/to/file.ext)</code> is useful for download links hosted under the same (sub)-domain, within or external relative to the current <span class="quote_name" translate="no"><bdi lang="en">Hugo</bdi></span> project.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">send a gift</span>](<span class="na">./p/gift/</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">link-icons.7z</span>](<span class="na">./techmagus/dls/link-icons.7z</span>)
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li><a href="https://im.youronly.one/p/gift/" title="send a gift">send a gift</a></li>
<li><a href="https://im.youronly.one/techmagus/dls/link-icons.7z" title="link-icons.7z" class="icon_compressed">link-icons.7z</a></li>
</ul>
<h4 id="without-a-file-extension">Without a file extension</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="k">-</span> [](20181210-browser-wars-iii)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](/20181210-browser-wars-iii)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](20181210-browser-wars-iii "Title")
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](/20181210-browser-wars-iii "Title")
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text</span>](<span class="na">20181210-browser-wars-iii</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text</span>](<span class="na">/20181210-browser-wars-iii</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text</span>](<span class="na">20181210-browser-wars-iii "Title"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text</span>](<span class="na">/20181210-browser-wars-iii "Title"</span>)
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/" title="Browser wars III: Blink vs Gecko Quantum">Browser wars III: Blink vs Gecko Quantum</a></li>
<li><a href="https://im.youronly.one/techmagus/"></a></li>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/" title="Title">Title</a></li>
<li><a href="https://im.youronly.one/techmagus/" title="Title">Title</a></li>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/" title="Browser wars III: Blink vs Gecko Quantum">Text</a></li>
<li><a href="https://im.youronly.one/techmagus/" title="Text">Text</a></li>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/" title="Title">Text</a></li>
<li><a href="https://im.youronly.one/techmagus/" title="Title">Text</a></li>
</ul>
<h4 id="with-file-extension">With file extension</h4>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="k">-</span> [](20181210-browser-wars-iii.md#fragment)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](/20181210-browser-wars-iii.md#fragment)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](20181210-browser-wars-iii.md#fragment "Title")
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](/20181210-browser-wars-iii.md#fragment "Title")
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text#fragment</span>](<span class="na">20181210-browser-wars-iii.md#fragment</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text#fragment</span>](<span class="na">/20181210-browser-wars-iii.md#fragment</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text#fragment</span>](<span class="na">20181210-browser-wars-iii.md#fragment "Title"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text#fragment</span>](<span class="na">/20181210-browser-wars-iii.md#fragment "Title"</span>)
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/#fragment" title="Browser wars III: Blink vs Gecko Quantum">Browser wars III: Blink vs Gecko Quantum</a></li>
<li><a href="https://im.youronly.one/techmagus#fragment"></a></li>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/#fragment" title="Title">Title</a></li>
<li><a href="https://im.youronly.one/techmagus#fragment" title="Title">Title</a></li>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/#fragment" title="Browser wars III: Blink vs Gecko Quantum">Text#fragment</a></li>
<li><a href="https://im.youronly.one/techmagus#fragment" title="Text#fragment">Text#fragment</a></li>
<li><a href="https://im.youronly.one/techmagus/browser-wars-3-blink-gecko-2018344/#fragment" title="Title">Text#fragment</a></li>
<li><a href="https://im.youronly.one/techmagus#fragment" title="Title">Text#fragment</a></li>
</ul>
<h3 id="not-supported">Not supported</h3>
<p>Internal linking without a file extension and with a <code>#fragment</code> produces a wrong link.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="k">-</span> [](20181210-browser-wars-iii#fragment)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](/20181210-browser-wars-iii#fragment)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](20181210-browser-wars-iii#fragment "Title")
</span></span><span class="line"><span class="cl"><span class="k">-</span> [](/20181210-browser-wars-iii#fragment "Title")
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text#fragment</span>](<span class="na">20181210-browser-wars-iii#fragment</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text#fragment</span>](<span class="na">/20181210-browser-wars-iii#fragment</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text#fragment</span>](<span class="na">20181210-browser-wars-iii#fragment "Title"</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">Text#fragment</span>](<span class="na">/20181210-browser-wars-iii#fragment "Title"</span>)
</span></span></code></pre></td></tr></table>
</div>
</div><p>Also take note of the following formats.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-markdown" data-lang="markdown"><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">link-icons.7z</span>](<span class="na">/dls/link-icons.7z</span>)
</span></span><span class="line"><span class="cl"><span class="k">-</span> [<span class="nt">link-icons.7z</span>](<span class="na">../../dls/link-icons.7z</span>)
</span></span></code></pre></td></tr></table>
</div>
</div><p>Instead of the above, use <code>[text](./path/to/file.ext)</code> like so <code>[link-icons.7z](./techmagus/dls/link-icons.7z)</code> will render as: <a href="https://im.youronly.one/techmagus/dls/link-icons.7z" title="link-icons.7z" class="icon_compressed">link-icons.7z</a></p>
<h2 id="improve-it">Improve it</h2>
<p>Feel free to improve the code above and share back to the community. Please provide your website and name so you will be properly credited.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite>How To Customize Markdown Links in Hugo</cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">Creative Commons Attribution-ShareAlike 4.0 International</a>.</small></p></footer>
    </div></div>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a href="https://github.com/gohugoio/hugo/releases/tag/v0.62.0" title="Hugo v0.62.0" class="icon_external" rel="noopener external">Hugo v0.62.0</a> <a href="#fnref:1" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
<li id="fn:2">
<p><a href="https://gohugo.io/templates/render-hooks/" title="Hugo: Markdown Render Hooks" class="icon_external" rel="noopener external">Hugo: Markdown Render Hooks</a> <a href="#fnref:2" class="footnote-backref" role="doc-backlink">↩︎</a></p>
</li>
</ol>
</div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="hugo" label="Hugo" scheme="https://im.youronly.one/techmagus/tag/hugo/"/><published>2022-05-20T11:24:27Z</published></entry><entry><title>Why you should verify your accounts through Keybase</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/verify-account-keybase-2020161/"/><id>https://im.youronly.one/techmagus/verify-account-keybase-2020161/</id><updated>2020-06-08T16:11:48Z</updated><summary type="html"><![CDATA[<p>Once again congratulations on <a href="https://im.youronly.one/techmagus/create-keybase-2020160/" title="Creating a Keybase account">creating a Keybase account</a>. You have joined a growing number of people worldwide who have taken their privacy and security to the next level.</p>
<p>Keybase offers a lot of features, there is end-to-end encrypted Chat, a free 250 GB File storage, a signed hosting, and the ability to easily sign any text, images, and the usual document files. However, there is one feature usually ignored and this feature was one of the hottest when Keybase first sent invites to testers. That is what I will guide you through today.</p>]]></summary><content type="html"><![CDATA[<img src="https://2.bp.blogspot.com/-ZixU71JAIVE/Xt5h_ntdKjI/AAAAAAAAiqM/iPFlUGoSssAIkij8kp3Mx7F7EfBQruX4gCLcBGAsYHQ/s1600/privacy%2Band%2Bencryption.jpg" /><p>Once again congratulations on <a href="https://im.youronly.one/techmagus/create-keybase-2020160/" title="Creating a Keybase account">creating a Keybase account</a>. You have joined a growing number of people worldwide who have taken their privacy and security to the next level.</p>
<p>Keybase offers a lot of features, there is end-to-end encrypted Chat, a free 250 GB File storage, a signed hosting, and the ability to easily sign any text, images, and the usual document files. However, there is one feature usually ignored and this feature was one of the hottest when Keybase first sent invites to testers. That is what I will guide you through today.</p>
<h2 id="what-is-a-keybase-identity">What is a Keybase Identity?</h2>
<p>A Keybase identity is a secure online representation of someone (a person) or some entity (an organisation). It lists all the verified online assets (social network accounts, domain names, microblog accounts) of the owner of the Keybase account.</p>
<p>By design, it is near impossible to gain an unauthorised access to any Keybase account without an active “device” (see <a href="https://im.youronly.one/techmagus/create-keybase-2020160/" title="Creating a Keybase account">our previous post</a>). This generally give us the assurance that whoever is updating a particular Keybase account is the actual owner.</p>
<p>However, a bad element can simply create their own Keybase account to impersonate someone. This was solved in two ways by Keybase. The first is by adding third-party identities; and the second is by being followed by other verified Keybase users.</p>
<h2 id="what-is-a-third-party-identity">What is a “third-party identity”?</h2>
<p>A third-party identity is an account well-known to be under the control of the Keybase account owner. This could be a Twitter account, a domain name, a Mastodon account, or any of the different services supported by Keybase.</p>
<p>By adding multiple third-party identities, a Keybase account’s trust factor—if we can call it that—increases. An impersonator will not be able to add the official Twitter account of their target under their fake Keybase account. They can add their own fake Twitter account or if they successfully gained unauthorised access to the official account. It becomes harder for an impersonator to establish trust to their fake Keybase account when the official one also added a well-known Mastodon account or the domain names he or she owns.</p>
<p>It is impossible for a fake Keybase account to acquire the same level of trust the official account have by that point. Check <a href="https://keybase.io/yukino" rel="me noopener external">my Keybase account here</a> and count how many third-party identities are listed. An impersonator will need to have access to all of those social media accounts and domain names before they can add it to their fake Keybase account. Unless they put a gun on my head, they will not be able to do it (especially since I also use two-factor authentication in those accounts).</p>
<h3 id="how-to-add-a-third-party-identity">How to add a third-party identity?</h3>
<p>It is quite simple, follow these steps.</p>
<ol class="custom_liststyle rectangle-list">
  <li>Launch Keybase and go to your profile</li>
    <aside class="figure_box">
      <div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-0AeT0t8hffU/Xt43dCwHIEI/AAAAAAAAioA/yYpIG84cKbggeAYzBmNL-Y3bLk-zaX-CwCPcBGAYYCw/s1600/Screenshot_20200608-121438.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://2.bp.blogspot.com/-0AeT0t8hffU/Xt43dCwHIEI/AAAAAAAAioA/yYpIG84cKbggeAYzBmNL-Y3bLk-zaX-CwCPcBGAYYCw/s320/Screenshot_20200608-121438.webp" width="161" height="320" data-original-width="807" data-original-height="1600" /></a></div>
    </aside>
  <li>Click/tap "Prove your Twitter"</li>
  <li>Enter your Twitter username</li>
    <aside class="figure_box">
      <div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-P4vGeYhPW_g/Xt5MLCJE07I/AAAAAAAAio0/ELmDay5yrGUMjT2kbT5_yqohw90EdFUkwCPcBGAYYCw/s1600/Screenshot_20200608-121742.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://4.bp.blogspot.com/-P4vGeYhPW_g/Xt5MLCJE07I/AAAAAAAAio0/ELmDay5yrGUMjT2kbT5_yqohw90EdFUkwCPcBGAYYCw/s320/Screenshot_20200608-121742.webp" width="320" height="204" data-original-width="1080" data-original-height="688" /></a></div>
    </aside>
  <li>Copy the text shown <b>exactly</b> as it appears and tweet it; or just click the "Tweet it now" button</li>
    <aside class="figure_box">
      <div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-xNDa0vUdY6c/Xt44OGzxVBI/AAAAAAAAioM/f5nrRwD0zEATWTBxhohnAAXvmswe_GDQwCPcBGAYYCw/s1600/Screenshot_20200608-121540.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://1.bp.blogspot.com/-xNDa0vUdY6c/Xt44OGzxVBI/AAAAAAAAioM/f5nrRwD0zEATWTBxhohnAAXvmswe_GDQwCPcBGAYYCw/s320/Screenshot_20200608-121540.webp" width="320" height="295" data-original-width="1080" data-original-height="996" /></a></div>
    </aside>
  <li>After tweeting, go back to Keybase if you were not redirected, and click the "Reload profile" button</li>
    <aside class="figure_box">
      <div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-Ssg29KqR85k/Xt5Lu5vxmNI/AAAAAAAAios/r4u6NisKtq0rM3oLt9Utn6R5Qsf_QHqDACPcBGAYYCw/s1600/Screenshot_20200608-121640.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://3.bp.blogspot.com/-Ssg29KqR85k/Xt5Lu5vxmNI/AAAAAAAAios/r4u6NisKtq0rM3oLt9Utn6R5Qsf_QHqDACPcBGAYYCw/s320/Screenshot_20200608-121640.webp" width="320" height="204" data-original-width="1080" data-original-height="690" /></a></div>
    </aside>
  <li>Your Keybase profile should now show your Twitter as a verified third-party identity</li>
    <aside class="figure_box">
      <div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-kyK-jcfmTH0/Xt5L45qgaOI/AAAAAAAAios/fzLKOmSiX7sibXgHNrjP84RF_EVNw3sFwCPcBGAYYCw/s1600/Screenshot_20200608-121648.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://1.bp.blogspot.com/-kyK-jcfmTH0/Xt5L45qgaOI/AAAAAAAAios/fzLKOmSiX7sibXgHNrjP84RF_EVNw3sFwCPcBGAYYCw/s320/Screenshot_20200608-121648.webp" width="160" height="320" data-original-width="802" data-original-height="1600" /></a></div>
    </aside>
</ol>
<p>See the verication tweet live.</p>
<figure class="quote_box qbs_generic qbc_twitter">
  <blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">Verifying myself: I am verses on <a href="https://t.co/nSnqrCPeC2">https://t.co/nSnqrCPeC2</a>. AHx5mSJ2eldtshqT1i1Q47cZJQpJeysDwFEJ / <a href="https://t.co/cMMWwDxrsy">https://t.co/cMMWwDxrsy</a>— Verses.Space (@VersesSpace) <a href="https://twitter.com/VersesSpace/status/1269845611622236160?ref_src=twsrc%5Etfw">June 8, 2020</a></blockquote> 
</figure>
<figure id="blogspot_gallery" class="figure_box">
  <div class="separator">
    <div class="inline_block txt_right txt_middle" style="width: 48%; max-width: 48%;">
      <a href="https://4.bp.blogspot.com/-P4vGeYhPW_g/Xt5MLCJE07I/AAAAAAAAio0/ELmDay5yrGUMjT2kbT5_yqohw90EdFUkwCPcBGAYYCw/s1600/Screenshot_20200608-121742.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://4.bp.blogspot.com/-P4vGeYhPW_g/Xt5MLCJE07I/AAAAAAAAio0/ELmDay5yrGUMjT2kbT5_yqohw90EdFUkwCPcBGAYYCw/s320/Screenshot_20200608-121742.webp" width="320" height="204" data-original-width="1080" data-original-height="688" /></a>
    </div>
    <div class="inline_block txt_left txt_middle" style="width: 48%; max-width: 48%;">
      <a href="https://4.bp.blogspot.com/-ZIDRqIxkQ8A/Xt5MLErnrnI/AAAAAAAAio0/lk4YjsFT3VUV_H0ZsqJCtfU6VINeMDZ_QCPcBGAYYCw/s1600/Screenshot_20200608-121814.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://4.bp.blogspot.com/-ZIDRqIxkQ8A/Xt5MLErnrnI/AAAAAAAAio0/lk4YjsFT3VUV_H0ZsqJCtfU6VINeMDZ_QCPcBGAYYCw/s320/Screenshot_20200608-121814.webp" width="320" height="309" data-original-width="1080" data-original-height="1044" /></a>
    </div>
  </div>
  <div class="separator">
    <div class="inline_block txt_right txt_middle" style="width: 48%; max-width: 48%;">
      <a href="https://4.bp.blogspot.com/-qANzgRqWJo8/Xt5MLCe-e3I/AAAAAAAAio0/DKBfp9uqsqoNC0NCGXfI0-WvhftX7oY6ACPcBGAYYCw/s1600/Screenshot_20200608-122525.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://4.bp.blogspot.com/-qANzgRqWJo8/Xt5MLCe-e3I/AAAAAAAAio0/DKBfp9uqsqoNC0NCGXfI0-WvhftX7oY6ACPcBGAYYCw/s320/Screenshot_20200608-122525.webp" width="320" height="200" data-original-width="1080" data-original-height="674" /></a>
    </div>
   <div class="inline_block txt_left txt_middle" style="width: 48%; max-width: 48%;">
      <a href="https://1.bp.blogspot.com/-DZXlLb1PAt4/Xt5NEw4D2pI/AAAAAAAAipE/ocNkBHfwZ78fYf2DXzCc7adG-JlxEUSPACPcBGAYYCw/s1600/Screenshot_20200608-123407.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://1.bp.blogspot.com/-DZXlLb1PAt4/Xt5NEw4D2pI/AAAAAAAAipE/ocNkBHfwZ78fYf2DXzCc7adG-JlxEUSPACPcBGAYYCw/s320/Screenshot_20200608-123407.webp" width="161" height="320" data-original-width="804" data-original-height="1600" /></a>
   </div>
  </div>
  <div class="separator">
    <div class="inline_block txt_right txt_middle" style="width: 48%; max-width: 48%;">
      <a href="https://2.bp.blogspot.com/-13bWlf_9zn4/Xt5NQXrK5HI/AAAAAAAAipE/PnJGHeRPdrApZJeJ4Z95z15uAu4UPAFhwCPcBGAYYCw/s1600/Screenshot_20200608-123240.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://2.bp.blogspot.com/-13bWlf_9zn4/Xt5NQXrK5HI/AAAAAAAAipE/PnJGHeRPdrApZJeJ4Z95z15uAu4UPAFhwCPcBGAYYCw/s320/Screenshot_20200608-123240.webp" width="162" height="320" data-original-width="809" data-original-height="1600" /></a>
    </div>
    <div class="inline_block txt_left txt_middle" style="width: 48%; max-width: 48%;">
      <a href="https://3.bp.blogspot.com/-_MQfRpd33go/Xt5NQV6nXPI/AAAAAAAAipE/l7nEZpRnL7sRab9-pHqMnepA2A7WeIMSwCPcBGAYYCw/s1600/Screenshot_20200608-123329.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://3.bp.blogspot.com/-_MQfRpd33go/Xt5NQV6nXPI/AAAAAAAAipE/l7nEZpRnL7sRab9-pHqMnepA2A7WeIMSwCPcBGAYYCw/s320/Screenshot_20200608-123329.webp" width="171" height="320" data-original-width="853" data-original-height="1600" /></a>
    </div>
  </div>
  <div class="separator">
    <div class="inline_block txt_right txt_middle" style="width: 48%; max-width: 48%;">
      <a href="https://1.bp.blogspot.com/-aGY2Cph_4Gk/Xt5NQTf5clI/AAAAAAAAipE/VtPUG6rqFbMRVXG1d8C3Fu7rep9EQ_2JwCPcBGAYYCw/s1600/Screenshot_20200608-123348.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://1.bp.blogspot.com/-aGY2Cph_4Gk/Xt5NQTf5clI/AAAAAAAAipE/VtPUG6rqFbMRVXG1d8C3Fu7rep9EQ_2JwCPcBGAYYCw/s320/Screenshot_20200608-123348.webp" width="161" height="320" data-original-width="806" data-original-height="1600" /></a>
    </div>
    <div class="inline_block txt_left txt_middle" style="width: 48%; max-width: 48%;">
      <a href="https://4.bp.blogspot.com/-0eJlnsR9Uk0/Xt5NQQ6bgLI/AAAAAAAAipE/hbloIHNJvXQ9P5gdM0BOEfT-JjHqVY1oACPcBGAYYCw/s1600/Screenshot_20200608-123407.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://4.bp.blogspot.com/-0eJlnsR9Uk0/Xt5NQQ6bgLI/AAAAAAAAipE/hbloIHNJvXQ9P5gdM0BOEfT-JjHqVY1oACPcBGAYYCw/s320/Screenshot_20200608-123407.webp" width="161" height="320" data-original-width="804" data-original-height="1600" /></a>
    </div>
  </div>
</figure>
<p>Repeat the process for every third-party account you have which is supported by Keybase. If a third-party service is a shared account, for example domain names or corporate microblogging accounts, it is possible to have multiple Keybase accounts verified. Check the Mastodon account for the <a href="https://verses.space" rel="me noopener external">Kolverse Worldbuilding and Writing Project</a>, there are two Keybase accounts which verified ownership of it: <a href="https://writing.exchange/@VersesSpace" rel="me noopener external">@VersesSpace@writing.exchange</a>.</p>
<p>Let’s say your Twitter account was hacked or you no longer have access to it. It is imperative to revoke it from your Keybase account. Simple go back to your Keybase profile, click your Twitter account, and revoke it. What it means is you are officially declaring that Twitter account to be no longer yours and any posts from it did not come from you.</p>
<p>It is true there could be a delay to the timestamp when you disavowed your third-party identity to when it was actually compromised, however, remember that by the time we discover our account was compromised it is always after the fact. There is nothing that can be done in that regard other than to revoke it in your Keybase account so you have an official timestamp for record purposes (especially if later you are accused of the content posted by your compromised third-party identity).</p>
<h2 id="why-is-being-followed-important">Why is being followed important?</h2>
<p>When other Keybase users follows your Keybase account, they are automatically signing your profile or Keybase identity. A follower is virtually saying “I verify this account is who s/he claims to be and the third-party identities s/he added as of this date and time I also verified to be owned by this Keybase user”.</p>
<p>Whenever a Keybase user changed anything in their third-part identities, their followers can optionally verify those changes by visiting the account. If they do, they are signing it effectively saying “I have checked the changes in this account’s third-party identities and have confirmed it as valid”. The more Keybase users who follows and/or verify the changes, the higher the trust factor.</p>
<aside class="figure_box">
  <div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-zNXsizQiavo/Xt5N58ycMXI/AAAAAAAAipc/i3tWKzfgxZAEuC28FUK0QUxfeUsSeEt2QCPcBGAYYCw/s1600/Screenshot_20200608-124514.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://3.bp.blogspot.com/-zNXsizQiavo/Xt5N58ycMXI/AAAAAAAAipc/i3tWKzfgxZAEuC28FUK0QUxfeUsSeEt2QCPcBGAYYCw/s320/Screenshot_20200608-124514.webp" width="161" height="320" data-original-width="803" data-original-height="1600" /></a></div>
</aside>
<p>Getting your family & friends to follow your Keybase account and verifying changes in your third-party identities makes it very solid that your Keybase account is actually yours and those third-party identities are also actually yours and have full control. An impersonator or fake account will not be able to build this kind of trust level.</p>
<p>Again, what if a third-party identity was compromised? Revoke it. Your Keybase followers can then visit your profile and confirm the change. By doing so, they are signing or adding their Keybase signature into your revocation update. We can probably say they effectively stand as “witnesses” when you revoked your compromise third-party identity.</p>
<aside class="figure_box">
  <div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-tJMP8yg92Mg/Xt5OCpdfffI/AAAAAAAAipc/1wq4R4Cw1uURxMoJg2_vp2NQuGydTpJYgCPcBGAYYCw/s1600/Screenshot_20200608-124542.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://4.bp.blogspot.com/-tJMP8yg92Mg/Xt5OCpdfffI/AAAAAAAAipc/1wq4R4Cw1uURxMoJg2_vp2NQuGydTpJYgCPcBGAYYCw/s320/Screenshot_20200608-124542.webp" width="162" height="320" data-original-width="808" data-original-height="1600" /></a></div>
</aside>
<p>There you go. Add all those third-party identities into your Keybase account as a “verified identity” and get your family, friends, and followers to verify those changes. The higher the trust factor of your Keybase account, the stronger and more secure your digital identity becomes.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://www.flickr.com/photos/136770128@N07/41587398905" rel="dct:title noopener external nofollow">Privacy and Encryption</a></cite> by <a href="https://www.flickr.com/photos/136770128@N07/" rel="dct:creator noopener external nofollow">Richard Patterson</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by/2.0/" rel="license noopener external">CC BY 2.0</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="security" label="Security" scheme="https://im.youronly.one/techmagus/tag/security/"/><published>2020-06-08T16:11:48Z</published></entry><entry><title>How-To create a Keybase account</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/create-keybase-2020160/"/><id>https://im.youronly.one/techmagus/create-keybase-2020160/</id><updated>2020-06-08T00:53:42Z</updated><summary type="html"><![CDATA[<p>Freedom, anonymity, privacy, & security, are the most important part of our lives, and this is especially true today as we move faster into the digital world. We need to secure our online communications to prevent anyone from listening. We need to prove the identity of the other person we are working with. We need an easy way to use encryption to keep private data from being seen by unauthorised individuals.</p>
<p>There are various software, apps, services, available which offers one, two, or maybe three features mentioned. However, there is one which is largely ignored, that is Keybase.</p>]]></summary><content type="html"><![CDATA[<img src="https://4.bp.blogspot.com/-C2wlSllD_lI/Xt2Kldt_6UI/AAAAAAAAij0/OR-gnn9XeegyhNqAylkX2tFg6xdCBbXtQCPcBGAYYCw/s1600/Keybase_logo_official.png" /><p>Freedom, anonymity, privacy, & security, are the most important part of our lives, and this is especially true today as we move faster into the digital world. We need to secure our online communications to prevent anyone from listening. We need to prove the identity of the other person we are working with. We need an easy way to use encryption to keep private data from being seen by unauthorised individuals.</p>
<p>There are various software, apps, services, available which offers one, two, or maybe three features mentioned. However, there is one which is largely ignored, that is Keybase.</p>
<h2 id="what-is-keybase">What is Keybase?</h2>
<p>To put it simply, <b>Keybase</b> is a tool which makes it easier for regular users to do encryption and signing. <q cite="https://book.keybase.io">Private stuff stays private. Accounts are secure against spoofing, phishing, and scamming.</q> It also helps in establishing which online accounts are officially owned by a Keybase user, effectively nullifying online attacks through impersonation.</p>
<figure class="quote_box qbs_generic qbc_lime">
  <ul class="custom_liststyle checkmark-heavy list-green">
    <li><b>Accounts</b>: Keybase accounts are trustworthy and secure.</li>
    <li><b>Chat</b>: Chat with friends and family. Share photos, videos, and top secret documents.</li>
    <li><b>Files</b>: Individuals get 250 GB while Teams get 100 GB of storage, both free permanently.
      Anything you add to Keybase Files is automatically end-to-end encrypted and signed by you. When a file is signed by you, your private key is used in the encryption. When it's decrypted, your recipient knows for certain it came from you. Rest assured, they won’t be able to see or guess your private key.
    </li>
    <li><b>Teams</b>: Use Keybase Chat, Files, and Git with groups of people, all end-to-end encrypted.
      What you and your team share, store, and commit stays between you and your team.
    </li>
    <li><b>Sites</b>: Build and host a simple website.</li>
    <li><b>Wallet</b>: Send, receive, and exchange funds.</li>
    <li><b>Git</b>: Create and share private repositories.</li>
    <li><b>Tools</b>: Encrypt, decrypt, sign, and verify messages and files.</li>
    <li><b>Privacy</b>
      Only your intended recipients can access what you share and store on Keybase. No one else can access your data—not even Keybase, which also means we can't and won't ever sell it.
    </li>
    <li><b>Security</b>
      Your Keybase account is protected by public-key cryptography. Your devices are cryptographically linked to your account, ensuring that only you can access it.
      Proofs and following help ensure that you’re really you on Keybase. They’re backed by public-key cryptography.
    </li>
  </ul>
  <figcaption class="attribution_name txt_right">
    <cite><a href="https://book.keybase.io">Keybase Book</a></cite>
  </figcaption>
</figure>
<p>In other words, every person who takes their freedom, anonymity, privacy, & security very seriously must have a Keybase account.</p>
<h2 id="lets-get-you-started-with-keybase">Let’s get you started with Keybase</h2>
<p>The first thing to understand is registration through a web browser is not possible by design and for security reasons. New users must download Keybase which is available in GNU/Linux, Android, iOS, and Windows: <a href="https://keybase.io/download" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin">download Keybase here</a>.</p>
<p><small>* We’re using Keybase for Android below, the process is the same regardless of platform.</small></p>
<ol class="custom_liststyle rectangle-list">
  <li>Launch <b>Keybase</b></li>
  <li>Click the "Create an account" button</li>
  <li>Pick a username. <i>Mandatory</i>; <i>public</i>; <i>permanent</i></li>
  <li>Name this device. <i>Mandatory</i>; <i>public</i>; <i>permanent</i>
    <aside class="figure_box">
      <div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/--wcm_ZPqg84/Xt2OM4vGQuI/AAAAAAAAikI/uFgODp1ss-063S4AEO7q0JoMwsXtnufbQCPcBGAsYHg/s1600/Screenshot_20200607-194810.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://1.bp.blogspot.com/--wcm_ZPqg84/Xt2OM4vGQuI/AAAAAAAAikI/uFgODp1ss-063S4AEO7q0JoMwsXtnufbQCPcBGAsYHg/s320/Screenshot_20200607-194810.webp" width="320" height="180" data-original-width="1080" data-original-height="606" /></a></div>
    </aside>
    This can be any name/label useful for you to identify which device (laptop, desktop, server, phone) you logged-in your Keybase account.
  </li>
  <li>Phone number. <i>Optional</i>; <i>private</i>
    Used to help other people find your Keybase account.
  </li>
  <li>Email address. <i>Optional</i>; <i>private</i>
    Used to help other people find your Keybase account.
  </li>
</ol>
<p>Congratulations! You have successfully created a Keybase account and have taken your first step in establishing a way for others to prove your online identity beyond any reasonable doubt as well as to chat, share files, collaborate with your team, with a peace of mind everything is automatically end-to-end encrypted and signed.</p>
<h2 id="create-a-paper-key-for-recovery">Create a “Paper Key” for recovery</h2>
<p>Establishing a way for others to prove our online identity, chat with family & friends, and collaborate with teams, would be practically useless if we later can not login our account. In Keybase, each [re]-installation is considered a “new device” regardless if it was exactly the same device used.</p>
<h3 id="what-is-a-device">What is a “device”?</h3>
<p>A “device” in Keybase is simply an access point or a “device” where an account is logged-in.</p>
<p>Registering each devices creates another security layer, if a phone was stolen one can simply “Revoke” the device. If for some reason the account was not automatically logged-out, any actions made from the “Revoked” device is automatically invalid.</p>
<p>Let’s create a new <i>paper key</i>.</p>
<ol class="custom_liststyle rectangle-list">
  <li>Go to the "Hamburger Menu" (lower-right corner in Android and iOS)</li>
  <aside class="figure_box">
    <div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-EuzEmSjjyUU/Xt2XlqBpM1I/AAAAAAAAilg/HGAtBFhf5McY3HpxLR3DbxBdLqR85eUcgCPcBGAsYHg/s1600/Screenshot_20200607-195010.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://2.bp.blogspot.com/-EuzEmSjjyUU/Xt2XlqBpM1I/AAAAAAAAilg/HGAtBFhf5McY3HpxLR3DbxBdLqR85eUcgCPcBGAsYHg/s320/Screenshot_20200607-195010.webp" width="161" height="320" data-original-width="805" data-original-height="1600" /></a></div>
  </aside>
  <li>Click "Devices"</li>
  <li>Click "Add a device or paper key"
    <aside class="figure_box">
      <div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-rB29I-IQbx8/Xt2X10qR0ZI/AAAAAAAAilo/iiWCnaSXyZI-p498a3onNO-9YVVlYrUTACPcBGAsYHg/s1600/Screenshot_20200607-195020.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://3.bp.blogspot.com/-rB29I-IQbx8/Xt2X10qR0ZI/AAAAAAAAilo/iiWCnaSXyZI-p498a3onNO-9YVVlYrUTACPcBGAsYHg/s320/Screenshot_20200607-195020.webp" width="320" height="210" data-original-width="1080" data-original-height="708" /></a></div>
    </aside>
  </li>
  <li>Click "Create a paper key"
    <aside class="figure_box">
      <div class="separator" style="clear: both; text-align: center;"><a href="https://2.bp.blogspot.com/-5K6Y6iD0iAw/Xt2YD2lTTLI/AAAAAAAAils/hxYxFPWBhs0eeI_HNrmvNgagYdeDksYngCPcBGAsYHg/s1600/Screenshot_20200607-195034.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://2.bp.blogspot.com/-5K6Y6iD0iAw/Xt2YD2lTTLI/AAAAAAAAils/hxYxFPWBhs0eeI_HNrmvNgagYdeDksYngCPcBGAsYHg/s320/Screenshot_20200607-195034.webp" width="249" height="320" data-original-width="1080" data-original-height="1389" /></a></div>
    </aside>
  </li>
  <li>Wait until the random words (a.k.a. <i>paper key</i>) are generated
    Write your paper key down and place it somewhere safe and fully secure. This can be in your bank stash where only you can access; or in a 2048-bit encrypted file which only you knows how to decrypt and where the encrypted file is located.
    <!-- change the class to warning_box -->
    <figure class="quote_box qbs_generic qbc_red">
      <b>Never ever</b> leave it where anyone can easily find it. If they know what it is for, then they know how valuable it is.
    </figure>
  </li>
  <aside class="figure_box">
    <div class="separator" style="clear: both; text-align: center;"><a href="https://3.bp.blogspot.com/-tldHujw4kw8/Xt2YO7i9QiI/AAAAAAAAilw/K5FfI9mUm7oYIjsux9MABgGEiFgNZQrtQCPcBGAsYHg/s1600/Screenshot_20200607-195111.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://3.bp.blogspot.com/-tldHujw4kw8/Xt2YO7i9QiI/AAAAAAAAilw/K5FfI9mUm7oYIjsux9MABgGEiFgNZQrtQCPcBGAsYHg/s320/Screenshot_20200607-195111.webp" width="320" height="273" data-original-width="1080" data-original-height="922" /></a></div>
  </aside>
  <li>Tap the switch button "Yes, I wrote this down"</li>
  <li>Click "Done"</li>
</ol>
<h3 id="what-is-a-paper-key-for">What is a “Paper Key” for?</h3>
<p>A Keybase <i>paper key</i> is technically a “device”. It’s main purpose is to give the account owner a way to confirm a “new device” if a registered literal device is not or no longer available.</p>
<p>Many new Keybase users skip this step, uninstalls Keybase, and later can no longer login because they are stuck in the “new device” process. Without an existing device logged-in to Keybase you can not confirm a “new device”. A <i>paper key</i> acts as an “existing device” to approve a “new device”. The used paper key can be optionally revoked and a new one created (a very good practice); or create a new paper key every three months (an even better practice).</p>
<aside class="figure_box">
  <div class="separator" style="clear: both; text-align: center;"><a href="https://4.bp.blogspot.com/-GTED0QyzCAw/Xt2bqGojckI/AAAAAAAAimA/NiYQa2xAV9wV1WFNG2W4ub6PoWWpluaXgCPcBGAsYHg/s1600/Screenshot_20200608-093045.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img loading="lazy" border="0" src="https://4.bp.blogspot.com/-GTED0QyzCAw/Xt2bqGojckI/AAAAAAAAimA/NiYQa2xAV9wV1WFNG2W4ub6PoWWpluaXgCPcBGAsYHg/s320/Screenshot_20200608-093045.webp" width="320" height="253" data-original-width="1080" data-original-height="855" /></a></div>
  <footer class="caption_txt txt_center">
    <small>Revoked paper keys</small>
  </footer>
</aside>
<p>There is another way to recover a Keybase account if a paper key is not available. The catch with this method is your Keybase account will be reset back to start, all confirmed online accounts, domain names, devices, teams, followers, following, will be removed; it is as if you created a new account. The reason behind this is if you no longer have access to any of your “devices” (including your paper keys if you created any), then it is assumed all of your devices were lost and/or compromised.</p>
<p>Welcome to Keybase! Before you start exploring Keybase, noticed how you were not asked to enter a password/passphrase? It is only used if you want to login via a web browser—which is not advisable—and if you prefer to auto-logout when you close the Keybase app (an added security; if you reinstalled Keybase it will be considered a “new device”). We will discuss this another day.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://commons.wikimedia.org/wiki/File:Keybase_logo_official.svg" rel="dct:title noopener external nofollow">Keybase logo</a></cite> by <a href="https://keybase.io" rel="dct:creator noopener external nofollow">Keybase</a> is
                  licensed under <a href="https://github.com/keybase/client/blob/master/LICENSE" rel="license noopener external">BSD 3-Clause 'New' or 'Revised' License</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="security" label="Security" scheme="https://im.youronly.one/techmagus/tag/security/"/><published>2020-06-08T00:53:42Z</published></entry><entry><title>(Updated) Activate and use Baybayin in Gboard</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/activate-baybayin-gboard-2019213/"/><id>https://im.youronly.one/techmagus/activate-baybayin-gboard-2019213/</id><updated>2019-07-31T23:26:20Z</updated><summary type="html">&lt;p>Here is a short guide on how to activate and use Baybayin-Buhid, Baybayin-Hanunoó, Baybayin-Tagalog, and Baybayin-Tagbanwa, using Google’s Gboard app.&lt;/p></summary><content type="html"><![CDATA[<img src="https://1.bp.blogspot.com/-y_Q6Werhn58/XuOQU0Tb4nI/AAAAAAAAivM/ro_fU8XNH00JijIgcz6GfeY6G16Sj_lBgCLcBGAsYHQ/s1600/GBoard-Baybayin_cover-01.png" /><p>Here is a short guide on how to activate and use Baybayin-Buhid, Baybayin-Hanunoó, Baybayin-Tagalog, and Baybayin-Tagbanwa, using Google’s Gboard app.</p>
<h2 id="how-to-install">How to Install</h2>
<ol>
<li>
<p>Download the Gboard app from the <a href="https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin&hl=en" title="Google Play Store" class="icon_external" rel="noopener external">Google Play Store</a> <del datetime="2019-08-01T07:52:50+0800">and Apple App Store</del> (not <del datetime="2021-09-27T05:00:00+0800">yet</del> available for iOS).</p>
</li>
<li>
<p>Go to the Gboard settings</p>
<ul>
<li>In Android 9 Pie: Settings > System > Languages & Input > Virtual keyboard > Gboard</li>
<li>In Android 8 Oreo: Settings > Languages & Input > Keyboard > Gboard</li>
</ul>
</li>
<li>
<p>Go to Languages</p>
</li>
<li>
<p>Tap the “ADD KEYBOARD” button at the bottom of the screen</p>
</li>
<li>
<p>In the “Add keyboard” page, choose:</p>
<ul>
<li>“Filipino (Baybayin)” – Baybayin-Tagalog</li>
<li>“Hanunuo” – Baybayin-Hanunoó (Mangyan)</li>
<li>“Buhid” – Baybayin-Buhid (Mangyan)</li>
<li>“Aborlan” – Baybayin-Tagbanwa [thank you to Ki Wakat for informing us]</li>
</ul>
</li>
<li>
<p>Optionally, add:</p>
<ul>
<li>“English (Philippines)”</li>
<li>“Filipino (Latin)”</li>
</ul>
</li>
<li>
<p>Then remove any other keyboard layouts which were automatically added.</p>
</li>
</ol>
<h2 id="not-working-join-the-beta">Not working? Join the Beta</h2>
<p><del datetime="2021-09-27T05:00:00+0800">If you can not find the keyboard layouts mentioned above, one possible reason is your Google Play Store account and/or unit is yet to receive an update push. Until then, joining the beta is the only way.</del></p>
<ol>
<li><del datetime="2021-09-27T05:00:00+0800">Go to the Gboard app <a href="https://play.google.com/store/apps/details?id=com.google.android.inputmethod.latin&hl=en" title="Google Play Store" class="icon_external" rel="noopener external">Google Play Store</a> page</del></li>
<li><del datetime="2021-09-27T05:00:00+0800">Scroll-down and tap “Join the Beta”</del></li>
<li><del datetime="2021-09-27T05:00:00+0800">Wait for a few minutes and reopen the Google Play Store app</del></li>
<li><del datetime="2021-09-27T05:00:00+0800">Then follow again the steps in “<a href="https://im.youronly.one/techmagus#i-how-to-install" title="I. How to Install">I. How to Install</a>"</del></li>
</ol>
<p><del datetime="2019-08-24">Still no Baybayin related keyboard layouts? The last option is for you to download the latest Gboard APK, which is not advisable. But if it is your cup of tea, then <a href="https://gboard.en.aptoide.com/?store_name=jcsesecuneta" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin">download here</a>. <strong>Remember</strong>, it may not be compatible with your phone model!</del></p>
<p><ins datetime="2021-09-27T05:00:00+0800">Baybayin in Gboard is now available for everyone.</ins></p>
<h3 id="ins-datetime2019-09-242019-08-24-updateins"><ins datetime="2019-09-24">2019-08-24 Update</ins></h3>
<p>It was discovered that the Gboard app is automatically disabling the layouts if there are no font support in the system.</p>
<p>For example, manufacturers Samsung and MyPhone deleted the Noto Tagalog font in their Android 7 and Android 8 models but left Noto Buhid, Noto Hanunoó, and Noto Tagbanwa. This is the reason why Samsung and MyPhone users can not see the “Filipino (Baybayin)” Gboard layout.</p>
<p>The best way to test this is to open this article in your favourite mobile browser and check if you can see the following texts.</p>
<ul>
<li>Baybayin-Buhid: <bdi lang="bku-Buhd">ᝀᝁᝂᝃᝄᝅᝆᝇᝈᝉᝊᝋᝌᝍᝎᝏᝐᝑ</bdi></li>
<li>Baybayin-Hanunoó: <bdi lang="hnn-Hano">ᜠᜡᜢᜣᜤᜥᜦᜧᜨᜩᜪᜫᜬᜭᜮᜯᜰᜱ</bdi></li>
<li>Baybayin-Tagalog: <bdi lang="tl-Tglg">ᜃᜄᜅᜆᜇᜈᜉᜊᜋᜌᜎᜏᜀᜁᜂᜐᜑ</bdi></li>
<li>Baybayin-Tagbanwa: <bdi lang="tbw-Tagb">ᝣᝤᝥᝦᝧᝨᝩᝪᝫᝬᝮᝯᝠᝡᝢᝰ</bdi></li>
</ul>
<p>If you can not see one of those, then your mobile phone is missing the appropriate Noto font support for that script. This in turn will automatically disable Gboard support for it. It means it is time to switch to an “Android One” model.</p>
<h2 id="how-to-type-in-baybayin-after-activation">How to type in Baybayin after activation</h2>
<div class="obj_center" style="width: 48%;height: 48%;"><figure class="figure_box txt_center">
      <div><a href="https://1.bp.blogspot.com/-TkqwVveQ7Ng/XuN_HJfV25I/AAAAAAAAivE/CdyjIzSXZosZ1IukmC2WV9B3_6jHTBMnQCPcBGAYYCw/s1600/Gboard-Baybayin_Layouts.jpg" rel="noopener external nofollow">
          <picture><source srcset="https://im.youronly.one/techmagus/Gboard-Baybayin_Layouts_2932442270152846423_hu4051768611129598674.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/Gboard-Baybayin_Layouts_2932442270152846423.jpeg" alt="Gboard 'Change Keyboard' menu" type="image/jpeg" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Gboard</b></cite></p>
        <p><i>‘Change Keyboard’ menu</i></p><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://1.bp.blogspot.com/-TkqwVveQ7Ng/XuN_HJfV25I/AAAAAAAAivE/CdyjIzSXZosZ1IukmC2WV9B3_6jHTBMnQCPcBGAYYCw/s1600/Gboard-Baybayin_Layouts.jpg" rel="dct:title noopener external nofollow">Gboard</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">CC BY-SA 4.0 International</a>.</small></p></figcaption>
    </figure></div>

<ol>
<li>Long-tap the “spacebar” to show the “Change Keyboard” menu; or tap the “world” icon</li>
<li>Switch between the activated keyboard layouts now available (as shown in the above screeeshot)</li>
<li>Type away</li>
</ol>
<div class="obj_center" style="width: 48%;height: 48%;"><figure class="figure_box txt_center">
      <div><a href="https://4.bp.blogspot.com/-2KsIhfyB7tw/XuN_F_jadmI/AAAAAAAAiu4/Ml-oTghjH9caBvjw_XizloNoxam_oOhZACPcBGAYYCw/s1600/GBoard-02-Baybayin-Buhid.png" rel="noopener external">
          <picture><source srcset="https://im.youronly.one/techmagus/GBoard-02-Baybayin-Buhid_6279328500290970991_hu15233807625521654827.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/GBoard-02-Baybayin-Buhid_6279328500290970991.png" alt="Baybayin-Buhid Gboard layout" type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Gboard</b></cite></p>
        <p><i>Baybayin-Buhid layout</i></p><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://4.bp.blogspot.com/-2KsIhfyB7tw/XuN_F_jadmI/AAAAAAAAiu4/Ml-oTghjH9caBvjw_XizloNoxam_oOhZACPcBGAYYCw/s1600/GBoard-02-Baybayin-Buhid.png" rel="dct:title noopener external">Gboard</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">CC BY-SA 4.0 International</a>.</small></p></figcaption>
    </figure></div>

<div class="obj_center" style="width: 48%;height: 48%;"><figure class="figure_box txt_center">
      <div><a href="https://4.bp.blogspot.com/-mczk_wcedP8/XuN_F99hP-I/AAAAAAAAiu8/pi1rY490YGcT9cSPHaGJ2h8qJlS4Bx9iwCPcBGAYYCw/s1600/GBoard-03-Baybayin-Hanunoo%25CC%2581.png" rel="noopener external">
          <picture><source srcset="https://im.youronly.one/techmagus/GBoard-03-Baybayin-Hanunoo%CC%81_13723565212624979055_hu2626712377493441831.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/GBoard-03-Baybayin-Hanunoo%CC%81_13723565212624979055.png" alt="Baybayin-Hanunoó Gboard layout" type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Gboard</b></cite></p>
        <p><i>Baybayin-Hanunoó layout</i></p><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://4.bp.blogspot.com/-mczk_wcedP8/XuN_F99hP-I/AAAAAAAAiu8/pi1rY490YGcT9cSPHaGJ2h8qJlS4Bx9iwCPcBGAYYCw/s1600/GBoard-03-Baybayin-Hanunoo%25CC%2581.png" rel="dct:title noopener external">Gboard</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">CC BY-SA 4.0 International</a>.</small></p></figcaption>
    </figure></div>

<div class="obj_center" style="width: 48%;height: 48%;"><figure class="figure_box txt_center">
      <div><a href="https://3.bp.blogspot.com/-WWyOKOzY8yY/XuN_F4XbfLI/AAAAAAAAivA/oZItaTWCocInCm5rrK7uokgE4aUFR1YsACPcBGAYYCw/s1600/GBoard-04-Baybayin-Tagalog-animated.png" rel="noopener external">
          <picture><source srcset="https://im.youronly.one/techmagus/GBoard-04-Baybayin-Tagalog-animated_15238016249385061666_hu10438260224508294832.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/GBoard-04-Baybayin-Tagalog-animated_15238016249385061666.png" alt="Baybayin-Tagalog Gboard layout" type="image/png" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Gboard</b></cite></p>
        <p><i>Baybayin-Tagalog layout</i></p><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://3.bp.blogspot.com/-WWyOKOzY8yY/XuN_F4XbfLI/AAAAAAAAivA/oZItaTWCocInCm5rrK7uokgE4aUFR1YsACPcBGAYYCw/s1600/GBoard-04-Baybayin-Tagalog-animated.png" rel="dct:title noopener external">Gboard</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">CC BY-SA 4.0 International</a>.</small></p></figcaption>
    </figure></div>

<div class="obj_center" style="width: 48%;height: 48%;"><figure class="figure_box txt_center">
      <div><a href="https://4.bp.blogspot.com/-BxeUYDATzos/XuN_GvSzmFI/AAAAAAAAivA/84s4EAUFgq8pnNLDuevDijSpB_-mJmgVQCPcBGAYYCw/s1600/GBoard-05-Baybayin-Tagbanwa.jpg" rel="noopener external">
          <picture><source srcset="https://im.youronly.one/techmagus/GBoard-05-Baybayin-Tagbanwa_10634869940250255086_hu3431050841622412871.webp" type="image/webp" /><img src="https://im.youronly.one/techmagus/GBoard-05-Baybayin-Tagbanwa_10634869940250255086.jpeg" alt="Baybayin-Tagbanwa Gboard layout" type="image/jpeg" style="max-width: 100%;" loading="lazy" decoding="async" />
          </picture>
          </a></div>
      <figcaption class="attribution_caption txt_center">
        <p><cite><b>Gboard</b></cite></p>
        <p><i>Baybayin-Tagbanwa layout</i></p><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              <cite><a href="https://4.bp.blogspot.com/-BxeUYDATzos/XuN_GvSzmFI/AAAAAAAAivA/84s4EAUFgq8pnNLDuevDijSpB_-mJmgVQCPcBGAYYCw/s1600/GBoard-05-Baybayin-Tagbanwa.jpg" rel="dct:title noopener external">Gboard</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">CC BY-SA 4.0 International</a>.</small></p></figcaption>
    </figure></div>

<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://1.bp.blogspot.com/-y_Q6Werhn58/XuOQU0Tb4nI/AAAAAAAAivM/ro_fU8XNH00JijIgcz6GfeY6G16Sj_lBgCLcBGAsYHQ/s1600/GBoard-Baybayin_cover-01.png" rel="dct:title noopener external">GBoard-Baybayin_cover-01</a></cite> by <a href="https://im.youronly.one/" rel="dct:creator noopener">I’M YourOnly.One</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license noopener external">CC BY-SA 4.0 International</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="android" label="Android" scheme="https://im.youronly.one/techmagus/cat/android/"/><category term="baybayin writing system" label="Baybayin writing system" scheme="https://im.youronly.one/techmagus/tag/baybayin-writing-system/"/><published>2019-07-31T23:26:20Z</published></entry><entry><title>[Video] How-To calibrate the phone compass</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/kb/portables/calibrate-phone-compass/"/><id>https://im.youronly.one/techmagus/kb/portables/calibrate-phone-compass/</id><updated>2011-12-29T07:51:38Z</updated><summary type="html"><![CDATA[<p>Since I got my first ever smartphone, <strong>Samsung <em>Galaxy Y (S5360)</em></strong>, (and Android too) I was having some problems with calibrating phone’s compass.  The compass applications I found in the Android Market instructs users to do a figure-8 wave.  I did all kinds of figure-8 wave and well, nothing.</p>]]></summary><content type="html"><![CDATA[<img src="https://img.youronly.one/publicdomain/compass-travel-background.webp" /><p>Since I got my first ever smartphone, <strong>Samsung <em>Galaxy Y (S5360)</em></strong>, (and Android too) I was having some problems with calibrating phone’s compass.  The compass applications I found in the Android Market instructs users to do a figure-8 wave.  I did all kinds of figure-8 wave and well, nothing.</p>
<p>Until I found this video showing the one figure-8 method I haven’t tried - wrist movement.  It is as simple as that, all I can do is laugh at myself for doing all the silly figure-8 movements I can think of.</p>
<p>Watch the video:<div class="obj_center">
  <figure class="figure_box txt_center" style="width: auto;">
    <div class="responsive_embedframe"><iframe anonymous loading="lazy" id="ytplayer" src="https://www.youtube-nocookie.com/embed/sP3d00Hr14o?modestbranding=1&hl=en-ph" frameborder="0" allow="encrypted-media; fullscreen; picture-in-picture" allowfullscreen></iframe></div>
    <figcaption class="attribution_caption txt_center">
      <p><cite><b>Best Compass Calibration Method (iPhone/G1/etc.)</b></cite></p>
      <p><i>Using this method, you can calibrate electronic compass in a few seconds easily.</i></p>
      <p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
          <small>The work shown above is Copyrighted to <a href="https://www.youtube.com/channel/UCXQ7DjERfEPzSkDJbeN4OgA" rel="dct:creator noopener external nofollow">ecompass3</a>.</small></p>
    </figcaption>
  </figure>
</div>

</p>
<p>It works for all other phones with compass features like iPhone and Symbian based phones.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://www.publicdomainpictures.net/en/view-image.php?image=183890&picture=travel-background" rel="dct:title noopener external nofollow">Travel Background</a></cite> by <a href="https://www.publicdomainpictures.net/en/browse-author.php?a=8245" rel="dct:creator noopener external nofollow">George Hodan</a> is
                  <a href="https://creativecommons.org/publicdomain/mark/1.0/" rel="license noopener external">free of known copyright restrictions</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="videos" label="Videos" scheme="https://im.youronly.one/techmagus/tag/videos/"/><published>2011-12-29T07:51:38Z</published></entry><entry><title>How-To access Google sites and services via IPv6</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/kb/internet/access-google-ipv6/"/><id>https://im.youronly.one/techmagus/kb/internet/access-google-ipv6/</id><updated>2010-09-20T09:53:01Z</updated><summary type="html"><![CDATA[<p>Google, the largest search engine today (and the “Microsoft” of the cyberworld), is slowly deploying <abbr class="popper animate" data-popper="Internet Protocol version 6">IPv6</abbr> across their sites. But even if you are already <a href="https://im.youronly.one/techmagus/kb/internet/ipv6-connect-today/" title="IPv6 Is Not Scary!! Connect to Next-Gen Internet Now">connected to IPv6</a>, you will still not get an IPv6 Google.</p>
<p>Why? Their current IPv6 implementation is currently in its testing phase. All IPv6 access must come from a reliable network that they have to pre-approve, this is the <i>Google over IPv6</i> project.</p>]]></summary><content type="html"><![CDATA[<img src="https://4.bp.blogspot.com/-h6sAKgKjLWA/XrBAaaYaHtI/AAAAAAAAhe8/Rv-FK3as0hICWlYSC2U2JwizFb0q0IKYACLcBGAsYHQ/s1600/ball-63527_1280.jpg" /><p>Google, the largest search engine today (and the “Microsoft” of the cyberworld), is slowly deploying <abbr class="popper animate" data-popper="Internet Protocol version 6">IPv6</abbr> across their sites. But even if you are already <a href="https://im.youronly.one/techmagus/kb/internet/ipv6-connect-today/" title="IPv6 Is Not Scary!! Connect to Next-Gen Internet Now">connected to IPv6</a>, you will still not get an IPv6 Google.</p>
<p>Why? Their current IPv6 implementation is currently in its testing phase. All IPv6 access must come from a reliable network that they have to pre-approve, this is the <i>Google over IPv6</i> project.</p>
<h2 id="how-it-works">How it works</h2>
<figure class="quote_box qbs_generic qbc_lime">
  <div>
    <p>Google over IPv6 uses the IPv4 address of your DNS resolver to determine whether a network is IPv6-capable. If you enable Google over IPv6 for your resolver, IPv6 users of that resolver will receive AAAA records for IPv6-enabled Google services …</p>
    <p>Normally, if a DNS resolver requests an IPv6 address for a Google web site, it will not receive one…</p>
  </div>
  <div class="center"><img src="https://web.archive.org/web/20120524193018/https://www.google.com/intl/en/ipv6/images/howitworks1.png" alt="" /></div>
  <div>
    <p>… but a DNS resolver with Google over IPv6 will receive an IPv6 address, and its users will be able to connect to Google web sites using IPv6.</p>
  </div>
  <div class="center"><img class="center" src="https://web.archive.org/web/20120524193018/https://www.google.com/intl/en/ipv6/images/howitworks2.png" alt="" /></div>
  <figcaption class="attribution_name txt_right">
    <cite><a href="https://www.google.com/intl/en/ipv6/" rel="noopener external nofollow">Google over IPv6</a></cite>
  </figcaption>
</figure>
<p>So unless you are using a <abbr class="popper animate" data-popper="Domain Name Server">DNS</abbr> with <i>Google over IPv6</i> enabled, the only IPv6 Google website you will be able to use is <a href="https://ipv6.google.com" rel="noopener external nofollow">ipv6.google.com</a>. That’s sad! Especially if most of the sites you visit are still hosted on non-IPv6 enabled servers.</p>
<p>Fortunately, there are many good-hearted people and corporations in the world today offering free access to their IPv6 DNS. We have <a href="https://gogo6.com" rel="noopener external nofollow">Gogo6.com</a>’s <a href="https://www.gogo6.com/freenet6" rel="noopener external nofollow">Freenet6</a> DNS and Hurricane Electric’s <a href="https://tunnelbroker.net/" rel="noopener external nofollow">Tunnelbroker.net</a> DNS.</p>
<p>But how do we use these IPv6 DNS? Let me show you how.</p>
<h2 id="ubuntu-linux-way">Ubuntu Linux way</h2>
<ul>
<li>
<p>Go to Synaptic (System -> Administration -> Synaptic Package Manager)</p>
</li>
<li>
<p>Search for “dnsmasq” and install it</p>
</li>
<li>
<p>Open a Terminal (Accessories -> Terminal)</p>
</li>
<li>
<p>Type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">gksu gedit /etc/dnsmasq.conf
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1">#listen-address=</span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Change it to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">listen-address<span class="o">=</span>127.0.0.1
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1">#server=/localnet/192.168.0.1</span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Add the following after/below it:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>/google.com/2001:470:20::2
</span></span><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>/google.com/74.82.42.42
</span></span><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>/www.google.com/2001:470:20::2
</span></span><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>/www.google.com/74.82.42.42
</span></span><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>/youtube.com/2001:470:20::2
</span></span><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>/youtube.com/74.82.42.42
</span></span><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>/www.youtube.com/2001:470:20::2
</span></span><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>/www.youtube.com/74.82.42.42
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Save and close the file</p>
</li>
<li>
<p>Still in the Terminal, type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">gksu gedit /etc/dhcp3/dhclient.conf
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1">#prepend domain-name-servers 127.0.0.1;</span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Uncomment that line by removing the sharp (’#’) sign</p>
</li>
<li>
<p>Save and close the file</p>
</li>
<li>
<p>Still in the Terminal, type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">gksu gedit /etc/resolv.conf
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Before any other nameserver entries, add this:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nameserver 127.0.0.1
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Save and close the file</p>
</li>
<li>
<p>Still in the Terminal, type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo /etc/init.d/dnsmasq restart
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<p>What happens is this: we are using dnsmasq to reroute all queries to google.com to HE’s IPv6 DNS which has been confirmed to be <i>Google over IPv6</i> enabled. Any Google services that are not yet using IPv6 or not yet part of the project will simply use IPv4, like the YouTube entry we added (read: <a href="https://www.networkworld.com/article/2238936/lan-wan/google-adding-ipv6-to-youtube.html" rel="noopener external nofollow">YouTube is the IPv6 team’s number one priority right now)</a>.</p>
<p>But if you are not using DHCP, then the DHCP edits you did previously will not work. Or if you are using <i>NetworkManager</i> to manage your connection settings, then it will only overwrite your resolv.conf file. Here’s what you should do to solve this:</p>
<ul>
<li>
<p>Open your NetworkManager and go to your network/connection profile (example: eth0)</p>
</li>
<li>
<p>Open/edit it and go to the “IPv4 Settings” tab</p>
</li>
<li>
<p>In the “DNS servers:” field, simply add this before any other DNS entries you may have:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">127.0.0.1
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Click “Apply”, then close it.</p>
<p>This way, every time the NetworkManager connects and overwrites the resolv.conf file, it will always add 127.0.0.1 to the file. Just like in the DHCP edits you did above, it ensures that the listening IP being used by dnsmasq is the first DNS your system will check when you are browsing.</p>
</li>
</ul>
<p>In your terminal type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">ping6 www.google.com
</span></span></code></pre></td></tr></table>
</div>
</div><p>You should see something like this:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">ping6 www.google.com
</span></span><span class="line"><span class="cl">PING www.google.com<span class="o">(</span>tx-in-x68.1e100.net<span class="o">)</span> <span class="m">56</span> data bytes
</span></span><span class="line"><span class="cl"><span class="m">64</span> bytes from tx-in-x68.1e100.net: <span class="nv">icmp_seq</span><span class="o">=</span><span class="m">1</span> <span class="nv">ttl</span><span class="o">=</span><span class="m">59</span> <span class="nv">time</span><span class="o">=</span><span class="m">231</span> ms
</span></span></code></pre></td></tr></table>
</div>
</div><p>These are the Google sites and services tested to be accessible via IPv6 (as of this article):</p>
<ul>
<li>Google Sites: <a href="https://sites.google.com" rel="noopener external nofollow"><a href="https://sites.google.com" title="https://sites.google.com" class="icon_executable" rel="noopener external">https://sites.google.com</a></a></li>
<li>Google Translate: <a href="https://translate.google.com" rel="noopener external nofollow"><a href="https://translate.google.com" title="https://translate.google.com" class="icon_executable" rel="noopener external">https://translate.google.com</a></a></li>
<li>Google Earth: <a href="https://www.google.com/earth/" rel="noopener external nofollow"><a href="https://earth.google.com" title="https://earth.google.com" class="icon_executable" rel="noopener external">https://earth.google.com</a></a></li>
<li>Google Moderator: <span class="popper animate removed_link" data-popper="https://moderator.appspot.com"><a href="https://web.archive.org/web/20150621104346/https://moderator.appspot.com/" title="https://web.archive.org/web/20150621104346/https://moderator.appspot.com/" class="icon_external" rel="noopener external">https://web.archive.org/web/20150621104346/https://moderator.appspot.com/</a></span></li>
<li>Google FeedBurner: <a href="https://accounts.google.com/ServiceLogin?service=feedburner&continue=https%3A%2F%2Ffeedburner.google.com%2Ffb%2Fa%2Fmyfeeds&gsessionid=u9hHPZko-UNXqdtUCdPKIg" rel="noopener external nofollow"><a href="https://feedburner.google.com" title="https://feedburner.google.com" class="icon_executable" rel="noopener external">https://feedburner.google.com</a></a></li>
<li>Google YouTube: <a href="https://www.youtube.com/supported_browsers?next_url=%2F" rel="noopener external nofollow"><a href="https://www.youtube.com" title="https://www.youtube.com" class="icon_executable" rel="noopener external">https://www.youtube.com</a></a></li>
<li>Google App Engine: <a href="https://appengine.google.com" rel="noopener external nofollow"><a href="https://appengine.google.com" title="https://appengine.google.com" class="icon_executable" rel="noopener external">https://appengine.google.com</a></a></li>
<li>Google Code: <a href="https://code.google.com" rel="noopener external nofollow"><a href="https://code.google.com" title="https://code.google.com" class="icon_executable" rel="noopener external">https://code.google.com</a></a></li>
<li>Google Docs: <a href="https://docs.google.com" rel="noopener external nofollow"><a href="https://docs.google.com" title="https://docs.google.com" class="icon_executable" rel="noopener external">https://docs.google.com</a></a></li>
<li>Google Health: <a href="https://www.google.com/intl/en_us/health/about/" rel="noopener external nofollow"><a href="https://health.google.com" title="https://health.google.com" class="icon_executable" rel="noopener external">https://health.google.com</a></a></li>
<li>Google Mail (“gmail”): <a href="https://mail.google.com" rel="noopener external nofollow"><a href="https://mail.google.com" title="https://mail.google.com" class="icon_executable" rel="noopener external">https://mail.google.com</a></a></li>
<li>Google Wave: <a href="https://support.google.com/answer/1083134?hl=en" rel="noopener external nofollow"><a href="https://wave.google.com" title="https://wave.google.com" class="icon_executable" rel="noopener external">https://wave.google.com</a></a></li>
<li>Google Blogs: <span class="popper animate removed_link" data-popper="https://blogsearch.google.com"><a href="https://web.archive.org/web/20140819225340/https://blogsearch.google.com/" title="https://web.archive.org/web/20140819225340/https://blogsearch.google.com/" class="icon_external" rel="noopener external">https://web.archive.org/web/20140819225340/https://blogsearch.google.com/</a></span></li>
<li>Google Images: <a href="https://images.google.com" rel="noopener external nofollow"><a href="https://images.google.com" title="https://images.google.com" class="icon_executable" rel="noopener external">https://images.google.com</a></a></li>
<li>Google News: <a href="https://news.google.com" rel="noopener external nofollow"><a href="https://news.google.com" title="https://news.google.com" class="icon_executable" rel="noopener external">https://news.google.com</a></a></li>
<li>Google Maps: <a href="https://maps.google.com" rel="noopener external nofollow"><a href="https://maps.google.com" title="https://maps.google.com" class="icon_executable" rel="noopener external">https://maps.google.com</a></a></li>
<li>Google Picasa: <a href="https://picasa.google.com" rel="noopener external nofollow"><a href="https://picasa.google.com" title="https://picasa.google.com" class="icon_executable" rel="noopener external">https://picasa.google.com</a></a></li>
<li>Google Picasa Web Albums: <a href="https://picasaweb.google.com" rel="noopener external nofollow"><a href="https://picasaweb.google.com" title="https://picasaweb.google.com" class="icon_executable" rel="noopener external">https://picasaweb.google.com</a></a></li>
<li>Google Accounts: <a href="https://myaccount.google.com" rel="noopener external nofollow"><a href="https://www.google.com/accounts" title="https://www.google.com/accounts" class="icon_external" rel="noopener external">https://www.google.com/accounts</a></a></li>
<li>Google Ad Manager: <a href="https://www.google.com/dfp/" rel="noopener external nofollow"><a href="https://www.google.com/admanager" title="https://www.google.com/admanager" class="icon_external" rel="noopener external">https://www.google.com/admanager</a></a></li>
<li>Google AdSense: <a href="https://www.google.com/adsense/" rel="noopener external nofollow"><a href="https://www.google.com/adsense" title="https://www.google.com/adsense" class="icon_external" rel="noopener external">https://www.google.com/adsense</a></a></li>
<li>Google Analytics: <a href="https://www.google.com/analytics/" rel="noopener external nofollow"><a href="https://www.google.com/analytics" title="https://www.google.com/analytics" class="icon_external" rel="noopener external">https://www.google.com/analytics</a></a></li>
<li>Google Calendar: <a href="https://www.google.com/" rel="noopener external nofollow"><a href="https://www.google.com/calendar" title="https://www.google.com/calendar" class="icon_external" rel="noopener external">https://www.google.com/calendar</a></a></li>
<li>Google Finance: <a href="https://www.google.com/finance" rel="noopener external nofollow"><a href="https://www.google.com/finance" title="https://www.google.com/finance" class="icon_external" rel="noopener external">https://www.google.com/finance</a></a></li>
<li>iGoogle: <a href="https://www.google.com.ph/webhp" rel="noopener external nofollow"><a href="https://www.google.com/ig" title="https://www.google.com/ig" class="icon_external" rel="noopener external">https://www.google.com/ig</a></a></li>
<li>Google Reader: <a href="https://www.google.com/reader/about/" rel="noopener external nofollow"><a href="https://www.google.com/reader/" title="https://www.google.com/reader/" class="icon_external" rel="noopener external">https://www.google.com/reader/</a></a></li>
<li>Google Search: <a href="https://www.google.com" rel="noopener external nofollow"><a href="https://www.google.com" title="https://www.google.com" class="icon_executable" rel="noopener external">https://www.google.com</a></a></li>
<li>Google Alerts: <a href="https://www.google.com/alerts" rel="noopener external nofollow"><a href="https://www.google.com/alerts" title="https://www.google.com/alerts" class="icon_external" rel="noopener external">https://www.google.com/alerts</a></a></li>
<li>Google Apps: <a href="https://apps.google.com/" rel="noopener external nofollow"><a href="https://www.google.com/apps" title="https://www.google.com/apps" class="icon_external" rel="noopener external">https://www.google.com/apps</a></a></li>
<li>Google Chrome: <a href="https://www.google.com/chrome/" rel="noopener external nofollow"><a href="https://www.google.com/chrome" title="https://www.google.com/chrome" class="icon_external" rel="noopener external">https://www.google.com/chrome</a></a></li>
<li>Google Directory: <span class="popper animate removed_link" data-popper="https://www.google.com/dirhp"><a href="https://web.archive.org/web/20111109041904/https://www.google.com:80/dirhp" title="https://web.archive.org/web/20111109041904/https://www.google.com:80/dirhp" class="icon_external" rel="noopener external">https://web.archive.org/web/20111109041904/https://www.google.com:80/dirhp</a></span></li>
<li>Google Mars: <a href="https://www.google.com/mars/" rel="noopener external nofollow"><a href="https://www.google.com/mars" title="https://www.google.com/mars" class="icon_external" rel="noopener external">https://www.google.com/mars</a></a></li>
<li>Google Mobile: <a href="https://www.google.com/intl/en/mobile/" rel="noopener external nofollow"><a href="https://www.google.com/intl/en/mobile" title="https://www.google.com/intl/en/mobile" class="icon_external" rel="noopener external">https://www.google.com/intl/en/mobile</a></a></li>
<li>Google Moon: <a href="https://www.google.com/moon/" rel="noopener external nofollow"><a href="https://www.google.com/moon" title="https://www.google.com/moon" class="icon_external" rel="noopener external">https://www.google.com/moon</a></a></li>
<li>Google Sky: <a href="https://www.google.com/sky/" rel="noopener external nofollow"><a href="https://www.google.com/sky" title="https://www.google.com/sky" class="icon_external" rel="noopener external">https://www.google.com/sky</a></a></li>
<li>Google and Space: <span class="popper animate removed_link" data-popper="https://www.google.com/space"><a href="https://web.archive.org/web/20110925082258/https://www.google.com:80/space/" title="https://web.archive.org/web/20110925082258/https://www.google.com:80/space/" class="icon_external" rel="noopener external">https://web.archive.org/web/20110925082258/https://www.google.com:80/space/</a></span></li>
<li>Google Talk: <a href="https://hangouts.google.com/unsupported" rel="noopener external nofollow"><a href="https://www.google.com/talk" title="https://www.google.com/talk" class="icon_external" rel="noopener external">https://www.google.com/talk</a></a></li>
</ul>
<p>Not yet accessible via IPv6:</p>
<ul>
<li>Google AdWords: <a href="https://www.google.com/adwords/" rel="noopener external nofollow"><a href="https://adwords.google.com" title="https://adwords.google.com" class="icon_executable" rel="noopener external">https://adwords.google.com</a></a></li>
<li>Google Scholar: <a href="https://scholar.google.com" rel="noopener external nofollow"><a href="https://scholar.google.com" title="https://scholar.google.com" class="icon_executable" rel="noopener external">https://scholar.google.com</a></a></li>
<li>Google Orkut: <a href="https://web.archive.org/web/20120515201005/https://www.orkut.com/" rel="noopener external nofollow"><a href="https://www.orkut.com" title="https://www.orkut.com" class="icon_executable" rel="noopener external">https://www.orkut.com</a></a></li>
</ul>
<p>As far as I know, it is not possible to host a “sub-folder” in another server, thus we can safely assume that all Google sites with this URL format: <a href="https://www.google.com/%7bsitename%7d" title="www.google.com/{sitename}" class="icon_external" rel="noopener external">www.google.com/{sitename}</a> are IPv6 enabled. However, Google sites and services that are using a subdomain.google.com URL or any other, can either be IPv6 already or not. Subdomains can easily be pointed to a totally different server somewhere in cyberspace.</p>
<h2 id="how-about-windows-users">How about Windows users?</h2>
<p>For those who are still using Windows XP, you are out-of-luck. Even if you can add an IPv6 DNS, it will not work, I tried it myself and it was confirmed by <a href="https://www.gogo6.com/forum/topic/listForContributor?user=266ea6iid0945" rel="noopener external nofollow">Mikael Lind</a> <a href="https://www.gogo6.com/forum/topics/i-want-to-access-google-in?page=1&commentId=3731159%3AComment%3A24011&x=1#3731159Comment24011" rel="noopener external nofollow">here</a>.</p>
<p><del>Update for Windows XP users: I found a way to do it and I will be posting it here soon! The life of your too old OS just got a little bit longer.</del></p>
<p><del>For Windows 7 users, you will have to wait until I can get a Win7 OS or a machine that I can break. Or better ask the experts in IPv6 like the guys and gals of the <a href="https://www.gogo6.com/main" rel="noopener external nofollow">gogo6 Community</a>.</del></p>
<p><b>Update 2010-02-25</b>: Sorry WinXP users you really have to upgrade to Windows 7. The method works but it is not consistent - sometimes it works, sometimes not. It is also <i>very</i> different per machine (it is weird!) even if you have everything duplicated perfectly.</p>
<p>It will only invite frustration and plenty of questions. Again, I recommend upgrading to Windows 7 if you want a consistent and stable IPv6 capability.</p>
<p><b>Update 2010-09-20</b>: Google Sites, Google Translate, Google Earth, Google Moderator, and Google FeedBurner, are now all IPv6 enabled.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://pixabay.com/en/ball-http-www-crash-administrator-63527/" rel="dct:title noopener external nofollow">Ball, Crash, Administrator</a></cite> by <a href="https://pixabay.com/en/users/geralt-9301/" rel="dct:creator noopener external nofollow">geralt</a> is
                  licensed under <a href="https://pixabay.com/service/license/" rel="license noopener external">Pixabay License</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="linux" label="Linux" scheme="https://im.youronly.one/techmagus/cat/linux/"/><published>2009-12-03T13:31:19Z</published></entry><entry><title>[How-To] IPv6 is not scary! Connect to next-gen Internet today!</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/kb/internet/ipv6-connect-today/"/><id>https://im.youronly.one/techmagus/kb/internet/ipv6-connect-today/</id><updated>2010-03-29T09:53:01Z</updated><summary type="html"><![CDATA[<p><em>IPv6</em> or <em>Internet Protocol version 6</em> is the answer to our <em>IPv4</em> problem. What problem? By 2011 or 2012 (according to estimates), there will be no more IPv4 addresses left. This means that, anyone with a need to have a static IP address will not be able to get any for their project or service.</p>
<p>When this day comes, someone must start finding IP address owners who does not really need a static address and give it to someone who needs it seriously. We may even see owners starting to sell their extra IPs at a price far more expensive that what it is worth today.</p>]]></summary><content type="html"><![CDATA[<img src="https://img.youronly.one/publicdomain/ball-63527_1280.webp" /><p><em>IPv6</em> or <em>Internet Protocol version 6</em> is the answer to our <em>IPv4</em> problem. What problem? By 2011 or 2012 (according to estimates), there will be no more IPv4 addresses left. This means that, anyone with a need to have a static IP address will not be able to get any for their project or service.</p>
<p>When this day comes, someone must start finding IP address owners who does not really need a static address and give it to someone who needs it seriously. We may even see owners starting to sell their extra IPs at a price far more expensive that what it is worth today.</p>
<p>But that will not happen, because two decades ago, the powers-that-be already started experimenting with IPv6 which will give us 2<sup>128</sup> addresses. That is equivalent to 340,282,366,920,938,463,463,374,607,431,768,211,456 IPv6 Addresses, according to my <em>Einstein</em> brain calculation :p Or simply: 340 with 36 zeroes (I admit, I used a calculator).</p>
<p>Compare that to IPv4 which only have 2<sup>32</sup> or 4,294,967,296 IP addresses. It is a huge difference! IPv6 which use 128-bit addresses and IPv4 which is only 32-bit. Each computer in the world can now have its own IP Address and we are only scratching the surface of IPv6. In fact, if we subtract the number of IPv4 addresses we have, we still have 340,282,366,920,938,463,463,374,607,427,473,244,160 IPv6 addresses available.</p>
<p>I know you have plenty of questions but time is not on our side. What I am going to answer for you today is how you can start connecting to the IPv6 Internet without waiting for your ISP to start implementing it.</p>
<p>For this tutorial or How-To Guide, I am going to show you how I setup my <del>Ubuntu Linux 9.10 “Karmic Koala”</del> Linux Mint 11 “Katya” 64-bit (based on Ubuntu 11.04 “Natty Narwhal”). So let’s begin!</p>
<ul>
<li>
<p>Go to Synaptic (System -> Administration -> Synaptic Package Manager)</p>
</li>
<li>
<p>Search for: miredo; gogoc; and radvd and install all three.</p>
</li>
<li>
<p>Open a terminal (Accessories -> Terminal)</p>
</li>
<li>
<p>Type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo /etc/init.d/radvd stop
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">gksu gedit /etc/gogoc/gogoc.conf
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>If your main connection is not <code>eth0</code> then change <code>if_prefix=</code> accordingly</p>
</li>
<li>
<p>If you are setting this up on a workstation computer, then change <code>host_type=router</code> to <code>host_type=host</code></p>
</li>
<li>
<p>Type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo /etc/init.d/gogoc restart
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<p><strong>Update 2010-03-29:</strong> Additional step from Ubuntu 10.04 “Lucid Lynx” and up.</p>
<ul>
<li>
<p>Still on your terminal, type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">gksu gedit /etc/default/gogoc
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Look for <code># CHECK_KEYFILE="yes"</code> and change it to <code>CHECK_KEYFILE="no"</code></p>
</li>
</ul>
<p><strong>Update 2009-12-23:</strong> An update from <a href="https://mobile.twitter.com/nacnud" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin">Jeremy Duncan</a> on setting up your Linux box as a router.</p>
<p>Make sure <code>IPV6FORWARDING</code> is set to yes in <code>/etc/sysconfig/network</code> like so: <code>IPV6FORWARDING=yes</code>.</p>
<p>You are done! To test if your IPv6 is working do or visit the following:</p>
<ul>
<li>
<p>In your terminal, type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">ping6 ipv6.google.com
</span></span></code></pre></td></tr></table>
</div>
</div><p>it should show something like this:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">ping6 ipv6.google.com
</span></span><span class="line"><span class="cl">PING ipv6.google.com<span class="o">(</span>fx-in-x68.1e100.net<span class="o">)</span> <span class="m">56</span> data bytes
</span></span><span class="line"><span class="cl"><span class="m">64</span> bytes from fx-in-x68.1e100.net: <span class="nv">icmp_seq</span><span class="o">=</span><span class="m">1</span> <span class="nv">ttl</span><span class="o">=</span><span class="m">50</span> <span class="nv">time</span><span class="o">=</span><span class="m">496</span> ms
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Open up your favorite browser and visit <a href="https://test-ipv6.com" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin">test-ipv6.com</a></p>
</li>
<li>
<p>and/or <a href="https://ipv6-test.com" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin">ipv6-test.com</a></p>
</li>
<li>
<p>and/or <a href="https://ip6.me" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin">ip6.me</a></p>
</li>
</ul>
<div class="float_right" style="margin-left: 10px; margin-bottom: 10px;"></div>
<h2 id="why-use-a-tunnel-broker-if-we-have-miredoteredo">Why use a Tunnel Broker if we have Miredo/Teredo?</h2>
<p>For one, Miredo/Teredo was developed only as a temporary gateway to the IPv6 Internet. In fact, it was set as the last access point when you have other IPv6 implementation like a tunnel broker.</p>
<p>Another reason is to have a static IPv6 address (even if your ISP gives you a dynamic IPv4 address). For this to work, you have to register an account over at Gogo6.com’s <a href="https://www.gogo6.com/freenet6" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin">Freenet6 service</a> (<a href="https://www.gogo6.com/freenet6/registration" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin">register here</a>).</p>
<p>Then you have to edit your gogoc.conf, follow the instructions below:</p>
<ul>
<li>
<p>Open a Terminal again</p>
</li>
<li>
<p>Type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo /etc/init.d/radvd stop
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">gksu gedit /etc/gogoc/gogoc.conf
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Adjust your existing gogoc.conf with this one:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">userid</span><span class="o">=</span>ENTER_YOUR_FREENET6_USERNAME_HERE
</span></span><span class="line"><span class="cl"><span class="nv">passwd</span><span class="o">=</span>ENTER_YOUR_FREENET6_PASSWORD_HERE
</span></span><span class="line"><span class="cl"><span class="nv">server</span><span class="o">=</span>authenticated.freenet6.net
</span></span><span class="line"><span class="cl"><span class="nv">auth_method</span><span class="o">=</span>any
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>Type:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">sudo /etc/init.d/gogoc restart
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<p>You’re done! From now on, you will have the same IPv6 address everytime you connect to Freenet6’s network. However, do note that you still get a different static IP depending on which Freenet6 server you are connected. If you really want to connect to the exact same server simply change this configuration in your gogoc.conf</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">always_use_same_server</span><span class="o">=</span>no
</span></span></code></pre></td></tr></table>
</div>
</div><p>to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nv">always_use_same_server</span><span class="o">=</span>yes
</span></span></code></pre></td></tr></table>
</div>
</div><p>But before you do that, please connect to Freenet6 at least once, so your gogoc daemon will have a list of servers to connect to and be able to choose the “best” one for you. Then set it up as instructed, and you’ll be connecting to that same “best” server everytime the gogoc daemon is (re)-started. Easy?</p>
<p>Welcome to the next generation of the Internet - the IPv6 world.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://pixabay.com/en/ball-http-www-crash-administrator-63527/" rel="dct:title noopener external nofollow">web administrator</a></cite> by <a href="https://pixabay.com/en/users/geralt-9301/" rel="dct:creator noopener external nofollow">geralt</a> is
                  <a href="https://creativecommons.org/publicdomain/mark/1.0/" rel="license noopener external">free of known copyright restrictions</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="linux" label="Linux" scheme="https://im.youronly.one/techmagus/cat/linux/"/><published>2009-12-03T02:36:58Z</published></entry><entry><title>How-To implement cross-browser @font-face support</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/kb/webdev/css-font-face-support/"/><id>https://im.youronly.one/techmagus/kb/webdev/css-font-face-support/</id><updated>2010-01-22T06:55:48Z</updated><summary type="html"><![CDATA[<p><em>Firefox</em> 3.6 “Final” was released today and one of the major addition is the support for the <em>Web Open Font Format</em> or “WOFF”. The result of a collaboration between the font designers <a href="https://www.letterror.com" title="Erik van Blokland" class="icon_executable" rel="noopener external">Erik van Blokland</a> and <a href="https://talleming.com" title="Tal Leming" class="icon_executable" rel="noopener external">Tal Leming</a> with help from Mozilla’s Jonathan Kew.</p>]]></summary><content type="html"><![CDATA[<img src="https://3.bp.blogspot.com/-tmNYWbX20wY/XqLEfgbdjtI/AAAAAAAAhXA/JI64YoxA9Ok2jchMsBEpq1VY8RQ2mj63QCPcBGAYYCw/s1600/Web-01.jpg" /><p><em>Firefox</em> 3.6 “Final” was released today and one of the major addition is the support for the <em>Web Open Font Format</em> or “WOFF”. The result of a collaboration between the font designers <a href="https://www.letterror.com" title="Erik van Blokland" class="icon_executable" rel="noopener external">Erik van Blokland</a> and <a href="https://talleming.com" title="Tal Leming" class="icon_executable" rel="noopener external">Tal Leming</a> with help from Mozilla’s Jonathan Kew.</p>
<p>What is it for? How can you use it? By using the CSS2 <strong>@font-face</strong> (yes CSS2 not CSS3). This new format is promising because of the large number of support from the font creators and font foundries. <del>Hopefully this will be the first font format that Microsoft® will accept for Internet Explorer browser other than their existing <em>Embedded OpenType</em> or “EOT”.</del></p>
<p><del>If IE9 supports WOFF, then this format will be the first cross-browser @font-face/webfont format. There is no question when it comes to Chromium/Chrome, Opera, and Safari, the problem with cross-browser technology is always with MSIE.</del></p>
<p><strong>Update</strong>: Microsoft added WOFF support in Internet Explorer 9 Platform Preview 3.</p>
<p>So how can you start using WOFF? Just follow these simple steps:</p>
<ol>
<li>Search for your font of choice</li>
<li>Check the license of your font if it is allowed to be used in a website (sometimes called website embedding). I strongly suggest to contact the font creator/foundry and clarify the matter to them.
<ul>
<li>@font-face fonts or <em>webfont</em>s use “open”/“share”/“freedom” type licenses, examples are:
<ul>
<li><a href="https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&amp;item_id=OFL&amp;_sc=1" title="OpenFont License" class="icon_external" rel="noopener external">OpenFont License</a></li>
<li><a href="https://creativecommons.org" title="Creative Commons" class="icon_external" rel="noopener external">Creative Commons</a></li>
<li><a href="https://www.gnu.org/licenses/gpl-3.0.html" title="GNU/GPL" class="icon_external" rel="noopener external">GNU/GPL</a></li>
<li><a href="https://opensource.org/licenses/apache2.0.php" title="Apache License" class="icon_external" rel="noopener external">Apache License</a></li>
</ul>
</li>
<li>If you can not find any, check out <a href="https://web.archive.org/web/20141128120836/https://webfonts.info/resources/fonts-available-for-@fontface-embedding" title="Fonts available for @font-face embedding" class="icon_external" rel="noopener external">Fonts available for @font-face embedding</a>.</li>
</ul>
</li>
<li>Go to FontSquirrel’s <a href="https://www.fontsquirrel.com/tools/webfont-generator" title="@font-face generator" class="icon_external" rel="noopener external">@font-face generator</a>. The tool is self-explanatory.</li>
<li>Then click the “Download Your Kit” button and open the zip file.</li>
<li>You should have the following files (assuming you uploaded one font only)
<ul>
<li>Your original font (ttf/otf)</li>
<li>1 eot file</li>
<li>1 svg file</li>
<li>1 woff file</li>
<li>stylesheet css files</li>
</ul>
</li>
<li>Edit the stylesheet for your own use (the URL location of the font, etc.)</li>
</ol>
<h2 id="sample-font-face-stylesheet">Sample @font-face stylesheet</h2>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span><span class="lnt">7
</span><span class="lnt">8
</span><span class="lnt">9
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="p">@</span><span class="k">font-face</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="nt">font-family</span><span class="o">:</span> <span class="s1">'BaybayinLopezRegular'</span><span class="o">;</span>
</span></span><span class="line"><span class="cl">  <span class="nt">src</span><span class="o">:</span> <span class="nt">url</span><span class="o">(</span><span class="s1">'baylopez-webfont.eot'</span><span class="o">);</span>
</span></span><span class="line"><span class="cl">  <span class="nt">src</span><span class="o">:</span> <span class="nt">url</span><span class="o">(</span><span class="s1">'baylopez-webfont.woff'</span><span class="o">)</span> <span class="nt">format</span><span class="o">(</span><span class="s1">'woff'</span><span class="o">),</span>
</span></span><span class="line"><span class="cl">       <span class="nt">url</span><span class="o">(</span><span class="s1">'baylopez-webfont.ttf'</span><span class="o">)</span> <span class="nt">format</span><span class="o">(</span><span class="s1">'truetype'</span><span class="o">),</span>
</span></span><span class="line"><span class="cl">       <span class="nt">url</span><span class="o">(</span><span class="s1">'baylopez-webfont.svgz#webfontsBCU3ofZ'</span><span class="o">)</span> <span class="nt">format</span><span class="o">(</span><span class="s1">'svg'</span><span class="o">),</span>
</span></span><span class="line"><span class="cl">       <span class="nt">url</span><span class="o">(</span><span class="s1">'baylopez-webfont.svg#webfontsBCU3ofZ'</span><span class="o">)</span> <span class="nt">format</span><span class="o">(</span><span class="s1">'svg'</span><span class="o">);</span>
</span></span><span class="line"><span class="cl">  <span class="nt">unicode-range</span><span class="o">:</span> <span class="nt">U</span><span class="o">+</span><span class="nt">1700-171F</span><span class="o">,</span> <span class="nt">U</span><span class="o">+</span><span class="nt">1720-173F</span><span class="o">,</span> <span class="nt">U</span><span class="o">+</span><span class="nt">1740-175F</span><span class="o">,</span> <span class="nt">U</span><span class="o">+</span><span class="nt">1760-177F</span><span class="o">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>And here’s what happens when a browser reads your font stylesheet:</p>
<ol>
<li>font-family name declared as: BaybayinLopezRegular</li>
<li>If MSIE: downloads baylopez-webfont.eot</li>
<li>If not, then it reads the WOFF file if the browser supports it</li>
<li>If not, then it reads the TTF file if the browser supports it</li>
<li>If not, then the browser reads the SVG file if it supports it</li>
<li>If all else fails, then it does nothing. Depending on your setup, it will either display boxes or it will search your other font declarations</li>
<li>The browser will also read the unicode-range if it supports it, and only download those specific Unicode points and ignore the rest. Making the size of transmitted to your visitors smaller.</li>
</ol>
<!--
## The @font-face Smiley variation
```css
src: local('☺')
```

The above technique prevents your visitor's browser in using any locally installed fonts. By doing this, you can be sure that your own font is the actual file the browser is rendering. This usually becomes a problem when there are [1] fonts with the same name; or [2] there are updates to the font that more likely is not installed on your visitor's machine. You can read more about it <a class="popper animate" href="https://www.paulirish.com/2009/bulletproof-font-face-implementation-syntax/#smiley" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin" data-popper="Bulletproof @font-face: Smiley variation">here</a>.
-->
<h2 id="font-face-css-rule-browser-compatibility-chart">@font-face CSS Rule Browser Compatibility Chart</h2>
<p>The table below presents which font format is supported by the four major browsers - Chromium/Chrome, Firefox, Internet Explorer, Opera, and Safari. As you will see, no font format is supported across all five browsers except for WOFF… in the near future.</p>
<p>Microsoft’s EOT is out of the race, even though many font creators and foundries support it, the other four browsers are likely never going to support it. Then OTF, SVG, and TTF are out too because Internet Explorer is surely never going to implement it, and font creators/foundries do not like these formats for @font-face use.</p>
<p>That is where WOFF comes in. Commercial font creators and font foundries wants control (or restriction if you want it that way) to the fonts that can be used for the CSS @font-face rule.</p>
<p>Of course there are other advantages to WOFF like compression. WOFF is compressed, which site administrators will like because it eats less bandwidth. You can go check the fonts that came with your FontSquirrel generated font kit, WOFF is the smallest of them.</p>
<p>For now as with all new technologies, we have to wait until all major browsers adds support for WOFF. But that should not stop you from using it today. Just like with CSS3 and some HTML5, you can use it right now. It will save you time later if you do the update now than whenever you feel like to, which you will probably forget.</p>
<table style="text-align: center; margin: 0 auto; margin-top: 30px; margin-bottom: 30px; width: 88%;" border="1">
  <thead>
    <tr>
      <th style="text-align: center;"> </th>
      <th style="text-align: center;">Chrome<br />(WebKit)</th>
      <th style="text-align: center;">Firefox<br />(Gecko)</th>
      <th style="text-align: center;">IE<br />(Trident)</th>
      <th style="text-align: center;">Opera<br />(Presto)</th>
      <th style="text-align: center;">Safari<br />(WebKit)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th style="text-align: center;">EOT</th>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v4.0</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
    </tr>
    <tr>
      <th style="text-align: center;">OTF</th>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v3.5</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v10.0</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v3.1</td>
    </tr>
    <tr>
      <th style="text-align: center;">SVG</th>
      <td style="background: #90ff90; color: #000; text-align: center;">v0.3</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v10.0</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v3.1</td>
    </tr>
    <tr>
      <th style="text-align: center;">TTF</th>
      <td style="background: #90ff90; color: #000; text-align: center;">v2.0</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v3.5</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v10.0</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v3.1</td>
    </tr>
    <tr>
      <th style="text-align: center;">WOFF</th>
      <td style="background: #90ff90; color: #000; text-align: center;">v5.0</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v3.6</td>
      <td style="background: #90ff90; color: #000; text-align: center;">v9.0</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
      <td style="background: #ff9090; color: #000; text-align: center;">No</td>
    </tr>
  </tbody>
</table>
<h2 id="lets-test-your-browser">Let’s Test Your Browser</h2>
<p>If you see the Baybayin writing script below, then your browser supports one of the font formats - EOT, OTF, SVG, TTF, or WOFF. If not, then you should upgrade your browser because my font stylesheet captures all browsers. (At least from my testing, on two computers without any Baybayin fonts - it displays correctly on all the major browsers.)</p>
<h3 id="example-1">Example #1</h3>
<ul>
<li>
<p>Filipino-Baybayin: <bdi lang="fil-Tglg">ᜀᜅ᜔ ᜊᜓᜃᜓ ᜀᜌ᜔ ᜉᜍ ᜐ ᜆᜂ ᜇᜑᜒᜎ᜔ ᜏᜎ ᜈᜅ᜔ ᜉᜓᜏᜒᜇᜒᜅ᜔ ᜋᜁᜈᜓᜋ᜔ ᜈ ᜄᜆᜐ᜔᜶</bdi></p>
</li>
<li>
<p>Filipino-Latin: <bdi lang="fil">Ang buko ay para sa tao dahil wala nang puwedeng mainom na gatas.</bdi></p>
</li>
<li>
<p>English: The coconut is for people because there is not enough milk to drink.</p>
</li>
</ul>
<h3 id="example-2">Example #2</h3>
<ul>
<li>
<p>Filipino-Baybayin: <bdi lang="fil-Tglg">ᜉᜓᜏᜒᜇᜒ ᜃᜅ᜔ ᜌᜓᜋᜋᜈ᜔ ᜇᜑᜒᜎ᜔ ᜐ ᜊᜄᜓᜅ᜔ ᜍᜓᜎᜒᜆ᜶</bdi></p>
</li>
<li>
<p>Filipino-Latin: <bdi lang="fil">Puwede kang yumaman dahil sa bagong roleta.</bdi></p>
</li>
<li>
<p>English: You can be rich because of the new wheel.</p>
</li>
</ul>
<!--
What are these? These are called *pangrams*. A pangram is a sentence using every letter of the alphabet at least once. The most common pangram (in English) is: *The quick brown fox jumps over the lazy dog.* Which is written in:
* Filipino-Baybayin: <bdi lang="fil-Tglg">ᜀᜅ᜔ ᜋᜊᜒᜎᜒᜐ᜔ ᜈ ᜃᜌᜓᜋᜅ᜔ᜑᜒᜅ᜔ ᜐᜓᜍᜓ ᜀᜌ᜔ ᜆᜒᜈᜎᜓᜈᜈ᜔ ᜀᜅ᜔ ᜆᜆᜋᜇ᜔ᜆᜋᜇ᜔ ᜈ ᜀᜐᜓ᜶</bdi>
* Filipino-Latin: <bdi lang="fil">Ang mabilis na kayumangging soro ay tinalunan ang tatamad-tamad na aso.</bdi>
-->
<p>Enjoy!</p>
<hr>
<p>Sources:</p>
<ul>
<li><a href="https://hacks.mozilla.org/2009/10/woff/" title="Web Open Font Format for Firefox 3.6" class="icon_external" rel="noopener external">Web Open Font Format for Firefox 3.6</a></li>
<li><a href="https://en.wikipedia.org/wiki/Web_typography" title="Web typography" class="icon_external" rel="noopener external">Web typography</a></li>
<li><a href="https://blog.mozilla.org/blog/2009/10/20/mozilla-supports-web-open-font-format/" title="Mozilla Supports Web Open Font Format" class="icon_external" rel="noopener external">Mozilla Supports Web Open Font Format</a> (includes a list of font creators and font foundries supporting WOFF)</li>
</ul>
<!--
* <a class="popper animate" href="https://en.wikipedia.org/wiki/Pangram" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin" data-popper="Wikipedia: Pangram">Wikipedia: Pangram</a>
* <a class="popper animate" href="https://web.archive.org/web/20141012231620/https://en.wikipedia.org/wiki/List_of_pangrams" rel="noopener external nofollow" referrerpolicy="strict-origin-when-cross-origin" data-popper="Wikipedia: List of pangrams">Wikipedia: List of pangrams</a>
-->
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://www.flickr.com/photos/manoftaste-de/14069118533" rel="dct:title noopener external nofollow">Web</a></cite> by <a href="https://www.flickr.com/photos/manoftaste-de/" rel="dct:creator noopener external nofollow"><a href="https://www.manoftaste.de" title="www.manoftaste.de" class="icon_external" rel="noopener external">www.manoftaste.de</a></a> is
                  licensed under <a href="#ZgotmplZ" rel="license noopener external">CC BY-SA 2.0</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="css" label="CSS" scheme="https://im.youronly.one/techmagus/tag/css/"/><published>2010-01-22T06:55:48Z</published></entry><entry><title>The LANG attribute</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/kb/webdev/lang-attribute/"/><id>https://im.youronly.one/techmagus/kb/webdev/lang-attribute/</id><updated>2009-06-20T16:20:37Z</updated><summary type="html"><![CDATA[<p>In my previous post I talked about “Baybayin - the Forgotten Pre-Hispanic Writing of the Filipino”. It was added in version 5.0 of the <a href="https://unicode.org" title="Unicode Standard" class="icon_external" rel="noopener external">Unicode Standard</a> together with Buhid, Hanunoo, and Tagbanwa under the “Philippine Scripts” group. But how should we properly write or mark our content written in another language and script?</p>
<p>For this post, I will talk about how to correctly declare the language of your content, this way you are being friendly with translation software and helper applications, and other technologies that rely on this often taken-for-granted HTML attribute. As is shown in our image, everyone can see the writing script used, but in the digital world there are people who do not have the fonts you are using. There are also people who do not use the same browser as you and me use - it could be a text-only browser, a speech browser, or a Braille browser.</p>
<p>It is then only appropriate that we properly and correctly tag our content with the language and script we are using. Get ready to use the LANG attribute a lot.</p>]]></summary><content type="html"><![CDATA[<img src="https://3.bp.blogspot.com/-OjERfiifRYA/Xqp2WZ_WrEI/AAAAAAAAhbo/TExJwOEWDcMF2UU48Fbn4Pz-vZe7pgiLQCLcBGAsYHQ/s1600/lave%2Bt%2527es%2Bmains-1800x.jpg" /><p>In my previous post I talked about “Baybayin - the Forgotten Pre-Hispanic Writing of the Filipino”. It was added in version 5.0 of the <a href="https://unicode.org" title="Unicode Standard" class="icon_external" rel="noopener external">Unicode Standard</a> together with Buhid, Hanunoo, and Tagbanwa under the “Philippine Scripts” group. But how should we properly write or mark our content written in another language and script?</p>
<p>For this post, I will talk about how to correctly declare the language of your content, this way you are being friendly with translation software and helper applications, and other technologies that rely on this often taken-for-granted HTML attribute. As is shown in our image, everyone can see the writing script used, but in the digital world there are people who do not have the fonts you are using. There are also people who do not use the same browser as you and me use - it could be a text-only browser, a speech browser, or a Braille browser.</p>
<p>It is then only appropriate that we properly and correctly tag our content with the language and script we are using. Get ready to use the LANG attribute a lot.</p>
<p>When creating websites, it is important to properly declare the language being used on the webpage. For example, I use the following for my sites:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">html</span> <span class="na">lang</span><span class="o">=</span><span class="s">"en-PH"</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>It is also important to declare the character set especially when you are going to use any characters beyond the scope of ASCII. This is how it looks like:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">    <span class="p"><</span><span class="nt">meta</span> <span class="na">charset</span><span class="o">=</span><span class="s">"UTF-8"</span> <span class="p">/></span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Putting it all together, our basic HTML should be.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="cp"><!DOCTYPE html></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">html</span> <span class="na">lang</span><span class="o">=</span><span class="s">"en-PH"</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"><</span><span class="nt">head</span><span class="p">></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">meta</span> <span class="na">charset</span><span class="o">=</span><span class="s">"UTF-8"</span> <span class="p">/></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">meta</span> <span class="na">description</span><span class="o">=</span><span class="s">"My Website"</span> <span class="p">/></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">meta</span> <span class="na">keywords</span><span class="o">=</span><span class="s">"Philippines, Baybayin"</span> <span class="p">/></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">title</span><span class="p">></span>My Baybayin Website<span class="p"></</span><span class="nt">title</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"></</span><span class="nt">head</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"><</span><span class="nt">body</span><span class="p">></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">p</span><span class="p">></span>Mabuhay!<span class="p"></</span><span class="nt">p</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"></</span><span class="nt">body</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">html</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Now let’s dig-in…</p>
<h2 id="the-lang-attribute">The <em>lang</em> attribute</h2>
<p>The HTML lang attribute defines the language of the content enclosed within the element it was declared. The codes are called <em>subtag</em>, and for my Filipino readers, there are only three subtag types you should worry about: language-Script-REGION. The full format: language-extended_language-Script-REGION-variant-extension-privateuse.</p>
<p>See the table below:</p>

<table id="langcode" border="2" summary="Language code example" style="min-width: 80%; width: 80%;">
  <thead style="text-align: center;">
    <tr>
      <th style="min-width: 15%; width: 15%;">Code</th>
      <th>Language</th>
      <th>Subtag Placement</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>en</td>
      <td>(Generic) English</td>
      <td>language</td>
    </tr>
    <tr>
      <td>en-PH</td>
      <td>Philippine English</td>
      <td>language+REGION</td>
    </tr>
    <tr>
      <td>fil-Tglg</td>
      <td>Filipino in Baybayin</td>
      <td>language+Script</td>
    </tr>
    <tr>
      <td>bik-cts-Tglg</td>
      <td>Bikolano of the Pandan (Northern Catanduanes) dialect in Baybayin script</td>
      <td>language+extended_language+Script</td>
    </tr>
    <tr>
      <td>phi-Tglg-tsg</td>
      <td>Tausug Philippine language written in Baybayin script</td>
      <td>language+Script+variant</td>
    </tr>
  </tbody>
</table>
<p></p>
<p>If you want to find the subtags for a particular language, previously we have to check different websites and plenty of official code lists. A time-consuming task (although normally you only have to do this once), right? Well, the latest official subtags can now be found in the <a href="https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry" title="IANA Language Subtag Registry" class="icon_external" rel="noopener external">IANA Language Subtag Registry</a>. It is now the universal source for all valid subtags.</p>
<p>According to the latest list (as of this writing), the subtags that are related to the Philippines are the following (if I missed anything, please leave a comment below):</p>
<h3 id="languages">Languages</h3>
<ul>
<li>
<p>Tagalog</p>
<ul>
<li>Type: language</li>
<li>Subtag: tl</li>
<li>Description: Tagalog</li>
<li>Added: 2005-10-16</li>
<li>Suppress-Script: Latn</li>
</ul>
</li>
<li>
<p>Bikol</p>
<ul>
<li>Type: language</li>
<li>Subtag: bik</li>
<li>Description: Bikol</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Cebuano</p>
<ul>
<li>Type: language</li>
<li>Subtag: ceb</li>
<li>Description: Cebuano</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Filipino/Pilipino</p>
<ul>
<li>Type: language</li>
<li>Subtag: fil</li>
<li>Description: Filipino</li>
<li>Description: Pilipino</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Hiligaynon</p>
<ul>
<li>Type: language</li>
<li>Subtag: hil</li>
<li>Description: Hiligaynon</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Iloko</p>
<ul>
<li>Type: language</li>
<li>Subtag: ilo</li>
<li>Description: Iloko</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Pangasinan</p>
<ul>
<li>Type: language</li>
<li>Subtag: pag</li>
<li>Description: Pangasinan</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Pampanga/Kapampangan</p>
<ul>
<li>Type: language</li>
<li>Subtag: pam</li>
<li>Description: Pampanga</li>
<li>Description: Kapampangan</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Philippine languages</p>
<ul>
<li>Type: language</li>
<li>Subtag: phi</li>
<li>Description: Philippine languages</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Waray</p>
<ul>
<li>Type: language</li>
<li>Subtag: war</li>
<li>Description: Waray</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
</ul>
<h3 id="region">Region</h3>
<ul>
<li>Philippines
<ul>
<li>Type: region</li>
<li>Subtag: PH</li>
<li>Description: Philippines</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
</ul>
<h3 id="scripts">Scripts</h3>
<ul>
<li>
<p>Buhid</p>
<ul>
<li>Type: script</li>
<li>Subtag: Buhd</li>
<li>Description: Buhid</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Hanunoo (Hanunóo)</p>
<ul>
<li>Type: script</li>
<li>Subtag: Hano</li>
<li>Description: Hanunoo (Hanunóo)</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Tagbanwa</p>
<ul>
<li>Type: script</li>
<li>Subtag: Tagb</li>
<li>Description: Tagbanwa</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
<li>
<p>Tagalog</p>
<ul>
<li>Type: script</li>
<li>Subtag: Tglg</li>
<li>Description: Tagalog</li>
<li>Description: Baybayin</li>
<li>Description: Alibata</li>
<li>Added: 2005-10-16</li>
</ul>
</li>
</ul>
<p>Now that we have the subtags we need we can start coding the correct <code>lang</code> value for any Philippines language and script. See these examples:</p>
<ul>
<li>If you grew and learned English in the Philippines, more likely than not, you are using English words that are exclusive to the Philippines, as well as, following strict language rules that are taught only in Philippine English. This is the correct <code>lang</code> value for your website: <code>lang="en-PH"</code></li>
<li>If you are writing in Filipino, not Tagalog, use this: <code>lang="fil"</code></li>
<li>If you are writing in Tagalog, not Filipino, use this: <code>lang="tl"</code></li>
<li>For Bikolano, use this: <code>lang="bik"</code></li>
<li>In Cebuano, use this: <code>lang="ceb"</code></li>
<li>Hiligaynon, use this: <code>lang="hil"</code></li>
<li>In Iloko, use this: <code>lang="ilo"</code></li>
<li>In Pangasinense: <code>lang="pag"</code></li>
<li>Kapampangan: <code>lang="pam"</code></li>
<li>Waray: <code>lang="war"</code></li>
<li>For Philippines languages with no corresponding <a href="https://www.loc.gov/standards/iso639-2/php/code_list.php" title="ISO-639-2" class="icon_external" rel="noopener external">ISO-639-2</a> code, you have to use the generic subtag: <code>lang="phi"</code></li>
</ul>
<p>Then if you want to write something in Baybayin script you have to enclose it correctly with the script subtag “Tglg”. Remember, the format is: language-Script, like so:</p>
<ul>
<li>If writing in Filipino and Tagalog using Baybayin script, use: <code>lang="fil-Tglg"</code></li>
<li>In Bikolano but Baybayin script: <code>lang="bik-Tglg"</code></li>
<li>Cebuano using Baybayin script: <code>lang="ceb-Tglg"</code></li>
<li>All other Philippine languages without an ISO-639-2 subtag should use: <code>lang="phi-Tglg"</code></li>
</ul>
<p><del datetime="2021-09-24T18:32:17+08:00">Why do we have no <code>lang="tl-Tglg"</code> subtag code? Because of <em>Suppress-Script: Latn</em> , in the IANA Language Subtag Registry as was shown earlier. If I understood it correctly, it means that the Tagalog language as per the official standard should always be written in the Latin script. I assume then that lang=“tl-Tglg” is wrong and applications have the option to ignore it or drop the “Tglg” script subtag. In this case, just use “fil-Tglg”.</del></p>
<h2 id="iso-639-3-languages">ISO-639-3 Languages</h2>
<p>There is another subtag that you should learn if you want to target <a href="https://web.archive.org/web/20130218160105///www.sil.org:80/iso639-3/macrolanguages.asp" title="dialects and macrolanguages" class="icon_external" rel="noopener external">dialects and macrolanguages</a>. You can find a list from the ISO standard <a href="https://web.archive.org/web/20130217113439///www.sil.org:80/iso639-3/codes.asp?" title="ISO-639-3" class="icon_external" rel="noopener external">ISO-639-3</a>. Let’s use Bikolano as an example. The format to use is: language-extended_language-Script.</p>
<ul>
<li>If you are writing in Central Bikolano, use: <code>lang="bik-bcl"</code></li>
<li>If writing in Albay Bikolano / Buhi-Daraga: <code>lang="bik-bhk"</code></li>
<li>If in Iriga Bikolano using the Baybayin script: <code>lang="bik-bto-Tglg"</code></li>
<li>If in Pandan (Northern Catanduanes) using the Baybayin script: <code>lang="bik-cts-Tglg"</code></li>
</ul>
<p>The language-<em><strong>extended_language</strong></em>-Script is, as of this article, still not yet implemented. The basis for the lang attribute is always the <a href="https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry" title="IANA Language Subtag Registry" class="icon_external" rel="noopener external">IANA Language Subtag Registry</a>, once it has been updated to include <em>extended_language</em>s then we can start using it where needed.</p>
<h3 id="the-phi-language-subtag">The <em>phi</em> language subtag</h3>
<p>Next is if your language have an ISO-639-3 code and is under or part of the language code “phi” in ISO-639-2, then the <em>phi</em> subtag is to be used. This subtag code is considered a <strong>collective language</strong>. Good examples are:</p>
<ul>
<li>Kinaray-a language: <code>lang="phi-krj"</code></li>
<li>Maguindanao language: <code>lang="phi-mdh"</code></li>
<li>Maranao language written in Baybayin script: <code>lang="phi-Tglg-mrw"</code></li>
<li>Tausug language written in Baybayin script: <code>lang="phi-Tglg-tsg"</code></li>
</ul>
<p>As you probably have noticed the format I used was <em>language-Script-variant</em> and not <em>language-extended_language-Script</em>. My reasoning is simple - the <em>phi</em> language code is not really a language, it is accurately called a “collective” language entry in ISO-639-2 for all other Philippine languages <strong>not found</strong> in this version of the ISO language standard. Compare that to the <em>bik</em> language code, it was clearly marked as a “macrolanguage” both in ISO-639-2 and ISO-639-3.</p>
<p>Additionally, according to the <a href="https://www.w3.org/International/articles/language-tags/" title="World Wide Web Consortium" class="icon_external" rel="noopener external">World Wide Web Consortium</a> or W3C, <strong>dialects</strong> of macrolanguages are considered/should be written <strong>immediately after</strong> the language subtag. In other words, if your ISO-639-2 code is considered a macrolanguage then you should use the <em>extended_language</em> subtag position like <code>lang="bik-cts-Tglg"</code>. If it wasn’t defined as a macrolanguage, then you should use the <em>variant</em> subtag position as is the case in <code>lang="phi-Tglg-tsg"</code>.</p>
<h2 id="examples-examples-and-more-examples">Examples, examples, and more examples…</h2>
<p>If you website is mainly about Iriga and you write in your own language, then you should adjust your website’s header files accordingly:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="cp"><!DOCTYPE html></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">html</span> <span class="na">lang</span><span class="o">=</span><span class="s">"bik-bto"</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"><</span><span class="nt">head</span><span class="p">></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">meta</span> <span class="na">charset</span><span class="o">=</span><span class="s">"UTF-8"</span> <span class="p">/></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">meta</span> <span class="na">description</span><span class="o">=</span><span class="s">"Ang Website Ko Sa Iriga Bikolano"</span> <span class="p">/></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">meta</span> <span class="na">keywords</span><span class="o">=</span><span class="s">"Philippines, Baybayin, Iriga, Bikolano"</span> <span class="p">/></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">title</span><span class="p">></span>Ang Website Ko Sa Iriga Bikolano<span class="p"></</span><span class="nt">title</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"></</span><span class="nt">head</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"><</span><span class="nt">body</span><span class="p">></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">p</span><span class="p">></span>Mabuhay!<span class="p"></</span><span class="nt">p</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"></</span><span class="nt">body</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">html</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>If you want to write “Happy Father’s Day” in Baybayin, this is how you do it:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">  <span class="p"><</span><span class="nt">bdi</span> <span class="na">lang</span><span class="o">=</span><span class="s">"fil-Tglg"</span><span class="p">></span>ᜋᜎᜒᜄᜌᜅ᜔ ᜀᜍᜏ᜔ ᜈᜅ᜔ ᜋᜅ ᜀᜋ<span class="p"></</span><span class="nt">bdi</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Simple? Cool! Just remember that when writing language tags, keep it as simple and as short as possible. If you do not have a need to be very specific like say <code>lang="bik-bcl"</code> then don’t be! Simply use <code>lang="bik"</code>. This is especially true for blogs. So if your blog is in Filipino language (!not Tagalog!) then you use:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">html</span> <span class="na">lang</span><span class="o">=</span><span class="s">"fil"</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Only be specific when you need it or when your site caters mainly to that particular audience and/or region. Additionally, if you are going to use (which you probably will) other languages and scripts, enclose it always in a span or div element as I’ve shown in my Baybayin example above.</p>
<p>Easy? Yes it is. It takes time to get used to it, and yes, it is confusing at first. But you will get the hang of it eventually. Go on and update your websites now and start practising marking your content with the correct language and script.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://www.flickr.com/photos/29233640@N07/24754999650" rel="dct:title noopener external nofollow">lave t’es mains</a></cite> by <a href="https://www.flickr.com/photos/29233640@N07/" rel="dct:creator noopener external nofollow">Robert Couse-Baker</a> is
                  licensed under <a href="https://creativecommons.org/licenses/by/2.0/" rel="license noopener external">CC-BY 2.0</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="html" label="HTML" scheme="https://im.youronly.one/techmagus/tag/html/"/><published>2009-06-20T16:20:37Z</published></entry><entry><title>[How-To] Type the Philippine Peso currency sign</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/type-philippines-peso-sign-2009132/"/><id>https://im.youronly.one/techmagus/type-philippines-peso-sign-2009132/</id><updated>2009-05-12T06:36:38Z</updated><summary type="html"><![CDATA[<p>Last night, I searched if there were fonts updated to include the Philippine Peso currency sign which has been added in Unicode since version 3.2 release. The Unicode position of the Peso sign is at point 20B1 if you want to check it out for yourself.</p>
<p>I was planning on creating a Peso font if I can not find one, this was after the availability of the Peso sign was discussed during the <a href="https://im.youronly.one/techmagus/ubuntu-philippines-release-party-2009115/" title="[Event] Philippine Ubuntu 9.04 release party">[Event] Philippine Ubuntu 9.04 release party</a>. My search turned-out positive, there’s not just one but countless of fonts with the Peso sign already included.</p>]]></summary><content type="html"><![CDATA[<img src="https://3.bp.blogspot.com/-mD1PvPYiByQ/XqojsqGYt-I/AAAAAAAAhbc/zyUcpXv5TSISNrejahgZKAix-YnJ8KRBQCLcBGAsYHQ/s1600/Peso_sign.svg.png" /><p>Last night, I searched if there were fonts updated to include the Philippine Peso currency sign which has been added in Unicode since version 3.2 release. The Unicode position of the Peso sign is at point 20B1 if you want to check it out for yourself.</p>
<p>I was planning on creating a Peso font if I can not find one, this was after the availability of the Peso sign was discussed during the <a href="https://im.youronly.one/techmagus/ubuntu-philippines-release-party-2009115/" title="[Event] Philippine Ubuntu 9.04 release party">[Event] Philippine Ubuntu 9.04 release party</a>. My search turned-out positive, there’s not just one but countless of fonts with the Peso sign already included.</p>
<p>This is the real Peso sign: ₱ – it is not an uppercase strike-through <span style="text-decoration: line-through;">P</span>. Here’s a comparison:</p>
<table class="grid_center" style="width: 50%; margin-bottom: 10px;">
  <tbody>
    <tr>
      <td class="txt_center" style="width: 50%;"><span style="font-size: 5em;">₱</span></td>
      <td class="txt_center" style="width: 50%;"><span style="text-decoration: line-through; font-size: 5em;">P</span></td>
    </tr>
  </tbody>
  <tfooter>
    <tr>
      <td class="txt_center">Correct way</td>
      <td class="txt_center">old way</td>
    </tr>
  </tfooter>
</table>
<p>If you can not see the Peso sign above, then you do not have an updated font, or any font for that matter, with a Peso sign included. This also means that your fonts are possibly non-Unicode compliant. Time to update.</p>
<h2 id="lets-start-typing-the-peso-sign">Let’s Start Typing the Peso Sign</h2>
<ul class="custom_liststyle omark-black list-blue">
  <li>For Microsoft® Office (2002+) and WordPad, there are two ways to do this:
    <ol class="custom_liststyle circles-list">
      <li>Simply Copy & Paste the Peso sign above to your document; or</li>
      <li>Type in your document the hexadecimal value of the Peso sign: 20B1 or U+20B1. Then press Alt+X (do not put a space after the hexadecimal code)</li>
    </ol>
  </li>
  <li>For Firefox users, install the <a href="https://addons.mozilla.org/en-US/firefox/addon/unicode-input-toolconverter/" target="_blank">Unicode Input Tool/Converter</a> extension. Then just type "Peso" in the field "Search by character name".</li>
</ul>
<h2 id="lets-put-a-peso-sign-in-your-computer">Let’s Put A Peso Sign In Your Computer</h2>
<p>Here are some of the free-of-charge fonts that you can freely download and install, which already have the Peso sign included (U+20B1).</p>
<ul>
<li><a href="https://www.code2000.net/code2000_page.htm" target="_blank">Code2000</a></li>
<li><a href="https://dejavu-fonts.org/wiki/Main_Page" target="_blank">DejaVu family</a></li>
<li><a href="https://www-01.sil.org/~gaultney/Gentium/" target="_blank">Gentium family</a></li>
<li><a href="https://linuxlibertine.sourceforge.net" target="_blank">Linux Libertine family</a></li>
<li><a href="https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=UnicodeBMPFallbackFont&_sc=1" target="_blank">Unicode BMP Fallback SIL</a></li>
</ul>
<p>Start typing those Peso signs, the correct way!</p>
<hr>
<p><strong>Update 2010-11-14</strong>: You can now type the ₱eso sign directly from your keyboard simply by pressing RightAlt+P or AltGr+P.  But before you can do that, you need to add the <a href="https://im.youronly.one/techmagus/" title="Philippines Unicode Keyboard Layout">Philippines Unicode Keyboard Layout</a> which is now available in both <a href="https://im.youronly.one/techmagus/projects/keyboards/ph-ukl/philippines-keyboard-unicode-baybayin-linux/" title="GNU/Linux">GNU/Linux</a> and <a href="https://im.youronly.one/techmagus/projects/keyboards/ph-ukl/philippines-keyboard-unicode-baybayin-linux/" title="Windows®">Windows</a>®.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://commons.wikimedia.org/wiki/File:Peso_sign.svg" rel="dct:title noopener external nofollow">Peso sign</a></cite> by <a href="https://commons.wikimedia.org/wiki/User:Amit6" rel="dct:creator noopener external nofollow">Amit6</a> is
                  <a href="https://creativecommons.org/publicdomain/mark/1.0/" rel="license noopener external">free of known copyright restrictions</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><published>2009-05-12T06:36:38Z</published></entry><entry><title>How-To integrate DISQUS on Blogger/BlogSpot classic templates</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/kb/webdev/integrate-disqus-blogger-blogspot-classic/"/><id>https://im.youronly.one/techmagus/kb/webdev/integrate-disqus-blogger-blogspot-classic/</id><updated>2008-05-24T18:45:39Z</updated><summary type="html"><![CDATA[<figure class="quote_box qbs_generic  qbc_yellow">
<div>
<p>This only applies to “first-generation classic themes” or “traditional templates”.</p>
</div></figure>
<p>Maybe you have read my <a href="https://im.youronly.one/techmagus/kb/webdev/add-disqus-blogger-blogspot/" title="HOW TO: Add DISQUS Manually on Blogger/BlogSpot">HOW TO: Add DISQUS Manually on Blogger/BlogSpot</a> but found it is for XML-based templates. Fret not, in this how-to, we are going to integrate DISQUS on your Blogger/BlogSpot Classic/Custom Template!</p>]]></summary><content type="html"><![CDATA[<img src="https://4.bp.blogspot.com/-g0D8KJDIhYA/XqVTmie0X2I/AAAAAAAAhY8/aYSBg3dpOzYlHLAV60sJdXgYMNRua4RQQCPcBGAYYCw/s1600/Blog-01.jpg" /><figure class="quote_box qbs_generic  qbc_yellow">
<div>
<p>This only applies to “first-generation classic themes” or “traditional templates”.</p>
</div></figure>
<p>Maybe you have read my <a href="https://im.youronly.one/techmagus/kb/webdev/add-disqus-blogger-blogspot/" title="HOW TO: Add DISQUS Manually on Blogger/BlogSpot">HOW TO: Add DISQUS Manually on Blogger/BlogSpot</a> but found it is for XML-based templates. Fret not, in this how-to, we are going to integrate DISQUS on your Blogger/BlogSpot Classic/Custom Template!</p>
<p>Check for updates below this guide. Latest update on Tuesday, 2009-04-28.</p>
<p>But first, thanks to <a href="https://disqus.com/by/nathos/" target="_blank" rel="noopener">Nathan</a> <a href="https://nathos.com/" target="_blank" rel="noopener">Henderson</a> for sharing the changes he did. I then added a few more edits to give the finishing touch. Last but definitely not the least, read this warning.</p>
<figure class="quote_box qbs_generic  qbc_red">
<div>
<p><strong>WARNING</strong>: Be sure to back-up your <em>working</em> template before attempting to overwrite it! This guide is also recommended to be followed by those comfortable with editing HTML/CSS.</p>
</div></figure>
<h2 id="step-1">Step 1</h2>
<ul>
<li>
<p>1.1: Add this to your CSS area or CSS file:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="c">/* Depending on your template, sometimes on some browsers, disqus doesn't auto-width 100% */</span>
</span></span><span class="line"><span class="cl"><span class="p">#</span><span class="nn">disqus_thread</span><span class="o">,</span> <span class="p">#</span><span class="nn">disqus_thread</span> <span class="p">#</span><span class="nn">dsq-content</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">width</span><span class="p">:</span> <span class="mi">100</span><span class="kt">%</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="step-2">Step 2</h2>
<p>Step 2 is for the “0 Comment”; “1 Comment”; “10 Comments” link that shows on your main page.</p>
<ul>
<li>
<p>2.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">class</span><span class="o">=</span><span class="s">"comment-link"</span> <span class="na">href</span><span class="o">=</span><span class="s">"<$BlogItemCommentCreate$>"</span><span class="err"><$</span><span class="na">BlogItemCommentFormOnclick</span><span class="err">$</span><span class="p">></span>><span class="p"><</span><span class="nt">span</span> <span class="na">style</span><span class="o">=</span><span class="s">"text-transform:lowercase"</span><span class="p">></span><span class="err"><</span>$I18NNumComments$><span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">a</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>OR</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">class</span><span class="o">=</span><span class="s">"comment-link"</span> <span class="na">href</span><span class="o">=</span><span class="s">"<$BlogItemCommentCreate$>"</span><span class="err"><$</span><span class="na">BlogItemCommentFormOnclick</span><span class="err">$</span><span class="p">></span>><span class="err"><</span>$BlogItemCommentCount$> Comments<span class="p"></</span><span class="nt">a</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>2.2: Change it to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- <a class="comment-link" href="<$BlogItemCommentCreate$>"<$BlogItemCommentFormOnclick$>><span style="text-transform:lowercase"><$I18NNumComments$></span></a> --></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- +disqus --></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">class</span><span class="o">=</span><span class="s">'comment-link commentslink'</span> <span class="na">href</span><span class="o">=</span><span class="s">'<$BlogItemPermalinkUrl$>#disqus_thread'</span><span class="p">><</span><span class="nt">span</span> <span class="na">style</span><span class="o">=</span><span class="s">"text-transform:lowercase"</span><span class="p">></span>View Comments »<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">a</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- -disqus --></span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>OR</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- <a class="comment-link" href="<$BlogItemCommentCreate$>"<$BlogItemCommentFormOnclick$>><$BlogItemCommentCount$> Comments</a> --></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- +disqus --></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">class</span><span class="o">=</span><span class="s">'comment-link commentslink'</span> <span class="na">href</span><span class="o">=</span><span class="s">'<$BlogItemPermalinkUrl$>#disqus_thread'</span><span class="p">><</span><span class="nt">span</span> <span class="na">style</span><span class="o">=</span><span class="s">"text-transform:lowercase"</span><span class="p">></span>View Comments »<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">a</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- -disqus --></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="step-3">Step 3</h2>
<p>This step is for “0 Comment”; “1 Comment”; “10 Comments” text that shows up when viewing a single post. Also note that this piece of code is not present in some templates by-design, so skip to Step 4.</p>
<ul>
<li>
<p>3.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="err"><</span>$I18NNumComments$>:
</span></span></code></pre></td></tr></table>
</div>
</div><p>OR</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="err"><</span>$BlogItemCommentCount$> Comments:
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>3.2: Change it to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- <$I18NNumComments$>: --></span>
</span></span><span class="line"><span class="cl">Comments:
</span></span></code></pre></td></tr></table>
</div>
</div><p>OR</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- <$BlogItemCommentCount$> --></span> Comments:
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="step-4">Step 4</h2>
<ul>
<li>
<p>4.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="err"><</span>$BlogItemCreate$>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>4.2: Change it to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"><!-- <$BlogItemCreate$> -->
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>4.3: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"><$BlogItemFeedLinks$>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>4.4: Change it to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- <$BlogItemFeedLinks$> --></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="step-5">Step 5</h2>
<ul>
<li>
<p>5.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"></BlogItemCommentsEnabled>
</span></span><span class="line"><span class="cl"><BlogItemBacklinksEnabled>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>5.2: Add above/before:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- BGN: disqus --></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">"disqus_thread"</span><span class="p">></</span><span class="nt">div</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">'disqus_post_title'</span> <span class="na">style</span><span class="o">=</span><span class="s">'display:none;'</span><span class="p">></span><span class="err"><</span>$BlogItemTitle$><span class="p"></</span><span class="nt">div</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">'disqus_post_permalink'</span> <span class="na">style</span><span class="o">=</span><span class="s">'display:none;'</span><span class="p">></span><span class="err"><</span>$BlogItemPermalinkUrl$><span class="p"></</span><span class="nt">div</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */</span>
</span></span><span class="line"><span class="cl">    <span class="kd">var</span> <span class="nx">disqus_shortname</span> <span class="o">=</span> <span class="s1">'DISQUS-SHORT-NAME'</span><span class="p">;</span> <span class="c1">// required: replace example with your forum shortname
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kd">var</span> <span class="nx">disqus_title</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">'disqus_post_title'</span><span class="p">).</span><span class="nx">innerHTML</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kd">var</span> <span class="nx">disqus_url</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">'disqus_post_permalink'</span><span class="p">).</span><span class="nx">innerHTML</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* * * DON'T EDIT BELOW THIS LINE * * */</span>
</span></span><span class="line"><span class="cl">    <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="kd">var</span> <span class="nx">dsq</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'script'</span><span class="p">);</span> <span class="nx">dsq</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'text/javascript'</span><span class="p">;</span> <span class="nx">dsq</span><span class="p">.</span><span class="kr">async</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="nx">dsq</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s1">'//'</span> <span class="o">+</span> <span class="nx">disqus_shortname</span> <span class="o">+</span> <span class="s1">'.disqus.com/embed.js'</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'head'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'body'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">dsq</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="p">})();</span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">script</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">noscript</span><span class="p">></span>Please enable JavaScript to view the <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"https://disqus.com/?ref_noscript"</span><span class="p">></span>comments powered by Disqus.<span class="p"></</span><span class="nt">a</span><span class="p">></</span><span class="nt">noscript</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"https://disqus.com"</span> <span class="na">class</span><span class="o">=</span><span class="s">"dsq-brlink"</span><span class="p">></span>comments powered by <span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"logo-disqus"</span><span class="p">></span>Disqus<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">a</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- END: disqus --></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>5.3: In Step 5.2, change the <b>DISQUS-SHORT-NAME</b> to your blog’s DISQUS URL.<br />Example, if your DISQUS URL is <i>libresoftware.disqus.com</i> then change DISQUS-SHORT-NAME to <i>libresoftware</i>. There is <b>one</b> to change.</p>
</li>
</ul>
<h2 id="step-6">Step 6</h2>
<ul>
<li>
<p>6.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"></</span><span class="nt">body</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>6.2: Add above:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- BGN: disqus --></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */</span>
</span></span><span class="line"><span class="cl">    <span class="kd">var</span> <span class="nx">disqus_shortname</span> <span class="o">=</span> <span class="s1">'DISQUS-SHORT-NAME'</span><span class="p">;</span> <span class="c1">// required: replace example with your forum shortname
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* * * DON'T EDIT BELOW THIS LINE * * */</span>
</span></span><span class="line"><span class="cl">    <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'script'</span><span class="p">);</span> <span class="nx">s</span><span class="p">.</span><span class="kr">async</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="nx">s</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'text/javascript'</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="nx">s</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s1">'//'</span> <span class="o">+</span> <span class="nx">disqus_shortname</span> <span class="o">+</span> <span class="s1">'.disqus.com/count.js'</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'HEAD'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'BODY'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">s</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="p">}());</span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">script</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- END: disqus --></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>6.3: In step 6.2, change the DISQUS-SHORT-NAME to your blog’s DISQUS URL.<br />Again, if your DISQUS URL is <i>libresoftware.disqus.com</i> then change DISQUS-SHORT-NAME to <i>libresoftware</i>. Only <b>one</b> to change here.</p>
</li>
</ul>
<h2 id="step-7">Step 7</h2>
<ul>
<li>7.1: Copy your updated code to your Blogger’s Template editing section and save it.</li>
</ul>
<h2 id="step-8">Step 8</h2>
<ul>
<li>8.1: Force refresh your blog and blog-post (usually CTRL+F5) to see the changes.Force refresh tells your browser to fetch a new copy of the site from the server.</li>
</ul>
<p>You’re done! Congratulations!</p>
<p>Some notes to remember. This how-to guide was designed to still show the comments posted via your built-in comment system (Blogger’s in this case), while at the same disabling the ability to post new comments using the old system by removing the link.</p>
<p>For the adventurous, you can also find the <span class="popper animate removed_link" data-popper="https://disqus.disqus.com/developers/">DISQUS API here</span>.</p>
<hr>
<h2 id="updates">Updates</h2>
<ul>
<li>
<p>Friday, 2013-08-02: Updated the JavaScript code to reflect the latest disqus script in steps 5 and 6</p>
</li>
<li>
<p>Saturday, 2008-06-14</p>
<ul>
<li>Updated the instructions to include the older Classic Template codes</li>
<li>Updated Step 6. The reason the ## Comments was not showing up was because I missed to change one instance of DISQUS-SHORT-NAME, which was pulling data from “highstreet5”. Please check your codes on Step 6</li>
<li>Thanks to the classic blogger code provided by <a href="https://balazos.blogspot.com" target="_blank" rel="noopener">David Alvarez</a>. I was helping him integrate DISQUS and that’s when I caught the error.</li>
</ul>
</li>
<li>
<p>Saturday, 2008-08-02: The tutorial was added at <a href="https://web.archive.org/web/20100428045802/https://disqus.disqus.com:80/help_using_disqus_with_custom_blogger_templates/" target="_blank" rel="noopener">DISQUS help forums</a> by <a href="https://disqus.com/by/Badr/" target="_blank" rel="noopener">Andrew</a> (from Disqus). Thank you very much and I’m glad to be of help to the community!</p>
</li>
<li>
<p>Saturday, 2008-08-23: Changed /{YOUR-DISQUS-URL}/ to /DISQUS-SHORT-URL/ to avoid confusion. Thanks to hackcrack for the suggestion.</p>
</li>
<li>
<p>Tuesday, 2009-04-28: Corrected Steps 5.2 and 6.2. Hat tip to chrisdfeld for catching the errors.</p>
</li>
<li>
<p>Tuesday, 2011-07-06: Fixed typographical error in Step 5.2, thanks to <a href="https://the-randomizer.blogspot.com" target="_blank" rel="noopener">lil-bee</a> for bringing it to my attention</p>
</li>
</ul>
<p>If you have other questions, don’t hesitate to reply in our Disqus-powered comments or the <a href="https://web.archive.org/web/20100428045802/https://disqus.disqus.com:80/help_using_disqus_with_custom_blogger_templates/" target="_blank" rel="noopener">official Disqus forums</a>!</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://www.flickr.com/photos/manoftaste-de/14045819341" rel="dct:title noopener external nofollow">Blog</a></cite> by <a href="https://www.manoftaste.de" rel="dct:creator noopener external nofollow"><a href="https://www.manoftaste.de" title="www.manoftaste.de" class="icon_external" rel="noopener external">www.manoftaste.de</a></a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/2.0/" rel="license noopener external">CC BY-SA 2.0</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="google blogger" label="Google Blogger" scheme="https://im.youronly.one/techmagus/tag/google-blogger/"/><published>2008-05-24T18:45:39Z</published></entry><entry><title>How-To add DISQUS manually on Blogger/BlogSpot</title><link rel="alternate" type="text/html" hreflang="en-ph" href="https://im.youronly.one/techmagus/kb/webdev/add-disqus-blogger-blogspot/"/><id>https://im.youronly.one/techmagus/kb/webdev/add-disqus-blogger-blogspot/</id><updated>2008-05-23T04:12:48Z</updated><summary type="html"><![CDATA[<figure class="quote_box qbs_generic  qbc_yellow">
<div>
<p>This guide was last updated on 2008 and since then Disqus created an automated method. It is strongly suggested to use it by visiting <a href="https://disqus.com/admin/settings/blogger/" title="this link" class="icon_external" rel="noopener external">this link</a> and then switch to the correct site.</p>
</div></figure>
<p>If like me you are using <a class="popper animate" href="https://disqus.com" target="_blank" rel="noopener" data-popper="DISQUS">DISQUS</a> for your blog or site comments system, then maybe you’ve encountered a problem with integrating it to your custom theme/template. In this simple tutorial, I will show you which code bits to edit to successfully integrate Disqus into your Google Blogger/BlogSpot XML-based template. (Basically it is the same with any theme/template regardless of your blog platform or CMS.)</p>
<p>But if you have a Classic Template, then read my <a href="https://im.youronly.one/techmagus/kb/webdev/integrate-disqus-blogger-blogspot-classic/" title="HOW TO: Integrate DISQUS on Blogger/BlogSpot Classic Template">HOW TO: Integrate DISQUS on Blogger/BlogSpot Classic Template</a> instead.</p>]]></summary><content type="html"><![CDATA[<img src="https://4.bp.blogspot.com/-g0D8KJDIhYA/XqVTmie0X2I/AAAAAAAAhY8/aYSBg3dpOzYlHLAV60sJdXgYMNRua4RQQCPcBGAYYCw/s1600/Blog-01.jpg" /><figure class="quote_box qbs_generic  qbc_yellow">
<div>
<p>This guide was last updated on 2008 and since then Disqus created an automated method. It is strongly suggested to use it by visiting <a href="https://disqus.com/admin/settings/blogger/" title="this link" class="icon_external" rel="noopener external">this link</a> and then switch to the correct site.</p>
</div></figure>
<p>If like me you are using <a class="popper animate" href="https://disqus.com" target="_blank" rel="noopener" data-popper="DISQUS">DISQUS</a> for your blog or site comments system, then maybe you’ve encountered a problem with integrating it to your custom theme/template. In this simple tutorial, I will show you which code bits to edit to successfully integrate Disqus into your Google Blogger/BlogSpot XML-based template. (Basically it is the same with any theme/template regardless of your blog platform or CMS.)</p>
<p>But if you have a Classic Template, then read my <a href="https://im.youronly.one/techmagus/kb/webdev/integrate-disqus-blogger-blogspot-classic/" title="HOW TO: Integrate DISQUS on Blogger/BlogSpot Classic Template">HOW TO: Integrate DISQUS on Blogger/BlogSpot Classic Template</a> instead.</p>
<p>Check for updates below this guide. Latest update: Saturday, 2008-08-23.</p>
<figure class="quote_box qbs_generic  qbc_red">
<div>
<p><strong>WARNING</strong>: Be sure to back-up your <em>working</em> template before you overwrite it! Last but not the least, you should be comfortable with editing HTML and CSS, otherwise, you might get frustrated, confused, and end up with a non-working blog/site.</p>
</div></figure>
<p>With that said, let’s begin!</p>
<h2 id="step-1">Step 1</h2>
<p>This step is for the “0 Comment”; “1 Comment”; “10 Comments” link that shows on your main page.</p>
<ul>
<li>
<p>1.1: Add this to your CSS area or CSS file</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-css" data-lang="css"><span class="line"><span class="cl"><span class="c">/* Depending on your template, sometimes on some browsers, disqus doesn't auto-width 100% */</span>
</span></span><span class="line"><span class="cl"><span class="p">#</span><span class="nn">disqus_thread</span><span class="o">,</span> <span class="p">#</span><span class="nn">disqus_thread</span> <span class="p">#</span><span class="nn">dsq-content</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="k">width</span><span class="p">:</span> <span class="mi">100</span><span class="kt">%</span><span class="p">;</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="step-2">Step 2</h2>
<ul>
<li>
<p>2.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">b:if</span> <span class="na">cond</span><span class="o">=</span><span class="s">'data:post.allowComments'</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="p"><</span><span class="nt">a</span> <span class="na">expr:href</span><span class="o">=</span><span class="s">'data:post.addCommentUrl'</span> <span class="na">expr:onclick</span><span class="o">=</span><span class="s">'data:post.addCommentOnclick'</span><span class="p">><</span><span class="nt">data:post.numComments</span><span class="p">/></span> Comments<span class="err"><</span>;/a>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">b:if</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>2.2: Change it to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">b:if</span> <span class="na">cond</span><span class="o">=</span><span class="s">'data:post.allowComments'</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="c"><!-- <a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:post.numComments/> Comments</a> --></span>
</span></span><span class="line"><span class="cl">    <span class="c"><!-- +disqus --></span>
</span></span><span class="line"><span class="cl">    <span class="p"><</span><span class="nt">a</span> <span class="na">class</span><span class="o">=</span><span class="s">'comment-link commentslink'</span> <span class="na">expr:href</span><span class="o">=</span><span class="s">'data:post.url + "#disqus_thread"'</span><span class="p">></span>View Comments »<span class="p"></</span><span class="nt">a</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="c"><!-- -disqus --></span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">b:if</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="step-3">Step 3</h2>
<p>Step 3 is for the “0 Comment”; “1 Comment”; “10 Comments” text that shows when viewing a specific post. Some templates do not have this, so if you can’t find it, skip to Step 4.</p>
<ul>
<li>
<p>3.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">b:if</span> <span class="na">cond</span><span class="o">=</span><span class="s">'data:post.numComments == 1'</span><span class="p">></span>
</span></span><span class="line"><span class="cl">        1 <span class="p"><</span><span class="nt">data:commentLabel</span><span class="p">/></span>:
</span></span><span class="line"><span class="cl">    <span class="p"><</span><span class="nt">b:else</span><span class="p">/></span>
</span></span><span class="line"><span class="cl">        <span class="p"><</span><span class="nt">data:post.numComments</span><span class="p">/></span> <span class="p"><</span><span class="nt">data:commentLabelPlural</span><span class="p">/></span>:
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">b:if</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>3.2: Change it to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- <b:if cond='data:post.numComments == 1'> --></span>
</span></span><span class="line"><span class="cl">        <span class="c"><!-- 1 <data:commentLabel/>: --></span>
</span></span><span class="line"><span class="cl">    <span class="c"><!-- <b:else/> --></span>
</span></span><span class="line"><span class="cl">        <span class="c"><!-- <data:post.numComments/> <data:commentLabelPlural/>: --></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- </b:if> --></span>
</span></span><span class="line"><span class="cl">Comments:
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="step-4">Step 4</h2>
<ul>
<li>
<p>4.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">'backlinks-container'</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>4.2: Usually, above the code bit in 4.1, you will find this:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">p</span> <span class="na">class</span><span class="o">=</span><span class="s">'comment-footer2'</span><span class="p">></span>
</span></span><span class="line"><span class="cl">  <span class="p"><</span><span class="nt">a</span> <span class="na">expr:href</span><span class="o">=</span><span class="s">'data:post.addCommentUrl'</span> <span class="na">expr:onclick</span><span class="o">=</span><span class="s">'data:post.addCommentOnclick'</span><span class="p">><</span><span class="nt">data:postCommentMsg</span><span class="p">/></</span><span class="nt">a</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<p>It may be enclosed on a DIV tag instead of a P element. Additionally, sometimes you may find that it’s arranged differently, if so, just look for any bits similar to 4.1.</p>
<ul>
<li>
<p>4.3: Once you find it, change it to:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- <p class='comment-footer2'> --></span>
</span></span><span class="line"><span class="cl">    <span class="c"><!-- <a expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><data:postCommentMsg/></a> --></span>
</span></span><span class="line"><span class="cl"><span class="c"><!--  --></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<h2 id="step-5">Step 5</h2>
<ul>
<li>
<p>5.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">'backlinks-container'</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>5.2: Above it add:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span><span class="lnt">15
</span><span class="lnt">16
</span><span class="lnt">17
</span><span class="lnt">18
</span><span class="lnt">19
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- BGN: disqus --></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">"disqus_thread"</span><span class="p">></</span><span class="nt">div</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">'disqus_post_title'</span> <span class="na">style</span><span class="o">=</span><span class="s">'display:none;'</span><span class="p">><</span><span class="nt">data:post.title</span><span class="p">/></</span><span class="nt">div</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">div</span> <span class="na">id</span><span class="o">=</span><span class="s">'disqus_post_permalink'</span> <span class="na">style</span><span class="o">=</span><span class="s">'display:none;'</span><span class="p">><</span><span class="nt">data:post.url</span><span class="p">/></</span><span class="nt">div</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */</span>
</span></span><span class="line"><span class="cl">    <span class="kd">var</span> <span class="nx">disqus_shortname</span> <span class="o">=</span> <span class="s1">'DISQUS-SHORT-NAME'</span><span class="p">;</span> <span class="c1">// required: replace example with your forum shortname
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>    <span class="kd">var</span> <span class="nx">disqus_title</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">'disqus_post_title'</span><span class="p">).</span><span class="nx">innerHTML</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="kd">var</span> <span class="nx">disqus_url</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">'disqus_post_permalink'</span><span class="p">).</span><span class="nx">innerHTML</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* * * DON'T EDIT BELOW THIS LINE * * */</span>
</span></span><span class="line"><span class="cl">    <span class="p">(</span><span class="kd">function</span><span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="kd">var</span> <span class="nx">dsq</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'script'</span><span class="p">);</span> <span class="nx">dsq</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'text/javascript'</span><span class="p">;</span> <span class="nx">dsq</span><span class="p">.</span><span class="kr">async</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="nx">dsq</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s1">'//'</span> <span class="o">+</span> <span class="nx">disqus_shortname</span> <span class="o">+</span> <span class="s1">'.disqus.com/embed.js'</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'head'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'body'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">dsq</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="p">})();</span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">script</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">noscript</span><span class="p">></span>Please enable JavaScript to view the <span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"https://disqus.com/?ref_noscript"</span><span class="p">></span>comments powered by Disqus.<span class="p"></</span><span class="nt">a</span><span class="p">></</span><span class="nt">noscript</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">"https://disqus.com"</span> <span class="na">class</span><span class="o">=</span><span class="s">"dsq-brlink"</span><span class="p">></span>comments powered by <span class="p"><</span><span class="nt">span</span> <span class="na">class</span><span class="o">=</span><span class="s">"logo-disqus"</span><span class="p">></span>Disqus<span class="p"></</span><span class="nt">span</span><span class="p">></</span><span class="nt">a</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- END: disqus --></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
</ul>
<p>Note: If above the code bit shown in 5.1 there is a &lt;/b:if&gt;, then put the code bit in 5.2 <b>before</b> &lt;/b:if&gt;. If it isn’t there, as in some templates, you probably have to add it.</p>
<ul>
<li>5.3: From Step 5.2, change the <b>DISQUS-SHORT-URL</b> to your blog’s DISQUS URL.<br />Example, if your DISQUS URL is <i>libresoftware.disqus.com</i> then change DISQUS-SHORT-URL to <i>libresoftware</i>. There are <b>two</b> to change!</li>
</ul>
<h2 id="step-6">Step 6</h2>
<ul>
<li>
<p>6.1: Look for:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p"></</span><span class="nt">body</span><span class="p">></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>6.2: Add above:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span><span class="lnt">11
</span><span class="lnt">12
</span><span class="lnt">13
</span><span class="lnt">14
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="c"><!-- BGN: disqus --></span>
</span></span><span class="line"><span class="cl"><span class="p"><</span><span class="nt">script</span> <span class="na">type</span><span class="o">=</span><span class="s">"text/javascript"</span><span class="p">></span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */</span>
</span></span><span class="line"><span class="cl">    <span class="kd">var</span> <span class="nx">disqus_shortname</span> <span class="o">=</span> <span class="s1">'DISQUS-SHORT-NAME'</span><span class="p">;</span> <span class="c1">// required: replace example with your forum shortname
</span></span></span><span class="line"><span class="cl"><span class="c1"></span>
</span></span><span class="line"><span class="cl">    <span class="cm">/* * * DON'T EDIT BELOW THIS LINE * * */</span>
</span></span><span class="line"><span class="cl">    <span class="p">(</span><span class="kd">function</span> <span class="p">()</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="kd">var</span> <span class="nx">s</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s1">'script'</span><span class="p">);</span> <span class="nx">s</span><span class="p">.</span><span class="kr">async</span> <span class="o">=</span> <span class="kc">true</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="nx">s</span><span class="p">.</span><span class="nx">type</span> <span class="o">=</span> <span class="s1">'text/javascript'</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="nx">s</span><span class="p">.</span><span class="nx">src</span> <span class="o">=</span> <span class="s1">'//'</span> <span class="o">+</span> <span class="nx">disqus_shortname</span> <span class="o">+</span> <span class="s1">'.disqus.com/count.js'</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">        <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'HEAD'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">||</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementsByTagName</span><span class="p">(</span><span class="s1">'BODY'</span><span class="p">)[</span><span class="mi">0</span><span class="p">]).</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">s</span><span class="p">);</span>
</span></span><span class="line"><span class="cl">    <span class="p">}());</span>
</span></span><span class="line"><span class="cl"><span class="p"></</span><span class="nt">script</span><span class="p">></span>
</span></span><span class="line"><span class="cl"><span class="c"><!-- END: disqus --></span>
</span></span></code></pre></td></tr></table>
</div>
</div></li>
<li>
<p>6.3: In Step 6.2, change the <b>DISQUS-SHORT-URL</b> to your blog’s DISQUS URL.<br />Again, if your DISQUS URL is <i>libresoftware.disqus.com</i> then change DISQUS-SHORT-URL to <i>libresoftware</i>, there is only <b>one</b> to change.</p>
</li>
</ul>
<h2 id="step-7">Step 7</h2>
<ul>
<li>7.1: Copy your final code to your Blogger’s template and save it.</li>
</ul>
<h2 id="step-8">Step 8</h2>
<ul>
<li>8.1: Force refresh your blog and blog-post (usually CTRL+F5) to see the changes.<br />* Force refresh tells your browser to discard your current cached copy of your site and instead fetch a new copy from the server.</li>
</ul>
<p>At this point, you are done when all is working fine. Congratulations!</p>
<p>Some things to remember. This how-to was designed to still show the comments posted on your built-in comment system (usually Blogger’s) while at the same time disabling any new comments from being posted using the built-in comment system, by removing the link to do so. However, if your visitors knows the direct link to Blogger’s built-in comment system, they can still leave comments the old way.</p>
<p>To effectively disable it without hiding all earlier comments, you need to edit the Post Options of each of your posts and change it to “Don’t allow, show existing”. Later, Disqus will introduce an import feature, so all old comments will be copied to your Disqus as well. Until then, this is the solution that I can think of.</p>
<p>For the adventurous, you can find information on the Disqus API by visiting the official <a href="https://help.disqus.com/">developers webpage</a>.</p>
<p>Hope that helps!</p>
<hr>
<h2 id="updates">Updates</h2>
<ul>
<li>
<p>Friday, 2013-08-02: Updated the JavaScript code to reflect the latest disqus script in steps 5 and 6</p>
</li>
<li>
<p>Saturday, 2008-05-24: Thanks to Disqus’ <a class="popper animate" href="https://disqus.com/by/danielha/" target="_blank" rel="noopener" data-popper="Daniel Ha on Disqus">Daniel Ha</a> for featuring this how-to article on the official website! Glad to be of help.</p>
</li>
<li>
<p>Monday, 2008-05-26: Chinese (Taiwan) version <a class="popper animate" href="https://black-tale.blogspot.com/2008/05/bloggerdisqus_26.html" target="_blank" rel="noopener" data-popper="[教學]Blogger如何手動安裝Disqus">[教學]Blogger如何手動安裝Disqus</a> with screenshots by <a class="popper animate" href="https://disqus.com/by/blacktale/" target="_blank" rel="noopener" data-popper="Blacktale on Disqus">Joyce Wu</a>.</p>
</li>
<li>
<p>Saturday, 2008-06-14: I updated step 6. I missed to change a Disqus URL to DISQUS-SHORT-URL, it was previously pulling data from “highstreet5”. Please check your codes on step 6.</p>
<ul>
<li>Thanks to the classic Blogger code provided by <a class="popper animate" href="https://disqus.com/by/davidalvarez/" target="_blank" rel="noopener" data-popper="David Alvarez on Disqus">David Alvarez</a>, you can find his blog at <a href="https://balazos.blogspot.com" target="_blank" rel="noopener">balazos.blogspot.com</a>. I was helping him integrate Disqus and that was when I caught the code I missed on Step 6.</li>
</ul>
</li>
<li>
<p>Saturday, 2008-08-02: The tutorial was added at <a href="https://web.archive.org/web/20100428045802/https://disqus.disqus.com:80/help_using_disqus_with_custom_blogger_templates/" target="_blank" rel="noopener">Disqus help forums</a> by <a class="popper animate" href="https://disqus.com/by/Badr/" target="_blank" rel="noopener" data-popper="Andrew on Disqus">Andrew</a> (from Disqus). Thank you very much and I’m glad to be of help to the community!</p>
</li>
<li>
<p>Saturday, 2008-08-23: Changed /{YOUR-DISQUS-URL}/ to /DISQUS-SHORT-URL/ to avoid confusion. Thanks to hackcrack.</p>
</li>
</ul>
<p>If you have other questions, don’t hesitate to post a reply in our Disqus powered comments system.</p>
<hr>
<div role="cover-image-attributions">
    <div class="header_attribution">
      <footer class="attribution_caption"><p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#"><small>
              ・ Cover image: <cite><a href="https://www.flickr.com/photos/manoftaste-de/14045819341" rel="dct:title noopener external nofollow">Blog</a></cite> by <a href="https://www.manoftaste.de" rel="dct:creator noopener external nofollow"><a href="https://www.manoftaste.de" title="www.manoftaste.de" class="icon_external" rel="noopener external">www.manoftaste.de</a></a> is
                  licensed under <a href="https://creativecommons.org/licenses/by-sa/2.0/" rel="license noopener external">CC BY-SA 2.0</a>.</small></p></footer>
    </div></div>]]></content><author><name>Yohan Yukiya Sese-Cuneta</name><uri>https://im.youronly.one/techmagus/</uri></author><category term="how-to" label="How-To" scheme="https://im.youronly.one/techmagus/cat/how-to/"/><category term="google blogger" label="Google Blogger" scheme="https://im.youronly.one/techmagus/tag/google-blogger/"/><published>2008-05-23T04:12:48Z</published></entry></feed>