Webdesign
Original in fr John Perr
fr to en:John Perr
��1994����Ϊ��Linux ��ʹ����.���� LinuxFocus �ķ�����Ա֮һ.
��һ�̳������������m4�괦������html�ļ���ά��.
���������Ծ����������ı��༭��.���������ı��༭���Ѿ�ӵ�����������Թ���.C���Եı�����ҲΪ������ڱ���Ԥ����ʱ�ṩ����һ����.����ά��һЩ�����ļ�����С����վʱ,GNU/m4 �괦����������Ч�ļ��Ṥ����.GNU/m4 �괦�����������е�Linux�汾����,��Ϊ����Unixʹ���ߵ�һ����.
������,���ǽ�����չʾ�������GNU/m4 �괦����ȥά��һ��С����վ��HTMLҳ��.�������������ȷ��������վ��������.��Ȼ,���ڴ����ǿ��Բ��ö���ϵͳ����ʵ��---��Ҳ����Unix������֮����.
���ּ����Ѿ�Ӧ������������Ϥ��sendmail.������Ϊʹ������Eric Allman����Ƶ�m4 ���������.
GNU/m4 �괦��������ֻ�������ı���HTML�ļ��ı༭,������Ҫ��չCPP���Ի�����Ҫ����������ʵ����CPP����ͬ��Ч���ij��������ʱ�dz����õ�.
�괦������һ�������û����������ij���,�꾭��ʹ�����ı�����.���¶���:
define(AUTHOR,`Agatha Christie[email protected]')
���������ı����κεط�ʹ�� "AUTHOR"�����.������m4������,�������滻Ϊ"Agatha Christie<[email protected]>".��Ȼ�������кܶ������Ĺ���,���ǽ�������չʾ.
���Ǽ������ǽ�Ҫά��һ��ӵ����ͬҳ�浫ȴ�Dz�ͬ�����Ե���վ.����ÿһ��ҳ�涼ӵ����ͬ��header��footer��ʵ��ҳ����۵�ͳһ.Ϊ�˼��ұ���ʹ����������������ǵĽ��,���ǵ����ӽ��ִ����ı�����.����Ҳͬʱʹ������ֻʹ��lynx�����Ĺ��߾Ϳ��Է������ǵ���վ.����������һҳ��HTML����:
<!-- Start of header --> <HTML> <HEAD> <TITLE>Lynx homepage</TITLE> <META name="description" content="Site lynx et m4"> </HEAD> <BODY BGCOLOR="#FFFFFF" LINK="#008000" VLINK="#808080" ALINK="#8080FF"> <TABLE> <TBODY> <TR><TD align=middle colspan="2"> <H1>Lynx a fully-featured World Wide Web client for character-cell displays</H1> <TR><TD align="left" valign="top" width="15%"> <a href="./index-en.html">English</A><BR> <a href="./index-fr.html">French</A><BR> <a href="./index-es.html">Italian</A><BR> <a href="./index-it.html">Spanish</A><BR> <a href="./index-de.html">German</A><BR> <TD align=left> <!-- End of header --> <P>Links to the current sources and support materials for Lynx are maintained at <A HREF="http://www.crl.com/~subir/lynx.html">Lynx links</A></P> <P> and at the Lynx homepage <A HREF="http://lynx.browser.org/">Lynx Information.</A></P> <P>View these pages for information about Lynx, including new updates.</P> <P>Lynx is distributed under the GNU General Public License (GPL) without restrictions on usage or redistribution. The Lynx copyright statement, "COPYHEADER", and GNU GPL, "COPYING", are included in the top-level directory of the distribution. Lynx is supported by the Lynx user community, an entirely volunteer (and unofficial) organization.</P> <!-- Start of footer --> </TBODY> </TABLE> <HR size="0" noshadow> <FONT SIZE=-2> <EM>Page maintained by John Perr.<BR> Page updated on 25/07/99 - © <A HREF="mailto:[email protected]">lynx.browser.org</A>1999 </EM></FONT> </BODY> </HTML> <!-- End of footer -->
����������Ľ��:
���е�ҳ�涼ӵ����ͬ��header��footerʽ��,ֻ�����Ժ�ҳ���body���ֲ�ͬ.�������ڽ�Ҫ��ʼ�༭m4��,���ǽ����������ǵ�HTML�ı����滻�����ظ��Ե�����.
�����ǽӴ����ϸ��֮ǰ,�������ϱ�����õ��������:
LYNX_TITRE(Lynx a fully-featured World Wide Web client for character-cell displays) LYNX_ENTETE(Lynx homepage) <P>Links to the current sources and support materials for Lynx are maintained at <A HREF="http://www.crl.com/~subir/lynx.html"> Lynx links</A></P> <P> and at the Lynx homepage <A HREF="http://lynx.browser.org/"> Lynx Information.</A></P> <P>View these pages for information about Lynx, including new updates.</P> <P>Lynx is distributed under the GNU General Public License (GPL) without restrictions on usage or redistribution. The Lynx copyright statement, "COPYHEADER", and GNU GPL, "COPYING", are included in the top-level directory of the distribution. Lynx is supported by the Lynx user community, an entirely volunteer (and unofficial) organization.</P> LYNX_PIED
������,�༭HTMLҳ��Ƚ����ײ��Ҳ������HTML��ʾ֮����ı���ʧ.As such, writing HTML pages is simpler and the text is not lost among HTML tags. ������������,�������з���.����潫���:
LYNX_TITRE(Lynx un navigateur en mode console) LYNX_ENTETE(Un site pour les utilisateurs de lynx) <P>Visitez le <A HREF="http://lynx.browser.org/"> site officiel de lynx</A> pour plus d'informations sur Lynx, y compris les nouvelles mises ?jour.</P> <P>Les liens vers les sources de la version courante et divers supports pour Lynx sont tenus ?jour sur le site <A HREF="http://www.crl.com/~subir/lynx.html"> liens Lynx</A>.</P> <P>Lynx est distribue dans le cadre de la lisence GNU (General Public License - GPL) sans restriction sur son utilisation ni sa distribution. Les mentions des droits de reproduction de Lynx, "COPYHEADER", et GNU GPL, "COPYING", sont inclus dans la racine de l'arborescence de la distribution. Lynx est supporte par la communaute des utilisateurs de Lynx, une communaute enti�rement benevole (et non-officielle).</P> LYNX_PIED
����ÿһ������,��ͬ�ĺ�LYNX_TITRE, LYNX_ENTETE �� LYNX_PIED �ֱ�Я����ͬ�IJ�����ʹ��.�����������ʵ�ֶ�HTML�ı��е�header��footer��Ч�滻.������һϵͳ����Ҫ�ŵ�:header��footer�Ķ����������վ����˵��һ�µ�.����header��footer��������Ҫ�ı�Ļ�,ֻ��Ҫ�ĺ�Ķ����ļ���������Ҫ�����е�ҳ����.
����Ϊ�˴ﵽ��ͬ�ĸ�ʽ���Ƕ�����������.�����Ǻ�Ķ����ļ�,��������:
divert(-1) # File mac.css # Version 1.0 M4 macros for Lynx # # A file trans-LANG.m4 is defined for each # language, based on the french one. # If no translation file exist, # french is the default. # divert(0) changequote({,})dnl # change quotes to curly braces ifdef({LANG},,{define({LANG},{fr})})dnl # Default= french include({trans-}LANG{.m4})dnl # call translation file undefine({format})dnl # Suppress the format definition define({_ANNEE_},esyscmd(date +%Y))dnl #Current year define({LYNX_TITRE},{define(_TITLE_,$1)})dnl # First macro dnl # Second macro define({LYNX_ENTETE},{<!-- Header start --> <HTML> <HEAD> <TITLE>$1</TITLE> <META name="description" content="Site lynx and m4"> <META name="keywords" content="m4, lynx, GPL"> </HEAD> <BODY BGCOLOR="#FFFFFF" LINK="#008000" VLINK="#808080" ALINK="#8080FF"> <TABLE> <TBODY> <TR><TD align=middle colspan="2"> <H1>_TITLE_</H1> <TR><TD align="left" valign="top" width="15%"> <a href="./index-en.html">_ANGLAIS_</A><BR> <a href="./index-fr.html">_FRANCAIS_</A><BR> <a href="./index-es.html">_ESPAGNOL_</A><BR> <a href="./index-it.html">_ITALIEN_</A><BR> <a href="./index-de.html">_ALLEMAND_</A><BR> <TD align=left> <!-- end of header -->})dnl dnl # Third macro define({LYNX_PIED},{<!-- Start of footer --> </TBODY> </TABLE> <HR size="0" noshadow> <FONT SIZE=-2> <EM>_MAINTENEUR_.<BR> _MAJ_ esyscmd(date +%d/%m/%y) - © <A HREF="mailto:[email protected]"> lynx.browser.org</A> _ANNEE_</EM></FONT> </BODY> </HTML> <!-- End of footer -->})dnl
��"divert(-1)"��"divert(0)"֮���������ע��,"Divert"��m4�����������ú�.��ָ������������.ʹ�ò���-1,���ߴ������������յ�HTML�ļ�д�����������,��Ҳ��������ϣ����.
��"changequote"���¶��徭�������õĺ����.���ǽ��ڴ˱��滻Ϊ������({}),������Ϊ���ı���,�ر��Ƿ����ı����������ûᱻ�㷺��ʹ�ö����֮��������.������({})���ı�����HTML�ļ��к���ʹ��,��Ҳ��Ϊʲô����ѡ���˻�����({}).
��"ifdef"���ڲ��Ժ�LANG�Ƿ��Ѿ��������˲��ҽ�����Ϊ"fr".��LANG�������趨����.�����µļ�����,���ǽ�����Ϊ��ѡ��HTMLҳ�������,����ں���m4��ʱ����.
����C�����е�������ͬinclude��ͷ�ļ�����������һ���ⲿ�ļ�.����ʹ��������������������header��footer����ʹ�õ�����.������������������Ӧ������:
divert(-1) # File trans-fr.m4 # Definitions for french divert(0) define({_ANGLAIS_},{Anglais})dnl define({_FRANCAIS_},{Fran�ais})dnl define({_ITALIEN_},{Espagnol})dnl define({_ESPAGNOL_},{Italien})dnl define({_ALLEMAND_},{Allemand})dnl define({_WEBMASTER_},{John Perr})dnl define({_MAINTENEUR_},{Page maintenue par _WEBMASTER_})dnl define({_MAJ_},{Date de mise à jour:})dnl
divert(-1) # File trans-en.m4 # Definitions for english divert(0) define({_ANGLAIS_},{English})dnl define({_FRANCAIS_},{French})dnl define({_ITALIEN_},{Spanish})dnl define({_ESPAGNOL_},{Italian})dnl define({_ALLEMAND_},{German})dnl define({_WEBMASTER_},{John Perr})dnl define({_MAINTENEUR_},{Page maintained by _WEBMASTER_})dnl define({_MAJ_},{Page updated on })dnl
�����ʹ�õ�����������,�������͵���,�����д����ʶ�Ķ�Ӧ����Щ���Ե��ļ�.
"undefine"��ֹ�������ﲻ�õ����õ�"format".�����Ѿ�������(��{}��Χ����)�����һ�б�ʡ��,������ı��ļ���"format"ÿ�γ���ʱ������ʧ.�����һ��С����վʱ,�������Dz���ȡ��.
�������Ƕ��������ڵ���ݵĶ���,�����ɺ�"easyscmd"���õ���,"easyscmd"����Unix��ϵͳ����date.�������Ҳ����Ҫ��header��footer�д�ӡ��ҳ��������ڵ�ʱ��ʹ��.
��������һ�ж��������ǵ���Ҫ���������еĵ�һ��: LYNX_TITRE.����궨��������һ���� _TITRE_ �ĺ�.Ϊ����ҳ���header��footer�ж��ʹ��һ���������DZ�Ҫ��.��ע�� $1 ��������ָ���ĵ�һ������.
ʣ�µĶ����Ƕ�������������Ҫ�ĺ�:LYNX_ENTETE �� LYNX_PIED.���Ƿֱ��Ӧ��ҳ����(������)header��footer�е�����.������:
����һ��ĩβ�����ֵ�"dnl"��һ��m4�����õĺ�,��˼��"ɾ�����µ�һ��".���� "dnl" m4�Ͳ����ڽ��ͺ��ʱ�����һ������.
�������ǵ�ϵͳ�Ѿ��������,������������Щ�ļ�������ҳҳ��.
m4 -DLANG=XX mac.css index-XX.m4 > index-XX.html
"XX" �Ƕ��ڸ������ԵĴ���.��ע������Ӧ����ѡ�� -D ,������C���Ե�gcc,�������ж�����һ����.
�±��ṩ������������е��ļ������ǵ�����.
������ļ���������HTMLҳ��:
index-XX.html | ҳ�������,�������������ɷ�������д��.����ÿ��ҳ���ÿ�������������Dz�ͬ��(����Ӣ������� XX=en ,����������������� XX=es �ȵ�). |
mac.css | �����˱��Ķ���.�������е�ҳ��,���е���������ļ��ǹ�ͬ��.���Ա������Ƕ�����ij��ҳ������ļ�. |
trans-XX.m4 | ��ÿһ�����Եı�����.����ļ�����һ�����Ե�����ҳ���ǹ�ͬ��.(����Ӣ������� XX=en ,����������������� XX=es �ȵ�). |
�����������ú�����,m4�����������������Ľű��������,��Perl Tcl.��һ�����˽��������,����һ�������ı��ļ����ٶ������ֿɵõĹ���.����ԴӲ���ϵͳ���ĵ��еõ�����IJο�.������ҵ�һ����Լ30ҳ��m4�̲�,���а�����GNU/m4�괦����������з���.��ͬʱҲ���Է���һ�²�����Linux���ֲ�(ABUL),���վ�������m4�����ά����,�����ǽ�������ӷdz���ʶ.
���Դ� ftp://prep.ai.mit.edu/pub/gnu/m4-1.4.tar.gz
�õ�GNU/m4
�������ϵ��ļ�: The Lynx
m4 macro kit
��л Paul Kienzle ������ƪ����.