PageRenderTime 44ms CodeModel.GetById 18ms app.highlight 15ms RepoModel.GetById 1ms app.codeStats 1ms

/xslt/session-wordml.xsl

http://transcriptstudio4isha.googlecode.com/
Extensible Stylesheet Language Transformations | 330 lines | 318 code | 12 blank | 0 comment | 0 complexity | e63cc1d57bd804edaaa12d27718c08aa MD5 | raw file
  1<?xml version="1.0" encoding="UTF-8"?>
  2<xsl:stylesheet xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  3	<xsl:output method="xml"/>
  4	<xsl:strip-space elements="*"/>
  5 	<xsl:param name="eventPath"/>
  6	<xsl:variable name="reference" select="doc('/db/ts4isha/reference/reference.xml')/reference"/>
  7	<xsl:variable name="eventId" select="substring(/session/@id,1,14)"/>
  8	<xsl:variable name="event" select="doc($eventPath)/event"/>
  9	
 10	<xsl:template match="/">
 11		<w:document>
 12            <w:body>
 13                <w:tbl>
 14                    <w:tblPr>
 15                        <w:tblW w:w="0" w:type="auto"/>
 16						<w:tblCellSpacing w:w="20" w:type="dxa"/>
 17						<w:tblBorders>
 18                            <w:top w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
 19							<w:left w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
 20							<w:bottom w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
 21							<w:right w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
 22							<w:insideH w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
 23							<w:insideV w:val="outset" w:sz="6" w:space="0" w:color="auto"/>
 24						</w:tblBorders>
 25						<w:tblLook w:val="01E0"/>
 26					</w:tblPr>
 27					<w:tblGrid>
 28                        <w:gridCol w:w="8936"/>
 29					</w:tblGrid>
 30					<w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
 31						<w:trPr>
 32                            <w:tblCellSpacing w:w="20" w:type="dxa"/>
 33						</w:trPr>
 34						<w:tc>
 35                            <w:tcPr>
 36                                <w:tcW w:w="8856" w:type="dxa"/>
 37							</w:tcPr>
 38							<w:p w:rsidR="00BD70D3" w:rsidRPr="003451D2" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
 39								<w:pPr>
 40                                    <w:pStyle w:val="Heading1"/>
 41									<w:jc w:val="center"/>
 42									<w:rPr>
 43                                        <w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman"/>
 44									</w:rPr>
 45								</w:pPr>
 46								<w:r w:rsidRPr="003451D2">
 47									<w:rPr>
 48                                        <w:rFonts w:ascii="Times New Roman" w:hAnsi="Times New Roman"/>
 49									</w:rPr>
 50									<w:t>Isha Foundation Transcription</w:t>
 51								</w:r>
 52							</w:p>
 53							<w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63"/>
 54						</w:tc>
 55					</w:tr>
 56					<w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
 57						<w:trPr>
 58                            <w:tblCellSpacing w:w="20" w:type="dxa"/>
 59						</w:trPr>
 60						<w:tc>
 61                            <w:tcPr>
 62                                <w:tcW w:w="8856" w:type="dxa"/>
 63							</w:tcPr>
 64							<w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
 65								<w:r>
 66                                    <w:t>MEDIA SOURCE: Audio File</w:t>
 67								</w:r>
 68							</w:p>
 69							<w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00021F27">
 70								<w:r>
 71                                    <w:t>MEDIA CODE: <xsl:value-of select="string-join(//audio/@id, ', ')"/>
 72									</w:t>
 73								</w:r>
 74							</w:p>
 75						</w:tc>
 76					</w:tr>
 77					<w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
 78						<w:trPr>
 79                            <w:tblCellSpacing w:w="20" w:type="dxa"/>
 80						</w:trPr>
 81						<w:tc>
 82                            <w:tcPr>
 83                                <w:tcW w:w="8856" w:type="dxa"/>
 84							</w:tcPr>
 85							<w:p w:rsidR="00BD70D3" w:rsidRPr="004646A4" w:rsidRDefault="00BD70D3" w:rsidP="00ED43A8">
 86								<w:pPr>
 87                                    <w:tabs>
 88                                        <w:tab w:val="left" w:pos="1553"/>
 89									</w:tabs>
 90									<w:rPr>
 91                                        <w:sz w:val="28"/>
 92										<w:szCs w:val="28"/>
 93									</w:rPr>
 94								</w:pPr>
 95								<w:r>
 96                                    <w:t>EVENT: <xsl:value-of select="$reference/eventTypes/eventType[@id=$event/@type]/@name"/>
 97									</w:t>
 98								</w:r>
 99							</w:p>
100						</w:tc>
101					</w:tr>
102					<w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
103						<w:trPr>
104                            <w:tblCellSpacing w:w="20" w:type="dxa"/>
105						</w:trPr>
106						<w:tc>
107                            <w:tcPr>
108                                <w:tcW w:w="8856" w:type="dxa"/>
109							</w:tcPr>
110							<w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00021F27">
111								<w:r>
112                                    <w:t>LOCATION: <xsl:value-of select="string-join(($event/metadata/@venue, $event/metadata/@location, $event/metadata/@country), ', ')"/>  
113									</w:t>
114								</w:r>
115							</w:p>
116						</w:tc>
117					</w:tr>
118					<w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
119						<w:trPr>
120                            <w:tblCellSpacing w:w="20" w:type="dxa"/>
121						</w:trPr>
122						<w:tc>
123                            <w:tcPr>
124                                <w:tcW w:w="8856" w:type="dxa"/>
125							</w:tcPr>
126							<w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
127								<w:r>
128                                    <w:t>AUDIO CLARITY (E G F P): G</w:t>
129								</w:r>
130							</w:p>
131						</w:tc>
132					</w:tr>
133					<w:tr w:rsidR="00BD70D3" w:rsidRPr="00914051">
134						<w:trPr>
135                            <w:tblCellSpacing w:w="20" w:type="dxa"/>
136						</w:trPr>
137						<w:tc>
138                            <w:tcPr>
139                                <w:tcW w:w="8856" w:type="dxa"/>
140							</w:tcPr>
141							<w:p w:rsidR="00BD70D3" w:rsidRPr="00914051" w:rsidRDefault="00BD70D3" w:rsidP="00021F27">
142								<w:r>
143                                    <w:t>SESSION DATE: <xsl:value-of select="(session/metadata/@startAt, $event/metadata/@startAt)[1]"/>
144									</w:t>
145								</w:r>
146							</w:p>
147						</w:tc>
148					</w:tr>
149					<w:tr w:rsidR="00BD70D3">
150						<w:trPr>
151                            <w:tblCellSpacing w:w="20" w:type="dxa"/>
152						</w:trPr>
153						<w:tc>
154                            <w:tcPr>
155                                <w:tcW w:w="8856" w:type="dxa"/>
156							</w:tcPr>
157							<w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
158								<w:r>
159                                    <w:t>LANGUAGE: English</w:t>
160								</w:r>
161							</w:p>
162						</w:tc>
163					</w:tr>
164					<w:tr w:rsidR="00BD70D3">
165						<w:trPr>
166                            <w:trHeight w:val="865"/>
167							<w:tblCellSpacing w:w="20" w:type="dxa"/>
168						</w:trPr>
169						<w:tc>
170                            <w:tcPr>
171                                <w:tcW w:w="8856" w:type="dxa"/>
172							</w:tcPr>
173							<w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
174								<w:r>
175                                    <w:t>TRANSCRIBED BY: Baha (23-Jul-08)</w:t>
176								</w:r>
177							</w:p>
178							<w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
179								<w:r>
180                                    <w:t>PROOFED BY: Amit (29-Jul-08), Chitra (30-Jul-08)</w:t>
181								</w:r>
182							</w:p>
183							<w:p w:rsidR="00BD70D3" w:rsidRDefault="00BD70D3" w:rsidP="00CB5E63">
184								<w:r>
185                                    <w:t xml:space="preserve">NOTES: <xsl:value-of select="/session/metadata/notes"/>
186									</w:t>
187								</w:r>
188							</w:p>
189						</w:tc>
190					</w:tr>
191				</w:tbl>
192				
193				<w:p/>
194				
195				<w:p>
196                    <w:r>
197                        <w:t>INDEX</w:t>
198					</w:r>
199				</w:p>
200				<w:p/>
201<!--
202<xsl:for-each select="//superSegment">
203  <xsl:value-of select="./tag[@type='markupType']/@value"/>
204  <xsl:variable name="markupCategory" select="./tag[@type='markupCategory']/@value"/> 
205  <xsl:value-of select="$reference/markupCategories/markupCategoryId[@id=$markupCategory]/@name"/>
206</xsl:for-each>
207-->
208				<xsl:for-each select="//superSegment | //superContent">
209					<xsl:variable name="markupId" select="@id"/>
210					<xsl:variable name="markupType" select="tag[@type='markupType']/@value"/>
211					<xsl:variable name="markupCategory" select="tag[@type='markupCategory']/@value"/>
212					<w:p>
213                        <w:hyperlink w:history="1">
214							<xsl:attribute name="w:anchor">
215								<xsl:value-of select="$markupId"/>
216							</xsl:attribute>
217							<w:r>
218                                <w:rPr>
219                                    <w:rStyle w:val="Hyperlink"/>
220								</w:rPr>
221								<w:t>
222                                    <xsl:value-of select="$reference/markupTypes/markupType[@id = $markupType]/@name"/>
223									<xsl:if test="$markupCategory">
224										<xsl:text>: </xsl:text>
225										<xsl:value-of select="$reference/markupCategories/markupCategory[@id = $markupCategory]/@name"/>
226									</xsl:if>
227								</w:t>
228							</w:r>
229						</w:hyperlink>
230					</w:p>
231				</xsl:for-each>
232				
233				<w:p/>
234				<xsl:apply-templates select="//transcript"/>
235			
236			</w:body>
237		</w:document>
238		<!--xsl:apply-templates/-->
239	</xsl:template>
240	
241				
242	<xsl:template match="transcript">
243		<xsl:apply-templates select="segment|superSegment"/>
244	</xsl:template>
245				
246	<xsl:template match="superSegment">
247		<w:bookmarkStart w:id="0">
248			<xsl:attribute name="w:name">
249				<xsl:value-of select="./@id"/>
250			</xsl:attribute>
251		</w:bookmarkStart>
252		<xsl:apply-templates select="segment|superSegment"/>
253		<w:bookmarkEnd w:id="0"/>
254	</xsl:template>
255	
256	<!--xsl:template match="//superSegment">
257		<w:moog/>
258	</xsl:template-->
259	
260	<xsl:template match="segment">
261		<xsl:variable name="syncPoint" select="content[1]/@startId"/>
262		<xsl:if test="$syncPoint and not(preceding::segment[position() &lt; 3]/content[1]/@startId)">
263			<xsl:variable name="time" select="/session//device/audio/sync[@timeIdRef = $syncPoint]/@timecode"/>
264			<w:p>
265                <w:r>
266                    <w:t>Time <xsl:number format="1" value="floor($time div 60)"/>
267						<xsl:text>:</xsl:text>
268						<xsl:number format="01" value="$time mod 60"/>
269					</w:t>
270				</w:r>
271			</w:p>
272			<w:p/>
273		</xsl:if>
274		<w:p>
275            <xsl:if test="(position() = 1) or (preceding::segment[1]/@speaker and not(@speaker)) or (not(preceding::segment[1]/@speaker) and @speaker) or (preceding::segment[1]/@speaker != @speaker)">
276				<w:r>
277                    <w:rPr>
278                        <w:b/>
279					</w:rPr>
280					<w:t>
281                        <xsl:attribute name="xml:space">preserve</xsl:attribute>
282						<xsl:choose>
283                            <xsl:when test="@speaker">
284								<xsl:value-of select="normalize-space(concat(upper-case(substring(@speaker,1,1)), substring(@speaker,2)))"/>
285								<xsl:text>: </xsl:text>
286							</xsl:when>
287							<xsl:otherwise>
288                                <xsl:text>Sadhguru: </xsl:text>
289							</xsl:otherwise>
290						</xsl:choose>
291					</w:t>
292				</w:r>
293			</xsl:if>
294			<xsl:apply-templates select="content|superContent"/>
295		</w:p>
296		<w:p/>
297	</xsl:template>
298	
299	<xsl:template match="superContent">
300		<w:bookmarkStart w:id="0">
301			<xsl:attribute name="w:name">
302				<xsl:value-of select="./@id"/>
303			</xsl:attribute>
304		</w:bookmarkStart>
305		<xsl:apply-templates select="content|superContent"/>
306		<w:bookmarkEnd w:id="0"/>
307	</xsl:template>
308	
309	<xsl:template match="content">
310		<w:r>
311            <xsl:if test="@emphasis | @spokenLanguage">
312				<w:rPr>
313                    <xsl:if test="@emphasis='true'">
314						<w:i/>
315					</xsl:if>
316					<xsl:if test="@spokenLanguage='tamil'">
317						<w:color w:val="00B0F0"/>
318					</xsl:if>
319				</w:rPr>
320			</xsl:if>
321			<w:t>
322                <xsl:attribute name="xml:space">preserve</xsl:attribute>
323				<xsl:value-of select="normalize-space(.)"/>
324				<xsl:if test="position() &lt; last()">
325					<xsl:text> </xsl:text>
326				</xsl:if>
327			</w:t>
328		</w:r>
329	</xsl:template>
330</xsl:stylesheet>