File: howto-php.dsl.in

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (146 lines) | stat: -rw-r--r-- 3,661 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
<!ENTITY docbook.dsl SYSTEM "@DOCBOOK_HTML@" CDATA DSSSL>
<!ENTITY html-common.dsl SYSTEM "@srcdir@/html-common.dsl">
<!ENTITY version.dsl SYSTEM "@srcdir@/version.dsl">
<!-- these files are generated, so they are not in @srcdir@ -->
<!ENTITY html-locale.dsl SYSTEM "html-locale.dsl">
<!ENTITY common.dsl SYSTEM "common.dsl">
]>

<!--

  $Id: howto-php.dsl.in,v 1.5 2005/01/21 18:06:59 nlopess Exp $

  HTML-specific stylesheet customization for the PHPDOC howto.

-->

<style-sheet>
<style-specification id="docbook-php-html" use="docbook">
<style-specification-body>

(define %html-ext% ".php")
(define %output-dir% "howto/php")

(define %generate-article-toc%
  ;; Should a Table of Contents be produced for Articles?
  #t)

;; Uncommented, because generates a warning
;;(define (toc-depth nd)
;;  2)

(define %section-autolabel%
  ;; Are sections enumerated?
  #t)
  
;; Retrieves a node's title from the XML source. Parameters are
;; the current node and title element's name (unused)
(define (docweb-node-title #!optional (nd (current-node)) (title-elem "title"))
	(let*
		(
			(preferred-title-node
				(cond
					;; For "refentry"s search for the first (and only one)
					;; "refname" from the children list of "refnamediv" childrens.
					(
						(equal? (gi nd) "refentry")
							(node-list-first
								(select-elements
									(children
										(select-elements (children nd) "refnamediv")
									)
									"refname"
								)
							)
						)
					;; For other nodes, just select the first children node
					(else
						(node-list-first
							(select-elements (children nd) title-elem)
						)
					)
				)
			)
			;; The title node is the preferred title node, or if
			;; it cannot be find, then then "title" children
			(title-node
				(if (node-list-empty? preferred-title-node)
					(select-elements (children nd) "title")
					preferred-title-node
				)
			)
		)
		(data title-node)
	)
)

;; Quotes a string to be inserted to a single quoted string
(define (docweb-quote str)
	(string-replace str "'" "\\'")
)

;; Prints out a PHP file header. Parameter is the current node (unused)
(define (docweb-header #!optional (nd (current-node)))
	(php-code
		(string-append
			newline
			"require_once dirname(__FILE__) . '/../../include/init.inc.php';" newline
			"echo site_header('" (docweb-quote (docweb-node-title nd)) "');" newline
		)
	)
)

;; Prints out manual footer PHP code. Parameter is the current node (unused)
(define (docweb-footer #!optional (nd (current-node)))
	(php-code
		(string-append
			"echo site_footer();" newline
		)
	)
)

;; Defines the format of all the output files
;; generated for phpweb display. Parameters are the
;; title sequence and the body sequence.
(define (html-document title-sosofo body-sosofo)
	(let*
		(
			(prev         (prev-chunk-element))
			(next         (next-chunk-element))
			(prevm        (prev-major-component-chunk-element))
			(nextm        (next-major-component-chunk-element))
			(doc-sosofo 
				(if (or (chunk?) (node-list=? (current-node) (sgml-root-element)))
					(make sequence
						(docweb-header (current-node))
						body-sosofo
						(footer-navigation (current-node) (list prev next prevm nextm))
						(docweb-footer (current-node))
					)
					body-sosofo
				)
			)
		)
		(if (chunk?)
			(make
				entity
				system-id: (html-entity-file (html-file))
				doc-sosofo
			)
			doc-sosofo
		)
	)
)

&html-common.dsl;
&html-locale.dsl;
&common.dsl;
&version.dsl;

</style-specification-body>
</style-specification>

<external-specification id="docbook" document="docbook.dsl">

</style-sheet>