1

サイトを Jekyll の使用からGulp & Jadeの使用に切り替えようとしています。テンプレートの利便性から主に Jekyll を使用していましたが、Jekyll の実際の使用はブログとしてであるため、その機能の多くはそのように指摘されています。その中で会社のウェブサイトを開発することはできますが、開発watchサーバーを使用しない限り、次のようなものはありません。また、Jade の構文を使用できるという利点もありnpmますが、Jekyll 用の Jade プラグインが存在することは間違いありません。

Jekyll が指摘して良かった点の 1 つはmydomain.com/about、ルーティングされた動的サイト (たとえば ) で使用されている標準的な URL 構造 agmod_rewriteが、ディレクトリ構造で非常に簡単に実現できることです。./about/index.html

これは、サイトが多くのフォルダーを生成できることを意味するため、Jade への移行は最小限に抑えたいと考えています。これは、ファイルからgulp jade生成するために使用するコードです。.html.jade

gulp.task('jade',function(callback){
    gulp.src('./jade/*.jade')
    .pipe(jade({
        pretty: true,
        markdown:marked
    }))
    .pipe(gulp.dest('./public/'));

    callback();
});

これを変更して取得するにはどうすればよいですか:

jade/index.jade -> public/index.html
jade/about.jade -> public/about/index.html
jade/another-page.jade -> public/another/page/index.html
4

1 に答える 1

4

以前のプロジェクトでは、gulp-renameライブラリを使用して、構成ファイルをビルド ディレクトリにすばやく切り替えることができました。単なる正規表現以上の機能を備えていることが判明し、関数を渡すと便利なオブジェクトが表示されます

path={
  basename:'about',
  dirname:'',
  extname:'html'
} 

これらの値を変更すると、名前が変更されreturnます。値は必要ありません。そのため、メインindex.jadeファイルを簡単に確認することで、簡単に分割して結合し、ディレクトリ パスgulp.destを作成できます。ディレクトリ パスが存在しない場合は作成されます。

var jade=require('gulp-jade');
var rename=require('gulp-rename');
gulp.task('jade',function(callback){
    gulp.src('./jade/*.jade')
    .pipe(jade({
        pretty: true,
        markdown:marked
    }))
    .pipe(rename(function(path){
        if (path.basename=='index'){
            return;
        }
        path.dirname=path.basename.split('-').join('/');
        path.basename="index";
    }))
    .pipe(gulp.dest('./public/'));

    callback();
});
于 2014-10-03T14:57:59.500 に答える