initial commit
[emacs-init.git] / nxhtml / tests / in / mjt-feed.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6 <link rel="stylesheet" href="feedstyle.css" type="text/css" />
7 <title>mjt google feeds</title>
8 <script type="text/javascript" src="http://mjtemplate.org/dist/mjt-0.6/mjt.js"></script>
9 <script type="text/javascript" src="./google-api-keys.js"></script>
10 <script type="text/javascript">
11     load_google_api('http://www.google.com/jsapi?key=');
12 </script>
13 <script type="text/javascript">
14
15     google.load("feeds", "1");
16
17     function initialize() {
18       var top = mjt.run('top');
19
20       var feeduri = mjt.urlquery.feed;
21       if (typeof feeduri == 'undefined')
22           feeduri = "http://blog.freebase.com/?feed=atom";
23       document.title = 'feed: ' + feeduri;
24
25       var feed = new google.feeds.Feed(feeduri);
26       feed.load(function(result) { mjt.run('feed', top.showfeed, [result]); });
27     }
28     google.setOnLoadCallback(initialize);
29 </script>
30 </head>
31 <body>
32 <div>
33 This is a toy feed reader using <a href="http://mjtemplate.org">Mjt</a> to
34 read Google's new <a href="http://code.google.com/apis/ajaxfeeds/documentation/">AJAX feed API</a>.
35 </div>
36 <div>
37 some feeds:
38 <a href="?feed=http://blog.freebase.com/%3Ffeed%3Datom">The Freebase Dev Blog</a>
39 | <a href="?feed=http://googleajaxsearchapi.blogspot.com/atom.xml">Google AJAX Search API Blog</a>
40 </div>
41 <!-- compare to <a href="http://code.google.com/apis/ajaxfeeds/documentation/helloworld.html">google example</a> -->
42 <div id="top" style="display:none;">
43 <div class="feedform">
44 <form action="feed.html">
45 <div>xml feed uri: 
46     <input type="text" size="70" name="feed" value="${mjt.urlquery.feed||''}" />
47 <input type="submit" value="read" />
48 </div>
49 </form>
50 </div>
51 <div mjt.def="showfeed(result)">
52 <div mjt.choose="">
53 <div mjt.when="result.status != '200' &amp;&amp; result.error">
54       error: <b>$result.error.message</b>
55 </div>
56 <div mjt.when="result.status.code == 200">
57 <pre mjt.script="">
58         document.title = 'feed: ' + result.feed.title;
59       </pre>
60 <h1 class="feedtitle"><a href="$result.feed.link">$result.feed.title</a></h1>
61 <div mjt.for="entry in result.feed.entries" class="entry">
62 <div class="entryheader">
63 <a href="$entry.link" class="entrytitle">$entry.title</a>
64 <span mjt.if="entry.categories instanceof Array &amp;&amp; entry.categories.length&gt;0">
65             in: <span mjt.for="cat in (entry.categories||[])" class="category">$cat</span>
66 </span>
67 <div>
68             &nbsp;&nbsp;&nbsp;&nbsp;
69             <span class="author">${entry.author||''}</span> -
70             <span class="date">${entry.publishedDate||''}</span>
71 </div>
72 </div>
73 <!-- XXX security - does google sanitize?  we sure don't... -->
74 <div class="content">${mjt.bless(entry.content)}</div>
75 </div>
76 </div>
77 <div mjt.otherwise="">
78 <b>unknown response type from google feed api</b>
79 </div>
80 </div>
81 </div>
82 </div>
83 <!-- the feed view gets pasted here when ready -->
84 <div id="feed"></div>
85 </body>
86 </html>