]> gitweb.factorcode.org Git - factor.git/commitdiff
websites.factorcode: new factorcode.org site, just like the old factorcode.org site
authorSlava Pestov <slava@user-64-9-239-181.googlewifi.com>
Tue, 28 Sep 2010 04:14:22 +0000 (21:14 -0700)
committerSlava Pestov <slava@user-64-9-239-181.googlewifi.com>
Tue, 28 Sep 2010 04:14:22 +0000 (21:14 -0700)
extra/websites/concatenative/concatenative.factor
extra/websites/factorcode/bg_header.jpg [new file with mode: 0644]
extra/websites/factorcode/factorcode.factor [new file with mode: 0644]
extra/websites/factorcode/index.fhtml [new file with mode: 0644]
extra/websites/factorcode/logo.png [new file with mode: 0644]
extra/websites/factorcode/master.css [new file with mode: 0644]

index 61b4f7d8876a6dd06ace13161a3432ed7058a3cd..379ba32a576a0948d6a6a725dd24cd932cf8262a 100644 (file)
@@ -26,7 +26,8 @@ webapps.wiki
 webapps.user-admin
 webapps.help
 webapps.mason
-webapps.mason.backend ;
+webapps.mason.backend
+websites.factorcode ;
 IN: websites.concatenative
 
 : test-db ( -- db ) "resource:test.db" <sqlite-db> ;
@@ -44,11 +45,11 @@ IN: websites.concatenative
         } ensure-tables
     ] with-db ;
 
-TUPLE: factor-website < dispatcher ;
+TUPLE: concatenative-website < dispatcher ;
 
 : <factor-boilerplate> ( responder -- responder' )
     <boilerplate>
-        { factor-website "page" } >>template ;
+        { concatenative-website "page" } >>template ;
 
 : <login-config> ( responder -- responder' )
     "Factor website" <login-realm>
@@ -64,8 +65,8 @@ TUPLE: factor-website < dispatcher ;
         "6LeJWQgAAAAAAFlYV7SuBClE9uSpGtV_ZS-qVON7" >>public-key
         "6LeJWQgAAAAAALh-XJgSSQ6xKygRgJ8-029Ip2Xv" >>private-key ;
 
-: <factor-website> ( -- responder )
-    factor-website new-dispatcher
+: <concatenative-website> ( -- responder )
+    concatenative-website new-dispatcher
         URL" /wiki/view/Front Page" <redirect-responder> "" add-responder ;
 
 SYMBOL: key-password
@@ -84,7 +85,7 @@ SYMBOL: dh-file
     "vocab:openssl/test/server.pem" key-file set-global
     "password" key-password set-global
     common-configuration
-    <factor-website>
+    <concatenative-website>
         <wiki> <login-config> <factor-boilerplate> "wiki" add-responder
         <user-admin> <login-config> <factor-boilerplate> "user-admin" add-responder
         <pastebin> <factor-recaptcha> <login-config> <factor-boilerplate> "pastebin" add-responder
@@ -102,7 +103,7 @@ SYMBOL: dh-file
 : init-production ( -- )
     common-configuration
     <vhost-dispatcher>
-        <factor-website>
+        <concatenative-website>
             <wiki> "wiki" add-responder
             <user-admin> "user-admin" add-responder
         <login-config> <factor-boilerplate> test-db <alloy> "concatenative.org" add-responder
@@ -111,6 +112,7 @@ SYMBOL: dh-file
         <mason-app> <login-config> <factor-boilerplate> test-db <alloy> "builds.factorcode.org" add-responder
         home "docs" append-path <help-webapp> "docs.factorcode.org" add-responder
         home "cgi" append-path <gitweb> "gitweb.factorcode.org" add-responder
+        <factor-website> "new.factorcode.org" add-responder
     main-responder set-global ;
 
 : <factor-secure-config> ( -- config )
@@ -119,7 +121,7 @@ SYMBOL: dh-file
         dh-file get >>dh-file
         key-password get >>password ;
 
-: <factor-website-server> ( -- threaded-server )
+: <concatenative-website-server> ( -- threaded-server )
     <http-server>
         <factor-secure-config> >>secure-config
         8080 >>insecure
@@ -129,4 +131,4 @@ SYMBOL: dh-file
     test-db start-expiring
     test-db start-update-task
     http-insomniac
-    <factor-website-server> start-server ;
+    <concatenative-website-server> start-server ;
diff --git a/extra/websites/factorcode/bg_header.jpg b/extra/websites/factorcode/bg_header.jpg
new file mode 100644 (file)
index 0000000..10dbd74
Binary files /dev/null and b/extra/websites/factorcode/bg_header.jpg differ
diff --git a/extra/websites/factorcode/factorcode.factor b/extra/websites/factorcode/factorcode.factor
new file mode 100644 (file)
index 0000000..edf2468
--- /dev/null
@@ -0,0 +1,17 @@
+! Copyright (c) 2010 Slava Pestov
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors http.server http.server.dispatchers
+http.server.static kernel namespaces sequences ;
+IN: websites.factorcode
+
+SYMBOL: users
+
+: <factor-website> ( -- website )
+    <dispatcher>
+        "resource:extra/websites/factorcode/" <static> >>default
+        users get [
+            [ "/home/" "/www/" surround <static> ] keep add-responder
+        ] each ;
+
+: init-testing ( -- )
+    <factor-website> main-responder set-global ;
diff --git a/extra/websites/factorcode/index.fhtml b/extra/websites/factorcode/index.fhtml
new file mode 100644 (file)
index 0000000..5a565bb
--- /dev/null
@@ -0,0 +1,80 @@
+<% USING: namespaces http.client kernel io.files splitting random io io.encodings.utf8 sequences ; %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+       <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
+
+       <title>Factor programming language</title>
+       <link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8" />
+</head>
+
+<body>
+
+<div><img src="logo.png" alt="Factor programming language" /></div>
+
+<table border="0" width="100%">
+
+<tr>
+<td width="50%" valign="top">
+
+<h1>Why Factor?</h1>
+
+<p>The <big>Factor programming language</big> combines <a href="http://concatenative.org/wiki/view/Factor/Features/The%20language">powerful language features</a> with a <a href="http://docs.factorcode.org/content/article-vocab-index.html">full-featured library</a>. The implementation is <a href="http://concatenative.org/wiki/view/Factor/Optimizing%20compiler">fully compiled</a> for performance, while still supporting <a href="http://concatenative.org/wiki/view/Factor/Interactive development">interactive development</a>. Factor applications are portable between all common platforms. Factor can <a href="http://concatenative.org/wiki/view/Factor/Deployment">deploy stand-alone applications</a> on all platforms. Full source code for the Factor project is available under a <a href="http://factorcode.org/license.txt">BSD license</a>.</p>
+
+<ul>
+<li>Screenshots: <a href="http://factorcode.org/factor-macosx.png">Mac OS X</a>, <a href="http://factorcode.org/factor-windows7.png">Windows</a></li>
+<li><a href="http://concatenative.org/wiki/view/Factor">Learn more about Factor</a></li>
+<li><a href="http://concatenative.org/wiki/view/Factor/Learning">Get started programming with Factor</a></li>
+<li><a href="http://concatenative.org/wiki/view/Factor/FAQ">Get answers to frequently-asked questions</a></li>
+<li><a href="http://docs.factorcode.org/">Read Factor reference documentation online</a></li>
+<li><a href="http://concatenative.org/wiki/view/Concatenative%20language">Learn more about concatenative programming</a></li>
+</ul>
+
+<p>Most of the above links point to pages on the <a href="http://concatenative.org">concatenative.org wiki</a>.</p>
+</td>
+
+<td width="50%" valign="top">
+
+<h1>Show me some code!</h1>
+
+<p>Factor belongs to the family of <em><a href="http://concatenative.org/wiki/view/Concatenative%20language">concatenative languages</a></em>: this means that, at the lowest level, a Factor program is a series of words (functions) that manipulate a stack of references to dynamically-typed values. This gives the language a powerful foundation which allows many abstractions and paradigms to be built on top. Reload this page to see a random code example below.</p>
+
+<pre>
+<%
+"/var/www/factorcode.org/newsite/examples.txt" utf8 file-lines
+{ "----" } split random "\n" join write
+%>
+</pre>
+
+<p>See the <a href="http://concatenative.org/wiki/view/Factor/Examples">example programs</a> page on the wiki for more.</p>
+
+</td>
+</tr>
+
+</table>
+
+<h1>Downloads</h1>
+
+<p>To download a binary, follow the link corresponding to your computer's CPU/OS configuration. Binary packages are the recommended route for new users who wish to try Factor.</p>
+
+<%
+"http://builds.factorcode.org/downloads" http-get nip write
+%>
+
+<p><b>Source code</b> is stored in our <a href="http://concatenative.org/wiki/view/Factor/GIT repository">GIT repository</a>. Source can can be browsed online via <a href="http://github.com/slavapestov/factor/">github</a> or <a href="http://gitweb.factorcode.org/">gitweb</a>.</p>
+
+<h1>More</h1>
+                    
+<ul>
+<li><a href="http://concatenative.org/wiki/view/Factor/Mailing list">Join the mailing list</a></li>
+<li><a href="http://concatenative.org/wiki/view/Concatenative IRC channel">Join the IRC channel</a></li>
+<li><a href="http://planet.factorcode.org/">planet.factorcode.org</a> - Factor community blogs</li>
+<li><a href="http://concatenative.org/wiki/view/Concatenative%20language/Publications">Academic publications</a></li>
+<li><a href="http://paste.factorcode.org/">Factor community pastebin</a> - if you're in an IRC channel and want to share some code</li>
+</ul>
+
+</body>
+</html>
diff --git a/extra/websites/factorcode/logo.png b/extra/websites/factorcode/logo.png
new file mode 100644 (file)
index 0000000..9907d2c
Binary files /dev/null and b/extra/websites/factorcode/logo.png differ
diff --git a/extra/websites/factorcode/master.css b/extra/websites/factorcode/master.css
new file mode 100644 (file)
index 0000000..72088b7
--- /dev/null
@@ -0,0 +1,144 @@
+body {
+       font:75%/1.6em "Lucida Grande", "Lucida Sans Unicode", verdana, geneva, sans-serif;
+}
+
+ul {   
+       margin:10px 10px 10px 0;
+       padding:0 0 0 15px;
+}
+
+li {
+       margin:0 0 0 10px;
+       padding:5px;
+}
+
+a {
+       color:#222;
+       border-bottom:1px solid #aaa;
+       text-decoration:none;
+}
+
+a:hover {
+       border-bottom:1px solid #ccc;
+}
+
+ol.subnav {
+       margin:-10px -10px 0 -5px;
+       padding:0;
+}
+
+ol.subnav li {
+       font:85%/0.9em "Lucida Grande", "Lucida Sans Unicode", verdana, geneva, sans-serif;
+       float:left;
+       list-style:none;
+       margin:0;
+       padding:0;
+}
+
+ol.subnav a {
+       font-weight:bold;
+       color:#555;
+       border-top:2px solid #fff;
+       display:block;
+       padding:5px;
+       text-decoration:none;
+       margin:0 5px 0 0;
+       border-bottom:none;
+}
+
+ol.subnav a:hover {
+       border-top:2px solid #943329;
+       color:#121212;
+       border-bottom:none;
+}
+
+#downloads {
+       width: 520px;
+       padding: 0;
+       margin: 0;
+}
+
+caption {
+       padding: 0 0 5px 0;
+       width: 520px;    
+       font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
+       text-align: right;
+}
+
+th {
+       font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
+       color: #4f6b72;
+       border-right: 1px solid #C1DAD7;
+       border-bottom: 1px solid #C1DAD7;
+       border-top: 1px solid #C1DAD7;
+       letter-spacing: 2px;
+       text-transform: uppercase;
+       padding: 6px 6px 6px 6px;
+       background: #CAE8EA url(bg_header.jpg) no-repeat;
+}
+
+th.nobg {
+       border-top: 0;
+       border-left: 0;
+       border-right: 1px solid #C1DAD7;
+       background: none;
+}
+
+pre {
+       border: 1px dashed #ccc;
+       background-color: #f5f5f5;
+       font-size: 120%;
+}
+
+td.alt {
+       background: #F5FAFA;
+       color: #797268;
+}
+
+td.doesnotexist {
+       background: #E5EAEA;
+}
+
+
+td.unsupported {
+       background: #ffaaaa;
+}
+
+
+td.supported {
+       background: #aaffaa;
+}
+
+td.supported :hover { background-color: #88ff88; }  
+
+td.nobinary {
+       background: #eeee88;
+}
+
+div.bigdiv {
+       width: 100px;
+       text-align: center;
+       color: #050;
+}
+
+th.spec {
+       border-left: 1px solid #C1DAD7;
+       border-top: 0;
+       background: #fff;
+       font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
+}
+
+th.specalt {
+       border-left: 1px solid #C1DAD7;
+       border-top: 0;
+       background: #f5fafa;
+       font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
+       color: #797268;
+}
+
+th.allbg {
+       border-top: 0;
+       border-left: 0;
+       border-right: 0;
+       background: none;
+}