+
+### Code Blocks
+
+Pre-formatted code blocks are used for writing about programming or
+markup source code. Rather than forming normal paragraphs, the lines
+of a code block are interpreted literally. Markdown wraps a code block
+in both `` and `` tags.
+
+To produce a code block in Markdown, simply indent every line of the
+block by at least 4 spaces or 1 tab.
+
+This is a normal paragraph:
+
+ This is a code block.
+
+Here is an example of AppleScript:
+
+ tell application "Foo"
+ beep
+ end tell
+
+A code block continues until it reaches a line that is not indented
+(or the end of the article).
+
+Within a code block, ampersands (`&`) and angle brackets (`<` and `>`)
+are automatically converted into HTML entities. This makes it very
+easy to include example HTML source code using Markdown -- just paste
+it and indent it, and Markdown will handle the hassle of encoding the
+ampersands and angle brackets. For example, this:
+
+
+
+Regular Markdown syntax is not processed within code blocks. E.g.,
+asterisks are just literal asterisks within a code block. This means
+it's also easy to use Markdown to write about Markdown's own syntax.
+
+```
+tell application "Foo"
+ beep
+end tell
+```
+
+## Span Elements
+
+### Links
+
+Markdown supports two style of links: *inline* and *reference*.
+
+In both styles, the link text is delimited by [square brackets].
+
+To create an inline link, use a set of regular parentheses immediately
+after the link text's closing square bracket. Inside the parentheses,
+put the URL where you want the link to point, along with an *optional*
+title for the link, surrounded in quotes. For example:
+
+This is [an example](http://example.com/) inline link.
+
+[This link](http://example.net/) has no title attribute.
+
+### Emphasis
+
+Markdown treats asterisks (`*`) and underscores (`_`) as indicators of
+emphasis. Text wrapped with one `*` or `_` will be wrapped with an
+HTML `` tag; double `*`'s or `_`'s will be wrapped with an HTML
+`` tag. E.g., this input:
+
+*single asterisks*
+
+_single underscores_
+
+**double asterisks**
+
+__double underscores__
+
+### Code
+
+To indicate a span of code, wrap it with backtick quotes (`` ` ``).
+Unlike a pre-formatted code block, a code span indicates code within a
+normal paragraph. For example:
+
+Use the `printf()` function.
diff --git a/content/posts/say-hello-to-gridsome-kopi.md b/content/posts/say-hello-to-gridsome-kopi.md
deleted file mode 100644
index 65a4ddb..0000000
--- a/content/posts/say-hello-to-gridsome-kopi.md
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: Say hello to Gridsome 2 πΆππ
-author: [tommyvedvik]
-date: 2018-10-10
-excerpt: "A new static site generator baby is born. It's highly inspired by Gatsby.js (React based) but built on top of Vue.js. We have been working on it for a year and will have a beta ready soon. You can expect this baby to grow up fast!"
----
-
-We think **Gridsome** is a missing piece to the Vue.js ecosystem. What Gatsby.js does for React.js is a game changer in how we build websites. React.js is excellent, but we think Vue.js is more approachable for most web designers and devs getting started with JAMstack. Gridsome is the Vue.js alternative to Gatsby.
-
-With **Gridsome** you get a **universal GraphQL layer** for all your connected data sources. It's like a single source of truth for your website data ready to be used in any page or components. Connect to any CMS or APIs like Google Spreadsheet, Airtable, Instagram Feed, local markdown files, etc.
-
-Here is an example on how to query posts from the GraphQL layer in a page:
-
-
-```html
-
-
- Latest blog posts
-
- -
- {{ edge.node.title }}
-
-
-
-
-
-
-query Blog {
- allWordPressPost (limit: 5) {
- edges {
- node {
- _id
- title
- }
- }
- }
-}
-
-```
-
-You don't need to know GraphQL or Vue to get started with Gridsome - It's a great way to get introduced to both.
-
-
-The GraphQL layer and all the data can be explored in a local GraphQL playground. The playground is usually located at `https://localhost:8080/___explore` when a Gridsome development project is running.
-
-
-
-
-#### Perfect scores on Google Lighthouse - automagically π
-
-One of the main goals of Gridsome is to make a framework that let you build websites that are optimized "out-of-the-box." It follows the [PRPL-pattern by Google.](https://developers.google.com/web/fundamentals/performance/prpl-pattern/) You don't need to be a performance expert to make fast websites with Gridsome. Your site gets almost perfect scores on Google lighthouse out-of-the-box. These are some of the performance steps that Gridsome takes care of:
-
-- Image compressing & lazy-loading β‘οΈ
-- CSS & JS minification β‘οΈ
-- Code-splitting β‘οΈ
-- HTML compressing β‘οΈ
-- Critical CSS (Plugin) β‘οΈ
-- Full PWA & Offline-support (plugin) β‘οΈ
-
-
-#### A better way to build websites
-
-Gridsome is built for the JAMstack workflow - a new way to build websites that gives you better performance, higher security, cheaper hosting, and a better developer experience. Generate prerendered (static) pages at build time for SEO-purpose and add powerful dynamic functionality with APIs and Vue.js.
-
-We believe the SSGs / JAMstack trend is just getting started. When you have first started to make websites this way there is no way back. You feel almost "dirty" when going back to a traditional WordPress / CMS setup.
-
-Try running the new Chrome Lighthouse (Audit tab in Developer tools) on a WordPress site - It is impossible to get good scores even with the best caching plugins and hosting. With Gridsome you don't even need caching plugins. Website optimization is taken care of at build time.
-
-This is what we think is very exciting and is why we are building Gridsome. It is the **perfect SPA & PWA front-end solution** for any headless CMS or content APIs.
-
-
-#### Whats next
-
-In the next couple of months we're going to continue to improve the docs, create tutorials, add more source & transformer plugins and fix bugs.
-
-#### Contribute to Gridsome
-
-We're currently just two brothers working on this, so any contribution is very welcome. We're passionate about building a faster web and make website building fun again.
-
-You can also support us by giving [a GitHub star β
](https://github.com/gridsome/gridsome/stargazers) and spread the word :)
diff --git a/content/posts/say-hello-to-gridsome.md b/content/posts/say-hello-to-gridsome.md
index 3d3640d..8095c23 100644
--- a/content/posts/say-hello-to-gridsome.md
+++ b/content/posts/say-hello-to-gridsome.md
@@ -1,7 +1,6 @@
---
-title: Say hello to Gridsome πΆππ
-author: [tommyvedvik]
-date: 2018-10-10
+title: Say hello to Gridsome π
+date: 2019-02-07
excerpt: "A new static site generator baby is born. It's highly inspired by Gatsby.js (React based) but built on top of Vue.js. We have been working on it for a year and will have a beta ready soon. You can expect this baby to grow up fast!"
---
diff --git a/src/assets/style/_code.scss b/src/assets/style/_code.scss
new file mode 100644
index 0000000..cc7c7aa
--- /dev/null
+++ b/src/assets/style/_code.scss
@@ -0,0 +1,134 @@
+/* PrismJS 1.15.0
+https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
+/**
+ * prism.js default theme for JavaScript, CSS and HTML
+ * Based on dabblet (http://dabblet.com)
+ * @author Lea Verou
+ */
+
+pre {
+ padding: calc(var(--space) / 2);
+ font-size: .85em;
+ background-color: var(--bg-code);
+ margin-bottom: var(--space);
+ border: 1px solid var(--border-color);
+ border-radius: 5px;
+}
+
+code {
+ background-color: var(--bg-code);
+ border: 1px solid var(--border-color);
+ font-size: .85em;
+ padding: .2em .5em;
+}
+
+code[class*="language-"],
+pre[class*="language-"] {
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ line-height: 1.5;
+
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+
+
+@media print {
+ code[class*="language-"],
+ pre[class*="language-"] {
+ text-shadow: none;
+ }
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+ overflow: auto;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+ border-radius: .3em;
+ white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+ color: slategray;
+}
+
+.token.punctuation {
+ color: #999;
+}
+
+.namespace {
+ opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.boolean,
+.token.number,
+.token.constant,
+.token.symbol,
+.token.deleted {
+ color: #c71b7b;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+ color: #690;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string {
+ color: #9a6e3a;
+ background: hsla(0, 0%, 100%, .5);
+}
+
+.token.atrule,
+.token.attr-value,
+.token.keyword {
+ color: #20a7e0;
+}
+
+.token.function,
+.token.class-name {
+ color: #DD4A68;
+}
+
+.token.regex,
+.token.important,
+.token.variable {
+ color: #e90;
+}
+
+.token.important,
+.token.bold {
+ font-weight: bold;
+}
+.token.italic {
+ font-style: italic;
+}
+
+.token.entity {
+ cursor: help;
+}
\ No newline at end of file
diff --git a/src/assets/style/_typography.scss b/src/assets/style/_typography.scss
index 186c41a..ff340e1 100644
--- a/src/assets/style/_typography.scss
+++ b/src/assets/style/_typography.scss
@@ -40,4 +40,14 @@ small {font-size: 0.889em;}
strong {
font-weight: 600;
+}
+
+blockquote {
+ border-left: 4px solid var(--border-color);
+ padding-left: calc(var(--space) / 2);
+ color: var(--title-color);
+}
+
+em {
+ font-style: italic;
}
\ No newline at end of file
diff --git a/src/assets/style/_variables.scss b/src/assets/style/_variables.scss
index db511ab..cd6c796 100644
--- a/src/assets/style/_variables.scss
+++ b/src/assets/style/_variables.scss
@@ -2,10 +2,11 @@
body {
--bg-color: #F3F7F9;
--bg-highlight-color: #FFF;
- --bg-code: rgba(0,0,0,.025);
+ --bg-code: #fffbf3;
--body-color: #444;
--title-color: #111;
--link-color: #2cb2f5;
+ --border-color: rgba(0,0,0,.1);;
--space: 2.5rem;
--container-width: 800px;
}
@@ -23,6 +24,8 @@ body[data-theme="dark"] {
--bg-color: #0D2538;
--bg-highlight-color: #0f2d44;
--bg-code: rgba(0,0,0,.3);
+ --border-color: rgba(255,255,255,.1);;
+
--body-color: #ced8de;
--title-color: #fff;
}
\ No newline at end of file
diff --git a/src/assets/style/index.scss b/src/assets/style/index.scss
index 1551c63..b2d6961 100644
--- a/src/assets/style/index.scss
+++ b/src/assets/style/index.scss
@@ -2,4 +2,5 @@
@import 'variables';
@import 'typography';
@import 'base';
+@import 'code';
@import 'content-box';
diff --git a/src/components/PostMeta.vue b/src/components/PostMeta.vue
index a66d0b5..c432765 100644
--- a/src/components/PostMeta.vue
+++ b/src/components/PostMeta.vue
@@ -1,5 +1,10 @@
- Posted 19. February 2019. 3 min read
+
+ Posted {{ post.date }}.
+
+ {{ post.timeToRead }} min read
+
+