[docs] local makefiles improving

Oleg A. Paraschenko olpa на xmlhack.ru
Вс Ноя 16 17:31:35 MSK 2003


  Всем привет,

  после обновления основных make-файлов, пришла очередь обновлять
локальные make-файлы. И тут обнаружилась серия проблем.

--

olinks

  тема для отдельного обсуждения

--

"$DOCS_ROOT/alt/Makefile"

  В этом make-файле присутствуют такие цели как "drop-dtd". А xml-файл
использует сущности для вставки других xml-фрагментов. Я так думаю, что
это пережиток прошлого, когда ешё не использовались xinclude.

  Привести xml-файлы и make-файл к тому виду, который используется во всей
остальной документации?

--

"$DOCS_ROOT/junior/Makefile"

  Сразу после сборки документа с помощью xinclude, выполняются строковые
замены:

  subst 's/<book/<section/' $(XML_TUNED).1
  subst 's/<\/book/<\/section/' $(XML_TUNED).1
  subst 's/<part/<section/' $(XML_TUNED).1
  subst 's/<\/part/<\/section/' $(XML_TUNED).1
  subst 's/<chapter/<section/' $(XML_TUNED).1
  subst 's/<\/chapter/<\/section/' $(XML_TUNED).1
  subst 's/<emphasis>Master 2.2<\/emphasis>/<emphasis>Junior
2.2<\/emphasis>/g' $(XML_TUNED).1

  Думаю, что надо:

* первые шесть "subst" заменить на "ARRANGE_PARAMS" по аналогии с
  остальными книжками;
* с последним "subst" несколько сложнее:
  + надо убедиться, что после выполнения xinclude нет названий
    дистрибутивов, а есть только "<alt:distro />";
  + что-то ещё сделать, чтобы "<alt:distro />" превращался в
    "<emphasis>Junior 2.2<\/emphasis>". Посмотрю в документации и в
    архивах.

  Делать?


  Кстати, мне кажется, что этот каталог "$DOCS_ROOT/junior" должен
называться "$DOCS_ROOT/books/junior-2.2". А ведь ещё есть
"$DOCS_ROOT/books/junior-2.2-new". Может ли кто-нибудь объяснить что к
чему? А реально ли навести в этом порядок?

--

  Некоторые документы содержат ошибки, иногда фатальные. Что делать в
таких случаях:

* Писать в багзиллу;
* писать в багзиллу и рассылку;
* исправлять и писать об этом в рассылку?

--

  Если никто не против, то я добавлю в корневой make-файл (который в
$DOCS_ROOT) такие цели:

* make deep-clean;
* make deep-check;
* make deep-all.

  При вызове этих целей, будут находиться все make-файлы и для каждого из
них выполняться "make clean", "make check" или "make all". Весь процесс
(вывод в stdout и stderr) будет протоколироваться. Это позволит проверять
формальную правильность документации (соответствие dtd, наличие картинок).

--

  Если нет возражений, я изменил код для зеркалирования PostScript. Было:

421 0 translate
-1 1 scale

  стало:

currentpagedevice /PageSize get 0 get 0 translate -1 1 scale

  Новая версия работает с любым размером листа, а не только с a5.
Комментарии автора ("Andrey Micheev" <listener на mail.ru>):

<quote>
пояснение
currentpagedevice - словарь с параметрами страницы (устройства
страничного)/PageSize get - берёт из указанного словаря параметр, который
есть массив 0 get - берёт из упомянутого массива нулевой (первый то бишь -
это ширина страницы) элемент и помещает его в вершину стека 0 - в стеке
уже есть число, равное ширине страницы, теперь туда заносим ноль - теперь
в стеке два числа, и на них действуем оператором... translate - переносим
начало координат куда надо-1 1 scale - делаем двумерное масштабирование
</quote>

--



-- 
Oleg 



Подробная информация о списке рассылки docs