問題タブ [preprocessor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - DjangoのテンプレートローダーでSHPAMLを前処理しますか?
HTMLが古くなっていると判断した場合、DjangoのテンプレートローダーがSHPAMLを介して(つまり、直接または拡張/インクルードを介して)ロードするすべてのテンプレートを実行するようにする方法はありますか?
ディレクトリ全体で SHPAML を再帰的に呼び出す方法は知っていますが、SHPAML ソースを変更するたびに HTML を同期することを忘れないように、オンデマンドで実行できるようにしたいと考えています。
manage.py から SHPAML を呼び出すことも (少なくともテスト サーバーの場合は) うまくいくと思いますが、Django のテンプレート エンジンをハックして、プリプロセッサを介して読み込まれるすべてのファイルを実行できるようにした方がよいでしょう。
php - Drupal:管理者スタイル用の独自のセレクターを作成しますか?
管理者でいくつかのコンポーネントのスタイルを変えたいのですが。管理要素を個別にスタイル設定できるように、body要素で一意のID /クラスを生成するにはどうすればよいですか?
ruby - PHPishマークアップでマークアップを一致させるための正規表現?
プロジェクトを作成していますが、正規表現を使用できる必要があります(または他の何かが望ましい場合は?)
基本的に、「非コード」が「コード」に変換されるように、PHPのマークアップコードページを変換する必要があります。例えば:
オリジナル:
変換された:
見積もりも考慮に入れながら、これはどのように機能しますか?(お気に入り<?code $var='<?code stuff ?>';?>
また、誰かがインクルードされたファイルを検出するための何かを私に提供した場合(最初にファイルを「事前所有」してからそれをインクルードするものに置き換えるため)(インクルードはPHPに似ています)
これは正規表現でも可能ですか?正規表現を使用してHTMLを解析しようとは思わないことは知っていますが、これはHTMLを解析しようとしているのではなく、マークアップとすべてがどのようになっているのか非常に馬鹿げています。
また、このプロジェクトは実際にはRuby(つまりプリプロセッサ)で実装されるので、Rubyがこれを支援するものがある場合は、それを実行してください。
コードがPHPに非常に似ていることは知っていますが、それはPHPに実装されておらず、使用される「コード」は実際にはPHPではなく<?
、マークアップにコードを含めるための型メカニズムを使用するためです。
編集:マークアップ内の言語は、すべての実用的な目的でRubyである可能性があることにも注意してください。したがって、終了コードタグを持つ引用符とコメントを含めることができます。
windows - WindowsのCMDに機能を追加するプリプロセッサ?
SQL Server DBAとしての仕事では、かなりのスクリプトを実行する必要があります。時々、非常に制限された環境に修正スクリプトを展開する必要があります。この環境では、スクリプトの唯一のオプションはDOSバッチである可能性があります。そのような環境の1つでは、PowerShellは言うまでもなく、VBScript/WSHでさえ可能ではありません。DOSとWindowsで十分なバッチファイルを作成したことのある人なら誰でも、それが非常に制限されており、複雑すぎることを行う必要がある場合は巨大なPIAであることを知っています。これは、Unixシェルスクリプト、Perl、Tcl、Python、Rubyなどを使用したことがある人に特に当てはまります。
これに対する可能な解決策は、より有能なスクリプト言語からの便利な機能のいくつかを追加するCMDプリプロセッサです。私はそのようなユーティリティを見つけようとしましたが、今のところ運がありません。
これが最終的に私の質問につながります:そのようなCMDプリプロセッサを知っている人はいますか?そうでない場合は、どの機能を1つにまとめたいですか?
補遺:
プリプロセッサのアイデアに慣れていない場合は、このウィキペディアのエントリを参照してください。
明確にするために、私は次のような機能を追加するツールを考えています。
...そしておそらく他の人。これらは私がCMDに望んでいた2つの機能であり、CMDプリプロセッサを使用してそれらを実装する方法を考えることができます。関数は、envvarsとGOTO/labelsを使用して実装できます。一時ファイルにパイプし、set / p =<を使用して結果をenvvarに読み込むことにより、バックティックを実行します。
あなたはすでにこれらの同じ目的を達成することができますが、それは非常に退屈で冗長になります-それが私がプリプロセッサにそれらのような機能の定型文を処理させるという考えに至った方法です。
例
バックティックの例を使用して、CMD.exeで実行する準備ができている、架空のBatch++および処理済みのバニラバッチスクリプトからの未処理のコードの例を次に示します。
Batch ++ソース(test.batpp)
プリプロセッサを介して実行します
結果のCMD/BATコード(post_test.bat)
php - ユーザープロファイル変数へのアクセス
プロファイルモジュールを使用して、ユーザーが登録時に入力するprofile_real_nameというテキストフィールドを作成しました。node.tpl.phpでこの変数にアクセスするにはどうすればよいですか?
この関数を使用してユーザー変数を出力しましたが、 profile_real_namedsm($user)
のデータを除くすべてが含まれていました
また、を実行dsm($vars)
したところ、phptemplate_preprocess_user_profile
必要な情報が含まれているaccountというオブジェクトが含まれていることがわかりましたが、このオブジェクトは$user変数では使用できません。
どうもありがとう
php - drupal: 記事に検索フィールドを追加する
記事に検索フィールド (Web サイト内のすべてのコンテンツとタグを検索する) を追加するにはどうすればよいですか?
すでにモジュールをインストールしてアクティブ化しましたが、ウェブサイトのブロックではなく、単一の記事に追加したいと考えています。
ありがとう
java - Java で非常に反復的なコードとドキュメントを管理する
コードの繰り返しが多いことは一般的に悪いことであり、これを最小限に抑えるのに役立つ設計パターンがあります。ただし、言語自体の制約により、避けられない場合もあります。から次の例を取り上げますjava.util.Arrays
。
上記のスニペットは、ソース コードに 8 回表示されます。ドキュメンテーション/メソッド シグネチャのバリエーションはほとんどありませんが、メソッド本体はまったく同じでint[]
、short[]
ルート配列型、、、、、、、、およびchar[]
byte[]
boolean[]
double[]
float[]
Object[]
反省(それ自体はまったく別の主題です)に頼らない限り、この繰り返しは避けられないと私は信じています。ユーティリティ クラスとして、このように反復的な Java コードが非常に集中することは非常に非典型的であることは理解していますが、ベスト プラクティスを使用しても反復は発生します。リファクタリングは、常に可能であるとは限らないため、常に機能するとは限りません (明らかなケースは、繰り返しがドキュメントにある場合です)。
明らかに、このソース コードを維持することは悪夢です。ドキュメンテーションのわずかなタイプミス、または実装のマイナーなバグは、何回繰り返しても乗算されます。実際、最良の例はたまたまこの正確なクラスを含んでいます:
Google Research ブログ - おまけ、おまけ - すべてを読む: ほぼすべてのバイナリ検索とマージソートが壊れている (Joshua Bloch、ソフトウェア エンジニア)
このバグは驚くほど微妙なもので、単純で単純なアルゴリズムと多くの人が考えていたもので発生しています。
上記の行は、ソース コードで 11 回表示されます。
だから私の質問は:
- この種の反復的な Java コード/ドキュメントは、実際にはどのように処理されますか? それらはどのように開発、維持、およびテストされますか?
- 「オリジナル」から始めて、できるだけ成熟させてから、必要に応じてコピーして貼り付け、間違いがなかったことを願っていますか?
- 元のファイルで間違いを犯した場合は、コピーを削除して複製プロセス全体を繰り返すことに慣れていない限り、どこでも修正できますか?
- そして、これと同じプロセスをテスト コードにも適用しますか?
- Java は、この種の目的のために、使用が制限されたソース コードの前処理を行うことで利益を得るでしょうか?
- おそらく Sun は、この種の反復的なライブラリ コードの作成、保守、文書化、およびテストを支援する独自のプリプロセッサを持っているのでしょうか?
コメントで別の例が要求されたので、Google Collections からこれを取得しました: com.google.common.base.Predicates行 276-310 ( AndPredicate
) vs 行 312-346 ( OrPredicate
)。
これら 2 つのクラスのソースは、次の点を除いて同一です。
AndPredicate
vsOrPredicate
(それぞれがそのクラスに 5 回出現)"And("
vsOr("
(それぞれのtoString()
方法で)#and
vs#or
(@see
Javadoc コメント内)true
vsfalse
(inapply
;!
は式の外に書き直すことができます)-1 /* all bits on */
対0 /* all bits off */
中hashCode()
&=
対|=
中hashCode()
java - ant でソースコードを変更することは可能ですか?
私のプログラムで条件付きコンパイルをしたいと思います。public static final boolean を宣言すると、コンパイラはトラバースされていないブランチを無視することを私は知っています。プログラムをビルドする前に、ant ターゲットに変数を変更させることは可能ですか?
たとえば、私が持っている場合:
final public static boolean windows = false;
Windows と Mac の 2 つのアリ ターゲットが必要です。
ant windows
変数をそのままにして、ブール値をtrueに変更する
コマンドが欲しい
ant mac
です。
ありがとう。
fortran - gfortran での !DEC$ ディレクティブの前処理
私は、もともと Intel のコンパイラを対象とした大規模な Fortran コードベースを持っています。現在、gfortran でコンパイルする準備をしています。残念ながら、コードには次のような Intel スタイルの前処理ディレクティブが散らばっています。
グーグルとgfortranのドキュメントからわかることから、次のようなCスタイルの前処理以外には、gfortranの内部サポートはありません。
他の誰かがこの問題に遭遇し、エレガントな解決策を思いつきましたか? もちろん、コンパイルのためにコードを gfortran に渡す前に、外部のプリプロセッサを呼び出すシェル スクリプトを作成することもできますが、これは私にとって素晴らしい解決策とは思えません。
何かご意見は?ありがとうSO教祖!
javascript - drupal が他のモジュールの JavaScript をロードしないようにする
サイトの他のすべてのページとは非常に異なる方法で使用している drupal ページがあります。
このページに一連の特殊な js をロードするモジュールがあります。私の JS は、他のモジュールまたはおそらく drupal コアの js とうまく連携しないことがわかりました。
その特定のページで他のモジュールが drupal_add_js を実行しないようにするにはどうすればよいですか。
ありがとう!