Synchronized build
|
@ -151,7 +151,7 @@ speak multiple languages and allow you to easily create localized websites.</li>
|
||||||
<div class="slideshow-wrapper">
|
<div class="slideshow-wrapper">
|
||||||
<div class="slideshow">
|
<div class="slideshow">
|
||||||
<div class="slideshow-inner">
|
<div class="slideshow-inner">
|
||||||
<div class="carousel slide" data-ride="carousel" data-interval="8500" id="carousel-d8756312a3244cb7bc64eeedd8ace664">
|
<div class="carousel slide" data-ride="carousel" data-interval="8500" id="carousel-04f47e865ea54d6d970e6293f3f32d10">
|
||||||
|
|
||||||
<div class="carousel-inner" role="listbox">
|
<div class="carousel-inner" role="listbox">
|
||||||
|
|
||||||
|
@ -210,11 +210,11 @@ be completely customized.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<a class="left carousel-control" href="#carousel-d8756312a3244cb7bc64eeedd8ace664" role="button" data-slide="prev">
|
<a class="left carousel-control" href="#carousel-04f47e865ea54d6d970e6293f3f32d10" role="button" data-slide="prev">
|
||||||
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
|
||||||
<span class="sr-only">Previous</span>
|
<span class="sr-only">Previous</span>
|
||||||
</a>
|
</a>
|
||||||
<a class="right carousel-control" href="#carousel-d8756312a3244cb7bc64eeedd8ace664" role="button" data-slide="next">
|
<a class="right carousel-control" href="#carousel-04f47e865ea54d6d970e6293f3f32d10" role="button" data-slide="next">
|
||||||
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
|
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
|
||||||
<span class="sr-only">Next</span>
|
<span class="sr-only">Next</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
Before Width: | Height: | Size: 312 KiB After Width: | Height: | Size: 364 KiB |
Before Width: | Height: | Size: 368 KiB After Width: | Height: | Size: 514 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 31 KiB |
|
@ -55,9 +55,13 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8 col-md-offset-2">
|
<div class="col-md-8 col-md-offset-2">
|
||||||
<p>This is my personal website. It includes a simple about page, a blog, and a curated list of interesting links I've come across. I generally link to and blog about product management, marketing, strategy, and design.</p>
|
<p>This is my personal website. It includes a simple about page, a <a href="https://www.ft.io/blog/">blog</a>, and a curated list of <a href="https://www.ft.io/links/">interesting links</a>. I write about product management, go-to-market, strategy, and design.</p>
|
||||||
<p>Links are stored statically in lektor in the same way blog posts are stored, but I wrote a bit of code that syncs those links before lektor deployments from <a href="https://pinboard.in/u:ft">pinboard</a>, where I manage them centrally.</p>
|
<p>I've written two custom plugins for my Lektor site:</p>
|
||||||
<p>The site is hosted on S3 behind Cloudflare, and I use the excellent lektor-s3 plugin to get it there.</p>
|
<ul>
|
||||||
|
<li>One fetches links for my linkblog from <a href="https://pinboard.in/u:ft">Pinboard</a>. Since Pinboard doesn't supply webhooks, I've written a custom Netlify function that checks for new bookmarks on Pinboard and triggers a rebuild/deployment when necessary.</li>
|
||||||
|
<li>The other generates dynamic <a href="https://www.ft.io/blog/link-preview-images/">link preview images</a> used by Twitter and the like to make sharing content from my site more engaging and visual.</li>
|
||||||
|
</ul>
|
||||||
|
<p>The site is hosted on Netlify, which I cannot recommend highly enough.</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Before Width: | Height: | Size: 405 KiB After Width: | Height: | Size: 329 KiB |