GitHub

前言

正文

工作协同

  • 参与GitHub中的项目开发,最常用和推荐的首选方式是“Fork + Pull”模式。
    在派生项目中创建的提交,可以非常方便地利用GitHub的Pull Request工具向原始项目的维护者发送Pull Request。
    

建立主页:GitHub用户通过创建特殊名称的Git版本库或在Git库中建立特别的分支实现对主页的维护

  • 创建个人主页:GitHub 为每一个用户分配了一个二级域名.github.io, 例如我自己的site: https://zhangkn.github.io
1、托管空间下创建一个名为<user-id>.github.io的版本库,向其master分支提交网站静态页面即可,其中网站首页为index.html:https://github.com/zhangkn/zhangkn.github.io/blob/master/index.html
2、使用Jekyll维护网站
在Git库中建立特别的gh-pages分支实现对主页的维护。
<!-- 使用命令行创建干净的gh-pages分支:http://www.worldhello.net/gotgithub/03-project-hosting/050-homepage.html -->
<!-- Git底层命令:git symbolic-ref -->
devzkndeMacBook-Pro:AlipayWalletTweakF devzkn$ git symbolic-ref HEAD refs/heads/gh-pages

<!-- 删除暂存区文件,即相当于清空暂存区 -->
devzkndeMacBook-Pro:AlipayWalletTweakF devzkn$ rm .git/index

<!-- 创建主页文件  -->
devzkndeMacBook-Pro:AlipayWalletTweakF devzkn$ cp -R zhangkn.github.io/* .
git add .
devzkndeMacBook-Pro:AlipayWalletTweakF devzkn$ git commit -m "branch gh-pages init."
devzkndeMacBook-Pro:AlipayWalletTweakF devzkn$ git push -u origin gh-pages

  • 使用专有域名:只要在master分支(用户主页所在版本库)或gh-pages分支(项目版本库)的根目录下检入一个名为CNAME的文件,内容为相应的专有域名。当然还要更改专有域名的域名解析,使得该专有域名的IP地址指向相应的GitHub二级域名的IP地址。
参考:http://www.worldhello.net/gotgithub/03-project-hosting/050-homepage.html
1、在账号gotgit的版本库gotgit.github.io根目录下添加文件CNAME,文件内容为:www.worldhello.net。
2、然后更改域名www.worldhello.net的IP地址,指向域名gotgit.github.io对应的IP地址(注意不是github.com的IP地址)。

完成域名的DNS指向后,可试着用ping或dig命令确认域名www.worldhello.net和gotgit.github.io指向同一IP地址。
  • 使用Jekyll维护网站:Jekyll是一个支持Textile、Markdown等标记语言的静态网站生成软件,还支持博客和网页模版,由Tom Preston-Werner(GitHub创始人之一)开发。Jekyll用Ruby语言实现,项目在GitHub的托管;专有的URL地址—-例子:site: https://zhangkn.github.io
GitHub为用户账号或项目提供主页服务,会从相应版本库的master分支或gh-pages分支检出网页文件,然后执行 Jekyll 相应的命令对网页进行编译。
因此在设计GitHub的用户主页和项目主页时都可以利用Jekyll,实现用Markdown等标记语言撰写网页及博客,并用页面模版实现网页风格的统一。

<!-- 安装Jekyll最简单的方法是通过RubyGems安装:会自动将Jekyll依赖的directory_watcher、liquid、open4、maruku和classifier等Gem包一并安装 -->
$ gem install jekyll
<!-- 显示软件版本 -->
$ jekyll -v
<!-- 目录结构 -->
1)非下划线(_)开头的文件(包括子目录中文件),如果包含YAML文件头,就会使用Jekyll进行编译,并将编译后的文件复制到目标文件夹(默认为_site目录)下。对于包含YAML文件头并用标记语言Markdown等撰写的文件,还会将编译后的文件以.html扩展名保存。而以下划线开头的文件和目录有的直接忽略不予处理(如_layouts、_site目录等),有的则需要特殊处理(如_post目录)。

2)目录_post用于保存博客条目,每个博客条目都以<YYYY>-<MM>-<DD>-<blog-tiltle>格式的文件名命名。扩展名为.md的为Markdown格式,扩展名为.textile的为Textile格式。这些文件都包含类似的文件头:
3)在根目录下还有一个配置文件_config.yml用于覆盖Jekyll的默认设置

hooks:版本库钩子扩展

  • Services / Add Email 邮件通知功能:zhangkn.github.io/settings/hooks/new?service=email
 Branch: refs/heads/master
 Home:   https://github.com/zhangkn/zhangkn.github.io
 Commit: f74a9c7025159aa516827f37f35054a0a16bcd78
     https://github.com/zhangkn/zhangkn.github.io/commit/f74a9c7025159aa516827f37f35054a0a16bcd78
 Author: 张坤楠 <zhangkunnan@.com>
 Date:   2018-03-02 (Fri, 02 Mar 2018)

 Changed paths:
   M _posts/2018-03-02-BeyondFree.md
   M _posts/2018-03-02-GitHub.md

 Log Message:
 -----------
 Services

see also


向Jekyll博客的_posts /目录或者子目录提交了一个yyyy-mm-dd-title.md这样的文件

A client to post on a Jekyll blog: https://github.com/tsangiotis/JekyllForAndroid


The application uses the GitHub API.

<!-- allintext:Jekyll在_posts子目录 -->
https://github.com/hidva/hidva.github.io

https://github.com/hidva/hidva.github.io/tree/dev



_posts该目录下可以创建若干子目录.在 jekyll build 时会递归遍历 _posts 目录.


https://github.com/hidva/hidva.github.io/tree/dev/_posts/database/mysql 使用子目录的例子



<!-- Jekyll是用ruby语言实现的一个静态网站生成器 -->
1) Jekyll定义了一些内置的变量,包括全局变量、页面变量

2) Jekyll也可以通过插件来增加额外的功能

3) 关于Jekyll Bootstrap-- 是用Jekyll建立博客的一套模板,提供了主题(themes)、评论

# 使用Jekyll-Bootstrap,其实就是一个复制的过程。下面的USERNAME代表你在github上的用户名
git clone https://github.com/plusjade/jekyll-bootstrap.git USERNAME.github.com


4) Jekyll的目录结构


clearly/
├── _config.yml
├── _layouts
│   ├── default.html
│   └── post.html
├── _posts
│   └── 2013-05-29-welcome-to-jekyll.markdown
├── css
│   ├── main.css
│   └── syntax.css
└── index.html

- 其中,博客文章放在_posts目录中,可以使用子目录。---多么令人兴奋的事情,便于文章多的时候进场查询

- _layouts目录存放页面模板,其他还可以使用html、css、image等静态资源。

- Jekyll会把任何不以下划线开头的文件和目录都复制/生成到网站(在本地是生成到_site/目录)。



<!-- Markdown 语法说明 (简体中文版) / (点击查看快速入门): http://wowubuntu.com/markdown -->


http://wiki.shopify.com/Liquid


<!-- 关于github Pages -->

# 使用GitHub Pages的账户主页建立博客,必须使用如下形式的项目名称并使用主分支
# 如果使用项目主页,必须使用项目的gh-pages分支


github Pages是github提供的静态网页托管。可以为用户或者项目创建站点

github Pages对于上传的静态文件会通过Jekyll进行处理后再发布出来,为程序员量身定制的博客系统

1) 使用github Pages写博客的好处
自由,随意定制;方便,在github上托管;可控,有版本管理;直接,只需提交,不需要先导出再提交,让人愿意持续更新文章;

高效,使用markdown语言能提高写作的效率;免费,无限流量,无限空间





<!-- 二、进阶篇 -->


用原生的Jekyll来构建博客,让一切都在掌控之中;放弃Jekyll bootstrap

1)设计模板

jekyll把_layouts目录中的文档看做是模板,如果某个文档中的头部变量声明中指定了layout:

---
layout: default
---

-  则Jekyll在生成页面时会使用该模板进行渲染,用文档的内容替换模板中的<article class="post-container post-container--single" itemscope itemtype="https://schema.org/BlogPosting">
  <link itemprop="mainEntityOfPage" href="https://zhangkn.github.io/archive/">
  <header class="post-header" itemscope itemtype="https://schema.org/WPHeader">
    <h1  itemprop="Headline" class="post-title">BeyondFree <!-- <div class="social-share"> -->

   <ul class="share-buttons">
    <li><a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fzhangkn.github.io&quote=" title="Share on Facebook" target="_blank" onclick="window.open('https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(document.URL) + '&quote=' + encodeURIComponent(document.URL)); return false;"><img alt="Share on Facebook" src="/images/flat_web_icon_set/color/Facebook.png" /></a></li>
    <li><a href="https://twitter.com/intent/tweet?source=https%3A%2F%2Fzhangkn.github.io&text=:%20https%3A%2F%2Fzhangkn.github.io&via=zhangkunnan" target="_blank" title="Tweet" onclick="window.open('https://twitter.com/intent/tweet?text=' + encodeURIComponent(document.title) + ':%20'  + encodeURIComponent(document.URL)); return false;"><img alt="Tweet" src="/images/flat_web_icon_set/color/Twitter.png" /></a></li>
    <li><a href="https://plus.google.com/share?url=https%3A%2F%2Fzhangkn.github.io" target="_blank" title="Share on Google+" onclick="window.open('https://plus.google.com/share?url=' + encodeURIComponent(document.URL)); return false;"><img alt="Share on Google+" src="/images/flat_web_icon_set/color/Google+.png" /></a></li>
    <li><a href="http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fzhangkn.github.io&title=&summary=&source=https%3A%2F%2Fzhangkn.github.io" target="_blank" title="Share on LinkedIn" onclick="window.open('http://www.linkedin.com/shareArticle?mini=true&url=' + encodeURIComponent(document.URL) + '&title=' +  encodeURIComponent(document.title)); return false;"><img alt="Share on LinkedIn" src="/images/flat_web_icon_set/color/LinkedIn.png" /></a></li>
    <li><a href="mailto:zhang_kn@icloud.com?subject=&body=:%20https%3A%2F%2Fzhangkn.github.io" target="_blank" title="Send email" onclick="window.open('mailto:zhang_kn@icloud.com?subject=' + encodeURIComponent(document.title) + '&body=' +  encodeURIComponent(document.URL)); return false;"><img alt="Send email" src="/images/flat_web_icon_set/color/Email.png" /></a></li>

    <!--<wb:share-button appkey="3233061066" addition="simple" type="button" ralateUid="2939794294"></wb:share-button>-->

  </ul>
<!-- </div> -->




</h1> 
    <div class="post-meta">
      <img src="/images/calendar.png" width="20px"/> 
      <time datetime="2018-03-02 00:00:00 +0000" itemprop="datePublished" class="post-meta__date date">2018-03-02</time>  
         
      <span id="busuanzi_container_page_pv"> | 阅读:<span id="busuanzi_value_page_pv"></span>次</span>

    </p>


    </div>

    
  </header>

  <section class="post"  itemscope itemtype="https://schema.org/BlogPosting" >
    <h3 id="前言">前言</h3>

<blockquote>
  <ul>
    <li>最近在得到订阅了 《吴军的谷歌方法论》,很喜欢其中的一句话
      <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>“不错,半农确是浅。但他的浅,却如一条清溪澄澈见底,纵有多少沉渣和腐草,也不掩其大体的清。倘使装的是烂泥,一时就看不出它的深浅来了;如果是烂泥的深渊呢,那就不如浅一点的好”
</code></pre></div>      </div>
    </li>
    <li>超越免费的6个锦囊
      <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>第一条就是强化稀缺性、第二条是通过时效性超越免费、
第三条是个性化、第四条是提供可用性(易理解性)的产品和服务、第五条是提供可靠而易用的服务、第六条是提供具有数据黏性的服务
</code></pre></div>      </div>
    </li>
  </ul>
</blockquote>

<h3 id="正文">正文</h3>

<blockquote>
  <ul>
    <li>强化稀缺性
      <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>超越免费的第一条是制造一种稀缺性,而这需要产品、服务、技能本身具有一种难以复制的特性
</code></pre></div>      </div>
    </li>
  </ul>
</blockquote>

<blockquote>
  <ul>
    <li>通过时效性超越免费-
      <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>终身学习-了解了时效性,你可能也体会了终身学习的重要性,因为这样总是可以领先同辈人一步,让自己成为具有时效性的人才,而不是廉价的人。
</code></pre></div>      </div>
    </li>
  </ul>
</blockquote>

<blockquote>
  <ul>
    <li>个性化
      <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>一直强调,要做一个有趣的人,这个有趣,就是个性化。每一个人只有成为了有趣的人,有大家所喜欢的个性的人,大家才能喜欢你。---个性化医疗
</code></pre></div>      </div>
    </li>
    <li>提供可用性(易理解性)的产品和服务
      <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>在任何时代能够把事情解释清楚不仅是一个有用的本领,而且是一个很赚钱的生意。---例如得到的每天听一本书
</code></pre></div>      </div>
    </li>
  </ul>
</blockquote>

<blockquote>
  <ul>
    <li>提供可靠而易用的服务
      <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code></code></pre></div>      </div>
    </li>
    <li>提供具有数据黏性的服务
      <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>讲师-听众
</code></pre></div>      </div>
    </li>
  </ul>
</blockquote>

<h3 id="see-also">see also</h3>
<ul>
  <li><a href="https://baike.baidu.com/item/%E8%BE%B9%E9%99%85%E6%88%90%E6%9C%AC">边际成本:边际成本指的是每一单位新增生产的产品(或者购买的产品)带来的总成本的增量</a></li>
  <li><a href="https://sites.google.com/view/zhangkn/%E9%A6%96%E9%A1%B5">Google 协作平台 https://sites.google.com/new?usp=jotspot_si</a></li>
  <li><a href="https://search.google.com/search-console?resource_id=https://zhangkn.github.io/&amp;utm_source=wnc_20050170&amp;utm_medium=gamma&amp;utm_campaign=wnc_20050170&amp;utm_content=msg_110105790&amp;hl=zh-CN">新版的search-console</a></li>
</ul>

    <!-- 转载声明的封装-->
    <p itemprop="publisher">
      转载请注明:<a  itemprop="author" target="_blank" href='https://zhangkn.github.io'>张坤楠的博客</a> > <a target="_blank" href='/2018/03/BeyondFree/'>BeyondFree</a> 
    </p>

    <p>

      在操作过程或者文章有问题的话欢迎在  <a target="_blank" href='/2018/03/BeyondFree/'>原文</a> 里提问或指正。
    </p>

  </section>
</article>

<section>

            <div class="content-play">
              <p><a href="javascript:void(0)" onclick="dashangToggle()" class="dashang" title="打赏,支持一下">赞赏支持</a></p>
              <div class="hide_box-play"></div>
              <div class="shang_box-play">
                <a class="shang_close-play" href="javascript:void(0)" onclick="dashangToggle()" title="关闭"><img src="/images/payimg/close.jpg" alt="取消" /></a>
                <div class="shang_tit-play">
                  <p>感谢您的支持,我会继续努力的!</p>
                </div>
                <div class="shang_payimg">
                    <img src="/images/payimg/alipayimg.jpg" alt="扫码支持" title="扫一扫" />
                </div>
              <div class="shang_payimg">    
                    <img src="/images/payimg/weipayimg.jpg" alt="扫码支持" title="扫一扫" />
                </div>
                <div class="pay_explain">扫码打赏,你说多少就多少</div>
                <div class="shang_payselect">
                  <div class="pay_item checked" data-id="alipay">
                    <span class="pay_logo"><img src="/images/payimg/alipay.jpg" alt="支付宝" /></span>
                  </div>
                  <div class="pay_item" data-id="weipay">
                    <span class="pay_logo"><img src="/images/payimg/wechat.jpg" alt="微信" /></span>
                  </div>
                </div>
               
              </div>
            </div>
            <script type="text/javascript">
            function dashangToggle(){
              $(".hide_box-play").fadeToggle();
              $(".shang_box-play").fadeToggle();
            }
            </script>

            <div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';"></div>

            <style type="text/css">
              .content-play{width:80%;margin-top: 20px;margin-bottom: 10px;height:40px;}
              .hide_box-play{z-index:999;filter:alpha(opacity=50);background:#666;opacity: 0.5;-moz-opacity: 0.5;left:0;top:0;height:99%;width:100%;position:fixed;display:none;}
              .shang_box-play{width:540px;height:540px;padding:10px;background-color:#fff;border-radius:10px;position:fixed;z-index:1000;left:50%;top:50%;margin-left:-280px;margin-top:-280px;border:1px dotted #dedede;display:none;}
              .shang_box-play img{border:none;border-width:0;}
              .dashang{display:block;width:100px;margin:5px auto;height:25px;line-height:25px;padding:10px;background-color:#E74851;color:#fff;text-align:center;text-decoration:none;border-radius:10px;font-weight:bold;font-size:16px;transition: all 0.3s;}
              .dashang:hover{opacity:0.8;padding:15px;font-size:18px;}
              .shang_close-play{float:right;display:inline-block;
                margin-right: 10px;margin-top: 20px;
              }
              .shang_logo{display:block;text-align:center;margin:20px auto;}
              .shang_tit-play{width: 100%;height: 75px;text-align: center;line-height: 66px;color: #a3a3a3;font-size: 16px;background: url('/images/payimg/cy-reward-title-bg.jpg');font-family: 'Microsoft YaHei';margin-top: 7px;margin-right:2px;}
              .shang_tit-play p{color:#a3a3a3;text-align:center;font-size:16px;}
              .shang_payimg{width:140px;padding:10px;padding-left: 80px; /*border:6px solid #EA5F00;**/margin:0 auto;border-radius:3px;height:140px;display:inline-block;}
              .shang_payimg img{display:inline-block;margin-right:10px;float:left;text-align:center;width:140px;height:140px; }
              .pay_explain{text-align:center;margin:10px auto;font-size:12px;color:#545454;}
              .shang_payselect{text-align:center;margin:0 auto;margin-top:40px;cursor:pointer;height:60px;width:500px;margin-left:110px;}
              .shang_payselect .pay_item{display:inline-block;margin-right:140px;float:left;}
              .shang_info-play{clear:both;}
              .shang_info-play p,.shang_info-play a{color:#C3C3C3;text-align:center;font-size:12px;text-decoration:none;line-height:2em;}
            </style>

       <ul class="pager">
        
        <li class="previous">
            <a href="/2018/02/Electra/" data-toggle="tooltip" data-placement="top" title="Electra">上一篇:  <span>Electra</span>
            </a>
        </li>
        
        
        <li class="next">
            <a href="/2018/03/GitHub/" data-toggle="tooltip" data-placement="top" title="GitHub">下一篇:  <span>GitHub</span>
            </a>
        </li>
        
    </ul>
</section>

<section class="post-comments">
<!-- http://www.uyan.cc/getcode-->
  
    <div id="disqus_thread"></div>
    <script>
    
    var disqus_config = function () {
        this.page.url = "https://zhangkn.github.io/2018/03/BeyondFree/";
        this.page.identifier = "/2018/03/BeyondFree/";
    };
    var disqus_shortname = 'iosre';
    
    (function() { // DON'T EDIT BELOW THIS LINE
        var d = document, s = d.createElement('script');
        s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
        s.setAttribute('data-timestamp', +new Date());
            (d.head || d.body).appendChild(s);
        })();
    </script>
    <noscript>要查看<a href="http://disqus.com/?ref_noscript"> Disqus </a>评论,请启用 JavaScript</noscript>
    <!--<script id="dsq-count-scr" src="//iosre.disqus.com/count.js" async></script>-->
  

</section>

<section class="post-gitcomments">
    <!-- http://www.uyan.cc/getcode-->
    

    <div id="container"></div>
    <link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css">
    <script src="https://imsun.github.io/gitment/dist/gitment.browser.js"></script>
    <script>
        var gitment = new Gitment({
  id: '/2018/03/BeyondFree/', // 可选。默认为 location.href
  owner: 'zhangkn',
  repo: 'githubpages-comments',
  oauth: {
    client_id: 'eb8baa6afd018fb78abf',
    client_secret: 'c7b3a1a69585b929f76b9b849a5266c6198d8498',
},
})
        gitment.render('container')
    </script>

    

</section>
<section class="read-more">
   
   
   <div class="read-more-item">
       <span class="read-more-item-dim">最近的文章</span>
       <h2 class="post-list__post-title post-title"><a href="/2018/03/GitHub/" title="link to GitHub">GitHub</a></h2>
       <p class="excerpt">前言正文工作协同      参与GitHub中的项目开发,最常用和推荐的首选方式是“Fork + Pull”模式。      在派生项目中创建的提交,可以非常方便地利用GitHub的Pull Request工具向原始项目的维护者发送Pull Request。            建立主页:GitHub用户通过创建特殊名称的Git版本库或在Git库中建立特别的分支实现对主页的维护      创建个人主页:GitHub 为每一个用户分配了一个二级域名.github.io, 例如我自己的sit...&hellip;</p>
       <div class="post-list__meta"><time datetime="2018-03-02 00:00:00 +0000" class="post-list__meta--date date">2018-03-02</time> &#8226; <span class="post-list__meta--tags tags">tool</span><a class="btn-border-small" href=/2018/03/GitHub/>继续阅读</a></div>
   </div>
   
   
   
   
   <div class="read-more-item">
       <span class="read-more-item-dim">更早的文章</span>
       <h2 class="post-list__post-title post-title"><a href="/2018/02/Electra/" title="link to Electra">Electra</a></h2>
       <p class="excerpt">前言本文的重点是定制一些自己的功能      Electra iOS 11.0 - 11.1.2 jailbreak toolkit based on async_awake  cydia 分支的代码比较新      KNelectra   打开app 自动激活 //todo 定制一些项目的需求: 比如创建初始化一些基本设置      async_awake        存放cydia 预留源地址的目录  ioast:/private/etc/apt/sources.list.d roo...&hellip;</p>
       <div class="post-list__meta"><time datetime="2018-02-28 00:00:00 +0000" class="post-list__meta--date date">2018-02-28</time> &#8226; <span class="post-list__meta--tags tags">iOSre</span><a class="btn-border-small" href=/2018/02/Electra/>继续阅读</a></div>
   </div>
   
</section>


部分。

- 模板本身也是文档,所以一个模板也可以用layout变量指定使用一个模板作为布局,这就是模板的继承。

- 利用好Liquid语言的include语法能够带来很大的变量。被包含的页面部件需要放在_includes文件夹中

- 需要大量的js以增加动态特性,在设计模板时要遵循Unobtrusive JavaScript原则。https://christianheilmann.com/2007/11/12/the-seven-rules-of-unobtrusive-javascript/


2)灵活的导航

可以在_config.yml中设置一个导航菜单的变量:



menuitems:
- name:     首页
  url:          /index.html
- name:       分类
  url:          /categories.html
- name:       标签
  url:          /tags.html
- name:       归档
  url:        /archive.html
- name:       读书
  url:        /reading.html
- name:       工作
  url:        /working.html
- name:       关于
  url:        /about.html


<!-- 然后在模板的导航部分可以这样写: -->

<ul class="nav">
  &#123;% for item in site.menuitems %&#125;
    &#123;% if item.url == page.url %&#125;
    <li class="active">
    &#123;% else %&#125;
    <li>
    &#123;% endif %&#125;
    <a href=""></a>
    </li>
  &#123;% endfor %&#125;
</ul>




# Navigation buttons in the front page.s
nav:
    - {title: 所有文章, description: archive, url: '/archive'}   
    - {title: 标签, description: tags, url: '/tags'}      
    - {title: 关于我, description: about, url: '/about'}    


3)分类、标签、归档和RSS

分类、标签和归档可以按照不同的方式检索博客文章;RSS可以订阅博客。---用Jekyll的变量和模板很容易实现这些元素。

- 注意:不管文件的扩展名是md、html还是xml、txt,只要文件的头部包含变量声明,Jekyll的模板引擎就会对其进行处理。
其中md和html文件都会处理为html,其他类型会保持扩展名。



4) 分页


浮动标题 on paginator

5) 语法高亮


- 利用外部资源,比如GitHub Gist---很重要,简单,但是需要使用外部链接或通过js嵌入到页面,不利于文档和代码的统一维护

- 使用js在前端渲染,比如google-code-prettify 

简单高效,对语言的支持不够多

<link href="/js/google-code-prettify/prettify.css" rel="stylesheet">
<script src="/js/google-code-prettify/prettify.js"></script>
<script>
$(document).ready(function(){
     prettyPrint();
});
</script>


- 使用Jekyll插件,比如调用pygments---GitHub 好像只支持插件

推荐方式。支持100多种语言。

<!-- 采用pygments的方式: -->


pip install pygments

1) 在_config.yml中设置

pygments:       true

2)在代码的前后增加过滤器:

{/% highlight ruby linenos %/}
def foo
  puts 'foo'
end
{/% endhighlight %/}


<!-- 博客搬家 -->

Jekyll提供了一个import的子命令(需要插件jekyll-import),可以将旧的博客导入到Jekyll


<!-- 三、推广篇 -->


- 社会化网络
通过混搭(marshup) 可以把各种各样第三方的功能部件(widgets)加到你的博客中
1) 社会化评论

国外的有disqus,国内的有友言,多说


2) 社会化推荐---其实使用/www.google.com/adsense 就有这种效果

国内的有友荐,无觅。

Jekyll本身也可以实现站内文章推荐的功能。

3) 社会化分享

国内的有加网 ,百度分享等。其中加网提供了划词分享功能。

4)社交网站

Twitter, Facebook, Google Plus, 新浪微博等网站。与博客的联动可以是自己发布博客动态



5)社会化登录


- 流量分析和统计


选择的有国外的Google Analysis、SiteMeter和国内的百度统计、
量子恒道统计等。



-- 文档目录(TODO)  ---- 我觉得很重要       catalog: true

catalog-body
generateCatalog(".catalog-body");


<!-- 其实及时对标题的定位 -->
<!-- <a class="catalog-toggle" href="#">CATALOG</a> -->
catalog: true

https://github.com/qiubaiying/qiubaiying.github.io/search?utf8=%E2%9C%93&q=css%2Fhux-blog.css&type=


<!-- _includes/head.html -->

    <!-- Custom CSS -->
    <link rel="stylesheet" href="/css/hux-blog.min.css">


<!-- _includes/footer.html -->

<!-- Side Catalog -->




<!-- Custom Theme JavaScript -->
<script src="/js/hux-blog.min.js "></script>

<!-- less/hux-blog.less -->

@import "variables.less";
@import "mixins.less";
@import "sidebar.less";
@import "side-catalog.less";

<!-- less/side-catalog.less -->
<!-- js/hux-blog.js -->


var currentTop = $(window).scrollTop(),
$catalog = $('.side-catalog');
<!-- kn css/hux-blog.css-->






<!-- $ git clone <版本库的网址> <本地目录名> -->

$ git clone [user@]example.com:path/to/repo.git/

<!-- 二、git remote -->

<!-- 使用-v选项,可以参看远程主机的网址。 -->

devzkndeMacBook-Pro:electra devzkn$ git remote -v
origin  git@github.com:coolstar/electra.git (fetch)
origin  git@github.com:coolstar/electra.git (push)


<!-- 克隆版本库的时候,所使用的远程主机自动被Git命名为origin。如果想用其他的主机名,需要用git clone命令的-o选项指定。 -->

$ git clone -o jQuery https://github.com/jquery/jquery.git


<!-- git remote命令列出所有远程主机。 -->




<!-- git remote show命令加上主机名,可以查看该主机的详细信息。-->

devzkndeMacBook-Pro:electra devzkn$  git remote show origin
* remote origin
  Fetch URL: git@github.com:coolstar/electra.git
  Push  URL: git@github.com:coolstar/electra.git
  HEAD branch: master
  Remote branches:
    cydia  tracked
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (fast-forwardable)


<!-- git remote add命令用于添加远程主机。 -->

$ git remote add <主机名> <网址>


<!-- git remote rm命令用于删除远程主机。 -->

<!-- git remote rename命令用于远程主机的改名。 -->

<!-- 三、git fetch -->

$ git fetch <远程主机名>



<!-- 默认情况下,git fetch取回所有分支(branch)的更新。如果只想取回特定分支的更新,可以指定分支名。 -->

devzkndeMacBook-Pro:electra devzkn$ git fetch origin  cydia
From github.com:coolstar/electra
 * branch            cydia      -> FETCH_HEAD



devzkndeMacBook-Pro:electra devzkn$  git branch -r
  origin/HEAD -> origin/master
  origin/cydia
  origin/master


  <!-- 查看所有的分支 -->
devzkndeMacBook-Pro:electra devzkn$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/cydia
  remotes/origin/master




<!-- 取回远程主机的更新以后,可以在它的基础上,使用git checkout命令创建一个新的分支。 -->
$ git checkout -b newBrach origin/master

devzkndeMacBook-Pro:electra devzkn$ git checkout -b cydia origin/cydia

devzkndeMacBook-Pro:electra devzkn$ git fetch origin


<!-- 此外,也可以使用git merge命令或者git rebase命令,在本地分支上合并远程分支。 -->

$ git merge origin/master
# 或者
$ git rebase origin/master

上面命令表示在当前分支上,合并origin/master。



<!-- 四、git pull -->

<!-- $ git pull <远程主机名> <远程分支名>:<本地分支名> -->

$ git pull origin next:master

<!-- Git也允许手动建立追踪关系。 -->

git branch --set-upstream master origin/next


如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。


<!-- git pull 加上参数 -p 就会在本地删除远程已经删除的分支。 -->


<!-- 总结: 取回远程的一个分支 cydia-->

devzkndeMacBook-Pro:electra devzkn$ git checkout -b cydia origin/cydia
Branch cydia set up to track remote branch cydia from origin.
Switched to a new branch 'cydia'

devzkndeMacBook-Pro:electra devzkn$ git fetch origin


1、将公钥文件中的内容粘贴到GitHub的SSH公钥管理的对话框中
<!-- 在~/.ssh目录下创建名为gotgithub的私钥和名为gotgithub.pub的公钥文件。 -->
$ ssh-keygen -C "gotgithub@gmail.com" -f ~/.ssh/gotgithub
<!-- 在~/.ssh/config配置文件中写入 公钥的配置信息 -->
Host github.com
  User git
  Hostname github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gotgithub
<!-- 将~/.ssh/gotgithub.pub文件内容拷贝到剪切板:pbcopy命令[2]将文件内容拷贝到剪切板以避免拷贝错误 -->
$ cat ~/.ssh/gotgithub.pub | pbcopy
<!-- ssh命令后面添加-v参数加以诊断 -->
$ ssh -Tv git@github.com
2、Mac下的命令行工具pbcopy和pbpaste可以在命令行下操作剪贴板,Linux下的命令行工具xsel亦可实现类似功能。在Linux下可以创建别名用xsel命令来模拟pbcopy和pbpaste 。

alias pbcopy='xsel --input'
alias pbpaste='xsel --output'
  • 创建新项目¶
    <!-- 为版本库添加名为origin的远程版本库 -->
    $ git remote add origin git@github.com:gotgithub/helloworld.git
    <!-- 注意命令行中的-u参数,在推送成功后自动建立本地分支与远程版本库分支的追踪。 -->
    $ git push -u origin master
    <!-- 使用强制推送。 -->
    $ git push -f
    
  • repo-operation
<!-- GitHub上版本库的默认分支,就是将GitHub版本库的头指针HEAD指向了其他分支 -->
devzkndeMacBook-Pro:zhangkn.github.io devzkn$ git branch -r
  origin/HEAD -> origin/master
  origin/master
  origin/test
devzkndeMacBook-Pro:zhangkn.github.io devzkn$ 
<!-- 从git ls-remote命令看出头指针HEAD和引用refs/heads/master 指向同一个对象的哈希值。 -->
devzkndeMacBook-Pro:zhangkn.github.io devzkn$ git ls-remote
From https://github.com/zhangkn/zhangkn.github.io.git
4d6104714ba6c9305d4aec129131dc043b2268a5	HEAD
4d6104714ba6c9305d4aec129131dc043b2268a5	refs/heads/master
921d23cb81f1853692ffb868ea9a535869ded514	refs/heads/test

<!-- 删除分支:能删除当前工作分支 、禁止删除远程版本库的缺省分支 -->
$ git branch -D mybranch1
$ git push origin :mybranch1

<!-- 里程碑和分支一样也是以引用的形式存在的,保存在.git/refs/tags/路径下 -->
devzkndeMacBook-Pro:zhangkn.github.io devzkn$ ls -lrt .git/refs/remotes/origin
total 24
-rw-r--r--  1 devzkn  staff  32 Dec 11 23:35 HEAD
-rw-r--r--  1 devzkn  staff  41 Jan 26 17:51 test
-rw-r--r--  1 devzkn  staff  41 Mar  2 15:24 master
<!-- git tag <tagname> [<commit>] 命令创建 -->
$ git tag -m "Tag on initial commit" mytag1 HEAD^

<!-- 将本地里程碑推送到GitHub远程版本库。 -->
$ git push origin refs/tags/*
<!-- 删除本地里程碑 -->
$ git tag -d mytag3
<!-- 删除GitHub远程版本库中的里程碑 -->
$ git push origin :mytag3

转载请注明: > GitHub

在操作过程或者文章有问题的话欢迎在 原文 里提问或指正。

赞赏支持

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少
最近的文章

TheWayOfThinking

前言 知识的获取: 亲身感知(旅行)、他人告知(学习)、逻辑推知 计算机从专用到通用背后的逻辑、为什么算盘是计算机、计算机从简单到复杂、五级工程师和职业发展、为什么要学习科学正文计算机从专用到通用背后的逻辑一个复杂的问题如果能拆成两个等价的简单问题,成功的可能性就大很多,就可以事半功倍。 香浓的思想(信息论、二进制运算的开关逻辑电路) 模块化:简单的模块 搭建出各种复杂的功能等价性:复杂的计算,《=》加减乘除运算 《=》 开关电路逻辑--- 科学家的工作就是...…

JunWu'sGoogleMethodology继续阅读
更早的文章

BeyondFree

前言 最近在得到订阅了 《吴军的谷歌方法论》,很喜欢其中的一句话 “不错,半农确是浅。但他的浅,却如一条清溪澄澈见底,纵有多少沉渣和腐草,也不掩其大体的清。倘使装的是烂泥,一时就看不出它的深浅来了;如果是烂泥的深渊呢,那就不如浅一点的好” 超越免费的6个锦囊 第一条就是强化稀缺性、第二条是通过时效性超越免费、第三条是个性化、第四条是提供可用性(易理解性)的产品和服务、第五条是提供可靠而易用的服务、第六条是提供具有数据黏性的服务 ...…

JunWu'sGoogleMethodology继续阅读
更多