Il y a trois composants principaux dans le guide. Je vais me référer à eux par leurs URL locales sur www.midwinter.com.
La première section, qui est la majeure partie du site, est une arborescence de répertoire de fichiers HTML statiques avec quelques fichiers HTML payés par serveur (pour le côté serveur inclus), plus un court script PHP.
À l'intérieur de ce répertoire se trouvent un tas de sous-répertoires, correspondant principalement aux principales sections du site. Je les arriverai individuellement dans un instant, mais d'abord un mot sur la façon dont certains fichiers sont générés.
La plus grande chose à savoir est un script Python appelé "gen.py", dont une version vit dans chacun des répertoires qui contient des fichiers HTML par épisode. Le script est responsable de l'assemblage d'un fichier HTML statique dans une section d'en-tête (généré pour chaque épisode; il inclut le titre de l'épisode entre autres), un fichier corporel et une section de pied de page.
Les fichiers corporels contiennent la viande des pages. Ils ont les mêmes noms de fichiers que les fichiers HTML, moins l'extension .html. Dans la plupart des cas, ce n'est que le numéro d'épisode à 3 chiffres, par exemple /lurk/guide/056.html contient le fichier corporel "056" du sous-répertoire du guide. Lorsque je veux ajouter un nouveau commentaire à la page pour l'épisode 33, par exemple, I CD dans le répertoire de guide, modifiez le fichier "033", puis exécutez "gen.py 033". Le résultat est une nouvelle version de 033.html, l'ancienne version éloignée de # 033.html par précaution.
Une autre chose que certaines des versions Gen.py font est d'ajouter des horodatages aux éléments. L'idée est que lorsque je modifie une page, je veux mettre en évidence le changement afin que les gens qui ont déjà lu la version précédente puissent rapidement faire défiler vers les nouvelles choses. À cette fin, Gen.py recherche un jeton spécial "@@@" (qui doit par suivi par Whitespace ou Fin de ligne) dans le fichier corporel. Lorsqu'il trouve le jeton, il le remplace par "@@@ nnn" où NNN est l'horodatage actuel au format Unix Time_t. Ce changement est apporté au fichier corporel lui-même. Ensuite, lorsque Gen.py génère le fichier HTML à partir d'un fichier corporel, il insère la date en gras partout où il voit un horodat récent. Une fois par jour, un script régénère tous les fichiers HTML afin que les marqueurs de date disparaissent après un certain temps (les garder rend les pages laides et rend difficile de localiser rapidement de nouveaux éléments).
Lorsque vous voyez un fichier "Skel", il s'agit d'un fichier corporel prototype. Je copie cela sur le nom de fichier approprié lorsqu'un nouvel épisode / roman / etc. sort.
Dans de nombreux sous-répertoires, vous verrez un script "genall.csh". Ce n'est qu'un raccourci qui exécute "gen.py" pour chaque épisode. Je n'utilise ceci que lorsque je modifie la structure des en-têtes / pieds de page de page et que je veux l'appliquer partout.
De plus, dans le répertoire de niveau supérieur, il y a un script "gen". Cela fonctionne Gen.py dans chacun des sous-répertoires. J'utilise cela lorsque, par exemple, j'ajoute une image pour un épisode et je veux qu'il soit affiché sur toutes les pages de cet épisode.
"L'histoire jusqu'à présent" pour chaque épisode de Seasons 1-4. La saison 5 doit encore être écrite. Les fichiers accessibles à l'utilisateur ici sont tous les fichiers .shtml. Vous remarquerez qu'il n'y a pas de fichiers corporels ici. Au lieu de cela, Background / Gen.py utilise quelques autres fichiers source. Il existe plusieurs résumés d'introduction différents, qui sont dans les fichiers SUM- *. Par exemple, SUM-66 résume l'histoire jusqu'à l'épisode 66 et est incluse comme la première partie des antécédents pour les épisodes 67 et plus tard. Une fois le fichier SUM- * approprié, Gen.py regarde dans Story.html. Ce fichier contient des paragraphes par épisodes qui sont inclus dans la section "plus récemment ..." des pages d'arrière-plan, dans le cadre des introductions. Seuls les paragraphes des épisodes entre le résumé et l'épisode actuel sont inclus, par exemple pour l'épisode 75, Gen.py comprend SUM-66 et les paragraphes des épisodes 67-74.
BIOS de certains personnages. Ceux-ci sont liés à la section "Univers". Fichiers HTML plats simples.
Guide Pages pour la série de bandes dessinées. Fichiers corporels et gen.py.
Le seul fichier HTML directement sous ici est index.html, qui est une liste de tous les pays pour lesquels j'ai des informations de calendrier. Chaque pays a un sous-répertoire ici (le nom du répertoire est généralement le code de pays de 2 lettres du pays). Un pseudo-pays à noter est "Master", qui contient la liste des épisodes de maître avec les épisodes dans le bon ordre (l'ordre d'aération des États-Unis original était légèrement mauvais).
À l'intérieur du répertoire de chaque pays se trouve un fichier eplist.html avec le calendrier de ce pays, ainsi que des liens symboliques vers les divers sous-répertoires d'épisode-guide. En utilisant des chemins relatifs dans mes URL, je laisse le navigateur se souvenir de l'horaire du pays que l'utilisateur envisageait sans recourir à des cookies (qui n'existait pas encore comme concept lorsque ce site a commencé!) Par exemple, / se cacher / pays / SE / EPLIST.html a un lien vers "Guide / 056.html", qui est vraiment le même fichier que /lurk/guide/056.html puisque / Lurk / Country / SE / Guide est un Symlink to / Lurk / Guide. Mais comme le navigateur ne le sait pas, le lien de 056.html à la page de l'épisode est "../eplist.html" qui revient au calendrier suédois.
index.html est un lien vers eplist.html dans les répertoires de pays. Il y a un script "mkcountry.sh" pour créer un nouveau répertoire de pays. Il existe également des listes d'épisodes squelettes pour les 5 saisons (Skel, Skel2, Skel3, etc.)
Lorsque je modifie l'horaire d'un pays, j'utilise le script "Print-weeks.py", qui est décrit plus loin, donc je n'ai pas à dates de type manuel.
Crédits d'épisode.
Un court script PHP qui fait une recherche simple du nom de domaine de l'utilisateur pour déterminer la liste des épisodes du pays à afficher. Peut-être moins pertinent maintenant que le spectacle est à peu près hors de l'air, mais lorsque différentes saisons se sont présentées dans différents pays simultanément, cela était pratique pour les utilisateurs.
Un lien symbolique à la liste des épisodes américains, de sorte que tous les liens vers "../eplist.html" dans les répertoires de guides non basés sur le pays ira quelque part utile. (Voir la discussion du répertoire "Pays" ci-dessus.)
Le pied de page de page standard utilisé sur tout le site. Non utilisé par programme, mais je charge ceci dans mon éditeur de texte lorsque je crée une nouvelle page.
Script qui exécute Gen.py pour un épisode dans chacun des sous-répertoires liés à l'épisode.
Assez explicite. Toutes les images non liées à la navette vivent ici. (Certains d'entre eux sont jpegs malgré le nom du répertoire.)
Le guide de l'épisode pages.
La FAQ du site. Il est plutôt mentionné par le nom "Aide" pour éviter la confusion avec la FAQ Usenet B5.
Symlink to Lurker.html.
Fichiers de données utilisés par gen.py et CGIS:
Liste des pages de guide d'épisode et de synopsis, commandées par le temps de modification. Généré par l'utilitaire "Lassupdate.py".
Page d'accueil sans fond noir, car certaines personnes trouvent des arrière-plans personnalisés ennuyeux. Ceci est automatiquement généré à partir de Lurker.html via un travail cron qui exécute "Make" dans le répertoire de niveau supérieur.
La page d'accueil.
Une fois par heure, ce makefile est utilisé pour reconstruire Lurker-Nobg.html, et une fois par jour, il est utilisé pour m'assurer que je n'ai pas oublié d'exécuter Gen.py sur quelque chose. Il met également à jour le fichier b5tvlist.txt dans l'archive FTP.
La section "Making of B5" du site. Fichiers HTML plats.
ImageMaps pour Navbar.
Des documents divers qui ne correspondent pas ailleurs, par exemple un texte de présentation sur les raisons pour lesquelles Claudia Christian a quitté le spectacle.
Images de navigation. Une fonction secondaire est que son index.html est la page "Préchargez votre cache d'image ici", qui accélère le site pour les gens en les laissant souffrir toute la douleur du téléchargement de l'image NAV dans une seule photo.
Nouvelles pages de guidage. Cette section est incomplète - il n'y a pas encore de pages pour la dernière série de romans.
Résultats du sondage du Poll 5 pour chaque épisode.
Images de bouton et de navigation dans leurs formulaires d'origine compressés sans perte.
La section "référence" du site. Les fichiers HTML principalement plats, mais quelques pages ont le côté du serveur comprennent qui apporte des fichiers texte de la zone FTP.
Plus référencé, mais peut-être d'amusement historique.
La section "autres ressources" du site. Fichiers HTML plats.
Contient un code de support aléatoire. Plus à ce sujet plus tard.
Synopshes d'épisode.
PAPE DE SITE.
La section "univers et caractères" du site. Fichiers HTML plats. La saison 5 doit encore être écrite.
Un exercice en naïveté; J'ai fini par faire tout cela moi-même!
Le message JMS sur B5 est classé n ° 1 par les téléspectateurs pour la télévision de qualité.
Introduction au site après le passage à l'apparence actuelle.
La page Quoi de neuf. Lorsque cela devient grand, je mets tous les anciens articles dans les archives de ce que les nouvelles pages et je me suis liée à eux au bas de cette page.
Midwinter.com a utilisé une archive FTP avec des fichiers texte et des images; Ceux-ci sont désormais tous accessibles via le guide Lurker et sont stockés dans le sous-répertoire "FTP".
Voir le fichier d'index FTP (disponible en texte et HTML) pour les descriptions des différents fichiers de l'archive FTP. Le guide de Lurker pointe vers divers fichiers ici - y compris certains serveurs incluent des références.
Il y a quelques utilitaires dont vous trouverez la source dans / Lurk / SRC, sauf indication contraire. Certains ont été discutés ci-dessus, mais voici une liste:
Ceci est géré une fois par jour à partir d'un travail cron. Il régénère toutes les pages de guidage. Si une page régénérée ne diffère pas de l'ancienne version, l'ancienne version est mise en place pour préserver sa date de modification. Le but ici est d'expirer les horodatages sur les nouveaux éléments dans les pages de guidage (voir la discussion du script gen.py ci-dessus).
Courir une fois par heure de Cron; Cela met à jour /lurk/lastmod.html et est assez explicite.