zoukankan      html  css  js  c++  java
  • 个人博客制作简介

    个人博客制作简介

    一、写在前面

        很久之前自己就做了个人博客了,但是种种原因,没有把自己的制作过程整理记录下来,时间长了重装系统,这些步骤都比较生疏了,导致再想重新捡起有点困难,不过还是尽量回忆整理一下,以便之后参考。

    二、准备工作

    2.1 安装git

        首先下载安装git,然后配置相关信息,和自己的github连接到一起。这是因为我们的个人博客为了节省成本,其实是嵌套到github上面运行的,言外之意,github才是我们的服务器,博客的模式是B/S模式访问。

    git config --global user.name "name"
    git config --global user.email "email"

        创建ssh连接:

    ssh-keygen -t rsa -C "email"

        设置生成公钥私钥之后,将公钥复制出来,放到github的秘钥库内,完成连接。

    ssh -T git@github.com #测试是否能正常连接

    2.2 安装nodejs

        其次,安装nodejs,安装完成之后用于下载相关插件。

    2.3 安装hexo

        然后使用npm安装hexo。注意此时使用npm安装插件可能出现问题,比如“rollbackFailedOptional: verb npm-session”,这样的原因是国外的源不稳定或者其他原因,此时可以换用淘宝的源。

    1、更改npm源
    npm config set registry https://registry.npm.taobao.org
    #恢复:npm config set registry http://registry.npmjs.org 
    – 配置后可通过下面方式来验证是否成功
    npm config get registry或npm info express
    2、使用cnpm
    先删除原有的所有代理
    npm config rm proxy
    npm config rm https-proxy
    然后安装淘宝的cnpm
    npm install -g cnpm --registry=https://registry.npm.taobao.org

          然后安装hexo:

    npm install -g hexo-cli

      测试是否安装成功:

    hexo -v

     

    三、创建博客

        首先明确hexo常用的命令,这是具体文档

    1、hexo init
        hexo init 命令用于初始化本地文件夹为网站的根目录
        $ hexo init [folder]
        folder 可选参数,用以指定初始化目录的路径,若无指定则默认为当前目录
    2、hexo new
        hexo new 命令用于新建文章,一般可以简写为 hexo n
        $ hexo new [layout] <title>
        layout 可选参数,用以指定文章类型,若无指定则默认由配置文件中的default_layout 选项决定
        title 必填参数,用以指定文章标题,如果参数值中含有空格,则需要使用双引号包围
    3、hexo generate
        hexo generate 命令用于生成静态文件,一般可以简写为 hexo g
        $ hexo generate
        -d 选项,指定生成后部署,与 hexo d -g 等价
    4、hexo server
        hexo server 命令用于启动本地服务器,一般可以简写为 hexo s
        $ hexo server
        -p 选项,指定服务器端口,默认为 4000
        -i 选项,指定服务器 IP 地址,默认为 0.0.0.0
        -s 选项,静态模式 ,仅提供 public 文件夹中的文件并禁用文件监视
        说明:运行服务器前需要安装 hexo-server 插件
        $ npm install hexo-server --save
    5、hexo deploy
        hexo deploy 命令用于部署网站,一般可以简写为 hexo d
        -g 选项,指定生成后部署,与 hexo g -d 等价
    6、hexo clean
        hexo clean 命令用于清理缓存文件,是一个比较常用的命令
        网站显示异常时可尝试此操作
    7、Option
      (1)hexo --safe
          hexo --safe 表示安全模式,用于禁用加载插件和脚本
      (2)hexo --debug
          hexo --debug 表示调试模式,用于将消息详细记录到终端和 debug.log 文件
      (3)hexo --silent
          hexo --silent 表示静默模式,用于静默输出到终端
    

        其次,在磁盘中新建文件夹用来存放博客文件,然后使用命令初始化:

    hexo init 博客名(最好英文)

        此时会在该文件夹下创建这样名称的博客,并且生成一些附属文件。

     

         创建完之后需要进入该文件夹,使用npm install初始化博客。

    cd  博客名
    npm install

         然后运行如下命令运行本地系统:

    hexo g
    hexo server

     

     

         至此在本地搭建网站成功,但是真正的网站需要在远程进行访问,因此,需要借助github进行部署。

    四、部署到github产生的问题

        这里需要借助github中一项便利的功能github page。在GitHub.com中New repository,新建仓库,创建和自身用户名相同的仓库,后面加.github.io,这种格式会被github识别,定位到具体的网址,即xxxx.github.io,xxx为GitHub用户名。

          接下来就可以将自己本地的网站部署到github上了,只需要修改网站中的_config.yml文件,将deploy属性绑定到github上面。

     

          设置完之后安装deploy-git,进行部署。

    npm install hexo-deployer-git --save

     

          最后将网站上传部署到github。

    hexo clean       #清除了之前生成的东西,也可以不加。
    hexo generate  #生成静态文章,可以用 hexo g缩写
    hexo deploy     #部署文章,可以用hexo d缩写

    五、解决部署问题(更换电脑)

         通过上述操作就可以访问网站了,但是如果更换了电脑,使用git clone命令,将github page中的网站文件下载过来。

        可以发现,这样有一个很严重的问题,那就是在上传的过程中,使用hexo d命令,git仅仅上传的是根据源文件生成的网页文件,对于之前设置的一些md等源文件等都没有上传,我们下载下来也不能进行修改,并且不能编辑新的内容,此时这里有两种解决办法,第一种是所有的源文件打包,在新电脑上解压部署环境执行,但是比较麻烦,并且导致文件可能不同步,第二种是将源文件上传到github中保存,这里也有两种方式,(1)创建一个仓库进行存储,(2)在github page仓库中新建分支hexo,专门用来存储源文件,显然第二种方式更方便快捷,因此,我们需要在创建github page中作如下操作,再新建一个分支hexo,此时有两个分支:master和hexo,然后将hexo设为主分支,在git中切换到hexo分支提交所有文件,并且在hexo分支下使用hexo d完成部署,因为hexo d会查找部署的分支,这里在配置文件中将分支设置为master即可。

    简单的说就是把Hexo环境push到hexo分支:
    1. 创建仓库,http://xxx.github.io;
    2. 创建两个分支:master 与 hexo;
    3. 在github上设置hexo为默认分支(因为只需要手动管理这个分支上的Hexo网站文件);
    4. 使用git clone git@github.com:xxx/xxx.github.io.git拷贝仓库;此时会拷贝出来hexo主分支的内容,当然也有master的内容,不过hexo直接显示。
    5. 如果是新电脑,则在本地文件夹hexo分支下,通过Git bash依次执行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git,
    此时hexo环境已经部署完毕并且初始化完成;如果已经部署过hexo环境,则使用npm install 和 npm install hexo-deployer-git进行初始化; 6. 修改hexo文件夹下的_config.yml中的deploy参数,分支改为master;这个时候使用hexo d命令,则读取该文件,找到master分支进行push; 7. 在hexo分支下,依次执行git add .、git commit -m "..."、git push origin hexo提交网站相关的文件; 8. 在hexo分支下,执行hexo g -d生成网站并部署到GitHub上,此时网站静态内容会被push到master分支;

       真正正确的具体步骤如下:

       新建仓库,默认创建了master分支,再创建hexo分支,并且设置hexo分支为默认分支:

         此时这两个分支都为空,然后下载该仓库:

    git clone git@github.com:xxx/xxx.github.io.git

         进入xxx.github.io中(此时因为hexo为默认分支,所以默认就在hexo分支下),删除除了.git之外所有文件,一般没有其他文件。然后将我们的博客源文件的某些必要文件复制到xxx.github.io文件夹下,具体有如下文件。

        在这里,.gitignore文件非常重要,需要屏蔽一些不需要上传到github上的文件,这些文件如下:

     

    1 .DS_Store
    2 Thumbs.db
    3 db.json
    4 *.log
    5 node_modules/
    6 public/
    7 .deploy*/

           到了这一步,有两种方法,第一种是初始化hexo分支下的文件,生成必需的目录,第二种是直接将hexo分支的内容push到远程仓库,这两种方式都一样,因为.gitignore文件会屏蔽生成的文件,言外之意这两种方式上传的内容一致,对于package-lock.json其实也可以自动生成。

    初始化方法(在hexo分支下):
    npm install
    npm install hexo-deployer-git --save

        无论哪一种方式都要防止嵌套克隆,因为theme中的主题可能是从网上git clone下来的,这样就会造成嵌套,导致上传很麻烦,即使上传成功,也会有安全风险,因此如果之前克隆过theme中的主题文件,那么应该把主题文件中的.git文件夹删掉,显示隐藏文件检查是否存在。
          到了这一步就可以真正上传了,在hexo分支下执行如下命令,将会上传到github的hexo分支,但是master分支依旧为空:

    git add .
    git commit -m "..."
    git push origin hexo

        然后在hexo分支下将静态文件部署到master分支下:

    在hexo分支下:
    hexo clean hexo g -d

        至此这两个分支具有不同的内容,并且可以灵活适配。以后每次编辑文件上传都需要执行上面的操作(提交源文件到hexo分支,提交网页到master分支),这样即可完美解决文件同步问题,此后更换电脑,只需要git clone下来,部署相应的环境,然后切换到hexo分支下编辑撰写新文档,提交文件即可。

    git clone git@github.com:xxx.github.io.git  #下载
    cd
    xxx.github.io
    #以下操作均在hexo分支下完成:
    #初始化环境 npm install hexo npm install npm install hexo-deployer-git --save
    #上传到hexo分支
    git add . git commit -m "..." git push origin hexo
    #上传到master分支
    hexo clean hexo g -d

        注意:在提交的时候出现“warning: LF will be replaced by CRLF in”,原因是需要提交的文件是在windows下生成的,windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行add . 时出现提示,解决办法:

    git config --global core.autocrlf false

    五、域名注册

       注册域名有很多渠道,比如阿里云、腾讯云、华为云等,这里使用阿里云作为演示。在博客以github作为服务器之后,访问的时候需要输入xxx.github.io来登录,看起来不是很美观,因此可以通过注册域名来屏蔽这一信息,通过设置cname即可,在域名解析中将github和自己注册的域名绑定。同时需要在github page中创建CNAME文件,在该文件中写入自己申请的域名。

    六、yilia主题设置

    • 安装和配置

        博客需要好的主题,当然有默认的主题,不过可能不是很美观,本文使用yilia主题。安装只需要输入从git中克隆下来放到themes文件夹下即可。然后修改hexo根目录下的 _config.yml :theme: yilia,最后git pull更新即可。

    git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

     

        在yilia文件夹下面的_config.xml比较重要,是该主题的核心配置。

      1 # Header
      2 
      3 menu:
      4   主页: /
      5   # 所有文章: /allPages
      6   # 随笔: /tags
      7   # 相册: /photos
      8 
      9 # SubNav
     10 subnav:
     11   github: "https://github.com/zyrWork"
     12   weibo: "https://weibo.com/zyrlovelsx"
     13   #rss: /atom.xml
     14   zhihu: "https://www.zhihu.com/people/zyrlovelsx"
     15   rss: "https://www.cnblogs.com/zyrblog/"
     16   qq: "https://user.qzone.qq.com/"
     17   weixin: "https://wx.qq.com/"
     18   #jianshu: "#"
     19   #douban: "#"
     20   #segmentfault: "#"
     21   bilibili: "https://space.bilibili.com/278563689/"
     22   #acfun: "#"
     23   mail: "mailto:2655100813@qq.com"
     24   #facebook: "#"
     25   #google: "#"
     26   #twitter: "#"
     27   #linkedin: "#"
     28 
     29 
     30 
     31 # 是否需要修改 root 路径
     32 # 如果您的网站存放在子目录中,例如 http://yoursite.com/blog,
     33 # 请将您的 url 设为 http://yoursite.com/blog 并把 root 设为 /blog/。
     34 root:
     35 
     36 # Content
     37 
     38 # 文章太长,截断按钮文字
     39 excerpt_link: 阅读全文
     40 # 文章卡片右下角常驻链接,不需要请设置为false
     41 show_all_link: '展开全文'
     42 # 数学公式
     43 mathjax: true
     44 # 是否在新窗口打开链接
     45 open_in_new: true
     46 fancybox: true
     47 #是否开启动画效果
     48 animate: true
     49 
     50 # 打赏
     51 # 打赏type设定:0-关闭打赏; 1-文章对应的md文件里有reward:true属性,才有打赏; 2-所有文章均有打赏
     52 reward_type: 2
     53 # 打赏wording
     54 reward_wording: '谢谢你请我吃糖果'
     55 # 支付宝二维码图片地址,跟你设置头像的方式一样。比如:/assets/img/alipay.jpg
     56 alipay: /assets/img/alipay.jpg
     57 # 微信二维码图片地址
     58 weixin: /assets/img/weixin.png
     59 
     60 # 目录
     61 # 目录设定:0-不显示目录; 1-文章对应的md文件里有toc:true属性,才有目录; 2-所有文章均显示目录
     62 toc: 2
     63 # 根据自己的习惯来设置,如果你的目录标题习惯有标号,置为true即可隐藏hexo重复的序号;否则置为false
     64 toc_hide_index: true
     65 # 目录为空时的提示
     66 toc_empty_wording: '目录,不存在的…'
     67 
     68 # 是否有快速回到顶部的按钮
     69 top: true
     70 
     71 # Miscellaneous
     72 baidu_analytics: ''
     73 google_analytics: ''
     74 favicon: /assets/img/favicon.jpg
     75 
     76 #你的头像url
     77 avatar: /assets/img/avatar.jpg
     78 
     79 #是否开启分享
     80 share_jia: true
     81 share_addthis: false
     82 
     83 #评论:1、多说;2、网易云跟帖;3、畅言;4、Disqus 不需要使用某项,直接设置值为false,或注释掉
     84 #具体请参考wiki:https://github.com/litten/hexo-theme-yilia/wiki/
     85 
     86 #1、多说
     87 duoshuo: true
     88 
     89 #2、网易云跟帖
     90 wangyiyun: true
     91 
     92 #3、畅言
     93 changyan_appid: true
     94 changyan_conf: true
     95 
     96 #4、Disqus 在hexo根目录的config里也有disqus_shortname字段,优先使用yilia的
     97 disqus: false
     98 
     99 # 样式定制 - 一般不需要修改,除非有很强的定制欲望…
    100 style:
    101   # 头像上面的背景颜色
    102   header: '#ff6434'
    103   # 右滑板块背景
    104   slider: 'linear-gradient(200deg,#a0cfe4,#e7c37e)'
    105 
    106 # slider的设置
    107 slider:
    108   # 是否默认展开tags板块
    109   showTags: false
    110 
    111 # 智能菜单
    112 # 如不需要,将该对应项置为false
    113 # 比如
    114 #smart_menu:
    115 #  friends: false
    116 smart_menu:
    117   innerArchive: '所有文章'
    118   friends: '友链'
    119   aboutme: '关于我'
    120 
    121 friends:
    122   百度一下: http://www.baidu.com
    123   我的博客: https://www.cnblogs.com/zyrblog/
    124   CSDN: https://me.csdn.net/zyr940716
    125   关于算法: https://unclegem.cn/
    126   框架作者: http://litten.me/
    127   Java技术栈1: https://ruider.github.io/
    128   Java技术栈2: http://huzb.me/
    129   Java技术栈3: http://www.tianxiaobo.com/
    130   
    131 
    132 aboutme: 寻梦者<br><br>努力学习,青春不负<br>提升自我!
    _config.xml

        其中图片来源于根目录:

    • 不蒜子统计

       通过不蒜子可以统计访问量。

        不蒜子可以给任何类型的个人站点使用,对于hexo,打开themes/主题/layout/_partial/footer.ejs添加上述脚本即可,当然也可以添加到 header 中。

               <!--统计start-->
               <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
               <span id="busuanzi_container_site_pv">本站总访问量<span id="busuanzi_value_site_pv"></span></span>
               <span id="busuanzi_container_site_uv">总访客数<span id="busuanzi_value_site_uv"></span>人次</span>
               <!--统计end-->
    • 统计时间
         <div class="footer-right">
           <span id="timeDate">载入天数...</span><span id="times">载入时分秒...</span>
           <script>
            var now = new Date(); 
            function createtime() { 
              var grt= new Date("5/1/2019 12:00:00");//此处修改你的建站时间或者网站上线时间 
              now.setTime(now.getTime()+250); 
              days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); 
              hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); 
              if(String(hnum).length ==1 ){hnum = "0" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); 
              mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = "0" + mnum;} 
              seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); 
              snum = Math.round(seconds); if(String(snum).length ==1 ){snum = "0" + snum;} 
              document.getElementById("timeDate").innerHTML = "本站已安全运行 "+dnum+" 天 "; 
              document.getElementById("times").innerHTML = hnum + " 小时 " + mnum + " 分 " + snum + " 秒"; 
            } 
            setInterval("createtime()",250);
          </script>
        </div>

          于是footer.ejs如下:

    <footer id="footer">
      <div class="outer">
        <div id="footer-info">
            <div class="footer-left">
                &copy; <%= date(new Date(), 'YYYY') %> <%= config.author || config.title %>
            </div>
    
    
    
               <!--统计start-->
               <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
               <span id="busuanzi_container_site_pv">本站总访问量<span id="busuanzi_value_site_pv"></span></span>
               <span id="busuanzi_container_site_uv">总访客数<span id="busuanzi_value_site_uv"></span>人次</span>
               <!--统计end-->
    
    
    
    
    
         <div class="footer-right">
           <span id="timeDate">载入天数...</span><span id="times">载入时分秒...</span>
           <script>
            var now = new Date(); 
            function createtime() { 
              var grt= new Date("5/1/2019 12:00:00");//此处修改你的建站时间或者网站上线时间 
              now.setTime(now.getTime()+250); 
              days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); 
              hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); 
              if(String(hnum).length ==1 ){hnum = "0" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); 
              mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = "0" + mnum;} 
              seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); 
              snum = Math.round(seconds); if(String(snum).length ==1 ){snum = "0" + snum;} 
              document.getElementById("timeDate").innerHTML = "本站已安全运行 "+dnum+" 天 "; 
              document.getElementById("times").innerHTML = hnum + " 小时 " + mnum + " 分 " + snum + " 秒"; 
            } 
            setInterval("createtime()",250);
          </script>
        </div>
    
    
            
    
        </div>
      </div>
    </footer>
    footer.ejs
    • article.ejs文件,设置字数统计、文章导航、微信支付宝打赏
    <article id="<%= post.layout %>-<%= post.slug %>" class="article article-type-<%= post.layout %> <%if(index){%> article-index<%}%>" itemscope itemprop="blogPost">
      <div class="article-inner">
        <% if (post.link || post.title){ %>
          <header class="article-header">
            <%- partial('post/title', {class_name: 'article-title'}) %>
            <% if (!post.noDate){ %>
            <%- partial('post/date', {class_name: 'archive-article-date', date_format: null}) %>
    
    
    
            <!-- 需要添加的位置-->
            <!-- 开始添加字数统计-->
            <% if(theme.word_count && !post.no_word_count){%>
              <%- partial('post/word') %>
              <% } %>
            <!-- 添加完成 -->
    
            <% } %>
          </header>
        <% } %>
    
    
    
    
    
    <!-- 目录内容 -->
            <% if (!index && post.toc){ %>
                <p class="show-toc-btn" id="show-toc-btn" onclick="showToc();" style="display:none">
                <span class="btn-bg"></span>
                <span class="btn-text">文章导航</span>
                </p>
                <div id="toc-article" class="toc-article">
                    <span id="toc-close" class="toc-close" title="隐藏导航" onclick="showBtn();">×</span>
                    <strong class="toc-title">文章目录</strong>
                    <%- toc(post.content) %>
               </div>
               <script type="text/javascript">
                function showToc(){
                    var toc_article = document.getElementById("toc-article");
                    var show_toc_btn = document.getElementById("show-toc-btn");
                    toc_article.setAttribute("style","display:block");
                    show_toc_btn.setAttribute("style","display:none");
                    };
                function showBtn(){
                    var toc_article = document.getElementById("toc-article");
                    var show_toc_btn = document.getElementById("show-toc-btn");
                    toc_article.setAttribute("style","display:none");
                    show_toc_btn.setAttribute("style","display:block");
                    };
               </script>
            <% } %>     
    <!-- 目录内容结束 -->
    
    
    
    
    
    
    
        <div class="article-entry" itemprop="articleBody">
          <% if (post.excerpt && index){ %>
            <%- post.excerpt %>
            <% if (theme.excerpt_link) { %>
              <a class="article-more-a" href="<%- url_for(post.path) %>#more"><%= theme.excerpt_link %> >></a>
            <% } %>
          <% } else { %>
            <%- post.content %>
          <% } %>
    
          <% if ((theme.reward_type === 2 || (theme.reward_type === 1 && post.reward)) && !index){ %>
            <div class="page-reward">
              <a href="javascript:;" class="page-reward-btn tooltip-top">
                <div class="tooltip tooltip-east">
                <span class="tooltip-item"></span>
                <span class="tooltip-content">
                  <span class="tooltip-text">
                    <span class="tooltip-inner">
                      <p class="reward-p"><i class="icon icon-quo-left"></i><%= theme.reward_wording%><i class="icon icon-quo-right"></i></p>
                      <div class="reward-box">
                        <% if(theme.alipay) {%>
                        <div class="reward-box-item">
                          <img class="reward-img" src="<%= theme.alipay%>">
                          <span class="reward-type">支付宝</span>
                        </div>
                        <% } %>
                        <% if(theme.weixin) {%>
                        <div class="reward-box-item">
                          <img class="reward-img" src="<%= theme.weixin%>">
                          <span class="reward-type">微信</span>
                        </div>
                        <% } %>
                      </div>
                    </span>
                  </span>
                </span>
              </div>
              </a>
            </div>
          <% } %>
        </div>
        <div class="article-info article-info-index">
          <%if(post.top){%>
            <div class="article-pop-out tagcloud">
              <i class="icon-tuding"></i>
              <a class="article-tag-list-link color3">置顶</a>
            </div>
          <% } %>
          <%- partial('post/tag') %>
          <%- partial('post/category') %>
          <% if (index && theme.show_all_link){ %>
            <p class="article-more-link">
              <a class="article-more-a" href="<%- url_for(post.path) %>"><%= theme.show_all_link %> >></a>
            </p>
          <% } %>
    
          <% if (!index && theme.share_jia){ %>
            <%- partial('post/share') %>
          <% } %>
          <div class="clearfix"></div>
        </div>
      </div>
    </article>
    <% if (!index){ %>
      <%- partial('post/nav') %>
    <% } %>
    <%- partial('_partial/aside') %>
    
    
    <% if (!index && post.comments){ %>
      <% if (theme.duoshuo){ %>
      <%- partial('post/duoshuo', {
          key: post.slug,
          title: post.title,
          url: config.url+url_for(post.path)
        }) %>
      <% } %>
      
      <% if (theme.wangyiyun){ %>
      <%- partial('post/wangyiyun', {
          key: post.slug,
          title: post.title,
          url: config.url+url_for(post.path)
        }) %>
      <% } %>
    
      <% if (theme.changyan_appid && theme.changyan_conf){ %>
      <%- partial('post/changyan', {
          key: post.slug,
          title: post.title,
          url: config.url+url_for(post.path)
        }) %>
      <% } %>
    
      <% if (theme.disqus || config.disqus_shortname){ %>
        <section id="comments">
          <div id="disqus_thread"></div>
            <script type="text/javascript">
            /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
            var disqus_shortname = '<%= theme.disqus || config.disqus_shortname %>'; // required: replace example with your forum shortname
    
            /* * * DON'T EDIT BELOW THIS LINE * * */
            (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>
          <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
        </section>
      <% } %>
    
      <% if (theme.gitment_owner && theme.gitment_repo &&theme.gitment_oauth && theme.gitment_oauth.client_id && theme.gitment_oauth.client_secret){ %>
      <%- partial('post/gitment', {
          key: post.slug,
          title: post.title,
          url: config.url+url_for(post.path)
        }) %>
      <% } %>
    <% } %>
    article.ejs

    七、总结

         上面只是简单地笔记,中间可能有一些问题,需要多查资料总结。

  • 相关阅读:
    蓝桥学院2019算法题1.8
    蓝桥学院2019算法题1.7
    蓝桥学院2019算法题1.6
    蓝桥学院2019算法题1.5
    蓝桥学院2019算法题1.4
    蓝桥学院2019算法题1.3
    一个简单java爬虫爬取网页中邮箱并保存
    轻松配置java开发环境
    PDF转word文档
    直接插入排序
  • 原文地址:https://www.cnblogs.com/zyrblog/p/12636516.html
Copyright © 2011-2022 走看看