用GitBook一起来高逼格的写书 – Maya Houdini Scripts Cookbook

gitbook可以让你“出版”自己的电子书,书的内容可以放在github,换句话说就是可以很多人一起写

update:
11/04/2016 linux的编辑器只有.deb安装包了,老版的还在github上有,但是很久没更新了,官方建议先用web版editor,等到他们出pro版编辑器

书的作者需要怎么做 – 首次创建

如果你想帮助其他人(比如lz)写书 ,直接跳过这一大段垃圾看这里: 如何多人协作写书.

  1. 当然是先去gitbook注册个账号,当然最好你还得有github的账号(如果你想很多人一起写的话)gitbook_register
  2. 新建一本书
    gitbook_newBook
  3. 把这本书导出到github
    gitbook_imported_to github
  4. 你可以用gitbook官方的编辑器写,也可以用任何其他一个文本编辑器(比如sublime,如果想高逼格甚至可以用Adobe Edge Inspect CC 在ipad上实时显示书的内容)
    gitbook editor
  5. 下载安装了官方编辑器并登陆后,你可以开始写了
    写书的时候使用的是所谓的Markdown语法gitbook editor first
    • 好了,其实你已经可以撰写你的大作了,不过这里根据你想用什么软件写,你想推送到哪里会有以下几种考虑:

    • 用gitbook在线版的editor在浏览器里写

      gitbook repo use github
      不过这样大概是直接保存到gitbook的git服务器上,没法同步到github的吧(不能多人一起写) 现在新版的2.0 web editor已经可以commit回github了

    • 你直接在gitbook editor里登陆gitbook的账号,然后点开你的书直接写

      这时候你的editor看起来是这样的

      当你在这个编辑器里写了一篇文章以后,在菜单里选push,这时候你是push到gitbook的git服务器的,github上的是不会变的,换句话说是单向的(当然了gitbook公司当然希望你只用他自己的服务,何必费那么大工夫给你做双向同步功能)
      当然了如果这样,你写的书就完全和github没关系了,这样大概没法多人一起写吧

    • 你还是想用gitbook editor写,但是想推送到github

      此时你可以在local library里打开你要写的书,把repo地址改成你的github的这本书的地址

      这里只能使用https开头的github repo地址(因为编辑器现在还不支持git开头的),换句话说,这样你如果去local library的目录里(你的书的本地文件在%USERPROFILE%\GitBook)用git命令就不太方便了,因为只有git开头的repo地址才能用ssh功能不输密码操作,如果你用https开头的地址,敲git命令的时候每次都要输密码(有不输的方法,但是很折腾),不过既然你用了gitbook editor,他会帮你记住密码的,不用每次输,这里只是说你如果用这种方法,偶尔想用git命令行就不太方便了

      此外你还得打开webhook功能,意思是每次你push到github的话,gitbook就自动build新版的内容


      如上图所示,你需要在settings里填入你的github上书的repo地址,然后按下add webhook按钮,最后你可以去github看下成功的加上没,如果加好了,那你每次push到github,你的gitbook在线大作就会即时更新
    • 高逼格写法,用其他编辑器比如sublime(瞬间降格,高手请自己换成emacs)和命令行git

      要高逼格就要多几步操作:
      首先我们把github上刚才import的repo clone下来

      # 我这里是假设你是原作者的举例,如果你想帮我一起写书,
      # 你应该首先fork我的github repo,然后clone你自己fork出来的repo地址,
      # 暂且不表,下文再述
      git clone git@github.com:oglops/maya-houdini-scripts-cookbook.git
      

      好了你现在可以用你其他的编辑器来写作了,写好内容想发布的时候用你的git命令行工具来推送到github,或者用你编辑器里内置的git插件也行,lz这里使用的是sublime3,你可以参考这篇旧文如何用sublime text 3 来写gitbook(Markdown格式)来设置(有些地方已经需要更新了,看下面),推送后因为刚才设置了webhook,gitbook会知道你有新内容要发布,所以他会自动build你的新版,稍后就能在gitbook的网站在线看到你更新的内容

      上图中lz用的是sublime text 3, 从package control网站装了一些markdown编辑的插件

      插件可以用ctrl+shift+p从package control安装
      sublime markdown plugins

      其中live reload for sublime text 3的安装可以这样,我用是portable版的sublime,似乎package control的package直接被安装到了安装目录下的Data\Installed Packages里面,而不是网上说的在%APPDATA%\Roaming\Sublime Text 3\Installed Packages,所以我这样安装live reload

      cd D:\tools\Sublime Text Build 3083 x64\Data\Packages\User
      git clone -b devel https://github.com/dz0ny/LiveReload-sublimetext2.git LiveReload
      

      此外需要安装firefox的Markdown Viewer extension,然后去livereload官网装firefox的extension,当然还有其他浏览器的

      最后你能达到如这样的效果,点这里查看高质量的gfycat动画演示(诡异的地方在于这不是视频网站,也不是gif,这是黑科技网站…)

      下面是传统的低逼格gif,有6mb说不定会造成你打开此页面非常缓慢,而gfycat只有600k,

      如果你想测试网速,点击下面的gif放大观看,下面的gif应该是隐藏的,这招似乎firefox上不灵,还是chrome对html5支持的多啊,如果是chrome点击这行左侧的黑色三角可以显示下面的gif

      超大的老式的gif

      这时候你依然可以用gitbook editor写,不过你应该选择open,写完关闭即可,(因为你如果选import,他会帮你拷到%USERPROFILE%\GitBook),此时你repo设的是git开头的用ssh的,他推不了(上面说过了,现在还不支持,你如果想自己敲git命令去推也可以,不过这有啥意义?我就是不想放到%USERPROFILE%\GitBook下面才自己git clone的嘛)

      其他没有什么好说的了,你会用git和github就行了

    ps: lz用canva做了个封面 放进去了

如何多人协作写书

如果你只是想帮助lz一起写,那你应该这么做

    1. 首先你需要fork lz的github repo
      当然你得去注册个github账号,然后点lz的repo右上角的fork按钮,之后按提示操作
      github fork

fork好之后,你应该有自己的repo了,你需要去到自己的repo页面,这里你有两种选择

      • 低逼格法,用gitbook editor,repo地址填你的https开头的repo地址
      • 高逼格法,用上文所述的sublime大法,repo地址用git开头的ssh地址
        repo ssh比如你的地址是 git@github.com:xxx/maya-houdini-scripts-cookbook.git , 其中xxx是你的github用户名

        git clone git@github.com:xxx/maya-houdini-scripts-cookbook.git
        

        clone过后,就会有一个名为maya-houdini-scripts-cookbook的文件夹了,你进去写就行了,不管你是用gitbook editor还是sublime,你推送的改变都是改了你自己的github上repo里的书而已,lz的并不会变,如果你写了几章,想让lz加到lz的repo里,那你需要用到这个pull request

        pullrequest

        如上图所示,当你点了这个按钮,并且按提示操作后,你fork来的repo的原作者就会收到提示,显示你改了哪些地方,他是否要同意加到他的repo里,如果他同意了,那他的repo里就会出现你写的部分,所以最后效果就是大家都把各自写的内容集中到了最开始的第一作者的repo里,当然你不是无名氏,具体到哪条是谁写的,哪天几点写的,改了什么地方的每次commit都有记录,因为是用了git的嘛

完…

最后:
lz的Maya H­oudini­ scrip­ts coo­kbook gitbook地址
相应的github repo地址
stackedit在线编辑器用于练习markdown语法
希望大家一起来写
gitbook done

留下评论