♻️ Move website to Next.js (#368)
This commit updates the stack of the gitmoji website to Next.js. This was a thing I wanted to do a long time ago. Our current stack was a little bit outdated and had issues with the Developer UX. The concept is the same, the whole site is built into a Static HTML site. Also we can benefit from using React ⚛️ ❤️ The current stack will be: Next.js React Flow Scss Prettier Jest
@ -2,8 +2,8 @@
|
|||||||
root = true
|
root = true
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
indent_style = tab
|
indent_style = spaces
|
||||||
tab_width = 4
|
tab_width = 2
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
|||||||
12
.flowconfig
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[ignore]
|
||||||
|
.*/node_modules/jsonlint/.*
|
||||||
|
|
||||||
|
[include]
|
||||||
|
|
||||||
|
[libs]
|
||||||
|
|
||||||
|
[lints]
|
||||||
|
|
||||||
|
[options]
|
||||||
|
|
||||||
|
[strict]
|
||||||
24
.github/CONTRIBUTING.md
vendored
@ -30,13 +30,14 @@ If you would like to add a new emoji to gitmoji, fill the provided `ISSUE_TEMPLA
|
|||||||
"name": "code (same as code but without ':' replace underscores for dashes _ => - )"
|
"name": "code (same as code but without ':' replace underscores for dashes _ => - )"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
If you want to find the hexadecimal entity of icon, search for it in this site: <a>http://graphemica.com/</a>
|
If you want to find the hexadecimal entity of icon, search for it in this site: <a>http://graphemica.com/</a>
|
||||||
|
|
||||||
Then, after that you'll need to add a new color to [the vars.scss](https://github.com/carloscuesta/gitmoji/blob/master/src/styles/_includes/_vars.scss) file.
|
Then, after that you'll need to add a new color to [the vars.scss](https://github.com/carloscuesta/gitmoji/blob/master/src/styles/_includes/_vars.scss) file.
|
||||||
|
|
||||||
You must follow the convention of adding a new item to the `$gitmojis array`. That matches the name that you added at the json file.
|
You must follow the convention of adding a new item to the `$gitmojis array`. That matches the name that you added at the json file.
|
||||||
|
|
||||||
## How to start gitmoji and update
|
## How to start gitmoji
|
||||||
|
|
||||||
If you want to make changes to the site, follow the next steps:
|
If you want to make changes to the site, follow the next steps:
|
||||||
|
|
||||||
@ -50,24 +51,7 @@ $ cd gitmoji
|
|||||||
2. Install the dependencies and start the development task.
|
2. Install the dependencies and start the development task.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ npm i && gulp
|
$ yarn install && yarn run dev
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Make sure the styles are using a link instead of being inlined.
|
The project is built with [Next.js](http://nextjs.org) and [SCSS](http://sass-lang.com)
|
||||||
|
|
||||||
_If you are updating the SCSS files and the styles doesn't get updated, go to the `index.pug` and `about.pug` paste the following code_
|
|
||||||
|
|
||||||
```jade
|
|
||||||
link(href="css/style.css", type="text/css", rel="stylesheet")
|
|
||||||
```
|
|
||||||
|
|
||||||
_Remove this one_
|
|
||||||
|
|
||||||
```jade
|
|
||||||
style
|
|
||||||
include ../../dist/css/style.css
|
|
||||||
```
|
|
||||||
|
|
||||||
**After making your changes, inline the styles as before.**
|
|
||||||
|
|
||||||
The project is built with [Pug](http://pugjs.org) and [SCSS](http://sass-lang.com)
|
|
||||||
|
|||||||
3
.gitignore
vendored
@ -2,3 +2,6 @@
|
|||||||
dist/
|
dist/
|
||||||
node_modules/
|
node_modules/
|
||||||
.publish/
|
.publish/
|
||||||
|
.next
|
||||||
|
out/
|
||||||
|
coverage/
|
||||||
|
|||||||
14
.travis.yml
@ -1,13 +1,18 @@
|
|||||||
language: node_js
|
language: node_js
|
||||||
node_js:
|
node_js: lts/*
|
||||||
- 6
|
|
||||||
cache:
|
cache:
|
||||||
directories:
|
directories:
|
||||||
- node_modules
|
- node_modules
|
||||||
script: npm test
|
script:
|
||||||
|
- yarn run lint
|
||||||
|
- yarn run flow
|
||||||
|
- yarn run test
|
||||||
|
before_deploy:
|
||||||
|
- yarn run build
|
||||||
|
- yarn run export
|
||||||
deploy:
|
deploy:
|
||||||
provider: pages
|
provider: pages
|
||||||
local-dir: dist
|
local-dir: out
|
||||||
skip-cleanup: true
|
skip-cleanup: true
|
||||||
github-token: $GITHUB_PAGES_DEPLOY_TOKEN
|
github-token: $GITHUB_PAGES_DEPLOY_TOKEN
|
||||||
keep-history: true
|
keep-history: true
|
||||||
@ -18,3 +23,4 @@ deploy:
|
|||||||
notifications:
|
notifications:
|
||||||
slack:
|
slack:
|
||||||
secure: oTOAM8T5Qo3sZ+oB54OfwRA/F1IFrt3J2TFGobYqSk5GZFBJZ/idlSFmKsMCfqVYTMzNhWlYj4H+isdAVzVh/TgbFKY88/GcbtNG8QYCJcFaWOanIp38XQ2RiSImt5T4aMquq/pFj1cE+CNTIWRoieDteukq/bIT3Z1I8hpz5QCSxAFr0suPSwCv1MLXR0ytVldF16eeTVQ0BR8l4L/K5IBt6ZfnpkebZMS0Q3MCobUosAgE1hIHFYxdXYugfmnG0cO2wtLvXwQWQ6VoRGJdc0iAL4CFJxKORX43Y//T0P5e0dBiGfek7QP5gJk+8qeFd5D2O34pB/POUy2vtFvBKTSsgOhz94fmS5v5M4X60oHsNWYt8AUU9CMicYQ2U2pbYAlttTGN3tguC/usdJRS9kWdn6MbI8T6cjk2BCyriFXXXumLEINiHYexcb0PdAm2Lwc//5QSxCdFPGr5UfdhAfwpNOy21QhvcioGUJbtLuyEMP+F9+ZMYWypfacD507yqtr5Z+rtInp4qOuKwZFSir7IzTBbuEUuxJLagbwUTbT302sYarOPvpAjgzPbPWFuUVigZ1y/SPbdObbolOh2yGEfYwIIIPT8ijKPN+sgDFOr0TJ1ZkB59Kb5zW/pDAykWqf2kmLHCFQGcatPzg1ROrrR5CH6/+LVQKhxUEaGLaE=
|
secure: oTOAM8T5Qo3sZ+oB54OfwRA/F1IFrt3J2TFGobYqSk5GZFBJZ/idlSFmKsMCfqVYTMzNhWlYj4H+isdAVzVh/TgbFKY88/GcbtNG8QYCJcFaWOanIp38XQ2RiSImt5T4aMquq/pFj1cE+CNTIWRoieDteukq/bIT3Z1I8hpz5QCSxAFr0suPSwCv1MLXR0ytVldF16eeTVQ0BR8l4L/K5IBt6ZfnpkebZMS0Q3MCobUosAgE1hIHFYxdXYugfmnG0cO2wtLvXwQWQ6VoRGJdc0iAL4CFJxKORX43Y//T0P5e0dBiGfek7QP5gJk+8qeFd5D2O34pB/POUy2vtFvBKTSsgOhz94fmS5v5M4X60oHsNWYt8AUU9CMicYQ2U2pbYAlttTGN3tguC/usdJRS9kWdn6MbI8T6cjk2BCyriFXXXumLEINiHYexcb0PdAm2Lwc//5QSxCdFPGr5UfdhAfwpNOy21QhvcioGUJbtLuyEMP+F9+ZMYWypfacD507yqtr5Z+rtInp4qOuKwZFSir7IzTBbuEUuxJLagbwUTbT302sYarOPvpAjgzPbPWFuUVigZ1y/SPbdObbolOh2yGEfYwIIIPT8ijKPN+sgDFOr0TJ1ZkB59Kb5zW/pDAykWqf2kmLHCFQGcatPzg1ROrrR5CH6/+LVQKhxUEaGLaE=
|
||||||
|
email: false
|
||||||
|
|||||||
@ -1,77 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
import gulp from 'gulp'
|
|
||||||
import sass from 'gulp-sass'
|
|
||||||
import pug from 'gulp-pug'
|
|
||||||
import pugLint from 'gulp-pug-lint'
|
|
||||||
import browserSync from 'browser-sync'
|
|
||||||
import plumber from 'gulp-plumber'
|
|
||||||
import gitmojis from './src/data/gitmojis.json'
|
|
||||||
import contributors from './src/data/contributors.json'
|
|
||||||
import ghPages from 'gulp-gh-pages'
|
|
||||||
|
|
||||||
const baseDirs = {
|
|
||||||
src: 'src/',
|
|
||||||
dist: 'dist/'
|
|
||||||
}
|
|
||||||
|
|
||||||
const routes = {
|
|
||||||
templates: {
|
|
||||||
pug: `${baseDirs.src}templates/*.pug`,
|
|
||||||
_pug: `${baseDirs.src}templates/_includes/*.pug`
|
|
||||||
},
|
|
||||||
styles: {
|
|
||||||
scss: `${baseDirs.src}styles/*.scss`,
|
|
||||||
_scss: `${baseDirs.src}styles/_includes/*.scss`
|
|
||||||
},
|
|
||||||
files: {
|
|
||||||
html: `${baseDirs.dist}`,
|
|
||||||
css: `${baseDirs.dist}css/`,
|
|
||||||
deploy: `${baseDirs.dist}**/*`,
|
|
||||||
staticSrc: `${baseDirs.src}static/**/*`,
|
|
||||||
staticDist: `${baseDirs.dist}static/`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gulp.task('templates', ['styles'], () => {
|
|
||||||
return gulp.src([routes.templates.pug, '!' + routes.templates._pug])
|
|
||||||
.pipe(pugLint())
|
|
||||||
.pipe(plumber({}))
|
|
||||||
.pipe(pug({
|
|
||||||
locals: { 'emojis': gitmojis, 'contributors': contributors }
|
|
||||||
}))
|
|
||||||
.pipe(gulp.dest(routes.files.html))
|
|
||||||
.pipe(browserSync.stream())
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.task('styles', () => {
|
|
||||||
return gulp.src(routes.styles.scss)
|
|
||||||
.pipe(plumber({}))
|
|
||||||
.pipe(sass({ outputStyle: 'compressed' }))
|
|
||||||
.pipe(gulp.dest(routes.files.css))
|
|
||||||
.pipe(browserSync.stream())
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.task('serve', ['styles', 'templates'], () => {
|
|
||||||
browserSync.init({
|
|
||||||
server: `${baseDirs.dist}`
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.watch([routes.templates.pug, routes.templates._pug], ['templates'])
|
|
||||||
gulp.watch([routes.styles.scss, routes.styles._scss], ['styles'])
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.task('build', ['templates', 'styles'], () => {
|
|
||||||
gulp.src([routes.files.staticSrc]).pipe(gulp.dest(routes.files.staticDist))
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.task('deploy', () => {
|
|
||||||
return gulp.src(routes.files.deploy)
|
|
||||||
.pipe(ghPages({ message: ':rocket: gitmoji website' }))
|
|
||||||
})
|
|
||||||
|
|
||||||
gulp.task('dev', ['serve'])
|
|
||||||
|
|
||||||
gulp.task('default', () => {
|
|
||||||
gulp.start('dev')
|
|
||||||
})
|
|
||||||
19
next.config.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
const withSass = require('@zeit/next-sass')
|
||||||
|
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin')
|
||||||
|
|
||||||
|
module.exports = withSass({
|
||||||
|
exportPathMap: function() {
|
||||||
|
return {
|
||||||
|
'/': { page: '/' },
|
||||||
|
'/about': { page: '/about' },
|
||||||
|
'/contributors': { page: '/contributors' }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
webpack: (config, { dev, isServer }) => {
|
||||||
|
if (isServer) return config
|
||||||
|
|
||||||
|
config.optimization.minimizer.push(new OptimizeCSSAssetsPlugin({}))
|
||||||
|
|
||||||
|
return config
|
||||||
|
}
|
||||||
|
})
|
||||||
93
package.json
@ -1,53 +1,68 @@
|
|||||||
{
|
{
|
||||||
"name": "gitmoji",
|
"name": "gitmoji",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "An emoji guide for your commit messages",
|
"private": true,
|
||||||
"main": "index.js",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"jsonvalidate": "jsonlint ./src/data/gitmojis.json -V ./src/data/schema.json",
|
"build": "next build",
|
||||||
"contributors": "curl https://api.github.com/repos/carloscuesta/gitmoji/contributors -o ./src/data/contributors.json",
|
"dev": "next dev",
|
||||||
"build": "gulp build",
|
"export": "next export && touch out/.nojekyll",
|
||||||
"deploy": "gulp deploy",
|
"flow": "flow",
|
||||||
"start": "npm run contributors && gulp",
|
"lint": "prettier --check src/**/*.{js,json,scss}",
|
||||||
"test": "npm run jsonvalidate && gulp build"
|
"start": "next start",
|
||||||
|
"test": "jest --coverage",
|
||||||
|
"validate:gitmojis": "jsonlint ./src/data/gitmojis.json -V ./src/data/schema.json"
|
||||||
},
|
},
|
||||||
"repository": {
|
"dependencies": {
|
||||||
"type": "git",
|
"@babel/preset-flow": "^7.0.0",
|
||||||
"url": "git+https://github.com/carloscuesta/gitmoji.git"
|
"@zeit/next-sass": "^1.0.1",
|
||||||
|
"next": "9.1.1",
|
||||||
|
"node-sass": "^4.13.0",
|
||||||
|
"react": "16.11.0",
|
||||||
|
"react-dom": "16.11.0",
|
||||||
|
"react-test-renderer": "^16.11.0"
|
||||||
},
|
},
|
||||||
"author": "Carlos Cuesta",
|
"devDependencies": {
|
||||||
"license": "MIT",
|
"flow-bin": "^0.110.1",
|
||||||
"bugs": {
|
"husky": "^3.0.9",
|
||||||
"url": "https://github.com/carloscuesta/gitmoji/issues"
|
"identity-obj-proxy": "^3.0.0",
|
||||||
|
"jest": "^24.9.0",
|
||||||
|
"jsonlint": "^1.6.3",
|
||||||
|
"lint-staged": "^10.0.0-1",
|
||||||
|
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||||
|
"prettier": "1.18.2"
|
||||||
},
|
},
|
||||||
"pugLintConfig": {
|
"prettier": {
|
||||||
"disallowHtmlText": true,
|
"semi": false,
|
||||||
"disallowDuplicateAttributes": true,
|
"singleQuote": true,
|
||||||
"disallowClassAttributeWithStaticValue": true,
|
"arrowParens": "always"
|
||||||
"disallowIdAttributeWithStaticValue": true,
|
},
|
||||||
"requireLowerCaseAttributes": true
|
"lint-staged": {
|
||||||
|
"*.{js,jsx}": [
|
||||||
|
"prettier --write src/**/*.{js,json,scss}",
|
||||||
|
"git add"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"husky": {
|
||||||
|
"hooks": {
|
||||||
|
"pre-commit": "lint-staged",
|
||||||
|
"pre-push": "npm run flow && npm run test"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"babel": {
|
"babel": {
|
||||||
"presets": [
|
"presets": [
|
||||||
"es2015"
|
"next/babel",
|
||||||
|
"@babel/preset-flow"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/carloscuesta/gitmoji#readme",
|
"jest": {
|
||||||
"dependencies": {
|
"collectCoverageFrom": [
|
||||||
"async": "^2.1.2",
|
"src/**/*.{js,jsx}"
|
||||||
"gulp": "^3.9.1",
|
],
|
||||||
"gulp-plumber": "^1.1.0",
|
"testMatch": [
|
||||||
"gulp-pug": "^3.3.0",
|
"**/*.(spec).(js)"
|
||||||
"gulp-pug-lint": "^0.1.6",
|
],
|
||||||
"gulp-sass": "^3.1.0",
|
"moduleNameMapper": {
|
||||||
"pdfkit": "^0.8.0",
|
"\\.(scss)$": "identity-obj-proxy"
|
||||||
"request": "^2.79.0"
|
}
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"babel-core": "^6.26.0",
|
|
||||||
"babel-preset-es2015": "^6.24.1",
|
|
||||||
"browser-sync": "^2.18.13",
|
|
||||||
"gulp-gh-pages": "^0.5.4",
|
|
||||||
"jsonlint": "^1.6.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
2875
src/__tests__/__snapshots__/pages.spec.js.snap
Normal file
32
src/__tests__/pages.spec.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import renderer from 'react-test-renderer'
|
||||||
|
|
||||||
|
import Index from '../pages/index'
|
||||||
|
import About from '../pages/about'
|
||||||
|
import Contributors from '../pages/contributors'
|
||||||
|
|
||||||
|
describe('Pages', () => {
|
||||||
|
beforeAll(() => {
|
||||||
|
Math.random = jest.fn().mockReturnValue(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('Index', () => {
|
||||||
|
it('should render the page', () => {
|
||||||
|
const wrapper = renderer.create(<Index />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('About', () => {
|
||||||
|
it('should render the page', () => {
|
||||||
|
const wrapper = renderer.create(<About />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('Contributors', () => {
|
||||||
|
it('should render the page', () => {
|
||||||
|
const wrapper = renderer.create(<Contributors />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`Button should render the component 1`] = `
|
||||||
|
<a
|
||||||
|
className="btn btn-pink"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
className="icon icon-star"
|
||||||
|
>
|
||||||
|
<use
|
||||||
|
xlinkHref="#icon-star"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
GitHub
|
||||||
|
</a>
|
||||||
|
`;
|
||||||
11
src/components/Button/__tests__/button.spec.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import renderer from 'react-test-renderer'
|
||||||
|
|
||||||
|
import Button from '../index'
|
||||||
|
import * as stubs from './stubs'
|
||||||
|
|
||||||
|
describe('Button', () => {
|
||||||
|
it('should render the component', () => {
|
||||||
|
const wrapper = renderer.create(<Button {...stubs.props} />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
5
src/components/Button/__tests__/stubs.js
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
export const props = {
|
||||||
|
target: '_blank',
|
||||||
|
icon: 'star',
|
||||||
|
text: 'GitHub'
|
||||||
|
}
|
||||||
15
src/components/Button/index.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
import Icon from '../Icon'
|
||||||
|
|
||||||
|
type Props = { target?: string, icon?: string, text: string }
|
||||||
|
|
||||||
|
const Button = (props: Props) => (
|
||||||
|
<a className="btn btn-pink" target={props.target && props.target}>
|
||||||
|
{props.icon && <Icon name={props.icon} />}
|
||||||
|
{props.text}
|
||||||
|
</a>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Button
|
||||||
14
src/components/ContributorsList/Contributor/index.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
type Props = { profile: string, avatar: string }
|
||||||
|
|
||||||
|
const Contributor = (props: Props) => (
|
||||||
|
<article className="contributor col-xs-3 col-sm-2">
|
||||||
|
<a href={props.profile}>
|
||||||
|
<img className="contributor-picture" src={props.avatar} />
|
||||||
|
</a>
|
||||||
|
</article>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Contributor
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`ContributorsList should match Contributor component 1`] = `
|
||||||
|
<article
|
||||||
|
className="contributor col-xs-3 col-sm-2"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="https://github.com/profile"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
className="contributor-picture"
|
||||||
|
src="https://github.com/avatar"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</article>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`ContributorsList should render the component 1`] = `
|
||||||
|
<div
|
||||||
|
className="row center-xs"
|
||||||
|
/>
|
||||||
|
`;
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
import renderer from 'react-test-renderer'
|
||||||
|
|
||||||
|
import ContributorsList from '../index'
|
||||||
|
import Contributor from '../Contributor'
|
||||||
|
import * as stubs from './stubs'
|
||||||
|
|
||||||
|
describe('ContributorsList', () => {
|
||||||
|
it('should render the component', () => {
|
||||||
|
const wrapper = renderer.create(<ContributorsList />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should match Contributor component', () => {
|
||||||
|
const wrapper = renderer.create(<Contributor {...stubs.props} />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
4
src/components/ContributorsList/__tests__/stubs.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export const props = {
|
||||||
|
profile: 'https://github.com/profile',
|
||||||
|
avatar: 'https://github.com/avatar'
|
||||||
|
}
|
||||||
37
src/components/ContributorsList/index.js
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
import Contributor from './Contributor'
|
||||||
|
|
||||||
|
const ContributorsList = () => {
|
||||||
|
const [contributors, setContributors] = React.useState([])
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
const fetchContributors = async () => {
|
||||||
|
const response = await fetch(
|
||||||
|
'https://api.github.com/repos/carloscuesta/gitmoji/contributors'
|
||||||
|
)
|
||||||
|
const contributors = await response.json()
|
||||||
|
|
||||||
|
setContributors(
|
||||||
|
contributors.filter((contributor) => !contributor.login.includes('bot'))
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchContributors()
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="row center-xs">
|
||||||
|
{contributors.map((contributor) => (
|
||||||
|
<Contributor
|
||||||
|
key={contributor.id}
|
||||||
|
profile={contributor.html_url}
|
||||||
|
avatar={contributor.avatar_url}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ContributorsList
|
||||||
30
src/components/GitmojiList/Gitmoji/index.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
code: string,
|
||||||
|
description: string,
|
||||||
|
emoji: string,
|
||||||
|
name: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const Gitmoji = (props: Props) => (
|
||||||
|
<article className="emoji col-xs-12 col-sm-6 col-md-3">
|
||||||
|
<div className="emoji-card">
|
||||||
|
<header className={`${props.name} emoji-header`}>
|
||||||
|
<span
|
||||||
|
className="emoji-icon gitmoji"
|
||||||
|
data-clipboard-text={props.code}
|
||||||
|
onClick={() => alert(props.code)}
|
||||||
|
>
|
||||||
|
{props.emoji}
|
||||||
|
</span>
|
||||||
|
</header>
|
||||||
|
<div className="emoji-info">
|
||||||
|
<code>{props.code}</code>
|
||||||
|
<p>{props.description}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Gitmoji
|
||||||
@ -0,0 +1,183 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`GitmojiList should render the component 1`] = `
|
||||||
|
<div
|
||||||
|
className="row center-xs"
|
||||||
|
id="gitmoji-list"
|
||||||
|
>
|
||||||
|
<article
|
||||||
|
className="emoji col-xs-12 col-sm-6 col-md-3"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="emoji-card"
|
||||||
|
>
|
||||||
|
<header
|
||||||
|
className="art emoji-header"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="emoji-icon gitmoji"
|
||||||
|
data-clipboard-text=":art:"
|
||||||
|
onClick={[Function]}
|
||||||
|
>
|
||||||
|
🎨
|
||||||
|
</span>
|
||||||
|
</header>
|
||||||
|
<div
|
||||||
|
className="emoji-info"
|
||||||
|
>
|
||||||
|
<code>
|
||||||
|
:art:
|
||||||
|
</code>
|
||||||
|
<p>
|
||||||
|
Improving structure / format of the code.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<article
|
||||||
|
className="emoji col-xs-12 col-sm-6 col-md-3"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="emoji-card"
|
||||||
|
>
|
||||||
|
<header
|
||||||
|
className="zap emoji-header"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="emoji-icon gitmoji"
|
||||||
|
data-clipboard-text=":zap:"
|
||||||
|
onClick={[Function]}
|
||||||
|
>
|
||||||
|
⚡️
|
||||||
|
</span>
|
||||||
|
</header>
|
||||||
|
<div
|
||||||
|
className="emoji-info"
|
||||||
|
>
|
||||||
|
<code>
|
||||||
|
:zap:
|
||||||
|
</code>
|
||||||
|
<p>
|
||||||
|
Improving performance.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<article
|
||||||
|
className="emoji col-xs-12 col-sm-6 col-md-3"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="emoji-card"
|
||||||
|
>
|
||||||
|
<header
|
||||||
|
className="fire emoji-header"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="emoji-icon gitmoji"
|
||||||
|
data-clipboard-text=":fire:"
|
||||||
|
onClick={[Function]}
|
||||||
|
>
|
||||||
|
🔥
|
||||||
|
</span>
|
||||||
|
</header>
|
||||||
|
<div
|
||||||
|
className="emoji-info"
|
||||||
|
>
|
||||||
|
<code>
|
||||||
|
:fire:
|
||||||
|
</code>
|
||||||
|
<p>
|
||||||
|
Removing code or files.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<article
|
||||||
|
className="emoji col-xs-12 col-sm-6 col-md-3"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="emoji-card"
|
||||||
|
>
|
||||||
|
<header
|
||||||
|
className="bug emoji-header"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="emoji-icon gitmoji"
|
||||||
|
data-clipboard-text=":bug:"
|
||||||
|
onClick={[Function]}
|
||||||
|
>
|
||||||
|
🐛
|
||||||
|
</span>
|
||||||
|
</header>
|
||||||
|
<div
|
||||||
|
className="emoji-info"
|
||||||
|
>
|
||||||
|
<code>
|
||||||
|
:bug:
|
||||||
|
</code>
|
||||||
|
<p>
|
||||||
|
Fixing a bug.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<article
|
||||||
|
className="emoji col-xs-12 col-sm-6 col-md-3"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="emoji-card"
|
||||||
|
>
|
||||||
|
<header
|
||||||
|
className="ambulance emoji-header"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="emoji-icon gitmoji"
|
||||||
|
data-clipboard-text=":ambulance:"
|
||||||
|
onClick={[Function]}
|
||||||
|
>
|
||||||
|
🚑
|
||||||
|
</span>
|
||||||
|
</header>
|
||||||
|
<div
|
||||||
|
className="emoji-info"
|
||||||
|
>
|
||||||
|
<code>
|
||||||
|
:ambulance:
|
||||||
|
</code>
|
||||||
|
<p>
|
||||||
|
Critical hotfix.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<article
|
||||||
|
className="emoji col-xs-12 col-sm-6 col-md-3"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="emoji-card"
|
||||||
|
>
|
||||||
|
<header
|
||||||
|
className="sparkles emoji-header"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="emoji-icon gitmoji"
|
||||||
|
data-clipboard-text=":sparkles:"
|
||||||
|
onClick={[Function]}
|
||||||
|
>
|
||||||
|
✨
|
||||||
|
</span>
|
||||||
|
</header>
|
||||||
|
<div
|
||||||
|
className="emoji-info"
|
||||||
|
>
|
||||||
|
<code>
|
||||||
|
:sparkles:
|
||||||
|
</code>
|
||||||
|
<p>
|
||||||
|
Introducing new features.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
11
src/components/GitmojiList/__tests__/gitmojiList.spec.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import renderer from 'react-test-renderer'
|
||||||
|
|
||||||
|
import GitmojiList from '../index'
|
||||||
|
import * as stubs from './stubs'
|
||||||
|
|
||||||
|
describe('GitmojiList', () => {
|
||||||
|
it('should render the component', () => {
|
||||||
|
const wrapper = renderer.create(<GitmojiList {...stubs.props} />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
5
src/components/GitmojiList/__tests__/stubs.js
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { gitmojis } from '../../../data/gitmojis.json'
|
||||||
|
|
||||||
|
export const props = {
|
||||||
|
gitmojis: gitmojis.slice(0, 6)
|
||||||
|
}
|
||||||
29
src/components/GitmojiList/index.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
import Gitmoji from './Gitmoji'
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
gitmojis: Array<{
|
||||||
|
code: string,
|
||||||
|
description: string,
|
||||||
|
emoji: string,
|
||||||
|
name: string
|
||||||
|
}>
|
||||||
|
}
|
||||||
|
|
||||||
|
const GitmojiList = (props: Props) => (
|
||||||
|
<div className="row center-xs" id="gitmoji-list">
|
||||||
|
{props.gitmojis.map((gitmoji, index) => (
|
||||||
|
<Gitmoji
|
||||||
|
code={gitmoji.code}
|
||||||
|
description={gitmoji.description}
|
||||||
|
emoji={gitmoji.emoji}
|
||||||
|
key={index}
|
||||||
|
name={gitmoji.name}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default GitmojiList
|
||||||
116
src/components/Icon/__tests__/__snapshots__/icon.spec.js.snap
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`Icon should match Definitions 1`] = `
|
||||||
|
<svg
|
||||||
|
height={0}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"height": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"width": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
version="1.1"
|
||||||
|
width={0}
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
||||||
|
>
|
||||||
|
<defs>
|
||||||
|
<symbol
|
||||||
|
id="icon-heart"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
heart
|
||||||
|
</title>
|
||||||
|
<path
|
||||||
|
className="heart"
|
||||||
|
d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8"
|
||||||
|
fill="#ff5a79"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="icon-star"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
star
|
||||||
|
</title>
|
||||||
|
<path
|
||||||
|
className="twitter"
|
||||||
|
d="M62,25.2H39.1L32,3l-7.1,22.2H2l18.5,13.7l-7,22.1L32,47.3L50.5,61l-7.1-22.2L62,25.2z"
|
||||||
|
fill="#FFDD67"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="icon-twitter"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
twitter
|
||||||
|
</title>
|
||||||
|
<g
|
||||||
|
fill="#42ade2"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m59.8 24.3c0 0 1.1-6.2-3.5-3.4 0 0-.4-6.3-4.3-1.9 0 0-2.1-3.9-4.4-.3-3.1 4.8-5.2 12.4-3.2 25l3.8-2.5c2.7-7.9 12.4-8.8 13.7-13.1.9-3-2.1-3.8-2.1-3.8"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m22.1 17.6l-9.9 3.6c2.2-12 16.6-11.2 16.6-11.2s-6.8 3.2-6.7 7.6"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m23.7 19.8l-10.5 1.4c4.8-11.2 18.7-7.3 18.7-7.3s-7.3 1.6-8.2 5.9"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
fill="#ffd93b"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m2 29l5.4-1.4v3.6c0-.1-3.3-.6-5.4-2.2"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M7.4,27.5L2,24.8c3.6-2.8,7.7-1.9,7.7-1.9L7.4,27.5z"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
fill="#e08828"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m33.8 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m25 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m54 36.2c3.9 0-4.1 17.5-23.3 17.5-13 0-23.9-5.2-23.9-21.5 0-10.1 6.4-18.3 19.5-15 13.3 3.5 6.5 19 27.7 19"
|
||||||
|
fill="#42ade2"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m37.6 51.7c-15.6 0-14-12-27.9-11.2 5.1 15.8 27.9 11.2 27.9 11.2"
|
||||||
|
fill="#fff"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m39.1 29.2c-10-9.8-20.2 6.2-7.9 12.6 12.1 6.2 20.4-4.8 20.4-4.8s-6.1-1.5-12.5-7.8"
|
||||||
|
fill="#297b9d"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<circle
|
||||||
|
cx="15.1"
|
||||||
|
cy="24.9"
|
||||||
|
fill="#3e4347"
|
||||||
|
r="2.5"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Icon should render the component 1`] = `
|
||||||
|
<svg
|
||||||
|
className="icon icon-star"
|
||||||
|
>
|
||||||
|
<use
|
||||||
|
xlinkHref="#icon-star"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
`;
|
||||||
16
src/components/Icon/__tests__/icon.spec.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import renderer from 'react-test-renderer'
|
||||||
|
|
||||||
|
import Icon, { IconDefinitions } from '../index'
|
||||||
|
import * as stubs from './stubs'
|
||||||
|
|
||||||
|
describe('Icon', () => {
|
||||||
|
it('should render the component', () => {
|
||||||
|
const wrapper = renderer.create(<Icon {...stubs.props} />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should match Definitions', () => {
|
||||||
|
const wrapper = renderer.create(<IconDefinitions />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
3
src/components/Icon/__tests__/stubs.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export const props = {
|
||||||
|
name: 'star'
|
||||||
|
}
|
||||||
61
src/components/Icon/definitions.js
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
export const IconDefinitions = () => (
|
||||||
|
<svg
|
||||||
|
style={{ position: 'absolute', width: 0, height: 0 }}
|
||||||
|
width={0}
|
||||||
|
height={0}
|
||||||
|
version="1.1"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
||||||
|
>
|
||||||
|
<defs>
|
||||||
|
<symbol id="icon-heart" viewBox="0 0 64 64">
|
||||||
|
<title>heart</title>
|
||||||
|
<path
|
||||||
|
className="heart"
|
||||||
|
d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8"
|
||||||
|
fill="#ff5a79"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-star" viewBox="0 0 64 64">
|
||||||
|
<title>star</title>
|
||||||
|
<path
|
||||||
|
className="twitter"
|
||||||
|
d="M62,25.2H39.1L32,3l-7.1,22.2H2l18.5,13.7l-7,22.1L32,47.3L50.5,61l-7.1-22.2L62,25.2z"
|
||||||
|
fill="#FFDD67"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
<symbol id="icon-twitter" viewBox="0 0 64 64">
|
||||||
|
<title>twitter</title>
|
||||||
|
<g fill="#42ade2">
|
||||||
|
<path d="m59.8 24.3c0 0 1.1-6.2-3.5-3.4 0 0-.4-6.3-4.3-1.9 0 0-2.1-3.9-4.4-.3-3.1 4.8-5.2 12.4-3.2 25l3.8-2.5c2.7-7.9 12.4-8.8 13.7-13.1.9-3-2.1-3.8-2.1-3.8" />
|
||||||
|
<path d="m22.1 17.6l-9.9 3.6c2.2-12 16.6-11.2 16.6-11.2s-6.8 3.2-6.7 7.6" />
|
||||||
|
<path d="m23.7 19.8l-10.5 1.4c4.8-11.2 18.7-7.3 18.7-7.3s-7.3 1.6-8.2 5.9" />
|
||||||
|
</g>
|
||||||
|
<g fill="#ffd93b">
|
||||||
|
<path d="m2 29l5.4-1.4v3.6c0-.1-3.3-.6-5.4-2.2" />
|
||||||
|
<path d="M7.4,27.5L2,24.8c3.6-2.8,7.7-1.9,7.7-1.9L7.4,27.5z" />
|
||||||
|
</g>
|
||||||
|
<g fill="#e08828">
|
||||||
|
<path d="m33.8 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1" />
|
||||||
|
<path d="m25 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1" />
|
||||||
|
<path
|
||||||
|
d="m54 36.2c3.9 0-4.1 17.5-23.3 17.5-13 0-23.9-5.2-23.9-21.5 0-10.1 6.4-18.3 19.5-15 13.3 3.5 6.5 19 27.7 19"
|
||||||
|
fill="#42ade2"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m37.6 51.7c-15.6 0-14-12-27.9-11.2 5.1 15.8 27.9 11.2 27.9 11.2"
|
||||||
|
fill="#fff"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m39.1 29.2c-10-9.8-20.2 6.2-7.9 12.6 12.1 6.2 20.4-4.8 20.4-4.8s-6.1-1.5-12.5-7.8"
|
||||||
|
fill="#297b9d"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<circle cx="15.1" cy="24.9" r="2.5" fill="#3e4347" />
|
||||||
|
</symbol>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
)
|
||||||
14
src/components/Icon/index.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
export { IconDefinitions } from './definitions'
|
||||||
|
|
||||||
|
type Props = { name: string }
|
||||||
|
|
||||||
|
const Icon = (props: Props) => (
|
||||||
|
<svg className={`icon icon-${props.name}`}>
|
||||||
|
<use xlinkHref={`#icon-${props.name}`} />
|
||||||
|
</svg>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Icon
|
||||||
33
src/components/Layout/Footer/index.js
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
import Link from 'next/link'
|
||||||
|
|
||||||
|
import Icon from '../../Icon'
|
||||||
|
|
||||||
|
const Footer = () => (
|
||||||
|
<footer className="footer">
|
||||||
|
<div className="wrap">
|
||||||
|
<div className="row middle-xs">
|
||||||
|
<div className="col-sm-6 made-with-love">
|
||||||
|
<h3>
|
||||||
|
Made with <Icon name="heart" /> by{' '}
|
||||||
|
<a href="https://carloscuesta.me">Carlos Cuesta</a>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div className="col-sm-6 footer-nav">
|
||||||
|
<nav>
|
||||||
|
<Link href="/about">
|
||||||
|
<a>About</a>
|
||||||
|
</Link>
|
||||||
|
<Link href="/contributors">
|
||||||
|
<a>Contributors</a>
|
||||||
|
</Link>
|
||||||
|
<a href="https://github.com/carloscuesta/gitmoji">GitHub</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Footer
|
||||||
36
src/components/Layout/Header/index.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
import Button from '../../Button'
|
||||||
|
import Logo from '../Logo'
|
||||||
|
|
||||||
|
type Props = { withHeadline: boolean, withSocialButtons: boolean }
|
||||||
|
|
||||||
|
const Header = (props: Props) => (
|
||||||
|
<header className="header">
|
||||||
|
<Logo />
|
||||||
|
{props.withHeadline && <h2>An emoji guide for your commit messages</h2>}
|
||||||
|
{props.withSocialButtons && (
|
||||||
|
<div className="header-buttons">
|
||||||
|
<Button
|
||||||
|
icon="star"
|
||||||
|
link="https://github.com/carloscuesta/gitmoji"
|
||||||
|
text="GitHub"
|
||||||
|
/>
|
||||||
|
<Button
|
||||||
|
icon="twitter"
|
||||||
|
link={
|
||||||
|
'https://twitter.com/intent/tweet?text=gitmoji' +
|
||||||
|
'%20%E2%80%93%20An%20%23emoji%20guide%20for%20your%20commit' +
|
||||||
|
'%20messages%20by%20%40crloscuesta%20%F0%9F%98%8D%F0%9F%98%9C' +
|
||||||
|
'&url=https://gitmoji.carloscuesta.me'
|
||||||
|
}
|
||||||
|
target="_blank"
|
||||||
|
text="Tweet"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</header>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Header
|
||||||
65
src/components/Layout/Logo/index.js
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
import LOGO_STATUSES, {
|
||||||
|
Joy,
|
||||||
|
Loved,
|
||||||
|
Sexy,
|
||||||
|
Smiling,
|
||||||
|
Sunglasses,
|
||||||
|
Tongue
|
||||||
|
} from './statuses'
|
||||||
|
|
||||||
|
export const getIconByStatus = (status: $Keys<typeof LOGO_STATUSES>) => {
|
||||||
|
switch (status) {
|
||||||
|
case LOGO_STATUSES.JOY:
|
||||||
|
return <Joy />
|
||||||
|
case LOGO_STATUSES.LOVED:
|
||||||
|
return <Loved />
|
||||||
|
case LOGO_STATUSES.SEXY:
|
||||||
|
return <Sexy />
|
||||||
|
case LOGO_STATUSES.SMILING:
|
||||||
|
return <Smiling />
|
||||||
|
case LOGO_STATUSES.SUNGLASSES:
|
||||||
|
return <Sunglasses />
|
||||||
|
case LOGO_STATUSES.TONGUE:
|
||||||
|
return <Tongue />
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const Logo = () => {
|
||||||
|
const statuses: Array<Object> = Object.values(LOGO_STATUSES).map(
|
||||||
|
(status) => status
|
||||||
|
)
|
||||||
|
const [status, setStatus] = React.useState('')
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
setStatus(statuses[Math.floor(Math.random() * statuses.length)])
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
className="gitmoji-logo"
|
||||||
|
height="137px"
|
||||||
|
width="457px"
|
||||||
|
version="1.1"
|
||||||
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
||||||
|
viewBox="0 0 457 137"
|
||||||
|
>
|
||||||
|
<title>gitmoji</title>
|
||||||
|
<g id="gitmoji" fillRule="evenodd" fill="none">
|
||||||
|
<g id="Logo" transform="translate(-270 -430)">
|
||||||
|
<g id="gitmoji" transform="translate(270 430)">
|
||||||
|
<path
|
||||||
|
d="m17.5 106c0.6 4 2.4 7 5.3 10 2.9 2 6.6 4 11.2 4 6.1 0 10.7-2 14-5s4.9-8 4.9-15.1v-5.1c-1.5 2.3-3.8 4.4-7.1 6.2-3.2 2-7.5 3-12.6 3-4.7 0-9.1-1-13.1-3-4.1-1.5-7.6-3.9-10.5-7-2.91-3-5.22-6.7-6.9-10.8-1.68-4.2-2.52-8.8-2.52-13.8 0.004-4.7 0.82-9.1 2.45-13.3s3.89-7.9 6.77-11c2.9-3.2 6.3-5.7 10.4-7.5 4-1.8 8.5-2.7 13.4-2.7 5.6 0 10.1 1 13.4 3 3.2 2 5.5 4.2 6.7 6.6v-8.3h18.5v63.2c0 4.6-0.7 9.6-2.1 13.6-1.4 5-3.6 9-6.6 12-3 4-6.8 6-11.5 8s-10.4 4-17 4c-4.9 0-9.3-1-13.3-3-4-1-7.5-3-10.5-5-2.94-3-5.34-5-7.16-8-1.82-4-2.98-7-3.46-10l17.3-5zm19-18.6c4.9 0 8.9-1.6 12-4.9 3.1-3.2 4.7-7.6 4.7-13.1s-1.7-9.8-4.9-13c-3.3-3.2-7.2-4.8-11.8-4.8-2.4 0-4.7 0.4-6.7 1.2-2.1 0.8-3.9 2-5.4 3.6-1.6 1.6-2.8 3.5-3.6 5.7-0.9 2.2-1.3 4.6-1.3 7.3 0 5.6 1.6 10 4.7 13.2 3.2 3.2 7.3 4.8 12.3 4.8zm54.7 19.6v-70.8h18.8v70.8h-18.8zm-2.3-94c0-3.39 1.1-6.22 3.4-8.53 2.3-2.3 5.1-3.45 8.7-3.45 3 0 6 1.15 8 3.45 2 2.31 4 5.14 4 8.53 0 3.1-2 5.9-4 8.2s-5 3.4-8 3.4c-3.6 0-6.4-1.1-8.7-3.4s-3.4-5.1-3.4-8.2zm65.1 23.2h15v16.9h-15v29.7c0 3.1 1 5.2 2 6.4 2 1.2 4 1.8 7 1.8 1 0 2 0 3-0.1s2-0.3 3-0.5v15.6c-1 1-3 1-4 1-2 1-4 1-7 1-7 0-13-2-17-6-4-3.6-6-9-6-15.9v-33h-12v-16.9h3c4 0 7-1.1 8-3.3 2-2.1 3-4.8 3-8v-9.9h17v21.2zm30 70.8v-70.8h18v8.6c1-1.7 2-3.3 4-4.6 1-1.4 3-2.5 5-3.3 2-0.9 4-1.6 6-2 2-0.5 4-0.8 6-0.8 5 0 9 1 13 3.1 3 2 6 4.9 8 8.7 3-4.3 6-7.3 10-9.1s8-2.7 12-2.7 7 0.5 10 1.5c3 1.1 6 2.7 8 4.9 3 2.2 4 5 6 8.4 1 3.4 2 7.5 2 12.2v45.9h-19v-42c0-3.9 0-7.1-2-9.6-2-2.6-6-3.8-10-3.8s-7 1.3-10 4.1c-2 2.7-3 6-3 9.8v41.5h-19v-42c0-3.9-1-7.1-3-9.6-2-2.6-5-3.8-10-3.8-4 0-7 1.3-9 4-3 2.7-4 6-4 9.9v41.5h-19zm159-15.3c3 0 5-0.4 7-1.3 2-0.8 4-2.1 6-3.8 1-1.7 3-3.7 4-6.2s1-5.5 1-8.8c0-3.4 0-6.3-1-8.8s-3-4.6-4-6.3c-2-1.7-4-2.9-6-3.8s-4-1.3-7-1.3c-2 0-4 0.4-6 1.3-3 0.9-5 2.1-6 3.8-2 1.7-3 3.8-4 6.3s-2 5.4-2 8.8c0 3.3 1 6.3 2 8.8s2 4.5 4 6.2c1 1.7 3 3 6 3.8 2 0.9 4 1.3 6 1.3zm0-57.7c6 0 11 0.9 15 2.8 5 1.9 9 4.5 12 7.8s6 7.2 8 11.9c2 4.6 2 9.6 2 15.1 0 5.4 0 10.5-2 15-2 4.6-5 8.5-8 11.9-3 3.5-7 5.5-12 7.5-4 2-9 3-15 3-5 0-10-1-14-3-5-2-9-4-12-7.5-4-3.4-6-7.3-8-11.9-2-4.5-3-9.6-3-15 0-5.5 1-10.5 3-15.1 2-4.7 4-8.6 8-11.9 3-3.3 7-5.9 12-7.8 4-1.9 9-2.8 14-2.8zm53 2.2h19v76.8c0 4-1 7-2 10-1 2-2 5-4 7s-4 4-7 5-6 2-9 2-6-1-8-1c-2-1-3-1-3-1v-16h2c1 1 2 1 4 1 3 0 5-1 6-3 1-1 2-3 2-6v-74.8zm-3-23.4c0-3.34 1-6.17 4-8.47 2-2.31 5-3.46 8-3.46 3 0.002 6 1.15 9 3.46 2 2.3 3 5.13 3 8.47 0 3.3-1 6-3 8.3-3 2.3-6 3.4-9 3.4s-6-1.1-8-3.4c-3-2.3-4-5-4-8.3zm42 94.2v-70.8h19v70.8h-19zm-2-94c0-3.39 1-6.22 3-8.53 3-2.3 5-3.45 9-3.45 3 0 6 1.15 8 3.45 2 2.31 4 5.14 4 8.53 0 3.1-2 5.9-4 8.2s-5 3.4-8 3.4c-4 0-6-1.1-9-3.4-2-2.3-3-5.1-3-8.2z"
|
||||||
|
fill="#000"
|
||||||
|
/>
|
||||||
|
{getIconByStatus(status)}
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Logo
|
||||||
216
src/components/Layout/Logo/statuses/index.js
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
export const Tongue = () => (
|
||||||
|
<g id="tongue" transform="translate(304 32)">
|
||||||
|
<g id="Group">
|
||||||
|
<ellipse id="Oval" rx={39} ry={39} cy={39} cx={39} fill="#FFDD67" />
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#fff"
|
||||||
|
d="m38 29.4c0 7.1-5.8 13-13 13s-13-5.9-13-13c0-7.2 5.8-13 13-13s13 5.8 13 13z"
|
||||||
|
/>
|
||||||
|
<ellipse id="Oval" rx="5.85" ry="5.85" cy="29.4" cx={25} fill="#664E27" />
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#664E27"
|
||||||
|
d="m63.7 35.3c-2.5-5.3-6.1-8-9.7-8-3.7 0-7.3 2.7-9.8 8-0.2 0.5 1 1.5 1.7 0.9 2.3-1.9 5.1-2.7 8.1-2.7 2.9 0 5.7 0.8 8 2.7 0.7 0.6 1.9-0.4 1.7-0.9z"
|
||||||
|
/>
|
||||||
|
<g id="Shape" transform="translate(16.9 46.8)">
|
||||||
|
<path
|
||||||
|
d="m42.7 0h-41.2c-0.989 0-1.5 0.659-1.5 1.3 0.0013 9.5 7.75 19.5 22.1 19.5s22.1-10 22.1-19.5c0-0.641-0.5-1.3-1.5-1.3z"
|
||||||
|
fill="#664E27"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m34 7.8h-11.9-11.9c-0.95 0-1.1 0.41-1.1 1.1v5.2c0 11.4 5.8 17.1 13 17.1s13-5.7 13-17.1v-5.2c0-0.69-0.1-1.1-1.1-1.1z"
|
||||||
|
fill="#FF717F"
|
||||||
|
/>
|
||||||
|
<polygon points="24 7.8 22.1 25.7 20.2 7.8" fill="#E2596C" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const Sexy = () => (
|
||||||
|
<g id="sexy" transform="translate(304 32)">
|
||||||
|
<g id="Group">
|
||||||
|
<ellipse id="Oval" rx={39} ry={39} cy={39} cx={39} fill="#FFDD67" />
|
||||||
|
<ellipse
|
||||||
|
id="Oval"
|
||||||
|
rx="10.4"
|
||||||
|
ry="10.4"
|
||||||
|
cy="45.7"
|
||||||
|
cx="66.1"
|
||||||
|
fill="#FF717F"
|
||||||
|
/>
|
||||||
|
<ellipse
|
||||||
|
id="Oval"
|
||||||
|
rx="10.4"
|
||||||
|
ry="10.4"
|
||||||
|
cy="45.7"
|
||||||
|
cx="11.9"
|
||||||
|
fill="#FF717F"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#917524"
|
||||||
|
d="m68.4 24.2c-3.5-4.2-8.7-6.7-14.2-6.6-0.8 0-1-2.9 0-2.9 6.3 0 12.4 2.8 16.4 7.7 0.6 0.7-1.7 2.4-2.2 1.8zm-44.6-6.8c-5.5 0-10.7 2.4-14.2 6.6-0.52 0.6-2.81-1.1-2.23-1.8 4.03-4.9 10.1-7.7 16.4-7.7 1 0 0.8 2.9 0 2.9z"
|
||||||
|
/>
|
||||||
|
<ellipse id="Oval" rx="5.85" ry="5.85" cy="61.7" cx={39} fill="#664E27" />
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#fff"
|
||||||
|
d="m35.8 35.3c0 6.4-5.3 11.7-11.8 11.7-6.4 0-11.6-5.3-11.6-11.7 0-6.5 5.2-11.7 11.6-11.7 6.5 0 11.8 5.2 11.8 11.7z"
|
||||||
|
/>
|
||||||
|
<ellipse id="Oval" rx="5.85" ry="5.85" cy="35.3" cx={24} fill="#664E27" />
|
||||||
|
<g transform="translate(41.6 23.4)">
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#fff"
|
||||||
|
d="m24 11.9c0 6.4-5.2 11.7-11.6 11.7-6.51 0-11.8-5.3-11.8-11.7 0.05-6.48 5.29-11.7 11.8-11.7 6.4-0.022 11.6 5.22 11.6 11.7z"
|
||||||
|
/>
|
||||||
|
<ellipse
|
||||||
|
id="Oval"
|
||||||
|
rx="5.85"
|
||||||
|
ry="5.85"
|
||||||
|
cy="11.9"
|
||||||
|
cx="12.4"
|
||||||
|
fill="#664E27"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const Sunglasses = () => (
|
||||||
|
<g id="sunglasses" transform="translate(304 32)">
|
||||||
|
<g id="Group">
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#FFDD67"
|
||||||
|
d="m39 0c21.5 0 39 17.5 39 39s-17.5 39-39 39-39-17.5-39-39 17.5-39 39-39"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#494949"
|
||||||
|
d="m44 24c-2.9 1.4-7.1 1.4-10 0-3.1-1.6-6.8-2.6-11.3-2.9-4.3-0.4-13.6-0.4-18.2 1.2-0.52 0.2-1.04 0.4-1.55 0.7-0.28 0.1-0.34 0.2-0.34 0.8v0.7c0 1.3-0.16 0.8 0.76 1.3 1.8 1 2.82 3.8 3.36 7.5 0.78 5.5 3.47 8.9 7.87 10.6 4 1.5 8.5 1.5 12.6-0.2 2.2-0.8 4.1-2.2 5.6-4.5 2.7-3.9 1.9-6.4 3.3-9.8 1.2-2.9 4.6-2.9 5.8 0 1.4 3.4 0.6 5.9 3.3 9.8 1.5 2.3 3.4 3.7 5.6 4.5 4.1 1.7 8.6 1.7 12.6 0.2 4.4-1.7 7.1-5.1 7.9-10.6 0.5-3.7 1.5-6.5 3.3-7.5 0.9-0.5 0.8 0 0.8-1.3v-0.7c0-0.6-0.1-0.7-0.4-0.8-0.5-0.3-1-0.5-1.5-0.7-4.6-1.6-13.9-1.6-18.2-1.2-4.5 0.3-8.2 1.3-11.3 2.9"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#664E27"
|
||||||
|
d="m55.4 52.4c-10.6 7.3-22.3 7.3-32.8 0-1.2-0.9-2.4 0.6-1.5 2 3.2 5.3 9.6 10 17.9 10s14.7-4.7 17.9-10c0.9-1.4-0.3-2.9-1.5-2z"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const Smiling = () => (
|
||||||
|
<g
|
||||||
|
id="haha"
|
||||||
|
className="single-emoji-logo emoji-visible"
|
||||||
|
transform="translate(304 32)"
|
||||||
|
>
|
||||||
|
<g id="Group">
|
||||||
|
<path
|
||||||
|
id="Oval"
|
||||||
|
fill="#FFDD67"
|
||||||
|
d="m39 78c21.5 0 39-17.5 39-39s-17.5-39-39-39-39 17.5-39 39 17.5 39 39 39z"
|
||||||
|
/>
|
||||||
|
<g id="Shape" fill="#664E27" transform="translate(11.7 20.5)">
|
||||||
|
<path d="m52.9 2.09c0.3 0.15 0.4 0.47 0.4 0.79-0.1 0.32-0.3 0.57-0.6 0.63-3.5 0.52-7.3 1.12-10.8 3.07 5.2 0.87 9.4 3.52 11.7 6.32 0.5 0.6-0.1 1.4-0.7 1.2-6.2-2.3-12.6-3.5-20.6-2.6-0.6 0-1.2-0.3-1-0.9 2.1-9.39 14.2-12.9 21.6-8.51zm-51.2 0c-0.29 0.15-0.45 0.47-0.4 0.79s0.3 0.57 0.62 0.63c3.5 0.52 7.21 1.12 10.8 3.07-5.35 0.87-9.55 3.52-11.8 6.32-0.538 0.6 0.11 1.4 0.68 1.2 6.2-2.3 12.6-3.5 20.6-2.6 0.6 0 1.2-0.3 1-0.9-2.1-9.39-14.2-12.9-21.6-8.51h0.03z" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#664E27"
|
||||||
|
d="m62 42.2c-0.5-0.7-1.5-0.6-2.5-0.6h-41c-1 0-2-0.1-2.5 0.6-5.1 6.4 0.9 25.4 23 25.4s28.1-19 23-25.4z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#4C3526"
|
||||||
|
d="m41.4 51.7c-0.8-0.1-1.9 0.6-1.5 2.5 0.2 0.9 1.6 2.1 1.6 3.6 0 3.1-5 3.1-5 0 0-1.5 1.4-2.7 1.6-3.6 0.4-1.9-0.7-2.6-1.5-2.5-2 0-5.4 2.2-5.4 5.9 0 4.2 3.5 7.6 7.8 7.6s7.8-3.4 7.8-7.6c0-3.7-3.4-5.9-5.4-5.9z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#FF717F"
|
||||||
|
d="m29 63.3c2.9 1.2 6.2 1.9 10 1.9s7.1-0.7 10-1.9c-2.8-1.4-6.1-2.2-10-2.2s-7.2 0.8-10 2.2z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#fff"
|
||||||
|
d="m58.4 44.2h-38.8c-2.7 0-2.7 5.2-0.1 5.2h39c2.6 0 2.6-5.2-0.1-5.2z"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const Loved = () => (
|
||||||
|
<g id="loved" transform="translate(304 32)">
|
||||||
|
<g id="Group">
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#FFDD67"
|
||||||
|
d="m78 39c0 21.5-17.5 39-39 39s-39-17.5-39-39 17.5-39 39-39 39 17.5 39 39z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#F46767"
|
||||||
|
d="m77.8 14.6c-0.6-3.5-2.6-6.37-5.8-7.23-3.4-0.95-6.6 0.41-9.7 3.53-1.7-4.74-4.3-8.24-8.4-10-4.3-1.89-8.4-0.645-11 2.64-2.7 3.42-3.8 8.66-0.9 15.6 2.7 6.5 14.9 19.5 15.2 19.9 0.5-0.3 14-8.7 17.3-12.9 3.2-4 3.9-8.1 3.3-11.5zm-42.7-11.1c-2.6-3.28-6.7-4.53-11-2.68-4.1 1.8-6.7 5.3-8.4 10-3.1-3.12-6.25-4.48-9.7-3.53-3.16 0.86-5.2 3.73-5.8 7.23-0.599 3.4 0.072 7.5 3.31 11.5 3.31 4.2 16.8 12.6 17.3 12.9 0.3-0.4 12.5-13.4 15.2-19.9 2.9-6.9 1.8-12.1-0.9-15.6v0.04z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#664E27"
|
||||||
|
d="m61.1 46.9c0-1.1-0.6-2.4-2.4-2.7-4.5-0.9-11.1-1.8-19.7-1.8s-15.2 0.9-19.7 1.8c-1.8 0.3-2.4 1.6-2.4 2.7 0 9.4 7.3 18.9 22.1 18.9s22.1-9.5 22.1-18.9z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#fff"
|
||||||
|
d="m55.5 47.2c-2.9-0.5-8.9-1.3-16.5-1.3s-13.6 0.8-16.5 1.3c-1.7 0.3-1.8 0.9-1.7 1.9 0.1 0.6 0.2 1.3 0.4 2 0.2 0.9 0.3 1.2 1.6 1.1 2.5-0.3 29.9-0.3 32.4 0 1.3 0.1 1.4-0.2 1.6-1.1 0.2-0.7 0.3-1.4 0.4-2 0.1-1 0-1.6-1.7-1.9z"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
)
|
||||||
|
|
||||||
|
export const Joy = () => (
|
||||||
|
<g id="joy" transform="translate(304 32)">
|
||||||
|
<g id="Group">
|
||||||
|
<circle id="Oval" cy={39} cx={39} r={39} fill="#FFDD67" />
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#664E27"
|
||||||
|
d="m62 42.2c-0.5-0.7-1.5-0.6-2.5-0.6h-41c-1 0-2-0.1-2.5 0.6-5.1 6.4 0.9 25.4 23 25.4s28.1-19 23-25.4z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#4C3526"
|
||||||
|
d="m41.4 51.7c-0.8-0.1-1.9 0.6-1.5 2.5 0.2 0.9 1.6 2.1 1.6 3.6 0 3.1-5 3.1-5 0 0-1.5 1.4-2.7 1.6-3.6 0.4-1.9-0.7-2.6-1.5-2.5-2 0-5.4 2.2-5.4 5.9 0 4.2 3.5 7.6 7.8 7.6s7.8-3.4 7.8-7.6c0-3.7-3.4-5.9-5.4-5.9z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#FF717F"
|
||||||
|
d="m29 63.3c2.9 1.2 6.2 1.9 10 1.9s7.1-0.7 10-1.9c-2.8-1.4-6.1-2.2-10-2.2s-7.2 0.8-10 2.2z"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
id="Shape"
|
||||||
|
fill="#fff"
|
||||||
|
d="m58.4 44.2h-38.8c-2.7 0-2.7 5.2-0.1 5.2h39c2.6 0 2.6-5.2-0.1-5.2z"
|
||||||
|
/>
|
||||||
|
<g id="Shape" fill="#65B1EF" transform="translate(0 37.7)">
|
||||||
|
<path d="m74.7 7.64c9.5 9.96-3.4 23.6-12.9 13.6-7-7.3-7.3-21.2-7.3-21.2 0 0.013 13.2 0.347 20.2 7.64zm-58.5 13.6c-9.46 10-22.4-3.6-12.9-13.6 7-7.25 20.2-7.59 20.2-7.59 0 0.003-0.3 13.9-7.3 21.2z" />
|
||||||
|
</g>
|
||||||
|
<g id="Shape" fill="#664E27" transform="translate(14.3 24.7)">
|
||||||
|
<path d="m20.2 9.97c-2.4-6.64-6.1-9.97-9.7-9.97-3.66 0-7.3 3.33-9.71 9.97-0.243 0.63 1 1.83 1.63 1.23 2.34-2.48 5.14-3.47 8.08-3.47 2.9 0 5.7 0.99 8.1 3.47 0.6 0.6 1.8-0.6 1.6-1.23zm28.4 0c-2.4-6.64-6-9.97-9.7-9.97-3.6 0-7.3 3.33-9.7 9.97-0.2 0.63 1 1.83 1.6 1.23 2.4-2.48 5.2-3.47 8.1-3.47s5.7 0.99 8.1 3.47c0.6 0.6 1.9-0.6 1.6-1.23z" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
)
|
||||||
|
|
||||||
|
const LOGO_STATUSES: Object = {
|
||||||
|
JOY: 'joy',
|
||||||
|
LOVED: 'loved',
|
||||||
|
SEXY: 'sexy',
|
||||||
|
SMILING: 'smiling',
|
||||||
|
SUNGLASSES: 'sunglasses',
|
||||||
|
TONGUE: 'tongue'
|
||||||
|
}
|
||||||
|
|
||||||
|
export default LOGO_STATUSES
|
||||||
59
src/components/Layout/Navigation/index.js
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
import Link from 'next/link'
|
||||||
|
|
||||||
|
const Navigation = () => (
|
||||||
|
<nav className="nav row middle-xs">
|
||||||
|
<input className="c-hamburger__input" id="hamburger-menu" type="checkbox" />
|
||||||
|
<label className="c-hamburger c-hamburger--htx" htmlFor="hamburger-menu">
|
||||||
|
<span />
|
||||||
|
</label>
|
||||||
|
<div className="modal">
|
||||||
|
<div className="modal-content">
|
||||||
|
<ul className="navigation">
|
||||||
|
<li className="item">
|
||||||
|
<Link href="/">
|
||||||
|
<a
|
||||||
|
onMouseDown={() =>
|
||||||
|
window.ga('send', 'event', 'Menu', 'Gitmoji')
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className="item">
|
||||||
|
<Link href="/about">
|
||||||
|
<a
|
||||||
|
onMouseDown={() => window.ga('send', 'event', 'Menu', 'About')}
|
||||||
|
>
|
||||||
|
About
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className="item">
|
||||||
|
<Link href="/contributors">
|
||||||
|
<a
|
||||||
|
onMouseDown={() =>
|
||||||
|
window.ga('send', 'event', 'Menu', 'Contributors')
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Contributors
|
||||||
|
</a>
|
||||||
|
</Link>
|
||||||
|
</li>
|
||||||
|
<li className="item">
|
||||||
|
<a
|
||||||
|
href="https://github.com/carloscuesta/gitmoji"
|
||||||
|
onMouseDown={() => window.ga('send', 'event', 'Menu', 'GitHub')}
|
||||||
|
>
|
||||||
|
GitHub
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Navigation
|
||||||
@ -0,0 +1,612 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`Layout Logo getIconByStatus should render component for status joy 1`] = `<Joy />`;
|
||||||
|
|
||||||
|
exports[`Layout Logo getIconByStatus should render component for status loved 1`] = `<Loved />`;
|
||||||
|
|
||||||
|
exports[`Layout Logo getIconByStatus should render component for status sexy 1`] = `<Sexy />`;
|
||||||
|
|
||||||
|
exports[`Layout Logo getIconByStatus should render component for status smiling 1`] = `<Smiling />`;
|
||||||
|
|
||||||
|
exports[`Layout Logo getIconByStatus should render component for status sunglasses 1`] = `<Sunglasses />`;
|
||||||
|
|
||||||
|
exports[`Layout Logo getIconByStatus should render component for status tongue 1`] = `<Tongue />`;
|
||||||
|
|
||||||
|
exports[`Layout should render the component with social buttons 1`] = `
|
||||||
|
Array [
|
||||||
|
<svg
|
||||||
|
height={0}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"height": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"width": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
version="1.1"
|
||||||
|
width={0}
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
||||||
|
>
|
||||||
|
<defs>
|
||||||
|
<symbol
|
||||||
|
id="icon-heart"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
heart
|
||||||
|
</title>
|
||||||
|
<path
|
||||||
|
className="heart"
|
||||||
|
d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8"
|
||||||
|
fill="#ff5a79"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="icon-star"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
star
|
||||||
|
</title>
|
||||||
|
<path
|
||||||
|
className="twitter"
|
||||||
|
d="M62,25.2H39.1L32,3l-7.1,22.2H2l18.5,13.7l-7,22.1L32,47.3L50.5,61l-7.1-22.2L62,25.2z"
|
||||||
|
fill="#FFDD67"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="icon-twitter"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
twitter
|
||||||
|
</title>
|
||||||
|
<g
|
||||||
|
fill="#42ade2"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m59.8 24.3c0 0 1.1-6.2-3.5-3.4 0 0-.4-6.3-4.3-1.9 0 0-2.1-3.9-4.4-.3-3.1 4.8-5.2 12.4-3.2 25l3.8-2.5c2.7-7.9 12.4-8.8 13.7-13.1.9-3-2.1-3.8-2.1-3.8"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m22.1 17.6l-9.9 3.6c2.2-12 16.6-11.2 16.6-11.2s-6.8 3.2-6.7 7.6"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m23.7 19.8l-10.5 1.4c4.8-11.2 18.7-7.3 18.7-7.3s-7.3 1.6-8.2 5.9"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
fill="#ffd93b"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m2 29l5.4-1.4v3.6c0-.1-3.3-.6-5.4-2.2"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M7.4,27.5L2,24.8c3.6-2.8,7.7-1.9,7.7-1.9L7.4,27.5z"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
fill="#e08828"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m33.8 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m25 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m54 36.2c3.9 0-4.1 17.5-23.3 17.5-13 0-23.9-5.2-23.9-21.5 0-10.1 6.4-18.3 19.5-15 13.3 3.5 6.5 19 27.7 19"
|
||||||
|
fill="#42ade2"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m37.6 51.7c-15.6 0-14-12-27.9-11.2 5.1 15.8 27.9 11.2 27.9 11.2"
|
||||||
|
fill="#fff"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m39.1 29.2c-10-9.8-20.2 6.2-7.9 12.6 12.1 6.2 20.4-4.8 20.4-4.8s-6.1-1.5-12.5-7.8"
|
||||||
|
fill="#297b9d"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<circle
|
||||||
|
cx="15.1"
|
||||||
|
cy="24.9"
|
||||||
|
fill="#3e4347"
|
||||||
|
r="2.5"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
</defs>
|
||||||
|
</svg>,
|
||||||
|
<nav
|
||||||
|
className="nav row middle-xs"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
className="c-hamburger__input"
|
||||||
|
id="hamburger-menu"
|
||||||
|
type="checkbox"
|
||||||
|
/>
|
||||||
|
<label
|
||||||
|
className="c-hamburger c-hamburger--htx"
|
||||||
|
htmlFor="hamburger-menu"
|
||||||
|
>
|
||||||
|
<span />
|
||||||
|
</label>
|
||||||
|
<div
|
||||||
|
className="modal"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="modal-content"
|
||||||
|
>
|
||||||
|
<ul
|
||||||
|
className="navigation"
|
||||||
|
>
|
||||||
|
<li
|
||||||
|
className="item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/about"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
About
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/contributors"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
Contributors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="https://github.com/carloscuesta/gitmoji"
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
>
|
||||||
|
GitHub
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>,
|
||||||
|
<header
|
||||||
|
className="header"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
className="gitmoji-logo"
|
||||||
|
height="137px"
|
||||||
|
version="1.1"
|
||||||
|
viewBox="0 0 457 137"
|
||||||
|
width="457px"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
gitmoji
|
||||||
|
</title>
|
||||||
|
<g
|
||||||
|
fill="none"
|
||||||
|
fillRule="evenodd"
|
||||||
|
id="gitmoji"
|
||||||
|
>
|
||||||
|
<g
|
||||||
|
id="Logo"
|
||||||
|
transform="translate(-270 -430)"
|
||||||
|
>
|
||||||
|
<g
|
||||||
|
id="gitmoji"
|
||||||
|
transform="translate(270 430)"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m17.5 106c0.6 4 2.4 7 5.3 10 2.9 2 6.6 4 11.2 4 6.1 0 10.7-2 14-5s4.9-8 4.9-15.1v-5.1c-1.5 2.3-3.8 4.4-7.1 6.2-3.2 2-7.5 3-12.6 3-4.7 0-9.1-1-13.1-3-4.1-1.5-7.6-3.9-10.5-7-2.91-3-5.22-6.7-6.9-10.8-1.68-4.2-2.52-8.8-2.52-13.8 0.004-4.7 0.82-9.1 2.45-13.3s3.89-7.9 6.77-11c2.9-3.2 6.3-5.7 10.4-7.5 4-1.8 8.5-2.7 13.4-2.7 5.6 0 10.1 1 13.4 3 3.2 2 5.5 4.2 6.7 6.6v-8.3h18.5v63.2c0 4.6-0.7 9.6-2.1 13.6-1.4 5-3.6 9-6.6 12-3 4-6.8 6-11.5 8s-10.4 4-17 4c-4.9 0-9.3-1-13.3-3-4-1-7.5-3-10.5-5-2.94-3-5.34-5-7.16-8-1.82-4-2.98-7-3.46-10l17.3-5zm19-18.6c4.9 0 8.9-1.6 12-4.9 3.1-3.2 4.7-7.6 4.7-13.1s-1.7-9.8-4.9-13c-3.3-3.2-7.2-4.8-11.8-4.8-2.4 0-4.7 0.4-6.7 1.2-2.1 0.8-3.9 2-5.4 3.6-1.6 1.6-2.8 3.5-3.6 5.7-0.9 2.2-1.3 4.6-1.3 7.3 0 5.6 1.6 10 4.7 13.2 3.2 3.2 7.3 4.8 12.3 4.8zm54.7 19.6v-70.8h18.8v70.8h-18.8zm-2.3-94c0-3.39 1.1-6.22 3.4-8.53 2.3-2.3 5.1-3.45 8.7-3.45 3 0 6 1.15 8 3.45 2 2.31 4 5.14 4 8.53 0 3.1-2 5.9-4 8.2s-5 3.4-8 3.4c-3.6 0-6.4-1.1-8.7-3.4s-3.4-5.1-3.4-8.2zm65.1 23.2h15v16.9h-15v29.7c0 3.1 1 5.2 2 6.4 2 1.2 4 1.8 7 1.8 1 0 2 0 3-0.1s2-0.3 3-0.5v15.6c-1 1-3 1-4 1-2 1-4 1-7 1-7 0-13-2-17-6-4-3.6-6-9-6-15.9v-33h-12v-16.9h3c4 0 7-1.1 8-3.3 2-2.1 3-4.8 3-8v-9.9h17v21.2zm30 70.8v-70.8h18v8.6c1-1.7 2-3.3 4-4.6 1-1.4 3-2.5 5-3.3 2-0.9 4-1.6 6-2 2-0.5 4-0.8 6-0.8 5 0 9 1 13 3.1 3 2 6 4.9 8 8.7 3-4.3 6-7.3 10-9.1s8-2.7 12-2.7 7 0.5 10 1.5c3 1.1 6 2.7 8 4.9 3 2.2 4 5 6 8.4 1 3.4 2 7.5 2 12.2v45.9h-19v-42c0-3.9 0-7.1-2-9.6-2-2.6-6-3.8-10-3.8s-7 1.3-10 4.1c-2 2.7-3 6-3 9.8v41.5h-19v-42c0-3.9-1-7.1-3-9.6-2-2.6-5-3.8-10-3.8-4 0-7 1.3-9 4-3 2.7-4 6-4 9.9v41.5h-19zm159-15.3c3 0 5-0.4 7-1.3 2-0.8 4-2.1 6-3.8 1-1.7 3-3.7 4-6.2s1-5.5 1-8.8c0-3.4 0-6.3-1-8.8s-3-4.6-4-6.3c-2-1.7-4-2.9-6-3.8s-4-1.3-7-1.3c-2 0-4 0.4-6 1.3-3 0.9-5 2.1-6 3.8-2 1.7-3 3.8-4 6.3s-2 5.4-2 8.8c0 3.3 1 6.3 2 8.8s2 4.5 4 6.2c1 1.7 3 3 6 3.8 2 0.9 4 1.3 6 1.3zm0-57.7c6 0 11 0.9 15 2.8 5 1.9 9 4.5 12 7.8s6 7.2 8 11.9c2 4.6 2 9.6 2 15.1 0 5.4 0 10.5-2 15-2 4.6-5 8.5-8 11.9-3 3.5-7 5.5-12 7.5-4 2-9 3-15 3-5 0-10-1-14-3-5-2-9-4-12-7.5-4-3.4-6-7.3-8-11.9-2-4.5-3-9.6-3-15 0-5.5 1-10.5 3-15.1 2-4.7 4-8.6 8-11.9 3-3.3 7-5.9 12-7.8 4-1.9 9-2.8 14-2.8zm53 2.2h19v76.8c0 4-1 7-2 10-1 2-2 5-4 7s-4 4-7 5-6 2-9 2-6-1-8-1c-2-1-3-1-3-1v-16h2c1 1 2 1 4 1 3 0 5-1 6-3 1-1 2-3 2-6v-74.8zm-3-23.4c0-3.34 1-6.17 4-8.47 2-2.31 5-3.46 8-3.46 3 0.002 6 1.15 9 3.46 2 2.3 3 5.13 3 8.47 0 3.3-1 6-3 8.3-3 2.3-6 3.4-9 3.4s-6-1.1-8-3.4c-3-2.3-4-5-4-8.3zm42 94.2v-70.8h19v70.8h-19zm-2-94c0-3.39 1-6.22 3-8.53 3-2.3 5-3.45 9-3.45 3 0 6 1.15 8 3.45 2 2.31 4 5.14 4 8.53 0 3.1-2 5.9-4 8.2s-5 3.4-8 3.4c-4 0-6-1.1-9-3.4-2-2.3-3-5.1-3-8.2z"
|
||||||
|
fill="#000"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
<h2>
|
||||||
|
An emoji guide for your commit messages
|
||||||
|
</h2>
|
||||||
|
<div
|
||||||
|
className="header-buttons"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
className="btn btn-pink"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
className="icon icon-star"
|
||||||
|
>
|
||||||
|
<use
|
||||||
|
xlinkHref="#icon-star"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
GitHub
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
className="btn btn-pink"
|
||||||
|
target="_blank"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
className="icon icon-twitter"
|
||||||
|
>
|
||||||
|
<use
|
||||||
|
xlinkHref="#icon-twitter"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
Tweet
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</header>,
|
||||||
|
<main
|
||||||
|
className="wrap"
|
||||||
|
>
|
||||||
|
<p>
|
||||||
|
Some children
|
||||||
|
</p>
|
||||||
|
</main>,
|
||||||
|
<footer
|
||||||
|
className="footer"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="wrap"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="row middle-xs"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="col-sm-6 made-with-love"
|
||||||
|
>
|
||||||
|
<h3>
|
||||||
|
Made with
|
||||||
|
<svg
|
||||||
|
className="icon icon-heart"
|
||||||
|
>
|
||||||
|
<use
|
||||||
|
xlinkHref="#icon-heart"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
by
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://carloscuesta.me"
|
||||||
|
>
|
||||||
|
Carlos Cuesta
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="col-sm-6 footer-nav"
|
||||||
|
>
|
||||||
|
<nav>
|
||||||
|
<a
|
||||||
|
href="/about"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
About
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="/contributors"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
Contributors
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://github.com/carloscuesta/gitmoji"
|
||||||
|
>
|
||||||
|
GitHub
|
||||||
|
</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>,
|
||||||
|
]
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Layout should render the component without social buttons 1`] = `
|
||||||
|
Array [
|
||||||
|
<svg
|
||||||
|
height={0}
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"height": 0,
|
||||||
|
"position": "absolute",
|
||||||
|
"width": 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
version="1.1"
|
||||||
|
width={0}
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
||||||
|
>
|
||||||
|
<defs>
|
||||||
|
<symbol
|
||||||
|
id="icon-heart"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
heart
|
||||||
|
</title>
|
||||||
|
<path
|
||||||
|
className="heart"
|
||||||
|
d="m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8"
|
||||||
|
fill="#ff5a79"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="icon-star"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
star
|
||||||
|
</title>
|
||||||
|
<path
|
||||||
|
className="twitter"
|
||||||
|
d="M62,25.2H39.1L32,3l-7.1,22.2H2l18.5,13.7l-7,22.1L32,47.3L50.5,61l-7.1-22.2L62,25.2z"
|
||||||
|
fill="#FFDD67"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
<symbol
|
||||||
|
id="icon-twitter"
|
||||||
|
viewBox="0 0 64 64"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
twitter
|
||||||
|
</title>
|
||||||
|
<g
|
||||||
|
fill="#42ade2"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m59.8 24.3c0 0 1.1-6.2-3.5-3.4 0 0-.4-6.3-4.3-1.9 0 0-2.1-3.9-4.4-.3-3.1 4.8-5.2 12.4-3.2 25l3.8-2.5c2.7-7.9 12.4-8.8 13.7-13.1.9-3-2.1-3.8-2.1-3.8"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m22.1 17.6l-9.9 3.6c2.2-12 16.6-11.2 16.6-11.2s-6.8 3.2-6.7 7.6"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m23.7 19.8l-10.5 1.4c4.8-11.2 18.7-7.3 18.7-7.3s-7.3 1.6-8.2 5.9"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
fill="#ffd93b"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m2 29l5.4-1.4v3.6c0-.1-3.3-.6-5.4-2.2"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M7.4,27.5L2,24.8c3.6-2.8,7.7-1.9,7.7-1.9L7.4,27.5z"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
fill="#e08828"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m33.8 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m25 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m54 36.2c3.9 0-4.1 17.5-23.3 17.5-13 0-23.9-5.2-23.9-21.5 0-10.1 6.4-18.3 19.5-15 13.3 3.5 6.5 19 27.7 19"
|
||||||
|
fill="#42ade2"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m37.6 51.7c-15.6 0-14-12-27.9-11.2 5.1 15.8 27.9 11.2 27.9 11.2"
|
||||||
|
fill="#fff"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="m39.1 29.2c-10-9.8-20.2 6.2-7.9 12.6 12.1 6.2 20.4-4.8 20.4-4.8s-6.1-1.5-12.5-7.8"
|
||||||
|
fill="#297b9d"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<circle
|
||||||
|
cx="15.1"
|
||||||
|
cy="24.9"
|
||||||
|
fill="#3e4347"
|
||||||
|
r="2.5"
|
||||||
|
/>
|
||||||
|
</symbol>
|
||||||
|
</defs>
|
||||||
|
</svg>,
|
||||||
|
<nav
|
||||||
|
className="nav row middle-xs"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
className="c-hamburger__input"
|
||||||
|
id="hamburger-menu"
|
||||||
|
type="checkbox"
|
||||||
|
/>
|
||||||
|
<label
|
||||||
|
className="c-hamburger c-hamburger--htx"
|
||||||
|
htmlFor="hamburger-menu"
|
||||||
|
>
|
||||||
|
<span />
|
||||||
|
</label>
|
||||||
|
<div
|
||||||
|
className="modal"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="modal-content"
|
||||||
|
>
|
||||||
|
<ul
|
||||||
|
className="navigation"
|
||||||
|
>
|
||||||
|
<li
|
||||||
|
className="item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/about"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
About
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="/contributors"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
Contributors
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="https://github.com/carloscuesta/gitmoji"
|
||||||
|
onMouseDown={[Function]}
|
||||||
|
>
|
||||||
|
GitHub
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>,
|
||||||
|
<header
|
||||||
|
className="header"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
className="gitmoji-logo"
|
||||||
|
height="137px"
|
||||||
|
version="1.1"
|
||||||
|
viewBox="0 0 457 137"
|
||||||
|
width="457px"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
||||||
|
>
|
||||||
|
<title>
|
||||||
|
gitmoji
|
||||||
|
</title>
|
||||||
|
<g
|
||||||
|
fill="none"
|
||||||
|
fillRule="evenodd"
|
||||||
|
id="gitmoji"
|
||||||
|
>
|
||||||
|
<g
|
||||||
|
id="Logo"
|
||||||
|
transform="translate(-270 -430)"
|
||||||
|
>
|
||||||
|
<g
|
||||||
|
id="gitmoji"
|
||||||
|
transform="translate(270 430)"
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="m17.5 106c0.6 4 2.4 7 5.3 10 2.9 2 6.6 4 11.2 4 6.1 0 10.7-2 14-5s4.9-8 4.9-15.1v-5.1c-1.5 2.3-3.8 4.4-7.1 6.2-3.2 2-7.5 3-12.6 3-4.7 0-9.1-1-13.1-3-4.1-1.5-7.6-3.9-10.5-7-2.91-3-5.22-6.7-6.9-10.8-1.68-4.2-2.52-8.8-2.52-13.8 0.004-4.7 0.82-9.1 2.45-13.3s3.89-7.9 6.77-11c2.9-3.2 6.3-5.7 10.4-7.5 4-1.8 8.5-2.7 13.4-2.7 5.6 0 10.1 1 13.4 3 3.2 2 5.5 4.2 6.7 6.6v-8.3h18.5v63.2c0 4.6-0.7 9.6-2.1 13.6-1.4 5-3.6 9-6.6 12-3 4-6.8 6-11.5 8s-10.4 4-17 4c-4.9 0-9.3-1-13.3-3-4-1-7.5-3-10.5-5-2.94-3-5.34-5-7.16-8-1.82-4-2.98-7-3.46-10l17.3-5zm19-18.6c4.9 0 8.9-1.6 12-4.9 3.1-3.2 4.7-7.6 4.7-13.1s-1.7-9.8-4.9-13c-3.3-3.2-7.2-4.8-11.8-4.8-2.4 0-4.7 0.4-6.7 1.2-2.1 0.8-3.9 2-5.4 3.6-1.6 1.6-2.8 3.5-3.6 5.7-0.9 2.2-1.3 4.6-1.3 7.3 0 5.6 1.6 10 4.7 13.2 3.2 3.2 7.3 4.8 12.3 4.8zm54.7 19.6v-70.8h18.8v70.8h-18.8zm-2.3-94c0-3.39 1.1-6.22 3.4-8.53 2.3-2.3 5.1-3.45 8.7-3.45 3 0 6 1.15 8 3.45 2 2.31 4 5.14 4 8.53 0 3.1-2 5.9-4 8.2s-5 3.4-8 3.4c-3.6 0-6.4-1.1-8.7-3.4s-3.4-5.1-3.4-8.2zm65.1 23.2h15v16.9h-15v29.7c0 3.1 1 5.2 2 6.4 2 1.2 4 1.8 7 1.8 1 0 2 0 3-0.1s2-0.3 3-0.5v15.6c-1 1-3 1-4 1-2 1-4 1-7 1-7 0-13-2-17-6-4-3.6-6-9-6-15.9v-33h-12v-16.9h3c4 0 7-1.1 8-3.3 2-2.1 3-4.8 3-8v-9.9h17v21.2zm30 70.8v-70.8h18v8.6c1-1.7 2-3.3 4-4.6 1-1.4 3-2.5 5-3.3 2-0.9 4-1.6 6-2 2-0.5 4-0.8 6-0.8 5 0 9 1 13 3.1 3 2 6 4.9 8 8.7 3-4.3 6-7.3 10-9.1s8-2.7 12-2.7 7 0.5 10 1.5c3 1.1 6 2.7 8 4.9 3 2.2 4 5 6 8.4 1 3.4 2 7.5 2 12.2v45.9h-19v-42c0-3.9 0-7.1-2-9.6-2-2.6-6-3.8-10-3.8s-7 1.3-10 4.1c-2 2.7-3 6-3 9.8v41.5h-19v-42c0-3.9-1-7.1-3-9.6-2-2.6-5-3.8-10-3.8-4 0-7 1.3-9 4-3 2.7-4 6-4 9.9v41.5h-19zm159-15.3c3 0 5-0.4 7-1.3 2-0.8 4-2.1 6-3.8 1-1.7 3-3.7 4-6.2s1-5.5 1-8.8c0-3.4 0-6.3-1-8.8s-3-4.6-4-6.3c-2-1.7-4-2.9-6-3.8s-4-1.3-7-1.3c-2 0-4 0.4-6 1.3-3 0.9-5 2.1-6 3.8-2 1.7-3 3.8-4 6.3s-2 5.4-2 8.8c0 3.3 1 6.3 2 8.8s2 4.5 4 6.2c1 1.7 3 3 6 3.8 2 0.9 4 1.3 6 1.3zm0-57.7c6 0 11 0.9 15 2.8 5 1.9 9 4.5 12 7.8s6 7.2 8 11.9c2 4.6 2 9.6 2 15.1 0 5.4 0 10.5-2 15-2 4.6-5 8.5-8 11.9-3 3.5-7 5.5-12 7.5-4 2-9 3-15 3-5 0-10-1-14-3-5-2-9-4-12-7.5-4-3.4-6-7.3-8-11.9-2-4.5-3-9.6-3-15 0-5.5 1-10.5 3-15.1 2-4.7 4-8.6 8-11.9 3-3.3 7-5.9 12-7.8 4-1.9 9-2.8 14-2.8zm53 2.2h19v76.8c0 4-1 7-2 10-1 2-2 5-4 7s-4 4-7 5-6 2-9 2-6-1-8-1c-2-1-3-1-3-1v-16h2c1 1 2 1 4 1 3 0 5-1 6-3 1-1 2-3 2-6v-74.8zm-3-23.4c0-3.34 1-6.17 4-8.47 2-2.31 5-3.46 8-3.46 3 0.002 6 1.15 9 3.46 2 2.3 3 5.13 3 8.47 0 3.3-1 6-3 8.3-3 2.3-6 3.4-9 3.4s-6-1.1-8-3.4c-3-2.3-4-5-4-8.3zm42 94.2v-70.8h19v70.8h-19zm-2-94c0-3.39 1-6.22 3-8.53 3-2.3 5-3.45 9-3.45 3 0 6 1.15 8 3.45 2 2.31 4 5.14 4 8.53 0 3.1-2 5.9-4 8.2s-5 3.4-8 3.4c-4 0-6-1.1-9-3.4-2-2.3-3-5.1-3-8.2z"
|
||||||
|
fill="#000"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
<h2>
|
||||||
|
An emoji guide for your commit messages
|
||||||
|
</h2>
|
||||||
|
</header>,
|
||||||
|
<main
|
||||||
|
className="wrap"
|
||||||
|
>
|
||||||
|
<p>
|
||||||
|
Some children
|
||||||
|
</p>
|
||||||
|
</main>,
|
||||||
|
<footer
|
||||||
|
className="footer"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="wrap"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="row middle-xs"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="col-sm-6 made-with-love"
|
||||||
|
>
|
||||||
|
<h3>
|
||||||
|
Made with
|
||||||
|
<svg
|
||||||
|
className="icon icon-heart"
|
||||||
|
>
|
||||||
|
<use
|
||||||
|
xlinkHref="#icon-heart"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
by
|
||||||
|
|
||||||
|
<a
|
||||||
|
href="https://carloscuesta.me"
|
||||||
|
>
|
||||||
|
Carlos Cuesta
|
||||||
|
</a>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="col-sm-6 footer-nav"
|
||||||
|
>
|
||||||
|
<nav>
|
||||||
|
<a
|
||||||
|
href="/about"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
About
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="/contributors"
|
||||||
|
onClick={[Function]}
|
||||||
|
onMouseEnter={[Function]}
|
||||||
|
>
|
||||||
|
Contributors
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://github.com/carloscuesta/gitmoji"
|
||||||
|
>
|
||||||
|
GitHub
|
||||||
|
</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>,
|
||||||
|
]
|
||||||
|
`;
|
||||||
42
src/components/Layout/__tests__/layout.spec.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import renderer from 'react-test-renderer'
|
||||||
|
|
||||||
|
import Layout from '../index'
|
||||||
|
import { getIconByStatus } from '../Logo'
|
||||||
|
import LOGO_STATUSES from '../Logo/statuses'
|
||||||
|
import * as stubs from './stubs'
|
||||||
|
|
||||||
|
describe('Layout', () => {
|
||||||
|
beforeAll(() => {
|
||||||
|
Math.random = jest.fn().mockReturnValue(1)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should render the component with social buttons', () => {
|
||||||
|
const wrapper = renderer.create(
|
||||||
|
<Layout {...stubs.props}>
|
||||||
|
<p>Some children</p>
|
||||||
|
</Layout>
|
||||||
|
)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should render the component without social buttons', () => {
|
||||||
|
const wrapper = renderer.create(
|
||||||
|
<Layout>
|
||||||
|
<p>Some children</p>
|
||||||
|
</Layout>
|
||||||
|
)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('Logo', () => {
|
||||||
|
describe('getIconByStatus', () => {
|
||||||
|
const statuses = Object.values(LOGO_STATUSES).map((status) => status)
|
||||||
|
|
||||||
|
statuses.forEach((status) => {
|
||||||
|
it('should render component for status ' + status, () => {
|
||||||
|
expect(getIconByStatus(status)).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
3
src/components/Layout/__tests__/stubs.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export const props = {
|
||||||
|
headerWithSocialButtons: true
|
||||||
|
}
|
||||||
21
src/components/Layout/index.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
// @flow
|
||||||
|
import * as React from 'react'
|
||||||
|
|
||||||
|
import { IconDefinitions } from '../Icon'
|
||||||
|
import Header from './Header'
|
||||||
|
import Navigation from './Navigation'
|
||||||
|
import Footer from './Footer'
|
||||||
|
|
||||||
|
type Props = { headerWithSocialButtons: boolean, children: React.Node }
|
||||||
|
|
||||||
|
const Layout = (props: Props) => (
|
||||||
|
<>
|
||||||
|
<IconDefinitions />
|
||||||
|
<Navigation />
|
||||||
|
<Header withHeadline withSocialButtons={props.headerWithSocialButtons} />
|
||||||
|
<main className="wrap">{props.children}</main>
|
||||||
|
<Footer />
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Layout
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`Button should render the component 1`] = `null`;
|
||||||
|
|
||||||
|
exports[`Button should render the component with pageTitle and pageUrl 1`] = `null`;
|
||||||
16
src/components/SEO/__tests__/seo.spec.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import renderer from 'react-test-renderer'
|
||||||
|
|
||||||
|
import SEO from '../index'
|
||||||
|
import * as stubs from './stubs'
|
||||||
|
|
||||||
|
describe('Button', () => {
|
||||||
|
it('should render the component with pageTitle and pageUrl', () => {
|
||||||
|
const wrapper = renderer.create(<SEO {...stubs.props} />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should render the component', () => {
|
||||||
|
const wrapper = renderer.create(<SEO />)
|
||||||
|
expect(wrapper).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
})
|
||||||
4
src/components/SEO/__tests__/stubs.js
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export const props = {
|
||||||
|
pageUrl: '/about',
|
||||||
|
pageTitle: 'About'
|
||||||
|
}
|
||||||
127
src/components/SEO/index.js
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
import Head from 'next/head'
|
||||||
|
|
||||||
|
type Props = { pageTitle?: string, pageUrl: string }
|
||||||
|
|
||||||
|
const SEO = (props: Props) => (
|
||||||
|
<Head>
|
||||||
|
<title>
|
||||||
|
{`gitmoji ${
|
||||||
|
props.pageTitle ? '| ' + props.pageTitle + ' |' : '|'
|
||||||
|
} An emoji guide for your commit messages`}
|
||||||
|
</title>
|
||||||
|
<link
|
||||||
|
rel="canonical"
|
||||||
|
href={`https://gitmoji.carloscuesta.me${props.pageUrl}`}
|
||||||
|
/>
|
||||||
|
<meta name="author" content="Carlos Cuesta" />
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="Gitmoji is an emoji guide for your commit messages. Aims to be a standarization cheatshee /t for using emojis on GitHub's commit messages."
|
||||||
|
/>
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta name="twitter:card" content="summary" />
|
||||||
|
<meta name="twitter:title" content="gitmoji" />
|
||||||
|
<meta
|
||||||
|
name="twitter:description"
|
||||||
|
content="An emoji guide for your commit messages."
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
name="twitter:image"
|
||||||
|
content="https://gitmoji.carloscuesta.me/static/gitmoji.gif"
|
||||||
|
/>
|
||||||
|
<meta name="twitter:creator" content="@crloscuesta" />
|
||||||
|
<meta name="twitter:url" content="https://gitmoji.carloscuesta.me" />
|
||||||
|
<meta property="og:title" content="gitmoji" />
|
||||||
|
<meta
|
||||||
|
name="og:description"
|
||||||
|
content="An emoji guide for your commit messages."
|
||||||
|
/>
|
||||||
|
<meta
|
||||||
|
property="og:image"
|
||||||
|
content="https://gitmoji.carloscuesta.me/static/gitmoji.gif"
|
||||||
|
/>
|
||||||
|
<meta name="og:url" content="https://gitmoji.carloscuesta.me" />
|
||||||
|
<meta name="robots" content="index, follow" />
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="57x57"
|
||||||
|
href="/static/apple-icon-57x57.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="60x60"
|
||||||
|
href="/static/apple-icon-60x60.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="72x72"
|
||||||
|
href="/static/apple-icon-72x72.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="76x76"
|
||||||
|
href="/static/apple-icon-76x76.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="114x114"
|
||||||
|
href="/static/apple-icon-114x114.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="120x120"
|
||||||
|
href="/static/apple-icon-120x120.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="144x144"
|
||||||
|
href="/static/apple-icon-144x144.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="152x152"
|
||||||
|
href="/static/apple-icon-152x152.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="apple-touch-icon"
|
||||||
|
sizes="180x180"
|
||||||
|
href="/static/apple-icon-180x180.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/png"
|
||||||
|
sizes="192x192"
|
||||||
|
href="/static/android-icon-192x192.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/png"
|
||||||
|
sizes="32x32"
|
||||||
|
href="/static/favicon-32x32.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/png"
|
||||||
|
sizes="96x96"
|
||||||
|
href="/static/favicon-96x96.png"
|
||||||
|
/>
|
||||||
|
<link
|
||||||
|
rel="icon"
|
||||||
|
type="image/png"
|
||||||
|
sizes="16x16"
|
||||||
|
href="/static/favicon-16x16.png"
|
||||||
|
/>
|
||||||
|
<link rel="manifest" href="/static/manifest.json" />
|
||||||
|
<meta name="msapplication-TileColor" content="#FFDD67" />
|
||||||
|
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png" />
|
||||||
|
<meta name="theme-color" content="#FFDD67" />
|
||||||
|
<meta
|
||||||
|
name="google-site-verification"
|
||||||
|
content="78vmlhi_erc-UGybxcGwHyiUtf04wzYExTLa-4LoWio"
|
||||||
|
/>
|
||||||
|
</Head>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default SEO
|
||||||
@ -1,542 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"login": "carloscuesta",
|
|
||||||
"id": 7629661,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/7629661?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/carloscuesta",
|
|
||||||
"html_url": "https://github.com/carloscuesta",
|
|
||||||
"followers_url": "https://api.github.com/users/carloscuesta/followers",
|
|
||||||
"following_url": "https://api.github.com/users/carloscuesta/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/carloscuesta/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/carloscuesta/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/carloscuesta/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/carloscuesta/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/carloscuesta/repos",
|
|
||||||
"events_url": "https://api.github.com/users/carloscuesta/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/carloscuesta/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 119
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "virzen",
|
|
||||||
"id": 13262428,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/13262428?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/virzen",
|
|
||||||
"html_url": "https://github.com/virzen",
|
|
||||||
"followers_url": "https://api.github.com/users/virzen/followers",
|
|
||||||
"following_url": "https://api.github.com/users/virzen/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/virzen/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/virzen/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/virzen/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/virzen/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/virzen/repos",
|
|
||||||
"events_url": "https://api.github.com/users/virzen/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/virzen/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "Spidersouris",
|
|
||||||
"id": 7102007,
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/7102007?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/Spidersouris",
|
|
||||||
"html_url": "https://github.com/Spidersouris",
|
|
||||||
"followers_url": "https://api.github.com/users/Spidersouris/followers",
|
|
||||||
"following_url": "https://api.github.com/users/Spidersouris/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/Spidersouris/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/Spidersouris/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/Spidersouris/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/Spidersouris/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/Spidersouris/repos",
|
|
||||||
"events_url": "https://api.github.com/users/Spidersouris/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/Spidersouris/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "duivvv",
|
|
||||||
"id": 89046,
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/89046?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/duivvv",
|
|
||||||
"html_url": "https://github.com/duivvv",
|
|
||||||
"followers_url": "https://api.github.com/users/duivvv/followers",
|
|
||||||
"following_url": "https://api.github.com/users/duivvv/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/duivvv/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/duivvv/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/duivvv/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/duivvv/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/duivvv/repos",
|
|
||||||
"events_url": "https://api.github.com/users/duivvv/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/duivvv/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "dasMulli",
|
|
||||||
"id": 6129250,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/6129250?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/dasMulli",
|
|
||||||
"html_url": "https://github.com/dasMulli",
|
|
||||||
"followers_url": "https://api.github.com/users/dasMulli/followers",
|
|
||||||
"following_url": "https://api.github.com/users/dasMulli/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/dasMulli/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/dasMulli/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/dasMulli/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/dasMulli/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/dasMulli/repos",
|
|
||||||
"events_url": "https://api.github.com/users/dasMulli/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/dasMulli/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "welcoMattic",
|
|
||||||
"id": 773875,
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/773875?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/welcoMattic",
|
|
||||||
"html_url": "https://github.com/welcoMattic",
|
|
||||||
"followers_url": "https://api.github.com/users/welcoMattic/followers",
|
|
||||||
"following_url": "https://api.github.com/users/welcoMattic/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/welcoMattic/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/welcoMattic/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/welcoMattic/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/welcoMattic/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/welcoMattic/repos",
|
|
||||||
"events_url": "https://api.github.com/users/welcoMattic/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/welcoMattic/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "viktorstrate",
|
|
||||||
"id": 4233458,
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/4233458?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/viktorstrate",
|
|
||||||
"html_url": "https://github.com/viktorstrate",
|
|
||||||
"followers_url": "https://api.github.com/users/viktorstrate/followers",
|
|
||||||
"following_url": "https://api.github.com/users/viktorstrate/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/viktorstrate/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/viktorstrate/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/viktorstrate/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/viktorstrate/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/viktorstrate/repos",
|
|
||||||
"events_url": "https://api.github.com/users/viktorstrate/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/viktorstrate/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 2
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "agea",
|
|
||||||
"id": 508115,
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/508115?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/agea",
|
|
||||||
"html_url": "https://github.com/agea",
|
|
||||||
"followers_url": "https://api.github.com/users/agea/followers",
|
|
||||||
"following_url": "https://api.github.com/users/agea/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/agea/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/agea/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/agea/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/agea/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/agea/repos",
|
|
||||||
"events_url": "https://api.github.com/users/agea/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/agea/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "danieldafoe",
|
|
||||||
"id": 6425338,
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/6425338?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/danieldafoe",
|
|
||||||
"html_url": "https://github.com/danieldafoe",
|
|
||||||
"followers_url": "https://api.github.com/users/danieldafoe/followers",
|
|
||||||
"following_url": "https://api.github.com/users/danieldafoe/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/danieldafoe/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/danieldafoe/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/danieldafoe/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/danieldafoe/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/danieldafoe/repos",
|
|
||||||
"events_url": "https://api.github.com/users/danieldafoe/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/danieldafoe/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "gglnx",
|
|
||||||
"id": 23519,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/23519?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/gglnx",
|
|
||||||
"html_url": "https://github.com/gglnx",
|
|
||||||
"followers_url": "https://api.github.com/users/gglnx/followers",
|
|
||||||
"following_url": "https://api.github.com/users/gglnx/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/gglnx/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/gglnx/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/gglnx/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/gglnx/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/gglnx/repos",
|
|
||||||
"events_url": "https://api.github.com/users/gglnx/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/gglnx/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "Deraw-",
|
|
||||||
"id": 10298932,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/10298932?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/Deraw-",
|
|
||||||
"html_url": "https://github.com/Deraw-",
|
|
||||||
"followers_url": "https://api.github.com/users/Deraw-/followers",
|
|
||||||
"following_url": "https://api.github.com/users/Deraw-/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/Deraw-/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/Deraw-/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/Deraw-/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/Deraw-/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/Deraw-/repos",
|
|
||||||
"events_url": "https://api.github.com/users/Deraw-/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/Deraw-/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "epilande",
|
|
||||||
"id": 3210082,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/3210082?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/epilande",
|
|
||||||
"html_url": "https://github.com/epilande",
|
|
||||||
"followers_url": "https://api.github.com/users/epilande/followers",
|
|
||||||
"following_url": "https://api.github.com/users/epilande/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/epilande/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/epilande/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/epilande/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/epilande/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/epilande/repos",
|
|
||||||
"events_url": "https://api.github.com/users/epilande/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/epilande/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "evrowe",
|
|
||||||
"id": 235133,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/235133?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/evrowe",
|
|
||||||
"html_url": "https://github.com/evrowe",
|
|
||||||
"followers_url": "https://api.github.com/users/evrowe/followers",
|
|
||||||
"following_url": "https://api.github.com/users/evrowe/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/evrowe/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/evrowe/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/evrowe/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/evrowe/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/evrowe/repos",
|
|
||||||
"events_url": "https://api.github.com/users/evrowe/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/evrowe/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "fabienjuif",
|
|
||||||
"id": 17828231,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/17828231?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/fabienjuif",
|
|
||||||
"html_url": "https://github.com/fabienjuif",
|
|
||||||
"followers_url": "https://api.github.com/users/fabienjuif/followers",
|
|
||||||
"following_url": "https://api.github.com/users/fabienjuif/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/fabienjuif/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/fabienjuif/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/fabienjuif/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/fabienjuif/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/fabienjuif/repos",
|
|
||||||
"events_url": "https://api.github.com/users/fabienjuif/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/fabienjuif/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "frankkienl",
|
|
||||||
"id": 1552295,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1552295?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/frankkienl",
|
|
||||||
"html_url": "https://github.com/frankkienl",
|
|
||||||
"followers_url": "https://api.github.com/users/frankkienl/followers",
|
|
||||||
"following_url": "https://api.github.com/users/frankkienl/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/frankkienl/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/frankkienl/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/frankkienl/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/frankkienl/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/frankkienl/repos",
|
|
||||||
"events_url": "https://api.github.com/users/frankkienl/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/frankkienl/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "jmona789",
|
|
||||||
"id": 13789757,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/13789757?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/jmona789",
|
|
||||||
"html_url": "https://github.com/jmona789",
|
|
||||||
"followers_url": "https://api.github.com/users/jmona789/followers",
|
|
||||||
"following_url": "https://api.github.com/users/jmona789/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/jmona789/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/jmona789/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/jmona789/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/jmona789/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/jmona789/repos",
|
|
||||||
"events_url": "https://api.github.com/users/jmona789/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/jmona789/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "jlandure",
|
|
||||||
"id": 525974,
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/525974?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/jlandure",
|
|
||||||
"html_url": "https://github.com/jlandure",
|
|
||||||
"followers_url": "https://api.github.com/users/jlandure/followers",
|
|
||||||
"following_url": "https://api.github.com/users/jlandure/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/jlandure/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/jlandure/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/jlandure/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/jlandure/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/jlandure/repos",
|
|
||||||
"events_url": "https://api.github.com/users/jlandure/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/jlandure/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "marcobiedermann",
|
|
||||||
"id": 5244986,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/5244986?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/marcobiedermann",
|
|
||||||
"html_url": "https://github.com/marcobiedermann",
|
|
||||||
"followers_url": "https://api.github.com/users/marcobiedermann/followers",
|
|
||||||
"following_url": "https://api.github.com/users/marcobiedermann/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/marcobiedermann/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/marcobiedermann/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/marcobiedermann/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/marcobiedermann/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/marcobiedermann/repos",
|
|
||||||
"events_url": "https://api.github.com/users/marcobiedermann/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/marcobiedermann/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "mraerino",
|
|
||||||
"id": 4941459,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/4941459?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/mraerino",
|
|
||||||
"html_url": "https://github.com/mraerino",
|
|
||||||
"followers_url": "https://api.github.com/users/mraerino/followers",
|
|
||||||
"following_url": "https://api.github.com/users/mraerino/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/mraerino/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/mraerino/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/mraerino/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/mraerino/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/mraerino/repos",
|
|
||||||
"events_url": "https://api.github.com/users/mraerino/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/mraerino/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "marthesselink",
|
|
||||||
"id": 21331676,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/21331676?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/marthesselink",
|
|
||||||
"html_url": "https://github.com/marthesselink",
|
|
||||||
"followers_url": "https://api.github.com/users/marthesselink/followers",
|
|
||||||
"following_url": "https://api.github.com/users/marthesselink/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/marthesselink/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/marthesselink/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/marthesselink/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/marthesselink/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/marthesselink/repos",
|
|
||||||
"events_url": "https://api.github.com/users/marthesselink/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/marthesselink/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "SergiSMJ",
|
|
||||||
"id": 13422636,
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/13422636?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/SergiSMJ",
|
|
||||||
"html_url": "https://github.com/SergiSMJ",
|
|
||||||
"followers_url": "https://api.github.com/users/SergiSMJ/followers",
|
|
||||||
"following_url": "https://api.github.com/users/SergiSMJ/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/SergiSMJ/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/SergiSMJ/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/SergiSMJ/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/SergiSMJ/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/SergiSMJ/repos",
|
|
||||||
"events_url": "https://api.github.com/users/SergiSMJ/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/SergiSMJ/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "sgraewe",
|
|
||||||
"id": 5310933,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/5310933?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/sgraewe",
|
|
||||||
"html_url": "https://github.com/sgraewe",
|
|
||||||
"followers_url": "https://api.github.com/users/sgraewe/followers",
|
|
||||||
"following_url": "https://api.github.com/users/sgraewe/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/sgraewe/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/sgraewe/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/sgraewe/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/sgraewe/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/sgraewe/repos",
|
|
||||||
"events_url": "https://api.github.com/users/sgraewe/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/sgraewe/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "tupton",
|
|
||||||
"id": 47334,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/47334?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/tupton",
|
|
||||||
"html_url": "https://github.com/tupton",
|
|
||||||
"followers_url": "https://api.github.com/users/tupton/followers",
|
|
||||||
"following_url": "https://api.github.com/users/tupton/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/tupton/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/tupton/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/tupton/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/tupton/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/tupton/repos",
|
|
||||||
"events_url": "https://api.github.com/users/tupton/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/tupton/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "tamedro",
|
|
||||||
"id": 1501012,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1501012?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/tamedro",
|
|
||||||
"html_url": "https://github.com/tamedro",
|
|
||||||
"followers_url": "https://api.github.com/users/tamedro/followers",
|
|
||||||
"following_url": "https://api.github.com/users/tamedro/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/tamedro/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/tamedro/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/tamedro/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/tamedro/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/tamedro/repos",
|
|
||||||
"events_url": "https://api.github.com/users/tamedro/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/tamedro/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "Taranys",
|
|
||||||
"id": 4621525,
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/4621525?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/Taranys",
|
|
||||||
"html_url": "https://github.com/Taranys",
|
|
||||||
"followers_url": "https://api.github.com/users/Taranys/followers",
|
|
||||||
"following_url": "https://api.github.com/users/Taranys/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/Taranys/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/Taranys/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/Taranys/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/Taranys/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/Taranys/repos",
|
|
||||||
"events_url": "https://api.github.com/users/Taranys/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/Taranys/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "caepenna",
|
|
||||||
"id": 2954723,
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/2954723?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/caepenna",
|
|
||||||
"html_url": "https://github.com/caepenna",
|
|
||||||
"followers_url": "https://api.github.com/users/caepenna/followers",
|
|
||||||
"following_url": "https://api.github.com/users/caepenna/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/caepenna/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/caepenna/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/caepenna/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/caepenna/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/caepenna/repos",
|
|
||||||
"events_url": "https://api.github.com/users/caepenna/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/caepenna/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "eawww",
|
|
||||||
"id": 9022825,
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/9022825?v=4",
|
|
||||||
"gravatar_id": "",
|
|
||||||
"url": "https://api.github.com/users/eawww",
|
|
||||||
"html_url": "https://github.com/eawww",
|
|
||||||
"followers_url": "https://api.github.com/users/eawww/followers",
|
|
||||||
"following_url": "https://api.github.com/users/eawww/following{/other_user}",
|
|
||||||
"gists_url": "https://api.github.com/users/eawww/gists{/gist_id}",
|
|
||||||
"starred_url": "https://api.github.com/users/eawww/starred{/owner}{/repo}",
|
|
||||||
"subscriptions_url": "https://api.github.com/users/eawww/subscriptions",
|
|
||||||
"organizations_url": "https://api.github.com/users/eawww/orgs",
|
|
||||||
"repos_url": "https://api.github.com/users/eawww/repos",
|
|
||||||
"events_url": "https://api.github.com/users/eawww/events{/privacy}",
|
|
||||||
"received_events_url": "https://api.github.com/users/eawww/received_events",
|
|
||||||
"type": "User",
|
|
||||||
"site_admin": false,
|
|
||||||
"contributions": 1
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@ -1,32 +1,32 @@
|
|||||||
{
|
{
|
||||||
"gitmojis":[
|
"gitmojis": [
|
||||||
{
|
{
|
||||||
"emoji":"🎨",
|
"emoji": "🎨",
|
||||||
"entity":"🎨",
|
"entity": "🎨",
|
||||||
"code":":art:",
|
"code": ":art:",
|
||||||
"description":"Improving structure / format of the code.",
|
"description": "Improving structure / format of the code.",
|
||||||
"name":"art"
|
"name": "art"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"⚡️",
|
"emoji": "⚡️",
|
||||||
"entity":"⚡",
|
"entity": "⚡",
|
||||||
"code":":zap:",
|
"code": ":zap:",
|
||||||
"description":"Improving performance.",
|
"description": "Improving performance.",
|
||||||
"name":"zap"
|
"name": "zap"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🔥",
|
"emoji": "🔥",
|
||||||
"entity":"🔥",
|
"entity": "🔥",
|
||||||
"code":":fire:",
|
"code": ":fire:",
|
||||||
"description":"Removing code or files.",
|
"description": "Removing code or files.",
|
||||||
"name":"fire"
|
"name": "fire"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🐛",
|
"emoji": "🐛",
|
||||||
"entity":"🐛",
|
"entity": "🐛",
|
||||||
"code":":bug:",
|
"code": ":bug:",
|
||||||
"description":"Fixing a bug.",
|
"description": "Fixing a bug.",
|
||||||
"name":"bug"
|
"name": "bug"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "🚑",
|
"emoji": "🚑",
|
||||||
@ -36,130 +36,130 @@
|
|||||||
"name": "ambulance"
|
"name": "ambulance"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"✨",
|
"emoji": "✨",
|
||||||
"entity":"✨",
|
"entity": "✨",
|
||||||
"code":":sparkles:",
|
"code": ":sparkles:",
|
||||||
"description":"Introducing new features.",
|
"description": "Introducing new features.",
|
||||||
"name":"sparkles"
|
"name": "sparkles"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"📝",
|
"emoji": "📝",
|
||||||
"entity":"📝",
|
"entity": "📝",
|
||||||
"code":":pencil:",
|
"code": ":pencil:",
|
||||||
"description":"Writing docs.",
|
"description": "Writing docs.",
|
||||||
"name":"pencil"
|
"name": "pencil"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🚀",
|
"emoji": "🚀",
|
||||||
"entity":"🚀",
|
"entity": "🚀",
|
||||||
"code":":rocket:",
|
"code": ":rocket:",
|
||||||
"description":"Deploying stuff.",
|
"description": "Deploying stuff.",
|
||||||
"name":"rocket"
|
"name": "rocket"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"💄",
|
"emoji": "💄",
|
||||||
"entity":"&#ff99cc;",
|
"entity": "&#ff99cc;",
|
||||||
"code":":lipstick:",
|
"code": ":lipstick:",
|
||||||
"description":"Updating the UI and style files.",
|
"description": "Updating the UI and style files.",
|
||||||
"name":"lipstick"
|
"name": "lipstick"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🎉",
|
"emoji": "🎉",
|
||||||
"entity":"🎉",
|
"entity": "🎉",
|
||||||
"code":":tada:",
|
"code": ":tada:",
|
||||||
"description":"Initial commit.",
|
"description": "Initial commit.",
|
||||||
"name":"tada"
|
"name": "tada"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"✅",
|
"emoji": "✅",
|
||||||
"entity":"✅",
|
"entity": "✅",
|
||||||
"code":":white_check_mark:",
|
"code": ":white_check_mark:",
|
||||||
"description":"Updating tests.",
|
"description": "Updating tests.",
|
||||||
"name":"white-check-mark"
|
"name": "white-check-mark"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🔒",
|
"emoji": "🔒",
|
||||||
"entity":"🔒",
|
"entity": "🔒",
|
||||||
"code":":lock:",
|
"code": ":lock:",
|
||||||
"description":"Fixing security issues.",
|
"description": "Fixing security issues.",
|
||||||
"name":"lock"
|
"name": "lock"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🍎",
|
"emoji": "🍎",
|
||||||
"entity":"🍎",
|
"entity": "🍎",
|
||||||
"code":":apple:",
|
"code": ":apple:",
|
||||||
"description":"Fixing something on macOS.",
|
"description": "Fixing something on macOS.",
|
||||||
"name":"apple"
|
"name": "apple"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🐧",
|
"emoji": "🐧",
|
||||||
"entity":"🐧",
|
"entity": "🐧",
|
||||||
"code":":penguin:",
|
"code": ":penguin:",
|
||||||
"description":"Fixing something on Linux.",
|
"description": "Fixing something on Linux.",
|
||||||
"name":"penguin"
|
"name": "penguin"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🏁",
|
"emoji": "🏁",
|
||||||
"entity":"🏁",
|
"entity": "🏁",
|
||||||
"code":":checkered_flag:",
|
"code": ":checkered_flag:",
|
||||||
"description":"Fixing something on Windows.",
|
"description": "Fixing something on Windows.",
|
||||||
"name":"checkered-flag"
|
"name": "checkered-flag"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🤖",
|
"emoji": "🤖",
|
||||||
"entity":"🤖",
|
"entity": "🤖",
|
||||||
"code":":robot:",
|
"code": ":robot:",
|
||||||
"description":"Fixing something on Android.",
|
"description": "Fixing something on Android.",
|
||||||
"name":"robot"
|
"name": "robot"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🍏",
|
"emoji": "🍏",
|
||||||
"entity":"🍏",
|
"entity": "🍏",
|
||||||
"code":":green_apple:",
|
"code": ":green_apple:",
|
||||||
"description":"Fixing something on iOS.",
|
"description": "Fixing something on iOS.",
|
||||||
"name":"green-apple"
|
"name": "green-apple"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🔖",
|
"emoji": "🔖",
|
||||||
"entity":"🔖",
|
"entity": "🔖",
|
||||||
"code":":bookmark:",
|
"code": ":bookmark:",
|
||||||
"description":"Releasing / Version tags.",
|
"description": "Releasing / Version tags.",
|
||||||
"name":"bookmark"
|
"name": "bookmark"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🚨",
|
"emoji": "🚨",
|
||||||
"entity":"🚨",
|
"entity": "🚨",
|
||||||
"code":":rotating_light:",
|
"code": ":rotating_light:",
|
||||||
"description":"Removing linter warnings.",
|
"description": "Removing linter warnings.",
|
||||||
"name":"rotating-light"
|
"name": "rotating-light"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🚧",
|
"emoji": "🚧",
|
||||||
"entity":"🚧",
|
"entity": "🚧",
|
||||||
"code":":construction:",
|
"code": ":construction:",
|
||||||
"description":"Work in progress.",
|
"description": "Work in progress.",
|
||||||
"name":"construction"
|
"name": "construction"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"💚",
|
"emoji": "💚",
|
||||||
"entity":"💚",
|
"entity": "💚",
|
||||||
"code":":green_heart:",
|
"code": ":green_heart:",
|
||||||
"description":"Fixing CI Build.",
|
"description": "Fixing CI Build.",
|
||||||
"name":"green-heart"
|
"name": "green-heart"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"⬇️",
|
"emoji": "⬇️",
|
||||||
"entity":"⬇️",
|
"entity": "⬇️",
|
||||||
"code":":arrow_down:",
|
"code": ":arrow_down:",
|
||||||
"description":"Downgrading dependencies.",
|
"description": "Downgrading dependencies.",
|
||||||
"name":"arrow-down"
|
"name": "arrow-down"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"⬆️",
|
"emoji": "⬆️",
|
||||||
"entity":"⬆️",
|
"entity": "⬆️",
|
||||||
"code":":arrow_up:",
|
"code": ":arrow_up:",
|
||||||
"description":"Upgrading dependencies.",
|
"description": "Upgrading dependencies.",
|
||||||
"name":"arrow-up"
|
"name": "arrow-up"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "📌",
|
"emoji": "📌",
|
||||||
@ -169,52 +169,52 @@
|
|||||||
"name": "pushpin"
|
"name": "pushpin"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"👷",
|
"emoji": "👷",
|
||||||
"entity":"👷",
|
"entity": "👷",
|
||||||
"code":":construction_worker:",
|
"code": ":construction_worker:",
|
||||||
"description":"Adding CI build system.",
|
"description": "Adding CI build system.",
|
||||||
"name":"construction-worker"
|
"name": "construction-worker"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"📈",
|
"emoji": "📈",
|
||||||
"code":":chart_with_upwards_trend:",
|
"code": ":chart_with_upwards_trend:",
|
||||||
"description":"Adding analytics or tracking code.",
|
"description": "Adding analytics or tracking code.",
|
||||||
"name":"chart-with-upwards-trend"
|
"name": "chart-with-upwards-trend"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"♻️",
|
"emoji": "♻️",
|
||||||
"entity":"♲",
|
"entity": "♲",
|
||||||
"code":":recycle:",
|
"code": ":recycle:",
|
||||||
"description":"Refactoring code.",
|
"description": "Refactoring code.",
|
||||||
"name":"recycle"
|
"name": "recycle"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🐳",
|
"emoji": "🐳",
|
||||||
"entity":"🐳",
|
"entity": "🐳",
|
||||||
"code":":whale:",
|
"code": ":whale:",
|
||||||
"description":"Work about Docker.",
|
"description": "Work about Docker.",
|
||||||
"name":"whale"
|
"name": "whale"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"➕",
|
"emoji": "➕",
|
||||||
"entity":"➕",
|
"entity": "➕",
|
||||||
"code":":heavy_plus_sign:",
|
"code": ":heavy_plus_sign:",
|
||||||
"description":"Adding a dependency.",
|
"description": "Adding a dependency.",
|
||||||
"name":"heavy-plus-sign"
|
"name": "heavy-plus-sign"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"➖",
|
"emoji": "➖",
|
||||||
"entity":"➖",
|
"entity": "➖",
|
||||||
"code":":heavy_minus_sign:",
|
"code": ":heavy_minus_sign:",
|
||||||
"description":"Removing a dependency.",
|
"description": "Removing a dependency.",
|
||||||
"name":"heavy-minus-sign"
|
"name": "heavy-minus-sign"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🔧",
|
"emoji": "🔧",
|
||||||
"entity":"🔧",
|
"entity": "🔧",
|
||||||
"code":":wrench:",
|
"code": ":wrench:",
|
||||||
"description":"Changing configuration files.",
|
"description": "Changing configuration files.",
|
||||||
"name":"wrench"
|
"name": "wrench"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "🌐",
|
"emoji": "🌐",
|
||||||
@ -224,130 +224,130 @@
|
|||||||
"name": "globe-with-meridians"
|
"name": "globe-with-meridians"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"✏️",
|
"emoji": "✏️",
|
||||||
"entity":"",
|
"entity": "",
|
||||||
"code":":pencil2:",
|
"code": ":pencil2:",
|
||||||
"description":"Fixing typos.",
|
"description": "Fixing typos.",
|
||||||
"name":"pencil"
|
"name": "pencil"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"💩",
|
"emoji": "💩",
|
||||||
"entity":"",
|
"entity": "",
|
||||||
"code":":poop:",
|
"code": ":poop:",
|
||||||
"description":"Writing bad code that needs to be improved.",
|
"description": "Writing bad code that needs to be improved.",
|
||||||
"name":"poop"
|
"name": "poop"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"⏪",
|
"emoji": "⏪",
|
||||||
"entity":"⏪",
|
"entity": "⏪",
|
||||||
"code":":rewind:",
|
"code": ":rewind:",
|
||||||
"description":"Reverting changes.",
|
"description": "Reverting changes.",
|
||||||
"name":"rewind"
|
"name": "rewind"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🔀",
|
"emoji": "🔀",
|
||||||
"entity":"🔀",
|
"entity": "🔀",
|
||||||
"code":":twisted_rightwards_arrows:",
|
"code": ":twisted_rightwards_arrows:",
|
||||||
"description":"Merging branches.",
|
"description": "Merging branches.",
|
||||||
"name":"twisted-rightwards-arrows"
|
"name": "twisted-rightwards-arrows"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"📦",
|
"emoji": "📦",
|
||||||
"entity":"F4E6;",
|
"entity": "F4E6;",
|
||||||
"code":":package:",
|
"code": ":package:",
|
||||||
"description":"Updating compiled files or packages.",
|
"description": "Updating compiled files or packages.",
|
||||||
"name":"package"
|
"name": "package"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"👽",
|
"emoji": "👽",
|
||||||
"entity":"F47D;",
|
"entity": "F47D;",
|
||||||
"code":":alien:",
|
"code": ":alien:",
|
||||||
"description":"Updating code due to external API changes.",
|
"description": "Updating code due to external API changes.",
|
||||||
"name":"alien"
|
"name": "alien"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🚚",
|
"emoji": "🚚",
|
||||||
"entity":"F69A;",
|
"entity": "F69A;",
|
||||||
"code":":truck:",
|
"code": ":truck:",
|
||||||
"description":"Moving or renaming files.",
|
"description": "Moving or renaming files.",
|
||||||
"name":"truck"
|
"name": "truck"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"📄",
|
"emoji": "📄",
|
||||||
"entity":"F4C4;",
|
"entity": "F4C4;",
|
||||||
"code":":page_facing_up:",
|
"code": ":page_facing_up:",
|
||||||
"description":"Adding or updating license.",
|
"description": "Adding or updating license.",
|
||||||
"name":"page-facing-up"
|
"name": "page-facing-up"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"💥",
|
"emoji": "💥",
|
||||||
"entity":"💥",
|
"entity": "💥",
|
||||||
"code":":boom:",
|
"code": ":boom:",
|
||||||
"description":"Introducing breaking changes.",
|
"description": "Introducing breaking changes.",
|
||||||
"name":"boom"
|
"name": "boom"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🍱",
|
"emoji": "🍱",
|
||||||
"entity":"F371",
|
"entity": "F371",
|
||||||
"code":":bento:",
|
"code": ":bento:",
|
||||||
"description":"Adding or updating assets.",
|
"description": "Adding or updating assets.",
|
||||||
"name":"bento"
|
"name": "bento"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"👌",
|
"emoji": "👌",
|
||||||
"entity":"👌",
|
"entity": "👌",
|
||||||
"code":":ok_hand:",
|
"code": ":ok_hand:",
|
||||||
"description":"Updating code due to code review changes.",
|
"description": "Updating code due to code review changes.",
|
||||||
"name":"ok-hand"
|
"name": "ok-hand"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "♿️",
|
"emoji": "♿️",
|
||||||
"entity":"♿",
|
"entity": "♿",
|
||||||
"code": ":wheelchair:",
|
"code": ":wheelchair:",
|
||||||
"description":"Improving accessibility.",
|
"description": "Improving accessibility.",
|
||||||
"name":"wheelchair"
|
"name": "wheelchair"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "💡",
|
"emoji": "💡",
|
||||||
"entity":"💡",
|
"entity": "💡",
|
||||||
"code": ":bulb:",
|
"code": ":bulb:",
|
||||||
"description":"Documenting source code.",
|
"description": "Documenting source code.",
|
||||||
"name":"bulb"
|
"name": "bulb"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "🍻",
|
"emoji": "🍻",
|
||||||
"entity":"🍻",
|
"entity": "🍻",
|
||||||
"code": ":beers:",
|
"code": ":beers:",
|
||||||
"description": "Writing code drunkenly.",
|
"description": "Writing code drunkenly.",
|
||||||
"name":"beers"
|
"name": "beers"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "💬",
|
"emoji": "💬",
|
||||||
"entity":"💬",
|
"entity": "💬",
|
||||||
"code": ":speech_balloon:",
|
"code": ":speech_balloon:",
|
||||||
"description": "Updating text and literals.",
|
"description": "Updating text and literals.",
|
||||||
"name":"speech-balloon"
|
"name": "speech-balloon"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "🗃",
|
"emoji": "🗃",
|
||||||
"entity":"🗃",
|
"entity": "🗃",
|
||||||
"code": ":card_file_box:",
|
"code": ":card_file_box:",
|
||||||
"description": "Performing database related changes.",
|
"description": "Performing database related changes.",
|
||||||
"name":"card-file-box"
|
"name": "card-file-box"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🔊",
|
"emoji": "🔊",
|
||||||
"entity":"🔊",
|
"entity": "🔊",
|
||||||
"code":":loud_sound:",
|
"code": ":loud_sound:",
|
||||||
"description":"Adding logs.",
|
"description": "Adding logs.",
|
||||||
"name":"loud-sound"
|
"name": "loud-sound"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"🔇",
|
"emoji": "🔇",
|
||||||
"entity":"🔇",
|
"entity": "🔇",
|
||||||
"code":":mute:",
|
"code": ":mute:",
|
||||||
"description":"Removing logs.",
|
"description": "Removing logs.",
|
||||||
"name":"mute"
|
"name": "mute"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "👥",
|
"emoji": "👥",
|
||||||
@ -372,14 +372,14 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "📱",
|
"emoji": "📱",
|
||||||
"entity": "📱" ,
|
"entity": "📱",
|
||||||
"code": ":iphone:",
|
"code": ":iphone:",
|
||||||
"description": "Working on responsive design.",
|
"description": "Working on responsive design.",
|
||||||
"name": "iphone"
|
"name": "iphone"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "🤡",
|
"emoji": "🤡",
|
||||||
"entity": "🤡" ,
|
"entity": "🤡",
|
||||||
"code": ":clown_face:",
|
"code": ":clown_face:",
|
||||||
"description": "Mocking things.",
|
"description": "Mocking things.",
|
||||||
"name": "clown-face"
|
"name": "clown-face"
|
||||||
@ -393,38 +393,38 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "🙈",
|
"emoji": "🙈",
|
||||||
"entity": "bdfe7;" ,
|
"entity": "bdfe7;",
|
||||||
"code": ":see_no_evil:",
|
"code": ":see_no_evil:",
|
||||||
"description": "Adding or updating a .gitignore file",
|
"description": "Adding or updating a .gitignore file",
|
||||||
"name": "see-no-evil"
|
"name": "see-no-evil"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "📸",
|
"emoji": "📸",
|
||||||
"entity": "📸" ,
|
"entity": "📸",
|
||||||
"code": ":camera_flash:",
|
"code": ":camera_flash:",
|
||||||
"description": "Adding or updating snapshots",
|
"description": "Adding or updating snapshots",
|
||||||
"name": "camera-flash"
|
"name": "camera-flash"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "⚗",
|
"emoji": "⚗",
|
||||||
"entity": "📸" ,
|
"entity": "📸",
|
||||||
"code": ":alembic:",
|
"code": ":alembic:",
|
||||||
"description": "Experimenting new things",
|
"description": "Experimenting new things",
|
||||||
"name": "alembic"
|
"name": "alembic"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "🔍",
|
"emoji": "🔍",
|
||||||
"entity": "🔍" ,
|
"entity": "🔍",
|
||||||
"code": ":mag:",
|
"code": ":mag:",
|
||||||
"description": "Improving SEO",
|
"description": "Improving SEO",
|
||||||
"name": "mag"
|
"name": "mag"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji":"☸️",
|
"emoji": "☸️",
|
||||||
"entity":"☸",
|
"entity": "☸",
|
||||||
"code":":wheel_of_dharma:",
|
"code": ":wheel_of_dharma:",
|
||||||
"description":"Work about Kubernetes",
|
"description": "Work about Kubernetes",
|
||||||
"name":"wheel-of-dharma"
|
"name": "wheel-of-dharma"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"emoji": "🏷️",
|
"emoji": "🏷️",
|
||||||
|
|||||||
@ -1,40 +1,40 @@
|
|||||||
{
|
{
|
||||||
"type":"object",
|
"type": "object",
|
||||||
"$schema":"http://json-schema.org/draft-03/schema",
|
"$schema": "http://json-schema.org/draft-03/schema",
|
||||||
"id":"http://jsonschema.net",
|
"id": "http://jsonschema.net",
|
||||||
"required": true,
|
"required": true,
|
||||||
"properties":{
|
"properties": {
|
||||||
"gitmojis":{
|
"gitmojis": {
|
||||||
"type":"array",
|
"type": "array",
|
||||||
"id":"http://jsonschema.net/gitmojis",
|
"id": "http://jsonschema.net/gitmojis",
|
||||||
"required": true,
|
"required": true,
|
||||||
"items":{
|
"items": {
|
||||||
"type":"object",
|
"type": "object",
|
||||||
"id":"http://jsonschema.net/gitmojis/0",
|
"id": "http://jsonschema.net/gitmojis/0",
|
||||||
"required": true,
|
"required": true,
|
||||||
"properties":{
|
"properties": {
|
||||||
"code":{
|
"code": {
|
||||||
"type":"string",
|
"type": "string",
|
||||||
"id":"http://jsonschema.net/gitmojis/0/code",
|
"id": "http://jsonschema.net/gitmojis/0/code",
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
"entity":{
|
"entity": {
|
||||||
"type":"string",
|
"type": "string",
|
||||||
"id":"http://jsonschema.net/gitmojis/0/entity"
|
"id": "http://jsonschema.net/gitmojis/0/entity"
|
||||||
},
|
},
|
||||||
"description":{
|
"description": {
|
||||||
"type":"string",
|
"type": "string",
|
||||||
"id":"http://jsonschema.net/gitmojis/0/description",
|
"id": "http://jsonschema.net/gitmojis/0/description",
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
"emoji":{
|
"emoji": {
|
||||||
"type":"string",
|
"type": "string",
|
||||||
"id":"http://jsonschema.net/gitmojis/0/emoji",
|
"id": "http://jsonschema.net/gitmojis/0/emoji",
|
||||||
"required": true
|
"required": true
|
||||||
},
|
},
|
||||||
"name":{
|
"name": {
|
||||||
"type":"string",
|
"type": "string",
|
||||||
"id":"http://jsonschema.net/gitmojis/0/name",
|
"id": "http://jsonschema.net/gitmojis/0/name",
|
||||||
"required": true
|
"required": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
56
src/pages/_document.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
// @flow
|
||||||
|
import React from 'react'
|
||||||
|
import Document, { Head, Main, NextScript } from 'next/document'
|
||||||
|
import { readFileSync } from 'fs'
|
||||||
|
import { join } from 'path'
|
||||||
|
|
||||||
|
class InlineStylesHead extends Head {
|
||||||
|
getCssLinks() {
|
||||||
|
return this.__getInlineStyles()
|
||||||
|
}
|
||||||
|
|
||||||
|
__getInlineStyles() {
|
||||||
|
const { assetPrefix, files } = this.context._documentProps
|
||||||
|
if (!files || files.length === 0) return null
|
||||||
|
|
||||||
|
return files
|
||||||
|
.filter((file) => /\.css$/.test(file))
|
||||||
|
.map((file) => (
|
||||||
|
<style
|
||||||
|
key={file}
|
||||||
|
nonce={this.props.nonce}
|
||||||
|
data-href={`${assetPrefix}/_next/${file}`}
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: readFileSync(join(process.cwd(), '.next', file), 'utf-8')
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
This code has been obtained from:
|
||||||
|
https://github.com/zeit/next-plugins/issues/238#issuecomment-432211871
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CustomDocument extends Document {
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<html>
|
||||||
|
<InlineStylesHead />
|
||||||
|
<body>
|
||||||
|
<Main />
|
||||||
|
<NextScript />
|
||||||
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: `(function(a,e,f,g,b,c,d){a.GoogleAnalyticsObject=b;a[b]=a[b]||function(){(a[b].q=a[b].q||[]).push(arguments)};a[b].l=1*new Date;c=e.createElement(f);d=e.getElementsByTagName(f)[0];c.async=1;c.src=g;d.parentNode.insertBefore(c,d)})(window,document,"script","//www.google-analytics.com/analytics.js","ga");ga("create","UA-67824860-7","auto");ga("send","pageview");`
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default CustomDocument
|
||||||
124
src/pages/about.js
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import Link from 'next/link'
|
||||||
|
|
||||||
|
import '../styles/style.scss'
|
||||||
|
import Layout from '../components/Layout'
|
||||||
|
import Button from '../components/Button'
|
||||||
|
import SEO from '../components/SEO'
|
||||||
|
|
||||||
|
const About = () => (
|
||||||
|
<>
|
||||||
|
<SEO pageTitle="About" pageUrl="/about" />
|
||||||
|
<Layout>
|
||||||
|
<section>
|
||||||
|
<h1>About</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>Gitmoji is an emoji guide for GitHub commit messages</strong>.
|
||||||
|
Aims to be a standarization cheatsheet - guide for using{' '}
|
||||||
|
<a href="https://emoji.muan.co">emojis</a> on GitHub's commit
|
||||||
|
messages.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<strong>Using emojis</strong> on <strong>commit messages</strong>{' '}
|
||||||
|
provides an <strong>easy way</strong> of{' '}
|
||||||
|
<strong>identifying the purpose or intention of a commit</strong> with
|
||||||
|
only looking at the emojis used. As there are a lot of different
|
||||||
|
emojis I found the need of creating a guide that can help to use
|
||||||
|
emojis easier.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
This project is Open Source, that means everyone can participate,
|
||||||
|
suggesting, discussing and adding new emojis. Take a look at the{' '}
|
||||||
|
<Link href="#contributing-gitmoji">
|
||||||
|
<a>contributing section</a>
|
||||||
|
</Link>{' '}
|
||||||
|
and{' '}
|
||||||
|
<a href="https://github.com/carloscuesta/gitmoji/blob/master/.github/CONTRIBUTING.md">
|
||||||
|
guidelines for contributing
|
||||||
|
</a>
|
||||||
|
.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<Button
|
||||||
|
icon="star"
|
||||||
|
link="https://github.com/carloscuesta/gitmoji"
|
||||||
|
text="GitHub"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
icon="twitter"
|
||||||
|
link={
|
||||||
|
'https://twitter.com/intent/tweet?text=gitmoji' +
|
||||||
|
'%20%E2%80%93%20An%20%23emoji%20guide%20for%20your%20commit' +
|
||||||
|
'%20messages%20by%20%40crloscuesta%20%F0%9F%98%8D%F0%9F%98%9C' +
|
||||||
|
'&url=https://gitmoji.carloscuesta.me'
|
||||||
|
}
|
||||||
|
target="_blank"
|
||||||
|
text="Tweet"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h1>
|
||||||
|
Using gitmoji with{' '}
|
||||||
|
<a href="https://github.com/carloscuesta/gitmoji-cli">gitmoji-cli</a>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
An easy solution for using gitmoji from your command line, is to
|
||||||
|
install{' '}
|
||||||
|
<a href="https://github.com/carloscuesta/gitmoji-cli">gitmoji-cli</a>.
|
||||||
|
A gitmoji interactive client for using emojis on commit messages.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<code>$ npm i -g gitmoji-cli</code>
|
||||||
|
</pre>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<h1 id="contributing-gitmoji">Contributing to gitmoji</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Contributing to gitmoji it's a piece of cake 🍰! This project it's a
|
||||||
|
static website built with <i>Next.js</i>. All the gitmojis displayed
|
||||||
|
are rendered from a JSON file. Before submitting any pull request,
|
||||||
|
please follow the next steps:
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/carloscuesta/gitmoji/issues/new">
|
||||||
|
Create an issue
|
||||||
|
</a>{' '}
|
||||||
|
filling the template.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
After discussing the idea, feature or suggestion,{' '}
|
||||||
|
<a href="https://github.com/carloscuesta/gitmoji/fork">
|
||||||
|
fork gitmoji
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Create a new branch with the feature name. (Eg: add-emoji-deploy,
|
||||||
|
fix-website-header)
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Make your changes and send a{' '}
|
||||||
|
<a href="https://help.github.com/articles/creating-a-pull-request/">
|
||||||
|
pull request{' '}
|
||||||
|
</a>
|
||||||
|
.
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</section>
|
||||||
|
</Layout>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default About
|
||||||
22
src/pages/contributors.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
import '../styles/style.scss'
|
||||||
|
import Layout from '../components/Layout'
|
||||||
|
import ContributorsList from '../components/ContributorsList'
|
||||||
|
import SEO from '../components/SEO'
|
||||||
|
|
||||||
|
const Contributors = () => (
|
||||||
|
<>
|
||||||
|
<SEO pageTitle="Contributors" pageUrl="/contributors" />
|
||||||
|
|
||||||
|
<Layout>
|
||||||
|
<section>
|
||||||
|
<h1>Contributors</h1>
|
||||||
|
|
||||||
|
<ContributorsList />
|
||||||
|
</section>
|
||||||
|
</Layout>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Contributors
|
||||||
19
src/pages/index.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import Head from 'next/head'
|
||||||
|
|
||||||
|
import '../styles/style.scss'
|
||||||
|
import Layout from '../components/Layout'
|
||||||
|
import GitmojiList from '../components/GitmojiList'
|
||||||
|
import SEO from '../components/SEO'
|
||||||
|
import { gitmojis } from '../data/gitmojis.json'
|
||||||
|
|
||||||
|
const Home = () => (
|
||||||
|
<>
|
||||||
|
<SEO />
|
||||||
|
<Layout>
|
||||||
|
<GitmojiList gitmojis={gitmojis} />
|
||||||
|
</Layout>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
|
||||||
|
export default Home
|
||||||
@ -1,70 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
const PDFDocument = require('pdfkit');
|
|
||||||
const fs = require('fs');
|
|
||||||
const path = require('path');
|
|
||||||
const loadEmoji = require('./loadEmojis');
|
|
||||||
|
|
||||||
const __root = path.join(__dirname, '/../../');
|
|
||||||
|
|
||||||
// The layout of the PDF document
|
|
||||||
const layout = {
|
|
||||||
leftMargin: 60,
|
|
||||||
topMargin: 100,
|
|
||||||
emojiSpace: 38,
|
|
||||||
emojiSize: 32,
|
|
||||||
|
|
||||||
emojisHigh: 16,
|
|
||||||
secondMargin: 260,
|
|
||||||
|
|
||||||
textLeftMargin: 40,
|
|
||||||
textDescTopMargin: 18
|
|
||||||
};
|
|
||||||
|
|
||||||
// Check if directories exists, otherwise create them.
|
|
||||||
if(!fs.existsSync(__root+'dist/')) {
|
|
||||||
fs.mkdirSync(__root+'dist');
|
|
||||||
fs.mkdirSync(__root+'dist/pdf');
|
|
||||||
fs.mkdirSync(__root+'dist/pdf/emojis');
|
|
||||||
} else if(!fs.existsSync(__root+'dist/pdf')){
|
|
||||||
fs.mkdirSync(__root+'dist/pdf');
|
|
||||||
fs.mkdirSync(__root+'dist/pdf/emojis');
|
|
||||||
}
|
|
||||||
|
|
||||||
var emojiList = null;
|
|
||||||
|
|
||||||
loadEmoji(function (emojis) {
|
|
||||||
console.log("Done fetching images");
|
|
||||||
emojiList = emojis;
|
|
||||||
|
|
||||||
// Wait for images to write to disk
|
|
||||||
setTimeout(generatePDF, 1000);
|
|
||||||
});
|
|
||||||
|
|
||||||
function generatePDF() {
|
|
||||||
console.log("Generating PDF");
|
|
||||||
var doc = new PDFDocument;
|
|
||||||
doc.pipe(fs.createWriteStream(__root+'dist/pdf/cheatsheet.pdf'));
|
|
||||||
|
|
||||||
doc.fontSize(32).text('Gitmoji Cheatsheet', 40, 40);
|
|
||||||
|
|
||||||
for (var i = 0; i < emojiList.length; i++) {
|
|
||||||
var emoji = emojiList[i];
|
|
||||||
|
|
||||||
var x = layout.leftMargin + Math.floor(i/layout.emojisHigh)%2*layout.secondMargin;
|
|
||||||
var y = layout.topMargin+ layout.emojiSpace * (i%layout.emojisHigh);
|
|
||||||
|
|
||||||
if(Math.floor(i%(layout.emojisHigh*2))==0 && i!=0){
|
|
||||||
doc.addPage();
|
|
||||||
}
|
|
||||||
|
|
||||||
doc.image(__root+'dist/pdf/emojis/'+emoji.name+'.png', x, y, {width: layout.emojiSize});
|
|
||||||
doc.fontSize(14).text(emoji.code, x+layout.textLeftMargin, y);
|
|
||||||
doc.fontSize(11).text(emoji.description, x+layout.textLeftMargin, y+layout.textDescTopMargin);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
doc.end();
|
|
||||||
console.log('PDF generated successfully');
|
|
||||||
console.log('Location: '+path.resolve(__root, 'dist/pdf/cheatsheet.pdf'));
|
|
||||||
}
|
|
||||||
@ -1,105 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
const path = require('path');
|
|
||||||
const request = require('request');
|
|
||||||
const async = require('async');
|
|
||||||
|
|
||||||
const __root = path.join(__dirname, '/../../');
|
|
||||||
|
|
||||||
var emojiList = null;
|
|
||||||
var emojiUrls = null;
|
|
||||||
|
|
||||||
var loadEmojis = function(callback){
|
|
||||||
|
|
||||||
if(emojiList==null)
|
|
||||||
emojiList = JSON.parse(fs.readFileSync(__root+'src/data/gitmojis.json')).gitmojis;
|
|
||||||
|
|
||||||
checkEmojis(function (err, emojisToDownload) {
|
|
||||||
if(err) throw err;
|
|
||||||
|
|
||||||
// Only send a request to Github, if some icons need to be downloaded
|
|
||||||
if(emojisToDownload.length>0){
|
|
||||||
fetchEmojiUrls(function () {
|
|
||||||
downloadEmojis();
|
|
||||||
});
|
|
||||||
} else downloadEmojis();
|
|
||||||
|
|
||||||
function downloadEmojis() {
|
|
||||||
async.each(emojisToDownload, downloadEmoji, function (err) {
|
|
||||||
if(err) throw err;
|
|
||||||
callback(emojiList);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Functions
|
|
||||||
|
|
||||||
// Get emoji image urls, from Github
|
|
||||||
function fetchEmojiUrls(callback) {
|
|
||||||
var options = {
|
|
||||||
url: 'https://api.github.com/emojis',
|
|
||||||
headers: {
|
|
||||||
'User-Agent': 'gitmoji'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
request(options, function (err, res, body) {
|
|
||||||
if(err) throw err;
|
|
||||||
if(res.statusCode!=200) throw new Error('Server responded with non 200 code');
|
|
||||||
|
|
||||||
emojiUrls = JSON.parse(body);
|
|
||||||
callback();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gets a list from gitmojis.json, of all the emoji icons to download.
|
|
||||||
function checkEmojis(callback) {
|
|
||||||
var emojisToDownload = [];
|
|
||||||
|
|
||||||
async.each(emojiList, function (emoji, callback) {
|
|
||||||
fs.access(__root+'dist/pdf/emojis/'+emoji.name+'.png', function (err) {
|
|
||||||
// Returns an error, if image wasn't found
|
|
||||||
if(err){
|
|
||||||
emojisToDownload.push(emoji);
|
|
||||||
callback(null);
|
|
||||||
} else {
|
|
||||||
console.log("Emoji found: "+emoji.name);
|
|
||||||
callback(null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, function (err) {
|
|
||||||
callback(err, emojisToDownload);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Downloads an emoji from Github
|
|
||||||
function downloadEmoji(emoji, callback) {
|
|
||||||
console.log("Emoji downloading: "+emoji.name);
|
|
||||||
|
|
||||||
var url = emojiUrls[emoji.code.substring(1, emoji.code.length-1)];
|
|
||||||
|
|
||||||
if(url==null){
|
|
||||||
throw new Error('Emoji url not found, for emoji: '+emoji.code);
|
|
||||||
}
|
|
||||||
|
|
||||||
var options = {
|
|
||||||
url: url,
|
|
||||||
headers: {
|
|
||||||
'User-Agent': 'gitmoji'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
request(options, function (err, res) {
|
|
||||||
if(err) throw err;
|
|
||||||
if(res.statusCode!=200) throw new Error('Server responded with non 200 code');
|
|
||||||
}).on('end', function () {
|
|
||||||
console.log("Emoji successfully downloaded: "+emoji.name);
|
|
||||||
emoji.path = path.resolve(__root+'dist/pdf/emojis/'+emoji.name+'.png');
|
|
||||||
callback(null, emoji);
|
|
||||||
}).pipe(fs.createWriteStream(__root+'dist/pdf/emojis/'+emoji.name+'.png'));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = loadEmojis;
|
|
||||||
@ -1 +0,0 @@
|
|||||||
var clipboard = new Clipboard('.gitmoji');
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
var statuses = ['joy', 'loved', 'haha', 'sunglasses', 'sexy', 'tongue'];
|
|
||||||
document.getElementById(statuses[Math.floor(Math.random() * statuses.length)]).classList.add('emoji-visible');
|
|
||||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
|
||||||
ga('create', 'UA-67824860-7', 'auto');
|
|
||||||
ga('send', 'pageview');
|
|
||||||
@ -1 +0,0 @@
|
|||||||
!function(){var a=document.getElementById("gitmoji-list");a.addEventListener("click",function(b){if(b.target&&b.target.matches(".gitmoji")){b.target.classList.add("active"),b.target.classList.remove("active");var c=new NotificationFx({message:"<p>Hey! Gitmoji copied to the clipboard 😜</p>",layout:"growl",effect:"scale",type:"notice",onClose:function(){a.disabled=!1}});c.show(),this.disabled=!0}})}();
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
(function(e){function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function b(a){this.options=d({},this.options);d(this.options,a);this._init()}b.prototype.options={wrapper:document.body,message:"yo!",layout:"growl",effect:"slide",type:"error",ttl:6E3,onClose:function(){return!1},onOpen:function(){return!1}};b.prototype._init=function(){this.ntf=document.createElement("div");this.ntf.className="ns-box ns-"+this.options.layout+" ns-effect-"+this.options.effect+" ns-type-"+this.options.type;
|
|
||||||
this.ntf.innerHTML='<div class="ns-box-inner">'+this.options.message+'</div><span class="ns-close"></span></div>';this.options.wrapper.insertBefore(this.ntf,this.options.wrapper.firstChild);var a=this;this.dismissttl=setTimeout(function(){a.active&&a.dismiss()},this.options.ttl);this._initEvents()};b.prototype._initEvents=function(){var a=this;this.ntf.querySelector(".ns-close").addEventListener("click",function(){a.dismiss()})};b.prototype.show=function(){this.active=!0;this.ntf.classList.remove("ns-hide");
|
|
||||||
this.ntf.classList.add("ns-show");this.options.onOpen()};b.prototype.dismiss=function(){var a=this;this.active=!1;clearTimeout(this.dismissttl);this.ntf.classList.remove("ns-show");setTimeout(function(){a.ntf.classList.add("ns-hide");a.options.onClose()},25);var b=function(c){if(c.target!==a.ntf)return!1;this.removeEventListener("animationend",b);a.options.wrapper.removeChild(this)};this.ntf.addEventListener("animationend",b)};e.NotificationFx=b})(window);
|
|
||||||
@ -1 +1,106 @@
|
|||||||
.col-sm-2,.col-xs-12,.col-xs-3,.row{box-sizing:border-box}.container{margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-.5rem;margin-left:-.5rem}.col-xs-12,.col-xs-3{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:1.25rem;padding-left:1.25rem}.col-xs-12{-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.col-xs-3{-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}.center-xs{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.middle-xs{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}@media only screen and (min-width:48em){.container{width:49rem}.col-sm-2,.col-sm-6{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:1.25rem;padding-left:1.25rem}.col-sm-6{-webkit-flex-basis:50%;-ms-flex-preferred-size:50%;flex-basis:50%;max-width:50%}.col-sm-2{-ms-flex-preferred-size:16.66666667%;flex-basis:16.66666667%;max-width:16.66666667%}}@media only screen and (min-width:64em){.container{width:65rem}.col-md-3{box-sizing:border-box;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;padding-right:1.25rem;padding-left:1.25rem;-ms-flex-preferred-size:25%;flex-basis:25%;max-width:25%}}
|
.col-sm-2,
|
||||||
|
.col-xs-12,
|
||||||
|
.col-xs-3,
|
||||||
|
.row {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
margin-right: auto;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
.row {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -webkit-flex;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-webkit-flex: 0 1 auto;
|
||||||
|
-ms-flex: 0 1 auto;
|
||||||
|
flex: 0 1 auto;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-webkit-flex-direction: row;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-webkit-flex-wrap: wrap;
|
||||||
|
-ms-flex-wrap: wrap;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
margin-right: -0.5rem;
|
||||||
|
margin-left: -0.5rem;
|
||||||
|
}
|
||||||
|
.col-xs-12,
|
||||||
|
.col-xs-3 {
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-webkit-flex: 0 0 auto;
|
||||||
|
-ms-flex: 0 0 auto;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
padding-right: 1.25rem;
|
||||||
|
padding-left: 1.25rem;
|
||||||
|
}
|
||||||
|
.col-xs-12 {
|
||||||
|
-webkit-flex-basis: 100%;
|
||||||
|
-ms-flex-preferred-size: 100%;
|
||||||
|
flex-basis: 100%;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
.col-xs-3 {
|
||||||
|
-ms-flex-preferred-size: 25%;
|
||||||
|
flex-basis: 25%;
|
||||||
|
max-width: 25%;
|
||||||
|
}
|
||||||
|
.center-xs {
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-webkit-justify-content: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.middle-xs {
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-webkit-align-items: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 48em) {
|
||||||
|
.container {
|
||||||
|
width: 49rem;
|
||||||
|
}
|
||||||
|
.col-sm-2,
|
||||||
|
.col-sm-6 {
|
||||||
|
box-sizing: border-box;
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-webkit-flex: 0 0 auto;
|
||||||
|
-ms-flex: 0 0 auto;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
padding-right: 1.25rem;
|
||||||
|
padding-left: 1.25rem;
|
||||||
|
}
|
||||||
|
.col-sm-6 {
|
||||||
|
-webkit-flex-basis: 50%;
|
||||||
|
-ms-flex-preferred-size: 50%;
|
||||||
|
flex-basis: 50%;
|
||||||
|
max-width: 50%;
|
||||||
|
}
|
||||||
|
.col-sm-2 {
|
||||||
|
-ms-flex-preferred-size: 16.66666667%;
|
||||||
|
flex-basis: 16.66666667%;
|
||||||
|
max-width: 16.66666667%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 64em) {
|
||||||
|
.container {
|
||||||
|
width: 65rem;
|
||||||
|
}
|
||||||
|
.col-md-3 {
|
||||||
|
box-sizing: border-box;
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-webkit-flex: 0 0 auto;
|
||||||
|
-ms-flex: 0 0 auto;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
padding-right: 1.25rem;
|
||||||
|
padding-left: 1.25rem;
|
||||||
|
-ms-flex-preferred-size: 25%;
|
||||||
|
flex-basis: 25%;
|
||||||
|
max-width: 25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -1,46 +1,46 @@
|
|||||||
.c-hamburger {
|
.c-hamburger {
|
||||||
display: block;
|
|
||||||
position: fixed;
|
|
||||||
overflow: hidden;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
width: 80px;
|
|
||||||
height: 80px;
|
|
||||||
font-size: 0;
|
|
||||||
text-indent: -9999px;
|
|
||||||
appearance: none;
|
appearance: none;
|
||||||
box-shadow: none;
|
|
||||||
border-radius: none;
|
border-radius: none;
|
||||||
border: none;
|
border: none;
|
||||||
|
box-shadow: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
font-size: 0;
|
||||||
|
height: 80px;
|
||||||
|
margin: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: fixed;
|
||||||
|
text-indent: -9999px;
|
||||||
transition: background 0.2s;
|
transition: background 0.2s;
|
||||||
|
width: 80px;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
top: 44px;
|
|
||||||
left: 18px;
|
|
||||||
right: 18px;
|
|
||||||
height: 3px;
|
|
||||||
background: $menu;
|
background: $menu;
|
||||||
border-radius: 50px;
|
border-radius: 50px;
|
||||||
|
|
||||||
&::before, &::after {
|
|
||||||
position: absolute;
|
|
||||||
display: block;
|
display: block;
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 3px;
|
height: 3px;
|
||||||
border-radius: 50px;
|
left: 18px;
|
||||||
|
position: absolute;
|
||||||
|
right: 18px;
|
||||||
|
top: 44px;
|
||||||
|
|
||||||
|
&::before,
|
||||||
|
&::after {
|
||||||
background-color: $menu;
|
background-color: $menu;
|
||||||
content: "";
|
border-radius: 50px;
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
height: 3px;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
top: -15px;
|
top: -15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
bottom: -15px;
|
bottom: -15px;
|
||||||
}
|
}
|
||||||
@ -59,7 +59,8 @@
|
|||||||
span {
|
span {
|
||||||
transition: background 0s 0.2s;
|
transition: background 0s 0.2s;
|
||||||
|
|
||||||
&::before, &::after {
|
&::before,
|
||||||
|
&::after {
|
||||||
transition-duration: 0.2s, 0.2s;
|
transition-duration: 0.2s, 0.2s;
|
||||||
transition-delay: 0.2s, 0s;
|
transition-delay: 0.2s, 0s;
|
||||||
}
|
}
|
||||||
@ -67,7 +68,6 @@
|
|||||||
&::before {
|
&::before {
|
||||||
transition-property: top, transform;
|
transition-property: top, transform;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
transition-property: bottom, transform;
|
transition-property: bottom, transform;
|
||||||
}
|
}
|
||||||
@ -75,21 +75,18 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.c-hamburger__input:checked + .c-hamburger--htx {
|
.c-hamburger__input:checked + .c-hamburger--htx {
|
||||||
|
|
||||||
span {
|
span {
|
||||||
background: none;
|
background: none;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
top: 0;
|
top: 0;
|
||||||
transform: rotate(45deg);
|
transform: rotate(45deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
transform: rotate(-45deg);
|
transform: rotate(-45deg);
|
||||||
}
|
}
|
||||||
|
&::before,
|
||||||
&::before, &::after {
|
&::after {
|
||||||
transition-delay: 0s, 0.2s;
|
transition-delay: 0s, 0.2s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -104,7 +101,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
transition: all .2s ease-in-out;
|
transition: all 0.2s ease-in-out;
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,30 +123,26 @@
|
|||||||
|
|
||||||
.item {
|
.item {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(1) a {
|
&:nth-child(1) a {
|
||||||
transition-delay: 0s;
|
transition-delay: 0s;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(2) a {
|
&:nth-child(2) a {
|
||||||
transition-delay: 0.035s;
|
transition-delay: 0.035s;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(3) a {
|
&:nth-child(3) a {
|
||||||
transition-delay: 0.075s;
|
transition-delay: 0.075s;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-child(4) a {
|
&:nth-child(4) a {
|
||||||
transition-delay: 0.0995s;
|
transition-delay: 0.0995s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.c-hamburger__input:checked ~ .c-hamburger span::after, .c-hamburger__input:checked ~ .c-hamburger span::before {
|
.c-hamburger__input:checked ~ .c-hamburger span::after,
|
||||||
|
.c-hamburger__input:checked ~ .c-hamburger span::before {
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,18 +152,19 @@ input#hamburger-menu {
|
|||||||
|
|
||||||
nav.nav {
|
nav.nav {
|
||||||
.navigation {
|
.navigation {
|
||||||
position: absolute;
|
|
||||||
left: 0%;
|
|
||||||
width: 100%;
|
|
||||||
top: 50%;
|
|
||||||
-webkit-transform: translateY(-50%);
|
|
||||||
-moz-transform: translateY(-50%);
|
-moz-transform: translateY(-50%);
|
||||||
-ms-transform: translateY(-50%);
|
-ms-transform: translateY(-50%);
|
||||||
-o-transform: translateX(-50%);
|
-o-transform: translateX(-50%);
|
||||||
|
-webkit-transform: translateY(-50%);
|
||||||
|
left: 0%;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
transform: translateY(-50%);
|
transform: translateY(-50%);
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
ul, li {
|
ul,
|
||||||
|
li {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
@ -180,16 +174,15 @@ nav.nav {
|
|||||||
font-size: 3em;
|
font-size: 3em;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
margin : .4em 0;
|
margin: 0.4em 0;
|
||||||
transition: all .2s ease-in-out;
|
transition: all 0.2s ease-in-out;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
display: block;
|
display: block;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
line-height: 100px;
|
line-height: 100px;
|
||||||
transition: all 400ms cubic-bezier(.17,.67,.38,1.46);
|
|
||||||
transform: scale(0.3);
|
transform: scale(0.3);
|
||||||
|
transition: all 400ms cubic-bezier(0.17, 0.67, 0.38, 1.46);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,8 @@
|
|||||||
opacity: 0.7;
|
opacity: 0.7;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
|
||||||
&:hover, &:focus {
|
&:hover,
|
||||||
|
&:focus {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -27,7 +28,8 @@
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.ns-show, &.ns-visible {
|
&.ns-show,
|
||||||
|
&.ns-visible {
|
||||||
pointer-events: auto;
|
pointer-events: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -44,11 +46,13 @@
|
|||||||
-webkit-backface-visibility: hidden;
|
-webkit-backface-visibility: hidden;
|
||||||
backface-visibility: hidden;
|
backface-visibility: hidden;
|
||||||
|
|
||||||
&:hover, &:focus {
|
&:hover,
|
||||||
|
&:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::before, &::after {
|
&::before,
|
||||||
|
&::after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 3px;
|
width: 3px;
|
||||||
@ -59,7 +63,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
&::before, &::after {
|
&::before,
|
||||||
|
&::after {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -88,8 +93,8 @@
|
|||||||
line-height: 1.3;
|
line-height: 1.3;
|
||||||
}
|
}
|
||||||
|
|
||||||
[class^="ns-effect-"].ns-growl.ns-hide,
|
[class^='ns-effect-'].ns-growl.ns-hide,
|
||||||
[class*=" ns-effect-"].ns-growl.ns-hide {
|
[class*=' ns-effect-'].ns-growl.ns-hide {
|
||||||
-webkit-animation-direction: reverse;
|
-webkit-animation-direction: reverse;
|
||||||
animation-direction: reverse;
|
animation-direction: reverse;
|
||||||
}
|
}
|
||||||
@ -99,7 +104,7 @@
|
|||||||
/* Scale */
|
/* Scale */
|
||||||
.ns-effect-scale {
|
.ns-effect-scale {
|
||||||
background: $pink;
|
background: $pink;
|
||||||
box-shadow: 0 25px 10px -15px rgba(0,0,0,0.05);
|
box-shadow: 0 25px 10px -15px rgba(0, 0, 0, 0.05);
|
||||||
}
|
}
|
||||||
|
|
||||||
.ns-effect-scale a:hover,
|
.ns-effect-scale a:hover,
|
||||||
@ -126,13 +131,27 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes animScale {
|
@-webkit-keyframes animScale {
|
||||||
0% { opacity: 0; -webkit-transform: translate3d(0,40px,0) scale3d(0.1,0.6,1); }
|
0% {
|
||||||
100% { opacity: 1; -webkit-transform: translate3d(0,0,0) scale3d(1,1,1); }
|
opacity: 0;
|
||||||
|
-webkit-transform: translate3d(0, 40px, 0) scale3d(0.1, 0.6, 1);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes animScale {
|
@keyframes animScale {
|
||||||
0% { opacity: 0; -webkit-transform: translate3d(0,40px,0) scale3d(0.1,0.6,1); transform: translate3d(0,40px,0) scale3d(0.1,0.6,1); }
|
0% {
|
||||||
100% { opacity: 1; -webkit-transform: translate3d(0,0,0) scale3d(1,1,1); transform: translate3d(0,0,0) scale3d(1,1,1); }
|
opacity: 0;
|
||||||
|
-webkit-transform: translate3d(0, 40px, 0) scale3d(0.1, 0.6, 1);
|
||||||
|
transform: translate3d(0, 40px, 0) scale3d(0.1, 0.6, 1);
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
|
||||||
|
transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 25em) {
|
@media screen and (max-width: 25em) {
|
||||||
|
|||||||
@ -1,140 +1,75 @@
|
|||||||
$yellow: #FFDD67;
|
$yellow: #ffdd67;
|
||||||
$lightGray: #EBEFF1;
|
$lightGray: #ebeff1;
|
||||||
$white: #FFF;
|
$white: #fff;
|
||||||
$menu: #ff5a79;
|
$menu: #ff5a79;
|
||||||
$black: #000;
|
$black: #000;
|
||||||
$pink: #ff5a79;
|
$pink: #ff5a79;
|
||||||
|
|
||||||
// Emoji colors
|
// Emoji colors
|
||||||
|
|
||||||
$art: #ff7281;
|
|
||||||
$arrowUp: #00E676;
|
|
||||||
$arrowDown: #EF5350;
|
|
||||||
$apple: #f94e43;
|
|
||||||
$bookmark: #80DEEA;
|
|
||||||
$bug: #8cd842;
|
|
||||||
$checkeredFlag: #ff7281;
|
|
||||||
$construction: #FFB74D;
|
|
||||||
$fire: #ff9d44;
|
|
||||||
$greenHeart: #c5e763;
|
|
||||||
$lock: #ffce49;
|
|
||||||
$memo: #00E676;
|
|
||||||
$penguin: #fa9a3f;
|
|
||||||
$rocket: #00a9f0;
|
|
||||||
$rotatingLight: #536DFE;
|
|
||||||
$sparkles: #ffe55f;
|
|
||||||
$whiteCheckMark: #77e856;
|
|
||||||
$wrench: #FFC400;
|
|
||||||
$zap: #40C4FF;
|
|
||||||
$constructionWorker: #64B5F6;
|
|
||||||
$recycle: #77e856;
|
|
||||||
$tada: #f74d5f;
|
|
||||||
$lipstick: #80DEEA;
|
|
||||||
$whale: #00cbe8;
|
|
||||||
$heavyPlusSign: #00E676;
|
|
||||||
$heavyMinusSign: #EF5350;
|
|
||||||
$chartWithUpwardsTrend: #CEDAE6;
|
|
||||||
$globeWithMeridians: #E7F4FF;
|
|
||||||
$ambulance: #fb584a;
|
|
||||||
$pencil: #ffce49;
|
|
||||||
$poop: #a78674;
|
|
||||||
$package: #fdd0ae;
|
|
||||||
$alien: #c5e763;
|
|
||||||
$truck: #ef584a;
|
|
||||||
$rewind: #56d1d8;
|
|
||||||
$twistedRightwardsArrows: #56d1d8;
|
|
||||||
$pageFacingUp: #d9e3e8;
|
|
||||||
$bento : #ff5864;
|
|
||||||
$boom: #f94f28;
|
|
||||||
$okHand: #c5e763;
|
|
||||||
$wheelchair: #00b1fb;
|
|
||||||
$bulb: #ffce49;
|
|
||||||
$beers: #fbb64b;
|
|
||||||
$speechBalloon: #CEDAE6;
|
|
||||||
$cardFileBox: #c5e763;
|
|
||||||
$appleiOS: #8dc448;
|
|
||||||
$robot: #39c2f1;
|
|
||||||
$mute: #e6ebef;
|
|
||||||
$loadSound: #23b4d2;
|
|
||||||
$bustsInSilhouette: #d9e3e8;
|
|
||||||
$chidrenCrossing: #ffce49;
|
|
||||||
$pushpin: #39c2f1;
|
|
||||||
$buildingConstruction: #ffe55f;
|
|
||||||
$iphone: #40C4FF;
|
|
||||||
$clownFace: #ff7281;
|
|
||||||
$egg: #77e856;
|
|
||||||
$seeNoEvil: #8bdfe7;
|
|
||||||
$cameraFlash: #00a9f0;
|
|
||||||
$alembic: #7f39fb;
|
|
||||||
$mag: #ffe55f;
|
|
||||||
$wheelOfDarma: #40C4FF;
|
|
||||||
$label: #cb63e6;
|
|
||||||
$seedling: #c5e763;
|
|
||||||
$triangularFlagOnPost: #ffce49;
|
|
||||||
|
|
||||||
$gitmojis: (
|
$gitmojis: (
|
||||||
art: $art,
|
alembic: #7f39fb,
|
||||||
apple: $apple,
|
alien: #c5e763,
|
||||||
bookmark: $bookmark,
|
ambulance: #fb584a,
|
||||||
bug: $bug,
|
apple: #f94e43,
|
||||||
checkered-flag: $checkeredFlag,
|
arrow-down: #8dc448,
|
||||||
construction: $construction,
|
arrow-up: #ef5350,
|
||||||
fire: $fire,
|
art: #00e676,
|
||||||
green-heart: $greenHeart,
|
beers: #ff7281,
|
||||||
lock: $lock,
|
bento: #fbb64b,
|
||||||
memo: $memo,
|
bookmark: #ff5864,
|
||||||
penguin: $penguin,
|
boom: #80deea,
|
||||||
rocket: $rocket,
|
bug: #f94f28,
|
||||||
rotating-light: $rotatingLight,
|
building-construction: #8cd842,
|
||||||
sparkles: $sparkles,
|
bulb: #ffe55f,
|
||||||
white-check-mark: $whiteCheckMark,
|
busts-in-silhouette: #ffce49,
|
||||||
wrench: $wrench,
|
camera-flash: #d9e3e8,
|
||||||
zap: $zap,
|
card-file-box: #00a9f0,
|
||||||
construction-worker: $constructionWorker,
|
chart-with-upwards-trend: #c5e763,
|
||||||
arrow-up: $arrowUp,
|
checkered-flag: #cedae6,
|
||||||
arrow-down: $arrowDown,
|
children-crossing: #ff7281,
|
||||||
recycle: $recycle,
|
clown-face: #ffce49,
|
||||||
tada: $tada,
|
construction-worker: #ff7281,
|
||||||
lipstick: $lipstick,
|
construction: #ffb74d,
|
||||||
whale: $whale,
|
egg: #64b5f6,
|
||||||
heavy-plus-sign: $heavyPlusSign,
|
fire: #77e856,
|
||||||
heavy-minus-sign: $heavyMinusSign,
|
globe-with-meridians: #ff9d44,
|
||||||
chart-with-upwards-trend: $chartWithUpwardsTrend,
|
green-apple: #e7f4ff,
|
||||||
globe-with-meridians: $globeWithMeridians,
|
green-heart: #c5e763,
|
||||||
ambulance: $ambulance,
|
heavy-minus-sign: #ef5350,
|
||||||
pencil: $pencil,
|
heavy-plus-sign: #00e676,
|
||||||
poop: $poop,
|
iphone: #40c4ff,
|
||||||
package: $package,
|
label: #cb63e6,
|
||||||
alien: $alien,
|
lipstick: #80deea,
|
||||||
truck: $truck,
|
lock: #23b4d2,
|
||||||
rewind: $rewind,
|
loud-sound: #ffce49,
|
||||||
twisted-rightwards-arrows: $twistedRightwardsArrows,
|
mag: #ffe55f,
|
||||||
page-facing-up: $pageFacingUp,
|
memo: #00e676,
|
||||||
bento: $bento,
|
mute: #e6ebef,
|
||||||
boom: $boom,
|
ok-hand: #c5e763,
|
||||||
ok-hand: $okHand,
|
package: #fdd0ae,
|
||||||
wheelchair: $wheelchair,
|
page-facing-up: #d9e3e8,
|
||||||
bulb: $bulb,
|
pencil: #ffce49,
|
||||||
beers: $beers,
|
penguin: #fa9a3f,
|
||||||
speech-balloon: $speechBalloon,
|
poop: #a78674,
|
||||||
card-file-box: $cardFileBox,
|
pushpin: #39c2f1,
|
||||||
green-apple: $appleiOS,
|
recycle: #77e856,
|
||||||
robot: $robot,
|
rewind: #56d1d8,
|
||||||
mute: $mute,
|
robot: #39c2f1,
|
||||||
loud-sound: $loadSound,
|
rocket: #00a9f0,
|
||||||
busts-in-silhouette: $bustsInSilhouette,
|
rotating-light: #536dfe,
|
||||||
children-crossing: $chidrenCrossing,
|
see-no-evil: #c5e763,
|
||||||
pushpin: $pushpin,
|
seedling: #8bdfe7,
|
||||||
building-construction: $buildingConstruction,
|
sparkles: #ffe55f,
|
||||||
iphone: $iphone,
|
speech-balloon: #cedae6,
|
||||||
clown-face: $clownFace,
|
tada: #f74d5f,
|
||||||
egg: $egg,
|
triangular-flag-on-post: #ffce49,
|
||||||
see-no-evil: $seeNoEvil,
|
truck: #ef584a,
|
||||||
camera-flash: $cameraFlash,
|
twisted-rightwards-arrows: #56d1d8,
|
||||||
alembic: $alembic,
|
whale: #00cbe8,
|
||||||
mag: $mag,
|
wheel-of-dharma: #00b1fb,
|
||||||
wheel-of-dharma: $wheelOfDarma,
|
wheelchair: #40c4ff,
|
||||||
label: $label,
|
white-check-mark: #77e856,
|
||||||
seedling: $seedling,
|
wrench: #ffc400,
|
||||||
triangular-flag-on-post: $triangularFlagOnPost,
|
zap: #40c4ff
|
||||||
)
|
);
|
||||||
|
|||||||
@ -7,23 +7,23 @@ h1 {
|
|||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
html, body {
|
html,
|
||||||
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-size: 16.5px;
|
font-size: 16.5px;
|
||||||
font-family: Avenir, -apple-system, BlinkMacSystemFont,
|
font-family: Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto',
|
||||||
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
|
'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||||
"Fira Sans", "Droid Sans", "Helvetica Neue",
|
|
||||||
sans-serif;
|
sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
transition: color .5s ease-in-out;
|
transition: color 0.5s ease-in-out;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: $pink;
|
color: $pink;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
animation: zomg .5s infinite;
|
animation: zomg 0.5s infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.btn:hover {
|
&.btn:hover {
|
||||||
@ -32,9 +32,8 @@ a {
|
|||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
font-family: Avenir, -apple-system, BlinkMacSystemFont,
|
font-family: Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto',
|
||||||
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
|
'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||||
"Fira Sans", "Droid Sans", "Helvetica Neue",
|
|
||||||
sans-serif;
|
sans-serif;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-size: 1.25em;
|
font-size: 1.25em;
|
||||||
@ -45,11 +44,11 @@ pre {
|
|||||||
background-color: $yellow;
|
background-color: $yellow;
|
||||||
box-shadow: 0 4px darken($yellow, 15%);
|
box-shadow: 0 4px darken($yellow, 15%);
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
border-radius: 4px
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
section {
|
section {
|
||||||
padding: .5em;
|
padding: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
@ -58,7 +57,7 @@ section {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
padding: .5em 0;
|
padding: 0.5em 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
}
|
}
|
||||||
@ -87,9 +86,9 @@ section {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
padding: .75em 1em;
|
padding: 0.75em 1em;
|
||||||
transition: none;
|
transition: none;
|
||||||
margin: .25em 0;
|
margin: 0.25em 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
&:not(:first-child) {
|
&:not(:first-child) {
|
||||||
@ -113,7 +112,7 @@ section {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
margin-right: .25em;
|
margin-right: 0.25em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,21 +132,22 @@ main.wrap {
|
|||||||
.gitmoji {
|
.gitmoji {
|
||||||
font-size: 5em;
|
font-size: 5em;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols";
|
font-family: 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji',
|
||||||
|
'Segoe UI Symbol', 'Android Emoji', 'EmojiSymbols';
|
||||||
}
|
}
|
||||||
|
|
||||||
&-card {
|
&-card {
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: 0 1px 2px 0 rgba(168, 182, 191, .6);
|
box-shadow: 0 1px 2px 0 rgba(168, 182, 191, 0.6);
|
||||||
flex: 1;
|
flex: 1;
|
||||||
margin: 1em 0;
|
margin: 1em 0;
|
||||||
transition: all .25s ease-out;
|
transition: all 0.25s ease-out;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
box-shadow: 0 10px 20px 0 rgba(168, 182, 191, .6);
|
box-shadow: 0 10px 20px 0 rgba(168, 182, 191, 0.6);
|
||||||
transform: translateY(-1px);
|
transform: translateY(-1px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -165,7 +165,7 @@ main.wrap {
|
|||||||
&-header {
|
&-header {
|
||||||
align-self: flex-start;
|
align-self: flex-start;
|
||||||
padding-top: 2em;
|
padding-top: 2em;
|
||||||
padding-bottom: .85em;
|
padding-bottom: 0.85em;
|
||||||
border-top-left-radius: 4px;
|
border-top-left-radius: 4px;
|
||||||
border-top-right-radius: 4px;
|
border-top-right-radius: 4px;
|
||||||
}
|
}
|
||||||
@ -184,7 +184,7 @@ main.wrap {
|
|||||||
&-picture {
|
&-picture {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
padding: .5em;
|
padding: 0.5em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -193,7 +193,7 @@ main.wrap {
|
|||||||
height: 1em;
|
height: 1em;
|
||||||
|
|
||||||
&-heart {
|
&-heart {
|
||||||
margin: 0 .25em;
|
margin: 0 0.25em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,22 +209,23 @@ main.wrap {
|
|||||||
text-align: end;
|
text-align: end;
|
||||||
|
|
||||||
a:after {
|
a:after {
|
||||||
content: "·";
|
content: '·';
|
||||||
color: $white!important;
|
color: $white !important;
|
||||||
margin: 0 .75em;
|
margin: 0 0.75em;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:last-child:after {
|
a:last-child:after {
|
||||||
content: "";
|
content: '';
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media(max-width: 768px) {
|
@media (max-width: 768px) {
|
||||||
footer nav, footer h3 {
|
footer nav,
|
||||||
justify-content: center!important;
|
footer h3 {
|
||||||
text-align: center!important;
|
justify-content: center !important;
|
||||||
|
text-align: center !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.emoji .gitmoji {
|
.emoji .gitmoji {
|
||||||
@ -239,14 +240,16 @@ main.wrap {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.made-with-love, .footer-nav {
|
.made-with-love,
|
||||||
|
.footer-nav {
|
||||||
flex-basis: 100%;
|
flex-basis: 100%;
|
||||||
max-width: 100%
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media(min-width: 2048px) {
|
@media (min-width: 2048px) {
|
||||||
html, body {
|
html,
|
||||||
|
body {
|
||||||
font-size: 19px;
|
font-size: 19px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -258,10 +261,23 @@ main.wrap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@keyframes zomg {
|
@keyframes zomg {
|
||||||
0%, 100% { color: #7ccdea;}
|
0%,
|
||||||
16% { color: #0074D9;}
|
100% {
|
||||||
32% { color: #2ECC40;}
|
color: #7ccdea;
|
||||||
48% { color: #FFDC00;}
|
}
|
||||||
64% { color: #B10DC9;}
|
16% {
|
||||||
80% { color: #FF4136;}
|
color: #0074d9;
|
||||||
|
}
|
||||||
|
32% {
|
||||||
|
color: #2ecc40;
|
||||||
|
}
|
||||||
|
48% {
|
||||||
|
color: #ffdc00;
|
||||||
|
}
|
||||||
|
64% {
|
||||||
|
color: #b10dc9;
|
||||||
|
}
|
||||||
|
80% {
|
||||||
|
color: #ff4136;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +0,0 @@
|
|||||||
footer.footer
|
|
||||||
.wrap
|
|
||||||
.row.middle-xs
|
|
||||||
.col-sm-6.made-with-love
|
|
||||||
h3
|
|
||||||
| Made with
|
|
||||||
svg.icon.icon-heart
|
|
||||||
use(xlink:href='#icon-heart')
|
|
||||||
| by
|
|
||||||
a(href='https://carloscuesta.me') Carlos Cuesta
|
|
||||||
.col-sm-6.footer-nav
|
|
||||||
nav
|
|
||||||
a(href="/about") About
|
|
||||||
a(href="/contributors") Contributors
|
|
||||||
a(href="https://github.com/carloscuesta/gitmoji") GitHub
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
svg(style='position: absolute; width: 0; height: 0;', width='0', height='0', version='1.1', xmlns='http://www.w3.org/2000/svg', xmlns:xlink='http://www.w3.org/1999/xlink')
|
|
||||||
defs
|
|
||||||
symbol#icon-heart(viewbox='0 0 64 64')
|
|
||||||
title heart
|
|
||||||
path.heart(d='m61.1 18.2c-6.4-17-27.2-9.4-29.1-.9-2.6-9-22.9-15.7-29.1.9-6.9 18.5 26.7 35.1 29.1 37.8 2.4-2.2 36-19.6 29.1-37.8', fill='#ff5a79')
|
|
||||||
symbol#icon-star(viewbox='0 0 64 64')
|
|
||||||
title star
|
|
||||||
path.twitter(d='M62,25.2H39.1L32,3l-7.1,22.2H2l18.5,13.7l-7,22.1L32,47.3L50.5,61l-7.1-22.2L62,25.2z', fill='#FFDD67')
|
|
||||||
symbol#icon-twitter(viewbox='0 0 64 64')
|
|
||||||
title twitter
|
|
||||||
g(fill='#42ade2')
|
|
||||||
path(d='m59.8 24.3c0 0 1.1-6.2-3.5-3.4 0 0-.4-6.3-4.3-1.9 0 0-2.1-3.9-4.4-.3-3.1 4.8-5.2 12.4-3.2 25l3.8-2.5c2.7-7.9 12.4-8.8 13.7-13.1.9-3-2.1-3.8-2.1-3.8')
|
|
||||||
path(d='m22.1 17.6l-9.9 3.6c2.2-12 16.6-11.2 16.6-11.2s-6.8 3.2-6.7 7.6')
|
|
||||||
path(d='m23.7 19.8l-10.5 1.4c4.8-11.2 18.7-7.3 18.7-7.3s-7.3 1.6-8.2 5.9')
|
|
||||||
g(fill='#ffd93b')
|
|
||||||
path(d='m2 29l5.4-1.4v3.6c0-.1-3.3-.6-5.4-2.2')
|
|
||||||
path(d='M7.4,27.5L2,24.8c3.6-2.8,7.7-1.9,7.7-1.9L7.4,27.5z')
|
|
||||||
g(fill='#e08828')
|
|
||||||
path(d='m33.8 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1')
|
|
||||||
path(d='m25 53h-2.1v7.9c-.3.1-2.1-.1-2.9-.1-1.8 0-3.3 1.3-3.3 1.3h8.3v-9.1')
|
|
||||||
path(d='m54 36.2c3.9 0-4.1 17.5-23.3 17.5-13 0-23.9-5.2-23.9-21.5 0-10.1 6.4-18.3 19.5-15 13.3 3.5 6.5 19 27.7 19', fill='#42ade2')
|
|
||||||
path(d='m37.6 51.7c-15.6 0-14-12-27.9-11.2 5.1 15.8 27.9 11.2 27.9 11.2', fill='#fff')
|
|
||||||
path(d='m39.1 29.2c-10-9.8-20.2 6.2-7.9 12.6 12.1 6.2 20.4-4.8 20.4-4.8s-6.1-1.5-12.5-7.8', fill='#297b9d')
|
|
||||||
circle(cx='15.1', cy='24.9', r='2.5', fill='#3e4347')
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
meta(name="author", content="Carlos Cuesta")
|
|
||||||
meta(name="description", content="Gitmoji is an emoji guide for your commit messages. Aims to be a standarization cheatsheet for using emojis on GitHub's commit messages.")
|
|
||||||
meta(charset="utf-8")
|
|
||||||
meta(name="viewport", content="width=device-width, initial-scale=1.0")
|
|
||||||
meta(name="twitter:card", content="summary")
|
|
||||||
meta(name="twitter:title", content="gitmoji")
|
|
||||||
meta(name="twitter:description", content="An emoji guide for your commit messages.")
|
|
||||||
meta(name="twitter:image", content="https://gitmoji.carloscuesta.me/static/gitmoji.gif")
|
|
||||||
meta(name="twitter:creator", content="@crloscuesta")
|
|
||||||
meta(name="twitter:url", content="https://gitmoji.carloscuesta.me")
|
|
||||||
meta(property="og:title", content="gitmoji")
|
|
||||||
meta(name="og:description", content="An emoji guide for your commit messages.")
|
|
||||||
meta(property="og:image", content="https://gitmoji.carloscuesta.me/static/gitmoji.gif")
|
|
||||||
meta(name="og:url", content="https://gitmoji.carloscuesta.me")
|
|
||||||
meta(name="robots", content="index, follow")
|
|
||||||
link(rel='apple-touch-icon', sizes='57x57', href='/static/apple-icon-57x57.png')
|
|
||||||
link(rel='apple-touch-icon', sizes='60x60', href='/static/apple-icon-60x60.png')
|
|
||||||
link(rel='apple-touch-icon', sizes='72x72', href='/static/apple-icon-72x72.png')
|
|
||||||
link(rel='apple-touch-icon', sizes='76x76', href='/static/apple-icon-76x76.png')
|
|
||||||
link(rel='apple-touch-icon', sizes='114x114', href='/static/apple-icon-114x114.png')
|
|
||||||
link(rel='apple-touch-icon', sizes='120x120', href='/static/apple-icon-120x120.png')
|
|
||||||
link(rel='apple-touch-icon', sizes='144x144', href='/static/apple-icon-144x144.png')
|
|
||||||
link(rel='apple-touch-icon', sizes='152x152', href='/static/apple-icon-152x152.png')
|
|
||||||
link(rel='apple-touch-icon', sizes='180x180', href='/static/apple-icon-180x180.png')
|
|
||||||
link(rel='icon', type='image/png', sizes='192x192', href='/static/android-icon-192x192.png')
|
|
||||||
link(rel='icon', type='image/png', sizes='32x32', href='/static/favicon-32x32.png')
|
|
||||||
link(rel='icon', type='image/png', sizes='96x96', href='/static/favicon-96x96.png')
|
|
||||||
link(rel='icon', type='image/png', sizes='16x16', href='/static/favicon-16x16.png')
|
|
||||||
link(rel='manifest', href='/static/manifest.json')
|
|
||||||
meta(name='msapplication-TileColor', content='#FFDD67')
|
|
||||||
meta(name='msapplication-TileImage', content='/static/ms-icon-144x144.png')
|
|
||||||
meta(name='theme-color', content='#FFDD67')
|
|
||||||
meta(name='google-site-verification', content='78vmlhi_erc-UGybxcGwHyiUtf04wzYExTLa-4LoWio')
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
nav.nav.row.middle-xs
|
|
||||||
input#hamburger-menu.c-hamburger__input(type='checkbox')
|
|
||||||
label.c-hamburger.c-hamburger--htx(for='hamburger-menu')
|
|
||||||
span
|
|
||||||
.modal
|
|
||||||
.modal-content
|
|
||||||
ul.navigation
|
|
||||||
li.item
|
|
||||||
a(href='https://gitmoji.carloscuesta.me', onmousedown="ga('send', 'event', 'Menu', 'Gitmoji');") Home
|
|
||||||
li.item
|
|
||||||
a(href='/about', onmousedown="ga('send', 'event', 'Menu', 'About');") About
|
|
||||||
li.item
|
|
||||||
a(href='/contributors', onmousedown="ga('send', 'event', 'Menu', 'About');") Contributors
|
|
||||||
li.item
|
|
||||||
a(href='https://github.com/carloscuesta/gitmoji', onmousedown="ga('send', 'event', 'Menu', 'GitHub');") GitHub
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
doctype html
|
|
||||||
html
|
|
||||||
head
|
|
||||||
title gitmoji | About | An emoji guide for your commit messages
|
|
||||||
link(rel="canonical", href="https://gitmoji.carloscuesta.me/about")
|
|
||||||
style
|
|
||||||
include ../../dist/css/style.css
|
|
||||||
include _includes/_meta.pug
|
|
||||||
body
|
|
||||||
include _includes/_icons.pug
|
|
||||||
include _includes/_nav.pug
|
|
||||||
header.header
|
|
||||||
include ../images/gitmoji.svg
|
|
||||||
h2 An emoji guide for your commit messages
|
|
||||||
main.wrap
|
|
||||||
section
|
|
||||||
h1 About
|
|
||||||
p #[strong Gitmoji is an emoji guide for GitHub commit messages]. Aims to be a standarization cheatsheet - guide for using #[a(href="http://emoji.muan.co") emojis] on GitHub's commit messages.
|
|
||||||
p #[strong Using emojis] on #[strong commit messages] provides an #[strong easy way] of #[strong identifying the purpose or intention of a commit] with only looking at the emojis used. As there are a lot of different emojis I found the need of creating a guide that can help to use emojis easier.
|
|
||||||
p This project is Open Source, that means everyone can participate, suggesting, discussing and adding new emojis. Take a look at the #[a(href="#contributing-gitmoji") contributing section] and #[a(href="https://github.com/carloscuesta/gitmoji/blob/master/.github/CONTRIBUTING.md") the guidelines for contributing].
|
|
||||||
div
|
|
||||||
a.btn.btn-pink(href="https://github.com/carloscuesta/gitmoji/")
|
|
||||||
svg.icon.icon-star
|
|
||||||
use(xlink:href='#icon-star')
|
|
||||||
| GitHub
|
|
||||||
a.btn.btn-pink(href="https://twitter.com/intent/tweet?text=gitmoji%20%E2%80%93%20An%20%23emoji%20guide%20for%20your%20commit%20messages%20by%20%40crloscuesta%20%F0%9F%98%8D%F0%9F%98%9C&url=https://gitmoji.carloscuesta.me", target="_blank")
|
|
||||||
svg.icon.icon-twitter
|
|
||||||
use(xlink:href='#icon-twitter')
|
|
||||||
| Tweet
|
|
||||||
section
|
|
||||||
h1 Using gitmoji with #[a(href="https://github.com/carloscuesta/gitmoji-cli") gitmoji-cli]
|
|
||||||
p An easy solution for using gitmoji from your command line, is to install #[a(href="https://github.com/carloscuesta/gitmoji-cli") gitmoji-cli]. A gitmoji interactive client for using emojis on commit messages.
|
|
||||||
pre
|
|
||||||
code $ npm i -g gitmoji-cli
|
|
||||||
section
|
|
||||||
h1#contributing-gitmoji Contributing to gitmoji
|
|
||||||
p Contributing to gitmoji it's a piece of cake 🍰! This project it's a static website built with #[i Pug, SCSS, Gulp and ES6]. All the gitmojis displayed are rendered from a JSON file. Before submitting any pull request, please follow the next steps:
|
|
||||||
ol
|
|
||||||
li #[a(href="https://github.com/carloscuesta/gitmoji/issues/new") Create an issue] filling the template.
|
|
||||||
li After discussing the idea, feature or suggestion, #[a(href="https://github.com/carloscuesta/gitmoji/fork") fork gitmoji]
|
|
||||||
li Create a new branch with the feature name. (Eg: add-emoji-deploy, fix-website-header)
|
|
||||||
li Make your changes and send a #[a(href="https://help.github.com/articles/creating-a-pull-request/") pull request ].
|
|
||||||
div
|
|
||||||
a.btn.btn-pink(href="https://github.com/carloscuesta/gitmoji/blob/master/.github/CONTRIBUTING.md") Contributing guidelines
|
|
||||||
|
|
||||||
include _includes/_footer.pug
|
|
||||||
script
|
|
||||||
include ../scripts/main.js
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
doctype html
|
|
||||||
html
|
|
||||||
head
|
|
||||||
title gitmoji | Contributors | An emoji guide for your commit messages
|
|
||||||
link(rel="canonical", href="https://gitmoji.carloscuesta.me/contributors")
|
|
||||||
style
|
|
||||||
include ../../dist/css/style.css
|
|
||||||
include _includes/_meta.pug
|
|
||||||
body
|
|
||||||
include _includes/_icons.pug
|
|
||||||
include _includes/_nav.pug
|
|
||||||
header.header
|
|
||||||
include ../images/gitmoji.svg
|
|
||||||
h2 Contributors
|
|
||||||
main.wrap
|
|
||||||
.row.center-xs
|
|
||||||
each contributor in contributors
|
|
||||||
article.contributor.col-xs-3.col-sm-2
|
|
||||||
a(href=contributor.html_url)
|
|
||||||
img.contributor-picture(src=contributor.avatar_url)
|
|
||||||
include _includes/_footer.pug
|
|
||||||
script.
|
|
||||||
var statuses = ['joy', 'loved', 'haha', 'sunglasses', 'sexy', 'tongue'];
|
|
||||||
document.getElementById(statuses[Math.floor(Math.random() * statuses.length)]).classList.add('emoji-visible');
|
|
||||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
|
||||||
ga('create', 'UA-67824860-7', 'auto');
|
|
||||||
ga('send', 'pageview');
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
doctype html
|
|
||||||
html
|
|
||||||
head
|
|
||||||
title gitmoji | An emoji guide for your commit messages
|
|
||||||
link(rel="canonical", href="https://gitmoji.carloscuesta.me")
|
|
||||||
style
|
|
||||||
include ../../dist/css/style.css
|
|
||||||
include _includes/_meta.pug
|
|
||||||
body.emoji-container
|
|
||||||
include _includes/_icons.pug
|
|
||||||
include _includes/_nav.pug
|
|
||||||
header.header
|
|
||||||
include ../images/gitmoji.svg
|
|
||||||
h2 An emoji guide for your commit messages
|
|
||||||
div.header-buttons
|
|
||||||
a.btn.btn-pink(href="https://github.com/carloscuesta/gitmoji/")
|
|
||||||
svg.icon.icon-star
|
|
||||||
use(xlink:href='#icon-star')
|
|
||||||
| GitHub
|
|
||||||
a.btn.btn-pink(href="https://twitter.com/intent/tweet?text=gitmoji%20%E2%80%93%20An%20%23emoji%20guide%20for%20your%20commit%20messages%20by%20%40crloscuesta%20%F0%9F%98%8D%F0%9F%98%9C&url=https://gitmoji.carloscuesta.me", target="_blank")
|
|
||||||
svg.icon.icon-twitter
|
|
||||||
use(xlink:href='#icon-twitter')
|
|
||||||
| Tweet
|
|
||||||
main.wrap
|
|
||||||
.row.center-xs#gitmoji-list
|
|
||||||
each gitmoji in emojis.gitmojis
|
|
||||||
article.emoji.col-xs-12.col-sm-6.col-md-3
|
|
||||||
.emoji-card
|
|
||||||
header(class=gitmoji.name+' emoji-header')
|
|
||||||
span(data-clipboard-text=gitmoji.code).emoji-icon.gitmoji=gitmoji.emoji
|
|
||||||
.emoji-info
|
|
||||||
code=gitmoji.code
|
|
||||||
p=gitmoji.description
|
|
||||||
include _includes/_footer.pug
|
|
||||||
script(src='//cdn.jsdelivr.net/clipboard.js/1.5.13/clipboard.min.js')
|
|
||||||
script
|
|
||||||
include ../scripts/clipboard.js
|
|
||||||
include ../scripts/main.js
|
|
||||||
include ../scripts/notificationFx.js
|
|
||||||
include ../scripts/notification.js
|
|
||||||