TODO
- pagination (View)
-- prev/next (View)
-- static cache generation (wget? curl?)
+
+- canvas icons for list/thumb/tile views (js)
+
+- static cache generation (wget? curl?)
+
- update content.sh to give back help if used incorrectly
-nice things
-- highlight categories from index
\ No newline at end of file
+
+
+done
+- prev/next (View)
tags = arch linux windows installation tutorial
--
-
Documentation of the process of installing [archlinux](http://www.archlinux.org/) and Windows 7 in a dual-boot configuration.
## System Specs
export LSCOLORS=gxFxCxDxBxgggdabagacad
export EDITOR='emacs'
-</pre>
\ No newline at end of file
+</pre>
+title = quilime
template = index
-title = delhi 2011
\ No newline at end of file
+
title = obsession
-date = 203
+date = 2003-07-04
thumb = http://portfolio.quilime.com/2008/obsession/thumb.png
--
<img src="obsession/detail.jpg">
title = aero
-date = 2007
+date = 2007-04-01
thumb = http://portfolio.quilime.com/2008/aero/thumb.png
--
<img src="http://portfolio.quilime.com/2008/aero//aero.jpg" />
title = boat
-date = 2007
+date = 2007-01-01
--
<object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" id="qt_object" width="535" height="374" 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="nocache" value="false">
+<param name="autoplay" value="false">
+<param name="kioskmode" value="false">
<param name="controller" value="true">
<param name="loop" value="true">
<param name="bgcolor" value="#000000">
<param name="src" value="http://portfolio.quilime.com/2008/boat/boat.mov">
-<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">
-<embed name = "qt_object" width="535" height="374" controller="true" loop="true" autoplay="true" src="http://portfolio.quilime.com/2008/boat/boat.mov" kioskmode="true" nocache="true" type="video/quicktime" bgcolor="#000000" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" enablejavascript="true">
+<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">
+<embed name = "qt_object" width="535" height="374" controller="true" loop="true" autoplay="false" src="http://portfolio.quilime.com/2008/boat/boat.mov" kioskmode="false" nocache="false" type="video/quicktime" bgcolor="#000000" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" enablejavascript="true">
</embed>
</object>
title = bodyneg
-date = 2008
+date = 2004-06-05
thumb = http://portfolio.quilime.com/2008/bodyneg/thumb.png
--
title = Cabspotting
-date = 2006
+date = 2006-05-01
thumb = http://portfolio.quilime.com/2008/cabspotting/thumb.png
--
<object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" id="qt_object" width="800" height="516" 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="nocache" value="false">
+<param name="autoplay" value="false">
+<param name="kioskmode" value="false">
<param name="controller" value="true">
<param name="loop" value="true">
<param name="bgcolor" value="#000000">
<param name="src" value="http://portfolio.quilime.com/2008/cabspotting/cabspotting_web.mov">
-<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">
-<embed name = "qt_object" width="800" height="516" controller="true" loop="true" autoplay="true" src="http://portfolio.quilime.com/2008/cabspotting/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">
+<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">
+<embed name = "qt_object" width="800" height="516" controller="true" loop="true" autoplay="false" src="http://portfolio.quilime.com/2008/cabspotting/cabspotting_web.mov" kioskmode="false" nocache="false" type="video/quicktime" bgcolor="#000000" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" enablejavascript="true">
</embed>
</object>
title = dots
-date = 2007
+date = 2007-05-02
--
<img style="width:100%;" src="http://portfolio.quilime.com/new/content/01_Dots/images/out.0033.png">
title = icarus
-date = 2007
+date = 1999-08-05
thumb = http://portfolio.quilime.com/2008/icarus/thumb.png
--
<img src="http://portfolio.quilime.com/2008/icarus/icarus.jpg" />
title = Jellyfish
-date = 2008
+date = 2008-05-01
--
<img style="width:100%;" src="http://portfolio.quilime.com/new/content/02_Jellyfish/images/jellies.0237.png">
title = spacelamp
-date = 2007
+date = 2007-03-10
thumb = http://portfolio.quilime.com/2008/spacelamp/thumb.png
--
<img src="http://portfolio.quilime.com/new/content/07_Light/images/light2.jpg">
+<!--more-->
+
<img src="http://portfolio.quilime.com/new/content/07_Light/images/noton.jpg">
found plexi (street find by ss). Added lights, hung with wire. The beginnings of exploring interactive sculpture.
title = mask
-date = 2007
+date = 2007-07-02
thumb = http://portfolio.quilime.com/2008/mask/thumb.png
--
title = prism
-date = 2007
+date = 2007-08-23
thumb = http://portfolio.quilime.com/2008/prism/thumb.png
--
title = rattle
-date = 2008
+date = 2008-05-02
--
-
-
<object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" id="qt_object" width="640" height="496" 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="autoplay" value="false">
<param name="kioskmode" value="true">
<param name="controller" value="true">
-<param name="loop" value="true">
+<param name="loop" value="false">
<param name="bgcolor" value="#000000">
<param name="src" value="http://portfolio.quilime.com/2008/rattle/rattle.mov">
-<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="true" src="http://portfolio.quilime.com/2008/rattle/rattle.mov" kioskmode="true" nocache="true" type="video/quicktime" bgcolor="#000000" border="0" pluginspage="http://www.apple.com/quicktime/download/indext.html" enablejavascript="true">
+<param name="pluginspage" value="http://www.apple.com/quicktime/download/indext.html">
+<embed name = "qt_object" width="640" height="496" controller="true" loop="false" autoplay="false" src="http://portfolio.quilime.com/2008/rattle/rattle.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>
title = Rattles
-date = 2006
+date = 2006-05-02
thumb = http://portfolio.quilime.com/2008/rattle/thumb.png
--
<img style="width:100%;" src="http://portfolio.quilime.com/new/content/03_Rattles/images/rattleFlowers.0077.png">
-
+<!--more-->
title = sempernull
-date = 2007
+date = 2007-08-12
thumb = http://portfolio.quilime.com/2008/sempernull/thumb.png
tag = video installation
--
+<img style="width:100%;" src="http://portfolio.quilime.com/new/content/04_Stars/images/god.0498.png">
+
+
+An exploration of infinite/finite space. The user transitions between macro and micro environments of mathematically infinite scale, limited only by computer processing power. As the viewer moves through multiple spaces, their scope and perspective widends and transcends while space becoms infinitely big and infinitely small simultaneously.
+
+*non-interactive software*
+
+
+<!--more-->
<object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" id="qt_object" width="640" height="496" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0">
<param name="type" value="video/quicktime">
</p>
-An exploration of infinite/finite space. The user transitions between macro and micro environments of mathematically infinite scale, limited only by computer processing power. As the viewer moves through multiple spaces, their scope and perspective widends and transcends while space becoms infinitely big and infinitely small simultaneously.
-
-*non-interactive software*
-<!--more-->
<img style="width:100%;" src="http://portfolio.quilime.com/new/content/04_Stars/images/astars.10535.png">
title = Swimtank
-date = 2007
+date = 2007-05-01
--
<img style="width:100%;" src="http://portfolio.quilime.com/new/content/05_Swim_Tank/images/fish_close.0261.png">
title = synonymovement
-date = 2007
+date = 2007-04-10
thumb = http://portfolio.quilime.com/2008/synonymovement/thumb.png
--
+synonymovement
+*non-interactive software*
+
+<!--more-->
<object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" id="qt_object" width="640" height="496" codebase="http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0">
<param name="type" value="video/quicktime">
body, table {
- font-size: 12px;
+ font-size:14px;
font-family: arial, monaco, monospace;
line-height:1.6em;
}
-body {
+body {
background:rgb(25, 25, 25);
padding:0;
margin:0;
color: #ddd;
}
-a {
+a {
outline:none;
color:rgb(42, 128, 235);
text-decoration:none;
}
-a img {
- border:0;
+a img {
+ border:0;
}
a.visited {
}
-a.mute {
+a.mute {
font-weight:normal;
color:rgb(129, 144, 144);
}
-a:hover, a.mute:hover {
+a:hover, a.mute:hover {
color:f0a;;
}
padding-top:0;
margin-top:0;
margin-bottom:30px;
-
-}
-h1 a {
- background:#121212;
-display:block;
- margin-left:-1.5em;
- padding-left:1.5em;
}
-h1 a:hover {
- color:#ddd;
-background:#333;
-}
-h1, h2, h3, h4, h5, h6 {
+h1, h2, h3, h4, h5, h6 {
font-weight:normal;
color:#666;
- font-size:12px;
+ font-size:14px;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
display:block;
text-decoration:none;
- color:#fff;
+ color:#666;
}
-h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {
-background:#161616;
+h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {
+ color:#fff;
}
-h1 a:hover {
-}
-ul, li {
- margin:0; padding:0; list-style-type:none;
+ul, li {
+ margin:0; padding:0; list-style-type:none;
}
-ol {
+ol {
margin:0;
}
-ol li {
- list-style-type:decimal;
+ol li {
+ list-style-type:decimal;
}
-blockquote {
+blockquote {
font-family:serif;
font-style:italic;
- font-size:1.45em;
+ font-size:1.45em;
line-height:1.3em;
margin:0;
padding:0;
.entry h2 {
margin-top:40px;
}
-.entry .metadata {
-
+.entry .metadata {
margin-bottom:30px;
- color:#444;
+ color:#333;
}
.entry .metadata a {
- color:#444;
+ color:#555;
}
.entry .metadata a:hover {
color:#999;
}
-.entry .metadata .tags li {
- display:inline-block;
- margin-right:0.3em;
+.entry .metadata .tags li {
+ display:inline-block;
+ margin-right:0.3em;
}
.entry p {
- max-width:720px;
+ max-width:720px;
}
height:100px;
border:1px dotted #000;
overflow:hidden;
-
+
}
$request = get_request();
-
$v = new View ($request);
$m = new Model ($request);
-header("Content-Type: {$m->response_mime_type}; charset=UTF-8");
+header("Content-Type: {$m->response_mime_type}; charset=UTF-8");
$v->render( $m->template );
-
-
-
-
-
-
-
-
exit;
// $finfo = finfo_open(FILEINFO_MIME_TYPE);
// $ftype = finfo_file($finfo, join(array($info->getPath(), $info->getFilename()), DIRECTORY_SEPARATOR));
- // finfo_close($finfo);
+ // finfo_close($finfo);
- if (
-// $ftype == 'text/plain' &&
- !$info->isDir() &&
+ if (
+// $ftype == 'text/plain' &&
+ !$info->isDir() &&
!in_array( $info->getFilename(), $_FILE_IGNORES )) {
$entries[] = parse_entry( $info );
}
array_multisort( $time, $order, $entries );
}
-
- // assign next/prev for each entry
- $num_entries = count($entries);
- for ($i = $num_entries-1; $i>=0; $i--) {
- $entries[$i]['prev_entry'] = isset($entries[$i+1]) ? $entries[$i+1] : null;
- $entries[$i]['next_entry'] = isset($entries[$i-1]) ? $entries[$i-1] : null;
- }
-
return $entries;
}
$f['timestamp'] = $f['config']['date'] ? date('U', strtotime( $f['config']['date'])) : $fileInfo->getCTime();
$f['tags'] = isset($f['config']['tags']) ? explode(" ", $f['config']['tags']) : null;
$f['content'] = Markdown($content);
-
+
if ($passed_more)
$f['content_short'] = Markdown($content_short);
}
-function get_entry ( $relative_path )
+function get_entry ( $relative_path )
{
return parse_entry(new SplFileInfo(join(array(LOCAL_ROOT, CONTENT_DIR, $relative_path), DIRECTORY_SEPARATOR)));
}
<?php
-/*
-<<<<<<< HEAD
- putenv("TZ=America/Los_Angeles");
-
- ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . dirname(realpath(__FILE__)));
-
- define ('SITE_TITLE', 'quilime');
- define ('LOCAL_ROOT', '/home/quilime/quilime.com/');
- define ('WEB_ROOT', 'http://quilime.com/');
-
- 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';
-
-
- //error_reporting(E_ALL);
- //ini_set("display_errors", 1);
-
-?>
-=======
-*/
/**
* SETUP
*
<?php
class Model
-{
+{
var $content_request = null;
var $page_request = null;
-
+
var $response_format = 'html';
var $response_mime_type = 'text/html';
var $page_title = null;
function parse_request( $request )
{
+
$this->content_request = join(array($this->request['dirname'], $this->request['filename']), DIRECTORY_SEPARATOR );
$this->page_request = $this->request['filename'];
}
$this->entries = get_entries( $this->content_request );
$this->page_title = preg_replace('{^/|/$}', '', $this->request['path']);
- }
+ }
# if single entry (file in CONTENT dir)
{
$this->entry = get_entry( $this->content_request );
- // heavy handed prev/next
- $entries = get_entries();
+ // prev/next
+ $entries = get_entries($request['dirname']);
+
for($i = count($entries)-1; $i>=0; $i--) {
if ($this->entry['url'] == $entries[$i]['url']) {
- $this->entry['prev_entry'] = $entries[$i]['prev_entry'];
- $this->entry['next_entry'] = $entries[$i]['next_entry'];
+ $this->entry['prev_entry'] = isset($entries[$i-1]) ? $entries[$i-1] : null;
+ $this->entry['next_entry'] = isset($entries[$i+1]) ? $entries[$i+1] : null;
break;
}
}
+ $this->entry['is_single'] = true;
$this->template = 'single.' . $this->response_format . '.tpl';
}
# if page (file in PAGES dir)
else if ($this->is_page()) {
- $this->page = get_page( $this->page_request );
- $this->template = isset($this->page['config']['template']) ?
- $this->page['config']['template'] . '.' . $this->response_format . '.tpl' :
+ $this->page = get_page( $this->page_request );
+ $this->template = isset($this->page['config']['template']) ?
+ $this->page['config']['template'] . '.' . $this->response_format . '.tpl' :
'page.' . $this->response_format . '.tpl';
}
function is_page()
{
return is_file(join(array( LOCAL_ROOT, PAGE_DIR, $this->page_request ), DIRECTORY_SEPARATOR )) ? 1 : 0;
- }
+ }
}
<html>
<head>
-
+
<? $this->include_template('head-inc.html.tpl') ?>
-
+
<title><?=SITE_TITLE?><?=$this->page_title(TITLE_DELIMITER);?></title>
-
+
</head>
<body>
-
-
+
+
<div id="content">
<div class="entries">
+ <?
+ // TODO: PAGINATION!!
+ ?>
<? foreach($entries as $entry): ?>
- <?
- if (isset($entry['content_short']))
+ <?
+ if (isset($entry['content_short']))
$entry['content'] = $entry['content_short'] . '<br /><a class="more" href="'.$entry['url'].'">more →</a><br /><br />';
- $this->include_template('entry.html.tpl', array('entry' => $entry));
+ $this->include_template('entry.html.tpl', array('entry' => $entry));
+ ?>
+ <? endforeach;
+
+ unset($entry);
+
?>
- <? endforeach; ?>
</div>
-
+
</div>
- <? $this->include_template('footer.html.tpl') ?>
<? $this->include_template('nav.html.tpl') ?>
+ <? $this->include_template('footer.html.tpl') ?>
</body>
</html>
<div class="entry">
<h1>
- <a title="posted on <?=$entry['date']?>" href="/<?=$entry['url']?>"><?=$entry['title']?></a>
+ <a title="posted on <?=$entry['date']?>" href="/<?=$entry['url']?>"><?=$entry['title']?></a>
</h1>
- <div class="content">
+ <div class="content">
<?=$entry['content']?>
</div>
<div class="metadata">
- <a title="posted on <?=$entry['date']?>" href="<?=$entry['url']?>">#</a>
- </div>
+ <a title="permalink" href="/<?=$entry['url']?>">#</a><br />
+ <!-- <abbr title="<?=get_relative_time($entry['timestamp']);?>"><?=date("F d, Y", $entry['timestamp'])?></abbr> -->
+ </div>
</div>
<div id="content">
-
-
-
-
<table cellspacing="0" cellpadding="0">
-
<tr>
<td style="padding-right:100px;" valign="top">
</tr>
</table>
-
-
-
-
-
<!-- • <a href="http://content.stamen.com/som_transbay_tower">Bay Area Transit</a> - data visualization<br />
• <a href="http://portfolio.quilime.com/content/daschtein/index.html">Dachstein</a> - installation<br />
• <a href="http://portfolio.quilime.com/content/cm/index.html">Celestial Mechanics</a> - dome-based animation<br />
<? $dirs = get_dirs("", array('recursive' => 0)); ?>
<? foreach($dirs as $dir) : ?>
<li><a href="<?=$dir['url']?>"><?=$dir['name']?></a></li>
- <? endforeach; ?>
+ <? endforeach; ?>
<br />
</ul>
======= -->
-<ul id="nav">
+<ul id="nav">
<li><a href="/">home</a></li>
- <li><a href="/about/">about</a></li>
+ <!-- <li><a href="/contents">contents</a></li> -->
+ <li><a href="/about">about</a></li>
<br />
<br />
<? $dirs = get_dirs("", array('recursive' => 0)); ?>
<? foreach($dirs as $dir) : ?>
<li><a href="/<?=$dir['url']?>"><?=$dir['name']?></a></li>
- <? endforeach; ?>
+ <? endforeach; ?>
<br />
<br />
static
<li><a href="/photo">photo</a></li>
<li><a href="/agg">aggregate</a></li>
- <li><a href="/links">links</a></li>
+ <li><a href="/links">links</a></li>
<br />
<br />
<? $this->include_template('nextprev.html.tpl'); ?>
</li>
+
</ul>
+
<span style="font-size=15px;">
-<? if (isset($entry['cat'])) : ?>
+<?
+
+ // surely this is in the template somewhere??
+ $cur_request = get_request();
+ if (isset($entries)) {
+ $entry = null;
+ }
+?>
+
+<? if (isset($cur_request['dirname']) && $cur_request['dirname'] != '/' ) : ?>
<span style="font-family:arial">
-<a href="/<?=$entry['cat']['url'];?>">↑</a>
+<a href="/<?=$cur_request['dirname']?>">↑</a>
</span>
-
<br /><br />
<? endif; ?>
+<? if(isset($entry['is_single'])) : ?>
<span style="font-family:arial">
-<? if (isset($entry['prev_entry'])) : ?>
- <a href="/<?=$entry['prev_entry']['url']?>">←</a>
- <script>var PREV_ENTRY = '<?=$entry['prev_entry']['url']?>'</script>
- <br /><br />
-<? endif; ?>
+ <? if (isset($entry['next_entry'])) : ?>
+ <a href="/<?=$entry['next_entry']['url']?>">→</a>
+ <script>var NEXT_ENTRY = '<?=$entry['next_entry']['url']?>'</script>
+ <? endif; ?>
+ <br /><br />
+
+ <? if (isset($entry['prev_entry'])) : ?>
+ <a href="/<?=$entry['prev_entry']['url']?>">←</a>
+ <script>var PREV_ENTRY = '<?=$entry['prev_entry']['url']?>'</script>
+ <? endif; ?>
-<? if (isset($entry['next_entry'])) : ?>
- <a href="/<?=$entry['next_entry']['url']?>">→</a>
- <script>var NEXT_ENTRY = '<?=$entry['next_entry']['url']?>'</script>
<? endif; ?>
+
</span>
-</span>
+
+
+
<div id="content">
-<!-- <<<<<<< HEAD
- <div class="page">
- <?=$data['content'];?>
- </div>
-======= -->
<?=$page['content'];?>
-<!-- >>>>>>> 2ae0cd949c331f83dcb05116cffdca21b2ecb871 -->
</div>
<html>
<head>
-
+
<? $this->include_template('head-inc.html.tpl') ?>
-
+
<title><?=$entry['title'];?></title>
-
+
</head>
<body>
-
+
<div id="content" class="single">
- <?
+ <?
if (isset($entry['config']['template'])) {
- $this->include_template($entry['config']['template'] . '.' . $this->response_format . '.tpl');
+ $this->include_template($entry['config']['template'] . '.' . $this->response_format . '.tpl');
}
- else { ?>
-
-<div class="entry">
+ else {
+ ?>
+
+ <div class="entry">
- <h1>
- <a title="posted on <?=$entry['date']?>" href="/<?=$entry['url']?>"><?=$entry['title']?></a>
- </h1>
+ <h1><?=$entry['title']?></h1>
- <div class="content">
+ <div class="content">
<?=$entry['content']?>
</div>
<div class="metadata">
- <a title="posted on <?=$entry['date']?>" href="<?=$entry['url']?>">#</a>
- <span title="<?=get_relative_time($entry['timestamp']);?>"><?=date("F d, Y", $entry['timestamp'])?></span>
- in <a href="/<?=$entry['cat']['url'];?>"><?=$entry['cat']['name'];?></a><? if ($entry['tags']) echo ' as ' . implode(', ', $entry['tags']); ?>
- </div>
-</div>
-
+ <a href="/<?=$entry['url']?>">#</a>
- <?}
+ <br />
+
+ created: <span title="<?=get_relative_time($entry['timestamp']);?>"><?=date("F d, Y", $entry['timestamp'])?></span> in
+ <a href="/<?=$entry['cat']['url'];?>">/<?=$entry['cat']['url'];?></a><? if ($entry['tags']) echo '<br/>tags: ' . implode(', ', $entry['tags']); ?>
+ </div>
+
+ </div>
+
+ <? } ?>
- ?>
</div>
- <? $this->include_template('nav.html.tpl') ?>
+ <? $this->include_template('nav.html.tpl') ?>
<? $this->include_template('footer.html.tpl') ?>
</body>
<div id="content">
- this is the TEST TEST TEST template
+ <h1>tests</h1>
+
+ <?php
+
+
+
+ ?>
</div>