]> git.quilime.com - plog.git/commitdiff
portfolio updates
authorGabriel Dunne <gdunne@quilime.com>
Mon, 3 Sep 2012 00:50:00 +0000 (17:50 -0700)
committerGabriel Dunne <gdunne@quilime.com>
Mon, 3 Sep 2012 00:50:00 +0000 (17:50 -0700)
80 files changed:
.gitignore [new file with mode: 0644]
.htaccess
README
content/archive/cabspotting [deleted file]
content/archive/icarus_deadalus [deleted file]
content/archive/monad [deleted file]
content/config
content/log/2010/05/new _blog [deleted file]
content/log/2010/06/chapter_and_verse [deleted file]
content/log/2010/11/icosi_gaffta [deleted file]
content/log/2011/05/clmpr [deleted file]
content/log/2011/05/permenant [deleted file]
content/news/bavc_2013 [new file with mode: 0644]
content/news/config [new file with mode: 0644]
content/news/icosi_gaffta [new file with mode: 0644]
content/process/clmpr [new file with mode: 0644]
content/process/egg [new file with mode: 0644]
content/process/icosi [moved from content/log/2010/07/icosi with 85% similarity]
content/process/icosi2 [moved from content/log/2010/07/icosi2 with 100% similarity]
content/process/icosi_biennial [moved from content/log/2010/07/icosi_biennial with 87% similarity]
content/process/icosi_rider [moved from content/log/2010/06/icosi_rider with 88% similarity]
content/process/permenant [new file with mode: 0644]
content/process/schedule [moved from content/log/2011/05/schedule with 100% similarity]
content/projects/1999/aero [deleted file]
content/projects/1999/icarus-deadalus [deleted file]
content/projects/2003/bodyneg [deleted file]
content/projects/2003/egg [deleted file]
content/projects/2003/obsession [deleted file]
content/projects/2008/boat [deleted file]
content/projects/boat [moved from content/archive/boat with 100% similarity]
content/projects/bodyneg [moved from content/archive/bodyneg with 87% similarity]
content/projects/cabspotting [moved from content/projects/2007/cabspotting with 94% similarity]
content/projects/obsession [new file with mode: 0644]
content/projects/rattle [moved from content/projects/2006/rattle with 100% similarity]
content/projects/seaquence [moved from content/log/2010/10/seaquence with 74% similarity]
content/projects/stars [moved from content/projects/2006/stars with 97% similarity]
content/projects/synonymovement [moved from content/projects/2009/synonymovement with 100% similarity]
css/style.css
data/tags.json [new file with mode: 0644]
drafts/aero [new file with mode: 0644]
drafts/bay_area_transit [moved from content/archive/bay_area_transit with 100% similarity]
drafts/cat [moved from content/archive/cat with 100% similarity]
drafts/celestes [moved from content/projects/2002/celestes with 100% similarity]
drafts/cm [moved from content/archive/cm with 100% similarity]
drafts/config [new file with mode: 0644]
drafts/cymatic_organ [moved from content/archive/cymatic_organ with 62% similarity]
drafts/icarus-deadalus [new file with mode: 0644]
drafts/icosi [moved from content/archive/icosi with 100% similarity]
drafts/mask [moved from content/projects/2009/mask with 50% similarity]
drafts/monad [new file with mode: 0644]
drafts/paintings [moved from content/archive/paintings with 100% similarity]
drafts/prism [moved from content/projects/2008/prism with 55% similarity]
drafts/rattles [moved from content/archive/rattles with 100% similarity]
drafts/seashell [moved from content/archive/seashell with 100% similarity]
drafts/sos_postcard [moved from content/archive/sos_postcard with 98% similarity]
drafts/tessellated [moved from content/projects/2008/tessellated with 100% similarity]
index.php
lib/data.php
lib/init.php
lib/markdown.php [changed mode: 0755->0644]
lib/output.php
lib/template.php
pages/bio
pages/contact [new file with mode: 0644]
pages/cv [new file with mode: 0644]
pages/index [deleted file]
pages/links
pages/tag [new file with mode: 0644]
scripts/content [changed mode: 0755->0644]
templates/default.html.tpl
templates/entry.html.tpl
templates/entry.news.html.tpl [new file with mode: 0644]
templates/head-inc.html.tpl
templates/index.html.tpl
templates/nav.html.tpl
templates/news.html.tpl [new file with mode: 0644]
templates/page.html.tpl
templates/projects.html copy.tpl [new file with mode: 0644]
templates/single.html.tpl
templates/tag.html.tpl [new file with mode: 0644]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..e43b0f9
--- /dev/null
@@ -0,0 +1 @@
+.DS_Store
index bef083f540a74d269188095e2a041b7c131d9b37..2790352b111ae4f7747e62271213be9e5b4a6f3e 100644 (file)
--- a/.htaccess
+++ b/.htaccess
@@ -1,9 +1,6 @@
-
-
 <IfModule mod_rewrite.c>
-RewriteEngine On
-RewriteBase /
-RewriteCond %{REQUEST_FILENAME} !-f
-#RewriteCond %{REQUEST_FILENAME} !-d
-RewriteRule . index.php [L]
+    RewriteEngine On
+    RewriteCond %{REQUEST_FILENAME} !-d
+    RewriteCond %{REQUEST_FILENAME} !-f
+    RewriteRule ^(.*)$ index.php?path=$1 [QSA,L]
 </IfModule>
diff --git a/README b/README
index 72e0e41303e63f391e6fdab913b8397567962240..86ab400a0a529eb118958d58967b23daaea4250c 100644 (file)
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
-Author: 
+Author:
 Gabriel Dunne <gdunne@quilime.com>
 
-Description: 
+Description:
 PLOG is an CMS engine written for quick and minimal publishing.
 
diff --git a/content/archive/cabspotting b/content/archive/cabspotting
deleted file mode 100644 (file)
index 6e2eb57..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-title = Cabspotting
---
-Cabspotting
\ No newline at end of file
diff --git a/content/archive/icarus_deadalus b/content/archive/icarus_deadalus
deleted file mode 100644 (file)
index e5f786d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-title = Icarus & Deadalus
---
-Icarus & Deadalus
\ No newline at end of file
diff --git a/content/archive/monad b/content/archive/monad
deleted file mode 100644 (file)
index 0ff118c..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-title = Monad
---
-Monadic visualization of the Universe
\ No newline at end of file
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5bbeb546c0295b4ffdbb3ba5ee960c19452e90ea 100644 (file)
@@ -0,0 +1,3 @@
+title = index
+template = index
+--
diff --git a/content/log/2010/05/new _blog b/content/log/2010/05/new _blog
deleted file mode 100644 (file)
index 2f974f5..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-title = Process [B]Log
-date = 2010-05-29
---
-First post.
\ No newline at end of file
diff --git a/content/log/2010/06/chapter_and_verse b/content/log/2010/06/chapter_and_verse
deleted file mode 100644 (file)
index 4ca11e3..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-title = Chapter and Verse
-date = 2010-06-01
---
-[Performing](http://www.biennialoftheamericas.org/artists/gabriel-dunne) a new audiovisual project **July 29th** in [Chapter and Verse](http://www.biennialoftheamericas.org/events/month/7/day/29) as part of "Nature of Things", for the Biennial of the Americas in Denver, CO. 
\ No newline at end of file
diff --git a/content/log/2010/11/icosi_gaffta b/content/log/2010/11/icosi_gaffta
deleted file mode 100644 (file)
index 5e1004e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-title = ICOSI Performance at Gray Area w/ Jeff Lubow
-date = 2010-11-05
---
-
-<img src="http://farm5.static.flickr.com/4084/4847387746_7352d3a039_z.jpg" />
-
-Date/Time: 06 Nov 2010 from 7:00 PM to 11:00 PM    
-Location: Gray Area Foundation for the Arts – 55 Taylor Street, San Francisco    
-Performances by Gabriel Dunne & Jeff Lubow, and Gregory Zifcak    
-
-
-Performances with audiovisual synthesis and projection mapped forms.
-
-[Event Link](http://www.gaffta.org/2010/11/03/takes-on-sound-space-symposium-performances-this-saturday/)
-
-
-
diff --git a/content/log/2011/05/clmpr b/content/log/2011/05/clmpr
deleted file mode 100644 (file)
index 52a4b3f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-title = clmpr.com
-date = may 24 2011
---
-
-<h2><a href="http://clmpr.com">clmpr.com</a></h2>
-
-<a href="http://clmpr.com">
-<img src="<?=MEDIA_ROOT?>/img/clmpr.png" /> 
-</a>
-
-clmpr is a clean, minimal bookmarking site.
-
-soon:  
-- tags  
-- public data endpoints  
-- group clmping  
-
diff --git a/content/log/2011/05/permenant b/content/log/2011/05/permenant
deleted file mode 100644 (file)
index a0322b8..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-date = Tue May 24 22:00:58 2011
---
-
-<img src="<?=MEDIA_ROOT?>/img/perm.png" />
\ No newline at end of file
diff --git a/content/news/bavc_2013 b/content/news/bavc_2013
new file mode 100644 (file)
index 0000000..e675600
--- /dev/null
@@ -0,0 +1,4 @@
+title = Film/Code remix
+--
+Co-teaching a Youth Film/Code Remix class at BAVC, starting in October.  
+[link](http://bavc.org)
diff --git a/content/news/config b/content/news/config
new file mode 100644 (file)
index 0000000..04b3f84
--- /dev/null
@@ -0,0 +1,12 @@
+title = news
+template = news
+--
+
+<form class="newsform" style="display:inline; border-right:1px #aaa solid; margin-right:30px; padding-right:30px;">
+receive email updates: <input type="text"> 
+<input type="button" value="submit address">
+<input type="radio" name="sub" checked>add
+<input type="radio" name="sub">remove
+</form><a href="<?=WEB_ROOT?>/.rss">rss</a>  
+(you will receive confirmation)
+
diff --git a/content/news/icosi_gaffta b/content/news/icosi_gaffta
new file mode 100644 (file)
index 0000000..57c988f
--- /dev/null
@@ -0,0 +1,10 @@
+title = ICOSI Performance at Gray Area Foundation for the Arts
+date = 2010-11-05
+tags = projection-mapping performance audiovisual
+--
+ICOSI Performance at Gray Area Foundation for the Arts  
+Date/Time: 06 Nov 2010 from 7:00 PM to 11:00 PM    
+Location: Gray Area Foundation for the Arts – 55 Taylor Street, San Francisco    
+ICOSI by Gabriel Dunne in collaboration with Jeff Lubow (Audio)  
+[link](http://www.gaffta.org/2010/11/03/takes-on-sound-space-symposium-performances-this-saturday/)
+
diff --git a/content/process/clmpr b/content/process/clmpr
new file mode 100644 (file)
index 0000000..6494709
--- /dev/null
@@ -0,0 +1,10 @@
+title = clmpr.com
+date = may 24 2011
+tags = code www opensource
+--
+
+<a href="http://clmpr.com">
+<img src="<?=MEDIA_ROOT?>/img/clmpr.png" />
+</a>
+
+clmpr is a minimal open-source bookmarking engine.
diff --git a/content/process/egg b/content/process/egg
new file mode 100644 (file)
index 0000000..7280d7f
--- /dev/null
@@ -0,0 +1,4 @@
+date = 2003-05-01
+--
+<img src="<?=MEDIA_ROOT?>/projects/egg/egg.jpg">
+<span class="caption">marker, wire. 4" x 2.5"</span>
similarity index 85%
rename from content/log/2010/07/icosi
rename to content/process/icosi
index 48f4de489c885925837a40622f17279efa18d6bc..6186855305a76da9f8ec9c7a743cf79d9d38d389 100644 (file)
@@ -1,8 +1,8 @@
-tags = fabrication, construction, icosi, installation, design
 title = icosi fabrication
 date = 2010-07-01
+tags = fabrication icosi design sculpture mapping
 --
-Fabrication process for ICOSI projection surface. The form is a section of an icosidodecahedron (scaled on the z-axis by 0.5). 
+Fabrication process for ICOSI projection surface. The form is a section of an icosidodecahedron (scaled on the z-axis by 0.5).
 
 <a href="http://www.flickr.com/photos/quilime/4743498955/" title="view on flickr">
 <img src="http://farm5.static.flickr.com/4077/4743498955_d8d524bd27.jpg" /></a>
similarity index 87%
rename from content/log/2010/07/icosi_biennial
rename to content/process/icosi_biennial
index fbd41bd57ebedf3faa43e7fad620aa0f94d239c4..1d877a0f644a37b8fc624fa3ef63417d6eac89d8 100644 (file)
@@ -1,5 +1,5 @@
-title = ICOSI
-tags = perf install projection vis aud
+title = ICOS Performance @ Biennial of the Americas, CO
+tags = performance installation projection visual audio
 notes = this might need to be split up into a few posts
 date = 2010-07-29
 --
@@ -7,21 +7,21 @@ date = 2010-07-29
 
 <img src="http://farm5.static.flickr.com/4110/4847387674_5419f0b672.jpg" />
 
-*ICOSI* is an audio/visual sculptural performance which was shown at the Biennial of the Americas, Denver CO, 2010.
+*ICOSI* is an audio/visual sculptural performance which was shown at the Biennial of the Americas, Denver CO, Jul 29 2010.
 
 audio synthesis created with Ablton Live/Max/MSP, custom software (OPENGL, Processing). Custom surface fabrication
 dimensions: 230cm x 230 cm (7.9' x 7.9')
 
 
-The software and audio toolset was developed over three weeks leading up to the performance. The performance dramatically split my focus into two places (music and visuals), which was a juggle that I didn't fully anticipate as I was developing the visual software on one split-screen before the performance. Inspired to continue pursuing interfaces and controllers to overcome the separation of creating audio and visuals simultaneously. 
+The software and audio toolset was developed over three weeks leading up to the performance. The performance dramatically split my focus into two places (music and visuals), which was a juggle that I didn't fully anticipate as I was developing the visual software on one split-screen before the performance. Inspired to continue pursuing interfaces and controllers to overcome the separation of creating audio and visuals simultaneously.
 
 The multiple mediums (sculpture, sound, visual media) of this particular project was fascinating. Each iteration represents a process of my own curiosities in technology, consciousness, spirituality, design, and fabrication.
 
-The piece represents my practice and experiences in regards to my own spiritual growth and experience. Geometrically, the form is inspired by sacred polyhedra that represent forms of transition. The choice of an [icosidodecahedron](http://en.wikipedia.org/wiki/Icosidodecahedron) represents transition of two frequencies, represented by an [icosahedron](http://en.wikipedia.org/wiki/Icosahedron) and its dual polyhedron, a [dodecahedron](http://en.wikipedia.org/wiki/Dodecahedron). 
+The piece represents my practice and experiences in regards to my own spiritual growth and experience. Geometrically, the form is inspired by sacred polyhedra that represent forms of transition. The choice of an [icosidodecahedron](http://en.wikipedia.org/wiki/Icosidodecahedron) represents transition of two frequencies, represented by an [icosahedron](http://en.wikipedia.org/wiki/Icosahedron) and its dual polyhedron, a [dodecahedron](http://en.wikipedia.org/wiki/Dodecahedron).
 
 The form is composed of 7 panels trimmed and scaled from a full icosidodecahedron. The visuals follow the structure of the form nearly explicitly, with the exception of textural elements.
 
 The inclusion of the Merkaba/Star Tetrahedron represents an inspiration for the visuals. The Merkaba, a dual spinning pyramid, represents a spiritual light vehicle used by the ancients to transcend to and contact spiritual realms. "Mer" means Light. "Ka" means Spirit. "Ba" means Body. Mer-Ka-Ba means the spirit/body surrounded by counter-rotating fields of light, (wheels within wheels), spirals of energy as in DNA, which transports spirit/body from one dimension to another. [[1]](http://www.crystalinks.com/merkaba.html)
 
 
-[more photos via flickr &rarr;](http://www.flickr.com/photos/quilime/sets/72157624499344281/with/4847387648/) 
+[more photos via flickr &rarr;](http://www.flickr.com/photos/quilime/sets/72157624499344281/with/4847387648/)
similarity index 88%
rename from content/log/2010/06/icosi_rider
rename to content/process/icosi_rider
index 14c95dd0a03b50a03ccba074b731a9e732aee59f..6aec4a6ff1fc7296704c084f5bf68c3782928c64 100644 (file)
@@ -3,7 +3,7 @@ date = 2010-06-10
 --
 Tech rider developed for new project:
 
-[![](/media/projects/icosi/rider_02_t.png)](/media/projects/icosi/rider_02.png) &nbsp;&nbsp; 
+[![](/media/projects/icosi/rider_02_t.png)](/media/projects/icosi/rider_02.png) &nbsp;&nbsp;
 [![](/media/projects/icosi/rider_01_t.png)](/media/projects/icosi/rider_01.png)
 
-[pdf](http://media.quilime.com/files/projects/icosi/gdunne_rider_diag.pdf)
\ No newline at end of file
+[pdf](http://media.quilime.com/files/projects/icosi/gdunne_rider_diag.pdf)
diff --git a/content/process/permenant b/content/process/permenant
new file mode 100644 (file)
index 0000000..d1dd04e
--- /dev/null
@@ -0,0 +1,5 @@
+date = Tue May 24 22:00:58 2011
+hide_title = true
+--
+
+<img src="<?=MEDIA_ROOT?>/img/perm.png" />
diff --git a/content/projects/1999/aero b/content/projects/1999/aero
deleted file mode 100644 (file)
index 2949f76..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-title = aero
-date = 1999
---
-
-<img src="<?=$data['media']?>/aero.jpg" />  
-<em>6" x 3" x 3", ceramic</em>
-
-aerodynamic blob vehicle
diff --git a/content/projects/1999/icarus-deadalus b/content/projects/1999/icarus-deadalus
deleted file mode 100644 (file)
index f6bd705..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-title = icarus and deadalus
-date = nov 1 1999
---
-
-<img src="<?=$data['media']?>/icarus.jpg" />  
-<em>16" x 16" x 4", balsa wood</em>
-
-The myth of Icarus depicted in a public-space courtyard design. 
diff --git a/content/projects/2003/bodyneg b/content/projects/2003/bodyneg
deleted file mode 100644 (file)
index adf03bf..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-title = body negative
---
-
-<img src="<?=$data['media']?>/BODYNEG.jpg">
-<br />
-ink press, 5 wall-mounted panels. 8' x 4' x 2'
-<br />
-pont even school of art final exhibition, France
diff --git a/content/projects/2003/egg b/content/projects/2003/egg
deleted file mode 100644 (file)
index 07e7b48..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-date = 2003
---
-<img src="<?=$data['media']?>/egg.jpg">  
-<span class="caption">marker, wire. 4" x 2.5"</span>
\ No newline at end of file
diff --git a/content/projects/2003/obsession b/content/projects/2003/obsession
deleted file mode 100644 (file)
index d1b7fc1..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-title = obsession
-date = 2003
---
-<img src="<?=$data['media']?>/detail.jpg">  
-<span class="caption">copper wire, masonite. 3.5' x 4.5'</span>
diff --git a/content/projects/2008/boat b/content/projects/2008/boat
deleted file mode 100644 (file)
index 6f7a9f9..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-title = boat
-data = 2010
---
-
-<?php
-$w = 535;
-$h = 374;
-?>
-
-
-<object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" id="qt_object" width="<?=$w?>" height="<?=$h?>" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0">
-<param name="type" value="video/quicktime">
-<param name="name" value="qt_object">
-<param name="nocache" value="true">
-<param name="autoplay" value="true">
-<param name="kioskmode" value="true">
-<param name="controller" value="true">
-<param name="loop" value="true">
-<param name="bgcolor" value="#000000">
-<param name="src" value="<?=$data['media']?>/boat.mov">
-<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">         
-<embed name = "qt_object" width="<?=$w?>" height="<?=$h?>" controller="true" loop="true" autoplay="true" src="<?=$data['media']?>/boat.mov" kioskmode="true" nocache="true" type="video/quicktime" bgcolor="#000000" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" enablejavascript="true">
-</embed>
-</object><br />
-<span class="caption">photo timelapse</span>
similarity index 100%
rename from content/archive/boat
rename to content/projects/boat
similarity index 87%
rename from content/archive/bodyneg
rename to content/projects/bodyneg
index 25d1507c1caf56b6dac80c29b5d42d09f8c2a5da..c9d8ddfc27129d7eac759ed26bb9fdfb8011632b 100644 (file)
@@ -1,9 +1,8 @@
 title = Bodyneg
 date = 2002
-tags = print mixed media
+tags = print installation
 thumb = /media/projects/bodyneg/thumb.png
 --
 <img src="/media/projects/bodyneg/BODYNEG.jpg" />
 <br />
 <em>ink press, 5 wall-mounted panels. 8' x 4' x 2'</em>
-
similarity index 94%
rename from content/projects/2007/cabspotting
rename to content/projects/cabspotting
index 813ce60c2257afb748ea8f650346e098ac0f4a65..63d870dd7934a5ab259bd593e498df928c5deb20 100644 (file)
@@ -1,6 +1,6 @@
 title = cabspotting
 date = 2009
-tags = cabs stamen whatever blah blah
+tags = datavis software stamen
 --
 
 <?
@@ -8,7 +8,6 @@ tags = cabs stamen whatever blah blah
     $h = 516;
 ?>
 
-
 <object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" id="qt_object" width="<?=$w?>" height="<?=$h?>" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0">
 <param name="type" value="video/quicktime">
 <param name="name" value="qt_object">
@@ -19,7 +18,7 @@ tags = cabs stamen whatever blah blah
 <param name="loop" value="true">
 <param name="bgcolor" value="#000000">
 <param name="src" value="<?=$data['media']?>/cabspotting_web.mov">
-<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">         
+<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">
 <embed name = "qt_object" width="<?=$w?>" height="<?=$h?>" controller="true" loop="true" autoplay="false" src="<?=$data['media']?>/cabspotting_web.mov" kioskmode="true" nocache="true" type="video/quicktime" bgcolor="#000000" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" enablejavascript="true">
 </embed>
 </object>
diff --git a/content/projects/obsession b/content/projects/obsession
new file mode 100644 (file)
index 0000000..0432bb5
--- /dev/null
@@ -0,0 +1,6 @@
+title = obsession
+date = 2003
+thumb = /media/projects/obsession/thumb.png
+--
+<img src="<?=MEDIA_ROOT?>/projects/obsession/detail.jpg">  
+<span class="caption">copper wire, masonite. 3.5' x 4.5'</span>
similarity index 74%
rename from content/log/2010/10/seaquence
rename to content/projects/seaquence
index 817a1447ed1a8f1fe07b86c485249b6c68ac55b4..62935589393d3859d0132153224a30d6be86a1ca 100644 (file)
@@ -1,9 +1,9 @@
 title = Seaquence
-tags = seaquence flash
+tags = code audio www
 notes = this might need to be split up into a few posts
 date = 2010-10-04
 --
 
 Alpha release of [Seaquence: A experimental web-based musical ecosystem](http://seaquence.org). 
 
-[http://seaquence.org](http://seaquence.org)
\ No newline at end of file
+[http://seaquence.org](http://seaquence.org)
similarity index 97%
rename from content/projects/2006/stars
rename to content/projects/stars
index 800862ecb2f9fee647746d77908fc263b13200b0..10e1259321133e3c4161cb0286ffca2266f85b89 100644 (file)
@@ -1,4 +1,5 @@
 title = Stars
+date = 2009
 --
 <img src="<?=$data['media']?>/stars.jpg" />
 
@@ -26,7 +27,7 @@ title = Stars
 <param name="loop" value="true">
 <param name="bgcolor" value="#000000">
 <param name="src" value="<?=$data['media']?>/stars.mov">
-<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">      
+<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">
 <embed name = "qt_object" width="640" height="496" controller="true" loop="true" autoplay="false" src="<?=$data['media']?>/stars.mov" kioskmode="true" nocache="true" type="video/quicktime" bgcolor="#000000" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" enablejavascript="true">
 </embed>
 </object>
@@ -36,4 +37,4 @@ title = Stars
 
 
 
-    
\ No newline at end of file
+
index e92bf70d720ddcb750778ad163a8dda264ea57cd..f64757ee3d2b13df0c81349f244b6a8958507ab7 100644 (file)
 html, body, table {
-     color: #555555;
-     font-family: sans-serif;
-     font-size: 12px;
-     line-height: 1.5em;
-}
-
+  color: #555555;
+  font-family: sans-serif;
+  font-size: 12px;
+  line-height: 1.5em; }
 body {
-     margin: 20px auto;
-}
+  margin: 20px; }
 
 a {
-     border: 0pt none;
-     color: #000000;
-}
-
-a img {
-     border: 0pt none;
-}
-
-a.mute {
-     text-decoration: none ! important;
-}
-
-a:hover, a.mute:hover {
-     border: medium none;
-     color: #0000FF;
-}
+  border: 0pt none;
+  color: #000000;
+  font-weight:bold;
+  text-decoration: none; }
+  a img {
+    border: 0pt none; }
+  a.mute {
+  text-decoration: none ! important; }
+  a:hover, a.mute:hover {
+    border: medium none;
+    color: #0000FF;
+    text-decoration: underline; }
 
 p {
-     margin: 20px auto;
-     max-width: 600px;
-     text-align: left;
-}
-
-p.center {
-     max-width: none;
-     text-align: center;
+  margin: 20px 0;
+  max-width: 800px;
+  text-align: left;
 }
+  p.center {
+    max-width: none;
+    text-align: center;
+  }
 
 .center {
-     text-align: center;
+  text-align: center;
 }
 
-strong {
-    
-}
+strong { }
 
 h1, h2, h3, h4, h5, h6 {
-     color: #333;
-     font-size: 16px;
-     font-weight: normal;
-     letter-spacing: 0.08em;
-}
+  color: #333;
+  font-size:1em; }
 
 h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
-     line-height: 2em;
-}
+  line-height: 2em; }
 
 h1 {
-     margin: 0pt 0pt 3em;
-}
+  margin: 0pt 0pt 3em; }
 
 h2 {
-     margin: 0pt 0pt 0.5em;
-}
+  margin: 0pt 0pt 0.5em; }
 
 h3 {
-     margin: 0pt;
-}
+  margin: 0pt; }
 
 ul, li {
-     list-style-type: none;
-     margin: 0pt;
-     padding: 0pt;
-}
+  list-style-type: none;
+  margin: 0pt;
+  padding: 0pt; }
 
 ol li {
-     list-style-type: decimal;
-}
+  list-style-type: decimal; }
 
 img {
-     margin-bottom: 0.25em;
-}
+  margin-bottom: 0.25em; }
 
 blockquote {
-     background: none repeat scroll 0pt 0pt #000000;
-     color: #AAAAAA;
-     font-family: times;
-     font-size: 15px;
-     font-style: italic;
-     line-height: 1.4em;
-     margin: 0pt;
-     max-width: 600px;
-     padding: 2em 4em;
-}
+  background: none repeat scroll 0pt 0pt #000000;
+  color: #AAAAAA;
+  font-family: times;
+  font-size: 15px;
+  font-style: italic;
+  line-height: 1.4em;
+  margin: 0pt;
+  max-width: 600px;
+  padding: 2em 4em; }
+
+
+
+
+
 
 #nav {
-    font-style:italic;
-     margin-bottom: 60px;
-     margin-left: 20px;
-    color:#999;
-}
+  color:#999;  
+  margin-bottom:6em;
+  }
+  #nav ul {
+    margin:0;
+    padding:0; }
+  #nav a {
+    border: 0pt none;
+    font-style:normal; 
+    border-radius:1px;
+  }
+  #nav a:hover {
+      text-decoration:none;
+  }
+  #nav li {
+     }
+  #nav .spacer {
+    width:1em;
+  }
+
 
-#nav .t {
-     font-weight: bold;
-}
 
-#nav a {
-     border: 0pt none;
-    font-style:normal;
-}
 
-#nav li {
-     margin-bottom: 0.2em;
-}
 
-#nav li.title {
-}
 
 #content {
-     left: 300px;
-     padding: 0pt 20px;
-     position: absolute;
-     top: 20px;
-     padding-bottom:50px;
-}
+  padding-bottom:50px; }  
+  #content p:first-child {
+  margin-top: 0pt;}
+
+.news {
 
-#content p:first-child {
-     margin-top: 0pt;
 }
+.news .entry {
+  margin-bottom: 4em;
+}
+.news .entry .date {
+  position:relative;
+  left:-1.25em; }
 
 .projects {
-    
 }
 
 .projects li {
-     display: inline-block;
-     margin: 0pt 20px 40px;
+  display:inline-block;
+  margin:0 20px 30px 0;
+  margin-bottom:40px;
 }
 
-.projects li {
-    
-}
 
 .projects li a.thumb {
-     border: 0pt none;
-     display: block;
-     height: 120px;
-     width: 200px;
+border: 0pt none;
+display: block;
+height: 120px;
+width: 200px;
 }
 
 .projects li img {
-     height: 100%;
-     width: 100%;
+height: 100%;
+width: 100%;
 }
 
 .projects li a {
-     color: #999999;
-     text-decoration: none;
+display:inline-block;
 }
 
 .entry {
-     margin-bottom: 150px;
+margin-bottom: 150px;
+display:block;
 }
 
 .entry h2 {
-    
+
 }
 
 .entry .title {
-     margin-bottom: 20px;
+
+}
+
+.entry .metadata {
+color:#999;
+}
+.entry .metadata a {
+
+}
+.entry .metadata .tags li {
+display:inline !important;
+}
+.entry .metadata .tags a {
+text-decoration: none;
 }
 
 .footer {
-     margin-top:50px;
+margin-top:50px;
 }
 
 .arrow {
-     font-weight:bold;
+margin-top:1em;
+font-weight:bold;
+font-size:14px;
 }
 .arrow a {
-     text-decoration:none;
+text-decoration:none;
 }
 
 .entry .date {
-    
 }
 
-.entry .tags {
-     color: #444444;
-     font-style: italic;
-     margin-top: 10px;
-}
 
-.entry .tags li {
-     display: inline-block;
-}
 
 .caption {
-     color: #444444;
-     font-style: italic;
-     margin-top: 5px;
+margin-top: 5px;
 }
diff --git a/data/tags.json b/data/tags.json
new file mode 100644 (file)
index 0000000..5fd61db
--- /dev/null
@@ -0,0 +1 @@
+{"tags":{"datavis":1,"software":1,"stamen":1,"print":1,"installation":2,"code":2,"www":2,"opensource":1,"audio":2,"performance":1,"projection":1,"visual":1,"icosi":2,"fabrication":2,"design":1,"sculpture":1,"mapping":1,"timelapse":1,"photography":1}}
\ No newline at end of file
diff --git a/drafts/aero b/drafts/aero
new file mode 100644 (file)
index 0000000..ffff74f
--- /dev/null
@@ -0,0 +1,7 @@
+title = aero
+date = 1999
+tags = sculpture sketch
+--
+
+<img src="<?=MEDIA_ROOT?>/projects/aero/aero.jpg" />
+6" &times; 3" &times; 3", ceramic
similarity index 100%
rename from content/archive/cat
rename to drafts/cat
similarity index 100%
rename from content/archive/cm
rename to drafts/cm
diff --git a/drafts/config b/drafts/config
new file mode 100644 (file)
index 0000000..d798728
--- /dev/null
@@ -0,0 +1,2 @@
+title = projects
+template = projects
\ No newline at end of file
similarity index 62%
rename from content/archive/cymatic_organ
rename to drafts/cymatic_organ
index 68e8400718c477d2d99609950ca2d485968cd5af..bf1b9d1b249c0a920d7d13332f7fbafb5bac8c0f 100644 (file)
@@ -1,3 +1,4 @@
 title = Cymatic Organ
 --
-Cymatic Organ
\ No newline at end of file
+Cymatic Organ
+
diff --git a/drafts/icarus-deadalus b/drafts/icarus-deadalus
new file mode 100644 (file)
index 0000000..6f2b180
--- /dev/null
@@ -0,0 +1,8 @@
+title = icarus and deadalus
+date = nov 1 1999
+--
+
+<img src="<?=MEDIA_ROOT?>/projects/icarus-deadalus/icarus.jpg" />
+<em>16" x 16" x 4", balsa wood</em>
+
+The myth of Icarus depicted in a public-space courtyard design.
similarity index 100%
rename from content/archive/icosi
rename to drafts/icosi
similarity index 50%
rename from content/projects/2009/mask
rename to drafts/mask
index e6a40566c5940c4e1172a5aeda5a5085005678f6..943d653d2d3963b38c8835cabd7c4d14621feb7b 100644 (file)
@@ -1,5 +1,7 @@
 title = mask
+date = 2009
+tags = painting
 --
 
-<img src="<?echo $data['media']?>/mask.jpg" />  
+<img src="<?echo $data['media']?>/mask.jpg" />
 <span class="caption">graphite on plywood. 12" x 12"</span>
diff --git a/drafts/monad b/drafts/monad
new file mode 100644 (file)
index 0000000..8c4fac6
--- /dev/null
@@ -0,0 +1,3 @@
+title = Monad
+--
+Visualization of the Universal timescale.
similarity index 100%
rename from content/archive/paintings
rename to drafts/paintings
similarity index 55%
rename from content/projects/2008/prism
rename to drafts/prism
index 6d34e4ea0538e8d9818b3b0225fc458d0047d272..13cae51fd3f3d66ae016af167c9f8a9831c0265c 100644 (file)
@@ -1,5 +1,6 @@
 title = prism
+date = 2010
 --
 
-<img src="<?echo $data['media']?>/3.jpg" />  
+<img src="<?echo $data['media']?>/3.jpg" />
 <span class="caption">oil on canvas. 4' x 3'</span>
similarity index 100%
rename from content/archive/rattles
rename to drafts/rattles
similarity index 100%
rename from content/archive/seashell
rename to drafts/seashell
similarity index 98%
rename from content/archive/sos_postcard
rename to drafts/sos_postcard
index d56abc4364473b50eec557f030f7d22c76bbe6aa..a31ab6df2864f6f5f808a9cb2874716740e81fbc 100644 (file)
@@ -1,3 +1,4 @@
 title = SOS Postcard
+
 --
 Self Organizing Systems Postcard
index 72a0112da2a48a55f1aaf530f30991a1b6f04aba..7513a921317940d50c415e54ff81a4f9eaf3923b 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,51 +1,68 @@
 <?php
 
-    require_once 'lib/init.php';
-
-    $url = get_url();
-    list($response_format, $response_mime_type) = parse_format($url['extension'], 'html');
-
-    # setup template
-    $t = get_template_instance();
-    $t->response_format = $response_format;
-    $t->assign('view', isset($_GET['v']) ? $_GET['v'] : null);
-
-    $content_request = LOCAL_ROOT . CONTENT_DIR . $url['dirname'] . '/' . $url['filename'];
-    $page_request =  LOCAL_ROOT . PAGE_DIR . DIRECTORY_SEPARATOR . $url['filename'];
-    $total = 0;
-
-    # content exists, and is a folder
-    if (is_dir($content_request)) {
-        # get config in folder, if exists
-        if (is_file($content_request . '/' . CONFIG_FILE )) {
-            $config = parse_entry(new SplFileInfo($content_request . '/' . CONFIG_FILE));
-            $template = $config['config']['template'] . '.' . $response_format . '.tpl' ;
-        }
-        list($data, $total) = get_entries($url['dirname'] . '/' . $url['filename']);
-        $t->assign('data', $data);
-        $t->assign('page_title', preg_replace('{^/|/$}', '', $url['url']));
-    }
+require_once 'lib/init.php';
 
-    # content exists, and is a single entry
-    else if (is_file($content_request)) {
-        $t->assign('data', parse_entry(new SplFileInfo($content_request)));
-        $t->assign('single', true);
-        $template = 'single.'.$response_format.'.tpl';
-    }
+$url = get_url();
+list($response_format, $response_mime_type) = parse_format($url['extension'], 'html');
+
+$content_req = LOCAL_ROOT . CONTENT_DIR . DIRECTORY_SEPARATOR . $url['url'];
+$page_req =  LOCAL_ROOT . PAGE_DIR . DIRECTORY_SEPARATOR . $url['url'];
+$total = 0;
+
+
+# setup template
+$template = 'default.html.tpl';
+$t = get_template_instance();
+$t->assign('url', $url);
 
-    # content exists, and is a page
-    else if (is_file($page_request)) {
-        $page = parse_entry(new SplFileInfo($page_request), 1);
-        $t->assign('data', $page);
-        $template = $page['config']['template'] ? $page['config']['template'] . '.' . $response_format . '.tpl' : 'page.' . $response_format . '.tpl';
+
+# special endpoints
+$dirs = explode('/', $url['url']);
+# tag
+if ($dirs[0] == 'tag') {
+    $page_req = LOCAL_ROOT . PAGE_DIR . DIRECTORY_SEPARATOR . $dirs[0];
+    if (isset($dirs[1])) {
+        $t->assign('tag', $dirs[1]);
     }
+}
+
 
-    # 404
-    else {
-        $template = '404.html.tpl';
+# content exists, and is a folder
+if (is_dir($content_req)) {
+    # get config in folder, if exists
+    if (is_file($content_req . '/' . CONFIG_FILE )) {
+        $config = parse_entry(new SplFileInfo($content_req . '/' . CONFIG_FILE));
+        $template = $config['config']['template'] . '.' . $response_format . '.tpl' ;
+        $t->assign('data', $config);
     }
+    list($entries, $total) = get_entries($url['dirname'] . '/' . $url['filename']);
+    $t->assign('entries', $entries);
+    $t->assign('page_title', preg_replace('{^/|/$}', '', $url['url']));
+}
+
+# content exists, and is a single entry
+else if (is_file($content_req)) {
+    $t->assign('data', parse_entry(new SplFileInfo($content_req)));
+    $t->assign('single', true);
+    $template = 'single.'.$response_format.'.tpl';
+}
+
+# content exists, and is a page
+else if (is_file($page_req)) {
+    $page = parse_entry(new SplFileInfo($page_req), 1);
+    $t->assign('data', $page);
+    $template = isset($page['config']['template']) ? $page['config']['template'] .
+    '.' . $response_format . '.tpl' : 'page.' . $response_format . '.tpl';
+}
+
+# 404
+else {
+    $template = '404.html.tpl';
+}
 
-    # render
-    $t->assign('total', $total);
-    header("Content-Type: {$response_mime_type}; charset=UTF-8");
-    $t->render($template);
+# render
+$t->response_format = $response_format;
+$t->assign('view', isset($_GET['v']) ? $_GET['v'] : null);
+$t->assign('total', $total);
+header("Content-Type: {$response_mime_type}; charset=UTF-8");
+$t->render($template);
index 9d156d1c25db3ff7bb2a18268fa8e85fb5f9b35c..b266ac3632133613bb5d6845d236e04cd681e931 100644 (file)
@@ -5,13 +5,14 @@
  *     @param path: the path to search. defaults to the CONTENT_DIR
  *     @param args array
  */
-function get_entries( $path = "", $args = array())
-{   
+function get_entries( $path = "", $args = array() )
+{
        $recursive = isset($args['recursive']) ? $args['recursive'] : 1;
        $order_by = empty($args['order_by']) ? null : $args['order_by'];
        $order = empty($args['order']) ? SORT_DESC : $args['order'];
-       $path = LOCAL_ROOT . CONTENT_DIR . $path;
-       
+       $tag = empty($args['tag']) ? null : $args['tag'];
+       $path = LOCAL_ROOT . CONTENT_DIR . DIRECTORY_SEPARATOR . $path;
+
        if ($recursive) {
                $iterator = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_PATHNAME);
                $dir_iterator = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
@@ -22,10 +23,15 @@ function get_entries( $path = "", $args = array())
        $entries = array();
        foreach ($dir_iterator as $file => $info) {
                if (!$info->isDir() && $info->getFilename() != CONFIG_FILE) {
-                       $entries[] = parse_entry($info);
+                       $entry = parse_entry($info);
+                       if (!isset($tag)) {
+                               $entries[] = $entry;
+                       }
+                       else if ($tag && in_array($tag, is_array($entry['tags']) ? $entry['tags'] : array())) {
+                               $entries[] = $entry;
+                       }
                }
        }
-
        switch ($order_by)
        {
                default :
@@ -58,16 +64,49 @@ function get_pages()
 
 
 /**
+ * get tags
+ */
+function get_tags($path = "", $args = array() )
+{
+       $tags_json = DATA_DIR . '/tags.json';
+
+       if (DEV || !file_exists($tags_json)) {
+               $entries = get_entries($path, $args);
+               $tags = array();
+
+               foreach($entries[0] as $entry) {
+                       $entry_tags = is_array($entry['tags']) ? $entry['tags'] : array();
+                       $tags = array_merge($tags, $entry_tags);
+               }
+
+               $tags = array_count_values($tags);
+
+               try {
+                       $fp = fopen( $tags_json, 'w');
+                       fwrite($fp, json_encode(array( 'tags' => $tags )));
+                       fclose($fp);
+                       if (!file_exists( $tags_json)) {
+                               throw new Exception('Error creating tags.json. Permissions?');
+                       }
+               } catch (Exception $e) {
+               echo 'Caught exception: ',  $e->getMessage(), "\n";
+               }
+       }
+
+       $json = json_decode(file_get_contents($tags_json));
+       return  get_object_vars($json->tags);
+}
+
+
+/*
  *     returns directories of a folder
  *     @param path the path to search. defaults to the CONTENT_DIR
  *     @param args array
  */
-function get_dirs( $path = "", $args = array())
+function get_dirs( $path = "", $args = array() )
 {
        $recursive = isset($args['recursive']) ? $args['recursive'] : 1;
-       $path = LOCAL_ROOT . CONTENT_DIR .'/'. $path;
-
-
+       $path = LOCAL_ROOT . CONTENT_DIR . '/' . $path;
 
        if ($recursive) {
                $iterator = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_PATHNAME);
@@ -128,6 +167,8 @@ function parse_entry($fileInfo, $page = 0)
        $file = array();
        $file['config'] = parse_ini_string($config);
        $file['title'] = isset($file['config']['title']) ? $file['config']['title'] : $fileInfo->getFilename();
+       $file['filename'] = $fileInfo->getFilename();
+       $file['path'] = $fileInfo->getPath();
        $file['config']['date'] = isset($file['config']['date']) ? $file['config']['date'] : null;
        $file['timestamp'] = $file['config']['date'] ? date('U', strtotime( $file['config']['date'])) : $fileInfo->getCTime();
        $file['tags'] = isset($file['config']['tags']) ? explode(" ", $file['config']['tags']) : null;
@@ -142,4 +183,4 @@ function parse_entry($fileInfo, $page = 0)
        $file['url'] = WEB_ROOT . ($page ? '' : substr($file['cat']['url'],1)) . $fileInfo->getFilename();
 
        return $file;
-}
\ No newline at end of file
+}
index 9021c45b9897c03177ae66940722a708052b931d..4e16b18560cd396f8541e5baf8254f41ed58d339 100644 (file)
@@ -1,28 +1,31 @@
 <?php
 
-    putenv("TZ=America/Los_Angeles");
+putenv("TZ=America/Los_Angeles");
 
-       ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . dirname(realpath(__FILE__)));
+ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . dirname(realpath(__FILE__)));
 
-    define ('SITE_TITLE', 'Gabriel Dunne');
-       define ('LOCAL_ROOT', '/home/quilime/gabrieldunne-site/');
-    define ('MEDIA_ROOT', 'http://'.$_SERVER['SERVER_NAME'].'/media');
-       define ('WEB_ROOT', 'http://'.$_SERVER['SERVER_NAME'].'/');
+define ('SITE_TITLE',       'gabrieldunne.com');
+define ('LOCAL_ROOT',       '/Users/gdunne/_portfolio/www/');
+define ('MEDIA_ROOT',       'http://'.$_SERVER['SERVER_NAME'].'/media');
+define ('WEB_ROOT',         'http://'.$_SERVER['SERVER_NAME'].'/');
 
-       define ('CONTENT_DIR', 'content');
-       define ('TEMPLATE_DIR', 'templates');
-       define ('PAGE_DIR', 'pages');
-       define ('CONFIG_DELIMITER', '--');
-    define ('MORE_DELIM', '<!--more-->');
-       define ('TITLE_DELIMITER', ': ');
-       define ('CONFIG_FILE', 'config');
+define ('DATA_DIR',         'data');
+define ('CONTENT_DIR',      'content');
+define ('TEMPLATE_DIR',     'templates');
+define ('PAGE_DIR',         'pages');
+define ('CONFIG_DELIMITER', '--');
+define ('MORE_DELIM',       '<!--more-->');
+define ('TITLE_DELIMITER',  ': ');
+define ('CONFIG_FILE',      'config');
 
-    require_once 'data.php';
-    require_once 'output.php';
-    require_once 'markdown.php';
-    require_once 'template.php';
+define ('DEV', true);
 
-   
-       //error_reporting(E_ALL);
-       //ini_set("display_errors", 1);
-       
+if (DEV) {
+   error_reporting(E_ALL);
+   ini_set("display_errors", 1);
+}
+
+require_once 'data.php';
+require_once 'output.php';
+require_once 'markdown.php';
+require_once 'template.php';
old mode 100755 (executable)
new mode 100644 (file)
index add2fbb5a6280250784f5dd9e06ebcaf7a7a0c1e..c3d5f0a4f44786e147dffb5f454ba01f91ca4743 100644 (file)
@@ -13,6 +13,7 @@ function get_template_instance()
     return $t;
 }
 
+
 /**
  *     @param format
  *  @param default format
@@ -21,7 +22,7 @@ function parse_format($format, $default)
 {
     $types = array('html' => 'text/html',
                    'text' => 'text/plain',
-                                  'rss'  => 'application/rss+xml',
+                   'rss'  => 'application/rss+xml',
                    'atom' => 'application/atom+xml',
                    'json' => 'text/json',
                    'js'   => 'application/x-javascript',
@@ -37,7 +38,6 @@ function parse_format($format, $default)
 
 function paginate( $set )
 {
-
 }
 
 
@@ -96,13 +96,13 @@ function approximate_time($seconds)
            return 'moments';
 
        case abs($seconds) <= 90 * 60:
-           return round(abs($seconds) / 60).' minutes';
+           return round(abs($seconds) / 60) . ' minutes';
 
        case abs($seconds) <= 36 * 60 * 60:
-           return round(abs($seconds) / (60 * 60)).' hours';
+           return round(abs($seconds) / (60 * 60)) . ' hours';
 
        default:
-           return round(abs($seconds) / (24 * 60 * 60)).' days';
+           return round(abs($seconds) / (24 * 60 * 60)) . ' days';
    }
 }
 
@@ -169,17 +169,18 @@ function get_base_href()
 
 function get_url_parts()
 {
-       $parts = explode('/', substr($_SERVER['SCRIPT_URL'], strlen(get_base_dir() . '/')));
+       $parts = explode('/', substr($_SERVER['SCRIPT_NAME'], strlen(get_base_dir() . '/')));
        return $parts[0] ? $parts : 0;
 }
 
 
 function get_url()
 {
-    $path_info = pathinfo($_SERVER['SCRIPT_URL']);
-    $path_info['url'] = preg_match("/\.\.\//", $_SERVER['SCRIPT_URL']) ? '/' : $_SERVER['SCRIPT_URL'];
-    $path_info['extension'] = null;
-    return $path_info; //substr($_SERVER['SCRIPT_URL'], strlen(get_base_dir() . '/'));
+    $path = isset($_GET['path']) ? $_GET['path'] : '/';
+    $path_info = pathinfo($path);
+    $path_info['url'] = rtrim($path, "/");
+    $path_info['extension'] = isset($path_info['extension']) ? $path_info['extension'] : null;
+    return $path_info;
 }
 
 
@@ -195,3 +196,5 @@ function get_url_domain($url)
     $parsed = parse_url($url);
     return $parsed['host'];
 }
+
+
index c3f379cd4b99b8aa9a679ee57bcc2a69d0c99f1e..d26bba449533443673c1ad488a3654444668ff07 100644 (file)
@@ -1,23 +1,20 @@
 <?php
 
 class Template
-{      
+{
        var $template_dir = 'templates';
        var $template_cache_dir = 'cache';
        var $cachr_file = null;
        var $response_format = 'html';
        var $caching = 1;
-       
+
        var $_tpl_vars = array();
 
 
-       function __construct()
-       {
-       }
-       
-       
-    function assign($tpl_var, $value = null)
-    {
+       function __construct() {}
+
+
+    function assign($tpl_var, $value = null) {
         if (is_array($tpl_var)) {
             foreach ($tpl_var as $key => $val)
                 if ($key != '')
@@ -29,26 +26,22 @@ class Template
     }
 
 
-       public function include_template ($template, $vars = array())
-       {
+    function include_template ($template, $vars = array()) {
                $this->_tpl_vars = array_merge($this->_tpl_vars, $vars);
                $this->render($template);
        }
-       
 
-       public function render( $template )
-       {
-               extract( $this->_tpl_vars );
 
+       function render( $template ) {
+               extract( $this->_tpl_vars );
                if (is_file( $this->template_dir . DIRECTORY_SEPARATOR . $template ))
                        include( $this->template_dir . DIRECTORY_SEPARATOR . $template );
                else
                        include( $this->template_dir . DIRECTORY_SEPARATOR . 'default.' . $this->response_format . '.tpl');
        }
-       
-       
-       public function page_title($delim)
-       {
+
+
+       function page_title($delim) {
                return isset($this->_tpl_vars['page_title']) ? $delim . $this->_tpl_vars['page_title'] : "";
        }
 }
index 7f191f610db3443579332bfb588102800890bf1d..a0659e0a4a37b802d7e650f6a344ca755212481f 100644 (file)
--- a/pages/bio
+++ b/pages/bio
-title = bio
+
 --
 
-**gabriel labov dunne**  
-(1981, San Francisco)  
-<br />
-1242 Market Street, FL 2  
-San Francisco, CA 94102  
-+ 1 415 493 8496    
-<a href="mailto:studio@gabrieldunne.com">email</a>  
-<br />
-<br />
+
+Born and lives in the San Francisco Bay Area, works internationally.
 
 <!--
 Gabriel Dunne develops artistic and research focused projects based on space, time, perception. Some key elements of his work are the overlap of physical, visual, and sonic perception. The use of light, sound, projection, and structure are prime mediums for his work.
 -->
 
-
-
-
-**residencies / collaborations**    
-2011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collaboration, Studio Vishal K. Dar    
-2009&mdash;2010 Residency, Gray Area Foundation for the Arts  
-<br />
-
-
-**exhibition / performance**
-2012 India Art Fair, Delhi, India. Collaboration with Vishal K Dar.
-2011 Sepalcure, Shigeto, Simple & Santa, GAFFTA, San Francisco. Live visuals. <a href="http://www.gaffta.org/2011/03/01/sepalcure-shigeto-simple-santa/">&rarr;</a>    
-2010 Milieux Sonores: Sound and Imaginary Space, GAFFTA, San Francisco. Live A/V performance.  
-2010 Biennial of the Americas, Denver.  Live A/V performance.   
-2010 Prototype, GAFFTA, San Francisco. Installation.  
-2010 Powers of Ten, GAFFTA. Installation.    
-2008 Design and the Elastic Mind, MoMA NYC Permanent Collection. Collab w/Stamen Design.    
-2006 Interferenze: Naturalis Electronica, Valle Caudina, Italy.    
-2006 Japan Media Arts Festival, Tokyo, Japan  
-2006 Festival Sonar, Barcelona, Spain  
-2006 SIGGRAPH, Boston   
-2005 New Wight Gallery MFA Show, UCLA, Los Angeles, CA (collab.)   
-2005 SIGGRAPH, Los Angeles  
-2005 :Output International Design Competition, Amsterdam, Netherlands  
-2005 CiberArt: International Festival of New Technologies, Bilbao, Spain  
-2004 Traffic, New Wight Gallery, UCLA, Los Angeles, CA. Collab w/Scott Hessels.        
-2003 Sur(Face), Design Media Arts EDA, Los Angeles, CA  
-2003 Eyberrations Digital Film Festival, Irvine, CA  
-2002 Melbourne International Film Festival", Melbourne, Australia  
-2002 Experimental Works On Paper, Paris, France  
-2002 Experimental Works On Paper, Rennes, France  
-2002 Jaquez Gallery Collection, Pont Aven, France. Permanent Collection.  
-<br />
-
-
-**public collections**  
-New York Museum of Modern Art, NY  
-Jaquez Gallery Collection, Pont Aven, France  
-<br />
-
-
-**edu**    
-2003 B.A. Design | Media Arts, UCLA    
-2001 Pont Aven School of Art, France   
-1999 College of Marin, Architecture   
-<br />
-
-
-
-**professional activity**    
-2010&mdash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bay Area Video Coalition, NextGen Youth Instructor   
-2005&mdash;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tessellated Group: Designer      
-2009&mdash;2010 Gray Area Foundation for the Arts: Studio Director   
-2007&mdash;2008 Stamen Design: Designer, Programmer    
-2007&mdash;2008 Google, Inc: Designer, Programmer    
-2004&mdash;2006 Motion Theory: Designer, Programmer, Animator
-<br />
-<br />
-
-
-
-
-**talks / conferences**  
-2010 "Prototype" Resident Artist Symposium, Gray Area, San Francisco  
-2004 Text + Architecture & Writing in Architecture, SCIARC, Los Angeles  
-2003 narr@tive: Digital Storytelling, Hammer Museum, Los Angeles  
-<br />
-
-**courses / lectures / workshops**  
-2011 Processing 101 Workshop(Certificate Program, Gray Area, San Francisco), 2 weeks  
-2010 Open Source Coding (Youth Program, BAVC, San Francisco), school year  
-2010 Creative Coding: An Introduction to Processing  (Gray Area, San Francisco), 2 weeks  
-2009 Creative Coding (Gray Area, San Francisco), 2 weeks    
-2009 Introduction to Processing (Gray Area, San Francisco), weekend    
-2007 Processing (Makers Faire, San Mateo), 2 hour    
-2005 Programming and Design (UCLA student workshops, Los Angeles), quarter  
-2004 Maya Workshop Series (UCLA, Los Angeles), 1 quarters  
-2003 Typography Workshop Series (UCLA, Los Angeles), 1 day    
-2003 Adobe Software Workshops, Photoshop/Illustrator/After Effects (UCLA, Los Angeles), 1 day each  
-2002 Macromedia Design Student Workshops (UCLA, Los Angeles), 1 day    
-<br />
-
-**websites**    
-2011 Duran Duran "All You Need Is Now" http://now.gaffta.org  
-2010 Seaquence http://seaquence.org  
-2007 Motion Theory [link]
-<br />
-
-**commercials**    
-Budwieser "Superbowl", Motion Theory  
-Budwieser "The Game", Motion Theory  
-Nike "One", Motion Theory
-<br />
-
-**shorts**    
-RestFest 2003 Opener, Motion Theory  
-The Mirror
-<br />
-
-
-**music videos**    
-Beck "Girl", Motion Theory  
-Papa Roach "Getting Away With Murder", Motion Theory  
-<br />
-
-
-**print / tv / radio**  
-Art College Radio, San Francisco  
-MIT Aerospace Annual  
-A'minima #17  
-FOCUS Italia, May Issue  
-Discover Magazine  
-Wired  
-Adult Swim, Cartoon Network  
-Contemporary Art of Science and Technology  
-AD: Architectural Digest  
-HDRI  
-<br />
-
-**awards**  
-Creative Review Best in Show 2005, Beck "Girl"  
-Type Directors Award, Nike "Golf"  
-AIGA, Hewlett Packard "It Consolidates"  
-AICP, Hewlett Packard "Hands"  
-Screen Network Australia Best in Show  
-Shorttakes Film Festival, Best Visual Effects  
-<br />
-
-**academic honors**  
-2002, 2003 UCLA Deans List  
-2001 UCLA Merit Scholarship  
-<br />
-
-**credentials**  
-Adobe A.C.E. Certified in Photoshop, Illustrator  
-<br />
diff --git a/pages/contact b/pages/contact
new file mode 100644 (file)
index 0000000..b2e047b
--- /dev/null
@@ -0,0 +1,44 @@
+
+--
+
+
+<!--
+Gabriel Dunne develops artistic and research focused projects based on space, time, perception. Some key elements of his work are the overlap of physical, visual, and sonic perception. The use of light, sound, projection, and structure are prime mediums for his work.
+-->
+
+
+Gabriel Labov Dunne    
+
+1242 Market Street, FL 2  
+San Francisco, CA 94102    
+
+studio@gabrieldunne.com  
+www.gabrieldunne.com  
+
+&plus; 1 415 493 8496    
+
+
+<br />
+
+<form>
+
+<p>
+<lable>name</label><br />
+<input type="text" name="name">
+</p>
+
+<p>
+<lable>email</label><br />
+<input type="text" name="email">
+</p>
+
+<p>
+<lable>message</label><br />
+<textarea style="width:250px;height:100px;"></textarea>
+</p>
+
+<p>
+<input type="submit" value="send">
+</p>
+
+</form>
diff --git a/pages/cv b/pages/cv
new file mode 100644 (file)
index 0000000..be097da
--- /dev/null
+++ b/pages/cv
@@ -0,0 +1,191 @@
+title = cv
+--
+
+**edu**    
+2003 B.A. Design | Media Arts, UCLA    
+2001 Pont Aven School of Art, France   
+1999 College of Marin, Architecture
+<br />
+<br />
+
+
+**select exhibition + performance**  
+2012 CCRMA Show. Live Visuals.   
+2012 Creators Project SF, San Francisco. "Audio Shader Toy", Installation (collab).  
+2012 India Art Fair, Delhi, India. Collaboration with Vishal K Dar.
+2011 Sepalcure, Shigeto, Simple & Santa, GAFFTA, San Francisco. Live visuals. <a href="http://www.gaffta.org/2011/03/01/sepalcure-shigeto-simple-santa/">&rarr;</a>    
+2010 Milieux Sonores: Sound and Imaginary Space, GAFFTA, San Francisco. Live A/V performance.  
+2010 Biennial of the Americas, Denver.  Live A/V performance.   
+2010 Prototype, GAFFTA, San Francisco. Installation.  
+2010 Powers of Ten, GAFFTA. Installation.    
+2008 Design and the Elastic Mind, MoMA NYC Permanent Collection. Collab w/Stamen Design.    
+2006 Interferenze: Naturalis Electronica, Valle Caudina, Italy.    
+2006 Japan Media Arts Festival, Tokyo, Japan  
+2006 Festival Sonar, Barcelona, Spain  
+2006 SIGGRAPH, Boston   
+2005 New Wight Gallery MFA Show, UCLA, Los Angeles, CA (collab.)   
+2005 SIGGRAPH, Los Angeles  
+2005 :Output International Design Competition, Amsterdam, Netherlands  
+2005 CiberArt: International Festival of New Technologies, Bilbao, Spain  
+2004 Traffic, New Wight Gallery, UCLA, Los Angeles, CA. Collab w/Scott Hessels.        
+2003 Sur(Face), Design Media Arts EDA, Los Angeles, CA  
+2003 Eyberrations Digital Film Festival, Irvine, CA  
+2002 Melbourne International Film Festival", Melbourne, Australia  
+2002 Experimental Works On Paper, Paris, France  
+2002 Experimental Works On Paper, Rennes, France  
+2002 Jaquez Gallery Collection, Pont Aven, France. Permanent Collection.
+<br />
+<br />
+
+
+
+**residencies / collaborations**    
+2011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Studio Collaboration w/ Studio Vishal K. Dar    
+2009&mdash;2010 Residency, Gray Area Foundation for the Arts
+<br />
+<br />
+
+
+
+
+
+**public collections**  
+New York Museum of Modern Art, NY  
+Jaquez Gallery Collection, Pont Aven, France
+<br />
+<br />
+
+
+
+
+**talks**  
+2010 "Prototype" Resident Artist Symposium, Gray Area, San Francisco  
+2004 Text + Architecture & Writing in Architecture, SCIARC, Los Angeles  
+2003 narr@tive: Digital Storytelling, Hammer Museum, Los Angeles
+<br />
+<br />
+
+
+**teaching/advisory**  
+2012 Film/Code Remix (Youth Program, BAVC, San Francisco), co-teach with Jonathan McIntosh.  1 yr.  
+2011 Creative Code (Youth Program, BAVC, San Francisco), 1 yr.    
+2011 Processing 101 Workshop(Certificate Program, Gray Area, San Francisco), 2 wk  
+2010 Open Source (Youth Program, BAVC, San Francisco), 1 yr.    
+2010 Creative Coding: An Introduction to Processing  (Gray Area, San Francisco), 2 wk  
+2009 Creative Coding (Gray Area, San Francisco), 2 wek    
+2009 Introduction to Processing (Gray Area, San Francisco), weekend    
+2007 Processing (Makers Faire, San Mateo), 2 hr    
+2005 Programming and Design (UCLA student workshops, Los Angeles), 1 semester  
+2004 Maya Workshop Series (UCLA, Los Angeles), 1 semester  
+2003 Typography Workshop Series (UCLA, Los Angeles), 1 day    
+2003 Adobe Software Workshops, Photoshop/Illustrator/After Effects (UCLA, Los Angeles), Lead Instructor, 1 day each  
+2002 Macromedia Design Student Workshops (UCLA, Los Angeles), 1 day
+<br />
+<br />
+
+
+**websites**    
+2011 Duran Duran "All You Need Is Now" http://now.gaffta.org  
+2010 Seaquence http://seaquence.org  
+2007 Motion Theory [link]
+<br />
+<br />
+
+**commercials**    
+Budwieser "Superbowl", Motion Theory  
+Budwieser "The Game", Motion Theory  
+Nike "One", Motion Theory
+<br />
+<br />
+
+
+**shorts**    
+RestFest 2003 Opener, Motion Theory  
+The Mirror
+<br />
+<br />
+
+
+
+**music videos**    
+Beck "Girl", Motion Theory  
+Papa Roach "Getting Away With Murder", Motion Theory
+<br />
+<br />
+
+
+
+**print / tv / radio**  
+Art College Radio, San Francisco  
+MIT Aerospace Annual  
+A'minima #17  
+FOCUS Italia, May Issue  
+Discover Magazine  
+Wired  
+Adult Swim, Cartoon Network  
+Contemporary Art of Science and Technology  
+AD: Architectural Digest  
+HDRI
+<br />
+<br />
+
+
+**awards**  
+Creative Review Best in Show 2005, Beck "Girl"  
+Type Directors Award, Nike "Golf"  
+AIGA, Hewlett Packard "It Consolidates"  
+AICP, Hewlett Packard "Hands"  
+Screen Network Australia Best in Show  
+Shorttakes Film Festival, Best Visual Effects
+<br />
+<br />
+
+
+**academic honors**  
+2002, 2003 UCLA Deans List  
+2001 UCLA Merit Scholarship
+<br />
+<br />
+
+**credentials**  
+Adobe A.C.E. Certified in Photoshop, Illustrator
+<br />
+<br />
+
+
+
+
+
+
+
+
+**professional activity**    
+2012&mdash;cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Obscura Digital, Consultant      
+2010&mdash;cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bay Area Video Coalition, Youth Instructor   
+2005&mdash;cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tessellated Group, Designer  
+1999&mdash;cur&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Studio Gabriel Dunne, Owner    
+2009&mdash;2010 Gray Area Foundation for the Arts, Studio Director/Resident Artist     
+2007&mdash;2008 Stamen Design, Data Visualization Software Developer   
+2007&mdash;2008 Google, Inc, Data Visualization Software Developer   
+2004&mdash;2006 Motion Theory: Animator, Designer, Software, 
+<br />
+<br />
+
+**commercial & non/profit clients**  
+Ogilvy & Mather  
+Goodby, Silverstein & Partners  
+Mekanism  
+Hewlett Packard  
+Nike     
+Budweiser  
+Cadillac  
+Ogilvy & Mather  
+The Soup  
+Tessellated Group  
+Google  
+YouTube  
+Gray Area Foundation for the Arts  
+Bay Area Video Coalition  
+Duran Duran
+<br />
+<br />
diff --git a/pages/index b/pages/index
deleted file mode 100644 (file)
index eab0d4d..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-title = index
---
\ No newline at end of file
index d8fcb1b5f00c9c3ef09136dbaa92de119c02f18e..6914b61395fb6328929377379167126643bb6b9b 100644 (file)
@@ -1,44 +1,29 @@
 title = links
-type = page
 --
-*elsewhere* 
 
-+ [quilime.com](http://quilime.com)
-
-<br />
-*friends* 
-
-+ stephanie sherriff [ssherriff.com](http://ssherriff.com)  
-+ ryan alexander [onecm.com](http://onecm.com) 
-+ adam roth [ripevessel.com](http://ripevessel.com) 
-+ joshua nimoy [jtnimoy.net](http://jtnimoy.net)
-+ daniel massey [oddsympathy.com](http://oddsympathy.com)
-+ keith pasko [keithpasko.com](http://keithpasko.com)
-+ jeff lubow [dabkitsch.com/jml/](http://dabkitsch.com/jml/)
-+ michael chang [ghost-hack.com](http://ghost-hack.com)
-+ robert hodgin [flight404.com](http://flight404.com)
-+ carbon workshop (gustavo huber + shelly brown) [carbonworkshop.com](http://carbonworkshop.com)
-+ sascha pohflep [pohflepp.com](http://pohflepp.com)
-+ mylinh trieu [mylinhtrieu.com](http://mylinhtrieu.com)
-+ aaron meyers [universaloscillation.com](http://universaloscillation.com)
-+ tom carden [tom-carden.co.uk](http://tom-carden.co.uk)
-+ michal migurski [mike.teczno.co](http://mike.teczno.com)
-+ david rager [davidrager.org](http://davidrager.org)
-+ marc nimoy [digitanalog.net](http://digitanalog.net) 
-+ matthew gale [makaga.com](http://makaga.com)
-+ frédéric eyl [fredericeyl.de](http://fredericeyl.de)
-+ the green eyl [thegreeneyl.com](http://thegreeneyl.com)
-
-
-<br />
-*respect* 
-
-+ nervous system [http://n-e-r-v-o-u-s.com/](http://n-e-r-v-o-u-s.com/)
-
-
-
-<br />
-*places* 
-
-+ gray area foundation for the arts [gaffta.org](http://gaffta.org)
-+ bay area video coalition [bavc.org](http://bavc.org)
\ No newline at end of file
++   [quilime.com](http://quilime.com) process blog  
++   [ssherriff.com](http://ssherriff.com) stephanie sherriff
++   [onecm.com](http://onecm.com) ryan alexander
++   [ripevessel.com](http://ripevessel.com) adam roth
++   [jtnimoy.net](http://jtnimoy.net) joshua nimoy
++   [oddsympathy.com](http://oddsympathy.com) daniel massey
++   [carbonworkshop.com](http://carbonworkshop.com) gustavo huber &amp; shelly brown
++   [keithpasko.com](http://keithpasko.com) keith pasko
++   [dabkitsch.com/jml/](http://dabkitsch.com/jml/) jeff lubow
++   [ghost-hack.com](http://ghost-hack.com) michael chang
++   [flight404.com](http://flight404.com) robert hodgin
++   [pohflepp.com](http://pohflepp.com) sascha pohflep
++   [mylinhtrieu.com](http://mylinhtrieu.com) mylinh ttieu nguyen
++   [fredericeyl.de](http://fredericeyl.de) frédéric eyl 
++   [thegreeneyl.com](http://thegreeneyl.com) the green eyl 
++   [universaloscillation.com](http://universaloscillation.com) aaron meyers
++   [aaronkoblin.com](http://aaronkoblin.com) aaron koblin
++   [tom-carden.co.uk](http://tom-carden.co.uk) tom carden
++   [mike.teczno.co](http://mike.teczno.com) michal migurski
++   [davidrager.org](http://davidrager.org) david rager
++   [digitanalog.net](http://digitanalog.net) marc nimoy 
++   [makaga.com](http://makaga.com) matthew gale 
++   [reas.com](http://rea.com/) casey reas  
++   [n-e-r-v-o-u-s.com](http://n-e-r-v-o-u-s.com/) nervous system 
++   [gaffta.org](http://gaffta.org) gray area foundation for the arts (GAFFTA)
++   [bavc.org](http://bavc.org) bay area video coalition (BAVC)
diff --git a/pages/tag b/pages/tag
new file mode 100644 (file)
index 0000000..23f9a51
--- /dev/null
+++ b/pages/tag
@@ -0,0 +1,31 @@
+title = tags
+--
+
+
+<? if (isset($tag)): ?>
+
+<? list($entries, $total) = get_entries('/', $args = array('tag' => $tag)); ?>
+<? foreach($entries as $entry): ?>
+<?
+if (isset($entry['content_short']))
+$entry['content'] = $entry['content_short'] .
+'<br /><a class="more" href="' . $entry['url'] . '">more &rarr;</a><br /><br />';
+?>
+
+<div class="entry">
+<? $this->include_template('entry.html.tpl', array('entry' => $entry)); ?>
+</div>
+
+<? endforeach; ?>
+
+<? else: ?>
+
+
+<ul class="tags">
+<? $tags = get_tags('/'); ksort($tags); ?>
+<? foreach($tags as $tag => $count) : ?>
+<li><a href="/tag/<?=$tag?>"><?=$tag?></a> &times; <?=$count?></li>
+<? endforeach; ?>
+</ul>
+
+<? endif; ?>
old mode 100755 (executable)
new mode 100644 (file)
index 51ffbe1add68d99a071e25ab6b4e2f3ff944449e..d5dfa37b1834a6aede50a89159c4cdff5c0d59dc 100644 (file)
@@ -1,28 +1,28 @@
 <html>
 <head>
-    
+
     <? $this->include_template('head-inc.html.tpl') ?>
-    
+
     <title><?=SITE_TITLE?><?=$this->page_title(TITLE_DELIMITER);?></title>
-    
+
 </head>
 <body>
-    
+
     <? $this->include_template('nav.html.tpl') ?>
-    
+
 <div id="content">
-    
-       <? foreach($data as $entry): ?>
-       <?
 
-    if ($entry['content_short']) 
+       <? foreach($entries as $entry): ?>
+    <div class="entry">
+       <?
+    if (isset($entry['content_short']))
         $entry['content'] = $entry['content_short'] . '<br /><a class="more" href="'.$entry['url'].'">more &rarr;</a><br /><br />';
-        
-    $this->include_template('entry.html.tpl', array('data' => $entry)); 
-        
+
+    $this->include_template('entry.html.tpl', array('entry' => $entry));
     ?>
-       <? endforeach; ?>       
-       
+    </div>
+       <? endforeach; ?>
+
 </div>
 
        <? $this->include_template('footer.html.tpl') ?>
index 38114f2d7d502bf5c9760e626337226b88c8a2e3..8454017a075246ebaab2a8161b8bdec432e58152 100644 (file)
@@ -1,22 +1,37 @@
-<div class="entry">
 
-       <div class="content">
-               <? eval('?>' . $data['content']); ?>
-       </div>
+<? if(!isset($entry['config']['hide_title'])) : ?>
+       <h2 class="title"><a href="<?=$entry['url']?>"><?=$entry['title']?></a></h2>
+<? endif; ?>
 
-       <div class="arrow" title="<?=$data['title']?> - <?=date("Y-m-d", $data['timestamp'])?>">
-               <a href="<?=$data['url']?>">&rarr;</a>
-       </div>
-       
-       <!-- 
-       <div class="metadata">
-               <div class="date" title="<?=get_relative_time($data['timestamp']);?>"><?=date("Y-m-d", $data['timestamp'])?></div>
-               <ul class="tags">
-               <?php if ($data['tags']) 
-                       echo '<li>' . implode($data['tags'], ' ') . '</li>';
-               ?>
-               </ul>
-       </div>   
-       -->
+<div class="content">
+       <? eval('?>' . $entry['content']); ?>
+</div>
 
+<div class="metadata">
+       <div class="date" title="<?=get_relative_time($entry['timestamp']);?>"><?=date("Y/m/d", $entry['timestamp'])?></div>
+       <? if ($entry['tags']) : ?>
+               tagged <span class="tags">
+               <?
+               for($i = 0; $i < sizeof($entry['tags']); $i++) :
+                       $tag = $entry['tags'][$i];
+                       $li = '<a href="'.WEB_ROOT . 'tag/' . $tag . '">' . $tag . '</a>';
+                       if ($i !== 0)
+                               $li = ', ' . $li;
+                       echo $li;
+               endfor;
+               ?>
+               </span>
+       <?
+       endif;
+       ?>
 </div>
+
+<? if (isset($single) && $single) : ?>
+       <div class="arrow" title="<?=$entry['cat']['entry']?>">
+               <a href="<?=$entry['cat']['url']?>">&larr;</a>
+       </div>
+<? else : ?>
+       <div class="arrow" title="<?=$entry['title']?> - <?=date("Y-m-d", $entry['timestamp'])?>">
+               <a href="<?=$entry['url']?>">&rarr;</a>
+       </div>
+<? endif; ?>
diff --git a/templates/entry.news.html.tpl b/templates/entry.news.html.tpl
new file mode 100644 (file)
index 0000000..dcfb779
--- /dev/null
@@ -0,0 +1,8 @@
+
+<div class="metadata">
+       <div class="date" title="<?=get_relative_time($data['timestamp']);?>">&mdash; <?=date("Y / m / d", $data['timestamp'])?></div>
+</div>
+
+<div class="content">
+       <? eval('?>' . $data['content']); ?>
+</div>
index d40b6f28eba12c7d0d0c4c14e21d914af52b8bef..cba64dbecf15db55615b36e683b1ef339b4879a7 100644 (file)
@@ -7,7 +7,8 @@
 <script>
 
 $(document).ready(function() {
+    $("#content").hide().fadeIn(250);
        prettyPrint();
 });
 
-</script>
\ No newline at end of file
+</script>
index 4de5f3cd4f80743ababa3d306f3ca086de79713c..14af67826a6e90d8cb8e4b08e3429cdb241dcc6d 100644 (file)
@@ -1,16 +1,18 @@
 <html>
 <head>
-    
+
     <? $this->include_template('head-inc.html.tpl') ?>
-    
+
     <title><?=SITE_TITLE?></title>
-    
+
 </head>
 <body>
-    
+
     <? $this->include_template('nav.html.tpl') ?>
-    
-<div id="content"><pre>>>> Hello World</pre></div>
+
+<div id="content">
+
+</div>
 
        <? $this->include_template('footer.html.tpl') ?>
 
index baf9f5bb2e799ad053fc4f2b828962ab09c0c822..ce12401e78dd9317452df617a59904cdf1fb34e0 100644 (file)
@@ -1,12 +1,28 @@
 <ul id="nav">
 
-    <li><a href="/projects/">projects</a></li>
-    <li><a href="/log/">log</a></li>
-    <li><a href="/bio/">bio</a></li>
-    <li><a href="/links/">links</a></li>        
+    <li><a href="<?=WEB_ROOT?>">gabriel labov dunne</a></li>
+
+    <li class="spacer">&nbsp;</li>    
+
+    <? $dirs = get_dirs('', $args = array('recursive' => false) ); ?>
+    <? foreach($dirs as $dir) : ?>
+    <li><a href="<?=$dir['url']?>"><?=$dir['name']?></a></li>
+    <? endforeach; ?>
+    <? $pages = get_pages('', $args = array('recursive' => false) ); ?>
+    <? foreach($pages as $page) :
+        if (isset($page['config']['hidden']) && $page['config']['hidden'])
+            continue;
+     ?>
+    <li><a href="<?=$page['url']?>"><?=$page['title']?></a></li>
+    <? endforeach; ?>
+
+
+
+
 
+<!--
     <br /><br />
-    
+
     <li><a href="/"><em>recent</em></a></li>
 
     <br />
 
     <li><a href="/archive/"><em>archive</em></a></li>
 
-    <br />    
+    <br />
      <? $dirs = get_dirs('projects/'); ?>
      <? foreach($dirs as $dir) : ?>
      <li><a href="<?=$dir['url']?>"><?=$dir['name']?></a></li>
-     <? endforeach; ?>   
+     <? endforeach; ?>
+
 
-<!--
     <br /><br/>
 
 
     <li><a href="/projects/">projects</a></li>
-    
+
     <? list($entries, $total) = get_entries('/projects/'); ?>
     <? foreach($entries as $p) : ?>
     <li><a href="<?=$p['url']?>"><?=$p['title']?></a></li>
@@ -38,5 +54,5 @@
     <br /><br/>
     -->
 
-    
-</ul>
\ No newline at end of file
+
+</ul>
diff --git a/templates/news.html.tpl b/templates/news.html.tpl
new file mode 100644 (file)
index 0000000..a6d5d31
--- /dev/null
@@ -0,0 +1,36 @@
+<html>
+<head>
+
+    <? $this->include_template('head-inc.html.tpl') ?>
+
+    <title><?=SITE_TITLE?><?=$this->page_title(TITLE_DELIMITER);?></title>
+
+</head>
+<body>
+
+    <? $this->include_template('nav.html.tpl') ?>
+
+<div id="content" class="news">
+
+    <? eval('?>' . $data['content']); ?>
+
+    <br />
+    <br />
+    <br />
+
+       <? foreach($entries as $entry): ?>
+    <div class="entry">
+       <?
+    if (isset($entry['content_short']))
+        $entry['content'] = $entry['content_short'] . '<br /><a class="more" href="'.$entry['url'].'">more &rarr;</a><br /><br />';
+    $this->include_template('entry.news.html.tpl', array('data' => $entry));
+    ?>
+    </div>
+       <? endforeach; ?>
+
+</div>
+
+       <? $this->include_template('footer.html.tpl') ?>
+
+</body>
+</html>
index b46a1fdd4ed743efd158ff3d53dc74a7af0789cc..fcf54a5173b2a557f89297aae4f1f47221d7879c 100644 (file)
@@ -1,19 +1,19 @@
 <html>
 <head>
-    
+
     <? $this->include_template('head-inc.html.tpl') ?>
-    
+
     <title><?=SITE_TITLE?><?=TITLE_DELIMITER?> <?=$data['title']?></title>
-    
+
 </head>
 <body>
-    
+
     <? $this->include_template('nav.html.tpl') ?>
-    
+
 <div id="content" class="page">
-    
-       <?=$data['content'];?>
-       
+
+       <? eval('?>' . $data['content']); ?>
+
 </div>
 
        <? $this->include_template('footer.html.tpl') ?>
diff --git a/templates/projects.html copy.tpl b/templates/projects.html copy.tpl
new file mode 100644 (file)
index 0000000..d8bb648
--- /dev/null
@@ -0,0 +1,31 @@
+<html>
+<head>
+
+    <? $this->include_template('head-inc.html.tpl') ?>
+
+    <title><?=SITE_TITLE?>: <?=$page_title?></title>
+
+</head>
+<body>
+
+    <? $this->include_template('nav.html.tpl') ?>
+
+<div id="content">
+
+       <ul class="thumbs">
+       <? foreach($data as $entry): ?>
+               <li>
+            <a href="<?=$entry['url']?>" class="thumb">
+            <img src="<?=$entry['thumb']?>" /><br/>
+            </a>
+            <a href="<?=$entry['url']?>"><?=$entry['title']?></a>
+               </li>
+       <? endforeach; ?>
+       </ul>
+
+</div>
+
+       <? $this->include_template('footer.html.tpl') ?>
+
+</body>
+</html>
index 7f2ffc105f68623c4d133a724f72d65f99bcb150..90269bb637f25e47584c26484a5de389ae1d0432 100644 (file)
@@ -1,40 +1,19 @@
 <html>
 <head>
-    
+
     <? $this->include_template('head-inc.html.tpl') ?>
-    
+
     <title><?=$data['title'];?></title>
-    
+
 </head>
 <body>
-    
-    <? $this->include_template('nav.html.tpl') ?>
-    
-       <div id="content" class="single entry">
 
-               <div class="content">
-                       <? eval('?>' . $data['content']); ?>
-               </div>
-
-               <div class="arrow">
-                       <a href="<?=$data['cat']['url'];?>" title="<?=$data['cat']['url'];?>">&larr;</a>
-               </div>
-
-<!--<div class="date" title="<?=get_relative_time($data['timestamp']);?>"><?=date("Y-m-d", $data['timestamp'])?></div>-->
-
-                       <!--
-                       <div class="metadata">
-                               <div class="date" title="<?=get_relative_time($data['timestamp']);?>"><?=date("Y-m-d", $data['timestamp'])?></div>
-                               <br />
-                               <a href="<?=$data['cat']['url'];?>">&larr; <?=$data['cat']['name'];?></a>
-                               <ul class="tags">
-                               <? if ($data['tags']) foreach($data['tags'] as $tag) : ?>
-                               <li>#<?=$tag?></li>
-                               <? endforeach; ?>
-                               </ul>
-                       </div>
-                       -->
+    <? $this->include_template('nav.html.tpl') ?>
 
+       <div id="content" class="single entry">
+           <div class="entry">
+           <? $this->include_template('entry.html.tpl', array('data' => $data, 'single' => true)); ?>
+           </div>
        </div>
 
        <? $this->include_template('footer.html.tpl') ?>
diff --git a/templates/tag.html.tpl b/templates/tag.html.tpl
new file mode 100644 (file)
index 0000000..cf0afe8
--- /dev/null
@@ -0,0 +1,48 @@
+<html>
+<head>
+
+    <? $this->include_template('head-inc.html.tpl') ?>
+
+    <title><?=SITE_TITLE?><?=TITLE_DELIMITER?> <?=$data['title']?></title>
+
+</head>
+<body>
+
+    <? $this->include_template('nav.html.tpl') ?>
+
+<div id="content" class="page">
+
+    <? if (isset($tag)): ?>
+
+        <? list($entries, $total) = get_entries('/', $args = array('tag' => $tag)); ?>
+        <? foreach($entries as $entry): ?>
+        <?
+        if (isset($entry['content_short']))
+            $entry['content'] = $entry['content_short'] .
+            '<br /><a class="more" href="' . $entry['url'] . '">more &rarr;</a><br /><br />';
+    ?>
+
+        <div class="entry">
+        <? $this->include_template('entry.html.tpl', array('data' => $entry)); ?>
+        </div>
+
+        <? endforeach; ?>
+
+    <? else: ?>
+
+
+    <ul class="tags">
+    <? $tags = get_tags('/'); ksort($tags); ?>
+    <? foreach($tags as $tag => $count) : ?>
+    <li><a href="/tag/<?=$tag?>"><?=$tag?></a> &times; <?=$count?></li>
+    <? endforeach; ?>
+    </ul>
+
+    <? endif; ?>
+
+</div>
+
+       <? $this->include_template('footer.html.tpl') ?>
+
+</body>
+</html>