Merge "Add droiddoc_template module for templates-sdk" am: b8dad216ff
am: ee2e5d2092

Change-Id: I17aabae0b28cc86b8e9450fa7ee4a58283ea5c57
diff --git a/res/assets/templates-sdk/class.cs b/res/assets/templates-sdk/class.cs
index 66134f8..776d2b2 100644
--- a/res/assets/templates-sdk/class.cs
+++ b/res/assets/templates-sdk/class.cs
@@ -14,7 +14,13 @@
 <?cs set:count = #1 ?>
 <?cs each:method = methods ?>
   <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
-  <tr class="api apilevel-<?cs var:method.since ?>" >
+  <tr class="api apilevel-<?cs var:method.since ?>"<?cs
+      if:method.since ?>
+      data-version-added="<?cs var:method.since ?>"<?cs
+      /if ?><?cs
+      if:method.deprecatedsince
+        ?> data-version-deprecated="<?cs var:method.deprecatedsince ?>"<?cs
+      /if ?> >
   <?cs # leave out this cell if there is no return type = if constructors ?>
   <?cs if:subcount(method.returnType) ?>
     <td><code>
@@ -45,7 +51,13 @@
 ?><?cs def:write_field_summary(fields, included) ?>
 <?cs set:count = #1 ?>
 <?cs each:field=fields ?>
-  <tr class="api apilevel-<?cs var:field.since ?>" >
+  <tr class="api apilevel-<?cs var:field.since ?>"<?cs
+      if:field.since ?>
+      data-version-added="<?cs var:field.since ?>"<?cs
+      /if ?><?cs
+      if:field.deprecatedsince
+        ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
+      /if ?> >
     <td><code>
     <?cs var:field.scope ?>
     <?cs var:field.static ?>
@@ -66,7 +78,13 @@
 ?><?cs def:write_constant_summary(fields, included) ?>
 <?cs set:count = #1 ?>
     <?cs each:field=fields ?>
-    <tr class="api apilevel-<?cs var:field.since ?>" >
+    <tr class="api apilevel-<?cs var:field.since ?>"<?cs
+        if:field.since ?>
+        data-version-added="<?cs var:field.since ?>"<?cs
+        /if ?><?cs
+        if:field.deprecatedsince
+          ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
+        /if ?> >
         <td><code><?cs call:type_link(field.type) ?></code></td>
         <td width="100%">
           <code><?cs call:cond_link(field.name, toroot, field.href, included) ?></code>
@@ -83,7 +101,13 @@
 ?><?cs def:write_attr_summary(attrs, included) ?>
 <?cs set:count = #1 ?>
     <?cs each:attr=attrs ?>
-    <tr class="api apilevel-<?cs var:attr.since ?>" >
+    <tr class="api apilevel-<?cs var:attr.since ?>"<?cs
+        if:attr.since ?>
+        data-version-added="<?cs var:attr.since ?>"<?cs
+        /if ?><?cs
+        if:attr.deprecatedsince
+          ?> data-version-deprecated="<?cs var:attr.deprecatedsince ?>"<?cs
+        /if ?> >
         <td><?cs if:included ?><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs /if
           ?><code><?cs var:attr.name ?></code><?cs if:included ?></a><?cs /if ?></td>
         <td width="100%">
@@ -100,7 +124,13 @@
 ?><?cs def:write_inners_summary(classes) ?>
 <?cs set:count = #1 ?>
   <?cs each:cl=class.inners ?>
-    <tr class="api apilevel-<?cs var:cl.since ?>" >
+    <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+        if:cl.since ?>
+        data-version-added="<?cs var:cl.since ?>"<?cs
+        /if ?><?cs
+        if:cl.deprecatedsince
+          ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
+        /if ?> >
       <td class="jd-typecol"><code>
         <?cs var:cl.scope ?>
         <?cs var:cl.static ?>
@@ -131,7 +161,13 @@
 <?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
 <A NAME="<?cs var:field.anchor ?>"></A>
 <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
-<div class="api apilevel-<?cs var:field.since ?>">
+<div class="api apilevel-<?cs var:field.since ?>"<?cs
+     if:field.since ?>
+     data-version-added="<?cs var:field.since ?>"<?cs
+     /if ?><?cs
+     if:field.deprecatedsince
+       ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
+     /if ?> >
     <h3 class="api-name"><?cs var:field.name ?></h3>
     <div class="api-level">
       <?cs call:since_tags(field) ?>
@@ -163,7 +199,13 @@
 <?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
 <A NAME="<?cs var:method.anchor ?>"></A>
 <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
-<div class="api apilevel-<?cs var:method.since ?>">
+<div class="api apilevel-<?cs var:method.since ?>"<?cs
+     if:method.since ?>
+     data-version-added="<?cs var:method.since ?>"<?cs
+     /if ?><?cs
+     if:method.deprecatedsince
+       ?> data-version-deprecated="<?cs var:method.deprecatedsince ?>"<?cs
+     /if ?>>
     <h3 class="api-name"><?cs var:method.name ?></h3>
     <div class="api-level">
       <div><?cs call:since_tags(method) ?></div>
@@ -209,11 +251,29 @@
 <html<?cs if:devsite ?> devsite<?cs /if ?>>
 <?cs include:"head_tag.cs" ?>
 <?cs include:"body_tag.cs" ?>
+<div itemscope itemtype="http://developers.google.com/ReferenceObject">
+<!-- This DIV closes at the end of the BODY -->
+  <meta itemprop="name" content="<?cs var:class.qualifiedType.label ?>" />
+  <?cs if:(dac&&class.artifact)
+    ?><meta itemprop="path" content="<?cs
+          if:class.deprecatedsince ?>Deprecated<?cs
+          else ?>Support Library<?cs /if ?>" /><?cs
+  elif:(dac&&class.since)
+    ?><meta itemprop="path" content="<?cs
+          if:class.deprecatedsince ?>Deprecated<?cs
+          else ?>API level <?cs var:class.since ?><?cs /if ?>" /><?cs
+  /if ?>
 <?cs include:"header.cs" ?>
 <?cs # Includes api-info-block DIV at top of page. Standard Devsite uses right nav. ?>
 <?cs if:dac ?><?cs include:"page_info.cs" ?><?cs /if ?>
 <?cs # This DIV spans the entire document to provide scope for some scripts ?>
-<div class="api apilevel-<?cs var:class.since ?>" id="jd-content">
+<div class="api apilevel-<?cs var:class.since ?>" id="jd-content"<?cs
+     if:class.since ?>
+     data-version-added="<?cs var:class.since ?>"<?cs
+     /if ?><?cs
+     if:class.deprecatedsince
+       ?> data-version-deprecated="<?cs var:class.deprecatedsince ?>"<?cs
+     /if ?> >
 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
 <!-- ======== START OF CLASS DATA ======== -->
 <?cs
@@ -369,7 +429,13 @@
 <tr><th><h3>Inherited XML attributes</h3></th></tr>
 <?cs each:cl=class.inherited ?>
 <?cs if:subcount(cl.attrs) ?>
-<tr class="api apilevel-<?cs var:cl.since ?>" >
+<tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+    if:cl.since ?>
+    data-version-added="<?cs var:cl.since ?>"<?cs
+    /if ?><?cs
+    if:cl.deprecatedsince
+      ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
+    /if ?> >
 <td colspan="2"><?cs
   if:enable_javascript ?><?cs
     call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?><?cs
@@ -400,7 +466,13 @@
   <tr><th colspan="2"><h3>Enum values</h3></th></tr>
 <?cs set:count = #1 ?>
   <?cs each:field=class.enumConstants ?>
-  <tr class="api apilevel-<?cs var:field.since ?>" >
+  <tr class="api apilevel-<?cs var:field.since ?>"<?cs
+      if:field.since ?>
+      data-version-added="<?cs var:field.since ?>"<?cs
+      /if ?><?cs
+      if:field.deprecatedsince
+        ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
+      /if ?> >
     <td><code><?cs call:type_link(field.type) ?></code>&nbsp;</td>
     <td width="100%">
       <code><?cs call:cond_link(field.name, toroot, field.href, cl.included) ?></code>
@@ -429,7 +501,13 @@
 <tr><th><h3>Inherited constants</h3></th></tr>
 <?cs each:cl=class.inherited ?>
 <?cs if:subcount(cl.constants) ?>
-  <tr class="api apilevel-<?cs var:cl.since ?>" >
+  <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+      if:cl.since ?>
+      data-version-added="<?cs var:cl.since ?>"<?cs
+      /if ?><?cs
+      if:cl.deprecatedsince
+        ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
+      /if ?> >
   <td><?cs
     if:enable_javascript ?><?cs
       call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?><?cs
@@ -470,7 +548,13 @@
 <tr><th><h3>Inherited fields</h3></th></tr>
 <?cs each:cl=class.inherited ?>
 <?cs if:subcount(cl.fields) ?>
-  <tr class="api apilevel-<?cs var:cl.since ?>" >
+  <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+      if:cl.since ?>
+      data-version-added="<?cs var:cl.since ?>"<?cs
+      /if ?><?cs
+      if:cl.deprecatedsince
+        ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
+      /if ?> >
   <td><?cs
     if:enable_javascript ?><?cs
       call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?><?cs
@@ -538,7 +622,13 @@
 <tr><th><h3>Inherited methods</h3></th></tr>
 <?cs each:cl=class.inherited ?>
 <?cs if:subcount(cl.methods) ?>
-<tr class="api apilevel-<?cs var:cl.since ?>" >
+<tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+    if:cl.since ?>
+    data-version-added="<?cs var:cl.since ?>"<?cs
+    /if ?><?cs
+    if:cl.deprecatedsince
+      ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
+    /if ?> >
 <td colspan="2"><?cs
   if:enable_javascript ?><?cs
     call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?><?cs
@@ -671,5 +761,6 @@
 <?cs include:"footer.cs" ?>
 <?cs include:"trailer.cs" ?>
 <?cs /if ?>
+</div><!-- end devsite ReferenceObject -->
 </body>
 </html>
diff --git a/res/assets/templates-sdk/classes.cs b/res/assets/templates-sdk/classes.cs
index 007b57e..bc6b98d 100644
--- a/res/assets/templates-sdk/classes.cs
+++ b/res/assets/templates-sdk/classes.cs
@@ -24,7 +24,13 @@
 <table>
     <?cs set:cur_row = #0 ?>
     <?cs each:cl = letter ?>
-        <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
+        <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+            if:cl.since ?>
+            data-version-added="<?cs var:cl.since ?>"<?cs
+            /if ?><?cs
+            if:cl.deprecatedsince
+              ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
+            /if ?> >
             <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
             <td class="jd-descrcol" width="100%">
               <?cs call:short_descr(cl) ?>&nbsp;
diff --git a/res/assets/templates-sdk/head_tag.cs b/res/assets/templates-sdk/head_tag.cs
index 1f24860..50e36fa 100644
--- a/res/assets/templates-sdk/head_tag.cs
+++ b/res/assets/templates-sdk/head_tag.cs
@@ -12,171 +12,16 @@
 <?cs /if ?><?cs
 # END if/else devsite ?></title><?cs
   ####### If building devsite, add some meta data needed for when generating the top nav ######### ?><?cs
-if:devsite ?>
-  <meta name="top_category" value="<?cs
-      if:ndk ?>ndk<?cs
-      elif:(guide||develop||training||reference||tools||sdk||google||reference.gms||reference.gcm||samples) ?>develop<?cs
-      elif:(topic||libraries||instantapps||perf||arc) ?>develop<?cs
-      elif:(distribute||googleplay||essentials||users||engage||monetize||disttools||stories||analyze) ?>distribute<?cs
-      elif:(design||vision||material||patterns||devices||designdownloads) ?>design<?cs
-      elif:(about||versions||wear||tv||auto) ?>about<?cs
-      elif:wearpreview ?>about<?cs
-      elif:work ?>about<?cs
-      elif:preview ?>preview<?cs
-      else ?>none<?cs
-      /if ?>" /><?cs set:dac_subcategory_set = #1 ?>
-  <meta name="subcategory" value="<?cs
-      if:ndk ?><?cs
-        if:guide ?>guide<?cs
-        elif:samples ?>samples<?cs
-          if:(samplesDocPage&&!samplesProjectIndex) ?> samples-docpage<?cs /if ?><?cs
-        elif:reference ?>reference<?cs
-        elif:downloads ?>downloads<?cs
-        else ?>none<?cs set:dac_subcategory_set = #0 ?><?cs /if ?><?cs
-      else ?><?cs
-        if:(guide||develop||training||reference||tools||sdk||samples) ?><?cs
-          if:guide ?>guide<?cs
-          elif:training ?><?cs
-            if:page.trainingcourse ?>trainingcourse<?cs
-            else ?>training<?cs /if ?><?cs
-          elif:reference ?>reference<?cs
-          elif:samples ?>samples<?cs
-            if:(samplesDocPage&&!samplesProjectIndex) ?> samples-docpage<?cs /if ?><?cs
-          else ?>none<?cs set:dac_subcategory_set = #0 ?><?cs /if ?><?cs
-        elif:(google||reference.gms||reference.gcm) ?>google<?cs
-        elif:(topic||libraries||perf||arc) ?><?cs
-          if:libraries ?>libraries<?cs
-          elif:instantapps ?>instantapps<?cs
-          elif:perf ?>perf<?cs
-          elif:arc ?>arc<?cs
-          else ?>none<?cs set:dac_subcategory_set = #0 ?><?cs /if ?><?cs
-        elif:(distribute||googleplay||essentials||users||engage||monetize||disttools||stories||analyze) ?><?cs
-          if:googleplay ?>googleplay<?cs
-          elif:essentials ?>essentials<?cs
-          elif:users ?>users<?cs
-          elif:engage ?>engage<?cs
-          elif:monetize ?>monetize<?cs
-          elif:disttools ?>disttools<?cs
-          elif:stories ?>stories<?cs
-          elif:analyze ?>analyze<?cs
-          else ?>none<?cs set:dac_subcategory_set = #0 ?><?cs /if ?><?cs
-        elif:(about||versions||wear||tv||auto) ?>about<?cs
-        elif:preview ?>preview<?cs
-        elif:wearpreview ?>wear<?cs
-        elif:work ?>work<?cs
-        elif:design ?>design<?cs
-        elif:walkthru ?>walkthru<?cs
-        else ?>none<?cs set:dac_subcategory_set = #0 ?><?cs /if ?><?cs
-      /if ?>" /><?cs
-      if:nonavpage ?>
-  <meta name="hide_toc" value='True' /><?cs
-      elif: !nonavpage && dac_subcategory_set && !tools && !sdk ?>
-  <meta name="book_path" value="<?cs
-        if:!dac ?><?cs
-          if:book.path ?><?cs var:book.path ?><?cs
-          else ?>/_book.yaml<?cs
-          /if ?>" /><?cs
-        else ?><?cs
-          if:ndk ?>/ndk<?cs
-            if:guide ?>/guides<?cs
-            elif:samples ?>/samples<?cs
-            elif:reference ?>/reference<?cs
-            elif:downloads ?>/downloads<?cs /if ?><?cs
-          elif:library.root ?>/reference/<?cs var:library.root ?><?cs
-          else ?><?cs
-            if:(guide||develop||training||reference||tools||sdk||samples) ?><?cs
-              if:guide ?>/guide<?cs
-              elif:training ?>/training<?cs
-              elif:reference ?>/reference<?cs
-              elif:samples ?>/samples<?cs /if ?><?cs
-            elif:(google||reference.gms||reference.gcm) ?>/google<?cs
-            elif:(topic||libraries||perf) ?>/topic<?cs
-              if:libraries ?>/libraries<?cs
-              elif:instantapps ?>/instant-apps<?cs
-              elif:perf ?>/performance<?cs
-              elif:arc ?>/arc<?cs /if ?><?cs
-            elif:(distribute||googleplay||essentials||users||engage||monetize||disttools||stories||analyze) ?>/distribute<?cs
-              if:googleplay ?>/googleplay<?cs
-              elif:essentials ?>/essentials<?cs
-              elif:users ?>/users<?cs
-              elif:engage ?>/engage<?cs
-              elif:monetize ?>/monetize<?cs
-              elif:disttools ?>/tools<?cs
-              elif:stories ?>/stories<?cs
-              elif:analyze ?>/analyze<?cs /if ?><?cs
-            elif:(about||versions||wear||tv||auto) ?>/about<?cs
-            elif:preview ?>/preview<?cs
-            elif:wearpreview ?>/wear/preview<?cs
-            elif:work ?>/work<?cs
-            elif:design ?>/design<?cs
-            elif:walkthru ?>/walkthru<?cs /if ?><?cs
-          /if ?>/_book.yaml" /><?cs
-        /if ?><?cs
-      /if ?>
-  <meta name="project_path" value="<?cs
-      if:!dac ?><?cs
-        if:project.path ?><?cs var:project.path ?><?cs
-        else ?>/_project.yaml<?cs
-        /if ?>" /><?cs
-      else ?><?cs
-        if:(guide||develop||training||reference||tools||sdk||samples) ?><?cs
-          if:guide ?>/guide<?cs
-          elif:training ?>/training<?cs
-          elif:reference ?>/reference<?cs
-          elif:samples ?>/samples<?cs /if ?><?cs
-        elif:(google||reference.gms||reference.gcm) ?>/google<?cs
-        elif:(topic||libraries) ?>/develop<?cs
-        elif:(distribute||googleplay||essentials||users||engage||monetize||disttools||stories||analyze) ?>/distribute<?cs
-          if:googleplay ?>/googleplay<?cs
-          elif:essentials ?>/essentials<?cs
-          elif:users ?>/users<?cs
-          elif:engage ?>/engage<?cs
-          elif:monetize ?>/monetize<?cs
-          elif:disttools ?>/tools<?cs
-          elif:stories ?>/stories<?cs
-          elif:analyze ?>/analyze<?cs
-          else ?><?cs /if ?><?cs
-        elif:(about||versions||wear||tv||auto) ?><?cs
-          if:versions ?>/about/versions<?cs
-          elif:wear ?>/wear<?cs
-          elif:tv ?>/tv<?cs
-          elif:auto ?>/auto<?cs
-          else ?>/about<?cs /if ?><?cs
-        elif:wearpreview ?>/wear/preview<?cs
-        elif:work ?>/work<?cs
-        elif:preview ?>/preview<?cs
-        elif:design ?>/design<?cs /if ?>/_project.yaml" /><?cs
-      /if ?><?cs
-      if:page.tags && page.tags != "" ?>
-  <meta name="keywords" value='<?cs var:page.tags ?>' /><?cs
-      /if ?><?cs
-      if:meta.tags && meta.tags != "" ?>
-  <meta name="meta_tags" value='<?cs var:meta.tags ?>' /><?cs
-      /if ?><?cs
-      if:fullpage ?>
-  <meta name="full_width" value="True" /><?cs
-      /if ?><?cs
-      if:page.landing ?>
-  <meta name="page_type" value="landing" /><?cs
-      /if ?><?cs
-      if:page.article ?>
-  <meta name="page_type" value="article" /><?cs
-      /if ?><?cs
-      if:page.image ?>
-  <meta name="image_path" value='<?cs var:page.image ?>' /><?cs
-      /if ?><?cs
-      if:excludeFromSuggestions ?>
-  <meta name="hide_from_search_suggest" value="true" /><?cs
-      /if ?><?cs
-      if:reference ?>
+if:devsite ?><?cs
+  # if this build set `library.root` then set a django variable to be used by the subsequent
+  # _reference-head-tags.html file for the book path (or ignored if its no longer needed)
+  ?><?cs
+  if:library.root ?>
+  {% setvar book_path %}/reference/<?cs var:library.root ?>/_book.yaml{% endsetvar %}<?cs
+  /if ?>
+  {% include "_shared/_reference-head-tags.html" %}
   <meta name="body_class" value="api apilevel-<?cs var:class.since ?><?cs var:package.since ?>" /><?cs
-      /if ?><?cs
-      if:!dac ?>
-  <meta name="hide_page_heading" value="true" /><?cs
-      /if ?><?cs
-/if ?><?cs # END if/else devsite ?><?cs
-
-  if:!devsite ?>
+else ?>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
 <meta content="IE=edge" http-equiv="X-UA-Compatible">
diff --git a/res/assets/templates-sdk/macros_override.cs b/res/assets/templates-sdk/macros_override.cs
index 453eb59..dab5dcc 100644
--- a/res/assets/templates-sdk/macros_override.cs
+++ b/res/assets/templates-sdk/macros_override.cs
@@ -23,7 +23,13 @@
   <?cs set:count = #1 ?>
   <table class="jd-sumtable-expando">
     <?cs each:cl=classes ?>
-      <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.type.since ?>" >
+      <tr class="api apilevel-<?cs var:cl.type.since ?>"<?cs
+          if:cl.type.since ?>
+          data-version-added="<?cs var:cl.type.since ?>"<?cs
+          /if ?><?cs
+          if:cl.type.deprecatedsince
+            ?> data-version-deprecated="<?cs var:cl.type.deprecatedsince ?>"<?cs
+          /if ?> >
         <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
         <td class="jd-descrcol" width="100%">
           <?cs call:short_descr(cl) ?>&nbsp;
diff --git a/res/assets/templates-sdk/package.cs b/res/assets/templates-sdk/package.cs
index 6a16bc0..ab66449 100644
--- a/res/assets/templates-sdk/package.cs
+++ b/res/assets/templates-sdk/package.cs
@@ -6,10 +6,22 @@
 <html<?cs if:devsite ?> devsite<?cs /if ?>>
 <?cs include:"head_tag.cs" ?>
 <?cs include:"body_tag.cs" ?>
+<div itemscope itemtype="http://developers.google.com/ReferenceObject" >
+<!-- This DIV closes at the end of the BODY -->
+  <meta itemprop="name" content="<?cs var:page.title ?>" />
+  <?cs if:(dac&&package.since)
+    ?><meta itemprop="path" content="API level <?cs var:package.since ?>" /><?cs
+  /if ?>
 <?cs include:"header.cs" ?>
 <?cs # Includes api-info-block DIV at top of page. Standard Devsite uses right nav. ?>
 <?cs if:dac ?><?cs include:"page_info.cs" ?><?cs /if ?>
-<div class="api apilevel-<?cs var:package.since ?>" id="jd-content">
+<div class="api apilevel-<?cs var:package.since ?>" id="jd-content"<?cs
+     if:package.since ?>
+     data-version-added="<?cs var:package.since ?>"<?cs
+     /if ?><?cs
+     if:package.deprecatedsince
+       ?> data-version-deprecated="<?cs var:package.deprecatedsince ?>"<?cs
+     /if ?> >
 
 <h1><?cs var:package.name ?></h1>
 
@@ -61,5 +73,6 @@
 <?cs include:"footer.cs" ?>
 <?cs include:"trailer.cs" ?>
 <?cs /if ?>
+</div><!-- end devsite ReferenceObject -->
 </body>
 </html>
diff --git a/res/assets/templates-sdk/page_info.cs b/res/assets/templates-sdk/page_info.cs
index 4bdda67..3b7fbc4 100644
--- a/res/assets/templates-sdk/page_info.cs
+++ b/res/assets/templates-sdk/page_info.cs
@@ -27,10 +27,12 @@
   <?cs if:class.artifact ?>
     <br><?cs call:artifact_tags(class) ?>
   <?cs /if ?>
-  <?cs if:class.deprecatedsince ?>
-    <br>Deprecated since
+  <?cs if:class.deprecatedsince ?><?cs
+    if:class.artifact ?><br>Deprecated since version <?cs var:class.deprecatedsince ?><?cs
+    else ?><br>Deprecated since
     <a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html#ApiLevels">API level
-      <?cs var:class.deprecatedsince ?></a>
+      <?cs var:class.deprecatedsince ?></a><?cs
+    /if ?>
   <?cs /if ?>
   <?cs call:federated_refs(class) ?>
 </div>