masonyodl.yo 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. COMMENT(-- $Id: masonyodl.yo,v 1.2 1998/04/20 07:24:20 mason Exp $ --)
  2. COMMENT(-----------------------------------------------------------------------
  3. -- We want more functionality and some better layout
  4. -- proto changes:
  5. -- starttable(nColumns)(Alignment)(borderwidth)
  6. ------------------------------------------------------------------------------)
  7. NEWCOUNTER(RRindentlevel)
  8. NEWCOUNTER(RRnl)
  9. SETCOUNTER(RRindentlevel)(0)
  10. \
  11. DEFINEMACRO(nltxt)(0)(\
  12. IFZERO(RRnl)()( ADDTOCOUNTER(RRnl)(-1)nltxt()))
  13. \
  14. UNDEFINEMACRO(XXnl)
  15. DEFINEMACRO(XXnl)(0)(\
  16. NOTRANS(
  17. )\
  18. whentxt(SETCOUNTER(RRnl)(RRindentlevel)nltxt()))
  19. \
  20. DEFINEMACRO(P)(0)(\
  21. SETCOUNTER(RRnl)(0)\
  22. whenhtml(SETCOUNTER(RRnl)(1)htmlcommand(<p>))\
  23. IFZERO(RRnl)(nl())())
  24. \
  25. UNDEFINEMACRO(starttable)
  26. DEFINEMACRO(starttable)(3)(\
  27. SETCOUNTER(XXtablewidth)(ARG1)\
  28. whenhtml(IFZERO(ARG3)(htmlcommand(<table>))\
  29. (htmlcommand(<table border=ARG3>))XXnl())\
  30. whenlatex(latexcommand(\begin{tabular}{)ARG2+latexcommand(}))\
  31. whenman(roffcmd(.TS)()()())\
  32. whenman(IFZERO(ARG3)(roffcmd(tab(`);)()()())\
  33. (roffcmd(allbox,tab(`);)()()()))\
  34. whenman(ARG2 NOTRANS(.
  35. ))\
  36. whenms(roffcmd(.TS)()()())\
  37. whenms(IFZERO(ARG3)(roffcmd(tab(`);)()()())\
  38. (roffcmd(allbox,tab(`);)()()()))\
  39. whenms(ARG2+mscommand(.))\
  40. SETCOUNTER(XXtablewidth)(ARG1)\
  41. SETCOUNTER(XXparcounter)(0))
  42. COMMENT( For HTML, we'll need <table>, for
  43. LaTeX we'll need \begin{tabular}{alignment}. Also, we don't want
  44. paragraph delimiters.)
  45. \
  46. UNDEFINEMACRO(cell)
  47. DEFINEMACRO(cell)(1)(\
  48. ADDTOCOUNTER(XXtableline)(1)\
  49. whenhtml(htmlcommand(<td>) ARG1 \
  50. IFZERO(XXcellcounter)\
  51. (htmlcommand(<br>))\
  52. ()\
  53. htmlcommand(</td>) XXnl())\
  54. whenlatex(ARG1 \
  55. IFZERO(XXcellcounter)\
  56. ()(latexcommand( & )))\
  57. whentxt( ARG1 )\
  58. whenms( ARG1 )\
  59. IFZERO(XXcellcounter)\
  60. ()\
  61. (mscommand(`\))\
  62. whenman( ARG1 )\
  63. IFZERO(XXcellcounter)\
  64. ()\
  65. (mancommand(`\))\
  66. ADDTOCOUNTER(XXcellcounter)(-1))
  67. COMMENT(For HTML we need:
  68. <td> text </td>, so that's fairly easy. If we're already at the last
  69. cell, we need <td> text <br></td>.
  70. For LaTeX: we need text followed by &, unless
  71. we're already at the last cell 'cuz in that case we need only text.
  72. Also we need to decrement the cell counter..)
  73. \
  74. UNDEFINEMACRO(cells)
  75. DEFINEMACRO(cells)(2)(\
  76. ADDTOCOUNTER(XXtableline)(ARG1)\
  77. ADDTOCOUNTER(XXcellcounter)(-ARG1)\
  78. ADDTOCOUNTER(XXcellcounter)(1)\
  79. whenhtml(htmlcommand(<td colspan=ARG1 align=center>) ARG2 \
  80. IFZERO(XXcellcounter)\
  81. (htmlcommand(<br>))\
  82. ()\
  83. htmlcommand(</td>) XXnl())\
  84. whenlatex(\
  85. latexcommand(\multicolumn{)ARG1+latexcommand(}{c}{)ARG2+latexcommand(})\
  86. IFZERO(XXcellcounter)\
  87. ()(latexcommand( & )))\
  88. whentxt( ARG1 )\
  89. whenms( ARG1 )\
  90. IFZERO(XXcellcounter)\
  91. ()\
  92. (mscommand(`\))\
  93. whenman( ARG1 )\
  94. IFZERO(XXcellcounter)\
  95. ()\
  96. (mancommand(`\))\
  97. ADDTOCOUNTER(XXcellcounter)(-1))
  98. \
  99. DEFINEMACRO(indent)(1)(\
  100. whenhtml(htmlcommand(<ul>)ARG1+htmlcommand(</ul>))\
  101. whentxt(ADDTOCOUNTER(RRindentlevel)(4)ARG1+ADDTOCOUNTER(RRindentlevel)(-4))\
  102. whenman(roffcmd(.RS)()()()roffcmd(.IP)()()()ARG1+roffcmd(.RE)()()())\
  103. whenms())
  104. \
  105. DEFINEMACRO(startdl)(0)(\
  106. whenhtml(htmlcommand(<dl>))\
  107. whentxt(ADDTOCOUNTER(RRindentlevel)(4))\
  108. whenman(startdit()))
  109. \
  110. DEFINEMACRO(enddl)(0)(\
  111. whenhtml(htmlcommand(</dl>))\
  112. whentxt(ADDTOCOUNTER(RRindentlevel)(-4))\
  113. whenman(enddit()))
  114. \
  115. DEFINEMACRO(dl)(2)(\
  116. whenhtml(htmlcommand(<dt>)ARG1+htmlcommand(</dt><dd>)\
  117. ARG2+htmlcommand(</dd>))\
  118. whentxt(ADDTOCOUNTER(RRindentlevel)(2)dit(ARG1)\
  119. ADDTOCOUNTER(RRindentlevel)(2)nl()\
  120. ARG2+ADDTOCOUNTER(RRindentlevel)(-4))\
  121. whenman(dit(ARG1)ARG2))
  122. \
  123. DEFINEMACRO(manpageauthors)(0)(\
  124. manpagesection(AUTHORS)\
  125. DEFINESYMBOL(XXmanpageAuthor))