Index: head/en_US.ISO8859-1/books/fdp-primer/editor-config/chapter.xml =================================================================== --- head/en_US.ISO8859-1/books/fdp-primer/editor-config/chapter.xml (revision 49218) +++ head/en_US.ISO8859-1/books/fdp-primer/editor-config/chapter.xml (revision 49219) @@ -1,172 +1,247 @@ Editor Configuration Adjusting text editor configuration can make working on document files quicker and easier, and help documents conform to FDP guidelines. <application>Vim</application> Install from editors/vim or editors/vim-lite, then follow the configuration instructions in . Use Press P to reformat paragraphs or text that has been selected in Visual mode. Press T to replace groups of eight spaces with a tab. Configuration Edit ~/.vimrc, adding these lines to the end of the file: if has("autocmd") au BufNewFile,BufRead *.sgml,*.ent,*.xsl,*.xml call Set_SGML() au BufNewFile,BufRead *.[1-9] call ShowSpecial() endif " has(autocmd) function Set_Highlights() "match ExtraWhitespace /^\s* \s*\|\s\+$/ highlight default link OverLength ErrorMsg match OverLength /\%71v.\+/ return 0 endfunction function ShowSpecial() setlocal list listchars=tab:>>,trail:*,eol:$ hi def link nontext ErrorMsg return 0 endfunction " ShowSpecial() function Set_SGML() setlocal number syn match sgmlSpecial "&[^;]*;" setlocal syntax=sgml setlocal filetype=xml setlocal shiftwidth=2 setlocal textwidth=70 setlocal tabstop=8 setlocal softtabstop=2 setlocal formatprg="fmt -p" setlocal autoindent setlocal smartindent " Rewrap paragraphs noremap P gqj " Replace spaces with tabs noremap T :s/ /\t/<CR> call ShowSpecial() call Set_Highlights() return 0 endfunction " Set_SGML() <application>Emacs</application> Install from editors/emacs - or editors/xemacs. + or editors/emacs-devel. - Edit ~/.emacs, adding this - line: + + Validation - (add-hook 'nxml-mode-hook 'turn-on-auto-fill) + Emacs's nxml-mode uses compact relax NG schemas for + validating XML. A compact relax NG schema for FreeBSD's + extension to DocBook 5.0 is included in the documentation + repository. To configure nxml-mode to validate using this + schema, create + ~/.emacs.d/schema/schemas.xml and add + these lines to the file: + + locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0" + documentElement localName="section" typeId="DocBook" + documentElement localName="chapter" typeId="DocBook" + documentElement localName="article" typeId="DocBook" + documentElement localName="book" typeId="DocBook" + typeId id="DocBook" uri="/usr/local/share/xml/docbook/5.0/rng/docbook.rnc" +locatingRules + + + + + Automated Proofreading with Flycheck and Igor + + The Flycheck package is available from Milkypostman's + Emacs Lisp Package Archive (MELPA). If + MELPA is not already in Emacs's + packages-archives, it can be added by evaluating + + (add-to-list 'package-archives '("melpa" . "http://stable.melpa.org/packages/") t) + + Add the line to Emacs's initialization file (one of + ~/.emacs, + ~/.emacs.el, or + ~.emacs.d/init.el) to make this change + permanent. + + To install Flycheck, evaluate + + (package-install 'flycheck) + + Create a Flycheck checker for + textproc/igor by evaluating + + (flycheck-define-checker igor + "FreeBSD Documentation Project sanity checker. + +See URLs http://www.freebsd.org/docproj/ and +http://www.freshports.org/textproc/igor/." + :command ("igor" "-X" source-inplace) + :error-parser flycheck-parse-checkstyle + :modes (nxml-mode) + :standard-input t) + + (add-to-list 'flycheck-checkers 'igor 'append) + + Again, add these lines to Emacs's initialization file to + make the changes permanent. + + + + FreeBSD Documentation Specific Settings + + To apply settings specific to the FreeBSD documentation + project, create .dir-locals.el in the + root directory of the documentation repository and add these + lines to the file: + + ;;; Directory Local Variables +;;; For more information see (info "(emacs) Directory Variables") + +((nxml-mode + (eval . (turn-on-auto-fill)) + (fill-column . 70) + (eval . (require 'flycheck)) + (eval . (flycheck-mode 1)) + (flycheck-checker . igor) + (eval . (add-to-list 'rng-schema-locating-files "~/.emacs.d/schema/schemas.xml")))) + <application>nano</application> Install from editors/nano or editors/nano-devel. Configuration Copy the sample XML syntax highlight file to the user's home directory: &prompt.user; cp /usr/local/share/nano/xml.nanorc ~/.nanorc Add these lines to the new ~/.nanorc. syntax "xml" "\.([jrs]html?|xml|xslt?)$" # trailing whitespace color ,blue "[[:space:]]+$" # multiples of eight spaces at the start a line # (after zero or more tabs) should be a tab color ,blue "^([TAB]*[ ]{8})+" # tabs after spaces color ,yellow "( )+TAB" # highlight indents that have an odd number of spaces color ,red "^(([ ]{2})+|(TAB+))*[ ]{1}[^ ]{1}" # lines longer than 70 characters color ,yellow "^(.{71})|(TAB.{63})|(TAB{2}.{55})|(TAB{3}.{47}).+$" Process the file to create embedded tabs: &prompt.user; perl -i'' -pe 's/TAB/\t/g' ~/.nanorc Use Specify additional helpful options when running the editor: &prompt.user; nano -AKipwz -r 70 -T8 chapter.xml Users of &man.csh.1; can define an alias in ~/.cshrc to automate these options: alias nano "nano -AKipwz -r 70 -T8" After the alias is defined, the options will be added automatically: &prompt.user; nano chapter.xml