-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patha_first_program.html
More file actions
136 lines (128 loc) · 6.24 KB
/
Copy patha_first_program.html
File metadata and controls
136 lines (128 loc) · 6.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>A First Program — Wasabi: The ??? Parts v0.1 documentation</title>
<link rel="stylesheet" href="_static/wasabi.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '',
VERSION: '0.1',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="top" title="Wasabi: The ??? Parts v0.1 documentation" href="index.html" />
<link rel="next" title="Expressions" href="expressions.html" />
<link rel="prev" title="A Brief and Highly Inaccurate History of Wasabi" href="introduction.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="expressions.html" title="Expressions"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="introduction.html" title="A Brief and Highly Inaccurate History of Wasabi"
accesskey="P">previous</a> |</li>
<li><a href="index.html">Wasabi: The ??? Parts v0.1 documentation</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="a-first-program">
<h1>A First Program<a class="headerlink" href="#a-first-program" title="Permalink to this headline">¶</a></h1>
<p>A guide to a programming language would be incomplete without at least one complete program and since Wasabi is intimately tied to generating web pages here’s a Wasabi program for generating a simple HTML page:</p>
<div class="highlight-python"><pre><%
<WebEntryPoint("example.asp")> _
Sub Example()
%>
<!DOCTYPE html>
<html>
<head>
<title>An Example Wasabi Program</title>
<meta charset="utf-8">
</head>
<body>
<h1>An Example Wasabi Program</h1>
<p>Arithmetic: 1 + 1 = <%= 1 + 1 %></p>
<p>Dynamic Content: x + y = <%= IntRequest("x") + IntRequest("y") %>
</body>
</html>
<%
End Sub
%></pre>
</div>
<p>A couple of interesting things about this program:</p>
<ol class="arabic simple">
<li>The entire thing is enclosed in tie-fighters (<tt class="xref std std-token docutils literal"><span class="pre"><%</span></tt> <tt class="xref std std-token docutils literal"><span class="pre">%></span></tt>). This is a consequence of it’s classic ASP heritage where each file was assumed to be generating a web page and so FogBugz’s entire Wasabi code base lives inside <tt class="xref std std-token docutils literal"><span class="pre"><%</span></tt> and <tt class="xref std std-token docutils literal"><span class="pre">%></span></tt> so it’s not dumped directly to the response.</li>
<li><tt class="docutils literal"><span class="pre"><WebEntryPoint("example.asp")></span></tt> is an annotation that marks the following subroutine as generating a web page at <tt class="docutils literal"><span class="pre">/example.asp</span></tt>.</li>
<li>[1] combined with [2] result in actual content destined for the response being wrapped in reverse-tie-fighters (<tt class="xref std std-token docutils literal"><span class="pre">%></span></tt> <tt class="xref std std-token docutils literal"><span class="pre"><%</span></tt>) with dynamic content being injected with <tt class="xref std std-token docutils literal"><span class="pre"><%=</span></tt> <tt class="xref std std-token docutils literal"><span class="pre">%></span></tt>.</li>
</ol>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h4>Previous topic</h4>
<p class="topless"><a href="introduction.html"
title="previous chapter">A Brief and Highly Inaccurate History of Wasabi</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="expressions.html"
title="next chapter">Expressions</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/a_first_program.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<input type="text" name="q" size="18" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="expressions.html" title="Expressions"
>next</a> |</li>
<li class="right" >
<a href="introduction.html" title="A Brief and Highly Inaccurate History of Wasabi"
>previous</a> |</li>
<li><a href="index.html">Wasabi: The ??? Parts v0.1 documentation</a> »</li>
</ul>
</div>
<div class="footer">
© Copyright 2011, Fog Creek Software.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
</div>
</body>
</html>