2012-04-16 14 views
1

私はClojureScriptを使用してChromeでUserScriptを作成しようとしています。私が抱えている問題は、<name>.user.jsファイルの上部に、UserScriptに関する属性を宣言するコメントブロックが必要なことです。ClojureScriptを使用してChrome用のユーザースクリプトを作成するには、UserScriptコメントブロックをコンパイル済みの出力にする方法を教えてください。

それはこのようなものになります。どのように私は、コンパイル済みのJSファイルにこのブロックを含めることができ

// ==UserScript== 
// @name CLJS Hello World 
// @namespace http://something.com/my_cljs_user_script 
// @author spoon16 
// @include * 
// ==/UserScript== 

を?

答えて

0

ベストプラクティスは、javascriptファイルとして残るUserScriptテンプレートとコンパイルされた実際のClojureScriptという2つの別々のファイルを使用するのが最善の方法だと思います。目的のClojureScriptを実行する関数をインクルードするだけです。

0

は、(現在進行中の議論here

  1. (あなたがcljsbuildを使用している場合)あなたのcljsbuildビルド仕様に外国-libsのマーカーを追加し、ここで私は追加情報:

    :foreign-libs [{:file "comment-block.js" :provides ["comment.block"]}] 
    
  2. 追加その外国の "lib"。ここに私のものが含まれています:

    /** 
    * @fileoverview 
    * This file contains nothing but a comment block which is to be preserved 
    * by the google closure compiler. This comment block contains a comment 
    * block which is necessary to be in the output of the compiled javascript 
    * even in advanced compilation mode. 
    */ 
    /** 
    * @preserve 
    // ==UserScript== 
    // @description Description of the user script 
    // @include INCLUDESPEC HERE 
    // @include ETC ETC 
    // @name user script name 
    // ==/UserScript== 
    */ 
    

    (必須)あなたの外国人のlib。

    (require [comment.block :as ignored]) 
    
  3. (先進の)コンパイルを実行します。コンパイルされた出力のどこかに、UserScriptブロックが現れます(ユーザースクリプトブロックは、スタイルのコメントで始まるカラム0にある必要があることに注意してください。これは@preserveの後に改行があるためです)。

  4. コール似コンパイル出力何かblablabla.user.js(接尾'user.js'が必要です)、グリースモンキーは、それを認識し、ユーザースクリプトブロックからデータをピックアップし、皆のためのユニコーンがありますでしょう(でも、ビーガンが!)

関連する問題