私は、Web サイト用にカスタム構築されたコンテンツ管理システムのクリーンアップと実装に取り組んでいます。Web サイトのすべてのページは単純で、本質的に静的な HTML ページであり、次のような単純なテンプレートとして作成されます。
<html>
<head><!-- resources, scripts, etc. --></head>
<body>
<div id="page">
<div id="header"><!--- static --></div>
<div id="content">
<!-- The main content - different on every page -->
</div>
<div>
<!-- Side bar -- footer-- and other static persistent content -->
</div>
</div>
</body>
</html>
私がやりたいのは、#content
要素をバッチ検索して変数またはコメントに置き換えるか、まったく置き換えないことです。既にコンテンツを抽出し、対応する HTML ファイルと同じディレクトリ内のファイルに保存しています。
目的を達成するための 2 つの基本的な経路を確認できます。
#content
すべてのファイルを必要なものに置き換えます。ページから html を抽出し、データを事前または事後処理して
#content
要素を削除し、変更された html を新しいファイルに書き込みます。
注:これを 1 つずつ行うにはファイルが多すぎます。
これを行うために、jQuery プラグイン、さまざまな nodejs ソリューション、grepWin、およびXidelなど、さまざまな方法を試しました。Xidel が最も役に立ちましたが、それを使用してすべての HTML から#content
.
理想的には、次のようなシンプルさを実現したいと考えています$.replaceWith
。
$('#content').replaceWith('...');
もちろん、それがそれほど単純だったら、おそらく今までに偶然見つけていただろう.
誰かがこれのためのツールまたは解決策を知っていますか? - ファイル内の検索と置換機能を提供するコード エディター内にある場合でも。これは 1 回だけ実行する必要があるため、プログラム化する必要はありません。
編集:これは、望ましい前後のシナリオの例です。
前
<html>
<head>
I am content in the head - I should remain as I am
</head>
<body>
<div id="page"><!-- Wrapper for all pages -->
<div id="header">
I am a static header - I should remain as I am
</div>
<div id="content">
I am content - I am different on every page. I would like to be replaced please.
</div>
<div>
I am things like a sidebar, footer, copyright logo.
I may or may not be wrapped in a div, but I don't need to be changed
</div>
</div><!-- End of wrapper -->
</body>
</html>
後
<html>
<head>
I am content in the head - I should remain as I am (see I haven't changed)
</head>
<body>
<div id="page"><!-- Wrapper for all pages -->
<div id="header">
I am a static header - I should remain as I am (I haven't changed either)
</div>
<div id="content">
I AM VERY DIFFERENT. The only Thing inside of me is a variable. :)
</div>
<div>
I am things like a sidebar, footer, copyright logo.
I may or may not be wrapped in a div, but I don't need to be changed
(Nope. I haven't changed either)
</div>
</div><!-- End of wrapper -->
</body>
</html>