├── .gitignore
├── docs
├── fonts
│ └── theserif
│ │ ├── theSerif-bold.ttf
│ │ └── theSerif-black.eot
├── favicon.ico
├── robots.txt
├── contributions.png
├── default-thumb.jpg
├── favicon-16x16.png
├── favicon-32x32.png
├── apple-touch-icon.png
├── mstile-150x150.png
├── maks-dancing-short.gif
├── android-chrome-192x192.png
├── android-chrome-512x512.png
├── processing-on-pi-website.jpg
├── browserconfig.xml
├── page
│ └── 1
│ │ └── index.html
├── post
│ └── page
│ │ └── 1
│ │ └── index.html
├── tags
│ ├── shortcodes
│ │ ├── page
│ │ │ └── 1
│ │ │ │ └── index.html
│ │ └── index.html
│ ├── index.xml
│ └── index.html
├── categories
│ ├── shortcodes
│ │ └── page
│ │ │ └── 1
│ │ │ └── index.html
│ ├── index.xml
│ └── index.html
├── manifest.json
├── safari-pinned-tab.svg
├── dist
│ ├── gsoc-theme.min.js
│ └── processing-theme.min.js
├── sitemap.xml
├── img
│ └── spinner.svg
├── sitemap.xsl
├── result
│ └── index.html
├── process
│ └── index.html
├── 404.html
└── lib
│ └── lazyload
│ └── lazyload.min.js
├── themes
└── gsoc
│ ├── static
│ ├── fonts
│ │ └── theserif
│ │ │ ├── theSerif-bold.ttf
│ │ │ └── theSerif-black.eot
│ ├── favicon.ico
│ ├── default-thumb.jpg
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ ├── mstile-150x150.png
│ ├── apple-touch-icon.png
│ ├── android-chrome-192x192.png
│ ├── android-chrome-512x512.png
│ ├── browserconfig.xml
│ ├── manifest.json
│ ├── safari-pinned-tab.svg
│ ├── dist
│ │ ├── gsoc-theme.min.js
│ │ └── processing-theme.min.js
│ ├── img
│ │ └── spinner.svg
│ ├── sitemap.xsl
│ └── lib
│ │ └── lazyload
│ │ └── lazyload.min.js
│ ├── .gitignore
│ ├── layouts
│ ├── _default
│ │ ├── single.md
│ │ ├── single.html
│ │ ├── terms.html
│ │ ├── taxonomy.html
│ │ ├── baseof.html
│ │ └── section.html
│ ├── shortcodes
│ │ ├── row.html
│ │ ├── left.html
│ │ ├── muted.html
│ │ ├── center.html
│ │ ├── right.html
│ │ ├── columns.html
│ │ ├── button.html
│ │ ├── message.html
│ │ ├── panel.html
│ │ ├── tip.html
│ │ ├── warning.html
│ │ ├── alert.html
│ │ ├── imgproc.html
│ │ └── figure.html
│ ├── robots.txt
│ ├── partials
│ │ ├── toc.html
│ │ ├── header.html
│ │ ├── scripts.html
│ │ ├── social.html
│ │ ├── slideout.html
│ │ ├── comments.html
│ │ ├── footer.html
│ │ ├── post
│ │ │ └── copyright.html
│ │ └── head.html
│ ├── sitemap.xml
│ ├── 404.html
│ ├── tutorial
│ │ ├── single.html
│ │ ├── summary.html
│ │ └── section.html
│ ├── post
│ │ ├── summary.html
│ │ └── single.html
│ └── index.html
│ ├── src
│ ├── .babelrc
│ ├── js
│ │ ├── lib
│ │ │ └── math.js
│ │ └── gsoc-theme.js
│ ├── sass
│ │ ├── _mixins.scss
│ │ ├── mixins
│ │ │ ├── _labels.scss
│ │ │ ├── _fonts.scss
│ │ │ ├── _buttons.scss
│ │ │ ├── _breakpoints.scss
│ │ │ ├── _gradients.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _flex.scss
│ │ │ └── _utils.scss
│ │ ├── components
│ │ │ ├── _footer.scss
│ │ │ ├── _figure.scss
│ │ │ ├── _offcanvas.scss
│ │ │ ├── _print.scss
│ │ │ ├── _reset.scss
│ │ │ ├── _breadcrumbs.scss
│ │ │ ├── _post.scss
│ │ │ ├── _tabs.scss
│ │ │ ├── _modal.scss
│ │ │ ├── _dropdown.scss
│ │ │ ├── _colors.scss
│ │ │ ├── _grid.scss
│ │ │ ├── _positioning.scss
│ │ │ ├── _tutorial-list.scss
│ │ │ ├── _tables.scss
│ │ │ ├── _labels.scss
│ │ │ ├── _messages.scss
│ │ │ ├── _code.scss
│ │ │ ├── _pagination.scss
│ │ │ ├── _utils.scss
│ │ │ ├── _navigation.scss
│ │ │ ├── _sizing.scss
│ │ │ ├── _animation.scss
│ │ │ ├── _buttons.scss
│ │ │ ├── _icons.scss
│ │ │ └── _layout.scss
│ │ ├── gsoc-theme.scss
│ │ └── _components.scss
│ ├── package.json
│ └── gulpfile.js
│ ├── CHANGELOG.md
│ ├── images
│ ├── tn.png
│ ├── showcase.png
│ └── screenshot.png
│ ├── exampleSite
│ ├── content
│ │ ├── post
│ │ │ ├── hidden-post.md
│ │ │ ├── theme-preview.md
│ │ │ └── shortcodes.md
│ │ └── about.md
│ └── config.toml
│ ├── archetypes
│ └── default.md
│ ├── LICENSE.md
│ ├── theme.toml
│ ├── i18n
│ ├── zh-CN.yaml
│ ├── en.yaml
│ ├── es.yaml
│ └── fr.yaml
│ └── README.md
├── content
├── contributions.png
├── maks-dancing-short.gif
├── processing-on-pi-website.jpg
├── result.md
├── process.md
├── post
│ └── hidden-post.md
└── context.md
├── archetypes
├── default-original.md
└── default.md
├── README.md
└── config.toml
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .idea
--------------------------------------------------------------------------------
/docs/fonts/theserif/theSerif-bold.ttf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/themes/gsoc/static/fonts/theserif/theSerif-bold.ttf:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/themes/gsoc/.gitignore:
--------------------------------------------------------------------------------
1 | /src/node_modules/
2 | /.idea/
3 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/_default/single.md:
--------------------------------------------------------------------------------
1 | {{ .RawContent }}
--------------------------------------------------------------------------------
/themes/gsoc/src/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env"]
4 | ]
5 | }
--------------------------------------------------------------------------------
/themes/gsoc/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 |
3 | ## 0.0.1
4 |
5 | - Initial release
6 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/row.html:
--------------------------------------------------------------------------------
1 |
2 | {{.Inner}}
3 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Sitemap: {{ "sitemap.xml" | absURL }}
3 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/left.html:
--------------------------------------------------------------------------------
1 |
2 | {{ .Inner }}
3 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/muted.html:
--------------------------------------------------------------------------------
1 |
2 | {{.Inner}}
3 |
4 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/center.html:
--------------------------------------------------------------------------------
1 |
2 | {{ .Inner }}
3 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/right.html:
--------------------------------------------------------------------------------
1 |
2 | {{ .Inner }}
3 |
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Sitemap: https://msurguy.github.io/GSOC2018-processing-pi/sitemap.xml
3 |
--------------------------------------------------------------------------------
/docs/contributions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/contributions.png
--------------------------------------------------------------------------------
/docs/default-thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/default-thumb.jpg
--------------------------------------------------------------------------------
/docs/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/favicon-16x16.png
--------------------------------------------------------------------------------
/docs/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/favicon-32x32.png
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/columns.html:
--------------------------------------------------------------------------------
1 |
2 | {{ .Inner }}
3 |
4 |
--------------------------------------------------------------------------------
/content/contributions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/content/contributions.png
--------------------------------------------------------------------------------
/docs/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/apple-touch-icon.png
--------------------------------------------------------------------------------
/docs/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/mstile-150x150.png
--------------------------------------------------------------------------------
/themes/gsoc/images/tn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/images/tn.png
--------------------------------------------------------------------------------
/docs/maks-dancing-short.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/maks-dancing-short.gif
--------------------------------------------------------------------------------
/content/maks-dancing-short.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/content/maks-dancing-short.gif
--------------------------------------------------------------------------------
/themes/gsoc/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/favicon.ico
--------------------------------------------------------------------------------
/docs/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/android-chrome-192x192.png
--------------------------------------------------------------------------------
/docs/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/android-chrome-512x512.png
--------------------------------------------------------------------------------
/themes/gsoc/images/showcase.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/images/showcase.png
--------------------------------------------------------------------------------
/archetypes/default-original.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "{{ replace .Name "-" " " | title }}"
3 | date: {{ .Date }}
4 | draft: true
5 | ---
6 |
7 |
--------------------------------------------------------------------------------
/docs/processing-on-pi-website.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/processing-on-pi-website.jpg
--------------------------------------------------------------------------------
/themes/gsoc/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/images/screenshot.png
--------------------------------------------------------------------------------
/themes/gsoc/src/js/lib/math.js:
--------------------------------------------------------------------------------
1 | // lib/math.js
2 | export function sum(x, y) {
3 | return x + y;
4 | }
5 |
6 | export var pi = 3.141593;
--------------------------------------------------------------------------------
/content/processing-on-pi-website.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/content/processing-on-pi-website.jpg
--------------------------------------------------------------------------------
/themes/gsoc/static/default-thumb.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/default-thumb.jpg
--------------------------------------------------------------------------------
/themes/gsoc/static/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/favicon-16x16.png
--------------------------------------------------------------------------------
/themes/gsoc/static/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/favicon-32x32.png
--------------------------------------------------------------------------------
/themes/gsoc/static/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/mstile-150x150.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Redirect
2 |
3 | Please see https://msurguy.github.io/GSOC2018-processing-pi/ to read the final report for my Google Summer of Code 2018
--------------------------------------------------------------------------------
/docs/fonts/theserif/theSerif-black.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/docs/fonts/theserif/theSerif-black.eot
--------------------------------------------------------------------------------
/themes/gsoc/static/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/apple-touch-icon.png
--------------------------------------------------------------------------------
/themes/gsoc/static/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/android-chrome-192x192.png
--------------------------------------------------------------------------------
/themes/gsoc/static/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/android-chrome-512x512.png
--------------------------------------------------------------------------------
/content/result.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Results"
3 | date: 2018-08-13T21:38:52+08:00
4 | lastmod: 2018-08-13T21:41:52+08:00
5 | menu: "sidebar"
6 | weight: 15
7 | ---
--------------------------------------------------------------------------------
/themes/gsoc/static/fonts/theserif/theSerif-black.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msurguy/GSOC2018-processing-pi/master/themes/gsoc/static/fonts/theserif/theSerif-black.eot
--------------------------------------------------------------------------------
/themes/gsoc/layouts/_default/single.html:
--------------------------------------------------------------------------------
1 | {{ define "content" -}}
2 |
3 |
4 | {{ .Content }}
5 |
6 |
7 | {{- end }}
--------------------------------------------------------------------------------
/content/process.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "Process"
3 | date: 2018-08-13T21:38:52+08:00
4 | lastmod: 2018-08-13T21:41:52+08:00
5 | menu: "sidebar"
6 | weight: 10
7 | ---
8 |
9 | # What process looked like
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/button.html:
--------------------------------------------------------------------------------
1 | {{ if .Get "text"}} {{ .Get "text"}} {{ end }}
2 |
3 |
4 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/_mixins.scss:
--------------------------------------------------------------------------------
1 | @import "mixins/breakpoints";
2 | @import "mixins/fonts";
3 | @import "mixins/flex";
4 | @import "mixins/grid";
5 | @import "mixins/buttons";
6 | @import "mixins/labels";
7 | @import "mixins/gradients";
8 | @import "mixins/utils";
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/mixins/_labels.scss:
--------------------------------------------------------------------------------
1 | @mixin label($text, $back) {
2 | background: $back;
3 | color: $text;
4 |
5 | &.tag,
6 | &.outline {
7 | background: none;
8 | border-color: $back;
9 | color: $back;
10 | }
11 | }
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_footer.scss:
--------------------------------------------------------------------------------
1 | .footer {
2 | line-height: 24px;
3 | color: #959595;
4 | border-top: 1px solid #CCC;
5 |
6 | a {
7 | text-decoration: none;
8 | font-weight: normal;
9 | color: #959595;
10 | border-bottom: 1px solid #CECECE;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/docs/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #b91d47
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/gsoc-theme.scss:
--------------------------------------------------------------------------------
1 | /*
2 | Based on Kube CSS & JS Framework (https://github.com/imperavi/kube)
3 | */
4 |
5 | // Font family: theSerif
6 | @import url('https://fonts.googleapis.com/css?family=Noto+Sans:400,400i,700');
7 |
8 | @import "variables";
9 | @import "mixins";
10 | @import "components";
--------------------------------------------------------------------------------
/themes/gsoc/static/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #b91d47
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/content/post/hidden-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "This is a hidden post."
3 | date: 2018-03-08T17:40:19+08:00
4 | lastmod: 2018-03-08T22:01:19+08:00
5 | draft: true
6 |
7 | hiddenFromHomePage: true
8 | ---
9 |
10 | This post is hidden from the home page.
11 |
12 |
13 |
14 | But you can see it in archives, rss or other pages.
--------------------------------------------------------------------------------
/themes/gsoc/exampleSite/content/post/hidden-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "This is a hidden post."
3 | date: 2018-03-08T17:40:19+08:00
4 | lastmod: 2018-03-08T22:01:19+08:00
5 | draft: false
6 |
7 | hiddenFromHomePage: true
8 | ---
9 |
10 | This post is hidden from the home page.
11 |
12 |
13 |
14 | But you can see it in archives, rss or other pages.
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/message.html:
--------------------------------------------------------------------------------
1 | {{ if .IsNamedParams }}
2 |
3 | {{ if .Get "title" }}
4 |
5 | {{ .Get "title" }}
6 |
7 | {{ end }}
8 | {{ .Inner }}
9 |
10 | {{ else }}
11 |
12 | {{ .Inner }}
13 |
14 | {{ end }}
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/panel.html:
--------------------------------------------------------------------------------
1 |
2 | {{ with .Get "header" }}
{{ htmlUnescape . | markdownify}}
{{end}}
3 |
{{.Inner}}
4 | {{ with .Get "footer" }}{{end}}
5 |
6 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/tip.html:
--------------------------------------------------------------------------------
1 |
2 | {{if .Get "title" }}
3 |
4 | {{ with .Get "title" }}
{{htmlUnescape .}}
{{end}}
5 |
{{.Inner}}
6 |
7 | {{else}}
8 | {{.Inner}}
9 | {{end}}
10 |
11 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/warning.html:
--------------------------------------------------------------------------------
1 |
2 | {{if .Get "title" }}
3 |
4 | {{ with .Get "title" }}
{{htmlUnescape .}}
{{end}}
5 |
{{.Inner}}
6 |
7 | {{else}}
8 | {{.Inner}}
9 | {{end}}
10 |
11 |
--------------------------------------------------------------------------------
/docs/page/1/index.html:
--------------------------------------------------------------------------------
1 | https://msurguy.github.io/GSOC2018-processing-pi/
--------------------------------------------------------------------------------
/docs/post/page/1/index.html:
--------------------------------------------------------------------------------
1 | https://msurguy.github.io/GSOC2018-processing-pi/post/
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_figure.scss:
--------------------------------------------------------------------------------
1 | figure {
2 | &.center {
3 | text-align: center;
4 | }
5 |
6 | &.right {
7 | text-align: right;
8 | }
9 |
10 | &.left {
11 | text-align: left;
12 | }
13 |
14 | img {
15 | display: block;
16 | border: 0;
17 | }
18 |
19 | &.border {
20 | img {
21 | border-top: 3px #CCC solid;
22 | border-bottom: 3px #CCC solid;
23 | }
24 | }
25 |
26 | }
--------------------------------------------------------------------------------
/docs/tags/shortcodes/page/1/index.html:
--------------------------------------------------------------------------------
1 | https://msurguy.github.io/GSOC2018-processing-pi/tags/shortcodes/
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/alert.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | {{ if .IsNamedParams }}
11 | {{.Get "title"}}
12 | {{ end }}
13 |
14 | {{ .Inner }}
15 |
16 |
--------------------------------------------------------------------------------
/docs/categories/shortcodes/page/1/index.html:
--------------------------------------------------------------------------------
1 | https://msurguy.github.io/GSOC2018-processing-pi/categories/shortcodes/
--------------------------------------------------------------------------------
/docs/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "",
3 | "icons": [
4 | {
5 | "src": "/android-chrome-192x192.png",
6 | "sizes": "192x192",
7 | "type": "image/png"
8 | },
9 | {
10 | "src": "/android-chrome-512x512.png",
11 | "sizes": "512x512",
12 | "type": "image/png"
13 | }
14 | ],
15 | "theme_color": "#ffffff",
16 | "background_color": "#ffffff",
17 | "display": "standalone"
18 | }
--------------------------------------------------------------------------------
/themes/gsoc/layouts/partials/toc.html:
--------------------------------------------------------------------------------
1 | {{ if or .Params.toc (and .Site.Params.toc (ne .Params.toc false)) }}
2 |
3 |
{{ T "toc" }}
4 | {{ $globalAutoCollapseToc := .Site.Params.autoCollapseToc | default false }}
5 |
6 | {{.TableOfContents}}
7 |
8 |
9 | {{- end }}
--------------------------------------------------------------------------------
/themes/gsoc/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "",
3 | "icons": [
4 | {
5 | "src": "/android-chrome-192x192.png",
6 | "sizes": "192x192",
7 | "type": "image/png"
8 | },
9 | {
10 | "src": "/android-chrome-512x512.png",
11 | "sizes": "512x512",
12 | "type": "image/png"
13 | }
14 | ],
15 | "theme_color": "#ffffff",
16 | "background_color": "#ffffff",
17 | "display": "standalone"
18 | }
--------------------------------------------------------------------------------
/themes/gsoc/layouts/partials/header.html:
--------------------------------------------------------------------------------
1 |
10 |
11 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/mixins/_fonts.scss:
--------------------------------------------------------------------------------
1 | // Text
2 | @mixin text-font($font) {
3 | body {
4 | font-family: #{$font};
5 | }
6 | }
7 |
8 | // Headings
9 | @mixin headings-font($font) {
10 | h1.title, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
11 | font-family: #{$font};
12 | }
13 | }
14 |
15 | // Buttons
16 | @mixin buttons-font($font) {
17 | button, .button {
18 | font-family: #{$font};
19 | }
20 | }
21 |
22 | // Inputs
23 | @mixin inputs-font($font) {
24 | input, textarea, select {
25 | font-family: #{$font};
26 | }
27 | }
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_offcanvas.scss:
--------------------------------------------------------------------------------
1 | .offcanvas {
2 | background: #fff;
3 | position: fixed;
4 | padding: $base-line;
5 | height: 100%;
6 | top: 0;
7 | left: 0;
8 | z-index: $z-over-page;
9 | overflow-y: scroll;
10 | }
11 | .offcanvas .close {
12 | position: absolute;
13 | top: 8px;
14 | right: 8px;
15 | }
16 | .offcanvas-left {
17 | border-right: 1px solid rgba(0, 0, 0, .1);
18 | }
19 | .offcanvas-right {
20 | left: auto;
21 | right: 0;
22 | border-left: 1px solid rgba(0, 0, 0, .1);
23 | }
24 | .offcanvas-push-body {
25 | position: relative;
26 | }
--------------------------------------------------------------------------------
/themes/gsoc/exampleSite/content/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "About"
3 | date: 2017-08-20T21:38:52+08:00
4 | lastmod: 2017-08-28T21:41:52+08:00
5 | menu: "main"
6 | weight: 50
7 |
8 | ---
9 |
10 | Hugo is a static site engine written in Go.
11 |
12 |
13 | It makes use of a variety of open source projects including:
14 |
15 | * [Cobra](https://github.com/spf13/cobra)
16 | * [Viper](https://github.com/spf13/viper)
17 | * [J Walter Weatherman](https://github.com/spf13/jWalterWeatherman)
18 | * [Cast](https://github.com/spf13/cast)
19 |
20 | Learn more and contribute on [GitHub](https://github.com/gohugoio).
21 |
22 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/sitemap.xml:
--------------------------------------------------------------------------------
1 | {{ "" | safeHTML }}xml-stylesheet type="text/xsl" href="{{ "sitemap.xsl" | absURL }}"{{ "?>" | safeHTML }}
2 |
3 | {{ range .Data.Pages }}
4 |
5 | {{ .Permalink }}{{ if not .Lastmod.IsZero }}
6 | {{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}{{ end }}{{ with .Sitemap.ChangeFreq }}
7 | {{ . }}{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
8 | {{ .Sitemap.Priority }}{{ end }}
9 |
10 | {{ end }}
11 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/partials/scripts.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | {{- if .Site.GoogleAnalytics -}}
10 | {{ template "_internal/google_analytics_async.html" . }}
11 | {{- end -}}
12 |
13 |
14 | {{ range .Site.Params.customJS }}
15 |
16 | {{ end }}
17 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/partials/social.html:
--------------------------------------------------------------------------------
1 |
2 | {{- range $name, $path := .Site.Params.social }}
3 | {{- if $path }}
4 | {{- $realName := slicestr $name 2 }}
5 |
6 | {{- end }}
7 | {{- end }}
8 | {{ if .Site.LanguagePrefix -}}
9 |
10 | {{- else -}}
11 |
12 | {{- end }}
13 |
--------------------------------------------------------------------------------
/archetypes/default.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "{{ replace .TranslationBaseName "-" " " | title }}"
3 | date: {{ .Date }}
4 | lastmod: {{ .Date }}
5 | draft: true
6 | keywords: []
7 | description: ""
8 | tags: []
9 | categories: []
10 | author: ""
11 |
12 | # You can also close(false) or open(true) something for this content.
13 | # P.S. comment can only be closed
14 | comment: false
15 | toc: false
16 | autoCollapseToc: false
17 | postMetaInFooter: false
18 | hiddenFromHomePage: false
19 | # You can also define another contentCopyright. e.g. contentCopyright: "This is another copyright."
20 | contentCopyright: false
21 |
22 | # You unlisted posts you might want not want the header or footer to show
23 | hideHeaderAndFooter: false
24 |
25 | ---
26 |
27 |
28 |
--------------------------------------------------------------------------------
/themes/gsoc/archetypes/default.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: "{{ replace .TranslationBaseName "-" " " | title }}"
3 | date: {{ .Date }}
4 | lastmod: {{ .Date }}
5 | draft: true
6 | keywords: []
7 | description: ""
8 | tags: []
9 | categories: []
10 | author: ""
11 |
12 | # You can also close(false) or open(true) something for this content.
13 | # P.S. comment can only be closed
14 | comment: false
15 | toc: false
16 | autoCollapseToc: false
17 | postMetaInFooter: false
18 | hiddenFromHomePage: false
19 | # You can also define another contentCopyright. e.g. contentCopyright: "This is another copyright."
20 | contentCopyright: false
21 |
22 | # You unlisted posts you might want not want the header or footer to show
23 | hideHeaderAndFooter: false
24 | ---
25 |
26 |
27 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_print.scss:
--------------------------------------------------------------------------------
1 | @media print {
2 |
3 | * {
4 | background: transparent !important;
5 | color: black !important;
6 | box-shadow: none !important;
7 | text-shadow: none !important;
8 | }
9 |
10 | a,
11 | a:visited {
12 | text-decoration: underline;
13 | }
14 |
15 | pre, blockquote {
16 | border: 1px solid #999;
17 | page-break-inside: avoid;
18 | }
19 |
20 | p, h2, h3 {
21 | orphans: 3;
22 | widows: 3;
23 | }
24 |
25 | thead { display: table-header-group; }
26 | tr, img { page-break-inside: avoid; }
27 | img { max-width: 100% !important; }
28 | h2, h3, h4 { page-break-after: avoid; }
29 | @page { margin: 0.5cm; }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/404.html:
--------------------------------------------------------------------------------
1 | {{ define "title" }}404 page not found - {{ .Site.Title }}{{ end }}
2 |
3 | {{ define "content" }}
4 |
9 |
18 | {{ end }}
19 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/partials/slideout.html:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/shortcodes/imgproc.html:
--------------------------------------------------------------------------------
1 | {{ $original := .Page.Resources.GetMatch (printf "%s*" (.Get 0)) }}
2 | {{ $command := .Get 1 }}
3 | {{ $options := .Get 2 }}
4 | {{ $caption := .Get 3 }}
5 | {{ if eq $command "Fit"}}
6 | {{ .Scratch.Set "image" ($original.Fit $options) }}
7 | {{ else if eq $command "Resize"}}
8 | {{ .Scratch.Set "image" ($original.Resize $options) }}
9 | {{ else if eq $command "Fill"}}
10 | {{ .Scratch.Set "image" ($original.Fill $options) }}
11 | {{ else }}
12 | {{ errorf "Invalid image processing command: Must be one of Fit, Fill or Resize."}}
13 | {{ end }}
14 | {{ $image := .Scratch.Get "image" }}
15 |
16 |
17 |
18 | {{ $caption }}
19 |
20 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/tutorial/single.html:
--------------------------------------------------------------------------------
1 | {{ define "content" -}}
2 |
3 | {{ .Title }}
4 |
5 |
Published: {{ .Date.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }} by: {{ if .Params.author }}{{ .Params.author | safeHTML }}{{ else }}{{ .Site.Author.name | safeHTML }}{{ end }}
6 | {{ with .Params.tags -}}
7 |
8 | {{ range . }}
9 |
{{ . }}
10 | {{ end }}
11 |
12 |
13 |
14 | {{- end }}
15 |
16 |
17 | {{ .Content }}
18 |
19 |
20 | {{- end }}
21 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/mixins/_buttons.scss:
--------------------------------------------------------------------------------
1 | @mixin button($color-text, $color-back)
2 | {
3 | color: $color-text;
4 | background-color: $color-back;
5 |
6 | &:hover {
7 | color: $color-text;
8 | background-color: lighten($color-back, 20%);
9 | }
10 | &:disabled,
11 | &.disabled {
12 | color: rgba($color-text, .7);
13 | background-color: rgba($color-back, .7);
14 | }
15 | &.outline {
16 | background: none;
17 | color: $color-back;
18 | border-color: $color-back;
19 |
20 | &:hover {
21 | color: rgba($color-back, .6);
22 | border-color: rgba($color-back, .5);
23 | }
24 | &:disabled,
25 | &.disabled {
26 | background: none;
27 | color: rgba($color-back, .7);
28 | border-color: rgba($color-back, .5);
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/mixins/_breakpoints.scss:
--------------------------------------------------------------------------------
1 | @mixin breakpoint($min: 0, $max: 0) {
2 |
3 | $type: type-of($min);
4 |
5 | @if $type == string
6 | {
7 | @if $min == sm
8 | {
9 | @media (max-width: $sm) { @content; }
10 | }
11 | @else if $min == md
12 | {
13 | @media (min-width: $sm) and (max-width: $md) { @content; }
14 | }
15 | @else if $min == lg
16 | {
17 | @media (min-width: $lg) { @content; }
18 | }
19 | }
20 | @else if $type == number
21 | {
22 | $query: "all" !default;
23 | @if $min != 0 and $max != 0 { $query: "(min-width: #{$min}) and (max-width: #{$max})"; }
24 | @else if $min != 0 and $max == 0 { $query: "(min-width: #{$min})"; }
25 | @else if $min == 0 and $max != 0 { $query: "(max-width: #{$max})"; }
26 | @media #{$query} { @content; }
27 | }
28 | }
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_reset.scss:
--------------------------------------------------------------------------------
1 | html {
2 | box-sizing: border-box;
3 | }
4 | *,
5 | *:before,
6 | *:after {
7 | box-sizing: inherit;
8 | }
9 | * {
10 | margin: 0;
11 | padding: 0;
12 | outline: 0;
13 | -webkit-overflow-scrolling: touch;
14 | }
15 | img,
16 | video,
17 | audio {
18 | max-width: 100%;
19 | }
20 | img,
21 | video {
22 | height: auto;
23 | }
24 | svg {
25 | max-height: 100%;
26 | }
27 | iframe {
28 | border: none;
29 | }
30 | ::-moz-focus-inner {
31 | border: 0;
32 | padding: 0;
33 | }
34 | input[type="radio"],
35 | input[type="checkbox"] {
36 | vertical-align: middle;
37 | position: relative;
38 | bottom: 0.15rem;
39 | font-size: 115%;
40 | margin-right: 3px;
41 | }
42 | input[type="search"] {
43 | -webkit-appearance: textfield;
44 | }
45 | input[type="search"]::-webkit-search-decoration,
46 | input[type="search"]::-webkit-search-cancel-button {
47 | -webkit-appearance: none;
48 | }
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_breadcrumbs.scss:
--------------------------------------------------------------------------------
1 | .breadcrumbs {
2 | font-size: $font-size-small;
3 | margin-bottom: $base-line;
4 |
5 | & ul {
6 | @include flex;
7 | @include flex-items-middle;
8 | }
9 | &.push-center ul {
10 | @include flex-items-center;
11 | }
12 | & span,
13 | & a {
14 | font-style: normal;
15 | padding: 0 10px;
16 | display: inline-block;
17 | white-space: nowrap;
18 | }
19 | & li {
20 | &:after {
21 | display: inline-block;
22 | content: '/';
23 | color: rgba(0, 0, 0, .3);
24 | }
25 | &:last-child:after {
26 | display: none;
27 | }
28 | &:first-child span,
29 | &:first-child a {
30 | padding-left: 0;
31 | }
32 | &.active a {
33 | color: $color-text;
34 | text-decoration: none;
35 | cursor: text;
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/partials/comments.html:
--------------------------------------------------------------------------------
1 | {{ if and .IsPage (ne .Params.comment false) }}
2 |
3 | {{- if .Site.DisqusShortname -}}
4 |
5 |
17 |
18 | {{- end -}}
19 |
20 |
21 | {{- end }}
22 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/_components.scss:
--------------------------------------------------------------------------------
1 | // Core
2 | @import "components/reset";
3 | @import "components/colors";
4 | @import "components/typography";
5 | @import "components/grid";
6 | @import "components/layout";
7 | @import "components/tables";
8 | //@import "components/forms";
9 | @import "components/buttons";
10 | @import "components/labels";
11 | @import "components/breadcrumbs";
12 | @import "components/pagination";
13 | @import "components/icons";
14 | @import "components/positioning";
15 | @import "components/sizing";
16 | @import "components/utils";
17 | @import "components/print";
18 | @import "components/navigation";
19 | @import "components/post";
20 | @import "components/figure";
21 | @import "components/code";
22 | @import "components/footer";
23 |
24 | // Plugins
25 | @import "components/animation";
26 | //@import "components/dropdown";
27 | @import "components/messages";
28 | //@import "components/modal";
29 | @import "components/offcanvas";
30 | @import "components/tabs";
31 | @import "components/tutorial-list";
32 |
33 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_post.scss:
--------------------------------------------------------------------------------
1 | .post {
2 | max-width: 740px;
3 |
4 | img {
5 | max-width: 100%;
6 | height: auto;
7 | display: inline-block;
8 | vertical-align: middle;
9 | }
10 |
11 | .post-meta {
12 | margin-bottom: 20px;
13 | margin-top: 10px;
14 | }
15 |
16 | .post-tags {
17 | a {
18 | margin-right: 5px;
19 | //color: $theme-color;
20 | word-break: break-all;
21 |
22 | span::before {
23 | content: '#';
24 | }
25 | }
26 | }
27 | }
28 |
29 | .post-content {
30 |
31 | //> table {
32 | // max-width: 100%;
33 | // margin: 10px 0;
34 | // border-spacing: 0;
35 | // box-shadow: 2px 2px 3px rgba(0,0,0,.125);
36 | //
37 | // thead {
38 | // background: $color-aluminum;
39 | // }
40 | //
41 | // th, td {
42 | // padding: 5px 15px;
43 | // border: 1px double $color-darkgray;
44 | // }
45 | //
46 | // tr:hover {
47 | // background-color: $color-aluminum;
48 | // }
49 | //}
50 |
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/mixins/_gradients.scss:
--------------------------------------------------------------------------------
1 | // vertical
2 | @mixin gradient-vertical($start: #555, $end: #333) {
3 | background-color: $start;
4 | background-image: linear-gradient(to bottom, $start 0%, $end 100%);
5 | }
6 |
7 | // vertical to opacity
8 | @mixin gradient-vertical-to-opacity($color, $opacity: 0) {
9 | $rgba: rgba(red($color), green($color), blue($color), $opacity);
10 | background: linear-gradient(to bottom, $color 0%, $rgba 100%);
11 | }
12 |
13 | // horizontal
14 | @mixin gradient-horizontal($start: #555, $end: #333) {
15 | background-color: $start;
16 | background: linear-gradient(to right, $start 0%, $end 100%);
17 | }
18 |
19 | // horizontal to opacity
20 | @mixin gradient-horizontal-to-opacity($color: #555, $opacity: 0) {
21 | $rgba: rgba(red($color), green($color), blue($color), $opacity);
22 | background: linear-gradient(to right, $color 0%, $rgba 100%);
23 | }
24 |
25 | // radial
26 | @mixin gradient-radial($inner: #555, $outer: #333) {
27 | background-image: radial-gradient(circle, $inner, $outer);
28 | }
--------------------------------------------------------------------------------
/themes/gsoc/layouts/partials/footer.html:
--------------------------------------------------------------------------------
1 |
2 | {{- range $name, $path := .Site.Params.social }}
3 | {{- if $path }}
4 | {{- $realName := slicestr $name 2 }}
5 |
6 | {{- end }}
7 | {{- end }}
8 | {{ if .Site.LanguagePrefix -}}
9 |
10 | {{- else -}}
11 |
12 | {{- end }}
13 |
14 |
15 |
16 |
17 | {{- $current := now.Format "2006" }}
18 | ©
19 | {{ if ne .Site.Params.since $current }}
20 | {{ .Site.Params.since }} -
21 | {{ end }}
22 | {{- $current }}
23 | {{if .Site.Copyright }}{{ .Site.Copyright | safeHTML }}{{ else }}{{ "Maksim Surguy" | safeHTML }}{{ end }}
24 |
25 |
--------------------------------------------------------------------------------
/themes/gsoc/src/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "processing-theme",
3 | "version": "1.0.0",
4 | "description": "A super concise theme for Hugo",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "browserslist": "last 4 versions, ie 10",
10 | "author": "",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "babel-cli": "^6.26.0",
14 | "babel-core": "^6.26.3",
15 | "babel-preset-env": "^1.7.0",
16 | "babel-preset-es2015": "^6.24.1",
17 | "babelify": "^8.0.0",
18 | "browserify": "^16.2.2",
19 | "gulp": "^3.9.1",
20 | "gulp-babel": "^7.0.1",
21 | "gulp-clean-css": "^3.9.4",
22 | "gulp-concat": "^2.6.1",
23 | "gulp-rename": "^1.2.3",
24 | "gulp-sass": "^4.0.1",
25 | "gulp-sourcemaps": "^2.6.4",
26 | "gulp-uglify": "^3.0.0",
27 | "gulplog": "^1.0.0",
28 | "vinyl-buffer": "^1.0.1",
29 | "vinyl-source-stream": "^2.0.0",
30 | "webpack-stream": "^4.0.3"
31 | },
32 | "dependencies": {
33 | "highlightjs-line-numbers.js": "^2.3.0"
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/docs/categories/index.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Categories on Google Summer of Code 2018 submission
5 | https://msurguy.github.io/GSOC2018-processing-pi/categories/
6 | Recent content in Categories on Google Summer of Code 2018 submission
7 | Hugo -- gohugo.io
8 | en
9 | Maksim Surguy
10 |
11 |
12 |
13 |
14 | -
15 | Shortcodes
16 | https://msurguy.github.io/GSOC2018-processing-pi/categories/shortcodes/
17 | Tue, 30 Aug 2016 16:01:23 +0800
18 |
19 | https://msurguy.github.io/GSOC2018-processing-pi/categories/shortcodes/
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/tutorial/summary.html:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 |
22 | {{ .Summary }}
23 |
24 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/post/summary.html:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 |
22 | {{ .Summary }}
23 |
24 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/docs/tags/index.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Tags on Google Summer of Code 2018 submission
5 | https://msurguy.github.io/GSOC2018-processing-pi/tags/
6 | Recent content in Tags on Google Summer of Code 2018 submission
7 | Hugo -- gohugo.io
8 | en
9 | Maksim Surguy
10 | Tue, 30 Aug 2016 16:01:23 +0800
11 |
12 |
13 |
14 |
15 | -
16 | Shortcodes
17 | https://msurguy.github.io/GSOC2018-processing-pi/tags/shortcodes/
18 | Tue, 30 Aug 2016 16:01:23 +0800
19 |
20 | https://msurguy.github.io/GSOC2018-processing-pi/tags/shortcodes/
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_tabs.scss:
--------------------------------------------------------------------------------
1 | .tabs {
2 | margin-bottom: $base-line;
3 | font-size: $font-size-small;
4 |
5 | & li em,
6 | & li.active a {
7 | color: $color-text;
8 | border: 1px solid rgba(0, 0, 0, .1);
9 | cursor: default;
10 | text-decoration: none;
11 | background: none;
12 | }
13 | & em,
14 | & a {
15 | position: relative;
16 | top: 1px;
17 | font-style: normal;
18 | display: block;
19 | padding: .5rem 1rem;
20 | border: 1px solid transparent;
21 | color: rgba(0, 0, 0, .5);
22 | text-decoration: none;
23 | }
24 | & a:hover {
25 | @include transition;
26 | color: $color-text;
27 | text-decoration: underline;
28 | background-color: $color-silver;
29 | }
30 | }
31 |
32 | @include breakpoint($min: $sm) {
33 | .tabs {
34 | & ul {
35 | @include flex;
36 |
37 | margin-top: -1px;
38 | border-bottom: 1px solid rgba(0, 0, 0, .1);
39 | }
40 | & li em,
41 | & li.active a {
42 | border-bottom: 1px solid #fff;
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_modal.scss:
--------------------------------------------------------------------------------
1 | .modal-box {
2 | position: fixed;
3 | top: 0;
4 | left: 0;
5 | bottom: 0;
6 | right: 0;
7 | overflow-x: hidden;
8 | overflow-y: auto;
9 | z-index: $z-over-control;
10 | }
11 | .modal {
12 | position: relative;
13 | margin: auto;
14 | margin-top: 16px;
15 | padding: 0;
16 | background: #fff;
17 | box-shadow: 0 10px 25px rgba(0, 0, 0, .15);
18 | border-radius: 8px;
19 | color: #000;
20 |
21 | & input,
22 | & textarea {
23 | @media (max-width: $sm) {
24 | font-size: 16px;
25 | }
26 | }
27 | & .close {
28 | position: absolute;
29 | top: 18px;
30 | right: 16px;
31 | opacity: .3;
32 | &:hover {
33 | opacity: 1;
34 | }
35 | }
36 | }
37 | .modal-header {
38 | padding: 24px 32px;
39 | font-size: 18px;
40 | font-weight: bold;
41 | border-bottom: 1px solid rgba(0, 0, 0, .05);
42 | &:empty {
43 | display: none;
44 | }
45 | }
46 | .modal-body {
47 | padding: 36px 56px;
48 | }
49 |
50 |
51 |
52 | // Responsive
53 | @media (max-width: $sm) {
54 | .modal-header,
55 | .modal-body {
56 | padding: 24px;
57 | }
58 | }
--------------------------------------------------------------------------------
/themes/gsoc/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2018 Maksim Surguy
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy of
6 | this software and associated documentation files (the "Software"), to deal in
7 | the Software without restriction, including without limitation the rights to
8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9 | the Software, and to permit persons to whom the Software is furnished to do so,
10 | subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/index.html:
--------------------------------------------------------------------------------
1 | {{ define "content" }}
2 | {{.Content}}
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | {{ end }}
--------------------------------------------------------------------------------
/themes/gsoc/layouts/tutorial/section.html:
--------------------------------------------------------------------------------
1 | {{ define "title" }}{{ T "archive" }} - {{ .Site.Title }}{{ end }}
2 |
3 | {{ define "content"}}
4 |
5 | Tutorials
6 |
7 |
8 | {{ range .Data.Pages.ByWeight }}
9 |
10 |
11 |
12 |
13 | {{ if isset .Params "thumbnail" }}
14 |

15 | {{ else }}
16 |

17 | {{ end }}
18 |
24 |
25 |
26 |
37 |
38 | {{ end }}
39 |
40 |
41 |
42 |
43 | {{ end }}
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_dropdown.scss:
--------------------------------------------------------------------------------
1 | .dropdown {
2 | position: absolute;
3 | z-index: $z-over-content;
4 | top: 0;
5 | right: 0;
6 | width: 280px;
7 | color: #000;
8 | font-size: $font-size - 1px;
9 | background: #fff;
10 | box-shadow: 0 10px 25px rgba(0, 0, 0, .15);
11 | border-radius: 3px;
12 | max-height: 300px;
13 | margin: 0;
14 | padding: 0;
15 | overflow: hidden;
16 |
17 | &.dropdown-mobile {
18 | position: fixed;
19 | top: 0;
20 | left: 0;
21 | right: 0;
22 | bottom: 0;
23 | width: 100%;
24 | max-height: none;
25 | border: none;
26 | }
27 | & .close {
28 | margin: 20px auto;
29 | }
30 | &.open {
31 | overflow: auto;
32 | }
33 | & ul {
34 |
35 | list-style: none;
36 | margin: 0;
37 |
38 | & li {
39 | border-bottom: 1px solid rgba(0, 0, 0, .07);
40 | &:last-child {
41 | border-bottom: none;
42 | }
43 | }
44 | & a {
45 | display: block;
46 | padding: 12px;
47 | text-decoration: none;
48 | color: #000;
49 | &:hover {
50 | background: rgba(0, 0, 0, .05);
51 | }
52 |
53 | }
54 | }
55 | }
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_colors.scss:
--------------------------------------------------------------------------------
1 | // Text Colors
2 | .black { color: $color-black; }
3 | .inverted { color: $color-inverted; }
4 | .error { color: $color-error; }
5 | .success { color: $color-success; }
6 | .warning { color: $color-warning; }
7 | .focus { color: $color-focus; }
8 | .aluminum { color: $color-aluminum; }
9 | .silver { color: $color-silver; }
10 | .lightgray { color: $color-lightgray; }
11 | .gray { color: $color-gray; }
12 | .midgray { color: $color-midgray; }
13 | .darkgray { color: $color-darkgray; }
14 |
15 | // Background Colors
16 | .bg-black { background-color: $color-black; }
17 | .bg-inverted { background-color: $color-inverted; }
18 | .bg-error { background-color: $color-error; }
19 | .bg-success { background-color: $color-success; }
20 | .bg-warning { background-color: $color-warning; }
21 | .bg-focus { background-color: $color-focus; }
22 | .bg-aluminum { background-color: $color-aluminum; }
23 | .bg-silver { background-color: $color-silver; }
24 | .bg-lightgray { background-color: $color-lightgray; }
25 | .bg-gray { background-color: $color-gray; }
26 | .bg-midgray { background-color: $color-midgray; }
27 | .bg-darkgray { background-color: $color-darkgray; }
28 | .bg-highlight { background-color: $color-highlight; }
--------------------------------------------------------------------------------
/themes/gsoc/theme.toml:
--------------------------------------------------------------------------------
1 | # theme.toml template for a Hugo theme
2 | # See https://github.com/gohugoio/hugoThemes#themetoml for an example
3 |
4 | name = "GSOC"
5 | license = "MIT"
6 | licenselink = "https://github.com/msurguy/hugo-theme-processing/blob/master/LICENSE.md"
7 | description = "A minimal website theme for Hugo"
8 | homepage = "https://github.com/msurguy/hugo-theme-processing"
9 | tags = ["responsive", "blog", "simple", "clean", "highlight.js", "syntax highlighting"]
10 | features = ["responsive", "blog", "simple", "clean", "highlight.js", "syntax highlighting"]
11 | min_version = "0.35"
12 |
13 | [author]
14 | name = "msurguy"
15 | homepage = "https://github.com/msurguy"
16 |
17 | [imaging]
18 | # Default resample filter used for resizing. Default is Box,
19 | # a simple and fast averaging filter appropriate for downscaling.
20 | # See https://github.com/disintegration/imaging
21 | resampleFilter = "box"
22 |
23 | # Defatult JPEG quality setting. Default is 75.
24 | quality = 90
25 |
26 | # Anchor used when cropping pictures.
27 | # Default is "smart" which does Smart Cropping, using https://github.com/muesli/smartcrop
28 | # Smart Cropping is content aware and tries to find the best crop for each image.
29 | # Valid values are Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight
30 | anchor = "smart"
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_grid.scss:
--------------------------------------------------------------------------------
1 | // Grid Row
2 | .row {
3 | @include grid-row;
4 |
5 | // Gutters
6 | &.gutters,
7 | &.gutters > .row {
8 | margin-left: -$grid-gutter;
9 |
10 | @include breakpoint(sm) {
11 | margin-left: 0;
12 | }
13 |
14 | & > .col {
15 | margin-left: $grid-gutter;
16 |
17 | @include breakpoint(sm) {
18 | margin-left: 0;
19 | }
20 | }
21 | }
22 | &.around {
23 | @include flex-items-space-around;
24 | }
25 | &.between {
26 | @include flex-items-space-between;
27 | }
28 | &.auto {
29 | & .col {
30 | @include flex-item-grow(1);
31 | }
32 | }
33 | }
34 |
35 | // Grid Columns
36 | @include generate-grid-columns;
37 |
38 | // Offset
39 | [class^='offset-'],
40 | [class*=' offset-'] {
41 | @include breakpoint(sm) {
42 | margin-left: 0;
43 | }
44 | }
45 |
46 | // Ordering
47 | .first { order: -1; }
48 | .last { order: 1; }
49 |
50 | @include breakpoint(sm) {
51 | .row {
52 |
53 | & .col {
54 | margin-left: 0;
55 | width: 100%;
56 | }
57 | &.gutters {
58 | & .col {
59 | margin-bottom: $text-margin-bottom;
60 | }
61 | }
62 | }
63 | .first-sm { order: -1; }
64 | .last-sm { order: 1; }
65 | }
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_positioning.scss:
--------------------------------------------------------------------------------
1 | // Push
2 | .gutters .column.push-left,
3 | .push-left { margin-right: auto; }
4 |
5 | .gutters .column.push-right,
6 | .push-right { margin-left: auto; }
7 |
8 | .gutters .column.push-center,
9 | .push-center { margin-left: auto; margin-right: auto; }
10 |
11 | .gutters .column.push-middle,
12 | .push-middle { margin-top: auto; margin-bottom: auto; }
13 |
14 | .push-bottom { margin-top: auto; }
15 |
16 | @include breakpoint(sm) {
17 |
18 | .gutters .column.push-left-sm,
19 | .push-left-sm { margin-left: 0; }
20 |
21 | .gutters .column.push-center-sm,
22 | .push-center-sm { margin-left: auto; margin-right: auto;}
23 |
24 | .push-top-sm { margin-top: 0; }
25 |
26 | }
27 |
28 | // Flex Alignment
29 | .align-middle {
30 | @include flex-items-middle;
31 | }
32 | .align-right {
33 | @include flex-items-right;
34 | }
35 | .align-center {
36 | @include flex-items-center;
37 | }
38 |
39 | @include breakpoint(sm) {
40 | .align-left-sm { @include flex-items-left; }
41 | }
42 |
43 | // Float
44 | .float-right {
45 | float: right;
46 | }
47 | .float-left {
48 | float: left;
49 | }
50 | @include breakpoint(sm) {
51 | .float-right { float: none; }
52 | .float-left { float: none; }
53 | }
54 |
55 | // Fixed
56 | .fixed {
57 | position: fixed;
58 | top: 0;
59 | left: 0;
60 | z-index: $z-over-content;
61 | width: 100%;
62 | }
--------------------------------------------------------------------------------
/docs/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
26 |
--------------------------------------------------------------------------------
/themes/gsoc/static/safari-pinned-tab.svg:
--------------------------------------------------------------------------------
1 |
2 |
4 |
26 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_tutorial-list.scss:
--------------------------------------------------------------------------------
1 | .tutorial-list {
2 | margin-bottom: 40px;
3 | }
4 |
5 | .tutorial-item {
6 | position: relative;
7 | overflow: hidden;
8 | margin-bottom: 20px;
9 |
10 | // The cover image is 16x9 ratio
11 | .cover {
12 | position: relative;
13 | height: 0;
14 | padding-top: 56.25%;
15 | overflow: hidden;
16 |
17 | img {
18 | width: 100%;
19 | position: absolute;
20 | top: 0;
21 | left: 0;
22 | }
23 |
24 | &:hover .meta-overlay{
25 | opacity: 1;
26 | }
27 |
28 | .meta-overlay {
29 | position: absolute;
30 | top: 0;
31 | left: 0;
32 | width: 100%;
33 | height: 100%;
34 | padding: 15px 15px 0 15px;
35 | color: white;
36 | opacity: 0;
37 | transition: opacity 0.15s ease;
38 | background: rgba(50,51,59,0.95);
39 | }
40 | }
41 |
42 | .cover-link {
43 | position: absolute;
44 | top: 0;
45 | right: 0;
46 | left: 0;
47 | bottom: 0;
48 | border: 0 !important;
49 | z-index: 1;
50 | text-decoration: none;
51 | }
52 |
53 | .meta {
54 | background-color: #313131;
55 | position: relative;
56 | white-space: nowrap;
57 | padding: 1em 1em .8em;
58 | z-index: 3;
59 |
60 | h2 {
61 | color: #FFF;
62 | text-transform: uppercase;
63 | margin: 0;
64 | }
65 |
66 | p {
67 | color: #FFF;
68 | margin: 0;
69 | }
70 | }
71 |
72 |
73 |
74 | }
--------------------------------------------------------------------------------
/themes/gsoc/layouts/partials/post/copyright.html:
--------------------------------------------------------------------------------
1 | {{ if or .Params.postMetaInFooter (and .Site.Params.postMetaInFooter (ne .Params.postMetaInFooter false)) -}}
2 |
3 |
4 | {{ T "author" }}
5 | {{ if .Params.author }}{{ .Params.author | safeHTML }}{{ else }}{{ .Site.Author.name | safeHTML }}{{ end }}
6 |
7 |
8 | {{ T "lastMod" }}
9 | {{ .Lastmod.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }}
10 |
11 | {{ if $.Site.Params.linkToMarkDown -}}
12 | {{ with $.OutputFormats.Get "markdown" -}}
13 |
14 | {{ T "markdown" }}
15 | {{ T "seeMarkDown" }}
16 |
17 | {{- end }}
18 | {{- end }}
19 | {{ if or .Params.contentCopyright (and .Site.Params.contentCopyright (ne .Params.contentCopyright false)) -}}
20 |
21 | {{ T "license" }}
22 |
23 | {{- if .Params.contentCopyright -}}
24 | {{ .Params.contentCopyright | safeHTML }}
25 | {{- else -}}
26 | {{ .Site.Params.contentCopyright | safeHTML }}
27 | {{- end -}}
28 |
29 |
30 | {{- end }}
31 |
32 | {{- end }}
--------------------------------------------------------------------------------
/themes/gsoc/layouts/_default/terms.html:
--------------------------------------------------------------------------------
1 | {{ define "title" }}{{ T .Data.Plural }} - {{ .Site.Title }}{{ end }}
2 |
3 | {{ define "content" }}
4 | {{ $name := .Data.Plural -}}
5 | {{ $terms := .Data.Terms.ByCount -}}
6 | {{ $length := len $terms -}}
7 | {{ if eq $name "categories" }}
8 |
9 |
10 | {{ if eq $length 0 }}
11 | {{ T "zeroCategoryCounter" }}
12 | {{ else }}
13 | {{ T "categoryCounter" $length }}
14 | {{ end }}
15 |
16 |
24 |
25 | {{ else if eq $name "tags" }}
26 |
27 |
28 | {{ if eq $length 0 }}
29 | {{ T "zeroTagCounter" }}
30 | {{ else }}
31 | {{ T "tagCounter" $length }}
32 | {{ end }}
33 |
34 |
42 |
43 | {{ end }}
44 | {{ end }}
--------------------------------------------------------------------------------
/themes/gsoc/layouts/_default/taxonomy.html:
--------------------------------------------------------------------------------
1 | {{ define "title" }}{{ .Title }} · {{ .Site.Title }}{{ end }}
2 |
3 | {{ define "content"}}
4 | {{ $paginator := .Paginate (where .Data.Pages.ByDate.Reverse "Type" "post") .Site.Params.archivePaginate }}
5 |
6 | {{ if not $paginator.HasPrev }}
7 | {{ if eq .Data.Plural "tags" }}
8 |
9 |
{{ .Title }}
10 |
11 | {{ else if eq .Data.Plural "categories" }}
12 |
13 |
{{ .Title }}
14 |
15 | {{ end }}
16 | {{ end }}
17 |
18 | {{ range $paginator.Pages }}
19 |
20 |
21 | {{ .Date.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }}
22 |
23 |
24 |
25 | {{ .Title }}
26 |
27 |
28 |
29 | {{ end }}
30 |
31 |
32 |
46 | {{ end }}
--------------------------------------------------------------------------------
/themes/gsoc/i18n/zh-CN.yaml:
--------------------------------------------------------------------------------
1 | # ===== title =====
2 | archive:
3 | other: "归档"
4 |
5 | tags:
6 | other: "标签"
7 |
8 | categories:
9 | other: "分类"
10 |
11 | # ===== footer =====
12 | powered:
13 | other: "由 %s 强力驱动"
14 |
15 | theme:
16 | other: "主题"
17 |
18 | siteUV:
19 | other: "本站总访客数 %s 人"
20 |
21 | sitePV:
22 | other: "本站总访问量 %s 次"
23 |
24 | pagePV:
25 | other: "%s 次阅读"
26 |
27 | # ===== post =====
28 | prevPage:
29 | other: "上一页"
30 |
31 | nextPage:
32 | other: "下一页"
33 |
34 | prevPost:
35 | other: "上一篇"
36 |
37 | nextPost:
38 | other: "下一篇"
39 |
40 | toc:
41 | other: "文章目录"
42 |
43 | readMore:
44 | other: "阅读更多"
45 |
46 | reward:
47 | other: "赞赏支持"
48 |
49 | rewardAlipay:
50 | other: "支付宝打赏"
51 |
52 | rewardWechat:
53 | other: "微信打赏"
54 |
55 | wordCount:
56 | one: "约 {{ .Count }} 字"
57 | other: "约 {{ .Count }} 字"
58 |
59 | readingTime:
60 | one: "预计阅读 {{ .Count }} 分钟"
61 | other: "预计阅读 {{ .Count }} 分钟"
62 |
63 | # ===== content license =====
64 | author:
65 | other: "文章作者"
66 |
67 | lastMod:
68 | other: "上次更新"
69 |
70 | markdown:
71 | other: "原始文档"
72 |
73 | seeMarkDown:
74 | other: "查看本文 Markdown 版本 »"
75 |
76 | license:
77 | other: "许可协议"
78 |
79 | # ===== counter =====
80 | archiveCounter:
81 | one: "共计 {{ .Count }} 篇文章"
82 | other: "共计 {{ .Count }} 篇文章"
83 |
84 | tagCounter:
85 | one: "共计 {{ .Count }} 个标签"
86 | other: "共计 {{ .Count }} 个标签"
87 |
88 | zeroTagCounter:
89 | other: "暂无标签"
90 |
91 | categoryCounter:
92 | one: "共计 {{ .Count }} 个分类"
93 | other: "共计 {{ .Count }} 个分类"
94 |
95 | zeroCategoryCounter:
96 | other: "暂无分类"
97 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/_default/baseof.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | {{- block "title" . -}}
8 | {{ if .IsPage }}{{ .Title }} - {{ .Site.Title }}{{ else }}{{ .Site.Title }}{{ end }}
9 | {{- end -}}
10 |
11 | {{ partial "head.html" . }}
12 |
13 |
14 | {{ if not .Params.hideHeaderAndFooter -}}
15 |
19 | {{- end }}
20 |
21 |
22 |
23 | {{ block "content" . }}{{ end }}
24 |
25 |
34 |
35 | {{ if or .Params.toc (and .Site.Params.toc (ne .Params.toc false)) }}
36 |
39 | {{- end }}
40 |
41 |
42 |
43 | {{ if not .Params.hideHeaderAndFooter -}}
44 |
49 | {{- end }}
50 |
51 | {{ partial "scripts.html" . }}
52 |
53 |
54 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/mixins/_grid.scss:
--------------------------------------------------------------------------------
1 | // Make Row
2 | @mixin grid-row {
3 | @include flex;
4 | @include flex-items-row;
5 | @include flex-items-wrap;
6 |
7 | @include breakpoint(sm) {
8 | @include flex-items-column;
9 | @include flex-items-nowrap;
10 | }
11 | }
12 |
13 | // Generate Columns
14 | @mixin generate-grid-columns {
15 |
16 | @for $i from 1 through $grid-columns
17 | {
18 | .col-#{$i} {
19 | width: 100% / $grid-columns * $i;
20 | }
21 | .offset-#{$i} {
22 | $width: 100% / $grid-columns * $i;
23 | margin-left: $width;
24 | }
25 |
26 | }
27 |
28 | .gutters {
29 | @for $i from 1 through $grid-columns
30 | {
31 | & > .col-#{$i} {
32 | $width: 100% / $grid-columns * $i;
33 | width: calc(#{$width} - #{$grid-gutter});
34 | }
35 | & > .offset-#{$i} {
36 | $width: 100% / $grid-columns * $i;
37 | margin-left: calc(#{$width} + #{$grid-gutter}) !important;
38 | }
39 | }
40 | }
41 | }
42 |
43 |
44 | // Grid Media Columns
45 | @mixin grid-media-columns($num) {
46 |
47 | -webkit-column-count: $num;
48 | -moz-column-count: $num;
49 | column-count: $num;
50 |
51 | -webkit-column-gap: $grid-gutter;
52 | -moz-column-gap: $grid-gutter;
53 | column-gap: $grid-gutter;
54 |
55 | & > div {
56 | display: inline-block;
57 | width: 100%;
58 | }
59 |
60 | @include breakpoint(sm) {
61 | -webkit-column-count: 1;
62 | -moz-column-count: 1;
63 | column-count: 1;
64 | }
65 | }
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_tables.scss:
--------------------------------------------------------------------------------
1 | //table {
2 | // border-collapse: collapse;
3 | // border-spacing: 0;
4 | // max-width: 100%;
5 | // width: 100%;
6 | // empty-cells: show;
7 | // font-size: $table-font-size;
8 | // line-height: $table-base-line;
9 | //}
10 | //table caption {
11 | // text-align: left;
12 | // font-size: $font-size-small;
13 | // font-weight: 500;
14 | // color: $color-midgray;
15 | //}
16 | //
17 | //th {
18 | // text-align: left;
19 | // font-weight: 700;
20 | // vertical-align: bottom;
21 | //}
22 | //td {
23 | // vertical-align: top;
24 | //}
25 | //tr.align-middle td,
26 | //td.align-middle {
27 | // vertical-align: middle;
28 | //}
29 | //th,
30 | //td {
31 | // padding: $table-padding-tb $table-padding-rl;
32 | // border-bottom: $table-border;
33 | // &:first-child {
34 | // padding-left: 0;
35 | // }
36 | // &:last-child {
37 | // padding-right: 0;
38 | // }
39 | //}
40 | //tfoot th,
41 | //tfoot td {
42 | // color: rgba($color-text, .5);
43 | //}
44 | //
45 | //// Bordered
46 | //table.bordered {
47 | //
48 | // & td,
49 | // & th {
50 | // border: $table-border;
51 | // }
52 | //
53 | //}
54 | //
55 | //// Striped
56 | //table.striped tr:nth-child(odd) td {
57 | // background: $table-background-striped;
58 | //}
59 | //
60 | //table.bordered,
61 | //table.striped {
62 | // & td,
63 | // & th {
64 | // &:first-child {
65 | // padding-left: $table-padding-rl;
66 | // }
67 | // &:last-child {
68 | // padding-right: $table-padding-rl;
69 | // }
70 | // }
71 | //}
72 | //
73 | //// Unstyled
74 | //table.unstyled {
75 | // & td,
76 | // & th {
77 | // border: none;
78 | // padding: 0;
79 | // }
80 | //}
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_labels.scss:
--------------------------------------------------------------------------------
1 | .label {
2 | display: inline-block;
3 | font-size: 12px;
4 | background: $color-silver;
5 | line-height: 18px;
6 | padding: 0 10px;
7 | font-weight: 500;
8 | color: $color-text;
9 | border: 1px solid transparent;
10 | vertical-align: middle;
11 | text-decoration: none;
12 | border-radius: 4px;
13 | & a,
14 | & a:hover {
15 | color: inherit;
16 | text-decoration: none;
17 | }
18 | }
19 | .label.big {
20 | font-size: $font-size-small;
21 | line-height: 24px;
22 | padding: 0 12px;
23 | }
24 | .label.upper {
25 | text-transform: uppercase;
26 | font-size: 11px;
27 | }
28 |
29 | // Outline
30 | .label.outline {
31 | background: none;
32 | border-color: $color-gray;
33 | }
34 |
35 | // Badges
36 | .label.badge {
37 | text-align: center;
38 | border-radius: 64px;
39 | padding: 0 6px;
40 | &.big {
41 | padding: 0 8px;
42 | }
43 | }
44 |
45 | // Tag
46 | .label.tag {
47 | padding: 0;
48 | background: none;
49 | border: none;
50 | text-transform: uppercase;
51 | font-size: $font-size-smaller - 1px;
52 | &.big {
53 | font-size: $font-size-small - 1px;
54 | }
55 | }
56 |
57 | .label.success {
58 | @include label(#fff, $color-success);
59 | }
60 | .label.error {
61 | @include label(#fff, $color-error);
62 | }
63 | .label.warning {
64 | @include label($color-black, $color-warning);
65 | }
66 | .label.focus {
67 | @include label(#fff, $color-focus);
68 | }
69 | .label.black {
70 | @include label(#fff, $color-black);
71 | }
72 | .label.inverted {
73 | @include label($color-black, $color-inverted);
74 | }
--------------------------------------------------------------------------------
/themes/gsoc/i18n/en.yaml:
--------------------------------------------------------------------------------
1 | # ===== title =====
2 | archive:
3 | other: "Archive"
4 |
5 | tags:
6 | other: "Tags"
7 |
8 | categories:
9 | other: "Categories"
10 |
11 | # ===== footer =====
12 | powered:
13 | other: "Powered by %s"
14 |
15 | theme:
16 | other: "Theme"
17 |
18 | siteUV:
19 | other: "site uv: %s"
20 |
21 | sitePV:
22 | other: "site pv: %s"
23 |
24 | pagePV:
25 | other: "%s times read"
26 |
27 | # ===== post =====
28 | prevPage:
29 | other: "Prev"
30 |
31 | nextPage:
32 | other: "Next"
33 |
34 | prevPost:
35 | other: "Prev"
36 |
37 | nextPost:
38 | other: "Next"
39 |
40 | toc:
41 | other: "Contents"
42 |
43 | readMore:
44 | other: "Read more.."
45 |
46 | reward:
47 | other: "Reward"
48 |
49 | rewardAlipay:
50 | other: "alipay"
51 |
52 | rewardWechat:
53 | other: "wechat"
54 |
55 | wordCount:
56 | one: "{{ .Count }} word"
57 | other: "{{ .Count }} words"
58 |
59 | readingTime:
60 | one: "{{ .Count }} min read"
61 | other: "{{ .Count }} mins read"
62 |
63 | # ===== content license =====
64 | author:
65 | other: "Author"
66 |
67 | lastMod:
68 | other: "LastMod"
69 |
70 | markdown:
71 | other: "Markdown"
72 |
73 | seeMarkDown:
74 | other: "The Markdown version »"
75 |
76 | license:
77 | other: "License"
78 |
79 | # ===== counter =====
80 | archiveCounter:
81 | one: "{{ .Count }} Post In Total"
82 | other: "{{ .Count }} Posts In Total"
83 |
84 | tagCounter:
85 | one: "{{ .Count }} Tag In Total"
86 | other: "{{ .Count }} Tags In Total"
87 |
88 | zeroTagCounter:
89 | other: "No tags"
90 |
91 | categoryCounter:
92 | one: "{{ .Count }} Category In Total"
93 | other: "{{ .Count }} Categories In Total"
94 |
95 | zeroCategoryCounter:
96 | other: "No categories"
97 |
--------------------------------------------------------------------------------
/themes/gsoc/i18n/es.yaml:
--------------------------------------------------------------------------------
1 | # ===== title =====
2 | archive:
3 | other: "Archivo"
4 |
5 | tags:
6 | other: "Tags"
7 |
8 | categories:
9 | other: "Categorías"
10 |
11 | # ===== footer =====
12 | powered:
13 | other: "Creado con %s"
14 |
15 | theme:
16 | other: "Tema"
17 |
18 | siteUV:
19 | other: "sitio uv: %s"
20 |
21 | sitePV:
22 | other: "sitio pv: %s"
23 |
24 | pagePV:
25 | other: "%s leido"
26 |
27 | # ===== post =====
28 | prevPage:
29 | other: "Previo"
30 |
31 | nextPage:
32 | other: "Siguiente"
33 |
34 | prevPost:
35 | other: "Previo"
36 |
37 | nextPost:
38 | other: "Siguiente"
39 |
40 | toc:
41 | other: "Contenidos"
42 |
43 | readMore:
44 | other: "Leer mas.."
45 |
46 | reward:
47 | other: "Reward"
48 |
49 | rewardAlipay:
50 | other: "alipay"
51 |
52 | rewardWechat:
53 | other: "wechat"
54 |
55 | wordCount:
56 | one: "{{ .Count }} palabra"
57 | other: "{{ .Count }} palabras"
58 |
59 | readingTime:
60 | one: "{{ .Count }} min lectura"
61 | other: "{{ .Count }} mins lectura"
62 |
63 | # ===== content license =====
64 | author:
65 | other: "Autor"
66 |
67 | lastMod:
68 | other: "Ultima modificación"
69 |
70 | markdown:
71 | other: "Markdown"
72 |
73 | seeMarkDown:
74 | other: "Versión Markdown »"
75 |
76 | license:
77 | other: "Licencia"
78 |
79 | # ===== counter =====
80 | archiveCounter:
81 | one: "{{ .Count }} Post en Total"
82 | other: "{{ .Count }} Posts en Total"
83 |
84 | tagCounter:
85 | one: "{{ .Count }} Tag en Total"
86 | other: "{{ .Count }} Tags en Total"
87 |
88 | zeroTagCounter:
89 | other: "No tags"
90 |
91 | categoryCounter:
92 | one: "{{ .Count }} Categoria en Total"
93 | other: "{{ .Count }} Categorias en Total"
94 |
95 | zeroCategoryCounter:
96 | other: "No categorias"
97 |
--------------------------------------------------------------------------------
/themes/gsoc/src/sass/components/_messages.scss:
--------------------------------------------------------------------------------
1 | .message {
2 | font-family: $monospace-font-family;
3 | font-size: $font-size-small;
4 | line-height: $base-line-small;
5 | background: $color-message-default;
6 | color: $color-text;
7 | padding: 1rem;
8 | padding-right: 2.5em;
9 | padding-bottom: .75rem;
10 | margin-bottom: $base-line;
11 | position: relative;
12 | border-left: 7px solid darken($color-message-default, 30%);
13 |
14 | p {
15 | margin-bottom: 0;
16 | }
17 |
18 | & a {
19 | color: inherit;
20 | text-decoration: underline;
21 | font-weight: bold;
22 | }
23 | & h2,
24 | & h3,
25 | & h4,
26 | & h5,
27 | & h6 {
28 | color: inherit;
29 | margin-bottom: 0;
30 | }
31 | & .close {
32 | position: absolute;
33 | right: 1rem;
34 | top: 1.1rem;
35 | }
36 | }
37 | .message.error {
38 | background: $color-message-error;
39 | border-color: darken($color-message-error, 15%);
40 | color: darken($color-message-error, 60%);
41 | }
42 | .message.success {
43 | background: $color-message-success;
44 | border-color: darken($color-message-success, 55%);
45 | color: darken($color-message-success, 60%);
46 | }
47 | .message.warning {
48 | background: $color-message-warning;
49 | border-color: darken($color-message-warning, 15%);
50 | color: darken($color-message-warning, 60%);
51 | }
52 | .message.focus {
53 | background: $color-message-focus;
54 | border-color: darken($color-message-focus, 15%);
55 | color: darken($color-message-focus, 60%);
56 | }
57 | .message.black {
58 | background: $color-black;
59 | color: #fff;
60 | }
61 | .message.inverted {
62 | background: $color-inverted;
63 | }
--------------------------------------------------------------------------------
/themes/gsoc/i18n/fr.yaml:
--------------------------------------------------------------------------------
1 | # ===== title =====
2 | archive:
3 | other: "Archive"
4 |
5 | tags:
6 | other: "Tags"
7 |
8 | categories:
9 | other: "Catégories"
10 |
11 | # ===== footer =====
12 | powered:
13 | other: "Propulsé par %s"
14 |
15 | theme:
16 | other: "Thème"
17 |
18 | siteUV:
19 | other: "site uv: %s"
20 |
21 | sitePV:
22 | other: "site pv: %s"
23 |
24 | pagePV:
25 | other: "%s temps de lecture"
26 |
27 | # ===== post =====
28 | prevPage:
29 | other: "Plus récents"
30 |
31 | nextPage:
32 | other: "Plus vieux"
33 |
34 | prevPost:
35 | other: "Précédent"
36 |
37 | nextPost:
38 | other: "Suivant"
39 |
40 | toc:
41 | other: "Contenu"
42 |
43 | readMore:
44 | other: "Lire la suite..."
45 |
46 | reward:
47 | other: "Reward"
48 |
49 | rewardAlipay:
50 | other: "alipay"
51 |
52 | rewardWechat:
53 | other: "wechat"
54 |
55 | wordCount:
56 | one: "{{ .Count }} mots"
57 | other: "{{ .Count }} mots"
58 |
59 | readingTime:
60 | one: "{{ .Count }} min de lecture"
61 | other: "{{ .Count }} mins de lecture"
62 |
63 | # ===== content license =====
64 | author:
65 | other: "Auteur"
66 |
67 | lastMod:
68 | other: "Modifié"
69 |
70 | markdown:
71 | other: "Markdown"
72 |
73 | seeMarkDown:
74 | other: "Version de Markdown »"
75 |
76 | license:
77 | other: "Licence"
78 |
79 | # ===== counter =====
80 | archiveCounter:
81 | one: "{{ .Count }} Articles au total"
82 | other: "{{ .Count }} Articles au total"
83 |
84 | tagCounter:
85 | one: "{{ .Count }} Tag au total"
86 | other: "{{ .Count }} Tags au total"
87 |
88 | zeroTagCounter:
89 | other: "Aucun tag"
90 |
91 | categoryCounter:
92 | one: "{{ .Count }} Catégorie au total"
93 | other: "{{ .Count }} Catégories au total"
94 |
95 | zeroCategoryCounter:
96 | other: "Aucune catégorie"
97 |
--------------------------------------------------------------------------------
/themes/gsoc/layouts/_default/section.html:
--------------------------------------------------------------------------------
1 | {{ define "title" }}{{ T "archive" }} - {{ .Site.Title }}{{ end }}
2 |
3 | {{ define "content"}}
4 | {{- $paginator := .Paginate (where .Data.Pages.ByDate.Reverse "Type" "post") .Site.Params.archivePaginate }}
5 |
6 | {{- if not $paginator.HasPrev }}
7 |
8 |
9 | {{ T "archiveCounter" (len .Data.Pages) }}
10 |
11 |
12 | {{- end -}}
13 |
14 | {{- range $index, $element := $paginator.Pages -}}
15 | {{- $thisYear := $element.Date.Format "2006" }}
16 | {{- $lastElement := $index | add -1 | index $paginator.Pages }}
17 | {{ if or (eq $index 0) ( ne ($lastElement.Date.Format "2006") $thisYear ) }}
18 |
19 |
{{ $thisYear }}
20 |
21 | {{- end }}
22 |
23 |
24 |
25 | {{ $element.Date.Format "01-02" }}
26 |
27 |
28 |
29 | {{ .Title }}
30 |
31 |
32 |
33 | {{- end -}}
34 |
35 |
36 |
50 | {{ end }}
--------------------------------------------------------------------------------
/docs/dist/gsoc-theme.min.js:
--------------------------------------------------------------------------------
1 | !function i(a,c,l){function f(n,e){if(!c[n]){if(!a[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=c[n]={exports:{}};a[n][0].call(o.exports,function(e){return f(a[n][1][e]||e)},o,o.exports,i,a,c,l)}return c[n].exports}for(var u="function"==typeof require&&require,e=0;ee[t]&&n<=e[t+1])return t;return n>e[e.length-1]?e.length-1:-1}(i,e);if($(r).removeClass("active"),$(o).removeClass("has-active"),-1!==n){$(r[n]).addClass("active");for(var t=r[n].parentNode;"NAV"!==t.tagName;)$(t).addClass("has-active"),t=t.parentNode.parentNode}})},toc:function(){var e=document.getElementById("post-toc");if(null!==e){var n=document.getElementById("TableOfContents");null===n?e.parentNode.removeChild(e):(this._refactorToc(n),this._linkToc(),this._initToc())}},_refactorToc:function(e){for(var n=e.children[0],t=n,r=void 0;1===t.children.length&&"UL"===(r=t.children[0].children[0]).tagName;)t=r;t!==n&&e.replaceChild(t,n)},_linkToc:function(){for(var e=document.querySelectorAll("#TableOfContents a:first-child"),n=0;nh"+t),o=0;o