upgrade to Gatsby 0.11
5
.babelrc
@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
"stage": 2,
|
"presets": ['react', 'es2015', 'stage-0'],
|
||||||
}
|
"plugins": ['add-module-exports']
|
||||||
|
}
|
@ -10,8 +10,11 @@
|
|||||||
"no-else-return": [0],
|
"no-else-return": [0],
|
||||||
"space-infix-ops": [0],
|
"space-infix-ops": [0],
|
||||||
"react/prefer-es6-class": [0],
|
"react/prefer-es6-class": [0],
|
||||||
|
"react/prefer-stateless-function": [0],
|
||||||
|
"import/no-unresolved": [0],
|
||||||
|
"global-require": [0],
|
||||||
},
|
},
|
||||||
"globals": {
|
"globals": {
|
||||||
"__PREFIX_LINKS__": true,
|
"__PREFIX_LINKS__": true,
|
||||||
},
|
},
|
||||||
}
|
}
|
30
.gitignore
vendored
@ -1,27 +1,5 @@
|
|||||||
# Logs
|
node_modules/
|
||||||
logs
|
public
|
||||||
*.log
|
|
||||||
|
|
||||||
# Runtime data
|
.gatsby-context.js
|
||||||
pids
|
pages/.manifest
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
||||||
lib-cov
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
|
||||||
.grunt
|
|
||||||
|
|
||||||
# node-waf configuration
|
|
||||||
.lock-wscript
|
|
||||||
|
|
||||||
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
|
||||||
build/Release
|
|
||||||
|
|
||||||
# Dependency directory
|
|
||||||
# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git
|
|
||||||
node_modules
|
|
11
.project
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>gatsby-starter-lumen</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
10
app.js
@ -1,10 +0,0 @@
|
|||||||
exports.loadContext = function(callback) {
|
|
||||||
let context = require.context('./pages', true)
|
|
||||||
if (module.hot) {
|
|
||||||
module.hot.accept(context.id, () => {
|
|
||||||
context = require.context('./pages', true)
|
|
||||||
return callback(context)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return callback(context)
|
|
||||||
}
|
|
6
browserlist
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Browsers that we support
|
||||||
|
|
||||||
|
>1%
|
||||||
|
ie >= 9
|
||||||
|
safari >= 6
|
||||||
|
last 3 versions
|
@ -1 +0,0 @@
|
|||||||
import './style.sss'
|
|
@ -1,24 +0,0 @@
|
|||||||
.wrapper
|
|
||||||
lost-center: 1070px
|
|
||||||
.content
|
|
||||||
lost-column: 2/3
|
|
||||||
.main-inner
|
|
||||||
padding: 40px 35px
|
|
||||||
|
|
||||||
@media screen and (max-width: 1100px)
|
|
||||||
.content
|
|
||||||
lost-column: 2/4
|
|
||||||
.main-inner
|
|
||||||
padding: 35px 20px
|
|
||||||
|
|
||||||
@media screen and (max-width: 900px)
|
|
||||||
.content
|
|
||||||
lost-column: 7/12
|
|
||||||
.main-inner
|
|
||||||
padding: 30px 20px
|
|
||||||
|
|
||||||
@media screen and (max-width: 500px)
|
|
||||||
.content
|
|
||||||
lost-column: 4/4
|
|
||||||
.main-inner
|
|
||||||
padding: 25px 20px
|
|
@ -1,8 +1,8 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { RouteHandler, Link } from 'react-router'
|
import { RouteHandler, Link } from 'react-router'
|
||||||
import { link } from 'gatsby-helpers'
|
import { prefixLink } from 'gatsby-helpers'
|
||||||
|
|
||||||
import './style.sss'
|
import './style.css'
|
||||||
|
|
||||||
class BlogNav extends React.Component {
|
class BlogNav extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
@ -11,15 +11,15 @@ class BlogNav extends React.Component {
|
|||||||
<nav className='blog-nav'>
|
<nav className='blog-nav'>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<Link to="/" className={ location.pathname === link('/') ? "current" : null }> Articles
|
<Link to="/" className={ location.pathname === prefixLink('/') ? "current" : null }> Articles
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Link to="/about" className={ location.pathname === link('/about') ? "current" : null }> About me
|
<Link to="/about" className={ location.pathname === prefixLink('/about') ? "current" : null }> About me
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<Link to="/contact" className={ location.pathname === link('/contact') ? "current" : null }> Contact me
|
<Link to="/contact" className={ location.pathname === prefixLink('/contact') ? "current" : null }> Contact me
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
24
components/BlogNav/style.css
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
.blog-nav {
|
||||||
|
margin: 20px 0px 10px;
|
||||||
|
}
|
||||||
|
.blog-nav ul {
|
||||||
|
list-style: none;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
|
.blog-nav ul li {
|
||||||
|
margin: 10px 0 10px;
|
||||||
|
}
|
||||||
|
.blog-nav ul li a {
|
||||||
|
font-size: 16px;
|
||||||
|
line-heigh: 26px;
|
||||||
|
margin-bottom: 26px;
|
||||||
|
border-bottom: 0;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
.blog-nav ul li a.current {
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
||||||
|
.blog-nav ul li a:hover {
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
@ -1,23 +0,0 @@
|
|||||||
.blog-nav
|
|
||||||
margin: 20px 0px 10px
|
|
||||||
|
|
||||||
.blog-nav ul
|
|
||||||
list-style: none
|
|
||||||
padding-left: 0
|
|
||||||
|
|
||||||
.blog-nav ul li
|
|
||||||
margin: 10px 0 10px
|
|
||||||
|
|
||||||
.blog-nav ul li a
|
|
||||||
font-size: 16px
|
|
||||||
line-heigh: 26px
|
|
||||||
margin-bottom: 26px
|
|
||||||
border-bottom: 0
|
|
||||||
font-weight: 400
|
|
||||||
color: #222
|
|
||||||
|
|
||||||
.blog-nav ul li a.current
|
|
||||||
border-bottom: 1px solid
|
|
||||||
|
|
||||||
.blog-nav ul li a:hover
|
|
||||||
border-bottom: 1px solid
|
|
@ -1,13 +1,13 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import { RouteHandler, Link } from 'react-router'
|
import { RouteHandler, Link } from 'react-router'
|
||||||
import { link } from 'gatsby-helpers'
|
import { prefixLink } from 'gatsby-helpers'
|
||||||
import DocumentTitle from 'react-document-title'
|
import DocumentTitle from 'react-document-title'
|
||||||
import SidebarLeft from '../SidebarLeft'
|
import SidebarLeft from '../SidebarLeft'
|
||||||
import access from 'safe-access'
|
import access from 'safe-access'
|
||||||
import { config } from 'config'
|
import { config } from 'config'
|
||||||
|
|
||||||
import './style.sss';
|
import './style.css';
|
||||||
|
|
||||||
class BlogPage extends React.Component {
|
class BlogPage extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
|
17
components/BlogPage/style.css
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
.blog-page {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
.blog-page h1 {
|
||||||
|
font-size: responsive 20px 36px;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
.blog-page p {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 26px;
|
||||||
|
margin-bottom: 26px;
|
||||||
|
}
|
||||||
|
@media (max-width:900px) {
|
||||||
|
.blog-single .text, .blog-single .footer {
|
||||||
|
padding: 0 15px;
|
||||||
|
}
|
||||||
|
}
|
@ -1,16 +0,0 @@
|
|||||||
.blog-page
|
|
||||||
margin-bottom: 40px
|
|
||||||
|
|
||||||
.blog-page h1
|
|
||||||
font-size: responsive 20px 36px
|
|
||||||
margin-top: 0
|
|
||||||
|
|
||||||
.blog-page p
|
|
||||||
font-size: responsive 14px 16px
|
|
||||||
line-height: 1.5
|
|
||||||
margin-top: 10px
|
|
||||||
|
|
||||||
@media (max-width: 900px)
|
|
||||||
.blog-single .text,
|
|
||||||
.blog-single .footer
|
|
||||||
padding: 0 15px
|
|
@ -2,13 +2,11 @@ import React from 'react'
|
|||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import { RouteHandler, Link } from 'react-router'
|
import { RouteHandler, Link } from 'react-router'
|
||||||
import DocumentTitle from 'react-document-title'
|
import DocumentTitle from 'react-document-title'
|
||||||
import { link } from 'gatsby-helpers'
|
import { prefixLink } from 'gatsby-helpers'
|
||||||
import access from 'safe-access'
|
import access from 'safe-access'
|
||||||
import ReadNext from '../ReadNext'
|
|
||||||
import { config } from 'config'
|
import { config } from 'config'
|
||||||
|
import ReadNext from '../ReadNext'
|
||||||
import './style.sss'
|
import './style.css'
|
||||||
|
|
||||||
import '../../static/css/highlight.css'
|
import '../../static/css/highlight.css'
|
||||||
|
|
||||||
class BlogPost extends React.Component {
|
class BlogPost extends React.Component {
|
||||||
@ -17,7 +15,7 @@ class BlogPost extends React.Component {
|
|||||||
const post = route.page.data
|
const post = route.page.data
|
||||||
const home = (
|
const home = (
|
||||||
<div>
|
<div>
|
||||||
<Link className='gohome' to={ link('/') }> All Articles
|
<Link className='gohome' to={ prefixLink('/') }> All Articles
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
@ -39,7 +37,7 @@ class BlogPost extends React.Component {
|
|||||||
<p>
|
<p>
|
||||||
{ config.siteDescr }
|
{ config.siteDescr }
|
||||||
<a href={ config.twitter }>
|
<a href={ config.twitter }>
|
||||||
<br></br> <strong>{ config.authorName }</strong> on Twitter</a>
|
<br></br> <strong>{ config.siteAuthor }</strong> on Twitter</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
105
components/BlogPost/style.css
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
.blog-post {
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
.blog-post:last-child {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.blog-post h2 {
|
||||||
|
margin-top: 10px;
|
||||||
|
line-height: 30px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.blog-post h2 a:hover {
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
||||||
|
.blog-post p {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 26px;
|
||||||
|
margin-bottom: 26px;
|
||||||
|
}
|
||||||
|
.blog-post time {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #222;
|
||||||
|
font-weight: 500;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.blog-post .blog-category {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #f7a046;
|
||||||
|
font-weight: 500;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.blog-post .readmore {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #5d93ff;
|
||||||
|
}
|
||||||
|
.blog-post .readmore:hover {
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
||||||
|
.blog-single {
|
||||||
|
max-width: 945px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.blog-single h1 {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
.blog-single .text {
|
||||||
|
line-height: 31px;
|
||||||
|
margin-bottom: 31px;
|
||||||
|
}
|
||||||
|
.blog-single h1, .blog-single .date-published, .blog-single .text *:not(div) {
|
||||||
|
max-width: 630px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.blog-single .text img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
.blog-single .footer {
|
||||||
|
max-width: 630px;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
line-height: 31px;
|
||||||
|
margin-bottom: 31px;
|
||||||
|
}
|
||||||
|
.gohome {
|
||||||
|
position: fixed;
|
||||||
|
left: 20px;
|
||||||
|
font-size: 16px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 8px 16px;
|
||||||
|
color: #999;
|
||||||
|
background: #f4f4f4;
|
||||||
|
font-weight: 400;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.gohome:focus {
|
||||||
|
color: #444;
|
||||||
|
background: #f4f4f4;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.gohome:hover {
|
||||||
|
color: #444;
|
||||||
|
background: #f4f4f4;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
@media (max-width:900px) {
|
||||||
|
.blog-single h1 {
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
.blog-single .text, .blog-single .footer {
|
||||||
|
padding: 0 15px;
|
||||||
|
line-height: 26px;
|
||||||
|
margin-bottom: 26px;
|
||||||
|
}
|
||||||
|
.gohome {
|
||||||
|
position: static;
|
||||||
|
margin: 20px auto 0;
|
||||||
|
text-align: center;
|
||||||
|
width: 85px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
@ -1,108 +0,0 @@
|
|||||||
.blog-post
|
|
||||||
margin-bottom: 30px
|
|
||||||
|
|
||||||
.blog-post:last-child
|
|
||||||
margin-bottom: 10px
|
|
||||||
|
|
||||||
.blog-post h2
|
|
||||||
margin-top: 10px
|
|
||||||
line-height: 30px
|
|
||||||
margin-bottom: 20px
|
|
||||||
|
|
||||||
.blog-post h2 a:hover
|
|
||||||
border-bottom: 1px solid
|
|
||||||
|
|
||||||
.blog-post p
|
|
||||||
font-size: 16px
|
|
||||||
line-height: 26px
|
|
||||||
margin-bottom: 26px
|
|
||||||
|
|
||||||
.blog-post time
|
|
||||||
font-size: 14px
|
|
||||||
color: #222
|
|
||||||
font-weight: 600
|
|
||||||
text-transform: uppercase
|
|
||||||
letter-spacing: 0.04rem
|
|
||||||
font-family: "Roboto", Helvetica, Arial, sans-serif
|
|
||||||
|
|
||||||
.blog-post .blog-category
|
|
||||||
font-size: 14px
|
|
||||||
color: #f7a046
|
|
||||||
font-weight: 600
|
|
||||||
text-transform: uppercase
|
|
||||||
letter-spacing: 0.04rem
|
|
||||||
font-family: "Roboto", Helvetica, Arial, sans-serif
|
|
||||||
|
|
||||||
.blog-post .readmore
|
|
||||||
font-size: 16px
|
|
||||||
color: #5d93ff
|
|
||||||
font-weight: 600
|
|
||||||
font-family: 'Raleway', Helvetica, Arial, sans-serif
|
|
||||||
|
|
||||||
.blog-post .readmore:hover
|
|
||||||
border-bottom: 1px solid
|
|
||||||
|
|
||||||
.blog-single h1
|
|
||||||
text-align: center
|
|
||||||
margin-top: 30px
|
|
||||||
|
|
||||||
.blog-single .text
|
|
||||||
line-height: 31px
|
|
||||||
line-height: 1.722222222222222rem
|
|
||||||
margin-bottom: 31px
|
|
||||||
margin-bottom: 1.722222222222222rem
|
|
||||||
|
|
||||||
.blog-single h1,
|
|
||||||
.blog-single .date-published,
|
|
||||||
.blog-single .text div :not(figure)
|
|
||||||
max-width: 35rem
|
|
||||||
margin-left: auto
|
|
||||||
margin-right: auto
|
|
||||||
|
|
||||||
.blog-single .text img
|
|
||||||
max-width: 100%
|
|
||||||
height: auto
|
|
||||||
|
|
||||||
.blog-single .footer
|
|
||||||
max-width: 35rem
|
|
||||||
margin-left: auto
|
|
||||||
margin-right: auto
|
|
||||||
line-height: 31px
|
|
||||||
line-height: 1.722222222222222rem
|
|
||||||
margin-bottom: 31px
|
|
||||||
margin-bottom: 1.722222222222222rem
|
|
||||||
|
|
||||||
.gohome
|
|
||||||
font-family: 'Raleway', Helvetica, Arial, sans-serif
|
|
||||||
font-size: 16px
|
|
||||||
text-align: center
|
|
||||||
color: #343e47
|
|
||||||
font-weight: 600
|
|
||||||
position: fixed
|
|
||||||
left: 20px
|
|
||||||
top: 20px
|
|
||||||
opacity: 0.5
|
|
||||||
padding: 8px 18px
|
|
||||||
border: 2px solid #343e47 !important
|
|
||||||
border-radius: 3px
|
|
||||||
|
|
||||||
.gohome:hover
|
|
||||||
color: #201e28
|
|
||||||
opacity: 1
|
|
||||||
|
|
||||||
@media (max-width: 900px)
|
|
||||||
.blog-single h1
|
|
||||||
margin-top: 15px
|
|
||||||
.blog-single .text,
|
|
||||||
.blog-single .footer
|
|
||||||
padding: 0 15px
|
|
||||||
line-height: 26px
|
|
||||||
line-height: 1.625rem
|
|
||||||
margin: 0px 0px 26px
|
|
||||||
margin: 0rem 0rem 1.625rem
|
|
||||||
.gohome
|
|
||||||
position: static
|
|
||||||
margin: 20px auto 0
|
|
||||||
text-align: center
|
|
||||||
width: 85px
|
|
||||||
display: block
|
|
@ -1,45 +1,38 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { RouteHandler, Link } from 'react-router'
|
import { RouteHandler, Link } from 'react-router'
|
||||||
import { link } from 'gatsby-helpers'
|
import { prefixLink } from 'gatsby-helpers'
|
||||||
import { config } from 'config'
|
import { config } from 'config'
|
||||||
|
|
||||||
import './style.sss'
|
import './style.css'
|
||||||
import '../../static/fonts/fontawesome/style.css'
|
import '../../static/fonts/fontawesome/style.css'
|
||||||
|
|
||||||
class BlogSocial extends React.Component {
|
class BlogSocial extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
|
|
||||||
const twitter = config.blogTitle
|
|
||||||
const vk = config.vk
|
|
||||||
const rss = config.rss
|
|
||||||
const email = config.email
|
|
||||||
const github = config.github
|
|
||||||
const telegram = config.telegram
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='blog-social'>
|
<div className='blog-social'>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href={ twitter }><i className='fa fa-twitter'></i></a>
|
<a href={ config.siteTwitterUrl }><i className='fa fa-twitter'></i></a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href={ github }><i className='fa fa-github-alt'></i></a>
|
<a href={ config.siteGithubUrl }><i className='fa fa-github-alt'></i></a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href={ vk }><i className='fa fa-vk'></i></a>
|
<a href={ config.siteVkUrl }><i className='fa fa-vk'></i></a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href={ email }><i className='fa fa-envelope-o'></i></a>
|
<a href={ config.siteEmailUrl }><i className='fa fa-envelope-o'></i></a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href={ telegram }><i className='fa fa-paper-plane'></i></a>
|
<a href={ config.siteTelegramUrl }><i className='fa fa-paper-plane'></i></a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<a href={ rss }><i className='fa fa-rss'></i></a>
|
<a href={ config.siteRssUrl }><i className='fa fa-rss'></i></a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
32
components/BlogSocial/style.css
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
.blog-social {
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
.blog-social ul {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 10px 0;
|
||||||
|
clear: fix-legacy;
|
||||||
|
}
|
||||||
|
.blog-social ul > li {
|
||||||
|
float: left;
|
||||||
|
margin-right: 5px;
|
||||||
|
text-align: center;
|
||||||
|
height: 24px;
|
||||||
|
width: 24px;
|
||||||
|
border-radius: 3px;
|
||||||
|
background: #f4f4f4;
|
||||||
|
}
|
||||||
|
.blog-social ul > li:hover {
|
||||||
|
background: #f4f4f4;
|
||||||
|
}
|
||||||
|
.blog-social ul > li > a {
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
.blog-social ul > li > a > i {
|
||||||
|
color: #606060;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 24px;
|
||||||
|
}
|
||||||
|
.blog-social ul > li:hover a > i {
|
||||||
|
color: #444;
|
||||||
|
}
|
@ -1,34 +0,0 @@
|
|||||||
.blog-social
|
|
||||||
margin-top: 30px
|
|
||||||
|
|
||||||
.blog-social ul
|
|
||||||
list-style: none
|
|
||||||
padding: 0
|
|
||||||
margin: 10px 0
|
|
||||||
clear: fix-legacy
|
|
||||||
|
|
||||||
.blog-social ul > li
|
|
||||||
float: left
|
|
||||||
margin-right: 5px
|
|
||||||
text-align: center
|
|
||||||
line-height: 21px
|
|
||||||
height: 24px
|
|
||||||
width: 24px
|
|
||||||
border-radius: 3px
|
|
||||||
background: #f4edde
|
|
||||||
|
|
||||||
.blog-social ul > li:hover
|
|
||||||
background: #f4efe8
|
|
||||||
|
|
||||||
.blog-social ul > li > a
|
|
||||||
border-bottom: 0
|
|
||||||
line-height: 21px
|
|
||||||
cursor: pointer
|
|
||||||
|
|
||||||
.blog-social ul > li > a > i
|
|
||||||
color: #333
|
|
||||||
font-size: 14px
|
|
||||||
line-height: 21px
|
|
||||||
|
|
||||||
.blog-social ul > li:hover a > i
|
|
||||||
color: #222
|
|
@ -3,7 +3,7 @@ import { Link } from 'react-router'
|
|||||||
import { prune, include as includes } from 'underscore.string'
|
import { prune, include as includes } from 'underscore.string'
|
||||||
import find from 'lodash/find'
|
import find from 'lodash/find'
|
||||||
|
|
||||||
import './style.sss'
|
import './style.css'
|
||||||
|
|
||||||
class ReadNext extends React.Component {
|
class ReadNext extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
|
4
components/ReadNext/style.css
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
.description {
|
||||||
|
font-size: responsive 12px 14px;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
@ -1,3 +0,0 @@
|
|||||||
.description
|
|
||||||
font-size: responsive 12px 14px
|
|
||||||
line-height: 1.6
|
|
@ -1,27 +1,30 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { RouteHandler, Link } from 'react-router'
|
import { RouteHandler, Link } from 'react-router'
|
||||||
import { link } from 'gatsby-helpers'
|
import { prefixLink } from 'gatsby-helpers'
|
||||||
import { config } from 'config'
|
import { config } from 'config'
|
||||||
import BlogNav from '../BlogNav'
|
import BlogNav from '../BlogNav'
|
||||||
import BlogSocial from '../BlogSocial'
|
import BlogSocial from '../BlogSocial'
|
||||||
import './style.sss'
|
import './style.css'
|
||||||
|
|
||||||
class SidebarLeft extends React.Component {
|
class SidebarLeft extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
const {location, children} = this.props
|
const {location, children} = this.props
|
||||||
let header
|
const isHome = location.pathname === prefixLink('/')
|
||||||
|
|
||||||
header = (
|
let header = (
|
||||||
<header>
|
<header>
|
||||||
<Link style={ { textDecoration: 'none', borderBottom: 'none', outline: 'none'} } to={ link('/') }>
|
<Link style={ { textDecoration: 'none', borderBottom: 'none', outline: 'none'} } to={ prefixLink('/') }>
|
||||||
<img src='./images/photo9.jpg' width='75' height='75' />
|
<img src='./photo.jpg' width='75' height='75' />
|
||||||
</Link>
|
</Link>
|
||||||
<h1><Link style={ { textDecoration: 'none', borderBottom: 'none', color: 'inherit'} } to={ link('/') } > { config.siteTitle } </Link></h1>
|
{ isHome ? (
|
||||||
<p>
|
<h1><Link style={ { textDecoration: 'none', borderBottom: 'none', color: 'inherit'} } to={ prefixLink('/') }> { config.siteAuthor } </Link></h1>
|
||||||
{ config.siteDescr }
|
) :
|
||||||
</p>
|
<h2><Link style={ { textDecoration: 'none', borderBottom: 'none', color: 'inherit'} } to={ prefixLink('/') }> { config.siteAuthor } </Link></h2> }
|
||||||
</header>
|
<p>
|
||||||
);
|
{ config.siteDescr }
|
||||||
|
</p>
|
||||||
|
</header>
|
||||||
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='sidebar'>
|
<div className='sidebar'>
|
||||||
|
67
components/SidebarLeft/style.css
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
.sidebar {
|
||||||
|
lost-column: 1/3;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner {
|
||||||
|
position: relative;
|
||||||
|
padding: 40px;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner:after {
|
||||||
|
background: #eee;
|
||||||
|
background: linear-gradient(to bottom, #eee 0%, #eee 48%, #fff 100%);
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
width: 1px;
|
||||||
|
height: 540px;
|
||||||
|
top: 30px;
|
||||||
|
right: -10px;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner img {
|
||||||
|
display: inline-block;
|
||||||
|
margin-bottom: 0;
|
||||||
|
border-radius: 50%;
|
||||||
|
background-clip: padding-box;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner h1, .sidebar .sidebar-inner h2 {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 18px;
|
||||||
|
margin: 20px 0 10px;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner p {
|
||||||
|
color: #888;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 26px;
|
||||||
|
margin-bottom: 26px;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner p.copyright {
|
||||||
|
color: #b6b6b6;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
@media (max-width:1100px) {
|
||||||
|
.sidebar .sidebar-inner {
|
||||||
|
padding: 35px 20px 0;
|
||||||
|
}
|
||||||
|
.sidebar {
|
||||||
|
lost-column: 1/2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width:900px) {
|
||||||
|
.sidebar {
|
||||||
|
lost-column: 5/12;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner {
|
||||||
|
padding: 30px 20px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width:500px) {
|
||||||
|
.sidebar {
|
||||||
|
lost-column: 1;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner {
|
||||||
|
padding: 25px 20px 0;
|
||||||
|
}
|
||||||
|
.sidebar .sidebar-inner:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
@ -1,59 +0,0 @@
|
|||||||
.sidebar
|
|
||||||
lost-column: 1/3
|
|
||||||
|
|
||||||
.sidebar .sidebar-inner
|
|
||||||
position: relative
|
|
||||||
padding: 40px
|
|
||||||
|
|
||||||
.sidebar .sidebar-inner:after
|
|
||||||
background: #eee
|
|
||||||
background: linear-gradient(to bottom, #eee 0%, #eee 48%, #fff 100%)
|
|
||||||
position: absolute
|
|
||||||
content: ''
|
|
||||||
width: 1px
|
|
||||||
height: 540px
|
|
||||||
top: 30px
|
|
||||||
right: -10px
|
|
||||||
bottom: 0
|
|
||||||
|
|
||||||
.sidebar .sidebar-inner img
|
|
||||||
display: inline-block
|
|
||||||
margin-bottom: 0
|
|
||||||
border-radius: 50%
|
|
||||||
background-clip: padding-box
|
|
||||||
|
|
||||||
.sidebar .sidebar-inner h1,
|
|
||||||
.sidebar .sidebar-inner h2
|
|
||||||
font-size: responsive 16px 18px
|
|
||||||
line-height: 1
|
|
||||||
margin: 20px 0 10px
|
|
||||||
|
|
||||||
.sidebar .sidebar-inner p
|
|
||||||
font-size: 14px
|
|
||||||
color: #888
|
|
||||||
line-height: 23px
|
|
||||||
margin-bottom: 23px
|
|
||||||
|
|
||||||
.sidebar .sidebar-inner p.copyright
|
|
||||||
color: #b6b6b6
|
|
||||||
font-size: 12px
|
|
||||||
|
|
||||||
@media (max-width: 1100px)
|
|
||||||
.sidebar .sidebar-inner
|
|
||||||
padding: 35px 20px 0
|
|
||||||
.sidebar
|
|
||||||
lost-column: 2/4
|
|
||||||
|
|
||||||
@media (max-width: 900px)
|
|
||||||
.sidebar
|
|
||||||
lost-column: 5/12
|
|
||||||
.sidebar .sidebar-inner
|
|
||||||
padding: 30px 20px 0
|
|
||||||
|
|
||||||
@media (max-width: 500px)
|
|
||||||
.sidebar
|
|
||||||
lost-column: 4/4
|
|
||||||
.sidebar .sidebar-inner
|
|
||||||
padding: 25px 20px 0
|
|
||||||
.sidebar .sidebar-inner:after
|
|
||||||
display: none
|
|
17
config.toml
@ -1,13 +1,12 @@
|
|||||||
siteTitle = "Blog by John Doe"
|
siteTitle = "Blog by John Doe"
|
||||||
siteDescr = "Lorem Ipsum is simply dummy text of the printing and typesetting industry. "
|
siteDescr = "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
|
||||||
|
siteAuthor = "John Doe"
|
||||||
|
|
||||||
authorName = "John Doe"
|
siteTelegramUrl = "#"
|
||||||
|
siteTwitterUrl = "#"
|
||||||
linkTelegram = "#"
|
siteGithubUrl = "#"
|
||||||
linkTwitter = "#"
|
siteEmailUrl = "#"
|
||||||
linkGithub = "#"
|
siteRssUrl = "#"
|
||||||
linkEmail = "#"
|
siteVkUrl = "#"
|
||||||
linkRss = "/feed.xml"
|
|
||||||
linkVk = "#"
|
|
||||||
|
|
||||||
linkPrefix = "/lumen"
|
linkPrefix = "/lumen"
|
13
gatsby-node.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
var rucksack = require('rucksack-css')
|
||||||
|
var lost = require("lost")
|
||||||
|
|
||||||
|
exports.modifyWebpackConfig = function(config, env) {
|
||||||
|
config.merge({
|
||||||
|
postcss: [
|
||||||
|
lost(),
|
||||||
|
rucksack()
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
return config
|
||||||
|
};
|
@ -1,54 +0,0 @@
|
|||||||
import webpack from 'webpack'
|
|
||||||
import precss from 'precss'
|
|
||||||
import lost from 'lost'
|
|
||||||
import rucksack from 'rucksack-css'
|
|
||||||
import ExtractTextPlugin from 'extract-text-webpack-plugin'
|
|
||||||
|
|
||||||
module.exports = function(config, env) {
|
|
||||||
var is_static = env === 'static';
|
|
||||||
var is_develop = env === 'develop';
|
|
||||||
var is_production = env === 'production';
|
|
||||||
|
|
||||||
config.merge({
|
|
||||||
postcss: [
|
|
||||||
lost(),
|
|
||||||
rucksack({
|
|
||||||
autoprefixer: true
|
|
||||||
})
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
config.removeLoader('css');
|
|
||||||
|
|
||||||
if (is_develop) {
|
|
||||||
config.loader('css', function(cfg) {
|
|
||||||
cfg.test = /\.css/;
|
|
||||||
cfg.loaders = ['style', 'css-loader', 'postcss-loader'];
|
|
||||||
return cfg
|
|
||||||
})
|
|
||||||
config.loader('postcss', function(cfg) {
|
|
||||||
cfg.test = /\.sss/;
|
|
||||||
cfg.loaders = ['style', 'css-loader', 'postcss-loader?parser=sugarss'];
|
|
||||||
return cfg
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
config.loader('css', function(cfg) {
|
|
||||||
cfg.test = /\.css/;
|
|
||||||
cfg.loader = ExtractTextPlugin.extract(['css-loader', 'postcss-loader']);
|
|
||||||
return cfg
|
|
||||||
})
|
|
||||||
config.loader('postcss', function(cfg) {
|
|
||||||
cfg.test = /\.sss/;
|
|
||||||
cfg.loader = ExtractTextPlugin.extract(['css-loader', 'postcss-loader?parser=sugarss']);
|
|
||||||
return cfg
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
config.plugin('extract-css',
|
|
||||||
ExtractTextPlugin,
|
|
||||||
["styles.css", {
|
|
||||||
allChunks: true
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return config
|
|
||||||
};
|
|
45
html.js
@ -1,22 +1,34 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import DocumentTitle from 'react-document-title'
|
import DocumentTitle from 'react-document-title'
|
||||||
import { link } from 'gatsby-helpers'
|
import { prefixLink } from 'gatsby-helpers'
|
||||||
|
|
||||||
|
const BUILD_TIME = new Date().getTime()
|
||||||
|
|
||||||
module.exports = React.createClass({
|
module.exports = React.createClass({
|
||||||
propTypes() {
|
displayName: 'HTML',
|
||||||
return {
|
propTypes: {
|
||||||
title: React.PropTypes.string,
|
body: React.PropTypes.string,
|
||||||
}
|
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
let title = DocumentTitle.rewind()
|
const {body, route} = this.props
|
||||||
if (this.props.title) {
|
const title = DocumentTitle.rewind()
|
||||||
title = this.props.title
|
|
||||||
}
|
|
||||||
|
|
||||||
let cssLink
|
const font = `
|
||||||
|
WebFontConfig = {
|
||||||
|
google: { families: [ 'Roboto:400,500,700:latin,cyrillic' ] }
|
||||||
|
};
|
||||||
|
(function() {
|
||||||
|
var wf = document.createElement('script');
|
||||||
|
wf.src = 'https://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
|
||||||
|
wf.type = 'text/javascript';
|
||||||
|
wf.async = 'true';
|
||||||
|
var s = document.getElementsByTagName('script')[0];
|
||||||
|
s.parentNode.insertBefore(wf, s);
|
||||||
|
})();
|
||||||
|
`
|
||||||
|
let css
|
||||||
if (process.env.NODE_ENV === 'production') {
|
if (process.env.NODE_ENV === 'production') {
|
||||||
cssLink = <link rel="stylesheet" href={ link('/styles.css') } />
|
css = <style dangerouslySetInnerHTML={ { __html: require('!raw!postcss!./public/styles.css')} } />
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -24,19 +36,18 @@ module.exports = React.createClass({
|
|||||||
<head>
|
<head>
|
||||||
<meta charSet="utf-8" />
|
<meta charSet="utf-8" />
|
||||||
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
|
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0 maximum-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0 maximum-scale=5.0" />
|
||||||
<title>
|
<title>
|
||||||
{ title }
|
{ title }
|
||||||
</title>
|
</title>
|
||||||
<link rel="shortcut icon" href={ this.props.favicon } />
|
|
||||||
<link href='https://fonts.googleapis.com/css?family=Roboto:700|Raleway:600,700|PT+Sans:400,400italic,700,700italic' rel='stylesheet' type='text/css' />
|
|
||||||
{ cssLink }
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="react-mount" dangerouslySetInnerHTML={ { __html: this.props.body} } />
|
<div id="react-mount" dangerouslySetInnerHTML={ { __html: this.props.body} } />
|
||||||
<script src={ link('/bundle.js') } />
|
<script dangerouslySetInnerHTML={ { __html: font} } />
|
||||||
|
{ css }
|
||||||
|
<script src={ prefixLink(`/bundle.js?t=${BUILD_TIME}`) } />
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
})
|
})
|
57
package.json
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "gatsby-theme-lumen",
|
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "Awesome Theme for Gatsby",
|
"name": "gatsby-starter-lumen",
|
||||||
|
"description": "Simple starter for Gatsby",
|
||||||
"main": "n/a",
|
"main": "n/a",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "./node_modules/.bin/eslint --ext .js,.jsx --ignore-pattern public .",
|
"lint": "./node_modules/.bin/eslint --ext .js,.jsx --ignore-pattern public .",
|
||||||
@ -9,41 +9,40 @@
|
|||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"gatsby",
|
"gatsby",
|
||||||
"theme",
|
"lumen",
|
||||||
"lumen"
|
"starter"
|
||||||
],
|
],
|
||||||
"author": "Alexander Shelepenok <a.shelepenok@gmail.com>",
|
"author": "Alexander Shelepenok <a.shelepenok@gmail.com>",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"react": "^0.14.7",
|
"babel-plugin-add-module-exports": "^0.2.0",
|
||||||
|
"babel-preset-es2015": "^6.6.0",
|
||||||
|
"babel-preset-react": "^6.5.0",
|
||||||
|
"babel-preset-stage-0": "^6.5.0",
|
||||||
|
"babel-preset-stage-1": "^6.5.0",
|
||||||
|
"classnames": "^2.1.2",
|
||||||
|
"front-matter": "^2.0.8",
|
||||||
|
"gatsby": "^0.11.2",
|
||||||
|
"history": "^2.1.1",
|
||||||
|
"lodash": "^4.12.0",
|
||||||
|
"moment": "^2.12.0",
|
||||||
|
"markdown-it": "^6.0.2",
|
||||||
"react-document-title": "^2.0.1",
|
"react-document-title": "^2.0.1",
|
||||||
"react-dom": "^0.14.7",
|
"react-google-analytics": "^0.2.0",
|
||||||
"react-router": "^2.0.0",
|
"react-router": "^2.4.0",
|
||||||
"lodash": "^4.5.0",
|
|
||||||
"safe-access": "^0.1.0",
|
"safe-access": "^0.1.0",
|
||||||
"underscore.string": "^3.2.3",
|
"underscore.string": "^3.2.3"
|
||||||
"moment": "^2.11.2"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"webpack": "^1.12.2",
|
"autoprefixer": "^6.3.6",
|
||||||
"webpack-dev-server": "^1.12.0",
|
"file-loader": "^0.8.5",
|
||||||
"webpack-hot-middleware": "^2.2.0",
|
|
||||||
"extract-text-webpack-plugin": "^1.0.1",
|
|
||||||
"file-loader": "^0.8.4",
|
|
||||||
"url-loader": "^0.5.7",
|
|
||||||
"sugarss": "^0.1.0",
|
|
||||||
"precss": "^1.4.0",
|
|
||||||
"postcss-scss": "^0.1.7",
|
|
||||||
"postcss-loader": "^0.8.0",
|
|
||||||
"postcss-modules": "^0.1.3",
|
|
||||||
"lost": "^6.7.0",
|
|
||||||
"rucksack-css": "^0.8.5",
|
"rucksack-css": "^0.8.5",
|
||||||
"babel-plugin-react-transform": "^1.1.1",
|
"lost": "^6.7.2",
|
||||||
"eslint": "^2.3.0",
|
"babel-preset-react-hmre": "^1.1.1",
|
||||||
"eslint-config-airbnb": "^6.1.0",
|
"eslint": "^2.9.0",
|
||||||
"eslint-plugin-react": "^4.2.0",
|
"eslint-config-airbnb": "^9.0.1",
|
||||||
"react-transform-catch-errors": "^1.0.0",
|
"eslint-plugin-import": "^1.8.0",
|
||||||
"react-transform-hmr": "^1.0.0",
|
"eslint-plugin-jsx-a11y": "^1.2.0",
|
||||||
"redbox-react": "^1.0.1"
|
"eslint-plugin-react": "^5.1.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
path: /404.html
|
||||||
layout: page
|
layout: page
|
||||||
---
|
---
|
||||||
|
|
||||||
# NOT FOUND
|
# NOT FOUND
|
||||||
|
|
||||||
You just hit a route that doesn't exist... the sadness.
|
You just hit a route that doesn't exist... the sadness.
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Link } from 'react-router'
|
import { Link } from 'react-router'
|
||||||
import { link } from 'gatsby-helpers'
|
import { prefixLink } from 'gatsby-helpers'
|
||||||
import { config } from 'config'
|
import { config } from 'config'
|
||||||
|
|
||||||
import '../static/css/reset.css'
|
import '../static/css/reset.css'
|
||||||
|
import '../static/css/base.css'
|
||||||
import '../static/css/typography.css'
|
import '../static/css/typography.css'
|
||||||
|
|
||||||
class Template extends React.Component {
|
class Template extends React.Component {
|
||||||
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 319 KiB After Width: | Height: | Size: 319 KiB |
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
Before Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 3.3 KiB |
@ -1,14 +1,14 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Link } from 'react-router'
|
import { Link } from 'react-router'
|
||||||
import sortBy from 'lodash/sortBy'
|
import sortBy from 'lodash/sortBy'
|
||||||
import moment from 'moment';
|
import moment from 'moment'
|
||||||
import DocumentTitle from 'react-document-title'
|
import DocumentTitle from 'react-document-title'
|
||||||
import { link } from 'gatsby-helpers'
|
import { prefixLink } from 'gatsby-helpers'
|
||||||
import access from 'safe-access'
|
import access from 'safe-access'
|
||||||
import { config } from 'config'
|
import { config } from 'config'
|
||||||
|
|
||||||
import BlogPost from '../components/BlogPost'
|
import BlogPost from '../components/BlogPost'
|
||||||
import SidebarLeft from '../components/SidebarLeft'
|
import SidebarLeft from '../components/SidebarLeft'
|
||||||
import BlogContent from '../components/BlogContent'
|
|
||||||
|
|
||||||
class BlogIndex extends React.Component {
|
class BlogIndex extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
@ -30,9 +30,9 @@ class BlogIndex extends React.Component {
|
|||||||
</time>
|
</time>
|
||||||
<span style={ { padding: '5px'} }></span>
|
<span style={ { padding: '5px'} }></span>
|
||||||
<span className='blog-category'>{ category }</span>
|
<span className='blog-category'>{ category }</span>
|
||||||
<h2><Link style={ { borderBottom: 'none',} } to={ link(page.path) } > { title } </Link></h2>
|
<h2><Link style={ { borderBottom: 'none',} } to={ prefixLink(page.path) } > { title } </Link></h2>
|
||||||
<p dangerouslySetInnerHTML={ { __html: description} } />
|
<p dangerouslySetInnerHTML={ { __html: description} } />
|
||||||
<Link className='readmore' to={ link(page.path) }> Read
|
<Link className='readmore' to={ prefixLink(page.path) }> Read
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
33
static/css/base.css
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
.wrapper {
|
||||||
|
lost-center: 1070px;
|
||||||
|
}
|
||||||
|
.content {
|
||||||
|
lost-column: 2/3;
|
||||||
|
}
|
||||||
|
.main-inner {
|
||||||
|
padding: 40px 35px;
|
||||||
|
}
|
||||||
|
@media screen and (max-width:1100px) {
|
||||||
|
.content {
|
||||||
|
lost-column: 2/4;
|
||||||
|
}
|
||||||
|
.main-inner {
|
||||||
|
padding: 35px 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (max-width:900px) {
|
||||||
|
.content {
|
||||||
|
lost-column: 7/12;
|
||||||
|
}
|
||||||
|
.main-inner {
|
||||||
|
padding: 30px 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (max-width:500px) {
|
||||||
|
.content {
|
||||||
|
lost-column: 4/4;
|
||||||
|
}
|
||||||
|
.main-inner {
|
||||||
|
padding: 25px 20px;
|
||||||
|
}
|
||||||
|
}
|
@ -1,21 +1,188 @@
|
|||||||
/*! Gatsby Lumen Typography. Based on Gutengerg <- https://github.com/matejlatin/Gutenberg/ -> */
|
/*
|
||||||
html, body {
|
Gutenberg: Web Typography Starter Kit
|
||||||
|
Website ....... http://matejlatin.github.io/Gutenberg/
|
||||||
|
Version ....... 1.1
|
||||||
|
Github ........ https://github.com/matejlatin/Gutenberg
|
||||||
|
Authors ....... Matej Latin (@matejlatin)
|
||||||
|
License ....... Creative Commmons Attribution 3.0
|
||||||
|
License URL ... https://raw.githubusercontent.com/matejlatin/Gutenberg/master/license.txt
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Font themes
|
||||||
|
========================================================================== */
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
.floatLeft {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
.floatCenter {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
.floatRight {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Defaults
|
||||||
|
========================================================================== */
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
body, html {
|
||||||
|
margin: 0;
|
||||||
|
width: 100%;
|
||||||
|
max-width: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
html {
|
||||||
|
box-sizing: border-box;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
font-family: "PT Sans", Georgia, Times, serif;
|
font-family: "Roboto", Arial, sans-serif;
|
||||||
color: #222;
|
color: #222;
|
||||||
|
-ms-text-size-adjust: 100%;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
html {
|
||||||
|
font-size: 18px;
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*, *::before, *::after {
|
||||||
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
body > footer {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
main {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
section {
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Paragraph
|
/* Links
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
a {
|
||||||
|
background: transparent;
|
||||||
|
color: #222;
|
||||||
|
text-decoration: none;
|
||||||
|
transition: all .3s;
|
||||||
|
}
|
||||||
|
a:active, a:hover {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
a:active {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
article {
|
||||||
|
display: block;
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
article {
|
||||||
|
max-width: 945px;
|
||||||
|
max-width: 52.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
audio {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
audio:not([controls]) {
|
||||||
|
display: none;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
canvas {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
code, kbd, pre, samp {
|
||||||
|
font-family: monospace, monospace;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
padding: 26px;
|
||||||
|
padding: 1.625rem;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
code {
|
||||||
|
padding: 31px;
|
||||||
|
padding: 1.722222222222222rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
details {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
summary {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
figcaption {
|
||||||
|
line-height: 26px;
|
||||||
|
line-height: 1.625rem;
|
||||||
|
color: #222;
|
||||||
|
display: block;
|
||||||
|
font-size: .8125rem;
|
||||||
|
font-style: italic;
|
||||||
|
margin-bottom: 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
figcaption {
|
||||||
|
line-height: 31px;
|
||||||
|
line-height: 1.722222222222222rem;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
figure {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
figure.floatLeft, figure.floatRight {
|
||||||
|
max-width: 315px;
|
||||||
|
max-width: 17.5rem;
|
||||||
|
padding: 0px 31px;
|
||||||
|
padding: 0rem 1.722222222222222rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
figure.floatLeft blockquote, figure.floatRight blockquote {
|
||||||
|
padding: 0px;
|
||||||
|
padding: 0rem;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
figure.floatLeft blockquote p, figure.floatRight blockquote p {
|
||||||
|
font-size: 19.2px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
line-height: 31px;
|
||||||
|
line-height: 1.722222222222222rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Headings
|
/* Headings
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
|
||||||
font-family: "Raleway", Helvetica, Arial, sans-serif;
|
|
||||||
color: #222;
|
|
||||||
}
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
font-size: 2.5rem;
|
font-size: 2.5rem;
|
||||||
@ -76,168 +243,7 @@ h6 {
|
|||||||
margin-bottom: 13px;
|
margin-bottom: 13px;
|
||||||
margin-bottom: 0.8125rem;
|
margin-bottom: 0.8125rem;
|
||||||
}
|
}
|
||||||
h1 + h2 {
|
|
||||||
margin-top: 26px;
|
|
||||||
margin-top: 1.625rem;
|
|
||||||
}
|
|
||||||
h2 + h3, h3 + h4, h4 + h5 {
|
|
||||||
margin-top: 13px;
|
|
||||||
margin-top: 0.8125rem;
|
|
||||||
}
|
|
||||||
h5 + h6 {
|
|
||||||
margin-top: -13px;
|
|
||||||
margin-top: -0.8125rem;
|
|
||||||
}
|
|
||||||
h6 {
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Links
|
|
||||||
========================================================================== */
|
|
||||||
a {
|
|
||||||
color: #5d93ff;
|
|
||||||
text-decoration: none;
|
|
||||||
transition: all .3s ease;
|
|
||||||
}
|
|
||||||
a:hover {
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
a:visited {
|
|
||||||
color: #222;
|
|
||||||
}
|
|
||||||
a:visited:hover {
|
|
||||||
color: #222;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
}
|
|
||||||
a:active {
|
|
||||||
color: #222;
|
|
||||||
border-bottom: 1px solid;
|
|
||||||
}
|
|
||||||
h2 a {
|
|
||||||
color: #222;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Figures & other elements
|
|
||||||
========================================================================== */
|
|
||||||
figcaption {
|
|
||||||
line-height: 26px;
|
|
||||||
line-height: 1.625rem;
|
|
||||||
color: #222;
|
|
||||||
font-size: .8125rem;
|
|
||||||
font-style: italic;
|
|
||||||
margin-bottom: 0;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
blockquote {
|
|
||||||
font-style: italic;
|
|
||||||
padding-left: 1.4375rem;
|
|
||||||
}
|
|
||||||
cite {
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
figure blockquote {
|
|
||||||
padding: 31px 0px;
|
|
||||||
padding: 1.722222222222222rem 0rem;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
figure blockquote p {
|
|
||||||
font-size: 27px;
|
|
||||||
font-size: 1.6875rem;
|
|
||||||
margin-top: 0;
|
|
||||||
line-height: 46.5px;
|
|
||||||
line-height: 2.583333333333334rem;
|
|
||||||
}
|
|
||||||
figure.floatLeft, figure.floatRight {
|
|
||||||
max-width: 315px;
|
|
||||||
max-width: 17.5rem;
|
|
||||||
padding: 0px 31px;
|
|
||||||
padding: 0rem 1.722222222222222rem;
|
|
||||||
}
|
|
||||||
figure.floatLeft blockquote, figure.floatRight blockquote {
|
|
||||||
text-align: left;
|
|
||||||
padding: 0px;
|
|
||||||
padding: 0rem;
|
|
||||||
}
|
|
||||||
figure.floatLeft blockquote p, figure.floatRight blockquote p {
|
|
||||||
font-size: 19.2px;
|
|
||||||
font-size: 1.2rem;
|
|
||||||
line-height: 31px;
|
|
||||||
line-height: 1.722222222222222rem;
|
|
||||||
}
|
|
||||||
figcaption {
|
|
||||||
line-height: 31px;
|
|
||||||
line-height: 1.722222222222222rem;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
.floatLeft {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.floatCenter {
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
.floatRight {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
ul li, ol li {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
hr {
|
|
||||||
margin-top: 52px;
|
|
||||||
margin-top: 3.25rem;
|
|
||||||
margin-bottom: 52px;
|
|
||||||
margin-bottom: 3.25rem;
|
|
||||||
border: 0;
|
|
||||||
color: #222;
|
|
||||||
display: block;
|
|
||||||
height: 26px;
|
|
||||||
height: 1.625rem;
|
|
||||||
margin-right: auto;
|
|
||||||
margin-left: auto;
|
|
||||||
background-size: 100% 26px;
|
|
||||||
background-size: 100% 1.625rem;
|
|
||||||
background-image: linear-gradient(to bottom, transparent 1px, transparent 11px, #222 11px, #222 15px, transparent 15px, transparent 26px);
|
|
||||||
width: 100px;
|
|
||||||
}
|
|
||||||
small {
|
|
||||||
line-height: 13px;
|
|
||||||
line-height: 0.8125rem;
|
|
||||||
}
|
|
||||||
code {
|
|
||||||
padding: 26px;
|
|
||||||
padding: 1.625rem;
|
|
||||||
}
|
|
||||||
.alignLeft {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.alignCenter {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.alignRight {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Put your styles below this line
|
|
||||||
========================================================================== */
|
|
||||||
@media screen and (min-width:40em) {
|
@media screen and (min-width:40em) {
|
||||||
|
|
||||||
/* Mixins
|
|
||||||
========================================================================== */
|
|
||||||
body, html {
|
|
||||||
margin: 0;
|
|
||||||
width: 100%;
|
|
||||||
max-width: none;
|
|
||||||
}
|
|
||||||
html {
|
|
||||||
font-size: 18px;
|
|
||||||
font-size: 1.125rem;
|
|
||||||
}
|
|
||||||
article {
|
|
||||||
max-width: 945px;
|
|
||||||
max-width: 52.5rem;
|
|
||||||
}
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
font-size: 2.5rem;
|
font-size: 2.5rem;
|
||||||
@ -298,74 +304,63 @@ code {
|
|||||||
margin-bottom: 15.5px;
|
margin-bottom: 15.5px;
|
||||||
margin-bottom: 0.861111111111111rem;
|
margin-bottom: 0.861111111111111rem;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
h1 + h2 {
|
||||||
|
margin-top: 26px;
|
||||||
|
margin-top: 1.625rem;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
h1 + h2 {
|
h1 + h2 {
|
||||||
margin-top: 31px;
|
margin-top: 31px;
|
||||||
margin-top: 1.722222222222222rem;
|
margin-top: 1.722222222222222rem;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
h2 + h3, h3 + h4, h4 + h5 {
|
||||||
|
margin-top: 13px;
|
||||||
|
margin-top: 0.8125rem;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
h2 + h3, h3 + h4, h4 + h5 {
|
h2 + h3, h3 + h4, h4 + h5 {
|
||||||
margin-top: 15.5px;
|
margin-top: 15.5px;
|
||||||
margin-top: 0.861111111111111rem;
|
margin-top: 0.861111111111111rem;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
h5 + h6 {
|
||||||
|
margin-top: -13px;
|
||||||
|
margin-top: -0.8125rem;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
h5 + h6 {
|
h5 + h6 {
|
||||||
margin-top: -15.5px;
|
margin-top: -15.5px;
|
||||||
margin-top: -0.861111111111111rem;
|
margin-top: -0.861111111111111rem;
|
||||||
}
|
}
|
||||||
figcaption {
|
}
|
||||||
line-height: 31px;
|
h6 {
|
||||||
line-height: 1.722222222222222rem;
|
font-style: italic;
|
||||||
margin-bottom: 0;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
figure blockquote {
|
hgroup {
|
||||||
padding: 31px 0px;
|
display: block;
|
||||||
padding: 1.722222222222222rem 0rem;
|
}
|
||||||
text-align: center;
|
hr {
|
||||||
}
|
margin-top: 52px;
|
||||||
figure blockquote p {
|
margin-top: 3.25rem;
|
||||||
font-size: 27px;
|
margin-bottom: 52px;
|
||||||
font-size: 1.6875rem;
|
margin-bottom: 3.25rem;
|
||||||
margin-top: 0;
|
box-sizing: content-box;
|
||||||
line-height: 46.5px;
|
border: 0;
|
||||||
line-height: 2.583333333333334rem;
|
color: #222;
|
||||||
}
|
display: block;
|
||||||
figure.floatLeft, figure.floatRight {
|
height: 26px;
|
||||||
max-width: 315px;
|
height: 1.625rem;
|
||||||
max-width: 17.5rem;
|
margin-right: auto;
|
||||||
padding: 0px 31px;
|
margin-left: auto;
|
||||||
padding: 0rem 1.722222222222222rem;
|
background-size: 100% 26px;
|
||||||
}
|
background-size: 100% 1.625rem;
|
||||||
figure.floatLeft blockquote, figure.floatRight blockquote {
|
background-image: linear-gradient(to bottom, transparent 1px, transparent 11px, #222 11px, #222 15px, transparent 15px, transparent 26px);
|
||||||
text-align: left;
|
width: 100px;
|
||||||
padding: 0px;
|
}
|
||||||
padding: 0rem;
|
@media screen and (min-width:40em) {
|
||||||
}
|
|
||||||
figure.floatLeft blockquote p, figure.floatRight blockquote p {
|
|
||||||
font-size: 19.2px;
|
|
||||||
font-size: 1.2rem;
|
|
||||||
line-height: 31px;
|
|
||||||
line-height: 1.722222222222222rem;
|
|
||||||
}
|
|
||||||
figcaption {
|
|
||||||
line-height: 31px;
|
|
||||||
line-height: 1.722222222222222rem;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
.floatLeft {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
.floatCenter {
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
}
|
|
||||||
.floatRight {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
blockquote {
|
|
||||||
padding-left: 2rem;
|
|
||||||
}
|
|
||||||
small {
|
|
||||||
line-height: 15.5px;
|
|
||||||
line-height: 0.861111111111111rem;
|
|
||||||
}
|
|
||||||
hr {
|
hr {
|
||||||
margin-top: 62px;
|
margin-top: 62px;
|
||||||
margin-top: 3.444444444444445rem;
|
margin-top: 3.444444444444445rem;
|
||||||
@ -373,12 +368,147 @@ code {
|
|||||||
margin-bottom: 3.444444444444445rem;
|
margin-bottom: 3.444444444444445rem;
|
||||||
height: 31px;
|
height: 31px;
|
||||||
height: 1.722222222222222rem;
|
height: 1.722222222222222rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
hr {
|
||||||
background-size: 100% 31px;
|
background-size: 100% 31px;
|
||||||
background-size: 100% 1.722222222222222rem;
|
background-size: 100% 1.722222222222222rem;
|
||||||
background-image: linear-gradient(to bottom, transparent 1px, transparent 13.5px, #222 13.5px, #222 17.5px, transparent 17.5px, transparent 31px);
|
background-image: linear-gradient(to bottom, transparent 1px, transparent 13.5px, #222 13.5px, #222 17.5px, transparent 17.5px, transparent 31px);
|
||||||
}
|
}
|
||||||
code {
|
}
|
||||||
padding: 31px;
|
img {
|
||||||
padding: 1.722222222222222rem;
|
border: 0;
|
||||||
|
max-width: 100%;
|
||||||
|
display: block;
|
||||||
|
margin: inherit auto;
|
||||||
|
}
|
||||||
|
svg:not(:root) {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
ul li, ol li {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
nav {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
progress {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
blockquote {
|
||||||
|
font-style: italic;
|
||||||
|
padding-left: 1.4375rem;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
blockquote {
|
||||||
|
padding-left: 2rem;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
cite {
|
||||||
|
display: block;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
figure blockquote {
|
||||||
|
padding: 26px 0px;
|
||||||
|
padding: 1.625rem 0rem;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
figure blockquote {
|
||||||
|
padding: 62px 0px 31px;
|
||||||
|
padding: 3.444444444444445rem 0rem 1.722222222222222rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
figure blockquote p {
|
||||||
|
font-size: 27px;
|
||||||
|
font-size: 1.6875rem;
|
||||||
|
line-height: 39px;
|
||||||
|
line-height: 2.4375rem;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
figure blockquote p {
|
||||||
|
font-size: 27px;
|
||||||
|
font-size: 1.6875rem;
|
||||||
|
line-height: 46.5px;
|
||||||
|
line-height: 2.583333333333334rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
td, th {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
[hidden], template {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
abbr {
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
}
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: 1px dotted;
|
||||||
|
}
|
||||||
|
b, strong {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
dfn {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
em, i {
|
||||||
|
line-height: 0;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
mark {
|
||||||
|
background: #ff0;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
small {
|
||||||
|
line-height: 13px;
|
||||||
|
line-height: 0.8125rem;
|
||||||
|
font-size: 70%;
|
||||||
|
}
|
||||||
|
@media screen and (min-width:40em) {
|
||||||
|
small {
|
||||||
|
line-height: 15.5px;
|
||||||
|
line-height: 0.861111111111111rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sub, sup {
|
||||||
|
font-size: 75%;
|
||||||
|
line-height: 0;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Paragraph
|
||||||
|
========================================================================== */
|
||||||
|
.attention-grabber {
|
||||||
|
font-size: 19.2px;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
.alignLeft {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.alignCenter {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.alignRight {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.uppercase {
|
||||||
|
letter-spacing: .1em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
video {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: baseline;
|
||||||
}
|
}
|
@ -8,8 +8,8 @@ class MarkdownWrapper extends React.Component {
|
|||||||
render() {
|
render() {
|
||||||
const {route} = this.props
|
const {route} = this.props
|
||||||
const post = route.page.data
|
const post = route.page.data
|
||||||
|
|
||||||
let layout, template
|
let layout, template
|
||||||
|
|
||||||
layout = post.layout
|
layout = post.layout
|
||||||
|
|
||||||
if (layout != 'page') {
|
if (layout != 'page') {
|
||||||
|