2

私は、FrontPage 2003 (笑わないでください!) が "サイト パラメータ" と呼んでいるものをたくさん (20 ほど) 使用しています。これは本質的に変数です。商品数や電話受付時間などに使っています。

これらのパラメーターの変更または追加をサポートしていない Expression Web にアップグレードしています。また、パンくずリストの変数を作成したいと思います。(したがって、製品ページにはブレッドクラムがある場合があります: 製品 > この製品 > スクリーンショット。したがって、製品の名前を変更することにした場合は、簡単に変更できるようにしたいと考えています。

やりたくないこと:

  • ページが提供されるときに値を置き換えます。これにより、処理が少し遅くなり、すべてのページが強制的に .aspx などになります。プレーンな html を使用したいと考えています。
  • Javascript を使用して値を置き換えます (同じ理由で、ブラウザのごく一部では .js が有効になっていません)。

私が考えていた:

we have <variable.products_count>20</variable.products_count> 

しかし..... 次の例のように、そこに別のタグとテキストを簡単に取得できます。

<variable.products_count> we have <strong>20</strong>  </variable.products_count>

交換するときは、タグと「we have」も交換しています。

4

2 に答える 2

3

やりたくないこと: ページが提供されたときに値を置き換えます。これにより、処理が少し遅くなり、すべてのページが強制的に .aspx などになります。プレーンな html を使用したいと考えています。

技術的にはあなたは正しいです。実行されたページと静的なページを使用すると、パフォーマンスが低下する可能性があります。しかし、いくつかの動的な値を挿入するオーバーヘッドは非常に些細なものであるため、意思決定プロセスに考慮する必要さえありません。

それは最も簡単です:

HTML

<body>
    <div>Good old HTML</div>
    <div>A dynamic value: <%= SiteParameters.Foo %></div>
</body>

c# (または VB.Net、またはお好みのもの)

public static class SiteParameters 
{
    // This value could be pulled from a config file, a database, etc.
    public static readonly string Foo = "Hello World";
}
于 2012-07-17T03:28:06.207 に答える
0

問題がある場合の例は、問題を修正するために簡単に書き直すことができます。

<variable.products_count> we have <strong>20</strong>  </variable.products_count>

に:

we have <strong><variable.products_count></variable.products_count></strong>

もちろん、より簡単な方法は、HTML 構文から少し離れて、ドキュメントに出てくる可能性が低い変数名を選ぶことだと思います。

we have <strong>@@PRODUCTS_COUNT@@</strong> ...

これらがいくつかある場合は、次のような単純なテキスト置換ツールの 1 回のパスですべてを置き換えることができますsed(1)

sed -e 's/@@PRODUCTS_COUNT@@/20/g'
    -e 's/@@PRODUCTS@@/Products/g'
    -e 's/@@SCREENSHOTS@@/Screen Shots/g' < inputfile > output.html

多くのファイルを自動化するには、おそらく小さなスクリプトを書きたいと思うでしょう:

s/@@PRODUCTS_COUNT@@/20/g;
s/@@PRODUCTS@@/Products/g;
s/@@SCREENSHOTS@@/Screen Shots/g;

すべてのファイルで実行します。

for f in pre/*.html ; do sed -f /path/to/script < "$f" > "${f/pre/post}" ; done

( は${f/pre/post}に置き換えpreられpostます。後処理されたファイルはpost/ディレクトリにあります。)

于 2012-07-18T23:23:44.047 に答える