<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Brutalist Pelican Theme</title><link href="https://brutalistpelican.com/" rel="alternate"></link><link href="https://brutalistpelican.com/feeds/all.atom.xml" rel="self"></link><id>https://brutalistpelican.com/</id><updated>2018-08-22T00:00:00-06:00</updated><entry><title>Version 1.0 of 'Brutalist' released!</title><link href="https://brutalistpelican.com/2018/08/22/version-10-of-brutalist-released/" rel="alternate"></link><published>2018-08-22T00:00:00-06:00</published><updated>2018-08-22T00:00:00-06:00</updated><author><name>Matt McManus</name></author><id>tag:brutalistpelican.com,2018-08-22:/2018/08/22/version-10-of-brutalist-released/</id><summary type="html">&lt;p&gt;&lt;img alt="Brutalist Pelican Theme" src="https://brutalistpelican.com/images/site-cover.jpg" title="Brutalist Pelican Theme"&gt; &lt;/p&gt;
&lt;h2&gt;Background and Inspiration&lt;/h2&gt;
&lt;p&gt;When I decided to get back into blogging, I knew that I wanted a site that was super simple and readable. There are many great Pelican themes out there but I couldn't quite find what I was looking for. After reading David Bryant Copeland's &lt;a href="https://brutalist-web.design/"&gt;Brutalist Web Design …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Brutalist Pelican Theme" src="https://brutalistpelican.com/images/site-cover.jpg" title="Brutalist Pelican Theme"&gt; &lt;/p&gt;
&lt;h2&gt;Background and Inspiration&lt;/h2&gt;
&lt;p&gt;When I decided to get back into blogging, I knew that I wanted a site that was super simple and readable. There are many great Pelican themes out there but I couldn't quite find what I was looking for. After reading David Bryant Copeland's &lt;a href="https://brutalist-web.design/"&gt;Brutalist Web Design&lt;/a&gt; a few weeks ago, I was inspired to try and apply those design principles to a Pelican theme. The goal of this theme is to be feature-rich while also accessible and fast. This release is just 1.0. I'll be adding more features as I shake off the front-end coding rust. &lt;/p&gt;
&lt;h2&gt;Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Clean, readable, accessible, and fast&lt;/li&gt;
&lt;li&gt;Mobile first&lt;/li&gt;
&lt;li&gt;W3C validated&lt;/li&gt;
&lt;li&gt;Clean slugified URLs&lt;/li&gt;
&lt;li&gt;Easy to extend and customize to your liking&lt;/li&gt;
&lt;li&gt;SEO optimized w/ OG tags and Twitter Card support&lt;/li&gt;
&lt;li&gt;Google Analytics support&lt;/li&gt;
&lt;li&gt;Gravatar support&lt;/li&gt;
&lt;li&gt;Disqus support&lt;/li&gt;
&lt;li&gt;Pygments syntax highlighting for code blocks&lt;/li&gt;
&lt;li&gt;Display Twitter, Github, Facebook, Instagram, Strava, Untappd, Telegram, Foursquare, and Goodreads icons in footer if configured&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Template support&lt;/h2&gt;
&lt;h3&gt;Supported&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;archives.html&lt;/li&gt;
&lt;li&gt;period_archives.html&lt;/li&gt;
&lt;li&gt;article.html&lt;/li&gt;
&lt;li&gt;categories.html&lt;/li&gt;
&lt;li&gt;category.html&lt;/li&gt;
&lt;li&gt;index.html&lt;/li&gt;
&lt;li&gt;page.html&lt;/li&gt;
&lt;li&gt;tag.html&lt;/li&gt;
&lt;li&gt;tags.html&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Not supported&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;author.html&lt;/li&gt;
&lt;li&gt;authors.html&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Here is a list of theme settings you can configure to alter aspects of the theme. The theme also supports most of the general settings that Pelican offers so I won't go into those here.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# Theme Settings&lt;/span&gt;
&lt;span class="n"&gt;THEME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;themes/brutalist&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## used for OG tags and Twitter Card data on index page&lt;/span&gt;
&lt;span class="n"&gt;SITEIMAGE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;site-cover.jpg&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## used for OG tags and Twitter Card data of index page&lt;/span&gt;
&lt;span class="n"&gt;SITEDESCRIPTION&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;A simple, accessible, content-first Pelican theme inspired by David Bryant Copeland&lt;/span&gt;&lt;span class="se"&gt;\&amp;#39;&lt;/span&gt;&lt;span class="s1"&gt;s https://brutalist-web.design/&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## path to favicon&lt;/span&gt;
&lt;span class="n"&gt;FAVICON&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pelly.png&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## path to logo for nav menu (optional)&lt;/span&gt;
&lt;span class="n"&gt;LOGO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;pelly.png&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## first name for nav menu if logo isn&amp;#39;t provided&lt;/span&gt;
&lt;span class="n"&gt;FIRST_NAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Brutalist&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## google analytics (fake code commented out)&lt;/span&gt;
&lt;span class="c1"&gt;# GOOGLE_ANALYTICS = &amp;#39;UA-0011001-1&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## Twitter username for Twitter Card data&lt;/span&gt;
&lt;span class="n"&gt;TWITTER_USERNAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;@mcman_s&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## Toggle display of theme attribution in the footer (scroll down and see)&lt;/span&gt;
&lt;span class="c1"&gt;## Attribution is appreciated but totally fine to turn off!&lt;/span&gt;
&lt;span class="n"&gt;ATTRIBUTION&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="c1"&gt;## Add a link to the tags page to the menu&lt;/span&gt;
&lt;span class="c1"&gt;## Other links can be added following the same tuple pattern &lt;/span&gt;
&lt;span class="n"&gt;MENUITEMS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;tags&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/tags&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="c1"&gt;## Social icons for footer&lt;/span&gt;
&lt;span class="c1"&gt;## Set these to whatever your unique public URL is for that platform&lt;/span&gt;
&lt;span class="c1"&gt;## I&amp;#39;ve left mine here as a example&lt;/span&gt;
&lt;span class="n"&gt;STRAVA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.strava.com/athletes/27234301&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;TWITTER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://twitter.com/mcman_s&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;INSTAGRAM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://instagram.com/mcman_s&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;GITHUB&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://github.com/mamcmanus&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;TELEGRAM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://t.me/mcman_s&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;GOODREADS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://www.goodreads.com/user/show/48849158-matthew-mcmanus&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;FOURSQUARE&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://foursquare.com/mcman_s&amp;#39;&lt;/span&gt;
&lt;span class="n"&gt;UNTAPPD&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;https://untappd.com/user/mcman_s&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## Disqus Sitename for comments on posts&lt;/span&gt;
&lt;span class="c1"&gt;## Commenting mine out for this theme site&lt;/span&gt;
&lt;span class="n"&gt;DISQUS_SITENAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;brutalistpelican&amp;#39;&lt;/span&gt;
&lt;span class="c1"&gt;## Gravatar&lt;/span&gt;
&lt;span class="c1"&gt;## Commenting mine out so you can see how the theme looks without one&lt;/span&gt;
&lt;span class="c1"&gt;## See https://mamcmanus.com to see what it looks like with a Gravatar&lt;/span&gt;
&lt;span class="c1"&gt;# GRAVATAR = &amp;#39;https://www.gravatar.com/avatar/a5544bcae63c5d56c0b7a3fa0ab5b295?s=256&amp;#39;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;Plugins&lt;/h2&gt;
&lt;p&gt;I use this theme on &lt;a href="" title="https://mamcmanus.com"&gt;my site&lt;/a&gt; with the following plugin configuration.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="c1"&gt;# PLUGINS&lt;/span&gt;
&lt;span class="n"&gt;PLUGIN_PATHS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;plugins&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;PLUGINS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;sitemap&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;category_order&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;w3c_validate&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;optimize_images&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;gzip_cache&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;## SITEMAP PLUGIN&lt;/span&gt;
&lt;span class="n"&gt;SITEMAP&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;format&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;xml&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;priorities&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;articles&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;99&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;pages&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;indexes&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s1"&gt;&amp;#39;changefreqs&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;articles&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;daily&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;pages&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;daily&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;&amp;#39;indexes&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;daily&amp;#39;&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;Design and tooling choices&lt;/h2&gt;
&lt;p&gt;Some design and tooling choices I made while building this theme. Feedback welcome.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I kept the site in a single column for now. Research shows that the optimal character count is 66 and the single column design usually lands between 50-75.&lt;/li&gt;
&lt;li&gt;I chose the Lato font face and only 3 font weights because I like the way it looks. I have received feedback that it may be too hard to read so I may add some weights or change it. Instead of using the google font API urls, each font weight was translated to its raw Data URI and packaged with the theme to improve loading performance. &lt;/li&gt;
&lt;li&gt;Same thing for the footer icons. I used one of my favorite tools, &lt;a href="http://www.grumpicon.com/"&gt;Grumpicon&lt;/a&gt;, to properly package the fonts. I did not introduce the entire Grumpicon JS toolchain since it seems complex and I really just needed a handful of icons.&lt;/li&gt;
&lt;li&gt;I designed in SASS instead of CSS, mostly for the same reasons I &lt;a href="https://mamcmanus.com/2016/01/14/switching-from-css-to-sass/"&gt;outlined a few years ago&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;For date and time display I am using &lt;a href="https://momentjs.com/"&gt;moment.js&lt;/a&gt;. I've been using this script for years because it is easy to get the dates and times looking exactly how you want.&lt;/li&gt;
&lt;li&gt;I attempted to get the tag design as close to Stack Overflow as possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Shout outs&lt;/h2&gt;
&lt;p&gt;Thanks to &lt;a href="https://twitter.com/jmayer"&gt;Justin Mayer&lt;/a&gt; for permission to use the "Powered by Pelican" logo.&lt;/p&gt;
&lt;p&gt;Contributions, ideas, and general chat welcome. Feel free to reach out on Twitter or Telegram. I'll be working to add more features over the coming months.&lt;/p&gt;</content></entry><entry><title>A post with code blocks</title><link href="https://brutalistpelican.com/2018/08/21/a-post-with-code-blocks/" rel="alternate"></link><published>2018-08-21T00:00:00-06:00</published><updated>2018-08-21T00:00:00-06:00</updated><author><name>Matt McManus</name></author><id>tag:brutalistpelican.com,2018-08-21:/2018/08/21/a-post-with-code-blocks/</id><summary type="html">&lt;h2&gt;Python Code block&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;my_handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Received event: &amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;indent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;message&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;JSON code block&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;update_id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8888&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;chat&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;first_name&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Matt&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;put_your_id_here&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;last_name&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;McManus&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;private&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;rolename&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;mcman_s&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;date&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1453851465&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;from&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;first_name&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Matt&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;put_your_id_here&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;last_name&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;McManus&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;rolename&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;mcman_s&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;message_id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/start …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</summary><content type="html">&lt;h2&gt;Python Code block&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;my_handler&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Received event: &amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;indent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;handle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;message&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h2&gt;JSON code block&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;update_id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8888&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;chat&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;first_name&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Matt&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;put_your_id_here&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;last_name&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;McManus&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;private&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;rolename&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;mcman_s&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;date&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1453851465&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;from&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;first_name&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Matt&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="err"&gt;put_your_id_here&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;last_name&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;McManus&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;quot;rolename&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;mcman_s&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;message_id&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/start&amp;quot;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;</content><category term="code"></category><category term="syntax"></category><category term="python"></category></entry><entry><title>A post with images</title><link href="https://brutalistpelican.com/2018/08/21/a-post-with-images/" rel="alternate"></link><published>2018-08-21T00:00:00-06:00</published><updated>2018-08-21T00:00:00-06:00</updated><author><name>Matt McManus</name></author><id>tag:brutalistpelican.com,2018-08-21:/2018/08/21/a-post-with-images/</id><summary type="html">&lt;h2&gt;HEADER&lt;/h2&gt;
&lt;p&gt;&lt;img alt="Unsplash Wilderness photo" src="https://brutalistpelican.com/images/wilderness.jpg" title="Wilderness"&gt; &lt;/p&gt;
&lt;p&gt;I highly recommended using the &lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/optimize_images"&gt;optimize_images&lt;/a&gt; plugin. &lt;/p&gt;</summary><content type="html">&lt;h2&gt;HEADER&lt;/h2&gt;
&lt;p&gt;&lt;img alt="Unsplash Wilderness photo" src="https://brutalistpelican.com/images/wilderness.jpg" title="Wilderness"&gt; &lt;/p&gt;
&lt;p&gt;I highly recommended using the &lt;a href="https://github.com/getpelican/pelican-plugins/tree/master/optimize_images"&gt;optimize_images&lt;/a&gt; plugin. &lt;/p&gt;</content><category term="images"></category></entry><entry><title>A simple post</title><link href="https://brutalistpelican.com/2018/08/21/a-simple-post/" rel="alternate"></link><published>2018-08-21T00:00:00-06:00</published><updated>2018-08-21T00:00:00-06:00</updated><author><name>Matt McManus</name></author><id>tag:brutalistpelican.com,2018-08-21:/2018/08/21/a-simple-post/</id><summary type="html">&lt;h2&gt;HEADER&lt;/h2&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean quis erat imperdiet, sollicitudin ligula id, sollicitudin mauris. Praesent malesuada lorem sed lectus lacinia, nec elementum nunc fermentum. Mauris quis mollis velit. Etiam tempus porta felis, sed vulputate nisi efficitur a. Quisque efficitur neque non enim venenatis, a porttitor felis …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;HEADER&lt;/h2&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean quis erat imperdiet, sollicitudin ligula id, sollicitudin mauris. Praesent malesuada lorem sed lectus lacinia, nec elementum nunc fermentum. Mauris quis mollis velit. Etiam tempus porta felis, sed vulputate nisi efficitur a. Quisque efficitur neque non enim venenatis, a porttitor felis tristique. Aenean et bibendum lorem. Quisque eget leo ut neque tristique aliquam id ut justo. Maecenas iaculis nulla vel tellus tristique blandit.&lt;/p&gt;
&lt;p&gt;In sollicitudin lorem ex, ac sodales leo accumsan at. Cras interdum augue iaculis, sagittis odio ut, semper nulla. Pellentesque id rutrum dolor, gravida imperdiet velit. Fusce ut felis massa. Nam non viverra mi. Pellentesque at velit id nisl venenatis tempus. Morbi in maximus nisl, vitae placerat tellus. Integer eget nunc est. Nunc ultricies arcu blandit lorem laoreet, sed convallis ante tempor. Vestibulum auctor consequat enim, eget tristique sem congue nec. Phasellus ultrices dolor id mauris fermentum tincidunt. Morbi ligula odio, sodales nec purus sit amet, accumsan euismod libero. Nunc interdum mollis felis, non imperdiet ligula efficitur in. Praesent varius euismod magna non dignissim. Maecenas feugiat est eu lacus hendrerit faucibus. Maecenas ornare nisi mollis sagittis tincidunt.&lt;/p&gt;
&lt;h3&gt;LIST&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Nullam at felis sagittis nisl ultricies dapibus eget sit amet dui.&lt;/li&gt;
&lt;li&gt;Donec rutrum nisl ut nibh mattis consequat.&lt;/li&gt;
&lt;li&gt;Sed ultricies nisi vitae urna lacinia, non rhoncus urna pharetra.&lt;/li&gt;
&lt;li&gt;Mauris a ex sit amet mi cursus vestibulum.&lt;/li&gt;
&lt;li&gt;Curabitur non dolor quis ipsum pharetra cursus sed et nulla.&lt;/li&gt;
&lt;/ul&gt;</content></entry><entry><title>An extra post</title><link href="https://brutalistpelican.com/2018/08/21/an-extra-post/" rel="alternate"></link><published>2018-08-21T00:00:00-06:00</published><updated>2018-08-21T00:00:00-06:00</updated><author><name>Matt McManus</name></author><id>tag:brutalistpelican.com,2018-08-21:/2018/08/21/an-extra-post/</id><summary type="html">&lt;h2&gt;HEADER&lt;/h2&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean quis erat imperdiet, sollicitudin ligula id, sollicitudin mauris. Praesent malesuada lorem sed lectus lacinia, nec elementum nunc fermentum. Mauris quis mollis velit. Etiam tempus porta felis, sed vulputate nisi efficitur a. Quisque efficitur neque non enim venenatis, a porttitor felis …&lt;/p&gt;</summary><content type="html">&lt;h2&gt;HEADER&lt;/h2&gt;
&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean quis erat imperdiet, sollicitudin ligula id, sollicitudin mauris. Praesent malesuada lorem sed lectus lacinia, nec elementum nunc fermentum. Mauris quis mollis velit. Etiam tempus porta felis, sed vulputate nisi efficitur a. Quisque efficitur neque non enim venenatis, a porttitor felis tristique. Aenean et bibendum lorem. Quisque eget leo ut neque tristique aliquam id ut justo. Maecenas iaculis nulla vel tellus tristique blandit.&lt;/p&gt;
&lt;p&gt;In sollicitudin lorem ex, ac sodales leo accumsan at. Cras interdum augue iaculis, sagittis odio ut, semper nulla. Pellentesque id rutrum dolor, gravida imperdiet velit. Fusce ut felis massa. Nam non viverra mi. Pellentesque at velit id nisl venenatis tempus. Morbi in maximus nisl, vitae placerat tellus. Integer eget nunc est. Nunc ultricies arcu blandit lorem laoreet, sed convallis ante tempor. Vestibulum auctor consequat enim, eget tristique sem congue nec. Phasellus ultrices dolor id mauris fermentum tincidunt. Morbi ligula odio, sodales nec purus sit amet, accumsan euismod libero. Nunc interdum mollis felis, non imperdiet ligula efficitur in. Praesent varius euismod magna non dignissim. Maecenas feugiat est eu lacus hendrerit faucibus. Maecenas ornare nisi mollis sagittis tincidunt.&lt;/p&gt;</content></entry></feed>