u-ryo's blog

various information for coding...

Category: Grain

Gradlew Stopped

| Comments

実に久し振りにこのblogを書こうとして、

1
./grainw create-post 'some title'

としたら、gradle-1.8.jarを取りに行って404 not found食らって動きません。 このgrainって古いしもう更新止まってるし、先見の明なかったなぁということなんですが、もうちょっと本気で原因究明です。 https://services.gradle.org/distributions/ はあるのになぜ404? と思ったら、http://...で取りに行ってました。gradlewのgradleが古すぎる? grainwのどこで止まってるか、debug print入れて割り出すと、./gradlew gendepsでした。これをversion 6.8.1のgradleで手動でやってみる(gradle gendeps)と、build.gradleline: 78で止まります。なんで?と思って調べると、「Cannot add task 'wrapper' as a task with that name already exists.」が出たにあった通り、でした。

1
task wrapper(type: Wrapper) {

1
wrapper {

にすれば動きました。良かった。 gradle wrapper./gradlewを更新して、./grainwも復活しました。

Grain on CodeAnywhere

| Comments

ちょっと、やっぱりダメですね。

1
2
3
4
5
6
java.lang.RuntimeException: While executing class com.sysgears.grain.registry.Registry.compile
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        :
        :
Caused by: java.net.SocketTimeoutException: Accept timed out
        at java.net.PlainSocketImpl.socketAccept(Native Method)

といわれて、./grainw generate./grainw gendeployも出来ません。 あーあ、なぁんだ。

Site Search in This Blog

| Comments

この自分のblog、検索したいことがよくあるんですが、 右上のsearch box、単なるgoogle searchなので、 何でblog内検索がないのかなー、 って思ってたんです。 いい加減不便なので、 調べてみました。 すると、theme/includes/navigation.html にて、

1
<input type="hidden" name="q" value="site:${site.url}" />

と書いてあるので、 site限定searchをやろうとしていた意図は窺えました。 これがうまく行っていないので、 調べて下のようにしたところ、 google検索結果に「site:...」がついてくれるようになりました。

1
<input type="hidden" name="sitesearch" value="${site.url}" />

しかし、結果にRecent Postでの見出しも含まれてしまうなど、 かなり広めに出て来ちゃうようなので、 Lunr.js Pluginでも入れた方がいいのかなー。 grainにoctopress用pluginが入るのか?! というのはありますが。

Created My Blog by Grain

| Comments

Blog、はじめました

非常に遅まきながら、blogを作ってみました。

きしださんの2014-02-25(火) コミュニティに入るか入らないかでエンジニアとしての幸福度がかわるを見まして、 なるほどそうだなぁと思い、 そのためには発信していかなきゃ、 ということで、 始めました。

blog環境は世に数多あれど、 editorで書きたい、 dataを手元に置いておきたい、 ということから、 Qiitaやはてぶ等ではなく、 Github Pagesを用いました。 Github Pagesというのがあってblogに使える、 というのも今回初めて知りました。 この場合の世の趨勢は「Github Pages + Jekyll」、 ただ数が多くなると重くなるということで、 最近は「Github Pages + Hugo」に乗り換える人が多いようですが、 Java屋さんとしては、 Gradleで行けるGrainというのがあるというのを知り、 それを使ってみました。 わかってしまえば、結構簡単に入ります。

  1. まず、https://github.com で自分のGithub Pages repository(必ず「ユーザーID.github.io」という名前)を作成します。 中身は空で構いません。

  2. それから、GrainのOctopress用テーマを持ってきます。 これがGrainを含んでおり、また現状唯一のblog用のテーマです。 https://github.com/sysgears/grain-theme-octopress/releases で適宜最新版を確認してみて下さい。

    1
    
    $ wget -O - https://github.com/sysgears/grain-theme-octopress/archive/v0.4.5.tar.gz|tar xvfz -
    

  3. この状態で、プレビュー出来ます。

    1
    2
    
    $ cd grain-theme-octopress-0.4.5
    $ ./gradlew
    
    とすると、 http://localhost:4000/ でプレビューできます。 (本当は「./grainw 」でプレビューなんですがうまく行きませんでした)

  4. 新しい記事を作成するには、以下のようにします。

    1
    
    $ ./grainw create-post 'Any blog post title'
    
    すると、 「./content/blog/yyyy-mm-dd-上で指定したタイトル.markdown」

というfileが出来ます。それを編集します。

  1. Github Pagesにデプロイするには、 SiteConfig.groovy という設定ファイルの中に、 github のURLを書きます。 私の場合は、↓こうでした。

    1
    
    gh_pages_url = 'git@github.com:u-ryo/u-ryo.github.io.git'
    
    sshでgithubにアップロード出来るように、 https://github.com/settings/ssh で手元のマシンのssh public keyを登録しておきます。

  2. そうしておいてから、

    1
    
    $ ./grainw gendeploy
    
    とすると、私(ユーザーID:u-ryo)の場合は、 http://u-ryo.github.io/ でblogが見られる、という塩梅です。

  3. タイトル等このblogの設定は、 SiteConfig.groovy の中身を適宜変更すれば良いです。

...というようなことを、これから少しずつ発信していきたいと思います。

はまった点

  • grain-theme-octopress をgit cloneするとうまく行かず(./grainw generateで止まりました)、tar.gzファイルを落として展開するとうまく行った(./grainw generateが通った)
  • 記事ヘッダの「author:」で、文字列はシングルクォートないしダブルクオーテーションで囲む必要がある(groovyで処理するので、「文字列」にしておかないと後でエラーになります)
  • emacsのバックアップファイル(拡張子の最後に「~」が付くもの)もblogファイルと見做されてしまうため、消す必要がある(また、書いている途中だと「.#〜」というロックファイルが出来るが、これがあるとプレビューが立ち上がらない)