[yelp-xsl] mal2html-gloss: Added basic inline gloss:term refs



commit 1bdece7491a48c577f4a96dad4da13f1fb49adc1
Author: Shaun McCance <shaunm gnome org>
Date:   Mon Jul 11 15:34:30 2011 -0400

    mal2html-gloss: Added basic inline gloss:term refs

 xslt/mallard/html/mal2html-gloss.xsl |   44 ++++++++++++++++++++++++++++++++++
 xslt/mallard/html/mal2html-page.xsl  |   22 +++++++++++++++++
 2 files changed, 66 insertions(+), 0 deletions(-)
---
diff --git a/xslt/mallard/html/mal2html-gloss.xsl b/xslt/mallard/html/mal2html-gloss.xsl
index e196698..4d31021 100644
--- a/xslt/mallard/html/mal2html-gloss.xsl
+++ b/xslt/mallard/html/mal2html-gloss.xsl
@@ -99,4 +99,48 @@ include a link to their defining page.
   </xsl:if>
 </xsl:template>
 
+<xsl:template mode="mal2html.inline.mode" match="gloss:term">
+  <xsl:variable name="node" select="."/>
+  <span class="gloss-term">
+    <xsl:call-template name="html.lang.attrs"/>
+    <xsl:apply-templates mode="mal2html.inline.mode"/>
+    <xsl:for-each select="$mal.cache">
+      <xsl:variable name="terms" select="key('mal.gloss.key', $node/@ref)"/>
+      <xsl:for-each select="$terms/mal:info/mal:desc[1]">
+        <span class="gloss-desc">
+          <xsl:apply-templates mode="mal2html.inline.mode"/>
+        </span>
+      </xsl:for-each>
+    </xsl:for-each>
+  </span>
+</xsl:template>
+
+
+<!--**==========================================================================
+mal2html.gloss.js
+
+REMARK: FIXME
+-->
+<xsl:template name="mal2html.gloss.js">
+<xsl:text><![CDATA[
+$(document).ready(function () {
+  $('span.gloss-term').hover(
+    function () {
+      var top = $(this).offset().top + $(this).height() + 1;
+      var left = $(this).offset().left;
+      var desc = $(this).children('span.gloss-desc');
+      var cnt = $(this).closest('div.contents');
+      var diff = cnt.offset().left + cnt.width() - desc.width() - 4;
+      if (left > diff)
+        left = diff;
+      desc.css({'top': top + 'px', 'left': left + 'px'}).fadeIn('slow');
+    },
+    function () {
+      $(this).children('span.gloss-desc').fadeOut('fast');
+    }
+  );
+});
+]]></xsl:text>
+</xsl:template>
+
 </xsl:stylesheet>
diff --git a/xslt/mallard/html/mal2html-page.xsl b/xslt/mallard/html/mal2html-page.xsl
index 0a6b0ac..1a52ee0 100644
--- a/xslt/mallard/html/mal2html-page.xsl
+++ b/xslt/mallard/html/mal2html-page.xsl
@@ -801,6 +801,27 @@ dd.gloss-def {
     <xsl:value-of select="$color.gray_border"/><xsl:text>;
   padding-</xsl:text><xsl:value-of select="$left"/><xsl:text>: 1em;
 }
+span.gloss-term {
+  border-bottom: dashed 1px </xsl:text>
+    <xsl:value-of select="$color.blue_border"/><xsl:text>;
+}
+span.gloss-desc {
+  display: none;
+  position: absolute;
+  margin: 0;
+  padding: 0.2em 0.5em 0.2em 0.5em;
+  max-width: 24em;
+  background-color: </xsl:text>
+    <xsl:value-of select="$color.yellow_background"/><xsl:text>;
+  border: solid 1px </xsl:text>
+    <xsl:value-of select="$color.yellow_border"/><xsl:text>;
+  -moz-box-shadow: 2px 2px 4px </xsl:text>
+    <xsl:value-of select="$color.gray_border"/><xsl:text>;
+  -webkit-box-shadow: 2px 2px 4px </xsl:text>
+    <xsl:value-of select="$color.gray_border"/><xsl:text>;
+  box-shadow: 2px 2px 4px </xsl:text>
+    <xsl:value-of select="$color.gray_border"/><xsl:text>;
+}
 </xsl:text>
 <xsl:if test="$mal2html.editor_mode">
 <xsl:text>
@@ -839,6 +860,7 @@ span.status-stub, span.status-draft, span.status-incomplete, span.status-outdate
 <!--%# html.js.mode -->
 <xsl:template mode="html.js.mode" match="mal:page">
   <xsl:call-template name="mal2html.facets.js"/>
+  <xsl:call-template name="mal2html.gloss.js"/>
 <xsl:text><![CDATA[
 $(document).ready(function () {
   $('div.mouseovers').each(function () {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]