mirror of
				https://gitlab.freedesktop.org/wayland/wayland.git
				synced 2025-11-03 09:01:42 -05:00 
			
		
		
		
	Generate the docbook description for the protocol from wayland.xml
Convert the wayland.xml protocol description to a docbook-compatible format and hook it up to the publican sources. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
		
							parent
							
								
									c3d56a05c6
								
							
						
					
					
						commit
						a678fd53e1
					
				
					 4 changed files with 122 additions and 2 deletions
				
			
		
							
								
								
									
										1
									
								
								doc/Wayland/.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								doc/Wayland/.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -1 +1,2 @@
 | 
			
		|||
Wayland
 | 
			
		||||
en-US/Protocol.xml
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,9 +17,13 @@ publican_sources = \
 | 
			
		|||
	$(srcdir)/en-US/images/x-architecture.png
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Wayland: publican.cfg $(publican_sources)
 | 
			
		||||
Wayland: docbook-xsl publican.cfg $(publican_sources)
 | 
			
		||||
	publican build --lang en-US --format html,pdf
 | 
			
		||||
 | 
			
		||||
# This must be run befor the publican run
 | 
			
		||||
docbook-xsl: $(top_srcdir)/protocol/wayland.xml protocol-to-docbook.xsl
 | 
			
		||||
	$(AM_V_GEN)$(XSLTPROC) protocol-to-docbook.xsl $(top_srcdir)/protocol/wayland.xml > $(srcdir)/en-US/Protocol.xml
 | 
			
		||||
 | 
			
		||||
clean-local:
 | 
			
		||||
	-rm -rf Wayland
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -31,5 +35,6 @@ uninstall-local:
 | 
			
		|||
	-rm -rf $(DESTDIR)$(docdir)/Wayland/*
 | 
			
		||||
	-rmdir $(DESTDIR)$(docdir)/Wayland
 | 
			
		||||
 | 
			
		||||
EXTRA_DIST = $(publican_sources) publican.cfg
 | 
			
		||||
EXTRA_DIST = $(publican_sources) publican.cfg protocol-to-docbook.xsl
 | 
			
		||||
 | 
			
		||||
endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,6 +10,7 @@
 | 
			
		|||
	<xi:include href="Chapter.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 | 
			
		||||
	-->
 | 
			
		||||
	<xi:include href="Architecture.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 | 
			
		||||
	<xi:include href="Protocol.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 | 
			
		||||
	<!--
 | 
			
		||||
	<xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
 | 
			
		||||
	-->
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										113
									
								
								doc/Wayland/protocol-to-docbook.xsl
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								doc/Wayland/protocol-to-docbook.xsl
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,113 @@
 | 
			
		|||
<?xml version="1.0" ?>
 | 
			
		||||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 | 
			
		||||
<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
 | 
			
		||||
<xsl:output method="xml" encoding="UTF-8" indent="yes" />
 | 
			
		||||
 | 
			
		||||
<xsl:template match="/">
 | 
			
		||||
  <!-- insert docbook's DOCTYPE blurb -->
 | 
			
		||||
    <xsl:text disable-output-escaping = "yes"><![CDATA[
 | 
			
		||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 | 
			
		||||
  <!ENTITY % BOOK_ENTITIES SYSTEM "Wayland.ent">
 | 
			
		||||
%BOOK_ENTITIES;
 | 
			
		||||
]>
 | 
			
		||||
]]></xsl:text>
 | 
			
		||||
 | 
			
		||||
  <appendix id="appe-Wayland-Protocol">
 | 
			
		||||
    <title>Wayland Protocol Specification</title>
 | 
			
		||||
    <xsl:apply-templates select="protocol/copyright" />
 | 
			
		||||
 | 
			
		||||
    <xsl:apply-templates select="protocol/interface" />
 | 
			
		||||
  </appendix>
 | 
			
		||||
</xsl:template>
 | 
			
		||||
 | 
			
		||||
<!-- Copyright blurb -->
 | 
			
		||||
<xsl:template match="copyright">
 | 
			
		||||
  <para>
 | 
			
		||||
    <literallayout>
 | 
			
		||||
      <xsl:value-of select="." disable-output-escaping="yes"/>
 | 
			
		||||
    </literallayout>
 | 
			
		||||
  </para>
 | 
			
		||||
</xsl:template>
 | 
			
		||||
 | 
			
		||||
<!-- Interface descriptions -->
 | 
			
		||||
<xsl:template match="interface" >
 | 
			
		||||
  <section>
 | 
			
		||||
    <xsl:attribute name="id">protocol-<xsl:value-of select="name()"/>-<xsl:value-of select="@name" />
 | 
			
		||||
    </xsl:attribute>
 | 
			
		||||
    <title>
 | 
			
		||||
      <xsl:value-of select="@name" />
 | 
			
		||||
      <!-- only show summary if it exists -->
 | 
			
		||||
      <xsl:if test="description/@summary">
 | 
			
		||||
	- <xsl:value-of select="description/@summary" />
 | 
			
		||||
      </xsl:if>
 | 
			
		||||
    </title>
 | 
			
		||||
    <para>
 | 
			
		||||
      <xsl:value-of select="description"/>
 | 
			
		||||
    </para>
 | 
			
		||||
    <xsl:if test="request">
 | 
			
		||||
      <section>
 | 
			
		||||
        <title>Requests provided by <xsl:value-of select="@name" /></title>
 | 
			
		||||
        <xsl:apply-templates select="request" />
 | 
			
		||||
      </section>
 | 
			
		||||
    </xsl:if>
 | 
			
		||||
    <xsl:if test="event">
 | 
			
		||||
      <section>
 | 
			
		||||
        <title>Events provided by <xsl:value-of select="@name" /> events</title>
 | 
			
		||||
        <xsl:apply-templates select="event" />
 | 
			
		||||
      </section>
 | 
			
		||||
    </xsl:if>
 | 
			
		||||
    <xsl:if test="enum">
 | 
			
		||||
      <section>
 | 
			
		||||
        <title>Enums provided by <xsl:value-of select="@name" /> enums</title>
 | 
			
		||||
      <xsl:apply-templates select="enum" />
 | 
			
		||||
      </section>
 | 
			
		||||
    </xsl:if>
 | 
			
		||||
  </section>
 | 
			
		||||
</xsl:template>
 | 
			
		||||
 | 
			
		||||
<!-- table contents for request/event arguments or enum values -->
 | 
			
		||||
<xsl:template match="arg|entry">
 | 
			
		||||
  <varlistentry>
 | 
			
		||||
    <term><xsl:value-of select="@name"/></term>
 | 
			
		||||
    <listitem>
 | 
			
		||||
        <xsl:if test="name() = 'arg'" >
 | 
			
		||||
          <para>Type: <xsl:value-of select="@type"/></para>
 | 
			
		||||
        </xsl:if>
 | 
			
		||||
        <xsl:if test="name() = 'entry'" >
 | 
			
		||||
          <para>Value: <xsl:value-of select="@value"/></para>
 | 
			
		||||
        </xsl:if>
 | 
			
		||||
      <para>
 | 
			
		||||
        <xsl:value-of select="@summary"/>
 | 
			
		||||
      </para>
 | 
			
		||||
    </listitem>
 | 
			
		||||
  </varlistentry>
 | 
			
		||||
</xsl:template>
 | 
			
		||||
 | 
			
		||||
<!-- Request/event list -->
 | 
			
		||||
<xsl:template match="request|event|enum">
 | 
			
		||||
  <section>
 | 
			
		||||
    <xsl:attribute name="id">protocol-interface-<xsl:value-of select="../@name"/>-<xsl:value-of select="name()"/>-<xsl:value-of select="@name"/></xsl:attribute>
 | 
			
		||||
    <title>
 | 
			
		||||
      <xsl:value-of select="../@name"/>::<xsl:value-of select="@name" />
 | 
			
		||||
      <xsl:if test="description/@summary">
 | 
			
		||||
        - <xsl:value-of select="description/@summary" />
 | 
			
		||||
      </xsl:if>
 | 
			
		||||
    </title>
 | 
			
		||||
    <para><xsl:value-of select="description"/></para>
 | 
			
		||||
    <xsl:if test="arg">
 | 
			
		||||
      <variablelist>
 | 
			
		||||
        <title><xsl:value-of select="../@name"/>::<xsl:value-of select="@name" /> arguments</title>
 | 
			
		||||
        <xsl:apply-templates select="arg"/>
 | 
			
		||||
      </variablelist>
 | 
			
		||||
    </xsl:if>
 | 
			
		||||
    <xsl:if test="entry">
 | 
			
		||||
      <variablelist>
 | 
			
		||||
        <title><xsl:value-of select="../@name"/>::<xsl:value-of select="@name" /> values</title>
 | 
			
		||||
          <xsl:apply-templates select="entry"/>
 | 
			
		||||
      </variablelist>
 | 
			
		||||
    </xsl:if>
 | 
			
		||||
  </section>
 | 
			
		||||
</xsl:template>
 | 
			
		||||
</xsl:stylesheet>
 | 
			
		||||
 | 
			
		||||
<!-- vim: set expandtab shiftwidth=2: -->
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue