Macros utilisables dans GeneWeb
Language: | English • français |
---|
Les fichiers de GeneWeb ne sont pas du pur HTML et contiennent des variables historiquement nommées macros. Ce sont des séquences commençant par le caractère %
suivis par une lettre, par exemple %s
ou %x
. Elles sont remplacées automatiquement par des valeurs qui dépendent du contexte : nom de la base, langue, nombre de personnes dans la base, etc.
Les variables encadrées par des crochets ouvrants et fermants [
et ]
(et non %
) sont traduites par GeneWeb à partir d'un lexique. La page correspondante détaille ce fonctionnement.
Description des variables
Base
- %t : nom de la base.
- %f : en mode serveur, nom de la base, suivi de l'éventuel mot de passe (ex:
toto_xyzzy
); en mode CGI, nom de la commande CGI (ex:gwd.exe
). - %g : en mode serveur, comme "%f"; en mode CGI, nom de la commande CGI suivi de "?b=", du nom de la base et d'un point-virgule (ex:
gwd.exe?b=toto;
). - %s : valeur de "%f" suivi d'un point d'interrogation et des variables contextuelles (voir ci-dessous) suivies d'un point-virgule. Ex:
toto?lang=it;iz=8233;
.
Compte
- %c : nombre d'accès à la page d'accueil.
- %q : nombre de requêtes.
- %d : date de la première consultation.
Conditionnels
Les conditionnels commencent par "%I" suivi d'une expression booléenne (vrai ou faux) et se terminent par %E. Le texte entre ces deux macros est affiché si et seulement si l'expression booléenne est vraie. Une expression booléenne est soit:
- f : on est "ami"
- w : on est "magicien"
- j : on est "magicien" juste "ami" (cf fichier a.gwf, "wizard_just_friend")
- c : on est en mode cgi
- h : il y a un fichier historique
- l : le navigateur ne traite pas les tables
- n : il y a des notes pour la base de données
- t : il y a une recherche par titres de noblesse
- z : il y a une personne prise comme référence Sosa (voir macro "%u")
- a : il y a une restriction globale d'accès à la base de données
- N : contraire de l'expression qui suit
- | : "ou" logique entre les deux expressions qui suivent
- & : "et" logique entre les deux expressions qui suivent
- Exemples:
- afficher le texte s'il y a une recherche par titre :
%It...%E
- afficher le texte si on est ni "magicien" ni "ami" :
%I&NwNf...%E
Divers
- %r suivi d'un nom et d'un retour-ligne : inclusion du fichier "nom.txt". Le fichier nom.txt doit se trouver au même endroit
- que le fichier source qui l'invoque (à vérifier!!)
- l'expérience montre par exemple que css.txt doit être :
- dans gw/etc pour les fichiers associés à l'affichage par gwd (perso.txt, ...)
- dans bases/src/base si css.txt est invoqué dans un fichier résultant d’un "%sm=SRC;v=fichier".
- %b : valeur de la variable "body_prop" du fichier "toto.gwf" pour la base "toto".
- %h : variables contextuelles (voir ci-dessous) sous la forme "<input type=hidden name=var value=val>".
- %l : langue.
- %n : nombre de personnes de la base.
- %u : personne prise comme référence Sosa.
- %% : un seul "%".
- %[ : un "[".
- %] : un "]".
Variables contextuelles
Les variables contextuelles sont celles qui influencent l'ensemble du comportement de gwd (par opposition à celles qui sont associées à une seule requête). Elles apparaissent explicitement dans l'URL d'accès à GeneWeb.
- lang
- templ
- pz, nz, ocz, iz (prénom, nom, occurrence, index d'une référence sosa)
- p_mod
- liste à compléter à partir du code ...
Contexte d'utilisation
Les macros peuvent être utilisées dans deux contextes au comportement très différent :
- dans le contenu d'un fichier appelé avec la commande
m=SRC
- Dans ce contexte, toutes les macros citées ci-dessus sont actives.
- dans le contenu d'une note (personnelle, relative à un évènement ou page liée)
- Dans ce contexte, seules deux macros sont actives :
%s
et une variante spécifique de la macro%v
: - la commande %vtexte; est remplacée par le contenu de la variable bvar.var_texte avec une syntaxe expansion supplémentaire des variables d'environnement système
${SYSTEM_ENV_VARIABLE
} si la variableexpand_env=yes
est présente dans le fichier.gwf
.
Les macros fréquemment utilisées
- %b que vous pourrez mettre dans le tag "<body>" en l'écrivant "<body%b>".
- %s que vous pourrez mettre dans les liens.
Exemple de phrase dans "celebres.txt":
Voyez mon cousin <a href="%sp=louis;n=de+bourbon;oc=5"> Louis XIV</a> et mes <a href="%sem=R;ep=jean;en=dupont;m=NG;n=louis+xiv;t=PN"> liens de parenté</a> avec lui.
Liste des macros
Pour mémoire, voici le résultat de l'exécution de toutes les macros disponibles dans le contexte des commandes m=SRC
de GeneWeb :
Ce tableau peut être généré automatiquement en insérant un peu de code HTML/GeneWeb dans la note d'un individu de votre base. Le code en question est ici
La troisième colonne donne un résultat d'une exécution dans un contexte spécifique.
Macro | Example use | Result | What it does |
---|---|---|---|
%a | %a | Displays name of sosa reference (See %Iz below) | |
%b | %b | Value of "body_prop" (in base.gwf) | |
%c | %c | 42 | Number of queries for the welcome page |
%d | %d | 10 décembre 2018 | Date of first visit |
%D | %D | 10/12/2018 | Date of first visit |
%e | %e | UTF-8 | Character set |
%f | %f | HenriT_w | In server mode, base name followed by password. In CGI mode, name of the CGI command (ex: gwd.exe) |
%g | %g | HenriT_w? | In server mode, same as "f". In CGI mode, name of the command, followed by "?b=basename;" |
%h | %h | A list of var=value for each hidden url variable | |
%i | %i | #2f6400 | Highlight color |
%j | %j | Include hed.txt file | |
%k | %k | geneweb? | Value of the action parameter of a http GET/PUT command |
%l | %l | fr | Language |
%L | %L | left | Left (style: used in align="%L") |
%m | %m | 30 | Value of latest_event (in base.gwf) |
%n | %n | 8879 | Number of persons in the base |
%N | %N | : titre | Content of as first line of base.gwb/notes file |
%o | %o | images | Value of %image_prefix; (see doc for image_prefix details (to be completed)) |
%p | %p | %p | noop |
%P | %P | next (%Pc) | |
%q | %q | 285 | Number of queries |
%r | %rfile | test for macros | Reads file bases/src/base/test.txt) (file must be followed by "end of line") |
%R | %R | right | Right (style: used in align="%R") |
%s | %s | HenriT_w? | Value of %f followed by "?" and contextual variables (ex: "toto?lang=it;iz=8233;") Typical use: <a href="%sp=first_name&n=surname">Link to person First_name Surname</a> |
%t | %t | HenriT | Base name |
%T | %T | Value of %doctype; (Given that doctype translates into <-- .... -->, nothing is visible in the result column. Look at the sources to verify) | |
%u | %ufr; | français | returns "Français" if lang=fr, and "French" if lang=en (dont forget the ;) |
%U | %U | : hg | User name |
%v | %v | 7.00-exp | Returns GeneWeb version number |
%v | %vtext; | xxxx | Specific to the NOTES conetxt: returns the value of bvar.var_text |
%V | %Vvar; | oui | Value of bvar.var (in base.gwf) example %Vtest; |
%w | %w | Link to previous page (with back arrow icon) | |
%x | %x | %x | noop |
%X | %Xvar; | macros | Value of evar.var (in URL) example %Xv; |
%y | %y | %y | noop |
%/ | %/ | if doctype = "html-4.01" then "" else "/" (used to terminate html tags as in <br%/> -> | |
%% | %% | % | % |
%Ia | %IaYes%E %INaNo%E | No | auth_file exists. Global access restriction is on (see Access) |
%Ic | %IcYes%E %INcNo%E | No | Cannot handle passwords |
%If | %IfYes%E %INfNo%E | No | We are "Friend" |
%Ih | %IhYes%E %INhNo%E | Yes | There is a history file |
%Ij | %IjYes%E %INjNo%E | No | Wizard_just_friend is active |
%Il | %IlYes%E %INlNo%E | No | Browser handles tables |
%Im | %ImYes%E %INmNo%E | Yes | notes_links <> [] |
%In | %InYes%E %INnNo%E | Yes | There is a base note file |
%Io | %IoYes%E %INoNo%E | Yes | Notes dir exists |
%Ip | %Iptest;Yes%E %INptest;No%E | Yes | Base env variable <> "" (var terminated by ;) |
%Is | %IsYes%E %INsNo%E | Yes | Base env variable <> "no" |
%Iw | %IwYes%E %INwNo%E | Yes | We are "Wizard" |
%Iz | %IzYes%E %INzNo%E | No | Sosa ref exists |
Expressions are limited to the following macros : a c f j l m n o p s w z which return True or False | |||
%It | %ItYes%E %INtNo%E | !!!!!t!!!!!Yes !!!!!t!!!!! | Bad macro (twice) (prints !!!!x!!!!, returns True) |
%IN | %IN[expression] | Inverts the result of [expression] (See %If thru %Iz for usage examples) | |
%I| | %I|fwfrd or wiz%E | frd or wiz | Logical "or" of the two following expressions |
%I& | %I&whwizard and history file%E | wizard and history file | Logical "and" with two following expressions |
Manuel GeneWeb
- Télécharger et installer GeneWeb sous GNU/Linux, Mac OS X, Microsoft Windows, FreeBSD ou en mode CGI derrière un serveur web.
- Comprendre le principe du serveur GeneWeb, les homonymes, la consanguinité.
Utiliser et gérer une base généalogique
- Importer un fichier Gedcom
.ged
ou GeneWeb.gw
avec gwsetup ou en lignes de commandes. - Mettre à jour les données (ajouter/modifier/supprimer personnes et familles), fusionner les doublons, saisir des dates.
- Utiliser la syntaxe wikitext, les macros, les raccourcis claviers.
- Nettoyer, restaurer, renommer, sauvegarder, archiver une base.
- Fusionner plusieurs bases et diviser une base.
Annexe technique
- Personnaliser avec CSS, entête et pieds de page, templates, lexique et déclinaisons.
- Fichier de configuration
.gwf
(pour templm), mots de passe pour amis et magiciens et restrictions d'accès à une base. - Ajouter une image dans les notes.
- Autres commentaires pour les experts.