Add some notes related to the Emacs www pages

This commit is contained in:
Glenn Morris 2013-06-24 19:15:00 -07:00
parent f42d8237f7
commit 7e3a3bb307
2 changed files with 90 additions and 0 deletions

View file

@ -10,6 +10,14 @@ directory in the Emacs build tree:
emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \
-f info-xref-check-all
Setting Info-directory-list avoids having system info pages confuse
things. References to external manuals will be flagged as
uncheckable. You should still check these, and also that each
external manual has an appropriate redirect in the file manual/.htaccess
in the web pages repository. E.g.:
Redirect /software/emacs/manual/html_mono/automake.html /software/automake/manual/automake.html
Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/html_node/
make emacs.dvi, elisp.dvi, and deal with any errors (undefined
references etc) in the output. Break any overfull lines.
Underfull hboxes are not serious, but it can be nice to get rid of

82
admin/notes/www Normal file
View file

@ -0,0 +1,82 @@
-*- outline -*-
Copyright (C) 2013 Free Software Foundation, Inc.
See the end of the file for license conditions.
NOTES FOR EMACS WWW PAGES
* Renaming pages, redirects
Sometimes you want to move a page to a new location.
If the old location might be referenced somewhere else, you should add
some form of redirect to the new location. There are several ways to
do this:
** Use a refresh directive in the old file
https://www.gnu.org/server/standards/README.webmastering.html#htaccess
Change the entire contents of the old file to be something like:
<meta http-equiv="refresh" content="0; url=/software/emacs/manual/elisp.html">
I can't think of any reason to use this method.
** Use a .symlinks file
https://www.gnu.org/server/standards/README.webmastering.html#symlinks
This is really an interface to mod_rewrite rules, but it acts like
symlinks. Remove old-page.html altogether, and create a ".symlinks"
file in the relevant directory, with contents of the form:
# This is a comment line.
old-page.html new-page.html
Anyone visiting old-page.html will be shown the contents of new-page.html.
Note that changes to .symlinks file are only updated periodically on
the server via cron (twice an hour?). So there will be a delay (of up
to 30 minutes?) before you see your changes take effect.
This method is ok, but:
i) a person visiting old-page.html has no idea that the page has moved.
They still see old-page.html in their address bar. (In other words,
the mod_rewrite rule does not use the [R] flag.) Sometimes this is
what you want, sometimes not.
ii) it doesn't work write if the new page is in a different directory
to the old page: relative links from the visited page will break.
** Use a .htaccess file
Remove old-page.html altogether, and create a ".htaccess" file in the
relevant directory, with contents of the form:
# This is a comment line.
Redirect 301 /software/emacs/old-page.html /software/emacs/dir/new-page.html
Use "301" for a permanent redirection, otherwise you can omit the number.
Note that paths must (?) be relative to the top-level www.gnu.org.
I think this is the best method. You can specify temporary or
permanent redirects, and changes go live more-or-less straight away.
This method is useful for making cross-references to non-Emacs manuals
work; see manual/.htaccess in the repository. You only have to add a
single redirect for every given external manual, you can redirect
html_node to hmtl_node and html_mono to html_mono.
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.