xgqfrms / Gatsby-Tutorials-All-In-One

Gatsby-Tutorials-All-In-One
https://gatsby-react-app.xgqfrms.xyz
MIT License
1 stars 0 forks source link

cnblogs 私有化替换 #2

Open xgqfrms opened 1 year ago

xgqfrms commented 1 year ago

cnblogs 私有化替换

https://github.com/xgqfrms/gatsby-react-app/issues/31

xgqfrms commented 1 year ago

SSG, static site generator,静态站点生成

DSG, dynamic site generator, 动态站点生成

SSR, server side render, 服务端渲染

image

xgqfrms commented 1 year ago

https://gatsbyconf.com/

https://www.gatsbyjs.com/docs/

https://www.gatsbyjs.com/docs/tutorial/

xgqfrms commented 1 year ago

侧边栏

<!-- <!DOCTYPE html ⚡️amp> -->
<!DOCTYPE html>
<head>
<title>xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs!</title>
</head>
<!-- https://amp.xgqfrms.xyz/ -->
<blockquote style="display: flex; flex-flow: column; align-items: center; justify-content: center; text-align: center; border: none;">
    <h3>
      <strong>
        <span style="font-size: 16pt; color: #00ff00;">&copy; xgqfrms 2012-<span data-uid="copyright-aside">2020</span></span>
      </strong>
    </h3>
    <!-- SEO  -->
    <section data-uid="seo-flag"></section>
    <!-- <a href="https://s11.flagcounter.com/count2/QIXi" data-flagcounter="a">
       <img data-flagcounter="img" src="https://s11.flagcounter.com/count2/QIXi/bg_000000/txt_00FF00/border_FF00FF/columns_3/maxflags_12/viewers_0/labels_1/pageviews_1/flags_0/percent_1/" alt="cnblogs" border="0" />
    </a> -->
</blockquote>

<!-- <div>
  <a href="https://info.flagcounter.com/QIXi">
    <img src="https://s11.flagcounter.com/count2/QIXi/bg_000000/txt_00FF00/border_FF00FF/columns_3/maxflags_12/viewers_0/labels_1/pageviews_1/flags_0/percent_1/" alt="Flag Counter" border="0">
  </a>
</div> -->

<script defer>
// after load
setTimeout(() => {
   console.log(`👻 auto remove vote down`);
   const voteDown = document.querySelector(`[class="buryit"]`);
  // document.querySelector(`.buryit`);
  // voteDown.parentElement.removeChild(voteDown);
  voteDown.remove();
}, 0);

</script>
xgqfrms commented 1 year ago

页首

<!-- <!DOCTYPE html ⚡️amp> -->
<!-- <!DOCTYPE html> -->
<!DOCTYPE html>
<html lang="zh-Hans" manifest="manifest.appcache">

<head>
    <meta charset="UTF-8">
    <script async src="https://cdn.ampproject.org/v0.js"></script>
<script async src="https://cdn.ampproject.org/v0.js"></script>
    <!-- <title>Hello, AMPs</title>-->
   <title>xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs!</title>
    <link rel="canonical" href="https://www.cnblogs.com/xgqfrms//">
    <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
    <script type="application/ld+json">
      {
        "@context": "https://www.cnblogs.com/xgqfrms/",
        "@type": "Blogs",
        "headline": "xgqfrms, cnblogs, blogs",
        "datePublished": "2020-04-01T12:02:41Z",
        "image": [
          "https://cdn.xgqfrms.xyz/logo/icon.png"
        ]
      }
    </script>
    <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=3.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <meta name="author" content="xgqfrms">
    <meta name="generator" content="VS code">
    <title>xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!</title>

    <link rel="icon" href="images/logo.png" type="image/png">
    <link rel="icon" href="./favicon.ico" type="image/x-icon">

    <!-- SEO meta -->
    <link rel="author" type="text/plain" href="https://www.xgqfrms.xyz/humans.txt" />
    <link rel="manifest" href="manifest.json">
    <link rel="shortlink" href="https://xgqfrms.xyz/">
    <link rel="copyright" href="https://xgqfrms.xyz/copyright.html">
    <!-- 预呈现和预提取支持:https://msdn.microsoft.com/library/dn265039(v=vs.85).aspx -->

    <!-- 
<link rel="prerender" href="https://www.webgeeker.xyz/index.html" />
    <link rel="prefetch" href="https://www.webgeeker.xyz/css/style.css" />
    <link rel="dns-prefetch" href="https://www.webgeeker.xyz/" />
-->
    <!-- Content Security Policy:内容安全策略(CSP) -->
    <!--
    <meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src 'cdn.xgqfrms.xyz'; child-src 'https: https:'">
    -->
    <!--
    https://realfavicongenerator.net/
    https://css-tricks.com/favicon-quiz/
    -->
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-touch-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-touch-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-touch-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-touch-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-touch-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-touch-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-touch-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png">
    <link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32">
    <link rel="icon" type="image/png" href="/android-chrome-192x192.png" sizes="192x192">
    <link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16">
    <link rel="manifest" href="/manifest.json">
    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#00ff00">
    <meta name="msapplication-TileColor" content="#2d89ef">
    <meta name="msapplication-TileImage" content="/mstile-144x144.png">
    <meta name="theme-color" content="#00ccff">
    <!-- HEAD -->
    <!-- <meta name="robots" content="noindex" /> -->
    <meta name="author" content="xgqfrms, webgeeker">
    <meta name="keywords" content="xgqfrms, webgeeker, github, xgqfrms.xyz, webgeeker.xyz, Tutorials, ES5 ES6 ES7, React 2, Angular 2, Ionic 2">
    <meta name="description" content="xgqfrms.xyz : xgqfrms's offical website of GitHub! & xgqfrms, webgeeker, github, xgqfrms.xyz, webgeeker.xyz, Tutorials, ES5 ES6 ES7, React 2, Angular 2, Ionic 2">
    <meta name="application-name" content="xgqfrms.xyz, webgeeker.xyz">
    <meta name="generator" content="Sublime Text 3, Visual Studio Code 1.6, Google Chrome Canary, GitHub, React 2, Angular 2, Ionic 2">
    <meta name="msapplication-TileColor" content="#00ff00" />

    <!-- media query -->
    <!-- RSS -->
    <link href="https://xgqfrms.xyz/feeds/posts.rss" type="application/rss+xml" rel="alternate" title="Blog RSS" />
    <link href="https://xgqfrms.xyz/feeds/atom.xml" type="application/atom+xml" rel="alternate" title="Atom Feed" />
    <script src="https://cdn.xgqfrms.xyz/sdk/auto-meta.js" async></script>
</head>
xgqfrms commented 1 year ago

页脚

<div class="footer">
        <div id="xxx" style="background-color:black;">
            <footer class="site-footer">
                <span class="site-footer-owner">
                   <a href="https://github.com/xgqfrms/xgqfrms">xgqfrms</a> is maintained by 
                   <a href="https://www.xgqfrms.xyz/">xgqfrms™</a>.&nbsp;&nbsp;&nbsp;
                   <h3><mark>Powered by HTML5+CSS3+JavaScript...</mark></h3>
                </span>
                <span class="site-footer-credits">
                  <mark id="spanYear"></mark>
                  <a href="https://twitter.com/xgqfrms">Follow @xgqfrms</a>
                 <!-- <a href="https://twitter.com/xgqfrms" class="twitter-follow-button" data-show-count="false" data-width="100px" data-size="large">Follow @xgqfrms</a> -->
                 <a href="https://www.webgeeker.xyz/index.html">webgeeker.xyz(tutorials)</a>
              </span>
       </footer>
   </div>
</div>
<script src="https://cdn.xgqfrms.xyz/plugins/getfullyear.js" async></script>
<script src="https://cdn.xgqfrms.xyz/sdk/share-twitter.js" async></script>
<!--
  <script src="https://cdn.xgqfrms.xyz/sdk/share-twitter.js" async></script>
-->

<!-- 
  https://gist.github.com/xgqfrms/8393756fca6113d9effd65667362ebc4
  为了维护国家主权,弃用了
  TW, HK 不是 country, 是 China 的一部分!
 -->
<!-- <script src="https://cdn.xgqfrms.xyz/plugins/seo-flag.js" async></script> -->

<script src="https://cdn.xgqfrms.xyz/plugins/custom-log.js" async></script>

<script src="https://cdn.xgqfrms.xyz/plugins/auto-append-copyright.js" defer></script>

<!-- 禁用 debugger -->
<script src="https://cdn.xgqfrms.xyz/plugins/locked-debugger.js" async></script>

<!-- ©xgqfrms 2012-2022 -->
<!--

<script src="https://cdn.xgqfrms.xyz/copyright/index.js" async defer></script>
<script src="https://cdn.xgqfrms.xyz/plugins/auto-append-copyright.js" defer></script>

 -->

<script defer>
// after load
setTimeout(() => {
  // <a href="javascript:void(0);" id="green_channel_digg" onclick="shareToTwitter()" title="分享到 Twitter">分享到 Twitter</a>
  const shareBox = document.querySelector("#green_channel");
  if(shareBox) {
    shareBox.insertAdjacentHTML('afterbegin', `<a href="javascript:void(0);" id="green_channel_digg" onclick="shareToTwitter()" title="分享到 Twitter">分享到 Twitter</a>`);
  }
}, 1000);

//schedule 调度
// https://www.cnblogs.com/xgqfrms/p/16834738.html
// setTimeout(() => {
//   // console.log(`@copyright xgqfrms\n`, `https://cdn.xgqfrms.xyz/plugins/getfullyear.js`);
//   const copyYear = document.querySelector(`[data-uid="copyright-aside"]`);
//   copyYear.innerText = new Date().getFullYear();
// }, 3000);

const  updateYear = (uid =  `[data-uid="copyright-aside"]`) => {
  const copyYear = document.querySelector(uid);
  copyYear.innerText = new Date().getFullYear();
};

const updateAllYears = (uid =  `[data-uid="copyright-aside"]`) => {
  const copyYears = [...document.querySelectorAll(uid)];
  for(const copyYear of copyYears) {
    copyYear.innerText = new Date().getFullYear();
  }
};

// delay
setTimeout(() => {
  // updateYear();
  updateAllYears();
}, 3000);

setTimeout(() => {
  const tel = document.querySelector(`[data-tel^="tel"]`);
  console.log(`fix: tel:0371-65321369`, tel);
  tel.href = "tel:0371-65321369";
}, 3000);

</script>
xgqfrms commented 1 year ago

image

xgqfrms commented 1 year ago
image