Add _embed page for embedding, clean up style to match. Reviewed in http://codereview.appspot.com/5668045/

This commit is contained in:
Joe Gregorio
2012-02-14 14:42:01 -05:00
parent acf517ff9c
commit b4169b5fff
3 changed files with 140 additions and 10 deletions

View File

@@ -0,0 +1,78 @@
<!DOCTYPE HTML>
<html>
<head>
<title> Google API Client for Python Documentation </title>
<style type="text/css">
body
{
margin: 0;
padding: 0;
border: 0;
}
body table th,
body table td
{
color: #333;
font-family: Arial, sans-serif;
font-size: 13px;
font-style: normal;
font-weight: normal;
line-height: 21px;
}
body table th
{
font-weight: bold;
background: #6199DF;
color: white;
}
table
{
display: table;
border: 1px solid #BBB;
border-spacing: 0;
border-collapse: collapse;
margin: 0;
padding: 0;
}
tr
{
display: table-row;
border: 0;
margin: 0;
padding: 0;
}
td, th
{
display: table-cell;
border: 1px solid #BBB;
margin: 0;
padding: 6px 10px;
text-align: left;
vertical-align: top;
}
.icon {
width: 16px;
height: 16px;
}
</style>
<body>
<table>
<tr>
<th>API</th>
<th>Documentation</th>
<th>PyDoc</th>
<th>Name</th>
<th>Version</th>
</tr>
{% for item in directory %}
<tr>
<td><img class=icon src="{{ item.icons.x16 }}"/> {{ item.title }}</td>
<td><a target=_top href="{{ item.documentationLink }}">Documentation</a></td>
<td><a target=_top href="/{{ item.name }}/{{ item.version }}">PyDoc</a></td>
<td>{{ item.name }}</td>
<td>{{ item.version}}</td>
</tr>
{% endfor %}
</table>
</body>
</html>

View File

@@ -3,15 +3,53 @@
<head>
<title> Google API Client for Python Documentation </title>
<style>
table {
body
{
color: #333;
font-family: Arial, sans-serif;
}
body table th,
body table td
{
color: #333;
font-family: Arial, sans-serif;
font-size: 13px;
font-style: normal;
font-weight: normal;
line-height: 21px;
}
body table th
{
font-weight: bold;
background: #6199DF;
color: white;
}
table
{
display: table;
border: 1px solid #BBB;
border-spacing: 0;
border-collapse: collapse;
}
td, th {
padding: 0.3em;
margin: 0;
border: solid black 1px;
padding: 0;
}
img {
tr
{
display: table-row;
border: 0;
margin: 0;
padding: 0;
}
td, th
{
display: table-cell;
border: 1px solid #BBB;
margin: 0;
padding: 6px 10px;
text-align: left;
vertical-align: top;
}
.icon {
width: 16px;
height: 16px;
}
@@ -29,7 +67,7 @@
</tr>
{% for item in directory %}
<tr>
<td><img src="{{ item.icons.x16 }}"/> {{ item.title }}</td>
<td><img class=icon src="{{ item.icons.x16 }}"/> {{ item.title }}</td>
<td><a href="{{ item.documentationLink }}">Documentation</a></td>
<td><a href="/{{ item.name }}/{{ item.version }}">PyDoc</a></td>
<td>{{ item.name }}</td>

View File

@@ -30,13 +30,13 @@ import os
import pydoc
import re
from apiclient.anyjson import simplejson
from apiclient import discovery
from apiclient.errors import HttpError
from google.appengine.api import memcache
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
from google.appengine.ext.webapp import util
from oauth2client.anyjson import simplejson
DISCOVERY_URI = 'https://www.googleapis.com/discovery/v1/apis?preferred=true'
@@ -69,8 +69,7 @@ class MainHandler(webapp.RequestHandler):
class GadgetHandler(webapp.RequestHandler):
"""Handles serving the Google Gadget.
"""
"""Handles serving the Google Gadget."""
def get(self):
directory = get_directory_doc()
@@ -84,6 +83,20 @@ class GadgetHandler(webapp.RequestHandler):
self.response.headers.add_header('Content-Type', 'application/xml')
class EmbedHandler(webapp.RequestHandler):
"""Handles serving a front page suitable for embedding."""
def get(self):
directory = get_directory_doc()
for item in directory:
item['title'] = item.get('title', item.get('description', ''))
path = os.path.join(os.path.dirname(__file__), 'embed.html')
self.response.out.write(
template.render(
path, {'directory': directory,
}))
def _render(resource):
"""Use pydoc helpers on an instance to generate the help documentation.
"""
@@ -140,6 +153,7 @@ def main():
[
(r'/', MainHandler),
(r'/_gadget/', GadgetHandler),
(r'/_embed/', EmbedHandler),
(r'/([^\/]*)/([^\/]*)(?:/(.*))?', ResourceHandler),
],
debug=False)