構文の硬さがJavaが10 Python6 Rubyが3という記事をどっかで見たけど、同じように当てはめると、JS8 typescript6 coffee2という感じ。 coffee-scriptの超ゆるふわスタイルに慣れてると結構辛い感じはあるが、自分多分Coffeeについてある程度極まってる感じなので、あんまり比較しないほうがよさそう。 高階関数(後述)が簡単に定義できるのでJS特有のパラダイムには素直に応えられる。
””” multiline text “”” がない デフォルト引数がない
クラス志向というよりかはインターフェース志向?Golangっぽさも若干感じる。とりあえずJSの邪魔をしないanyが便利。
CoffeeScriptの辛かった点である、「jsコピペしてすぐ動かない」問題が解決した。 とりあえずコピペしてから徐々に置き換えるという段階を踏める。
JSと同じような扱い。classフィールドでは;なしだと構文解析されない。基本末尾セミコロン嫌いなので可能な限り省略して書いてみたが、結局必要そう…
結局自分はfunctionと書きたくなくてcoffeescriptを使ってるフシがあるのだけど、どのぐらい省略できるか調べてみた。
自分自身を返す f(x) = x はこう書ける
1
|
|
ブロックだと複数行書けるが、returnが必須
もしくはブロック省略して
1
|
|
こちらはreturnが要らない
CoffeeScriptと違って 引数なしの()は省略できない
1 2 3 |
|
宗教上の理由(一方が好きというかは一方が嫌い)でVSが使えないのだが、SublimeTextで書いていたが補完はなかった。 まあ簡単そうなのでそのうち誰かが作るだろう。
公式リポジトリのサンプルに型ファイル情報が少しついてる
todomvcにはBackboneモジュールに対して型アノテーションを追加していて参考になる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
練習がてらやってみた。 underscore type definition — Gist https://gist.github.com/3831467
1 2 |
|
1 2 3 |
|
ドキュメントみながら脳みそ止めて適当に作ったのでテストはしてないがひと通り動くはず。
underscore.d.ts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
var fuga: (number) => (string) => number
なんていうかっこいい型定義ができるんだからcurry化したいなーと思っていじってたんだけど、Function型定義がprocを認識しない。 どうにかしてdeclareすればできるのかと思ったんだけどよくわからない。誰かタスケテほしい。
こういうことをしたかったんだけど
]]>仕組みとしては超単純で、 .themes 以下に掘ったディレクトリに対して、
1
|
|
すると .themes/hogehoge 以下の内容が現在のディレクトリに上書きされる。それだけ。
実際に開発する場合は scss, source以下のファイルをpreview状態で編集して、最後にsourceとscssだけ抜いたディレクトリをコピーして終わり
たとえばこれは、ほぼslashテーマのクローンだが
1 2 3 4 5 6 7 8 9 10 |
|
sassとsourceが上書きされる
たぶん source/_layout/default.html
ページを作成する際は、yamlのメタ情報で展開するテンプレートを指定する。(defaultはたぶん指定しなかった時も展開されるんだろう) たとえばこのページのyamlはこうなっている
1 2 3 4 5 |
|
で、postは
1 2 |
|
singleはなんだろう… あとで調べる
includeされるテンプレートは_include以下におく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
まあ色々と入っているけど、includeされた順に追っていけばそんなに難しくない。あとはファイル名から適当に類推できる。
]]>Jeykilをバックエンドに静的ページを動的に生成するブログエンジン。なにをいってるかわかんねーだろーがry
rakeコマンドで記事生成したり、erbでテンプレートを編集したりできる。要は生成部分は動的だけど成果物は静的。
プラグインもそこそこある。けどとくに制約がないので自分で書いたほうが早そう。
Github PagesやHerokuにデプロイするのが常套っぽい。まあ静的ページだからどこでもいいんですけどね。
俺もだいぶJS書けるようになってきたのでJS書きまくれるブログでサブドメインはいいよなーとか考えてて
そういえば mizchi.github.comでなんかできないかなーと調べてたらmarkdownならoctopressってのがあるらしい => やるか githubドメインよい。
いきなり躓いた。ruby 1.9.3だと、RedCloth 4.9.3? のエラーかなんだかでbundle installできない。ぐぐるといろんなところでRuby 1.9.2使えと言われるのでおとなしく入れる(公式には1.9.3使えと書いてある…)
僕ルビーストじゃないんで原因よくわからんす(会社でRails使ってるはずなんだけど)。とりあえずRVM使ってるんで1.9.2いれておく。
1
|
|
rakeとzshが相性悪いのを少し修正
1 2 |
|
rakeの補完、ファイル読みに行ってるようで超遅い。auto-fuつかってると特に。
1 2 3 4 5 6 7 8 9 |
|
1
|
|
source/_posts/~~~.markdownが生成される。 エディタでmarkdownで書く。ヘッダのハイフンで囲われてる領域はyamlでメタ情報生成用らしい
1 2 3 4 5 6 7 8 9 10 11 |
|
記事書いたらrake gen_deploy (generate と deploy同時にやる)
1
|
|
記事書いて生成してgen_deploy
サーバー建てて動的に変更確認することもできる
1 2 |
|
テーマを入れ替えてみた
tommy351/Octopress-Theme-Slash
1
|
|
とかやりたかったのでJSをmy以下に突っ込んでsource/_include/head.htmlにパス追加。myってのは酷いのであとでどっかに動かす。
1 2 3 4 |
|
JS自由に読み込めるのいいですね、危ないけど
coffee-scriptとBackboneで無理やりpushstateさせるプラギン書いてみた。ヘッダで読みこめば動く。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
|
あとで書く。よくわからない。
]]>1 2 3 |
|