LoginSignup
7
7

More than 5 years have passed since last update.

サンプルを gh-pages に上げる時に楽したい

Last updated at Posted at 2014-07-11

Polymer.dart 使ってみたくて color_palettepixel_canvas を作ってみた。この時、せっかくなので gh-pages に利用サンプルも上げようとしたら、意外と苦労したのでメモ。

gh-pages に上げようとしたサンプル:

実際に gh-pages に上げたページ:

前提

Pub Package Layout に基づいて、サンプルは プロジェクトルート/example に置き、さらに pub build example すると、プロジェクトルート/build/example にビルドしたものができる状態を前提とします。

便利パッケージを追加

便利パッケージ ghpages_generatoryamspec.yamldev_dependencies に追加:

...
dev_dependencies:
  ghpages_generator: '>=0.2.0 <0.3.0'
  path: '>=1.2.0 <1.3.0'
...

スクリプト作る

pub Package Layout によると、プロジェクトのための便利スクリプトは プロジェクトルート/tool に置けとのことなので、gh-pages サイト作るスクリプトも プロジェクトルート/tool に置く。

$ mkdir tool
$ touch tool/gh-pages.dart
$ chmod 755 tool/gh-pages.dart

肝心のスクリプト本体はこんな感じ:

gh-pages.dart
#!/usr/bin/env dart

import 'dart:io';

import 'package:ghpages_generator/ghpages_generator.dart' as gh;
import 'package:path/path.dart';

main() {
  var gen = new gh.Generator(rootDir: projectDir)
    ..withExamples = true;
  gen.generate(doCustomTask: (workDir) {
    gh.moveExampleAtRoot(workDir);
  });
}

String get projectDir =>
    absolute(
        dirname(
            dirname(Platform.script.toFilePath())));

アップロード

実行すると gh-pages 作ってコミットしてくれるので、git push するだけ。

$ tool/gh-pages.dart
$ git push origin gh-pages

おわり。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7