Commit ef939e9f authored by John's avatar John

Site updated: 2018-04-29 20:40:40

parent 1e6c8f5f
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang=en>
<head> <head>
<!-- so meta --> <!-- so meta -->
<meta charset="utf-8"> <meta charset="utf-8">
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<meta property="og:title" content="about"> <meta property="og:title" content="about">
<meta property="og:url" content="http://blog.thebestjohn.com/about/index.html"> <meta property="og:url" content="http://blog.thebestjohn.com/about/index.html">
<meta property="og:site_name" content="TheBestJohn"> <meta property="og:site_name" content="TheBestJohn">
<meta property="og:locale" content="default"> <meta property="og:locale" content="en">
<meta property="og:updated_time" content="2018-04-26T19:29:04.164Z"> <meta property="og:updated_time" content="2018-04-26T19:29:04.164Z">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="about"> <meta name="twitter:title" content="about">
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang=en>
<head> <head>
<!-- so meta --> <!-- so meta -->
<meta charset="utf-8"> <meta charset="utf-8">
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<meta property="og:title" content="TheBestJohn"> <meta property="og:title" content="TheBestJohn">
<meta property="og:url" content="http://blog.thebestjohn.com/archives/2018/04/index.html"> <meta property="og:url" content="http://blog.thebestjohn.com/archives/2018/04/index.html">
<meta property="og:site_name" content="TheBestJohn"> <meta property="og:site_name" content="TheBestJohn">
<meta property="og:locale" content="default"> <meta property="og:locale" content="en">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="TheBestJohn"> <meta name="twitter:title" content="TheBestJohn">
...@@ -100,26 +100,6 @@ ...@@ -100,26 +100,6 @@
</span>
</li>
<li class="post-item">
<div class="meta">
<time datetime="2018-04-26T19:29:04.164Z" itemprop="datePublished">2018-04-26</time>
</div>
<span>
<a class="" href="/posts/hello-world/">Hello World</a>
</span> </span>
</li> </li>
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang=en>
<head> <head>
<!-- so meta --> <!-- so meta -->
<meta charset="utf-8"> <meta charset="utf-8">
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<meta property="og:title" content="TheBestJohn"> <meta property="og:title" content="TheBestJohn">
<meta property="og:url" content="http://blog.thebestjohn.com/archives/2018/index.html"> <meta property="og:url" content="http://blog.thebestjohn.com/archives/2018/index.html">
<meta property="og:site_name" content="TheBestJohn"> <meta property="og:site_name" content="TheBestJohn">
<meta property="og:locale" content="default"> <meta property="og:locale" content="en">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="TheBestJohn"> <meta name="twitter:title" content="TheBestJohn">
...@@ -100,26 +100,6 @@ ...@@ -100,26 +100,6 @@
</span>
</li>
<li class="post-item">
<div class="meta">
<time datetime="2018-04-26T19:29:04.164Z" itemprop="datePublished">2018-04-26</time>
</div>
<span>
<a class="" href="/posts/hello-world/">Hello World</a>
</span> </span>
</li> </li>
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang=en>
<head> <head>
<!-- so meta --> <!-- so meta -->
<meta charset="utf-8"> <meta charset="utf-8">
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<meta property="og:title" content="TheBestJohn"> <meta property="og:title" content="TheBestJohn">
<meta property="og:url" content="http://blog.thebestjohn.com/archives/index.html"> <meta property="og:url" content="http://blog.thebestjohn.com/archives/index.html">
<meta property="og:site_name" content="TheBestJohn"> <meta property="og:site_name" content="TheBestJohn">
<meta property="og:locale" content="default"> <meta property="og:locale" content="en">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="TheBestJohn"> <meta name="twitter:title" content="TheBestJohn">
...@@ -100,26 +100,6 @@ ...@@ -100,26 +100,6 @@
</span>
</li>
<li class="post-item">
<div class="meta">
<time datetime="2018-04-26T19:29:04.164Z" itemprop="datePublished">2018-04-26</time>
</div>
<span>
<a class="" href="/posts/hello-world/">Hello World</a>
</span> </span>
</li> </li>
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang=en>
<head> <head>
<!-- so meta --> <!-- so meta -->
<meta charset="utf-8"> <meta charset="utf-8">
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<meta property="og:title" content="TheBestJohn"> <meta property="og:title" content="TheBestJohn">
<meta property="og:url" content="http://blog.thebestjohn.com/categories/Web-Dev/index.html"> <meta property="og:url" content="http://blog.thebestjohn.com/categories/Web-Dev/index.html">
<meta property="og:site_name" content="TheBestJohn"> <meta property="og:site_name" content="TheBestJohn">
<meta property="og:locale" content="default"> <meta property="og:locale" content="en">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="TheBestJohn"> <meta name="twitter:title" content="TheBestJohn">
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang=en>
<head> <head>
<!-- so meta --> <!-- so meta -->
<meta charset="utf-8"> <meta charset="utf-8">
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<meta property="og:title" content="TheBestJohn"> <meta property="og:title" content="TheBestJohn">
<meta property="og:url" content="http://blog.thebestjohn.com/index.html"> <meta property="og:url" content="http://blog.thebestjohn.com/index.html">
<meta property="og:site_name" content="TheBestJohn"> <meta property="og:site_name" content="TheBestJohn">
<meta property="og:locale" content="default"> <meta property="og:locale" content="en">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="TheBestJohn"> <meta name="twitter:title" content="TheBestJohn">
...@@ -124,22 +124,6 @@ ...@@ -124,22 +124,6 @@
</span>
</li>
<li class="post-item">
<div class="meta">
<time datetime="2018-04-26T19:29:04.164Z" itemprop="datePublished">2018-04-26</time>
</div>
<span>
<a class="" href="/posts/hello-world/">Hello World</a>
</span> </span>
</li> </li>
......
<!DOCTYPE html>
<html>
<head>
<!-- so meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="True">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<meta name="description" content="Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick">
<meta property="og:type" content="article">
<meta property="og:title" content="Hello World">
<meta property="og:url" content="http://blog.thebestjohn.com/posts/hello-world/index.html">
<meta property="og:site_name" content="TheBestJohn">
<meta property="og:description" content="Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick">
<meta property="og:locale" content="default">
<meta property="og:updated_time" content="2018-04-26T19:29:04.164Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Hello World">
<meta name="twitter:description" content="Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick">
<link rel="shortcut icon" href="/images/favicon.ico">
<link rel="icon" type="image/png" href="/images/favicon-192x192.png" sizes="192x192">
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
<!-- title -->
<title>Hello World</title>
<!-- styles -->
<link rel="stylesheet" href="/css/style.css">
<!-- persian styles -->
<link rel="stylesheet" href="/css/rtl.css">
<!-- rss -->
</head>
<body class="max-width mx-auto px3 ltr">
<div id="header-post">
<a id="menu-icon" href="#"><i class="fas fa-bars fa-lg"></i></a>
<a id="menu-icon-tablet" href="#"><i class="fas fa-bars fa-lg"></i></a>
<a id="top-icon-tablet" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');" style="display:none;"><i class="fas fa-chevron-up fa-lg"></i></a>
<span id="menu">
<span id="nav">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/archives/">Writing</a></li>
</ul>
</span>
<br/>
<span id="actions">
<ul>
<li><a class="icon" href="/posts/static-site-what/"><i class="fas fa-chevron-left" aria-hidden="true" onmouseover="$('#i-prev').toggle();" onmouseout="$('#i-prev').toggle();"></i></a></li>
<li><a class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up" aria-hidden="true" onmouseover="$('#i-top').toggle();" onmouseout="$('#i-top').toggle();"></i></a></li>
<li><a class="icon" href="#"><i class="fas fa-share-alt" aria-hidden="true" onmouseover="$('#i-share').toggle();" onmouseout="$('#i-share').toggle();" onclick="$('#share').toggle();return false;"></i></a></li>
</ul>
<span id="i-prev" class="info" style="display:none;">Previous post</span>
<span id="i-next" class="info" style="display:none;">Next post</span>
<span id="i-top" class="info" style="display:none;">Back to top</span>
<span id="i-share" class="info" style="display:none;">Share post</span>
</span>
<br/>
<div id="share" style="display: none">
<ul>
<li><a class="icon" href="http://www.facebook.com/sharer.php?u=http://blog.thebestjohn.com/posts/hello-world/"><i class="fab fa-facebook " aria-hidden="true"></i></a></li>
<li><a class="icon" href="https://twitter.com/share?url=http://blog.thebestjohn.com/posts/hello-world/&text=Hello World"><i class="fab fa-twitter " aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://www.linkedin.com/shareArticle?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-linkedin " aria-hidden="true"></i></a></li>
<li><a class="icon" href="https://pinterest.com/pin/create/bookmarklet/?url=http://blog.thebestjohn.com/posts/hello-world/&is_video=false&description=Hello World"><i class="fab fa-pinterest " aria-hidden="true"></i></a></li>
<li><a class="icon" href="mailto:?subject=Hello World&body=Check out this article: http://blog.thebestjohn.com/posts/hello-world/"><i class="fas fa-envelope " aria-hidden="true"></i></a></li>
<li><a class="icon" href="https://getpocket.com/save?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-get-pocket " aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://reddit.com/submit?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-reddit " aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://www.stumbleupon.com/submit?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-stumbleupon " aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://digg.com/submit?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-digg " aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://www.tumblr.com/share/link?url=http://blog.thebestjohn.com/posts/hello-world/&name=Hello World&description="><i class="fab fa-tumblr " aria-hidden="true"></i></a></li>
</ul>
</div>
<div id="toc">
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Quick-Start"><span class="toc-number">1.</span> <span class="toc-text">Quick Start</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#Create-a-new-post"><span class="toc-number">1.1.</span> <span class="toc-text">Create a new post</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Run-server"><span class="toc-number">1.2.</span> <span class="toc-text">Run server</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Generate-static-files"><span class="toc-number">1.3.</span> <span class="toc-text">Generate static files</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Deploy-to-remote-sites"><span class="toc-number">1.4.</span> <span class="toc-text">Deploy to remote sites</span></a></li></ol></li></ol>
</div>
</span>
</div>
<div class="content index my4">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header>
<h1 class="posttitle" itemprop="name headline">
Hello World
</h1>
<div class="meta">
<span class="author" itemprop="author" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">TheBestJohn</span>
</span>
<div class="postdate">
<time datetime="2018-04-26T19:29:04.164Z" itemprop="datePublished">2018-04-26</time>
</div>
</div>
</header>
<div class="content" itemprop="articleBody">
<p>Welcome to <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="noopener">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="noopener">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="noopener">GitHub</a>.</p>
<h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">"My New Post"</span></span><br></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/writing.html" target="_blank" rel="noopener">Writing</a></p>
<h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/server.html" target="_blank" rel="noopener">Server</a></p>
<h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/generating.html" target="_blank" rel="noopener">Generating</a></p>
<h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure>
<p>More info: <a href="https://hexo.io/docs/deployment.html" target="_blank" rel="noopener">Deployment</a></p>
</div>
</article>
<div class="blog-post-comments">
<div id="disqus_thread">
<noscript>Please enable JavaScript to view the comments.</noscript>
</div>
</div>
</div>
<div id="footer-post-container">
<div id="footer-post">
<div id="nav-footer" style="display: none">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/archives/">Writing</a></li>
</ul>
</div>
<div id="toc-footer" style="display: none">
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#Quick-Start"><span class="toc-number">1.</span> <span class="toc-text">Quick Start</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#Create-a-new-post"><span class="toc-number">1.1.</span> <span class="toc-text">Create a new post</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Run-server"><span class="toc-number">1.2.</span> <span class="toc-text">Run server</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Generate-static-files"><span class="toc-number">1.3.</span> <span class="toc-text">Generate static files</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Deploy-to-remote-sites"><span class="toc-number">1.4.</span> <span class="toc-text">Deploy to remote sites</span></a></li></ol></li></ol>
</div>
<div id="share-footer" style="display: none">
<ul>
<li><a class="icon" href="http://www.facebook.com/sharer.php?u=http://blog.thebestjohn.com/posts/hello-world/"><i class="fab fa-facebook fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="https://twitter.com/share?url=http://blog.thebestjohn.com/posts/hello-world/&text=Hello World"><i class="fab fa-twitter fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://www.linkedin.com/shareArticle?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-linkedin fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="https://pinterest.com/pin/create/bookmarklet/?url=http://blog.thebestjohn.com/posts/hello-world/&is_video=false&description=Hello World"><i class="fab fa-pinterest fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="mailto:?subject=Hello World&body=Check out this article: http://blog.thebestjohn.com/posts/hello-world/"><i class="fas fa-envelope fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="https://getpocket.com/save?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-get-pocket fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://reddit.com/submit?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-reddit fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://www.stumbleupon.com/submit?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-stumbleupon fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://digg.com/submit?url=http://blog.thebestjohn.com/posts/hello-world/&title=Hello World"><i class="fab fa-digg fa-lg" aria-hidden="true"></i></a></li>
<li><a class="icon" href="http://www.tumblr.com/share/link?url=http://blog.thebestjohn.com/posts/hello-world/&name=Hello World&description="><i class="fab fa-tumblr fa-lg" aria-hidden="true"></i></a></li>
</ul>
</div>
<div id="actions-footer">
<a id="menu" class="icon" href="#" onclick="$('#nav-footer').toggle();return false;"><i class="fas fa-bars fa-lg" aria-hidden="true"></i> Menu</a>
<a id="toc" class="icon" href="#" onclick="$('#toc-footer').toggle();return false;"><i class="fas fa-list fa-lg" aria-hidden="true"></i> TOC</a>
<a id="share" class="icon" href="#" onclick="$('#share-footer').toggle();return false;"><i class="fas fa-share-alt fa-lg" aria-hidden="true"></i> Share</a>
<a id="top" style="display:none" class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up fa-lg" aria-hidden="true"></i> Top</a>
</div>
</div>
</div>
<footer id="footer">
<div class="footer-left">
Copyright &copy; 2018 TheBestJohn
</div>
<div class="footer-right">
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/archives/">Writing</a></li>
</ul>
</nav>
</div>
</footer>
</body>
</html>
<!-- styles -->
<link rel="stylesheet" href="/lib/font-awesome/css/fontawesome-all.min.css">
<link rel="stylesheet" href="/lib/justified-gallery/css/justifiedGallery.min.css">
<!-- jquery -->
<script src="/lib/jquery/jquery.min.js"></script>
<script src="/lib/justified-gallery/js/jquery.justifiedGallery.min.js"></script>
<script src="/js/main.js"></script>
<!-- search -->
<!-- Google Analytics -->
<!-- Baidu Analytics -->
<!-- Disqus Comments -->
<script type="text/javascript">
var disqus_shortname = 'thebestjohn';
(function(){
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
}());
</script>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang=en>
<head> <head>
<!-- so meta --> <!-- so meta -->
<meta charset="utf-8"> <meta charset="utf-8">
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
<meta property="og:url" content="http://blog.thebestjohn.com/posts/static-site-what/index.html"> <meta property="og:url" content="http://blog.thebestjohn.com/posts/static-site-what/index.html">
<meta property="og:site_name" content="TheBestJohn"> <meta property="og:site_name" content="TheBestJohn">
<meta property="og:description" content="Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and they’re so prevalent in sites that they make a very attractive tar"> <meta property="og:description" content="Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and they’re so prevalent in sites that they make a very attractive tar">
<meta property="og:locale" content="default"> <meta property="og:locale" content="en">
<meta property="og:updated_time" content="2018-04-27T19:58:25.745Z"> <meta property="og:updated_time" content="2018-04-29T20:39:52.874Z">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Static Site what?!"> <meta name="twitter:title" content="Static Site what?!">
<meta name="twitter:description" content="Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and they’re so prevalent in sites that they make a very attractive tar"> <meta name="twitter:description" content="Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and they’re so prevalent in sites that they make a very attractive tar">
...@@ -71,8 +71,6 @@ ...@@ -71,8 +71,6 @@
<ul> <ul>
<li><a class="icon" href="/posts/hello-world/"><i class="fas fa-chevron-right" aria-hidden="true" onmouseover="$('#i-next').toggle();" onmouseout="$('#i-next').toggle();"></i></a></li>
<li><a class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up" aria-hidden="true" onmouseover="$('#i-top').toggle();" onmouseout="$('#i-top').toggle();"></i></a></li> <li><a class="icon" href="#" onclick="$('html, body').animate({ scrollTop: 0 }, 'fast');"><i class="fas fa-chevron-up" aria-hidden="true" onmouseover="$('#i-top').toggle();" onmouseout="$('#i-top').toggle();"></i></a></li>
<li><a class="icon" href="#"><i class="fas fa-share-alt" aria-hidden="true" onmouseover="$('#i-share').toggle();" onmouseout="$('#i-share').toggle();" onclick="$('#share').toggle();return false;"></i></a></li> <li><a class="icon" href="#"><i class="fas fa-share-alt" aria-hidden="true" onmouseover="$('#i-share').toggle();" onmouseout="$('#i-share').toggle();" onclick="$('#share').toggle();return false;"></i></a></li>
</ul> </ul>
...@@ -98,7 +96,7 @@ ...@@ -98,7 +96,7 @@
</div> </div>
<div id="toc"> <div id="toc">
<ol class="toc"><li class="toc-item toc-level-3"><a class="toc-link" href="#Static-site-generators"><span class="toc-number">1.</span> <span class="toc-text">Static site generators</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#But-why"><span class="toc-number">1.1.</span> <span class="toc-text">But, why?</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Enter-Hexo"><span class="toc-number">2.</span> <span class="toc-text">Enter, Hexo</span></a></li></ol> <ol class="toc"><li class="toc-item toc-level-3"><a class="toc-link" href="#Static-site-generators"><span class="toc-number">1.</span> <span class="toc-text">Static site generators</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Why-tho"><span class="toc-number">2.</span> <span class="toc-text">Why tho?</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Enter-Hexo"><span class="toc-number">3.</span> <span class="toc-text">Enter, Hexo</span></a></li></ol>
</div> </div>
</span> </span>
</div> </div>
...@@ -133,8 +131,9 @@ ...@@ -133,8 +131,9 @@
<div class="content" itemprop="articleBody"> <div class="content" itemprop="articleBody">
<p>Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and they’re so prevalent in sites that they make a very attractive target for exploitation. In fact the first time I lost control of my server it was because of a bug in a themes use of timthumb.php. Basically, the attacker sent it an “image” file from a hosting website that had a php eval script hidden in it’s data. When accessed normally it showed an image but if they accessed the cached file that timthumb made, then the server treated it as a php file. From there they were able to install a remote shell, and own my server.</p> <p>Recently I’ve become disillusioned with most CMS options. They’re a pain to keep updated, plugins are constantly being abandoned, and they’re so prevalent in sites that they make a very attractive target for exploitation. In fact the first time I lost control of my server it was because of a bug in a themes use of timthumb.php. Basically, the attacker sent it an “image” file from a hosting website that had a php eval script hidden in it’s data. When accessed normally it showed an image but if they accessed the cached file that timthumb made, then the server treated it as a php file. From there they were able to install a remote shell, and own my server.</p>
<h3 id="Static-site-generators"><a href="#Static-site-generators" class="headerlink" title="Static site generators"></a>Static site generators</h3><p>While the timthumb exploit was a pain in the ass, it was very interesting to me and made me interested in trying to secure my systems. To that end I started reading into static site generators. Static site generators take your posts, usually formatted in some sort of markup, puts them through a templating engine that outputs <code>.html</code> files, that you can then serve via the usual methods.</p> <h3 id="Static-site-generators"><a href="#Static-site-generators" class="headerlink" title="Static site generators"></a>Static site generators</h3><p>While the timthumb exploit was a pain in the ass, it was very interesting to me and made me seriously consider how I secure my systems. To that end I started reading into static site generators. Static site generators take your posts, usually formatted in some sort of markup, put them through a templating engine that outputs <code>.html</code> files, which you can then serve via the usual methods.</p>
<h4 id="But-why"><a href="#But-why" class="headerlink" title="But, why?"></a>But, why?</h4><p>The idea is that <em>most</em> sites don’t actually need to use dynamic code. Their content is, for the most, part static. Users aren’t interacting with the content (other than the comments sections and forms but we’ll talk about that later). They are, instead, just reading it. The only person who seems to be interacting with it is the person that owns the site. Even then, the owner isn’t actively interacting. They are writing a post, or updating a page. After that, everything stays the same.</p> <h3 id="Why-tho"><a href="#Why-tho" class="headerlink" title="Why tho?"></a>Why tho?</h3><p>The idea is that <em>most</em> sites don’t actually need to use dynamic code. Their content is, for the most, part static. Users aren’t interacting with the content (other than the comments sections and forms but we’ll talk about that later). They are, instead, just reading it. The only person who seems to be interacting with it is the person that owns the site. Even then, the owner isn’t actively interacting. They are writing a post, or updating a page. After that, everything stays the same.</p>
<p>All this is a “face-value” reason to move over to a static site. I have an even deeper reason for wanting to use a static site, portability. Static sites allow you to use a generic format for your posts. I write all my posts in markdown, a very common and widely used format. With this I can move from generator to generator without much change. If I were to make my blog in something like Wordpress, my post information would be locked into a <em>very</em> specific database format. If I, for some reason or another, decided I no longer wanted to use wordpress it would be a lot of work modifying all my posts to be compatible with the new platform.</p>
<p><a href="https://gohugo.io/" target="_blank" rel="noopener">https://gohugo.io/</a><br><a href="https://themes.gohugo.io/bulma/" target="_blank" rel="noopener">https://themes.gohugo.io/bulma/</a><br><a href="https://themes.gohugo.io/hugo-casper-two/" target="_blank" rel="noopener">https://themes.gohugo.io/hugo-casper-two/</a></p> <p><a href="https://gohugo.io/" target="_blank" rel="noopener">https://gohugo.io/</a><br><a href="https://themes.gohugo.io/bulma/" target="_blank" rel="noopener">https://themes.gohugo.io/bulma/</a><br><a href="https://themes.gohugo.io/hugo-casper-two/" target="_blank" rel="noopener">https://themes.gohugo.io/hugo-casper-two/</a></p>
<h3 id="Enter-Hexo"><a href="#Enter-Hexo" class="headerlink" title="Enter, Hexo"></a>Enter, <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a></h3><p>Hexo is a neat little package. </p> <h3 id="Enter-Hexo"><a href="#Enter-Hexo" class="headerlink" title="Enter, Hexo"></a>Enter, <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a></h3><p>Hexo is a neat little package. </p>
<p>Originally I thought I would install it, set up an apache virtual reverse proxy via an <code>.htaccess</code> file and let node serve static files. Some people do this. It’s a valid way to serve a site. The problem that I have with this, is that it’s just another vulnerable layer of code that I don’t have the inclination to audit. It could potentially have glaring security holes and I wouldn’t know. Again, I want to clarify that I don’t know much of anything about security. I’m not a cryptographer, nor an expert on cyber security. However, I can easily read the html that comes out the other end of the site generator and verify that there are no well-known issues with the javascript or html.</p> <p>Originally I thought I would install it, set up an apache virtual reverse proxy via an <code>.htaccess</code> file and let node serve static files. Some people do this. It’s a valid way to serve a site. The problem that I have with this, is that it’s just another vulnerable layer of code that I don’t have the inclination to audit. It could potentially have glaring security holes and I wouldn’t know. Again, I want to clarify that I don’t know much of anything about security. I’m not a cryptographer, nor an expert on cyber security. However, I can easily read the html that comes out the other end of the site generator and verify that there are no well-known issues with the javascript or html.</p>
...@@ -170,7 +169,7 @@ ...@@ -170,7 +169,7 @@
</div> </div>
<div id="toc-footer" style="display: none"> <div id="toc-footer" style="display: none">
<ol class="toc"><li class="toc-item toc-level-3"><a class="toc-link" href="#Static-site-generators"><span class="toc-number">1.</span> <span class="toc-text">Static site generators</span></a><ol class="toc-child"><li class="toc-item toc-level-4"><a class="toc-link" href="#But-why"><span class="toc-number">1.1.</span> <span class="toc-text">But, why?</span></a></li></ol></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Enter-Hexo"><span class="toc-number">2.</span> <span class="toc-text">Enter, Hexo</span></a></li></ol> <ol class="toc"><li class="toc-item toc-level-3"><a class="toc-link" href="#Static-site-generators"><span class="toc-number">1.</span> <span class="toc-text">Static site generators</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Why-tho"><span class="toc-number">2.</span> <span class="toc-text">Why tho?</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#Enter-Hexo"><span class="toc-number">3.</span> <span class="toc-text">Enter, Hexo</span></a></li></ol>
</div> </div>
<div id="share-footer" style="display: none"> <div id="share-footer" style="display: none">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment