Adobe ExtendScriptでminify後のスクリプトが動かない

結論としては文字コードがBOM付きのUTF-8じゃないせいでした。


※追記(2018/04/08)
他にも三項演算子をネストした時の処理順がおかしかったりbreakの後にセミコロンがないと駄目だったり、UglifyJSで圧縮されたコードがExtendScriptでは使えないことがたまにあります。


IllustratorスクリプトがUglifyJSで圧縮するとなぜか動かず、$.writeln()の出力すら表示されなくなったのでオプション変えて色々試したものの動かず……不思議に思いながら差分をとっていたら日本語(漢字?)のコメントが残っていると動いたのでやっと文字コードの問題と気づく。

ExtendScriptは結構古いシステムなのでBOM付きのUTF-8が使われているみたいですね。 変換したらあっさり動きました。

あんまり調べてないのでなんで日本語のコメントがあると普通に動くのかよく分かりませんが…

参考

サイドバーに現在位置を表示して追尾する目次を設置する【Ver3】

いわゆるシングルページナビゲーションみたいなやつ。(2019/11/10 ver3.3.0)

できること

  • サイドバーに目次を設置
  • スクロールすると追尾する
  • 現在位置の背景色変更
  • リンク先へのスムーズスクロール
  • ウィンドウサイズ変更に合わせてサイズ変更
  • 記事ページ以外でもページ内の記事一覧などを表示
続きを読む

gulpの出力内容をクリップボードにコピーする

使い所が限定されすぎていて使い道がわからないコード。Windows用。

ストリーム内でクリップボードにコピーしたかったけど文字化けしたりで上手くいかず、ファイルに書き出してからクリップコマンド使うというゴリ押し(ひどい)。

あと元のファイルがUTF-8だったのでShift_JISに変換してます。文字コードヨクワカラナイ。

var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
var exec = require('child_process').exec;

var TEMP_PATH = process.env.TEMP;
var EXPORT_NAME = 'test.js';

// ファイルに書き出しクリップボードへコピー
gulp.task('clip', function() {
  gulp.src('src/*.js')
    .pipe($.concat(EXPORT_NAME))
    .pipe($.convertEncoding({to: 'shift_jis'}))
    .pipe(gulp.dest(TEMP_PATH))
    .on('end', function() {
      exec('clip < ' + TEMP_PATH + '/' + EXPORT_NAME);
    });
});

サイドバーに現在位置を表示して追尾する目次を設置する【目次記法対応版】

※追記(2018/01/15)
新しいバージョンを作ったので今後はこちらを参考にしてください。

続きを読む