<?xml version="1.0" encoding="UTF-8"?>\r
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\r
<!-- ********************************************************************\r
- $Id: topology_cheatsheet.html.xsl 6130 2010-10-26 14:47:57Z robe $\r
+ $Id$\r
********************************************************************\r
Copyright 2011, Regina Obe\r
License: BSD\r
- Purpose: This is an xsl transform that generates PostgreSQL COMMENT ON FUNCTION ddl\r
- statements from postgis xml doc reference\r
+ Purpose: This is an xsl transform that generates PostGIS flash cards\r
******************************************************************** -->\r
<xsl:output method="text" />\r
<xsl:variable name='postgis_version'>2.0</xsl:variable>\r
\r
<xsl:template match="/">\r
<xsl:text><![CDATA[<html><head><title>Post GIS PostGIS Playing Cards</title>\r
- <style type="text/css">\r
-<!--\r
-body {\r
+<style>body {\r
font-family: Arial, sans-serif;\r
font-size: 8.5pt;\r
}\r
-\r
-.comment {font-size:x-small;color:green;font-family:"courier new"}\r
-.notes {font-size:x-small;color:#dd1111;font-weight:500;font-family:verdana}\r
-\r
- ]]></xsl:text>\r
-\r
-<xsl:text><![CDATA[ \r
+ \r
.func {position:relative;left:10px;top:20px;font-weight: 600;font-size:10pt;text-align:center; padding: 1px}\r
.func_descrip {font-size: 8pt;text-align:left; padding:10px 5px 15px 20px;}\r
-#divoutter {width:850px }\r
+#divoutter {width:800px; vertical-align: center }\r
.card_front {\r
background-color: #eee;\r
- width:200px; height: 250px;\r
- float:left;border-bottom:thin dotted #ff0000;border-top:thin dotted #ff0000;\r
+ width:334px; height: 148px;\r
+ float:left;border-bottom:thin dotted #ff0000;\r
+ border-left:thin dotted #ff0000;\r
+ border-top:thin dotted #ff0000;\r
}\r
\r
.card_back {\r
background-color: #fff;\r
- width:200px; height: 250px;\r
- float:left; border-top:thin dotted #ff0000;border-bottom:thin dotted #ff0000;border-right:thin dotted #ff0000;\r
+ width:334px; height: 148px;\r
+ float:left; border-top:thin dotted #ff0000;\r
+ border-bottom:thin solid #ff0000;\r
+ border-right:thin dotted #ff0000;\r
}\r
+.card_separator {height:9px;width:668px;clear:both;border-top:thin #00ff00}\r
\r
h1 {\r
margin: 0px;\r
font-size: 14pt;\r
}\r
\r
--->\r
</style>\r
</head><body><h1 style='text-align:center'>Post GIS ]]></xsl:text> <xsl:text><![CDATA[ Day 2011 Commemorative Playing Cards</h1>\r
- <a href="http://www.postgis.org"><img src='images/ccbysa.png' /></a><a href="http://www.postgis.org">http://www.postgis.org</a>\r
+ <a href="http://creativecommons.org/licenses/by-sa/3.0/"><img src='images/ccbysa.png' /></a><a href="http://www.postgis.org">http://www.postgis.org</a>\r
<p>Celebrate this Post GIS day with these versatile Post GIS day commemorative playing cards. The number of games and fun-filled hours you\r
can have with these cards is priceless. Here is a small listing of the infinite number of games you can play with Post GIS cards:</p>\r
<ul><li><b>Name that thing</b> In this game you have the descriptions face up and have the opponent guess the name of the function, type, or operator.</li>\r
- <li><b>What does it do?</b> In this game you have the name of the thing face up and have the opponent describe what the thing does or is for </li> \r
- <li><b>Post GIS war game</b> This game requires no knowledge of PostGIS what-so-ever. In this game, you play with the descriptions face up. Even your kids will like this game, and may even get tricked into learning how to use PostGIS.\r
- There are two joker cards -- the What Is Post GIS and What does Post GIS. Any player that is dealt either of these cards wins - period. For other cards the order of precendence is: \r
+ <li><b>What does it do?</b> In this game you have the name of the thing face up and have the opponent describe what the thing does or is for. Your friends and even\r
+ strangers you tricked into playing this game will be amazed at your mastery of the 400 someodd functions PostGIS provides. <em>To be able to exercise all 400 someodd functions, you need to be running PostGIS 2.0+</em></li> \r
+ <li><b>Post GIS war game</b> This game requires no knowledge of PostGIS what-so-ever. In this game, you play with the descriptions face up. Even your kids will like this game, and may learn how to use PostGIS better than you.\r
+ There are two joker cards -- the "What Is Post GIS?" and "What does Post GIS?". Any player that is dealt either of these cards wins - period. For other cards the order of precendence is: \r
<sup>1</sup> - Is super and beats anything else except another <sup>1</sup> or joker card. In event of multiple <sup>1</sup>, the one that happens alphabetically first trumps the others. Symbols always trump letters. <br />\r
<sup>2</sup> - Second favorite, alphabetical rules apply (is beaten by a joker, <sup>1</sup>) <br />\r
<sup>mm</sup> - third highest ranking <br />\r
All other cards precedence by alphabetical order.</li>\r
<li><b>Post GIS in a language I don't understand</b> To celebrate the ubiquity of PostGIS, you can create Post GIS playing cards in a language\r
- you don't understand. Here is what you do. Go to <a href="http://translate.google.com">http://translate.google.com</a> and paste in the URL to this page in the first text box (make sure it is set to English),\r
- in the <b>To:</b> drop down, pick a language you do not know, but preferably you have friends that speak that can laugh at your grammar and pronounciation. In no time you'll be able to impress your friends living far away with your command of their language.\r
+ you don't understand. Here is what you do. Go to <a href="http://translate.google.com" target="_blank">http://translate.google.com</a> and paste in the URL to this page in the first text box (make sure it is set to English),\r
+ in the <b>To:</b> drop down, pick a language you do not know, but preferably you have friends that speak that language and can laugh at your grammar and pronounciation. In no time you'll be able to impress your friends living far far away with your command of their language.\r
+ <b><span style='color:red'>Warning</span> because of the great number of functions PostGIS has to offer, Google (or any other translator) may refuse to translate all cards leaving you with a mix of some other language and English cards to sort out.</b>\r
</li> \r
- <li><b>Post GIS in a language I do understand</b> Similar to the I don't understand game, except you pick a non-english language that you do understand. Enjoy many moments of laughter reading machine generated translations that are sorta accurate but often hysterical.\r
+ <li><b>Post GIS in a language I do understand</b> Similar to the I don't understand game, except you pick a non-english language that you do understand. Enjoy many moments of laughter reading machine generated translations that are sorta accurate but often comical.\r
</li>\r
+ <li>Invent your own Post GIS card game. The possiblities are only limited by your imagination.</li>\r
</ul>\r
- <div id="divoutter"><div class='card_front'><div class='func'>WHAT IS POST GIS?</div></div><div class='card_back'><div class='func'>POSTGIS<br /><img src='images/PostGIS_logo.png' style='width:150px;height:150px' /></div></div>\r
- <div class='card_front'><div class='func'>WHAT DOES POST GIS?</div></div><div class='card_back'><div class='func'>POSTGIS<br /><img src='images/PostGIS_logo.png' style='width:150px;height:150px'/></div></div>]]></xsl:text>\r
+ <p style='page-break-before:always' />\r
+ <div id="divoutter"><div class='card_front'><div class='func'>WHAT IS POST GIS?</div></div><div class='card_back'><div class='func'>POSTGIS<br /><img src='images/PostGIS_logo.png' style='width:100px;height:100px' /></div></div>\r
+ <div class='card_separator'> </div>\r
+ <div class='card_front'><div class='func'>WHAT DOES POST GIS?</div></div><div class='card_back'><div class='func'>POSTGIS<br /><img src='images/PostGIS_logo.png' style='width:100px;height:100px'/></div></div>\r
+ <div class='card_separator'> </div>]]></xsl:text>\r
<xsl:apply-templates select="/book/chapter//refentry" />\r
<xsl:text><![CDATA[</div></body></html>]]></xsl:text>\r
</xsl:template>\r
<xsl:if test="contains(.,'GEOS >= 3.3')"><![CDATA[<sup>g3.3</sup> ]]></xsl:if>\r
<xsl:if test="contains(.,'This function supports 3d')"><![CDATA[<sup>3d</sup> ]]></xsl:if>\r
\r
- <![CDATA[</div></div><div class='card_back'><div class='func_descrip'>]]><xsl:value-of select="$plaindescr2" /><![CDATA[</div></div>]]>\r
+ <![CDATA[</div></div><div class='card_back'><div class='func_descrip'>]]><xsl:value-of select="$plaindescr2" /><![CDATA[</div></div>\r
+ <div class="card_separator"> </div>]]>\r
</xsl:template>\r
\r
<!--General replace macro hack to make up for the fact xsl 1.0 does not have a built in one. \r