ガイドには3つの主要なコンポーネントがあります。 www.midwinter.comのローカルURLでそれらを参照します。
サイトの大部分である最初のセクションは、スローされたサーバーのHTMLファイル(サーバー側の場合)と1つの短いPHPスクリプトを備えた静的HTMLファイルのディレクトリツリーです。
そのディレクトリの内部には、多くのサブディレクトリがあり、ほとんどがサイトの主要なセクションに対応しています。すぐに個別に到達しますが、最初にファイルの一部がどのように生成されるかについての単語です。
知っておくべき最大のことは、「Gen.py」と呼ばれるPythonスクリプトです。このバージョンは、エピソードごとのHTMLファイルを含む各ディレクトリに住んでいます。スクリプトは、ヘッダーセクション(各エピソードで生成された、とりわけエピソードのタイトルが含まれている)、ボディファイル、フッターセクションから静的HTMLファイルを組み立てる責任があります。
ボディファイルには、ページの肉が含まれています。 HTMLファイルと同じファイル名があり、.html拡張子を差し引いています。ほとんどの場合、それは3桁のエピソード番号にすぎません。たとえば、/lurk/guide/056.htmlには、ガイドサブディレクトリのボディファイル「056」が含まれています。たとえば、エピソード33のページに新しいコメントを追加したい場合は、ガイドディレクトリにCDを作成し、ファイル「033」を編集し、「Gen.py 033」を実行します。その結果、033.htmlの新しいバージョンがあり、古いバージョンは予防策として#033.htmlに移動しました。
Gen.pyバージョンのいくつかは、アイテムにタイムスタンプを追加することです。アイデアは、ページを変更したときに、以前のバージョンをすでに読んだ人が新しいものにすばやくスクロールできるように、変更を強調したいということです。そのため、Gen.pyは、ボディファイルに特別なトークン「@@@」(WhitespaceまたはEnd-of-lineが続く必要がある)を探します。トークンが見つかると、nnnはunix time_t形式の現在のタイムスタンプである「@@@nnn」に置き換えられます。この変更は、ボディファイル自体に行われます。次に、Gen.pyがボディファイルからHTMLファイルを生成すると、最近のタイムスタンプが表示されている場所で日付をBOLDに挿入します。 1日に1回、スクリプトがすべてのHTMLファイルを再生し、日付マーカーがしばらくすると消えてしまうようになります(ページをugいに見えるようにし、新しいアイテムをすばやく見つけるのが難しくなります)。
ファイル「スケル」が表示されると、プロトタイプボディファイルです。新しいエピソード/小説/などを適切なファイル名にコピーします。出てきます。
多くのサブディレクトリには、「Genall.CSH」スクリプトが表示されます。これは、各エピソードで「gen.py」を実行する近道です。ページヘッダー/フッターの構造に変更を加えて、どこにでも適用したい場合にのみこれを使用します。
また、トップレベルのディレクトリには「GEN」スクリプトがあります。これにより、各サブディレクトリでGen.pyが実行されます。たとえば、エピソードに写真を追加し、そのエピソードのすべてのページに表示されたい場合に使用します。
シーズン1-4の各エピソードの「これまでのストーリー」。シーズン5はまだ書く必要があります。ここのユーザーアクセス可能なファイルはすべて.shtmlファイルです。ここにはボディファイルがないことに気付くでしょう。代わりに、background/gen.pyは他のいくつかのソースファイルを使用します。いくつかの異なる導入概要があり、それらはsum-*ファイルにあります。たとえば、Sum-66はエピソード66までのストーリーを要約し、エピソード67以降の背景の最初の部分として含まれています。適切なsum-*ファイルが含まれている後、Gen.pyはStory.htmlを探します。そのファイルには、紹介の下で、背景ページの「最近...」セクションに含まれるエピソードごとの段落が含まれています。概要と現在のエピソードの間のエピソードの段落のみが含まれています。たとえば、エピソード75の場合、Gen.pyにはEspid 67-74の段落と段落が含まれます。
一部のキャラクターのバイオス。これらは、「宇宙」セクションからリンクされています。単純なフラットHTMLファイル。
コミックシリーズのガイドページ。ボディファイルとgen.py。
ここにある唯一のHTMLファイルはindex.htmlです。これは、私がスケジュール情報を持っているすべての国のリストです。各国にはここにサブディレクトリがあります(通常、ディレクトリ名は国の2文字の国コードです)。 1つの疑似カントリーは「マスター」です。これには、エピソードが正しい順序でマスターエピソードリストが含まれています(元の米国放送命令は、ストーリーごとにわずかに間違っていました)。
各国のディレクトリ内には、その国のスケジュールを備えたeplist.htmlファイルに加えて、さまざまなエピソードガイドのサブディレクトリへの象徴的なリンクがあります。私のURLで相対パスを使用することにより、私はブラウザに、クッキーに頼らずにユーザーがどの国のスケジュールを探していたかを思い出してもらいました(このサイトが最初に始まったとき、まだ概念として存在していません!)、/lurk/国// se/eplist.htmlには、「guide/056.html」へのリンクがあります。これは、/lurk/国/se/se/guideが/lurk/guideのシンリンクであるため、/lurk/guide/056.htmlと本当に同じファイルです。しかし、ブラウザはそれを知らないため、056.htmlのエピソードページへのリンクは「../eplist.html」です。これはスウェーデンのスケジュールに戻ります。
index.htmlは、カントリーディレクトリのeplist.htmlへのリンクです。新しい国のディレクトリを設定するための「mkcountry.sh」スクリプトがあります。 5シーズンすべて(Skel、Skel2、Skel3など)のスケルトンエピソードリストもあります。
国のスケジュールを編集するとき、後で説明する「print-weeks.py」スクリプトを使用するため、手持ちの日付を使用する必要はありません。
エピソードクレジット。
ユーザーのドメイン名を簡単に検索して、表示する国のエピソードリストを把握する短いPHPスクリプト。ショーがほとんど放送されていないので、おそらくそれほど関連性が低いかもしれませんが、異なる国で同時に異なる季節が表示されていたとき、これはユーザーにとって便利でした。
米国のエピソードリストへのSymlink。そうすれば、非国ベースのガイドディレクトリの「../eplist.html」へのリンクがどこかに役立つようになります。 (上記の「国」ディレクトリの説明を参照してください。)
サイト全体で使用される標準ページフッター。プログラムでは使用していませんが、新しいページを作成するときにこれをテキストエディターにロードします。
エピソード関連の各サブディレクトリのエピソードでGen.pyを実行するスクリプト。
かなり自明です。非ナビゲーション関連の画像はすべてここに住んでいます。 (それらのいくつかは、ディレクトリ名にもかかわらずJPEGです。)
エピソードガイドページ。
サイトFAQ。 Usenet B5 FAQとの混乱を避けるために、代わりに「ヘルプ」という名前で言及されています。
Lurker.htmlへのSymlink。
Gen.pyおよびCGISが使用するデータファイル:
修正時間によって注文されたエピソードガイドと概要ページのリスト。 「lastupdate.py」ユーティリティによって生成されます。
黒人の背景のないホームページ。カスタムの背景は迷惑だと感じる人もいるからです。これは、トップレベルのディレクトリで「Make」を実行するCronジョブを介してLurker.htmlから自動的に生成されます。
ホームページ。
1時間に1回、このMakeFileはLurker-nobg.htmlを再構築するために使用され、1日に1回、Gen.pyを何かで実行するのを忘れていないことを確認するために使用されます。また、FTPアーカイブのb5tvlist.txtファイルを更新します。
サイトの「B5の作成」セクション。フラットHTMLファイル。
NavbarのImageMaps。
他の場所に収まらないその他の文書、例えば、クラウディア・クリスチャンがショーを去った理由についての宣伝文書。
ナビゲーション画像。二次関数は、そのindex.htmlが「ここでの画像キャッシュをプリロードする」ページであることです。これは、1発のショットでNAV画像のダウンロードのすべての痛みに苦しむことで、人々のためにサイトをスピードアップします。
新しいガイドページ。このセクションは不完全です - 最新の小説のためのページはまだありません。
各エピソードのPoll 5 Viewer調査の結果。
元のロスレス圧縮フォームのボタンとNAV画像。
サイトの「参照」セクション。主にフラットなHTMLファイルですが、いくつかのページには、FTP領域からテキストファイルをもたらすサーバー側が含まれています。
もはや言及されていませんが、おそらく歴史的な娯楽のものです。
サイトの「その他のリソース」セクション。フラットHTMLファイル。
いくつかのランダムサポートコードが含まれています。これについては後で詳しく説明します。
エピソードの概要。
サイトマップ。
サイトの「ユニバースとキャラクター」セクション。フラットHTMLファイル。シーズン5はまだ書く必要があります。
素朴な演習;私はこれをすべて自分でやりました!
質の高いテレビの視聴者によって、B5が1位にランクされていることについてのJMSメッセージ。
現在のルックアンドフィールに切り替えた後のサイトの紹介。
What's New Page。これが大きくなると、古いアイテムをすべてアーカイブに入れて、新しいページを掲載し、このページの下部にリンクします。
Midwinter.comは、テキストファイルと画像を使用したFTPアーカイブをホストするために使用されます。これらはすべて、Lurker's Guideからアクセス可能で、「FTP」サブディレクトリに保存されています。
FTPアーカイブ内のさまざまなファイルの説明については、FTPインデックスファイル(テキストとHTMLの両方で利用可能)を参照してください。 Lurker's Guideは、ここでさまざまなファイルを指しています。サーバー側には参照が含まれます。
特に明記しない限り、 /lurk /srcにソースを見つけるユーティリティがいくつかあります。上記で説明したものもありますが、ここにリストがあります。
これは、クロンの仕事から1日1回実行されます。すべてのガイドページを再生します。再生されたページが古いバージョンと違いがない場合、古いバージョンはその変更日を維持するために位置に戻されます。ここでの目的は、ガイドページの新しいアイテムのタイムスタンプを期限切れにすることです(上記のGen.pyスクリプトの説明を参照)。
Cronから1時間に1回走ります。これにより、/lurk/lastmod.htmlが更新され、かなり自明です。