aboutsummaryrefslogtreecommitdiff
path: root/en/handbook/README
diff options
context:
space:
mode:
Diffstat (limited to 'en/handbook/README')
-rw-r--r--en/handbook/README649
1 files changed, 0 insertions, 649 deletions
diff --git a/en/handbook/README b/en/handbook/README
deleted file mode 100644
index ff40e090c4..0000000000
--- a/en/handbook/README
+++ /dev/null
@@ -1,649 +0,0 @@
-This will be the location of the DocBook version of the FreeBSD Handbook,
-which will eventually obsolete the version currently in doc/handbook/.
-
-Interested parties should examine
-
- <URL:http://www.nothing-going-on.demon.co.uk/FreeBSD/docbook-migration.html>
-
-and get in touch with Nik Clayton (either to nik@FreeBSD.ORG or via the
-FreeBSD-doc mailing list) if they have specific questions.
-
-All the scripts mentioned here can also be downloaded by doing to
-
- <URL:http://www.freebsd.org/~nik/script_name>
-
-for example,
-
- <URL:http://www.freebsd.org/~nik/entity-cdata.pl>
-
-
- ------------------------------------------------------------------------
- The Handbook is midway through the conversion process. It will almost
- certainly not convert to other formats cleanly
- ------------------------------------------------------------------------
-
-
- Actions
-
- This list explains what's been done so far, so the Japanese team can
- track my changes. All actions took place on freefall.
-
- 1. Initial conversion to DocBook
-
- Checked out a copy of the doc repository to ~/cvs/. Then used 2 scripts
- to convert the handbook to its initial DocBook format. The 2 scripts are
- 2docbook.sh and entity-cdata.pl, both of which can be found in ~nik/bin/.
-
- 2docbook.sh calls entity-cdata.pl as necessary.
-
- % cd ~/cvs/doc/handbook
- % 2docbook.sh
-
- This created handbook-db.sgml in ~/cvs/doc/handbook. This file contains
- syntactically valid (but quite ugly) SGML. This file was then moved to
- the doc/en/handbook directory and renamed to handbook.sgml. The
- conversion process left a few spurious changes in the old handbook files
- which I don't want to commit, so I removed them and updated the
- repository.
-
- The new file was then committed.
-
- % mv handbook-db.sgml ~/cvs/doc/en/handbook/handbook.sgml
- % rm *.sgml
- % cvs update
- % cd ~/cvs/doc/en/handbook
- % cvs add handbook.sgml
- % cvs commit
-
- 2. handbook.sgml was loaded into XEmacs 20.30 (straight from the ports
- collection) and sgml-mode was turned on. My .emacs file contains the
- following hook:
-
- (add-hook 'sgml-mode-hook
- (function
- (lambda()
- (setq sgml-omittag nil)
- (setq sgml-indent-data t))))
-
- This configures psgml to not omit any tags that the DTD lists as
- omittable, and to indent data in the same way that markup is indented.
-
- The following function was pasted into the *scratch* buffer, and then
- "M-x eval-current-buffer" was run.
-
- (defun sgml-indent-buffer
- "Indents the current buffer, one line at a time"
- (interactive "*")
- (save-excursion
- (goto-char (point-min))
- (while (= (forward-line 1) 0)
- (sgml-indent-or-tab))))
-
- In the handbook.sgml buffer, the point was placed on the first character
- of the first line, and "M-x sgml-indent-buffer" was run.
-
- The changes were then committed.
-
- 3. Refilled the Handbook -- this rewraps the lines as necessary. This was
- done by placing the point on the first <book> tag, and running
- "M-x sgml-fill-element".
-
- This takes about 10 minutes to run.
-
- It also reformats some sections that should not be reformatted, including
- examples of text on the screen, PGP key blocks and so on. They will be
- fixed in a later commit.
-
- 4. Removed spurious markup. The conversion process has left a lot of
-
- <para></para>
-
- entries in the handbook, and they need to be removed. There are a
- number of places this happens, and the rules are slightly different
- each time.
-
- For example,
-
- ====================================================================
- Original markup Changed markup
- --------------------------------------------------------------
-
- <listitem> <listitem>
- <para></para> <para>A real paragraph</para>
-
- <para>A real paragraph</para>
-
- --------------------------------------------------------------
-
- <para>A real paragraph</para> <para>A real paragraph</para>
- </listitem>
- <para></para>
-
- </listitem>
-
- --------------------------------------------------------------
-
- <para>A real paragraph</para> <para>A real paragraph</para>
-
- <para></para> <para>Another paragraph</para>
-
- <para>Another paragraph</para>
- ====================================================================
-
- Notice the last example. It's not enough to simply put together a
- regexp that matches (all whitespace)<para></para>(allwhitespace)
- and removes it, since that would leave you with
-
- <para>A realparagraph</para>
- <para>Another paragraph</para>
-
- In the end I got bored of trying to write this using Emacs regexps,
- and knocked together a quick Perl script to do it. It's ~nik/bin/para.pl
- on freefall.
-
- 5. Got halfway through looking for filenames, and marking them up as such.
-
- There are a lot ( :-( ) of filenames in the Handbook. The conversion
- process did a pretty good job of marking them as <filename>...</filename>
- but it wasn't perfect.
-
- I'm halfway through (line 16704) going through the Handbook, eyeballing
- each line and changing things like <emphasis remap="tt">...</emphasis>
- to <filename>...</filename> where appropriate.
-
- The remainder will follow tomorrow evening.
-
- 6. Finished the first sweep marking up filenames.
-
- If it looked like a filename (but wasn't a command for the user to type
- in) it's been marked up with <filename>...</filename>.
-
- If it had already been marked up as <filename>...</filename> but wasn't
- a filename, the markup was changed to <emphasis remap="tt">...</emphasis>
-
- PSGML and Xemacs are very useful for this, using "C-c =" to change
- existing markup.
-
- Synchronising with changes 5 and 6 will involve examining the diffs
- and changing by hand I'm afraid. It could not be automated.
-
- 7. Start replacing `` and '' with <quote> and </quote>. Don't change
- things indiscriminately, but look at the context to see if the change is
- appropriate. There are still many `` and '' occurences which should be
- changed to some other element.
-
- This was done using a regexp search/replace, looking for the regexp
-
- ``\([^']\)''
-
- and replacing with
-
- <quote>\1</quote>
-
- Not all the `` '' pairs were changed, since in some cases they delimit
- filenames, options and so on.
-
- 8. As with change 7, but replace with <command> ... </command> as
- necessary.
-
- 9. Remove the `` and '' from options.
-
- ``<option>...</option>'' becomes <option>...</option>
-
- 10. Converted appropriate occurences of
-
- <emphasis remap=tt>...</emphasis>
-
- to
-
- <filename>...</filename>
-
- 11. As above, but changing to <command>...</command>. Modified the Emacs
- regexp slightly to search for
-
- <emphasis[ \n\t]+remap=tt>\([^<]+\)</emphasis>
-
- which matches elements spread over two lines.
-
- 12. Looked for explanatory notes in the text (typically prefixed by "note",
- "Note:" or "<para><blockquote><para><emphasis role=bf>Note:</emphasis>"
- and marked them up as 'note' elements.
-
- This change involves markup changes *and* text changes. This is because
- text like
-
- <para>Note: The foo file is only used once, and can be deleted.</para>
-
- became
-
- <note>
- <para>The foo file is only used once, and can be deleted.</para>
- </note>
-
- 13. Look for text marked up as an acronym and alter as necessary. The
- automatic conversion tended to mark any string of upper case letters
- as acronyms, which is not always right.
-
- The difference between an <acronym> and <abbrev> is subtle -- in a
- nutshell, an acronym is pronounceble, an abbreviation isn't.
-
- 14. Another sweep for "`" and "``" (and their closing equivalents),
- replacing them with the right markup (since most of the time they're
- used to 'delimit' filenames or options from the surrounding text.
-
- The only quotes left now are either around items for which I'm not 100%
- sure which element to use, or in literal blocks as part of commands the
- user types in.
-
- 15. Look for double quotes not used in attributes and alter to the
- appropriate markup (or remove as necessary). A useful Emacs regexp
- when doing the search replace is
-
- \([^=]\)"\([^ \t\n]+[^"]+\)"\([^>]\)
-
- and replace with
-
- \1<quote>\2</quote>\3
-
- or whatever the replacement element is.
-
- Converted '"' into <quote>, <literal>, <command>, <application>,
- <filename>, <emphasis>, <option> or removed it as neccessary.
-
- 16. A general cleanup to get it to validate. The original conversion
- process left some <sect?>'s with just a title, which is invalid,
- they must contain a <para> or similar element.
-
- Also fixed a couple of typos in the tags. The document should now
- validate, save for the undefined external entitites.
-
- 17. Created a new FreeBSD Doc. Project DTD in the ../../sgml directory.
- Changed the declaration at the top of the handbook to use this new
- DTD.
-
- 18. Yet more things that should be filenames marked up as such.
-
- 19. Use the new <hostid> element to mark up hostnames, IP addresses and
- such. The markup choice is as follows.
-
- <hostid>...</hostid> is a simple hostname.
- <hostid role="ipaddr">...</hostid> is an IP address.
- <hostid role="domainname">...</hostid> is a domain name.
- <hostid role="fqdn">...</hostid> is a fully qualified domain name.
- <hostid role="netmask">...</hostid> is a netmask.
- <hostid role="mac">...</hostid> is a network card MAC address.
-
- These might migrate to being separate elements in the future. However,
- if they do then changing the markup can be done automatically.
-
- 20. Convert <emphasis remap=it>...</emphasis> to plain <emphasis> in some
- cases. I'm pretty certain that all the <emphasis>...</emphasis>
- markup is correct now, which makes searching for markup that does
- need changing much easier.
-
- 21. Replace the last few occurences of curly quoted items (`` and '')
- with the right markup.
-
- 22. Almost the last lot. I missed a diff I'd done at home. There's a
- section in the handbook that talks about kernel options, where the
- quoted options are quoted with `` and ''. Fix them so that standard
- double quotes are used (so they can cut-n-pasted).
-
- 23. Start working on <emphasis remap=bf>...</emphasis>
-
- Convert the first lot to <command>...</command>
-
- 24. Fixed manual page references to use the right markup, which is
-
- <citerefentry>
- <refentrytitle>page_name</refentrytitle>
- <manvolnum>number</manvolnum>
- </citerefentry>
-
- Did this with a regexp search for
-
- \([a-z-_\.]+\)(\([1-9]\))
-
- and replacing with
-
- <citerefentry><refentrytitle>\1</refentrytitle><manvolnum>\2</manvolnum>
-
- Since most of the page references had <command>, <emphasis>, or
- <ulink> elements wrapped around them, you then have to sweep through the
- file looking for "><cite" and using C-c C-k to kill the markup
- immediately before and after.
-
- 25. <emphasis remap=..>...</emphasis> -> <literal>...</literal>
-
- 26. <emphasis remap=..>...</emphasis> -> <makevar>...</makevar>
-
- 27. <emphasis remap=..>...</emphasis> -> <maketarget>...</maketarget>
-
- 28. Fix up some uses of <screen> and the use of <emphasis> elements within
- and near it. Most of the time this consisted of replacing the <emphasis>
- with <replaceable> or <userinput>.
-
- 29. Fixed up more references to manpages that used <ulink> to use
- <citerefentry>. These were missed at step 24 because they didn't
- include a section number. No references to man.cgi now exist in
- handbook.sgml.
-
- 30. Create two entities, prompt.root and prompt.user. Use these anywhere
- the OS prompt is displayed, depending on whether the user should be
- a normal user or root.
-
- Also markup other prompts (e.g., the DOS prompt C:\> that occurs in
- some places) as <prompt>s.
-
- 31. Reviewing the use of <informalexample> and <screen>.
-
- In some cases <informalexample> wasn't appropriate, and the markup was
- changed to <programlisting> or other.
-
- In some cases there were spurious <para> elements before and after the
- <informalexample>. These were removed.
-
- Reformatted text within <screen> elements because the whitespace *is*
- significant.
-
- Added <prompt> and <userinput> elements within <screen> where necessary.
-
- If I spotted inappropriate use of markup within the immediate vicinity
- of the <informalexample> elements then I fixed that (mostly the use of
- <emphasis remap="...">).
-
- This is part one of these changes -- there's a load of them, and this
- goes up to line 11,284 or thereabouts, roughly one third of the way
- through.
-
- 32. Continuing the work from the previous commit. This takes us up to
- the beginning of Chapter 16, "The Cutting Edge".
-
- 33. Finished sweep. If it's white space sensitive (examples, program
- listings, PGP signatures...) the white space is now correct. I may
- have missed one or two on the way, I'll catch them later.
-
- 34. Removed repeated spaces from the end of stops, . , ! ? : ;
-
- Some parts of the handbook had single spaces after stops, some had double
- or triple. While the typographical convention for monospaced fonts may
- be to use double spaces after them, that doesn't apply here. TeX will
- ignore them, as will HTML. If we need for a plain text version of the
- Handbook then the stylesheet / conversion mechanism can insert them
- as necessary.
-
- Searching for
-
- _\([;:!\.\?,]\) +_
-
- in Emacs and replacing with
-
- _\1 _
-
- (ignore the '_', they're just to delineate the regexps) does the job
- quite nicely. However, you can't do this everywhere, since some of the
- double spaces might be in program listings or other literal sections
- (e.g., the BSD Copyright), so you need to sit and bounce on the 'y' or
- 'n' key as appropriate for each occurence of a stop.
-
- 35. Some paragraphs have leading space(s). E.g.,
-
- <para> There is some leading space here.</para>
-
- Get rid of it, doing an emacs search/replace for
-
- <para> +\([^ ]\)
-
- and replacing with
-
- <para>\1
-
- This can be done globally.
-
- 36. A lot of </para> tags have leading whitespace before them. Remove it. Do
- this (in Emacs) by searching for
-
- \s-+</para>
-
- and replacing with
-
- </para>
-
- Do this for all occurences *except* where the element immediately before
- the </para> is one of <itemizedlist>, <orderedlist>, <variablelist>,
- <procedure>. The <para>...</para> wrapping these elements is mostly
- redundant, and will be removed later.
-
- 37. With the agreement of the Japanese team, a change in the way I'm doing
- things.
-
- I'm now working through from the beginning of the handbook to end,
- correcting as I go. I'll commit in chunks of 5,000 lines (or
- thereabouts).
-
- Most of the changes fall into the following categories.
-
- * <emphasis remap=bf> --> <emphasis>
-
- * Spurious <para>s around <*list>s deleted (but not reformatted)
-
- "C-c -" in Emacs SGML mode (when the point is on an element starting
- or end tags) will delete that element's starting or end tags.
-
- * Marked smileys with <!-- smiley --> for possible future deletion
-
- * Deleting <emphasis>, around
-
- <term><emphasis>...</emphasis></term> -> <term>...</term>
-
- * Fine tuning markup choices in some cases
-
- - <filename>C:</filename> -> <devicename>C:</devicename>
-
- * Extra <note>s here and there.
-
- * Some <*list>s to <procedure> (and <listitem>s to <step>)
-
- * ASCII emphasis converted to <emphasis>
-
- i.e., do it like *this* -> do it like <emphasis>this</emphasis>
-
- * <symbol> -> <replaceable>
-
- There are very few whitespace changes, although a few have probably
- cropped up. The vast majority of the whitespace changes will happen in
- one megacommit, hopefully some time next week.
-
- 38. As above, to line 11490.
-
- 39. . . . to line 15126 . . .
-
- 40. . . . to line 20370 . . .
-
- 41. . . . to line 24997 . . .
-
- 42. Brief interruption, small changes to keep it validating.
-
- 43. . . . to line 30118 . . .
-
- 44. . . . to line 35973 . . .
-
- 45. . . . to end of file!
-
- 46. <emphasis remap=..> -> <emphasis>
- <literal remap=..> -> <literal>
- <command remap=..> -> <command>
-
- Or deleted <emphasis ..> altogether in some cases.
-
- More redundant <para>..</para>'s removed.
-
- 47. Removed white space after <title> and before </title>. Use two search and
- replaces
-
- \s-+</title> -> </title>
- <title>\s-+ -> <title>
-
- 48. Use the correct ISO entities for dashes. According to a TeX manual I have
- kicking around here,
-
- daughter-in-law, X-rated = hyphen = -
- pages 13--67 = en-dash = &ndash;
- yes---or no? = em-dash = &mdash;
- 0, 1, and -1 = minus sign = &minus;
-
- 49. Step 1. Find <ulink url="mailto:...">...</ulink> and change the <ulink>
- to <email>.
-
- Can't do this globally. Some of the links are odd (i.e,. the link
- is not their e-mail address but is their name, eg
-
- <ulink url="mailto:nik@freebsd.org">Nik Clayton</ulink>
-
- which would turn to
-
- <email>Nik Clayton</email>
-
- which isn't very useful. Ignore these ones, and do the others.
- (i.e., the ones that look like
-
- <ulink url="mailto:nik@freebsd.org">nik@freebsd.org</ulink>
-
- This Emacs regexp does the job.
-
- Search for: <ulink\s-+url="mailto[^>]+>\([^<]+\)</ulink>
- Replace with: <email>\1</email>
-
- Step 2. A lot of the <email>...</email> sets will have '<' and '>'
- embedded in them (as entities). These can be removed, since the stylesheet
- will add them;
-
- Search for: <email>&lt;\([^&]+\)&gt;</email>
- Replace with: <email>\1</email>
-
- Step 3. The trick now is to turn
-
- <ulink url="mailto:nik@freebsd.org">Nik Clayton</ulink>
-
- into
-
- Nik Clayton <email>nik@freebsd.org</email>
-
- This step could (possibly) have been done first, and then steps
- 1 and 2 could be done globally. I haven't done this because of
- concerns about the ordering of names within languages. This
- transformation is fairly simple in English, I've no idea what
- it's like in Japanese.
-
- Search for: <ulink\s-+url="mailto:\([^"]+\)">\([^<]+\)</ulink>
- Replace with: \2 <email>\1</email>
-
- Step 4. Remove leading and trailing spaces that may have slipped in
-
- Search for: <email>\s-+
- Replace with: <email>
-
- Search for: \s-+</email>
- Replace with: </email>
-
- 50. <abbrev> -> <acronym> in some cases.
-
- 51. Fixup erroneous or extraneous <para>...</para> elements.
-
- 52. <foo
- id="bar">
- ...
-
- changed to
-
- <foo id="bar">
- ...
-
- Before people complain that "Hang on, now you can't find out what the
- allocated ID values are with a simple 'grep'" I'll say that's not a
- problem. I plan to introduce a target in the Makefile (probably
- something like 'handbook.id' which will automatically generate this
- list doing a proper SGML parse.
-
- 53. Where kernel options ("options INET" for example) are listed, wrap them
- in <literal>...</literal>.
-
- 54. <quote> -> &rdquo;
- </quote> -> &ldquo;
-
- 55. * \s-+</programlisting> replaced with </programlisting> globally.
-
- * Fixup use of <symbol> with more appropriate element
-
- * Fixup wrong occurence of 'dollar'Id'dollar'
-
- * Fixup references to 'make' variables, and strim off the surrounding
- &#36;{...}, it can be added back by the stylesheet at presentation
- time.
-
- * More insertions or deletions of <para>...</para> as appropriate.
-
- 56. Add values for the 'id' attribute for those <chapters> that don't
- have them.
-
- 57. Split the Handbook into individual files, called chapter.sgml, stored
- in directories named after the value of the id attribute on the
- chapter.
-
- Added chapters.ent, which lists the entities used to refer to the
- chapters. Update handbook.sgml to refer to this file and use entity
- references to pull everything in.
-
- 58. Added chapter.decl, which contains a declaration for a DocBook
- chapter.
-
- Added
-
- <!--
- Local Variables:
- mode: sgml
- sgml-declaration: "../chapter.decl"
- sgml-indent-data: t
- sgml-omittag: nil
- sgml-shorttag: nil
- sgml-always-quote-attributes: t
- sgml-minimize-attributes: max
- sgml-parent-document: ("../handbook.sgml" "part" "chapter")
- End:
- -->
-
- to the bottom of each chapter.sgml file, so Emacs can do something
- useful with it. This uses the new chapter.decl file.
-
- 59. Add similar local variables (but not sgml-declaration or
- sgml-parent-document to handbook.sgml.
-
- 60. Added authors.ent. This is v1.93 of doc/handbook/authors.sgml, with
- these changes;
-
- 1. Remove '<tt>' and '</tt>'.
-
- 2. Search/replace
-
- \s-+<htmlurl url='mailto:\([^']+\)'\s-+name='[^']+'>
-
- with
-
- <email>\1</email>
-
- (there's a leading space before <email>)
-
- Added an ENTITY line to handbook.sgml to use the new entities.
-
- 61. Removed the prompt.* entities from handbook.sgml and added them to
- freebsd.dtd.
-
- 62. Do step 60, but for version 1.8 of doc/handbook/lists.sgml. Call
- the transformed file mailing-lists.ent, and add an ENTITY line for
- it to handbook.sgml
-
- 63. Add <!ENTITY rel.current CDATA "2.2.6"> to handbook.sgml, from
- r1.83 of doc/handbook/handbook.sgml.
-
- 64. Fix line 125 of kerneldebug/chapter.sgml, & -> &amp;
-