Essays
Toronto photos 2
Years ago my wife and I were in Vegas and had a chance to see Elton John… and missed it. This year, when I realized he was playing in Toronto on the night of our 20th anniversary, I bought tickets as a surprise birthday gift and we planned a short trip around the concert.
We arrived in the late afternoon earlier this week, took the airport train to Union Station and the subway to our hotel, then went down to Polson Pier to catch the sunset. We had dinner and explored the Distillery District before checking out Jurassic Park for the Raptors game — too late, they had already closed it off — and settling for beers at the sports bar next door to watch the end of the game.
The next day we did a bike tour of the city. On the way to meet the guide, we wandered down a street to look at the trees and a woman said hi as she walked by. Realizing we were tourists, she stopped and told us that she had been friends with Jane Jacobs, who lived just a block away. There’s a sign outside her old house.
The bike tour was a great way to see a bunch of Toronto. Murals, CN Tower, trains at Roundhouse Park, sculptures at Ireland Park, the university, and several neighborhoods. We stopped for hot chocolate and then back on our own visited a couple libraries including the Sherlock Holmes room at the Toronto Reference Library.
Dinner in Little India and then the streetcar back for the concert. We loved it. Even with just a couple days we really got a lot out of visiting the city. Looking forward to coming back one day.
Testing templates
Greg Morris is considering migrating his site from WordPress to Micro.blog hosting and had a question about referencing photos in a template:
Card previews I really want to be able to solve - does anyone know how to pull an image out of a hugo post in order to put meta property=“og:image” into the head?
Micro.blog uses Hugo themes because they are fast and there’s so much flexibility to customize them. To test this, I created a theme and edited the layouts/partials/head.html
template, adding this somewhere along with the other meta tags:
{{ with .Params.images }} {{ range first 1 . }} <meta property="og:image" content="{{ . }}"> {{ end }} {{ end }}
This looks at the photos on a post and takes the first one, adding its URL to a meta
tag. If instead of the original photo you want to include a smaller thumbnail, you can use Micro.blog’s special photos.micro.blog
resizing proxy. Here’s an example to include a 300x300 thumbnail:
{{ with .Params.images }} {{ range first 1 . }} <meta property="og:image" content="https://photos.micro.blog/300/{{ . }}"> {{ end }} {{ end }}
I still want to add more built-in designs, as well as add design settings so that custom themes aren’t necessary for common features. But there’s a lot of power here to make your blog whatever you want it to be.
Film Fest Friday Test
We recently added support for including videos in your microblog posts. We’ve seen some interesting and fun uses of the new feature, and starting today, we want to highlight them in a weekly “Film Fest Friday,” which you can follow on @friday.
Each Friday, we’ll link to a few of the videos that caught our eye. The only requirement is that they be micro-sized, i.e. one minute or shorter.
Jean Kapsa (@kapsa)
Holly Honeychurch (@hollyhoneychurch)
Tom Cutting (@stickmandiaries):
Follow @friday and send us suggestions for videos that you recommend for the next Film Fest Friday.
The New Yorker: Can “Indie” Social Media Save Us? — by Cal Newport, featuring Micro.blog, Mastodon, and the IndieWeb’s alternative to big social networks. Welcome everyone discovering Micro.blog today!
Test from other blog
Following Jeffrey Zeldman’s article about the open web, Ben Werdmuller has a great post about how we shouldn’t care so much about startup unicorns, using Micro.blog as an example of another type of business:
Testing
An excellent improvement to Micro.blog was announced last month. The addition of custom templates via the implementation of the Hugo framework makes hosted blogs endlessly customizable.1 The easiest way to get started is to clone an existing theme from an account’s design page and use the existing structure to change just about every detail of a hosted blog. It’s really quite remarkable how much control @manton has added by switching the build engine to Hugo.
Hugo Templates
I’ve been reading through the Hugo docs in my spare time this last month and I’ve made a few notes along the way which I thought I would share. First, here’s a list of the template file names used by the average Hugo theme:
static/css
or static/assets/css
: the folder where the CSS file for a theme will be found. This is where most (if not all) customizations are made.
layouts/list.archivehtml.html
: the page to make adjustments to the blog archive.
layouts/_default/baseof.html
: provides the main structure of every page served by a blog.
layouts/post/single.html
: provides the layout for every post.
layouts/_default/single.html
: provides a backup layout to load when layouts/post/single.html
fails or doesn’t apply.
layouts/post/summary.html:
provides the layout for the individual posts listed on a blog’s front page.
layouts/index.html
: provides the pagination structure of the front page.
layouts/_default/list.html
: builds the front page of a blog based on an index of the individual posts’ summaries.
Get to Theming
It’s not hard to clone an existing theme and personalize just about every aspect of it. In the account page, Navigate to Posts then Design and Edit Custom Themes. From there clicking on New Theme will prompt you for a URL of a Hugo Github repo to clone. Micro.blog themes can be found here. If you want to be more adventurous you can clone any Hugo theme and follow the instructions from this video by Manton.
From here it’s just a matter of digging into the CSS file to make your blog look any way you like. I used the Arabica because it’s very simple and I really like the pop up footnotes2 which are implemented through Javascript that’s beyond my knowledge but I don’t need to know because it’s built into the theme.
Basic changes to CSS can make a big difference in the overall look of any site. Start with text adjustments like font, colors, size. You can chose a Google font, copy one line of code to your partials/head.html
file. The Google fonts site walks you through the process but the link looks something like this <link href=\"[fonts.googleapis.com/css](https://fonts.googleapis.com/css?family=FONT+NAME)\" rel=\"stylesheet\">
. Once you put the link into your head file, set the font for the body
tag or headings in your CSS file. In Arabica a Google font is already loaded so all you have to do is change the name of the font linked and change the CSS file accordingly.
Next you can make the font color lighter for ease of reading or pick something colorful just so you can remake a late 90’s Geocities look. Change the sizes of the Headings (h1, h2... h6
tags) to your liking. Or change the style of your header to make it smaller and left aligned. Here are some CSS selectors in Arabica to get you started:
.blog-title
: class for the main title of your blog. Mine is uncrtn blog.
.blog-description
: class for the link to your Micro.blog timeline.
.nav
: class for pages linked in the header.
.post
: class for the body of a post.
.site-footer
: class to edit your blog footer.
Some Marfa Additions
Lastly, as part of my ongoing theme edit I copied some stuff over from the Marfa theme into my Arabica based theme.
Search Field
For a Marfa-style DuckDuckGo search insert this code into the CSS file:
#search input.field {
width: 600px;
height: 2rem;
font-size: 0.777rem;
font-weight: 300;
padding-left: 1rem;
border: 1px solid #eee;
margin: 1rem auto;
border-radius: 9px;
-webkit-appearance: none;
}
And add this to the layouts/partials/footer.html
file:
<form method=\"get\" id=\"search\" action=\"[duckduckgo.com](https://duckduckgo.com/)\">
<input type=\"hidden\" name=\"sites\" value=\"%20%22/%22%20%7C%20absURL%20\"/>
<input type=\"hidden\" name=\"k8\" value=\"#444444\"/>
<input type=\"hidden\" name=\"k9\" value=\"#ee4792\"/>
<input type=\"hidden\" name=\"kt\" value=\"h\"/>
<input class=\"field\" type=\"text\" name=\"q\" maxlength=\"255\" placeholder=\"Search…\"/>
<input type=\"submit\" value=\"Search\" style=\"display: none;\" />
</form>
Micro.blog timeline link
For a Marfa like avatar and timeline link at the bottom of your posts add this to your CSS file:
#post-meta {
font-size: 13px;
font-weight: bold;
line-height: 1.5;
border-top: 1px solid #eee;
padding-top: 40px;
padding-bottom: 40px;
margin-top: 60px;
border-bottom: 1px solid #eee;
display: block;
}
#post-meta div span {
color: #212121;
font-weight: 500;
display: block;
}
#post-meta a {
color: #000;
}
#post-meta img.avatar {
height: 36px;
width: 36px;
float: left;
margin-right: 15px;
margin-top: 0;
border-radius: 50%;
}
Then add this to your /layouts/post/single.html
file:
<section id=\"post-meta\" class=\"clearfix\">
<a href=\"/\">
<img class=\"u-photo avatar\" src=\"%20.Site.Author.avatar%20\">
<div>
<span class=\"p-author h-card dark\">%20.Site.Author.name%20</span>
<span><a href=\"[micro.blog/%20.Site....](https://micro.blog/%20.Site.Author.username%20)\">@%20.Site.Author.username%20</a></span>
</div>
</a>
</section>
Anyway, those are just some of the changes I’ve made so far. As always, feel free to correct me if I’ve done some thing wrong and if you have any questions be sure to ask.
Exporting a blog archive
Over a year ago I proposed a new blog archive format. The idea was to have a better way to save the posts and photos in your blog, or move your blog to another platform. I’m happy to announce that Micro.blog can now export in this format.
Here’s how it works:
- Click Posts → Export → “Export in blog archive format”.
- Micro.blog will generate the archive, which is an HTML file with Microformats, a JSON Feed of all posts, and a folder of uploaded photos. The HTML file uses relative
img
references so you can open it directly without a server. The JSON Feed includes both HTML and Markdown. (Micro.blog actually uses Hugo to generate the HTML. I’ve made the theme available on GitHub.) - The archive is zipped and renamed with the .bar file extension. When you download a .bar file, you can rename it .zip to open it, but having a new extension should make it more convenient to copy the file or import it into other apps.
- Micro.blog uploads the file to S3 and sends you an email when it’s available to download.
If you’ve uploaded a lot of photos, the archives can be fairly big. It’s working well for my blog and I’ll be monitoring it to see how well it works for other blogs. If you have a blog-related app that could import or export this format, let me know!
Micro.blog yearly pricing
There’s now an option to switch your subscription to be billed yearly instead of monthly. When you do, you’ll get a discount equivalent to 2 free months.
If you’re signed in to Micro.blog, click here to start switching your subscription. For now, new customers always start with monthly billing, but we’ll be expanding this in the future. (I talked through some of the complexity of this feature on the latest Core Intuition.)
Thanks for your support! If you notice any problems or have questions, please let me know: help@micro.blog.
SXSW is underway in Austin, which means it’s time to mark the anniversary of my blog.
SXSW is underway in Austin, which means it’s time to mark the anniversary of my blog. 17 years ago today I started blogging on manton.org. Radio Userland → Movable Type → WordPress → Micro.blog. Still my favorite place to write.
I love this video from WordPress.
I love this video from WordPress. Very similar in style to what I always imagined we could do for Micro.blog.
Core Intuition 363
We just posted Core Intuition 363. This episode continues the big theme from the last few episodes as Daniel considers taking on extra work beyond Red Sweater. From the show notes:
Daniel reveals to Manton that he’s (on the verge of) taking a part-time job. They assess the likely impact on Red Sweater, and how it might affect Daniel’s self image as an “independent developer.” Manton talks about updates he’s making to Micro.blog’s billing infrastructure, and how small improvements can lead to recurring increases in revenues. Finally, Daniel reviews his plans for the upcoming 4.3 release, and questions whether having less time to work on Red Sweater might make the time he does spend on it more productive.
As part of the discussion around MarsEdit 4.3, I mention the new archive export feature in Micro.blog. That has now been rolled out. If you host your blog on Micro.blog, you can find it by clicking “Posts”, then “Export”.
Brent Simmons has a good list of Marzipan questions.
Brent Simmons has a good list of Marzipan questions. The one I’m slightly worried about is whether we can ship Marzipan apps outside the App Store. Other limitations will improve with time, but closing off distribution is a deal-breaker for me.
So many great podcasts.
So many great podcasts. I’ve thrown out any structure in how I choose what to listen to. I just have a “Latest” playlist in Overcast with the recent episodes across all podcasts at the top. Tap on a few episodes that look good, depending on my mood.
Seems about once a year there’s a new story about the last Blockbuster.
Seems about once a year there’s a new story about the last Blockbuster. We loved visiting Bend a few years ago, but didn’t know about the Blockbuster. Fun that the store is becoming a sort of tourist attraction.
There’s no Homebrew Website Club in Austin tonight.
There’s no Homebrew Website Club in Austin tonight. We’ll regroup in April. (Thanks again to everyone who made it to IndieWebCamp Austin! Seeya next time.)
Some great basketball tonight: Spurs holding on with a 1-point win over the Nuggets.
Some great basketball tonight: Spurs holding on with a 1-point win over the Nuggets. Pelicans close game in Utah. And still underway, the Lakers first of 2 must-win games against the Clippers. 🏀
Vincent Ritter has more iOS invites for his Micro.blog app. He’s also looking for Android testers.
Vincent Ritter has more iOS invites for his Micro.blog app. He’s also looking for Android testers.
I’m the guest on this week’s Micro Monday, answering questions about Micro.blog.
I’m the guest on this week’s Micro Monday, answering questions about Micro.blog.