diff options
Diffstat (limited to 'templates/archives')
26 files changed, 1558 insertions, 0 deletions
diff --git a/templates/archives/birds.html b/templates/archives/birds.html new file mode 100644 index 0000000..db7c860 --- /dev/null +++ b/templates/archives/birds.html @@ -0,0 +1,56 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load pagination_tags %} + +{% block pagetitle %}Luxagraf | Birds seen {% if region %}in {{region.name|title|smartypants|safe}}{%else%}by {{user}}{%endif%}{% if page != "1" %} -- Page {{page}}{%endif%}{% endblock %} +{% block metadescription %}Birds seen {% if region %} in {{region.name|title|smartypants|safe}}{%else%}by {{user}}{%endif%} Page {{page}}{% endblock %} +{%block bodyid%}id="birds"{%endblock%} + + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + {% if region %}{%if region.name == 'United States'%} <li><a href="/birds/" title="See all Journal Entries" itemprop="url"><span itemprop="title">Birds</span></a> →</li> + <li itemprop="title">the United States</li>{%else%}<li><a href="/jrnl/" title="See all Journal Entries" itemprop="url"><span>Birds</span></a> →</li> + <li>{{region.name|title|smartypants|safe}}</li>{%endif%}{%else%}<li>Birds</li>{%endif%} + </ul> + <main role="main" class="archive">{% autopaginate object_list 40 %} + <h1 class="hide">Birds seen {% if region %}in {%if region.name == 'United States'%}the United States{%else%}{{region.name|title|smartypants|safe}}{%endif%}{%else%} by {{user}}{%endif%}</h1> {% for object in object_list %} + <article class="{% cycle 'odd' 'even' %} {% cycle 'first' 'second' 'third' %}"> + <div class="post--image"> +{% load get_image_by_size %} +{% load get_image_width %} +<figure> +<a href="{{object.bird.get_absolute_url}}" title="{{object.bird}}"> +<img class="picfull" sizes="(max-width: 680px) 100vw, (min-width: 681) 680px" srcset="{% for size in object.image.sizes.all%}{% get_image_by_size object.image size.name %} {{size.width}}w{% if forloop.last%}"{%else%}, {%endif%}{%endfor%} + {% for size in object.image.sizes.all%}{%if forloop.first %} src="{% get_image_by_size object.image size.name %}"{%endif%}{%endfor%} alt="{{object.image.alt}} photographed by {% if object.image.photo_credit_source %}{{object.image.photo_credit_source}}{%else%}luxagraf{%endif%}" > +</a> +{% if object.image.photo_credit_source %}<figcaption>photo by <a href="{{object.image.photo_credit_url}}">{{object.image.photo_credit_source}}</a></figcaption>{%endif%} +</figure> + </div> + <h3 class="post--title"><a href="{{object.bird.get_absolute_url}}" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.bird}}{%endif%}">{{object.bird|safe|smartypants|widont}}</a> (<span class="sci">{{object.bird.scientific_name}}</span>)</h3> + <time class="post--date" datetime="{{object.date|date:'c'}}">Seen: {{object.date|date:"F"}} <span>{{object.date|date:"j, Y"}}</span></time> + <p> + <span class="sighting location place post--location" itemscope itemtype="http://schema.org/Place">Loc: + {% if object.country.name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, {{object.state.name}}, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, {{object.country.name}}</a>{%endif%} + <span style="display: none;" itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates"> + <data itemprop="latitude" class="p-latitude" value="{{object.latitude}}">{{object.latitude}}</data> + <data itemprop="longitude" class="p-longitude" value="{{object.longitude}}">{{object.longitude}}</data> + </span> + </span> + </p> + <div class="audio-figure">{% for recording in object.bird.recordings.all %} + <audio controls="controls"> + <source src="/media/{{recording.audio}}" /> + </audio> + <small>Audio recorded by {{recording.recorder}} on {{recording.pub_date|date:"F j, Y"}} in {{recording.location}}. <a href="{{recording.link}}">© {{recording.copyright}}</a></small> + </div>{% endfor %} + </article> {% endfor %} + </main> + <nav class="pagination"> + {% paginate %} + </nav> +{% endblock %} + + + +{% block js %}<script src="/media/js/hyphenate.min.js" type="text/javascript"></script>{% endblock%} diff --git a/templates/archives/essays.html b/templates/archives/essays.html new file mode 100644 index 0000000..06de13e --- /dev/null +++ b/templates/archives/essays.html @@ -0,0 +1,21 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load comments %} + +{% block pagetitle %}essay - archive{% endblock %} + +{% block metadescription %}luxagraf essays - thoughts things that aren't strictly travel related.{% endblock %} +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li>Essays</li> + </ul> + <main role="main" id="essay-archive" class="src-archive"> + <h1>Essays</h1> + <h4 class="subhead">Stuff that isn't really travel related</h4>{% for object in object_list %} + <article class="h-entry hentry {% cycle 'odd' 'even' %} {% cycle 'first' 'second' 'third' %}" itemscope itemType="http://schema.org/Article"> + <h2><a href="{{object.get_absolute_url}}">{{object.title|safe|smartypants|widont}}</a></h2> + <p>{{object.meta_description|safe|smartypants|widont}} <a href="{{object.get_absolute_url}}">Read more.</a></p> + </article> + {%endfor%} + </main> +{%endblock%} diff --git a/templates/archives/expenses.html b/templates/archives/expenses.html new file mode 100644 index 0000000..0007270 --- /dev/null +++ b/templates/archives/expenses.html @@ -0,0 +1,26 @@ +{% extends 'base.html' %} +{% load expense_total%} +{% load typogrify_tags %} + +{% block pagetitle %}Luxagraf: Expenses{% endblock %} + +{% block metadescription %}Think is costs a lot to drive around North America in a vintage Dodge Travco? Well, judge for yourself, here's how much is costs us.{% endblock %} + +{% block primary %} + <main role="main"> + <article class="post--article"> + <header class="post--header"> + <h1 class="p-name entry-title post--title">Trip Costs</h1> + </header> + <div id="article" class="post--body post--body--single expense-wrapper"> + <p>When we were planning our trips the people who posted their finances were invaluably helpful for calculating how much we needed to make it work. It's also something many people don't like to talk about so expense breakdowns are sort of rare in the online travel world. In the spirit of (hopefully, maybe) inspiring someone else to get out there, here is a rough breakdown of our costs (sorry I didn't track expenses in much detail prior to the Travco trip).</p> + {% for object in object_list %} + <h2>{{object.name}}</h2> + <p>{{object.dek}} <a href="{{object.get_absolute_url}}">View Details ⇢</a></p> + {%endfor%} + <h2>Around the world in 2010</h2> + <p>This trip cost us (two) roughly ~4k, including all airfare. That's horribly expense for 2 months of traveling and I would never do it again. But sometimes you have to spend some money to learn</p> + <h2>Around the world in 2005-06</h2> + <p>This trip cost me roughly ~10k, including all airfare. I was solo back then and could have probably spent about ~2k less without really cramping my style much, but a fair amount of the time was spent trying to drink myself into an early grave and alcohol is expensive. I don't know how those numbers translate to today's money, but I wouldn't hesitate to set out again with half that much.</p> + +{%endblock%} diff --git a/templates/archives/figments.html b/templates/archives/figments.html new file mode 100644 index 0000000..da7628e --- /dev/null +++ b/templates/archives/figments.html @@ -0,0 +1,26 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{%block bodyid%}class="archive" id="figments-archive"{%endblock%} + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li>{% if series %} + <li><a href="/figments/" title="Figments" itemprop="url"><span itemprop="title">Figments</span></a> → </li> + <li>{{topic}}</li>{%else%} + <li>Figments</li>{%endif%} + </ul> + <main role="main" id="figments-archive" class="fig-archive"> + <div class="intro-narrow"> + <h1>Figments of Imagination</h1> + <p>The term “fiction” makes me uncomfortable because it implies that there is a corresponding term “non-fiction”, which would mean “truth”, and I don't think such a thing exists. There is no absolute truth when it comes to recording the world around you. It is always your subjective observations that allow you to record impressions in words. So I call these stories “less true stories mostly made up” and hope for the best, where “the best” is that you enjoy them.</p> + </div> + <div class="archive-grid figments-grid"> {% for object in object_list %} + <article id="{{object.slug}}{{object.pk}}" class="h-entry hentry" itemscope itemType="http://schema.org/CreativeWork"> + <h2 class="p-name entry-title post-title" itemprop="headline"><a href="{{object.get_absolute_url}}" class="u-url permalink">{{object.title|smartypants|safe}}</a></h2> + <p class="p-author author hide" itemprop="author"><span class="byline-author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Scott Gilbertson</span></span></p> + <p class="hide p-category">Fiction</p> + <p class="p-summary entry-summary">{{object.dek|safe|smartypants|widont}} <a href="{{object.get_absolute_url}}">Read ⇢</a></p> + </article> + {%endfor%} + </div> + </main> +{% endblock %} diff --git a/templates/archives/figments_series.html b/templates/archives/figments_series.html new file mode 100644 index 0000000..2f4a921 --- /dev/null +++ b/templates/archives/figments_series.html @@ -0,0 +1,24 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li><a href="/figments/" title="Figments" itemprop="url"><span itemprop="title">Figments</span></a> → </li> + <li>Series</li> + </ul> + <main role="main" id="figments-archive" class="fig-archive"> + <h1>Figments of Imagination</h1> + <p class="intro">I dislike the term “fiction” because it implies that there is a non-fiction and I categorically deny that such a thing can exist. So I call these stories “less true stories mostly made up” and hope for the best, where “the best” is that you enjoy them.</p> + <p class="intro">These are stories by series, where series is either a collection of related short stories or a novel/novella of some sort.</p> + {% for obj in object_list %} + <h3>{{obj.title|smartypants|safe}}:</h3>{%for object in obj.series.all%} + <article id="{{object.slug}}{{object.pk}}" class="h-entry hentry figment" itemscope itemType="http://schema.org/CreativeWork"> + <h2 class="p-name entry-title post--title" itemprop="headline"><a href="{{object.get_absolute_url}}" class="u-url permalink">{{object.title|smartypants|safe}}</a></h2> + <p class="p-author author hide" itemprop="author"><span class="byline-author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Scott Gilbertson</span></span></p> + <p class="hide p-category">Fiction</p> + <p class="p-summary entry-summary">{{object.dek|safe|smartypants|widont}} <a href="{{object.get_absolute_url}}">Read ⇢</a></p> + </article> + {%endfor%} + {%endfor%} + </main> +{% endblock %} diff --git a/templates/archives/gallery_list.html b/templates/archives/gallery_list.html new file mode 100644 index 0000000..91e04cb --- /dev/null +++ b/templates/archives/gallery_list.html @@ -0,0 +1,56 @@ +{% extends 'base.html' %} +{% load get_image_by_size %} +{% load typogrify_tags %} +{% load pagination_tags %} + +{% block pagetitle %}Luxagraf | {% if region %}Photo Galleries: Images from {{region.name|title|smartypants|safe}}{%else%}Photo Galleries: Images from Around the World {%endif%} Page {{page}}{% endblock %} +{% block metadescription %}{% if region %}Photo Galleries from {{region.name|title|smartypants|safe}}{%else%}Photo Galleries: Images from Around the World {%endif%} Page {{page}}{% endblock %} + +{%block extrahead%} +<style> + @media screen and (min-width: 38em){ + {% autopaginate object_list 24 %} {% for object in object_list %} + {%if object.caption_style%} +#image-{{forloop.counter}} .gallery-text { + {{object.caption_style}} +} + {%endif%} + {%endfor%} +</style> +{%endblock%} + +{%block bodyid%}id="photo-archive"{%endblock%} + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> →</li> + {% if region %}{%if region.name == 'United States'%} <li><a href="/photos/" title="See all Photos" itemprop="url"><span itemprop="title">Photos</span></a> →</li> + <li>the United States</li>{%else%}<li><a href="/photos/" title="See all Photos" itemprop="url"><span itemprop="title">Photos</span></a> →</li> <li>{{region.name|title|smartypants|safe}}{%endif%}{%else%}<li>{% if is_private %}<a href="/photos/">Photos</a> →</li>{%else%}<li>Photos </li>{%endif%}{%endif%} + {% if is_private %}<li>Private</li>{%endif%} + </ul> + <main role="main"> + <h1 class="hide">{% if region %}Photographs from {{region.name|title|smartypants|safe}}{%else%}Photographs from Around the World {%endif%}</h1> + {% autopaginate object_list 24 %}{% for object in object_list %} + <article id="image-{{forloop.counter}}" class="photo-gallery"> + <a href="{{object.get_absolute_url}}" title="view images from {{ object.title }}"> + <img sizes="(max-width: 1170px) 100vw" + {{object.thumb}} + srcset="{% for size in object.thumb.sizes.all %}{%spaceless%} + {% get_image_by_size object.thumb size.width %} {{size.width}}w{% if forloop.last%}"{%else%}, {%endif%}{%endspaceless%}{%endfor%} + {% for size in object.thumb.sizes.all %}{%spaceless%}{% if size.width > 720 and size.width < 2000 %}src="{% get_image_by_size object.thumb size.width %}"{%endif%}{%endspaceless%}{%endfor%} alt="{{object.title}}" {%if photo.is_portait %}class="v"{%endif%} ></a> + <div class="gallery-text"> + <h4>{{object.title}}</h4> + <time class="dt-published published dt-updated post--date" datetime="{{object.pub_date|date:'c'}}">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> – + <span class="p-location h-adr adr post--location" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> + {% if object.location.state.country.name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/photos/united-states/" title="all galleries from the United States">{{object.location.state.name}}</a>, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.location.state.country.slug}}/" title="travel writing from {{object.location.state.country.name}}">{{object.state.country.name}}</a>{%endif%} + <span style="display: none;" itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates"> + {%if object.latitude%}<data itemprop="latitude" class="p-latitude" value="{{object.latitude}}">{{object.latitude}}</data>{%endif%} + {%if object.longitude%}<data itemprop="longitude" class="p-longitude" value="{{object.longitude}}">{{object.longitude}}</data>{%endif%} + </span> + </span> + {%if object.description%}<p>{{object.description|safe|smartypants|widont}}</p>{%endif%} + </div> + </article>{% endfor %} + </main> + <nav class="pagination">{% paginate %} + </nav> +{% endblock %} diff --git a/templates/archives/guide.html b/templates/archives/guide.html new file mode 100644 index 0000000..e6e3f97 --- /dev/null +++ b/templates/archives/guide.html @@ -0,0 +1,51 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load pagination_tags %} + +{% block pagetitle %}Luxagraf | {% if region %}Travel Guide {{region.name|title|smartypants|safe}}{%else%} Travel Guides, Tips, Tricks and Recommendations {%endif%} Page {{page}}{% endblock %} +{% block metadescription %}{% if region %}A Travel Guide, Tips, Tricks and Recommendations for {{region.name|title|smartypants|safe}}{%else%}Travel Guides, Tips, Tricks and Recommendations {%endif%} Page {{page}}{% endblock %} +{%block bodyid%}id="guide-archive" class="guide"{%endblock%} + + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + {% if region %}{%if region.name == 'United States'%} <li><a href="/guide/1/" title="See all Guides" itemprop="url"><span itemprop="title">Travel Guides</span></a> →</li> + <li itemprop="title">United States</li>{%else%}<li><a href="/guide/1/" title="See all Guides" itemprop="url"><span>Travel Guides</span></a> →</li> + <li>{{region.name|title|smartypants|safe}}</li>{%endif%}{%else%}<li>Travel Guides</li>{%endif%} + </ul> + + <section class="intro"> + <h1>Travel Guides</h1> + <h2>What I Know About Where I've Been</h2> + <div class="formatted"> + <p>The essays on luxagraf rarely offer much travel advice. I don't often write about places I stay, where I eat, the gear I carry or even how to get from here to there. At the same time I always save business cards and write down addresses almost everywhere I go. + Until now I haven't really done anything with that information, save tell a few friends headed in similar directions. So I decided to created this, the <strong>travel guide</strong> section, so you can know what I know. I even busted out the video camera for a few of these. Just bear in mind that this is my experience, yours may be very different. That's okay.</p></div> + </section> + + + <section id="guides" class=""> {% autopaginate object_list 10 %} {% for object in object_list %} + <article id="guide-10{{object.id}}"> + <div class="meta bl"> + <div class="tags">Filed Under: <a href="{{object.get_absolute_url}}" title="{{object.title}}">General</a>, <a href="{{object.get_absolute_url}}" title="{{object.title}}">Gear</a></div> + <time pubdate class="hide" datetime="{{object.pub_date|date:'c'}}">{{object.pub_date|date:"m/d/y"}}</time> + <a href="{{object.get_absolute_url}}" title="{{object.title}}"><img src="{{object.get_thumbnail_url}}" alt="{{ object.title }}" width="150" class="{{object.image_width}}" height="98" claaa="{{object.image_height}}" class="guide-thumb" /></a> + </div> + <div class="guide-dek"> + <h1><a href="{{object.get_absolute_url}}" title="{{object.title}}">{{object.title|smartypants|widont|safe}}</a></h1> + <p class="hyphenate">{{object.dek|safe}}</p> + </div> + </article> {% endfor %} + </section> + <div id="pagination">{% paginate %} + </div> +{% endblock %} + + + +{% block js %}<script src="{{MEDIA_URL}}js/hyphenate.min.js" type="text/javascript"></script>{% endblock%} + + + +{% if object.location %}<p class="location" itemprop="geo" itemscope itemtype="http://data-vocabulary.org/Geo">{% if object.country_name == "United States" %}{{object.location_name|smartypants|safe}}, <a href="/writing/united-states/1/" title="travel writing from the United States">{{object.state_name}}</a>{%else%}{{object.location_name|smartypants|safe}}, <a href="/writing/{{object.country_name|slugify}}/1/" title="travel writing from {{object.country_name}}">{{object.country_name}}</a>{%endif%} + <meta itemprop="latitude" content="{{object.latitude}}" /> + <meta itemprop="longitude" content="{{object.longitude}}" /></p>{%endif%} diff --git a/templates/archives/homepage-light.html b/templates/archives/homepage-light.html new file mode 100644 index 0000000..2f0a130 --- /dev/null +++ b/templates/archives/homepage-light.html @@ -0,0 +1,98 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% block sitename %} +<head itemscope itemtype="http://schema.org/WebSite"> + <title itemprop='name'>Luxagraf: thoughts on ecology, culture, travel, photography, walking and other ephemera</title> + <link rel="canonical" href="https://luxagraf.net/">{%endblock%} + + {%block extrahead%} +<style> +@media screen and (min-width: 1440px) { + .banner .post-image img { + margin-top: {{homepage.image_offset_vertical}}; + } +} +</style> +{%endblock%} +{%block bodyid%}id="home" class="archive"{%endblock%} + +{% block primary %}<div class="banner">{% with object=homepage.featured %} + <article class="h-entry hentry" itemscope itemType="http://schema.org/Article"> + <figure class="post-image"> + <a href="{{object.get_absolute_url}}" title="{{object.title}}">{%with image=homepage.featured_image%} + <img class="u-photo" itemprop="image" sizes="(max-width: 960px) 100vw" + srcset="{{image.get_srcset}}" + src="{{image.get_src}}" + alt="{{image.alt}} photographed by {% if image.photo_credit_source %}{{image.photo_credit_source}}{%else%}luxagraf{%endif%}"> + </a>{%endwith%} + <figcaption> + <div class="hero-text-wrapper"> + <h1 class="p-name entry-title post-title" itemprop="headline">{%if object.template_name == 1 or object.template_name == 3 %}{{object.title|smartypants|safe}}{%else%}{{object.title|smartypants|safe}}{%endif%}</h1> + <h2 class="post-subtitle">{% if object.subtitle %}{{object.subtitle|smartypants|safe}}{%else%}{{homepage.tag_line|safe|smartypants}}{%endif%}</h2> + <aside class="p-location h-adr adr post-location" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> + <div class="h-adr" itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">{% if object.location.country_name == "United States" %}<span class="p-locality locality" itemprop="addressLocality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.location.state_name|safe}}</a>, <span class="p-country-name" itemprop="addressCountry">U.S.</span>{%else%}<span class="p-region" itemprop="addressRegion">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.location.country_slug}}/" title="travel writing from {{object.location.country_name}}"><span itemprop="addressCountry">{{object.location.country_name|safe}}</span></a>{%endif%}</div> + </aside> + <time class="dt-published published dt-updated post-date" datetime="{{object.pub_date|date:'c'}}" itemprop="datePublished">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> + <span class="hide" itemprop="author" itemscope itemtype="http://schema.org/Person">by <a class="p-author h-card" href="/about"><span itemprop="name">Scott Gilbertson</span></a></span> + <a href="{{object.get_absolute_url}}" class="u-url btn" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.title}}{%endif%}">Read</a> + </div> + </figcaption> + </figure> + </article>{% endwith %} + </div> + <section class="bio-short"> + <h2 class="homepage-section-header">About Luxagraf</h2> + <img src="/media/img/usa-resize.svg" alt="map of travels" class="homepage-map-img" /> + <p>We’re a family of five living full time in a vintage 1969 Dodge Travco motorhome. We’ve been at it for three years now. People always ask: <a href="https://luxagraf.net/1969-dodge-travco-motorhome">What's it like for five people to live in a 26ft RV</a>? <a href="https://luxagraf.net/essay/why-a-vintage-rv">Why do we live this way</a>?</p> + <p>The short answer is simple: because we like it and we can. If you want more than a soundbite, <a href="/jrnl/">read through the journal</a>. If you like it, sign up for <a href="/newsletter/">the email list</a>, though I'm bad about using it. I'd <a href="/jrnl/feed.xml">subscribe to the RSS feed</a>, but that's just <a href="/about">me</a>. <!-- If you’re interested there’s a guide section with some <a href="/guides/">advice, tips and tricks for those who’d aspire to live full time in a van or RV</a> --></p> + </section> + <section class="recent-popular"> + <div class="recent"> + <h2 class="homepage-section-header">Recent</h2> + <div class="archive-grid">{% for object in object_list %} + <article class="h-entry hentry archive-card {% cycle 'odd' 'even' %} {% cycle 'first' 'second' 'third' %}" itemscope itemType="http://schema.org/Article"> + <div class="post-image"> + <a href="{{object.get_absolute_url}}" title="{{object.title}}">{% if object.featured_image %} + {% include "lib/img_archive.html" with image=object.featured_image %} + {%else%} + <img src="{{object.get_image_url}}" alt="{{ object.title }}" class="u-photo post-image" itemprop="image" />{%endif%}</a> + </div> + <h3 class="p-name entry-title post-title" itemprop="headline"><a href="{{object.get_absolute_url}}" class="u-url" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.title}}{%endif%}">{{object.title|safe|smartypants|widont}}</a></h3> + <p class="p-author author hide" itemprop="author"><span class="byline-author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Scott Gilbertson</span></span></p> + <time class="dt-published published dt-updated post-date" datetime="{{object.pub_date|date:'c'}}">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> + <p class="post-summary"> + <span class="p-location h-adr adr post-location" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> + {% if object.location.country_name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.location.state_name}}</a>, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.location.country_slug}}/" title="travel writing from {{object.location.country_name}}">{{object.location.country_name}}</a>{%endif%} + </span> + </p> + </article> {% endfor %} + </div> + </div> + <div class="popular"> + <h2 class="homepage-section-header">Popular</h2> + <div class="archive-grid">{% for object in homepage.popular.all %} + <article class="h-entry hentry archive-card {% cycle 'odd' 'even' %} {% cycle 'first' 'second' 'third' %}" itemscope itemType="http://schema.org/Article"> + <div class="post-image"> + <a href="{{object.get_absolute_url}}" title="{{object.title}}">{% if object.featured_image %} + {% include "lib/img_archive.html" with image=object.featured_image %} + {%else%} + <img src="{{object.get_image_url}}" alt="{{ object.title }}" class="u-photo post-image" itemprop="image" />{%endif%}</a> + </div> + <h3 class="p-name entry-title post-title" itemprop="headline"><a href="{{object.get_absolute_url}}" class="u-url" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.title}}{%endif%}">{{object.title|safe|smartypants|widont}}</a></h3> + <p class="p-author author hide" itemprop="author"><span class="byline-author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Scott Gilbertson</span></span></p> + <time class="dt-published published dt-updated post-date" datetime="{{object.pub_date|date:'c'}}">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> + <p class="post-summary"> + <span class="p-location h-adr adr post-location" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> + {% if object.location.country_name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.location.state_name}}</a>, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.location.country.slug}}/" title="travel writing from {{object.location.country_name}}">{{object.location.country_name}}</a>{%endif%} + </span> + </p> + </article> {% endfor %} + </div> + </div> + </section> + <section> + <h5 class="homepage-next"><a href="/jrnl/">Browse the Archives</a></h5> + </section> +{% endblock %} + +{% block js %}{% comment %} <script async src="/media/js/hyphenate.min.js" type="text/javascript"></script>{% endcomment%}{% endblock%} diff --git a/templates/archives/homepage.html b/templates/archives/homepage.html new file mode 100644 index 0000000..8640dad --- /dev/null +++ b/templates/archives/homepage.html @@ -0,0 +1,90 @@ +{% extends 'base.html' %} +{% load get_image_by_size %} +{% load typogrify_tags %} +{%block htmlclass%}class="black"{%endblock%} +{% block sitename %} +<head itemscope itemtype="http://schema.org/WebSite"> + <title itemprop='name'>Luxagraf</title> + <link rel="canonical" href="https://luxagraf.net/" itemprop="url">{%endblock%} +{%block bodyid%}id="home"{%endblock%} + +{% block primary %}<section class="banner">{% with object=homepage.featured %} + <article class="h-entry hentry" itemscope itemType="http://schema.org/Article"> + <div class="post--image">Hello world + <a href="{{object.get_absolute_url}}" title="{{object.title}}">{% with image=object.featured_image %} + <img class="u-photo post-image homepage--hero" itemprop="image" sizes="(max-width: 960px) 100vw" srcset="{% for size in image.sizes.all%}{% get_image_by_size image size %} {{size}}w{% if forloop.last%}"{%else%}, {%endif%}{%endfor%} {% for size in image.sizes.all%}{%if not forloop.first and not forloop.last%} src="{% get_image_by_size image size %}"{%endif%}{%endfor%} alt="{{image.alt}} photographed by {% if image.photo_credit_source %}{{image.photo_credit_source}}{%else%}luxagraf{%endif%}">{%endwith%} + </a> + </div> + <div class="hero--wrapper"> + <h2 class="p-name entry-title post--title main--header" itemprop="headline"><a href="{{object.get_absolute_url}}" class="u-url" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.title}}{%endif%}">{{object.title|safe|smartypants}}</a></h2> + <p class="p-author author hide" itemprop="author">Scott Gilbertson</p> + <time class="dt-published published dt-updated post--date" datetime="{{object.pub_date|date:'c'}}">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> + <p class="post--location main--location"> + <span class="p-location h-adr adr" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> + {% if object.country.name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.state.name}}</a>, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.country.slug}}/" title="travel writing from {{object.country.name}}">{{object.country.name}}</a>{%endif%} + <span style="display: none;" itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates"> + <data itemprop="latitude" class="p-latitude" value="{{object.latitude}}">{{object.latitude}}</data> + <data itemprop="longitude" class="p-longitude" value="{{object.longitude}}">{{object.longitude}}</data> + </span> + </span> + </p> + <p class="p-summary main--tag"> + {{homepage.tag_line}} + </p> + <a href="{{object.get_absolute_url}}" class="u-url btn" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.title}}{%endif%}">Read</a> + </div> + </article>{% endwith %} + </section> + <div class="homepage--about homepage--section"> + <h3 class="homepage--arc-header">About Luxagraf</h3> + <p>Luxagraf is my notebook. Something that, in an earlier age, I would have long ago lost in the backseat of a taxi. </p> + <p>Or something like that. It could just be a website. Except that I don’t do lists. And I’m not trying to make money off of it.</p><p>Whatever it is, whatever brought you here, I hope you enjoy it.</p> + </div> + <div class="homepage--section"> + <section class="archive homepage--archives"> + <h1 class="homepage--arc-header">Most Popular</h1> + {% for object in homepage.popular.all %} + <article class="h-entry hentry" itemscope itemType="http://schema.org/Article"> + <div class="post--image"> + <a href="{{object.get_absolute_url}}" title="{{object.title}}"><img src="{{object.get_image_wide_url}}" alt="{{ object.title }}" class="u-photo post-image" itemprop="image" /></a> + </div> + <h2 class="p-name entry-title post--title" itemprop="headline"><a href="{{object.get_absolute_url}}" class="u-url" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.title}}{%endif%}">{{object.title|safe|smartypants|widont}}</a></h2> + <p class="p-author author hide" itemprop="author">Scott Gilbertson</p> + <time class="dt-published published dt-updated post--date" datetime="{{object.pub_date|date:'c'}}">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> + <p class="post--location"> + <span class="p-location h-adr adr" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> + {% if object.country.name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.state.name}}</a>, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.country.slug}}/" title="travel writing from {{object.country.name}}">{{object.country.name}}</a>{%endif%} + <span style="display: none;" itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates"> + <data itemprop="latitude" class="p-latitude" value="{{object.latitude}}">{{object.latitude}}</data> + <data itemprop="longitude" class="p-longitude" value="{{object.longitude}}">{{object.longitude}}</data> + </span> + </span> + </p> + </article> {% endfor %} + <p><a href="/jrnl/" class="homepage--next">Read More</a></p> + </section> + <section class="homepage--bright archive"> + <h1 class="homepage--arc-header">Most Recent</h1> + {% for object in recent %}{% if object.pk != homepage.featured.pk %} + <article class="h-entry hentry" itemscope itemType="http://schema.org/Article"> + <div class="post--image"> + <a href="{{object.get_absolute_url}}" title="{{object.title}}"><img src="{{object.get_image_url}}" alt="{{ object.title }}" class="u-photo post-image" itemprop="image" /></a> + </div> + <h2 class="p-name entry-title post--title" itemprop="headline"><a href="{{object.get_absolute_url}}" class="u-url" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.title}}{%endif%}">{{object.title|safe|smartypants|widont}}</a></h2> + <p class="p-author author hide" itemprop="author">Scott Gilbertson</p> + <time class="dt-published published dt-updated post--date" datetime="{{object.pub_date|date:'c'}}">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> + <p class="post--location"> + <span class="p-location h-adr adr" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> + {% if object.country.name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.state.name}}</a>, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.country.slug}}/" title="travel writing from {{object.country.name}}">{{object.country.name}}</a>{%endif%} + <span style="display: none;" itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates"> + <data itemprop="latitude" class="p-latitude" value="{{object.latitude}}">{{object.latitude}}</data> + <data itemprop="longitude" class="p-longitude" value="{{object.longitude}}">{{object.longitude}}</data> + </span> + </span> + </p> + </article> {%endif%}{% endfor %} + </section> + </div> +{% endblock %} + +{% block js %}{% comment %} <script async src="/media/js/hyphenate.min.js" type="text/javascript"></script>{% endcomment%}{% endblock%} diff --git a/templates/archives/life-list.html b/templates/archives/life-list.html new file mode 100644 index 0000000..9b92725 --- /dev/null +++ b/templates/archives/life-list.html @@ -0,0 +1,27 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load pagination_tags %} + +{% block pagetitle %}Luxagraf | Birding Life List {% if region %}in {{region.name|title|smartypants|safe}}{%else%}by {{user}}{%endif%}{% if page != "1" %} -- Page {{page}}{%endif%}{% endblock %} +{% block metadescription %}Briding Life List {% if region %} in {{region.name|title|smartypants|safe}}{%else%}by {{user}}{%endif%} Page {{page}}{% endblock %} +{%block bodyid%}id="birds"{%endblock%} + + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li>Life List</li> + </ul> + <main role="main" class="archive"> + <h1 class="hide">Brids Life List {% if region %}in {%if region.name == 'United States'%}the United States{%else%}{{region.name|title|smartypants|safe}}{%endif%}{%else%} by {{user}}{%endif%}</h1> + <div class="life-list"> + <h4>Current Life List Total: {{object_list|length}}</h4> + <ul>{% for object in object_list %} + <li><a href="{{object.get_absolute_url}}">{{object.ap.common_name}}</a></li> + {%endfor%}</ul> + </div> + </main> +{% endblock %} + + + +{% block js %}<script src="/media/js/hyphenate.min.js" type="text/javascript"></script>{% endblock%} diff --git a/templates/archives/links.html b/templates/archives/links.html new file mode 100644 index 0000000..9e1336f --- /dev/null +++ b/templates/archives/links.html @@ -0,0 +1,29 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load pagination_tags %} +{% block pagetitle %} Links | luxagraf {% endblock %} +{% block metadescription %} {% endblock %} +{%block bodyid%}class="links" id="links-archive"{%endblock%} + +{% block primary %} + <ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + {% if tag %}<li><a href="/links/" title="all links" itemprop="url"><span itemprop="title">Links</span></a> → </li><li>{{tag}}</li>{%else%}<li>Links</li>{% endif%} + </ul> + <main role="main"> + <div class="tags"> + <ul class="tag-list">{% for object in tags %} + <li><a href="/links/tag/{{object.slug}}">{{object.name}}</a></li>{%endfor%} + </ul> + </div> + {% autopaginate object_list 100 %}{% for object in object_list %} + <article> + <h3 class="link-title"><a href="{{object.get_absolute_url}}">{{object.title|smartypants|safe}}</a> <span><a href="{{object.url}}">→</a></h3> + + </article> + {% endfor %} + </main> + <nav class="pagination"> + {% paginate %} + </nav> +{% endblock %} diff --git a/templates/archives/map.html b/templates/archives/map.html new file mode 100644 index 0000000..5a0797a --- /dev/null +++ b/templates/archives/map.html @@ -0,0 +1,57 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load truncateletters %} +{% load slugify_under %} +{% block pagetitle %}Luxagraf | Map and Trips{% endblock %} +{% block metadescription %}Browse luxagraf by map, see trip routes and discover essays and dispatches from around the world{% endblock %} + +{#============================================== +Google Maps code +==============================================#} +{% block extrahead %} + <script src="/media/js/leaflet-master/leaflet-mod.js"></script> + <style> + #map-canvas img{ border: none;} + </style> +{% endblock %} +{%block bodyid%}id="map"{%endblock%} + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" itemprop="url" title="luxagraf homepage"><span itemprop="title">Home</span></a> →</li> + <li>Map</li> + </ul> + <main role="main" class="map--wrapper"> + <h1 class="hide">Browse luxagraf by map</h1> + <div id="map-canvas"> + <div id="map-inner-canvas" style="width: 100%; height: 100%; border: none !important;"></div> + </div> + + <div class="map-legend"> + <h4>Trips</h4> + <ul> + {% for r in route_list %}{%for route in r %} + <li><a onclick="showRoute('{{route.template_var_name}}', {{route.zoom}}, '{{route.geometry.centroid.y}}','{{route.geometry.centroid.x}}');" href="#" title="show {{route.name}} on map">{{route.name}}</a></li> + {% endfor %}{% endfor %} + </ul> + <h4>Regions</h4> + <ul> + {%for region in region_list %} + <li><a href="#{{region.slug}}" onclick="focusCountry({{region.lat}}, {{region.lon}}, {{region.zoom_level}});" title="See all writing from {{region.name|title}}">{{region.name}}</a></li> + {% endfor %} + </ul> + <h4>Countries</h4> + <ul> + <li><a onclick="focusCountry(19.311143,2.460938,2);" href="#" title="view all countries">All</a></li> + {%for c in country_list %} + {% for country in c %} + <li><a href="#{{country.slug}}" onclick="focusCountry({{country.lat}}, {{country.lon}}, {{country.zoom_level}});" title="See all writing from {{country.name|title}}">{{country.name}}</a></li> + {% endfor %} + {% endfor %} + </ul> + </div> + {% endblock %} +{% block js %} +<!--<script type="text/javascript" src="/media/js/mainmap.js"></script>--> +<script src="/media/js/mainmap.js"></script> +{% endblock%} + diff --git a/templates/archives/map_data.html b/templates/archives/map_data.html new file mode 100644 index 0000000..ef3a4c4 --- /dev/null +++ b/templates/archives/map_data.html @@ -0,0 +1,529 @@ +{% load typogrify_tags %} +{% load truncateletters %} +(function () { + 'use strict'; + + L.TileLayer.Provider = L.TileLayer.extend({ + initialize: function (arg, options) { + var providers = L.TileLayer.Provider.providers; + + var parts = arg.split('.'); + + var providerName = parts[0]; + var variantName = parts[1]; + + if (!providers[providerName]) { + throw 'No such provider (' + providerName + ')'; + } + + var provider = { + url: providers[providerName].url, + options: providers[providerName].options + }; + + // overwrite values in provider from variant. + if (variantName && 'variants' in providers[providerName]) { + if (!(variantName in providers[providerName].variants)) { + throw 'No such variant of ' + providerName + ' (' + variantName + ')'; + } + var variant = providers[providerName].variants[variantName]; + var variantOptions; + if (typeof variant === 'string') { + variantOptions = { + variant: variant + }; + } else { + variantOptions = variant.options; + } + provider = { + url: variant.url || provider.url, + options: L.Util.extend({}, provider.options, variantOptions) + }; + } else if (typeof provider.url === 'function') { + provider.url = provider.url(parts.splice(1, parts.length - 1).join('.')); + } + + // replace attribution placeholders with their values from toplevel provider attribution, + // recursively + var attributionReplacer = function (attr) { + if (attr.indexOf('{attribution.') === -1) { + return attr; + } + return attr.replace(/\{attribution.(\w*)\}/, + function (match, attributionName) { + return attributionReplacer(providers[attributionName].options.attribution); + } + ); + }; + provider.options.attribution = attributionReplacer(provider.options.attribution); + + // Compute final options combining provider options with any user overrides + var layerOpts = L.Util.extend({}, provider.options, options); + L.TileLayer.prototype.initialize.call(this, provider.url, layerOpts); + } + }); + + /** + * Definition of providers. + * see http://leafletjs.com/reference.html#tilelayer for options in the options map. + */ + + //jshint maxlen:220 + L.TileLayer.Provider.providers = { + OpenStreetMap: { + url: 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', + options: { + attribution: + '© <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' + + '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>' + }, + variants: { + Mapnik: {}, + BlackAndWhite: { + url: 'http://{s}.www.toolserver.org/tiles/bw-mapnik/{z}/{x}/{y}.png' + }, + DE: { + url: 'http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/{y}.png' + }, + HOT: { + url: 'http://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', + options: { + attribution: '{attribution.OpenStreetMap}, Tiles courtesy of <a href="http://hot.openstreetmap.org/" target="_blank">Humanitarian OpenStreetMap Team</a>' + } + } + } + }, + OpenSeaMap: { + url: 'http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png', + options: { + attribution: 'Map data: © <a href="http://www.openseamap.org">OpenSeaMap</a> contributors' + } + }, + Thunderforest: { + url: 'http://{s}.tile.thunderforest.com/{variant}/{z}/{x}/{y}.png', + options: { + attribution: + '© <a href="http://www.opencyclemap.org">OpenCycleMap</a>, {attribution.OpenStreetMap}', + variant: 'cycle' + }, + variants: { + OpenCycleMap: 'cycle', + Transport: 'transport', + Landscape: 'landscape', + Outdoors: 'outdoors' + } + }, + OpenMapSurfer: { + url: 'http://openmapsurfer.uni-hd.de/tiles/{variant}/x={x}&y={y}&z={z}', + options: { + minZoom: 0, + maxZoom: 20, + variant: 'roads', + attribution: 'Imagery from <a href="http://giscience.uni-hd.de/">GIScience Research Group @ University of Heidelberg</a> — Map data {attribution.OpenStreetMap}' + }, + variants: { + Roads: 'roads', + AdminBounds: { + options: { + variant: 'adminb', + maxZoom: 19 + } + }, + Grayscale: { + options: { + variant: 'roadsg', + maxZoom: 19 + } + } + } + }, + MapQuestOpen: { + url: 'http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpeg', + options: { + attribution: + 'Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a> — ' + + 'Map data {attribution.OpenStreetMap}', + subdomains: '1234' + }, + variants: { + OSM: {}, + Aerial: { + url: 'http://oatile{s}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg', + options: { + attribution: + 'Tiles Courtesy of <a href="http://www.mapquest.com/">MapQuest</a> — ' + + 'Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency' + } + } + } + }, + MapBox: { + url: function (id) { + return 'http://{s}.tiles.mapbox.com/v3/' + id + '/{z}/{x}/{y}.png'; + }, + options: { + attribution: + 'Imagery from <a href="http://mapbox.com/about/maps/">MapBox</a> — ' + + 'Map data {attribution.OpenStreetMap}', + subdomains: 'abcd' + } + }, + Stamen: { + url: 'http://{s}.tile.stamen.com/{variant}/{z}/{x}/{y}.png', + options: { + attribution: + 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, ' + + '<a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> — ' + + 'Map data {attribution.OpenStreetMap}', + subdomains: 'abcd', + minZoom: 0, + maxZoom: 20, + variant: 'toner' + }, + variants: { + Toner: 'toner', + TonerBackground: 'toner-background', + TonerHybrid: 'toner-hybrid', + TonerLines: 'toner-lines', + TonerLabels: 'toner-labels', + TonerLite: 'toner-lite', + Terrain: { + options: { + variant: 'terrain', + minZoom: 4, + maxZoom: 18 + } + }, + TerrainBackground: { + options: { + variant: 'terrain-background', + minZoom: 4, + maxZoom: 18 + } + }, + Watercolor: { + options: { + variant: 'watercolor', + minZoom: 3, + maxZoom: 16 + } + } + } + }, + Esri: { + url: 'https://server.arcgisonline.com/ArcGIS/rest/services/{variant}/MapServer/tile/{z}/{y}/{x}', + options: { + variant: 'World_Street_Map', + attribution: 'Tiles © Esri' + }, + variants: { + WorldStreetMap: { + options: { + attribution: + '{attribution.Esri} — ' + + 'Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012' + } + }, + DeLorme: { + options: { + variant: 'Specialty/DeLorme_World_Base_Map', + minZoom: 1, + maxZoom: 11, + attribution: '{attribution.Esri} — Copyright: ©2012 DeLorme' + } + }, + WorldTopoMap: { + options: { + variant: 'World_Topo_Map', + attribution: + '{attribution.Esri} — ' + + 'Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community' + } + }, + WorldImagery: { + options: { + variant: 'World_Imagery', + attribution: + '{attribution.Esri} — ' + + 'Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community' + } + }, + WorldTerrain: { + options: { + variant: 'World_Terrain_Base', + maxZoom: 13, + attribution: + '{attribution.Esri} — ' + + 'Source: USGS, Esri, TANA, DeLorme, and NPS' + } + }, + WorldShadedRelief: { + options: { + variant: 'World_Shaded_Relief', + maxZoom: 13, + attribution: '{attribution.Esri} — Source: Esri' + } + }, + WorldPhysical: { + options: { + variant: 'World_Physical_Map', + maxZoom: 8, + attribution: '{attribution.Esri} — Source: US National Park Service' + } + }, + OceanBasemap: { + options: { + variant: 'Ocean_Basemap', + maxZoom: 13, + attribution: '{attribution.Esri} — Sources: GEBCO, NOAA, CHS, OSU, UNH, CSUMB, National Geographic, DeLorme, NAVTEQ, and Esri' + } + }, + NatGeoWorldMap: { + options: { + variant: 'NatGeo_World_Map', + maxZoom: 16, + attribution: '{attribution.Esri} — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC' + } + }, + WorldGrayCanvas: { + options: { + variant: 'Canvas/World_Light_Gray_Base', + maxZoom: 16, + attribution: '{attribution.Esri} — Esri, DeLorme, NAVTEQ' + } + } + } + }, + OpenWeatherMap: { + url: 'http://{s}.tile.openweathermap.org/map/{variant}/{z}/{x}/{y}.png', + options: { + attribution: 'Map data © <a href="http://openweathermap.org">OpenWeatherMap</a>', + opacity: 0.5 + }, + variants: { + Clouds: 'clouds', + CloudsClassic: 'clouds_cls', + Precipitation: 'precipitation', + PrecipitationClassic: 'precipitation_cls', + Rain: 'rain', + RainClassic: 'rain_cls', + Pressure: 'pressure', + PressureContour: 'pressure_cntr', + Wind: 'wind', + Temperature: 'temp', + Snow: 'snow' + } + }, + HERE: { + /* + * HERE maps, formerly Nokia maps. + * These basemaps are free, but you need an API key. Please sign up at + * http://developer.here.com/getting-started + * + * Note that the base urls contain '.cit' whichs is HERE's + * 'Customer Integration Testing' environment. Please remove for production + * envirionments. + */ + url: + 'http://{s}.{base}.maps.cit.api.here.com/maptile/2.1/' + + 'maptile/{mapID}/{variant}/{z}/{x}/{y}/256/png8?' + + 'app_id={app_id}&app_code={app_code}', + options: { + attribution: + 'Map © 1987-2014 <a href="http://developer.here.com">HERE</a>', + subdomains: '1234', + mapID: 'newest', + 'app_id': '<insert your app_id here>', + 'app_code': '<insert your app_code here>', + base: 'base', + variant: 'normal.day', + minZoom: 0, + maxZoom: 20 + }, + variants: { + normalDay: 'normal.day', + normalDayCustom: 'normal.day.custom', + normalDayGrey: 'normal.day.grey', + normalDayMobile: 'normal.day.mobile', + normalDayGreyMobile: 'normal.day.grey.mobile', + normalDayTransit: 'normal.day.transit', + normalDayTransitMobile: 'normal.day.transit.mobile', + normalNight: 'normal.night', + normalNightMobile: 'normal.night.mobile', + normalNightGrey: 'normal.night.grey', + normalNightGreyMobile: 'normal.night.grey.mobile', + + carnavDayGrey: 'carnav.day.grey', + hybridDay: { + options: { + base: 'aerial', + variant: 'hybrid.day' + } + }, + hybridDayMobile: { + options: { + base: 'aerial', + variant: 'hybrid.day.mobile' + } + }, + pedestrianDay: 'pedestrian.day', + pedestrianNight: 'pedestrian.night', + satelliteDay: { + options: { + base: 'aerial', + variant: 'satellite.day' + } + }, + terrainDay: { + options: { + base: 'aerial', + variant: 'terrain.day' + } + }, + terrainDayMobile: { + options: { + base: 'aerial', + variant: 'terrain.day.mobile' + } + } + } + }, + Acetate: { + url: 'http://a{s}.acetate.geoiq.com/tiles/{variant}/{z}/{x}/{y}.png', + options: { + attribution: + '©2012 Esri & Stamen, Data from OSM and Natural Earth', + subdomains: '0123', + minZoom: 2, + maxZoom: 18, + variant: 'acetate-base' + }, + variants: { + basemap: 'acetate-base', + terrain: 'terrain', + all: 'acetate-hillshading', + foreground: 'acetate-fg', + roads: 'acetate-roads', + labels: 'acetate-labels', + hillshading: 'hillshading' + } + } + }; + + L.tileLayer.provider = function (provider, options) { + return new L.TileLayer.Provider(provider, options); + }; + + L.Control.Layers.Provided = L.Control.Layers.extend({ + initialize: function (base, overlay, options) { + var first; + + var labelFormatter = function (label) { + return label.replace(/\./g, ': ').replace(/([a-z])([A-Z])/g, '$1 $2'); + }; + + if (base.length) { + (function () { + var out = {}, + len = base.length, + i = 0; + + while (i < len) { + if (typeof base[i] === 'string') { + if (i === 0) { + first = L.tileLayer.provider(base[0]); + out[labelFormatter(base[i])] = first; + } else { + out[labelFormatter(base[i])] = L.tileLayer.provider(base[i]); + } + } + i++; + } + base = out; + }()); + this._first = first; + } + + if (overlay && overlay.length) { + (function () { + var out = {}, + len = overlay.length, + i = 0; + + while (i < len) { + if (typeof overlay[i] === 'string') { + out[labelFormatter(overlay[i])] = L.tileLayer.provider(overlay[i]); + } + i++; + } + overlay = out; + }()); + } + L.Control.Layers.prototype.initialize.call(this, base, overlay, options); + }, + onAdd: function (map) { + this._first.addTo(map); + return L.Control.Layers.prototype.onAdd.call(this, map); + } + }); + + L.control.layers.provided = function (baseLayers, overlays, options) { + return new L.Control.Layers.Provided(baseLayers, overlays, options); + }; +}()); + +var map = L.map('map-inner-canvas') + +// center on a country +function focusCountry(latitude, longitude, zoom) { + map.panTo(new L.LatLng(latitude, longitude)); + map.setZoom(zoom); +}; + +{% for r in route_list %} +{% for route in r %} +var {{route.template_var_name}} = L.polygon([ +{% for point in route.geometry.coords%} + [{{point.1}}, {{point.0}}]{% if forloop.last%}{%else%},{%endif%} +{% endfor %} + ]); + {% endfor %} + {% endfor %} + +function showRoute(route, zoom, latitude, longitude) { + map.panTo(new L.LatLng(latitude, longitude)); + map.setZoom(zoom); + eval(route).addTo(map); + return false; +}; + //check for a permalink + //find a centerpoint + var pts = new Array(); + {%for c in country_list%}pts[{{forloop.counter0}}] = ["#{{c.slug}}", {{c.lat}},{{c.lon}},{{c.zoom_level}}]; + {% endfor %} + {%for c in region_list%}pts[pts.length] = ["#{{c.slug}}", {{c.lat}},{{c.lon}},{{c.zoom_level}}]; + {% endfor %} +if (window.location.hash) { + for (var i=0; i < pts.length; i++) { + if (window.location.hash == pts[i][0]) { + var centerCoord = new L.LatLng(pts[i][1],pts[i][2]); + var zoom = pts[i][3]; + break; + } else { + var centerCoord = new L.LatLng(19.311143,2.460938); + var zoom = 2; + } + } +} else { + centerCoord = new L.LatLng(19.311143,2.460938); + zoom = 2; +} +//Set center +map.setView(centerCoord, zoom); +L.tileLayer.provider('Esri.WorldTopoMap', {maxZoom: 18,attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Tiles © Esri and the GIS User Community'}).addTo(map); + +//loop through and set up markers/info windows +{% for entry in object_list %} +L.marker([{{entry.latitude}}, {{entry.longitude}}]).bindPopup('<div class="infowin"><h4>{{entry.title}}<\/h4><span class="date blok">{{entry.pub_date|date:"F j, Y"}} ({% if entry.location.state.country.name == "United States" %}{{entry.location.name|smartypants|safe}}, {{entry.location.state.name}}){%else%}{{entry.location.name|smartypants|safe}}, {{entry.location.state.country.name}}){%endif%}<\/span><p><img src="{{entry.get_featured_image_thumb}}" height="100" alt="{{ entry.title }}" style="float: left; border: #000 10px solid; margin-right: 8px; margin-bottom: 4px; height: 100px;" \/>{{entry.dek|escapejs}} <a href="{{entry.get_absolute_url}}">Read it »<\/a><\/p><\/div>').addTo(map); +{% endfor %} + diff --git a/templates/archives/notes.html b/templates/archives/notes.html new file mode 100644 index 0000000..9960fc8 --- /dev/null +++ b/templates/archives/notes.html @@ -0,0 +1,66 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load html5_datetime %} +{% load pagination_tags %} +{% block pagetitle %} Field Notes | luxagraf {% endblock %} +{% block metadescription %} Rough notes and sketches from the field {% endblock %} +{%block bodyid%}class="notes" id="notes-archive"{%endblock%} + +{% block primary %} + <ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li>Field Notes</li> + </ul> + <main role="main"> + <h1>Field Notes</h1> + <h4 class="subhead divide-after">Quick notes and images from the road</h4> + {% autopaginate object_list 16 %}{% for object in object_list %} + <article class="h-entry"> + <h2 class="p-name note--title hide">{{object.title|safe|amp|smartypants}}</h2> + <h5 class="note--date-hed"><a class="u-url" href="{{object.get_absolute_url}}" rel="bookmark"><time class="dt-published" datetime="{{object.pub_date|html5_datetime}}">{{object.pub_date|date:"F j, Y"}}</time></a></h5> + <div class="e-content"> + {{object.body_html|safe|smartypants}} + </div> + <span class="p-author h-card"> + <data class="p-name" value="Scott Gilbertson"></data> + <data class="u-url" value="https://luxagraf.net/"></data> + </span> + <footer> + {%comment%}<p class="note--date"> + <a class="u-url" href="{{object.get_absolute_url}}" rel="bookmark"><time class="dt-published" datetime="{{object.pub_date|html5_datetime}}">{{object.pub_date|date:"F j, Y"}}</time></a> + </p>{%endcomment%}{% if object.location %} + <p class="p-location h-adr note--location bl" itemprop="geo" itemscope itemtype="http://data-vocabulary.org/Geo"> + <span class="p-locality">{{object.location.name|smartypants|safe}}</span>, + <span class="p-region">{{object.location.state.name}}</span>, + <span class="p-country-name">{{object.location.state.country.name}}</span> + <data class="p-latitude" value="{{object.latitude}}"></data> + <data class="p-longitude" value="{{object.longitude}}"></data> + </p>{% endif %}{% if object.twitter_id %} + <ul class="note--actions"> + <li><a rel="syndication" class="u-syndication" href="https://twitter.com/luxagraf/status/{{object.twitter_id}}">View on Twitter</a></li> + <li> + <indie-action do="reply" with="{{SITE_URL}}{{object.get_absolute_url}}"><a href="https://twitter.com/intent/tweet?in_reply_to={{object.twitter_id}}">Reply</a></indie-action> + </li> + <li> + <indie-action do="post" with="{{SITE_URL}}{{object.get_absolute_url}}"> + <a href="https://twitter.com/intent/retweet?tweet_id={{object.twitter_id}}">Retweet</a> + </indie-action> + </li> + <li> + <indie-action do="bookmark" with="{{SITE_URL}}{{object.get_absolute_url}}"> + <a href="https://twitter.com/intent/favorite?tweet_id={{object.twitter_id}}">Favourite</a> + </indie-action> + </li> + </ul>{% endif %} + </footer> + + </article> +{% endfor %} + </main> + <nav class="pagination"> + {% paginate %} + </nav> +{% endblock %} + + + diff --git a/templates/archives/notes_date.html b/templates/archives/notes_date.html new file mode 100644 index 0000000..be41176 --- /dev/null +++ b/templates/archives/notes_date.html @@ -0,0 +1,74 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load html5_datetime %} +{% load month_number_to_name %} +{% block pagetitle %} Field Notes Published in {% if month %}{{month}}{%endif%} {{year}} | luxagraf{% endblock %} +{% block bodyid %}class="notes" id="archive-{% if month %}{{month}}{%endif%}{{year}}"{%endblock%} +{% block primary %}<ul class="bl crumbs" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li><a href="/field-notes/" itemprop="url"><span itemprop="title">Field Notes</span></a> →</li> + <li>{% if not month %}{{year|date:"Y"}}{%else%}<a href="/field-notes/{{month|date:"Y"}}/">{{month|date:"Y"}}</a> →{%endif%}</li> + {% if month %}<li itemprop="title">{{month|date:"F"}}</li>{% endif %} + </ul> + <main role="main"> + + <h1>Field Notes Published in {% if not month %}{{year|date:"Y"}}{%else%} {{month|date:"F Y"}}{% endif %}</h1>{% if month %}{% for object in object_list %}</h1> + <article class="h-entry post--article"> + {% if object.title %}<h1 class="p-name note--title"><a href="{{object.get_absolute_url}}" class="permalink">{{object.title|safe|amp|smartypants}}</a></h1>{%endif%} + <div class="e-content"> + {{object.body_html|safe|smartypants}} + </div> + <span class="p-author h-card"> + <data class="p-name" value="Scott Gilbertson"></data> + <data class="u-url" value="https://luxagraf.net/"></data> + </span> + <footer> + {% if object.location %} + <p class="p-location h-adr note--location bl" itemprop="geo" itemscope itemtype="http://data-vocabulary.org/Geo"> + <span class="p-locality">{{object.location.name|smartypants|safe}}</span>, + <span class="p-region">{{object.location.state.name}}</span>, + <span class="p-country-name">{{object.location.state.country.name}}</span> + <data class="p-latitude" value="{{object.latitude}}"></data> + <data class="p-longitude" value="{{object.longitude}}"></data> + </p>{% endif %} + + <p class="note--date"> + <a class="u-url" href="{{object.get_absolute_url}}" rel="bookmark"><time class="dt-published" datetime="{{object.pub_date|html5_datetime}}">{{object.pub_date|date:"F j, Y"}}</time></a> + </p> + </footer> + </article> + {% endfor %} + {% else %} +{% regroup object_list by pub_date.month as entries_by_month %}{% for month in entries_by_month %} + <section class="month--divider"> + <h2 class="month--header">{{ month.list.0.pub_date|date:"F Y" }}</h2>{% for object in month.list|dictsortreversed:"pub_date" %} + <article class="h-entry post--article"> + {% if object.title %}<h1 class="p-name note--title"><a href="{{object.get_absolute_url}}" class="permalink">{{object.title|safe|amp|smartypants}}</a></h1>{%endif%} + <div class="e-content"> + {{object.body_html|safe|smartypants}} + </div> + <span class="p-author h-card"> + <data class="p-name" value="Scott Gilbertson"></data> + <data class="u-url" value="https://luxagraf.net/"></data> + </span> + <footer> + {% if object.location %} + <p class="p-location h-adr note--location bl" itemprop="geo" itemscope itemtype="http://data-vocabulary.org/Geo"> + <span class="p-locality">{{object.location.name|smartypants|safe}}</span>, + <span class="p-region">{{object.location.state.name}}</span>, + <span class="p-country-name">{{object.location.state.country.name}}</span> + <data class="p-latitude" value="{{object.latitude}}"></data> + <data class="p-longitude" value="{{object.longitude}}"></data> + </p>{% endif %} + + <p class="note--date"> + <a class="u-url" href="{{object.get_absolute_url}}" rel="bookmark"><time class="dt-published" datetime="{{object.pub_date|html5_datetime}}">{{object.pub_date|date:"F j, Y"}}</time></a> + </p> + </footer> + </article> + {% endfor %} + </section> + {% endfor %} + {% endif %} + </main> +{% endblock%} diff --git a/templates/archives/people.html b/templates/archives/people.html new file mode 100644 index 0000000..533199a --- /dev/null +++ b/templates/archives/people.html @@ -0,0 +1,34 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load pagination_tags %} +{% block pagetitle %} People | luxagraf {% endblock %} +{% block metadescription %} {% endblock %} +{%block bodyid%}class="links" id="people-archive"{%endblock%} + +{% block primary %} + <ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + {% if tag %}<li><a href="{% url "people:list"%}" title="all people" itemprop="url"><span itemprop="title">People</span></a> → </li><li>{{tag}}</li>{%else%}<li>People</li>{% endif%} + </ul> + <main role="main"> + <div class="tags"> + <ul class="tag-list">{% for object in tags %} + <li><a href="{% url "people:list-tag" object.slug %}">{{object.name}}</a></li>{%endfor%} + </ul> + </div> + {% autopaginate object_list 100 %}{% for object in object_list %} + <article> + <h4 class="link-title"> + <a href="{%url "people:detail" object.slug %}">{{object|smartypants|safe}}</a> + </h4> + <ul> + <li>Email: <a href="mailto:{{object.email}}">{{object.email}}</a></li> + <li>Tel: <a href="tel:{{object.phone}}">{{object.phone}}</a></li> + </ul> + </article> + {% endfor %} + </main> + <nav class="pagination"> + {% paginate %} + </nav> +{% endblock %} diff --git a/templates/archives/photo_daily_list.html b/templates/archives/photo_daily_list.html new file mode 100644 index 0000000..04254ff --- /dev/null +++ b/templates/archives/photo_daily_list.html @@ -0,0 +1,25 @@ +{% extends 'base.html' %} +{%block htmlclass%}class="detail single"{% endblock %} +{% load typogrify_tags %} +{% load html5_datetime %} +{% load pagination_tags %} +{% block pagetitle %} Photos | luxagraf {% endblock %} +{% block metadescription %} Recent Images {% endblock %} +{%block bodyid%}class="photos" id="notes-archive"{%endblock%} + +{% block primary %} + <ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li>Photos</li> + </ul> + <main role="main"> + {% autopaginate object_list 8 %}{% for object in object_list %} + <article class="h-entry hentry " itemscope="" itemtype="http://schema.org/Article"> + <figure class="daily-figure"> + {% include 'lib/img_picwide.html' with image=object caption=False exif=False is_cluster=False cluster_class='' extra='' %} + <figcaption class="picwide">{{object.location}}, {{object.location.state.country}}</figcaption> + </figure> + </article> + {% endfor %} + </main> +{% endblock%} diff --git a/templates/archives/photos.html b/templates/archives/photos.html new file mode 100644 index 0000000..c8d3db5 --- /dev/null +++ b/templates/archives/photos.html @@ -0,0 +1,32 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load pagination_tags %} + +{% block pagetitle %}Luxagraf | {% if region %}Photo Galleries: Images from {{region.name|title|smartypants|safe}}{%else%}Photo Galleries: Images from Around the World {%endif%} Page {{page}}{% endblock %} +{% block metadescription %}{% if region %}Photo Galleries from {{region.name|title|smartypants|safe}}{%else%}Photo Galleries: Images from Around the World {%endif%} Page {{page}}{% endblock %} + + +{%block bodyid%}id="photo-archive"{%endblock%} + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> →</li> + {% if region %}{%if region.name == 'United States'%} <li><a href="/photos/" title="See all Photos" itemprop="url"><span itemprop="title">Photos</span></a> →</li> + <li>the United States</li>{%else%}<li><a href="/photos/" title="See all Photos" itemprop="url"><span itemprop="title">Photos</span></a> →</li> <li>{{region.name|title|smartypants|safe}}{%endif%}{%else%}<li>Photos </li>{%endif%} + </ul> + <main role="main"> + <h1 class="hide">{% if region %}Photographs from {{region.name|title|smartypants|safe}}{%else%}Photographs from Around the World {%endif%}</h1> + <ul id="photo-galleries" class="image-gallery--list">{% autopaginate object_list 24 %} {% for object in object_list %} + <li class="{% cycle 'first' 'second' 'third' 'fourth'%} {% cycle 'one' 'two' 'three'%}"> + <figure class="image-gallery--figure"> + <a href="{{object.get_absolute_url}}" title="view images from {{ object.set_title }}"><img src="{{object.get_main_image}}" alt="{{ object.set_title }}" /></a> + <figcaption class="image-gallery--legend"> + <h1>{{object.set_title}}</h1> + <p>{{object.set_desc|truncatewords:30|smartypants|safe}}</p> + </figcaption> + </figure> + </li>{% endfor %} + </ul> + </main> + <nav class="pagination">{% paginate %} + </nav> +{% endblock %} diff --git a/templates/archives/projects.html b/templates/archives/projects.html new file mode 100644 index 0000000..738317f --- /dev/null +++ b/templates/archives/projects.html @@ -0,0 +1,32 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% block pagetitle %}Luxagraf | Projects {% endblock %} +{% block metadescription %}Travel Themes and Experiments {% endblock %} + +{%block bodyid%}class="archive"{%endblock%} + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li>Projects</li> + </ul> + <main class="projects"> + <div class="intro"> + <p>Luxagraf has become a bit like an iceberg over the years. I keep adding things to it, but never actually make them public. So I decided to try making some of it more public. </p> + <p>This will lead you to some of the previously submerged stuff that doesn't always neatly fit in with the travel narrative portion of luxagraf. </p> + </div> + <ul id="projects-archive" class="wide-list">{%for object in object_list %} + <li> + <a href="{{object.get_absolute_url}}" title="{{object.title}}"> + <img sizes="(max-width: 850px) 100vw, (min-width: 851px) 720px" srcset="{{object.get_project_image|slice:"0:-4"}}_lg.jpg 1280w" src="{{object.get_project_image}}" alt="{{ object.title }}" class="post-image" /> + </a> + <div class="wide-wrapper"> + <h2 class="post-title"><a href="{{object.get_absolute_url}}" title="{{object.title}}">{{object.title|safe}}</a></h2> + <div class="post-summary">{{object.lede|safe|smartypants}}</div> + <a class="permalink" href="{{object.get_absolute_url}}">Explore ⇢</a> + </div> + </li> {% endfor %} + </ul> + </main> +{% endblock %} + +{% block js %}<script src="/media/js/hyphenate.min.js" type="text/javascript"></script>{% endblock%} diff --git a/templates/archives/resume-pubs-by-pub.html b/templates/archives/resume-pubs-by-pub.html new file mode 100644 index 0000000..575313e --- /dev/null +++ b/templates/archives/resume-pubs-by-pub.html @@ -0,0 +1,28 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load html5_datetime %} +{% load pagination_tags %} +{% block pagetitle %} Publications | Resume{% endblock %} +{% block metadescription %} {% endblock %} +{%block bodyid%}class="resume" id="publications-archive"{%endblock%} +{%block htmlclass%}class="detail"{% endblock %} +{% block primary %} + <ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li><a href="/work/">Work</a> → </li> + <li><a href="/work/pubs/">Publications</a> → </li> + <li>{{publisher}}</li> + </ul> + <main role="main"> + <h1 class="entry-title publisher">(Most) Stories published in {{publisher}}</h1> + <article> + {{ publisher.body_html|safe|widont|smartypants}} + </article> + <hr /> + <ul class="publications-list">{% for object in object_list %} + <li class="pub-title"><h3><a href="{{object.url}}">{{object.title|amp|smartypants|widont|safe}}</a></h3> + <time class="dt-published published dt-updated" datetime="{{object.pub_date|date:'c'}}" itemprop="datePublished">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> (<a href="{{object.get_absolute_url}}" title="local copy if publisher version is not available">local verson</a>) + </li>{% endfor %} + </ul> + </main> +{% endblock %} diff --git a/templates/archives/resume-pubs.html b/templates/archives/resume-pubs.html new file mode 100644 index 0000000..26b4936 --- /dev/null +++ b/templates/archives/resume-pubs.html @@ -0,0 +1,33 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load html5_datetime %} +{% load pagination_tags %} +{% block pagetitle %} Publications | Resume{% endblock %} +{% block metadescription %} {% endblock %} +{%block bodyid%}class="archive resume" id="publications-archive"{%endblock%} + +{% block primary %} + <ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li><a href="/work/">Work</a> → </li> + <li>Publications</li> + </ul> + <main> + <h1 class="hide">Publications</h1> + <h6>By Publication</h6> + <nav class="toc"><ul>{% for publisher in pub_list %} + <li><a href="#{{publisher.name|slugify}}">{{publisher.name}}</a></li>{%endfor%} + </ul></nav> + <ul class="archive publications-list">{% regroup object_list|dictsort:"publisher_id" by publisher.name as pub_list %}{% for pub in pub_list %} + <li> + <h2 id="{{pub.grouper|slugify}}">{{ pub.grouper }}</h2> + <ul>{% for object in pub.list %}{% if forloop.counter < 8 %} + <li class="pub-title"><h3><a href="{{object.url}}">{{object.title|amp|smartypants|widont|safe}}</a></h3> + <time class="dt-published published dt-updated" datetime="{{object.pub_date|date:'c'}}" itemprop="datePublished">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> (<a href="{{object.get_absolute_url}}">local verson</a>) + </li>{%endif%}{% endfor %} + </ul> + <a href="{% url "resume:list_by_publisher" pub.grouper|slugify %}">View all articles published by {{pub.grouper}}</a> + </li>{% endfor %} + </ul> + </main> +{% endblock %} diff --git a/templates/archives/robots.html b/templates/archives/robots.html new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/templates/archives/robots.html @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /
\ No newline at end of file diff --git a/templates/archives/sketches.html b/templates/archives/sketches.html new file mode 100644 index 0000000..06fe311 --- /dev/null +++ b/templates/archives/sketches.html @@ -0,0 +1,44 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load html5_datetime %} +{% load pagination_tags %} +{% block pagetitle %} Field Notes | luxagraf {% endblock %} +{% block metadescription %} Rough notes and sketches from the field {% endblock %} +{%block bodyid%}id="field-notes"{%endblock%} + +{% block primary %} + <ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li>Field Notes</li> + </ul> + <main role="main" id="essay-archive" class="essay-archive archive-list"> + <div class="essay-intro"> + <h2>Field Notes</h2> + <p>Quick notes, sketches and images from the road. This is the semi-orgnized brain dump that comes before the more organized <a href="/jrnl/" title="read the journal">journal entries</a> and <a href="/essays/" title="read essays">essays</a>. If I used social media this is the stuff I'd probably put there, but I prefer to put it here, even if it means a lot few people read it.</p> + </div> + {% autopaginate object_list 30 %} + <ul class="fancy-archive-list">{% for object in object_list %}{% if object.slug != 'about' %} + <li class="h-entry hentry" itemscope itemType="http://schema.org/Article"> + <span class="date dt-published">{{object.pub_date|date:"F d, Y"}}</span> + <a href="{{object.get_absolute_url}}"> + <h2>{{object.title|safe|smartypants|widont}}</h2> + {% if object.subtitle %}<h3 class="p-summary">{{object.subtitle|safe|smartypants|widont}}</h3>{%endif%} + </a> + {% if object.location %}<h4 class="p-location h-adr post-location" itemprop="geo" itemscope itemtype="http://data-vocabulary.org/Geo"> + <span class="p-locality">{{object.location.name|smartypants|safe}}</span>, + <span class="p-region">{{object.location.state_name}}</span>, + <span class="p-country-name">{{object.location.country_name}}</span> + <data class="p-latitude" value="{{object.latitude}}"></data> + <data class="p-longitude" value="{{object.longitude}}"></data> + </h4>{% endif %} + </li> + {%endif%}{%endfor%}</ul> + </main> + + <nav class="pagination"> + {% paginate %} + </nav> +{% endblock %} + + + diff --git a/templates/archives/src_books.html b/templates/archives/src_books.html new file mode 100644 index 0000000..f15d9ab --- /dev/null +++ b/templates/archives/src_books.html @@ -0,0 +1,20 @@ +{% extends 'src_base.html' %} +{% load typogrify_tags %} +{%block bodyid%}id="book-page"{%endblock%} +{%block metadescription%}Book Store | luxagraf:src{%endblock%} +{% block primary %} + <ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li><a href="/src/" title="luxagraf:src" itemprop="url"><span itemprop="title"><code>src</code></span></a> → </li> + <li>Books</li> + </ul> + <main role="main"> + <h1 class="hide">Books</h1> + <div class="book-list"> {% for object in object_list %} + <article class="book-list-item {% cycle "odd" "even" %} {% cycle "uno" "dos" "tres" %}" itemscope itemtype="http://schema.org/Book"> + {% if object.image %}<div class="img-wrapper"><a href="{{object.get_absolute_url}}"><img itemprop="image" src="{{object.get_image_url}}" alt="cover art for {{object.title}}"/></a></div>{%endif%} + <h2 itemprop="name"><a href="{{object.get_absolute_url}}">{{object.title|amp|smartypants|widont|safe}}</a></h2> + </article> + {% endfor %}</div> + </main> +{% endblock %} diff --git a/templates/archives/writing.html b/templates/archives/writing.html new file mode 100644 index 0000000..e249cd3 --- /dev/null +++ b/templates/archives/writing.html @@ -0,0 +1,46 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load pagination_tags %} + +{% block pagetitle %}Luxagraf | {% if region %}Travel Writing from {{region.name|title|smartypants|safe}}{%else%}Travel Writing from Around the World {%endif%}{% if page != "1" %} -- Page {{page}}{%endif%}{% endblock %} +{% block metadescription %}{% if region %}Travel writing, essays and dispatches from {{region.name|title|smartypants|safe}}{%else%}Travel writing, essays and dispatches from around the world{%endif%} Page {{page}}{% endblock %} +{%block bodyid%}id="writing"{%endblock%} + + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + {% if region %}{%if region.name == 'United States'%} <li><a href="/jrnl/" title="See all Journal Entries" itemprop="url"><span itemprop="title">Journal</span></a> →</li> + <li itemprop="title">the United States</li>{%else%}<li><a href="/jrnl/" title="See all Journal Entries" itemprop="url"><span>Journal</span></a> →</li> + <li>{{region.name|title|smartypants|safe}}</li>{%endif%}{%else%}<li>Journal</li>{%endif%} + </ul> + <main role="main" id="writing-archive" class="archive"> + <h1 class="hide">{% if region %}Journal entries from {%if region.name == 'United States'%}the United States{%else%}{{region.name|title|smartypants|safe}}{%endif%}{%else%}Journal {%endif%}</h1>{% autopaginate object_list 24 %} {% for object in object_list %} + <article class="h-entry hentry {% cycle 'odd' 'even' %} {% cycle 'first' 'second' 'third' %}" itemscope itemType="http://schema.org/Article"> + <div class="post--image"> + <a href="{{object.get_absolute_url}}" title="{{object.title}}"><img src="{{object.get_image_url}}" alt="{{ object.title }}" class="u-photo post-image" itemprop="image" /></a> + </div> + <h2 class="p-name entry-title post--title" itemprop="headline"><a href="{{object.get_absolute_url}}" class="u-url" title="{%if object.title_keywords%}{{object.title_keywords}}{%else%}{{object.title}}{%endif%}">{{object.title|safe|smartypants|widont}}</a></h2> + <p class="p-author author hide" itemprop="author"><span class="byline-author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Scott Gilbertson</span></span></p> + <time class="dt-published published dt-updated post--date" datetime="{{object.pub_date|date:'c'}}">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time> + <p> + <span class="p-location h-adr adr post--location" itemprop="contentLocation" itemscope itemtype="http://schema.org/Place"> + {% if object.country.name == "United States" %}<span class="p-locality locality">{{object.location.name|smartypants|safe}}</span>, <a class="p-region region" href="/jrnl/united-states/" title="travel writing from the United States">{{object.state.name}}</a>, <span class="p-country-name">U.S.</span>{%else%}<span class="p-region">{{object.location.name|smartypants|safe}}</span>, <a class="p-country-name country-name" href="/jrnl/{{object.country.slug}}/" title="travel writing from {{object.country.name}}">{{object.country.name}}</a>{%endif%} + <span style="display: none;" itemprop="geo" itemscope itemtype="http://schema.org/GeoCoordinates"> + <data itemprop="latitude" class="p-latitude" value="{{object.latitude}}">{{object.latitude}}</data> + <data itemprop="longitude" class="p-longitude" value="{{object.longitude}}">{{object.longitude}}</data> + </span> + </span> – + <span class="p-summary entry-summary hyphenate" itemprop="description"> + {{object.dek|safe}} + </span> + </p> + </article> {% endfor %} + </main> + <nav class="pagination"> + {% paginate %} + </nav> +{% endblock %} + + + +{% block js %}<script src="/media/js/hyphenate.min.js" type="text/javascript"></script>{% endblock%} diff --git a/templates/archives/writing_date.html b/templates/archives/writing_date.html new file mode 100644 index 0000000..4091e74 --- /dev/null +++ b/templates/archives/writing_date.html @@ -0,0 +1,32 @@ +{% extends 'base.html' %} +{% load typogrify_tags %} +{% load html5_datetime %} +{% block pagetitle %}{{block.super}}: Archive{% endblock %} +{% block bodyid %}id="archive"{%endblock%} + + +{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"> + <li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li> + <li><a href="/jrnl/" title="See all Journal Entries" itemprop="url"><span itemprop="title">Journal</span></a> →</li> + <li>{% if not month %}{{year|date:"Y"}}{%else%}<a href="/jrnl/{{month|date:"Y"}}/">{{month|date:"Y"}}</a> →{%endif%}</li> + {% if month %}<li>{{month|date:"F"}}</li>{% endif %} + </ul> + <main role="main" id="writing-archive" class="archive"> + <h1>{% if not month %}{{year|date:"Y"}}, on luxagraf{%else%} Archive: {{month|date:"F Y"}}{% endif %}</h1>{% if not month %} + <ul class="date-archive">{% regroup object_list by pub_date.month as entries_by_month %}{% for entries in entries_by_month reversed %} + <li class="dater"><span>{{ entries.list.0.pub_date|date:"F Y" }}</span> + <ul>{% for post in entries.list %} + <li class="arc-item"> + <a href="{{post.get_absolute_url}}" title="{{post.title}}">{{post.title|smartypants|widont|safe }}</a> + <time datetime="{{post.pub_date|html5_datetime}}">{{post.pub_date|date:"M d, Y"}}</time> + </li> {% endfor %} + </ul> + </li>{% endfor %} + </ul>{% else %} + <ul class="date-archive">{% for post in object_list %} + <li class="arc-item"><a href="{{post.get_absolute_url}}" title="{{post.title}}">{{post.title|smartypants|widont|safe }}</a> + <time datetime="{{post.pub_date|html5_datetime}}">{{post.pub_date|date:"M d, Y"}}</time> + </li> {% endfor %} + </ul> + {% endif %} +{% endblock%} |