1
0

Move hugo to subdir

This commit is contained in:
Tony Grosinger 2019-03-25 21:11:06 -07:00
parent 4987144ea1
commit f6b17683a5
72 changed files with 12456 additions and 2 deletions

1
CNAME Normal file
View File

@ -0,0 +1 @@
grosinger.net

3
Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM nginx:alpine
COPY . /usr/share/nginx/html

View File

@ -5,6 +5,8 @@ baseurl = "https://grosinger.net/"
# Title of your site
title = "Tony Grosinger"
publishDir = "../."
# Your copyright notice - appears in site footer.
# To display a copyright symbol, type `©`.
copyright = "© Tony Grosinger 2019"
@ -20,7 +22,7 @@ paginate = 10
disqusShortname = ""
# Enable analytics by entering your Google Analytics tracking ID
googleAnalytics = ""
googleAnalytics = "UA-22479213-1"
# Get last modified date for content from Git?
enableGitInfo = false

View File

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 213 KiB

View File

Before

Width:  |  Height:  |  Size: 189 KiB

After

Width:  |  Height:  |  Size: 189 KiB

View File

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 225 KiB

View File

Before

Width:  |  Height:  |  Size: 759 KiB

After

Width:  |  Height:  |  Size: 759 KiB

View File

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 208 KiB

View File

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 130 KiB

View File

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2018 Joshua Hu
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,52 @@
# Minimal Academic
Minimal Academic is a two-column Hugo theme for personal sites. See the live demo [here](https://www.joshuahu.io) and read about my experience [here](https://www.joshuahu.io/blog/first-hugo).
![Minimal Academic Theme screenshot](https://raw.githubusercontent.com/jhu247/minimal-academic/master/images/screenshot.png)
This theme is designed to be simple and unobtrusive, featuring a clean color palette and consistent formatting throughout, with an emphasis on a beautiful hero image as the masthead. Google Analytics and Disqus are supported out of the box.
## Getting started
I'm assuming you've already installed Hugo and have created a new project. You can follow instructions for that [here](https://gohugo.io/getting-started/installing/).
1. In the root folder of your Hugo project, run:
```bash
cd themes
git clone https://github.com/jhu247/minimal-academic.git
```
2. The `exampleSite` directory contains all of the necessary resources to launch the site. Due to [#3](/../../issues/3), you will need to change the `theme` value to `"../../"`. Run `hugo server` from here and point your browser to `http://localhost:1313/` to test it out.
3. Copy `config.toml` from `exampleSite` to your project's root folder to use it. Note that you'll need to change the `theme` value to `minimal-academic` for it to work. This is also where you'll change the title of your site, add your own social media links, configure Google Analytics and Disqus, etc.
4. Upload your own avatar and hero image by replacing `portrait.jpg` and `hero.jpg` in `/static/img/`.
5. Create some content! Either copy the `.md` files from `exampleSite` as a template or use the [hugo new](https://gohugo.io/commands/hugo_new/) command.
## Helpful tips
* Running `hugo server` with the `--watch` and `--verbose` flags makes development much faster and debugging much easier.
* Sometimes your browser will cache resources to improve performance, so your changes will not appear. To get around this, on Chrome, control + click the refresh button and it will do a hard fetch of resources.
## Contributing
There's still more to do:
* taxonomies
* support for other languages
* SCSS with an asset pipeline
Please feel free to submit an issue or create a pull request!
## License
This theme is released under the MIT License. For more information, please read the [license](https://github.com/jhu247/minimal-academic/blob/master/LICENSE).
## Credits
* Initial Hugo template used to get started: [Hugo Academic](https://sourcethemes.com/academic/)
* Layouts used for inspiration: [Minimal Mistakes](https://mmistakes.github.io/minimal-mistakes/) and [Marco Arment's blog](https://marco.org/)
* Avatar photo used in example site: Photo by Philipe Cavalcante on Unsplash
* Hero photo used in example site: Photo by Jeremy Bishop on Unsplash

View File

@ -0,0 +1,9 @@
---
title: "{{ replace .Name "-" " " | title }}"
hero_image: "hero.jpg"
date: {{ .Date }}
description: "Description"
draft: true
---
## Header

View File

@ -0,0 +1,8 @@
---
title: "{{ replace .Name "-" " " | title }}"
hero_image: "hero.jpg"
date: {{ .Date }}
draft: true
---
## Header

View File

@ -0,0 +1,116 @@
# The URL of your website.
# End your URL with a `/` trailing slash, e.g. `https://example.com/`.
baseurl = "https://example.com"
# Title of your site
title = "Minimal Academic"
# Your copyright notice - appears in site footer.
# To display a copyright symbol, type `©`.
copyright = "© Joshua Hu 2018"
theme = "minimal-academic"
enableEmoji = true
footnotereturnlinkcontents = "<sup>^</sup>"
ignoreFiles = ["\\.Rmd$", "\\.Rmarkdown$", "_files$", "_cache$"]
#preserveTaxonomyNames = true
paginate = 10
# Enable comments by entering your Disqus shortname
disqusShortname = ""
# Enable analytics by entering your Google Analytics tracking ID
googleAnalytics = ""
# Get last modified date for content from Git?
enableGitInfo = false
[outputs]
home = [ "HTML", "CSS", "RSS" ]
section = [ "HTML", "RSS" ]
# Configure BlackFriday Markdown rendering.
# See: https://gohugo.io/readfiles/bfconfig/
[blackfriday]
hrefTargetBlank = true # `true` opens external links in a new tab.
fractions = true # `false` disables smart fractions (e.g. 5/12 formatted as a fraction).
smartypants = true # `false` disables all smart punctuation substitutions (e.g. smart quotes, dashes, fractions).
[params]
# Your details.
name = "Minimal Academic"
bio = "A minimally academic theme."
avatar = "portrait.jpg" # Specify an avatar image (in `static/img/` folder) or delete value to disable avatar.
location = "San Francisco"
# Discussion link (e.g. link to a forum, mailing list, or chat).
# Uncomment line below to use.
# discussion = { name = "Discuss", url = "https://discourse.gohugo.io" }
# Date and time format (refer to Go's date format: http://fuckinggodateformat.com )
# Examples: "Mon, Jan 2, 2006" or "2006-01-02"
date_format = "Jan 2, 2006"
# Examples: "3:04 pm" or "15:04"
time_format = "3:04 PM"
# Display comment count? Requires commenting to be enabled.
comment_count = true
# Enable native social sharing buttons?
sharing = true
# Privacy pack
# Show a cookie consent message to visitors
# Anonymize IP in Google Analytics (if enabled)
privacy_pack = false
# Social links
# Shown in sidebar, icons from Font Awesome
[[params.social]]
icon = "instagram"
icon_pack = "fa"
link = "//instagram.com/jhu247"
text = "Instagram"
[[params.social]]
icon = "linkedin"
icon_pack = "fa"
link = "//linkedin.com/in/joshua-hu-12290a43"
text = "LinkedIn"
[[params.social]]
icon = "twitter"
icon_pack = "fa"
link = "//twitter.com/jhu247"
text = "Twitter"
[[params.social]]
icon = "github"
icon_pack = "fa"
link = "//github.com/jhu247"
text = "Github"
# Header menu links
[[params.menu]]
link = "/"
text = "Home"
[[params.menu]]
link = "/projects"
text = "Projects"
[[params.menu]]
link = "/blog"
text = "Blog"
[[params.menu]]
link = "/about"
text = "About"
# Taxonomies.
# [taxonomies]
# tag = "tags"
# category = "categories"
# publication_type = "publication_types"

View File

@ -0,0 +1,4 @@
---
hero_image: "hero.jpg"
---

View File

@ -0,0 +1,11 @@
---
title: "About"
hero_image: "hero.jpg"
nometadata: true
notags: true
noshare: true
nocomments: true
---
<br>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus auctor, ex sit amet condimentum placerat, neque dolor facilisis purus, in elementum ex urna at ante. Praesent turpis leo, auctor at justo vel, dignissim imperdiet tellus. Vivamus nec orci luctus, pharetra mauris eget, tristique ligula. Integer elit lorem, blandit ut eros et, efficitur aliquet dui. Aenean sed orci lorem. Nulla facilisi. Cras sollicitudin odio eu erat sollicitudin, sit amet volutpat risus condimentum. Praesent blandit vitae magna pellentesque vestibulum. Nam et facilisis lacus. Proin malesuada est at tellus semper, vel porttitor massa malesuada.

View File

@ -0,0 +1,4 @@
---
hero_image: "hero.jpg"
---

View File

@ -0,0 +1,17 @@
---
title: "This is a blog post"
hero_image: "hero.jpg"
date: 2018-07-24T17:44:36-07:00
description: "This is a blog description."
---
<h2>Lorem Ipsum</h2>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus auctor, ex sit amet condimentum placerat, neque dolor facilisis purus, in elementum ex urna at ante. Praesent turpis leo, auctor at justo vel, dignissim imperdiet tellus. Vivamus nec orci luctus, pharetra mauris eget, tristique ligula. Integer elit lorem, blandit ut eros et, efficitur aliquet dui. Aenean sed orci lorem. Nulla facilisi. Cras sollicitudin odio eu erat sollicitudin, sit amet volutpat risus condimentum. Praesent blandit vitae magna pellentesque vestibulum. Nam et facilisis lacus. Proin malesuada est at tellus semper, vel porttitor massa malesuada.
Nulla at quam sit amet lectus interdum blandit. Phasellus dolor velit, ullamcorper id justo vitae, hendrerit dictum elit. Curabitur cursus efficitur ex, in volutpat tortor. Nunc venenatis, mauris nec ultrices vulputate, libero ante volutpat ante, sit amet efficitur metus neque a diam. Nulla facilisi. Nam porta sagittis magna, et congue mi venenatis eu. Duis luctus, nisl sit amet volutpat semper, lorem quam congue tortor, eget finibus justo mi sit amet elit. Sed et nisl quis ante rhoncus vehicula vitae a lectus. Pellentesque mollis eu velit eget sodales.
Quisque mollis, est a vestibulum dapibus, mauris tellus porta leo, ac faucibus felis dui quis dui. Curabitur sollicitudin congue sem ac faucibus. Suspendisse elementum tristique sagittis. Vivamus egestas lectus neque, et ornare ligula sodales vel. In consectetur ac leo porttitor dignissim. Proin nulla lectus, accumsan nec metus nec, volutpat semper purus. Sed a hendrerit arcu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nulla porttitor nisi eget ante varius viverra. Praesent eu lectus mi. Pellentesque et rutrum arcu. Mauris justo diam, varius ut posuere ac, porttitor in nisl.
Mauris convallis neque non metus hendrerit tempor. Ut hendrerit vel urna nec varius. Nunc pretium rhoncus velit, a viverra tellus consectetur lacinia. Donec at consectetur leo. Duis congue tellus et magna facilisis, vel aliquet quam laoreet. Proin id nisl quis mauris faucibus dapibus fermentum aliquam enim. Fusce egestas feugiat pulvinar. Praesent eget dolor ligula.
Sed volutpat nunc vel sapien faucibus, a luctus diam venenatis. Nulla fringilla justo et purus tincidunt, eget facilisis tellus tincidunt. Curabitur neque nisi, pretium vulputate arcu quis, tempor tincidunt tellus. Donec rhoncus purus at neque tincidunt, eu commodo sem consectetur. Mauris laoreet eu felis sit amet feugiat. Aliquam arcu velit, cursus a diam sed, elementum sodales nisi. In ac luctus purus. Ut in lectus scelerisque, feugiat quam eu, efficitur massa. Aliquam pretium facilisis odio quis rutrum.

View File

@ -0,0 +1,17 @@
---
title: "More filler content"
hero_image: "hero.jpg"
date: 2018-07-26T17:44:36-07:00
description: "Filler description."
---
<h2>Lorem Ipsum</h2>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus auctor, ex sit amet condimentum placerat, neque dolor facilisis purus, in elementum ex urna at ante. Praesent turpis leo, auctor at justo vel, dignissim imperdiet tellus. Vivamus nec orci luctus, pharetra mauris eget, tristique ligula. Integer elit lorem, blandit ut eros et, efficitur aliquet dui. Aenean sed orci lorem. Nulla facilisi. Cras sollicitudin odio eu erat sollicitudin, sit amet volutpat risus condimentum. Praesent blandit vitae magna pellentesque vestibulum. Nam et facilisis lacus. Proin malesuada est at tellus semper, vel porttitor massa malesuada.
Nulla at quam sit amet lectus interdum blandit. Phasellus dolor velit, ullamcorper id justo vitae, hendrerit dictum elit. Curabitur cursus efficitur ex, in volutpat tortor. Nunc venenatis, mauris nec ultrices vulputate, libero ante volutpat ante, sit amet efficitur metus neque a diam. Nulla facilisi. Nam porta sagittis magna, et congue mi venenatis eu. Duis luctus, nisl sit amet volutpat semper, lorem quam congue tortor, eget finibus justo mi sit amet elit. Sed et nisl quis ante rhoncus vehicula vitae a lectus. Pellentesque mollis eu velit eget sodales.
Quisque mollis, est a vestibulum dapibus, mauris tellus porta leo, ac faucibus felis dui quis dui. Curabitur sollicitudin congue sem ac faucibus. Suspendisse elementum tristique sagittis. Vivamus egestas lectus neque, et ornare ligula sodales vel. In consectetur ac leo porttitor dignissim. Proin nulla lectus, accumsan nec metus nec, volutpat semper purus. Sed a hendrerit arcu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nulla porttitor nisi eget ante varius viverra. Praesent eu lectus mi. Pellentesque et rutrum arcu. Mauris justo diam, varius ut posuere ac, porttitor in nisl.
Mauris convallis neque non metus hendrerit tempor. Ut hendrerit vel urna nec varius. Nunc pretium rhoncus velit, a viverra tellus consectetur lacinia. Donec at consectetur leo. Duis congue tellus et magna facilisis, vel aliquet quam laoreet. Proin id nisl quis mauris faucibus dapibus fermentum aliquam enim. Fusce egestas feugiat pulvinar. Praesent eget dolor ligula.
Sed volutpat nunc vel sapien faucibus, a luctus diam venenatis. Nulla fringilla justo et purus tincidunt, eget facilisis tellus tincidunt. Curabitur neque nisi, pretium vulputate arcu quis, tempor tincidunt tellus. Donec rhoncus purus at neque tincidunt, eu commodo sem consectetur. Mauris laoreet eu felis sit amet feugiat. Aliquam arcu velit, cursus a diam sed, elementum sodales nisi. In ac luctus purus. Ut in lectus scelerisque, feugiat quam eu, efficitur massa. Aliquam pretium facilisis odio quis rutrum.

View File

@ -0,0 +1,17 @@
---
title: "Another blog post this is"
hero_image: "hero.jpg"
date: 2018-07-25T17:44:36-07:00
description: "Another blog description this is."
---
<h2>Lorem Ipsum</h2>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus auctor, ex sit amet condimentum placerat, neque dolor facilisis purus, in elementum ex urna at ante. Praesent turpis leo, auctor at justo vel, dignissim imperdiet tellus. Vivamus nec orci luctus, pharetra mauris eget, tristique ligula. Integer elit lorem, blandit ut eros et, efficitur aliquet dui. Aenean sed orci lorem. Nulla facilisi. Cras sollicitudin odio eu erat sollicitudin, sit amet volutpat risus condimentum. Praesent blandit vitae magna pellentesque vestibulum. Nam et facilisis lacus. Proin malesuada est at tellus semper, vel porttitor massa malesuada.
Nulla at quam sit amet lectus interdum blandit. Phasellus dolor velit, ullamcorper id justo vitae, hendrerit dictum elit. Curabitur cursus efficitur ex, in volutpat tortor. Nunc venenatis, mauris nec ultrices vulputate, libero ante volutpat ante, sit amet efficitur metus neque a diam. Nulla facilisi. Nam porta sagittis magna, et congue mi venenatis eu. Duis luctus, nisl sit amet volutpat semper, lorem quam congue tortor, eget finibus justo mi sit amet elit. Sed et nisl quis ante rhoncus vehicula vitae a lectus. Pellentesque mollis eu velit eget sodales.
Quisque mollis, est a vestibulum dapibus, mauris tellus porta leo, ac faucibus felis dui quis dui. Curabitur sollicitudin congue sem ac faucibus. Suspendisse elementum tristique sagittis. Vivamus egestas lectus neque, et ornare ligula sodales vel. In consectetur ac leo porttitor dignissim. Proin nulla lectus, accumsan nec metus nec, volutpat semper purus. Sed a hendrerit arcu. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nulla porttitor nisi eget ante varius viverra. Praesent eu lectus mi. Pellentesque et rutrum arcu. Mauris justo diam, varius ut posuere ac, porttitor in nisl.
Mauris convallis neque non metus hendrerit tempor. Ut hendrerit vel urna nec varius. Nunc pretium rhoncus velit, a viverra tellus consectetur lacinia. Donec at consectetur leo. Duis congue tellus et magna facilisis, vel aliquet quam laoreet. Proin id nisl quis mauris faucibus dapibus fermentum aliquam enim. Fusce egestas feugiat pulvinar. Praesent eget dolor ligula.
Sed volutpat nunc vel sapien faucibus, a luctus diam venenatis. Nulla fringilla justo et purus tincidunt, eget facilisis tellus tincidunt. Curabitur neque nisi, pretium vulputate arcu quis, tempor tincidunt tellus. Donec rhoncus purus at neque tincidunt, eu commodo sem consectetur. Mauris laoreet eu felis sit amet feugiat. Aliquam arcu velit, cursus a diam sed, elementum sodales nisi. In ac luctus purus. Ut in lectus scelerisque, feugiat quam eu, efficitur massa. Aliquam pretium facilisis odio quis rutrum.

View File

@ -0,0 +1,11 @@
---
title: "Projects"
hero_image: "hero.jpg"
nometadata: true
notags: true
noshare: true
nocomments: true
---
<h2>Minimal Academic</h2>
This site, written using Hugo and inspired by <a href="https://sourcethemes.com/academic/">Academic</a> and <a href="https://mmistakes.github.io/minimal-mistakes/">Minimal Mistakes</a>.

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 KiB

View File

@ -0,0 +1,2 @@
[wordCount]
other = "{{ .WordCount }} words"

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 KiB

View File

@ -0,0 +1,21 @@
{{ partial "header.html" . }}
{{ partial "masthead_hero.html" . }}
<div id="main" role="main">
{{ partial "sidebar.html" . }}
<article class="page">
<div class="page_container">
<section class="page_content">
{{ partial "masthead_nav.html" . }}
<article class="post" itemscope itemtype="http://schema.org/Article">
<div class="post-container">
<h1>404 Not Found</h1>
</div>
</article>
</section>
</div>
</article>
</div>
{{ partial "footer_container.html" . }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,26 @@
{{ partial "header.html" . }}
{{ partial "masthead_hero.html" . }}
{{ with .Title }}<h1>{{ . }}</h1>{{ end }}
{{ with .Content }}
<div class="post-style" itemprop="articleBody">{{ . }}</div>
{{ end }}
{{ $paginator := .Paginate .Data.Pages }}
{{ range $paginator.Pages }}
<div>
<h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
<div class="post-style">
{{ if .Params.summary }}
{{ printf "%s" .Params.summary | markdownify }}
{{ else if .Truncated }}
{{ printf "%s" .Summary | markdownify }}
{{ end }}
</div>
</div>
{{ end }}
</div>
{{ partial "footer_container.html" . }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,7 @@
{{ partial "header.html" . }}
{{ partial "masthead_hero.html" . }}
{{ partial "page.html" . }}
{{ partial "footer_container.html" . }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,7 @@
{{ partial "header.html" . }}
{{ partial "masthead_hero.html" . }}
{{ partial "page.html" . }}
{{ partial "footer_container.html" . }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,7 @@
{{ partial "header.html" . }}
{{ partial "masthead_hero.html" . }}
{{ partial "homepage.html" . }}
{{ partial "footer_container.html" . }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,780 @@
/* Minimal Academic: a two-column Hugo theme for personal sites inspired by Hugo Academic & Minimal Mistakes */
/* Designed by Joshua Hu */
* {
box-sizing: border-box;
}
html {
font-size: 16px;
box-sizing: border-box;
background-color: #fff;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
@media (min-width: 48em) {
html {
font-size: 17px;
}
}
@media (min-width: 64em) {
html {
font-size: 18px;
}
}
@media (min-width: 80em) {
html {
font-size: 19px;
}
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
img {
width: auto\9;
max-width: 100%;
height: auto;
vertical-align: middle;
-ms-interpolation-mode: bicubic;
border: 0;
}
#map_canvas img, .google-maps img {
max-width: none;
}
button, input, select, textarea {
font-size: 100%;
margin: 0;
vertical-align: middle;
}
button, input {
line-height: normal;
overflow: visible;
}
textarea {
overflow: auto;
vertical-align: top;
}
html {
position: relative;
min-height: 100%;
}
body {
font-family: "Open Sans";
line-height: 1.6;
margin: 0;
padding: 0;
color: #000;
}
body.overflow--hidden {
overflow: hidden;
}
a, a:active, a:visited {
color: #05668d;
}
h1, h2, h3, h4, h5, h6 {
font-family: "Merriweather";
font-weight: bold;
line-height: 1.25;
margin: 2em 0 .5em;
}
h1 {
font-size: 1.563em;
margin-top: 0;
}
h1 a {
text-decoration: none;
}
h2 {
font-size: 1.25em;
}
h3 {
font-size: 1em;
}
h4 {
font-size: .75em;
}
h5 {
font-size: .75em;
}
h6 {
font-size: .75em;
}
small, .small {
font-size: .75em;
}
p {
margin-bottom: 1.3em;
}
u a, ins a {
color: inherit;
}
del a {
color: inherit;
}
p, pre, blockquote, ul, ol, dl, figure, table, fieldset {
orphans: 3;
widows: 3;
}
blockquote {
font-style: italic;
margin: 2em 1em 2em 0;
padding-right: 1em;
padding-left: 1em;
border-left: .25em solid #7a8288;
}
blockquote cite {
font-style: italic;
}
blockquote cite:before {
padding-right: 5px;
content: "\2014";
}
tt, code, kbd, samp, pre {
font-family: "Roboto Mono", monospace;
}
pre {
overflow-x: auto;
}
p > code, a > code, li > code, figcaption > code, td > code {
font-size: .75em;
padding-top: .1rem;
padding-bottom: .1rem;
border-radius: 4px;
background: #fafafa;
}
p > code:before, p > code:after, a > code:before, a > code:after, li > code:before, li > code:after, figcaption > code:before, figcaption > code:after, td > code:before, td > code:after {
content: "\00a0";
letter-spacing: -.2em;
}
figure {
display: table;
margin-right: auto;
margin-left: auto;
text-align: center;
}
figure img, figure iframe, figure .fluid-width-video-wrapper {
margin-bottom: 1em;
}
figure > a {
display: block;
}
@media (min-width: 37.5em) {
figure.half > a, figure.half > img {
width: calc(50% - .5em);
}
}
figure.half figcaption {
width: 100%;
}
@media (min-width: 37.5em) {
figure.third > a, figure.third > img {
width: calc(33.3333% - .5em);
}
}
figure.third figcaption {
width: 100%;
}
figcaption {
font-family: Merriweather;
font-size: .75em;
margin-bottom: .5em;
color: #7a8288;
}
svg:not(:root) {
overflow: hidden;
}
nav ul {
margin: 0;
padding: 0;
}
nav li {
list-style: none;
}
nav ul li, nav ol li {
margin-bottom: 0;
}
nav li ul, nav li ol {
margin-top: 0;
}
#main {
clear: both;
max-width: 100%;
margin-right: auto;
margin-bottom: 3em;
margin-left: auto;
padding-right: 1em;
padding-left: 1em;
}
#main::after {
display: table;
clear: both;
content: "";
}
@media (min-width: 80em) {
#main {
max-width: 1280px;
}
}
@media (min-width: 64em) {
.sticky {
position: -webkit-sticky;
position: sticky;
top: 2em;
clear: both;
}
.sticky::after {
display: table;
clear: both;
content: "";
}
.sticky > * {
display: block;
}
}
/* Masthead */
.masthead-hero {
position: relative;
clear: both;
height: 500px;
margin-bottom: -32px;
background-repeat: no-repeat;
background-position: bottom;
background-size: cover;
}
.navbar-hero {
height: 30px;
}
.navbar-hero nav, .navbar-hero a {
font-family: "Merriweather";
font-size: 1em;
color: #fff;
}
.navbar-hero nav {
color: #fff;
}
@media (max-width: 64em) {
.navbar-hero {
height: 30px;
}
.navbar-hero a {
color: #fff;
}
}
/* Sidebar */
.sidebar {
clear: both;
margin-bottom: 1em;
}
.sidebar::after {
display: table;
clear: both;
content: "";
}
@media (max-width: 64em) {
.sidebar {
position: relative;
z-index: 10;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
color: #fff;
}
.masthead-hero {
margin-bottom: -88px;
}
}
@media (min-width: 64em) {
.sidebar {
float: left;
width: calc(200px - 1em);
}
.sidebar.sticky {
overflow-y: auto;
height: calc( 100vh - 90px - 2em );
}
}
@media (min-width: 80em) {
.sidebar {
width: calc(300px - 1em);
}
}
.sidebar h2, .sidebar h3, .sidebar h4, .sidebar h5, .sidebar h6 {
font-family: "Merriweather";
margin-bottom: 0;
}
.sidebar p, .sidebar li {
font-family: "Open Sans"
line-height: 1.5;
font-size: .9em;
}
.sidebar img {
width: 100%;
}
.author-avatar {
display: table-cell;
width: 40px;
height: 4opx;
vertical-align: top;
}
@media (min-width: 64em) {
.author-avatar {
display: block;
width: auto;
height: auto;
}
}
.author-avatar img {
max-width: 110px;
border-radius: 50%;
}
.author-content {
line-height: 1;
display: table-cell;
padding-right: 25px;
padding-left: 15px;
vertical-align: top;
}
@media (min-width: 64em) {
.author-content {
display: block;
width: 100%;
padding-right: 0;
padding-left: 0;
}
}
.author-content a {
color: inherit;
}
.author-name {
margin: 0;
}
@media (min-width: 64em) {
.author-name {
margin-top: 10px;
margin-bottom: 10px;
}
}
.sidebar .author-name {
font-family: "Merriweather";
font-size: 1.1em;
}
.author-bio {
margin: 0;
}
@media (min-width: 64em) {
.author-bio {
margin-top: 10px;
margin-bottom: 20px;
}
}
.author-urls-wrapper {
font-family: "Open Sans";
position: relative;
position: relative;
z-index: 10;
display: table-cell;
cursor: pointer;
vertical-align: middle;
}
.author-urls-wrapper li:last-child a {
margin-bottom: 0;
}
@media (min-width: 64em) {
.author-urls-wrapper {
display: block;
}
}
.author-urls-wrapper button {
margin-bottom: 0;
}
@media (min-width: 64em) {
.author-urls-wrapper button {
display: none;
}
}
.author-urls {
position: absolute;
z-index: -1;
right: 0;
display: none;
margin-top: 15px;
padding: 10px;
list-style-type: none;
}
.author-urls.is--visible {
display: block;
}
@media (min-width: 64em) {
.author-urls {
position: relative;
display: block;
margin: 0;
padding: 0;
border: 0;
background: transparent;
box-shadow: none;
}
}
.author-urls:before {
position: absolute;
z-index: 0;
top: -11px;
left: calc(50% - 10px);
display: block;
width: 0;
content: "";
border-width: 0 10px 10px;
border-style: solid;
}
@media (min-width: 64em) {
.author-urls:before {
display: none;
}
}
.author-urls:after {
position: absolute;
z-index: 1;
top: -10px;
left: calc(50% - 10px);
display: block;
width: 0;
content: "";
border-width: 0 10px 10px;
border-style: solid;
border-color: #fff transparent;
}
@media (min-width: 64em) {
.author-urls:after {
display: none;
}
}
.author-urls li {
white-space: nowrap;
}
.author-urls a {
font-size: 1em;
display: block;
margin-bottom: 5px;
padding-top: 2px;
padding-right: 5px;
padding-bottom: 2px;
}
/* Page */
.page_content h4 {
font-size: 1em;
margin-bottom: 0;
}
@media (min-width: 64em) {
.page {
float: right;
width: calc(100% - 200px);
padding-right: 0;
}
}
@media (min-width: 80em) {
.page {
width: calc(100% - 300px);
padding-right: 0;
}
}
.page {
margin-bottom: 100px;
}
.page .page_container {
float: left;
clear: both;
width: 100%;
margin-right: 0;
margin-left: 0;
}
.page .page_container .page_content {
position: relative;
float: left;
clear: both;
width: 100%;
margin-right: 0;
margin-left: 0;
}
/* Recent posts (homepage) */
.recent-post-container {
margin-top: 40px;
}
.recent-post {
margin-bottom: 40px;
}
/* A post */
.post-container {
margin-top: 40px;
}
.post-container h1 {
color: #05668d;
}
.post-header {
position: relative;
clear: both;
}
.post-banner {
width: 100%;
height: auto;
}
.post-header-caption {
font-size: .7em;
position: absolute;
z-index: 5;
right: 0;
bottom: 0;
margin: 0 auto;
padding: 2px 5px;
text-align: right;
opacity: .65;
color: #fff;
border-radius: 5px 0 0 0;
background: #000;
}
@media (min-width: 64em) {
.post-header-caption {
padding: 5px 10px;
}
}
.post-header-caption a {
color: #fff;
}
.post-metadata {
font-size: .9em;
overflow: hidden;
margin-bottom: 1em;
color: #7a8288;
}
.post-metadata a {
color: #7a8288;
}
.post-style img, .post-style video {
margin-top: 1em;
margin-right: auto;
margin-bottom: 1em;
margin-left: auto;
padding: 0;
}
.post-style td img, .post-style td video {
margin-top: 0;
margin-bottom: 0;
}
.post-style figure {
margin-top: 0;
margin-bottom: 0;
}
/* Sharing */
.share-box {
float: left;
margin-top: 40px;
}
ul.share {
margin-top: 0;
padding-left: 0;
}
ul.share li {
display: inline-flex;
margin-right: 5px;
}
ul.share li .fa {
line-height: 30px;
display: block;
width: 30px;
height: 30px;
text-align: center;
color: #fff;
}
ul.share li a {
display: block;
margin: 0;
text-decoration: none !important;
border-radius: 50%;
background-color: #7a8288;
}
/* Comments */
.disqus {
float: left;
clear: both;
width: 100%;;
}
/* Footer */
.page_footer {
position: absolute;
bottom: 0;
float: left;
clear: both;
clear: both;
width: 100%;
height: auto;
margin-top: 3em;
margin-right: 0;
margin-left: 0;
text-align: center;
color: #7a8288;
}
.page_footer::after {
display: table;
clear: both;
content: "";
}
.page_footer footer {
clear: both;
max-width: 100%;
margin-top: 2em;
margin-right: auto;
margin-left: auto;
padding: 0 1em 2em;
}
.page_footer footer::after {
display: table;
clear: both;
content: "";
}
@media (min-width: 80em) {
.page_footer footer {
max-width: 1280px;
}
}
.page_footer a {
color: inherit;
}
.page_footer .fas, .page_footer .fab, .page_footer .far, .page_footer .fal {
color: #7a8288;
}
:-webkit-full-screen-ancestor .masthead, :-webkit-full-screen-ancestor .page_footer {
position: static;
}

View File

@ -0,0 +1,7 @@
{{ partial "header.html" . }}
{{ partial "masthead_hero.html" . }}
{{ partial "homepage.html" . }}
{{ partial "footer_container.html" . }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,5 @@
{{ if .Site.DisqusShortname }}
<div class="disqus">
{{ template "_internal/disqus.html" . }}
</div>
{{ end }}

View File

@ -0,0 +1,8 @@
{{ $comments_enabled := and $.Site.DisqusShortname (not (or $.Site.Params.disable_comments $.Params.disable_comments)) }}
{{ if and $comments_enabled ($.Site.Params.comment_count | default true) }}
<script id="dsq-count-scr" src="//{{ .Site.DisqusShortname }}.disqus.com/count.js" async></script>
{{ end }}
</body>
</html>

View File

@ -0,0 +1,3 @@
<div class="page_footer">
<p>{{ with .Site.Copyright }}{{ . | markdownify}}{{ end }}. Powered by <a href="http://gohugo.io/">Hugo</a> and <a href="https://github.com/jhu247/minimal-academic">Minimal Academic</a>.</p>
</div>

View File

@ -0,0 +1,75 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- <meta name="theme" content="hugo-academic"> -->
{{ .Hugo.Generator }}
{{ with .Site.Params.name }}<meta name="author" content="{{ . }}">{{ end }}
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="{{ printf "//fonts.googleapis.com/css?family=Merriweather:400,700|Open+Sans:400,400italic,700|Roboto+Mono" . }}">
<link rel="stylesheet" href="{{ "styles.css" | relLangURL }}">
{{ range .Site.Params.custom_css }}
<link rel="stylesheet" href="{{ "/css/" | relURL }}{{ . }}">
{{ end }}
{{ if .Site.GoogleAnalytics }}
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', '{{ .Site.GoogleAnalytics }}', 'auto');
{{ if .Site.Params.privacy_pack }}ga('set', 'anonymizeIp', true);{{ end }}
ga('require', 'eventTracker');
ga('require', 'outboundLinkTracker');
ga('require', 'urlChangeTracker');
ga('send', 'pageview');
</script>
<script async src="//www.google-analytics.com/analytics.js"></script>
<script async src="//cdnjs.cloudflare.com/ajax/libs/autotrack/2.4.1/autotrack.js"></script>
{{ end }}
{{ if or .Site.RSSLink .RSSLink }}
<link rel="alternate" href="{{ .RSSLink | default .Site.RSSLink }}" type="application/rss+xml" title="{{ .Site.Title }}">
<link rel="feed" href="{{ .RSSLink | default .Site.RSSLink }}" type="application/rss+xml" title="{{ .Site.Title }}">
{{ end }}
<link rel="apple-touch-icon" sizes="180x180" href="/img/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon/favicon-16x16.png">
<link rel="manifest" href="/img/favicon/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<link rel="manifest" href="{{ "site.webmanifest" | relURL }}">
<link rel="icon" type="image/png" href="{{ "/img/icon.png" | relURL }}">
<link rel="apple-touch-icon" type="image/png" href="{{ "/img/icon-192.png" | relURL }}">
<link rel="canonical" href="{{ .Permalink }}">
<meta property="twitter:card" content="summary_large_image">
{{ range where $.Site.Params.social ".icon" "twitter" }}
<meta property="twitter:site" content="@{{ replaceRE "^//twitter.com/([^/]+)" "$1" .link }}">
<meta property="twitter:creator" content="@{{ replaceRE "^//twitter.com/([^/]+)" "$1" .link }}">
{{ end }}
<meta property="og:site_name" content="{{ .Site.Title }}">
<meta property="og:url" content="{{ .Permalink }}">
<meta property="og:title" content="{{ if not .IsHome }}{{ .Title }} | {{ end }}{{ .Site.Title }}">
{{- with .Params.header.image }}<meta property="og:image" content="{{ printf "img/%s" . | absURL }}">{{end}}
<meta property="og:locale" content="{{ .Site.LanguageCode | default "en-us" }}">
{{ if .IsPage }}
{{ if not .PublishDate.IsZero }}<meta property="article:published_time" content="{{ .PublishDate.Format "2006-01-02T15:04:05-07:00" | safeHTML }}">
{{ else if not .Date.IsZero }}<meta property="article:published_time" content="{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}">{{ end }}
{{ if not .Lastmod.IsZero }}<meta property="article:modified_time" content="{{ .Lastmod.Format "2006-01-02T15:04:05-07:00" | safeHTML }}">{{ end }}
{{ else }}
{{ if not .Date.IsZero }}<meta property="og:updated_time" content="{{ .Date.Format "2006-01-02T15:04:05-07:00" | safeHTML }}">{{ end }}
{{ end }}
<title>{{ if not .IsHome }}{{ .Title }} | {{ end }}{{ .Site.Title }}</title>
{{ template "_internal/google_analytics_async.html" . }}
</head>
<body>

View File

@ -0,0 +1,11 @@
<div id="main" role="main">
{{ partial "sidebar.html" . }}
<article class="page">
<div class="page_container">
<section class="page_content">
{{ partial "masthead_nav.html" . }}
{{ partial "recent_posts.html" . }}
</section>
</div>
</article>
</div>

View File

@ -0,0 +1,8 @@
<style type="text/css">
{{ $url := (print "img" "/" ( $.Param "hero_image" ) ) }}
.masthead-hero {
background-image: url("{{ $url | absURL }}");
}
</style>
<div class="masthead-hero"></div>

View File

@ -0,0 +1,8 @@
<div class="navbar-hero">
<nav>
{{ range $k, $v := $.Site.Params.menu }}
{{ if $k }}&nbsp&nbsp•&nbsp&nbsp{{ end }}
<a href="{{ $v.link | relURL }}">{{ $v.text }}</a>
{{ end }}
</nav>
</div>

View File

@ -0,0 +1,11 @@
<div id="main" role="main">
{{ partial "sidebar.html" . }}
<article class="page">
<div class="page_container">
<section class="page_content">
{{ partial "masthead_nav.html" . }}
{{ partial "post.html" . }}
</section>
</div>
</article>
</div>

View File

@ -0,0 +1,27 @@
<article class="post" itemscope itemtype="http://schema.org/Article">
<div class="post-container">
<h1 itemprop="name"><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
{{ if not .Params.nometadata }}
{{ partial "post_metadata" (dict "content" . "is_list" 0) }}
{{ end }}
<div class="post-style" itemprop="articleBody">
{{ .Description }}
{{ .Content }}
</div>
{{ if not .Params.notags }}
{{ partial "tags.html" . }}
{{ end }}
{{ if not .Params.noshare }}
{{ partial "share.html" . }}
{{ end }}
{{ if not .Params.nocomments }}
{{ partial "disqus.html" . }}
{{ end }}
</div>
</article>

View File

@ -0,0 +1,27 @@
{{ $is_list := .is_list }}
{{ $ := .content }}
<div class="post-metadata">
<span class="post-date">
{{ if ne $.Params.Lastmod $.Params.Date }}
{{ i18n "last_updated" }}
{{ end }}
<time datetime="{{ $.Date }}" itemprop="datePublished dateModified">
{{ $.Lastmod.Format $.Site.Params.date_format }}
</time>
</span>
{{ if isset $.Params "categories" }}
{{ $categoriesLen := len $.Params.categories }}
{{ if gt $categoriesLen 0 }}
<span class="post-categories">
<i class="fa fa-folder"></i>
{{ range $k, $v := $.Params.categories }}
<a href="{{ ($.Site.GetPage "taxonomyTerm" "categories" .).Permalink }}">{{ . }}</a
>{{ if lt $k (sub $categoriesLen 1) }}, {{ end }}
{{ end }}
</span>
{{ end }}
{{ end }}
</div>

View File

@ -0,0 +1,9 @@
<div class="recent-post-container">
{{ range (.Data.Pages.ByDate).Reverse }}
<div class="recent-post">
<h1><a href="{{ .RelPermalink }}">{{ .Title }}</a></h1>
{{ partial "post_metadata" (dict "content" . "is_list" 0) }}
<p>{{ .Description }}</p>
</div>
{{ end }}
</div>

View File

@ -0,0 +1,33 @@
{{ if .Site.Params.sharing }}
<div class="share-box" aria-hidden="true">
<ul class="share">
<li>
<a class="twitter"
href="https://twitter.com/intent/tweet?text={{ .Title | html }}&amp;url={{ .Permalink | html }}"
target="_blank" rel="noopener noreferrer">
<i class="fa fa-twitter"></i>
</a>
</li>
<li>
<a class="facebook"
href="https://www.facebook.com/sharer.php?u={{ .Permalink | html }}"
target="_blank" rel="noopener noreferrer">
<i class="fa fa-facebook"></i>
</a>
</li>
<li>
<a class="linkedin"
href="https://www.linkedin.com/shareArticle?mini=true&amp;url={{ .Permalink | html }}&amp;title={{ .Title | html }}"
target="_blank" rel="noopener noreferrer">
<i class="fa fa-linkedin"></i>
</a>
</li>
<li>
<a class="email"
href="mailto:?subject={{ .Title | html }}&amp;body={{ .Permalink | html }}">
<i class="fa fa-envelope"></i>
</a>
</li>
</ul>
</div>
{{ end }}

View File

@ -0,0 +1,26 @@
<div class="sidebar sticky" itemprop="author" itemscope itemtype="http://schema.org/Person">
<div class="author-avatar">
<a href="{{ "/" | relURL }}">
<img src="{{ (printf "/img/%s" $.Site.Params.avatar) | relURL }}" alt="{{ $.Site.Params.name }}" itemprop="image">
</a>
</div>
<div class="author-content">
<h3 class="author-name" itemprop="name">{{ $.Site.Params.name }}</h3>
<p class="author-bio" itemprop="description">{{ $.Site.Params.bio }}</p>
</div>
<div class="author-urls-wrapper">
<ul class="author-urls social-icons" aria-hidden="true">
<li itemprop="homeLocation" itemscope itemtype="http://schema.org/Place">
<span itemprop="name">{{ $.Site.Params.location }}</span>
</li>
{{ range $.Site.Params.social }}
<li>
<a itemprop="sameAs" href="{{ .link | safeURL }}" target="_blank" rel="noopener noreferrer">
<i class="fa fa-{{ .icon }}"></i>
{{ .text }}
</a>
</li>
{{ end }}
</ul>
</div>
</div>

View File

@ -0,0 +1,10 @@
{{ if isset $.Params "tags" }}
{{ $tagsLen := len $.Params.tags }}
{{ if gt $tagsLen 0 }}
<div class="post-tags">
{{ range $k, $v := $.Params.tags }}
<a href="{{ (printf "%s/%s" ($.Site.GetPage "tags").Permalink $v) | relURL }}">{{ . }}</a>
{{ end }}
</div>
{{ end }}
{{ end }}

View File

@ -0,0 +1,7 @@
{{ partial "header.html" . }}
{{ partial "masthead_hero.html" . }}
{{ partial "page.html" . }}
{{ partial "footer_container.html" . }}
{{ partial "footer.html" . }}

View File

@ -0,0 +1,21 @@
# theme.toml template for a Hugo theme
# See https://github.com/gohugoio/hugoThemes#themetoml for an example
name = "Minimal Academic"
license = "MIT"
licenselink = "https://github.com/jhu247/minimal-academic/blob/master/LICENSE"
description = "A two-column Hugo theme for personal sites inspired by Hugo Academic & Minimal Mistakes."
homepage = "https://joshuahu.io/"
tags = ["blog", "responsive", "minimal", "personal", "clean", "simple", "portfolio", "minimalist", "projects"]
features = ["two column", "hero", "sticky sidebar", "minimal mistakes"]
min_version = "0.41"
[author]
name = "Joshua Hu"
homepage = "https://joshuahu.io"
# If porting an existing theme
[original]
name = ""
homepage = ""
repo = ""

55
keybase.txt Normal file
View File

@ -0,0 +1,55 @@
==================================================================
https://keybase.io/tgrosinger
--------------------------------------------------------------------
I hereby claim:
* I am an admin of https://grosinger.net
* I am tgrosinger (https://keybase.io/tgrosinger) on keybase.
* I have a public key ASBrTJJIMIXXtRtT7Ue84qI0F_EfpKcLUKAifUUUNnffiAo
To do so, I am signing this object:
{
"body": {
"key": {
"eldest_kid": "010134ea8c10d2e0e99d42ec6f3d86432a74d596b9ec7582f66d4d4d61de6fce54ba0a",
"host": "keybase.io",
"kid": "01206b4c92483085d7b51b53ed47bce2a23417f11fa4a70b50a0227d45143677df880a",
"uid": "25446509accc489abcefa23abf36e500",
"username": "tgrosinger"
},
"merkle_root": {
"ctime": 1515012459,
"hash": "d6ea7f8260f3df2d243c33361e8f5c121bde3a46cf5036fd7744a2bf9a1adfe90f63028262b1a553128db0cddcf56a6fc764fb341a197101ccada7cd2bddcbab",
"hash_meta": "a8679f65c3555555787960886013e20dd0e516df1a3dc2aed3fdb9296b41bca0",
"seqno": 1883930
},
"service": {
"hostname": "grosinger.net",
"protocol": "https:"
},
"type": "web_service_binding",
"version": 1
},
"client": {
"name": "keybase.io go client",
"version": "1.0.38"
},
"ctime": 1515012479,
"expire_in": 504576000,
"prev": "29da9961b2d86bf10a8de8e1920bb4a6e57dee915eefbcc784ad9797c0069593",
"seqno": 54,
"tag": "signature"
}
which yields the signature:
hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEga0ySSDCF17UbU+1HvOKiNBfxH6SnC1CgIn1FFDZ334gKp3BheWxvYWTFA0h7ImJvZHkiOnsia2V5Ijp7ImVsZGVzdF9raWQiOiIwMTAxMzRlYThjMTBkMmUwZTk5ZDQyZWM2ZjNkODY0MzJhNzRkNTk2YjllYzc1ODJmNjZkNGQ0ZDYxZGU2ZmNlNTRiYTBhIiwiaG9zdCI6ImtleWJhc2UuaW8iLCJraWQiOiIwMTIwNmI0YzkyNDgzMDg1ZDdiNTFiNTNlZDQ3YmNlMmEyMzQxN2YxMWZhNGE3MGI1MGEwMjI3ZDQ1MTQzNjc3ZGY4ODBhIiwidWlkIjoiMjU0NDY1MDlhY2NjNDg5YWJjZWZhMjNhYmYzNmU1MDAiLCJ1c2VybmFtZSI6InRncm9zaW5nZXIifSwibWVya2xlX3Jvb3QiOnsiY3RpbWUiOjE1MTUwMTI0NTksImhhc2giOiJkNmVhN2Y4MjYwZjNkZjJkMjQzYzMzMzYxZThmNWMxMjFiZGUzYTQ2Y2Y1MDM2ZmQ3NzQ0YTJiZjlhMWFkZmU5MGY2MzAyODI2MmIxYTU1MzEyOGRiMGNkZGNmNTZhNmZjNzY0ZmIzNDFhMTk3MTAxY2NhZGE3Y2QyYmRkY2JhYiIsImhhc2hfbWV0YSI6ImE4Njc5ZjY1YzM1NTU1NTU3ODc5NjA4ODYwMTNlMjBkZDBlNTE2ZGYxYTNkYzJhZWQzZmRiOTI5NmI0MWJjYTAiLCJzZXFubyI6MTg4MzkzMH0sInNlcnZpY2UiOnsiaG9zdG5hbWUiOiJncm9zaW5nZXIubmV0IiwicHJvdG9jb2wiOiJodHRwczoifSwidHlwZSI6IndlYl9zZXJ2aWNlX2JpbmRpbmciLCJ2ZXJzaW9uIjoxfSwiY2xpZW50Ijp7Im5hbWUiOiJrZXliYXNlLmlvIGdvIGNsaWVudCIsInZlcnNpb24iOiIxLjAuMzgifSwiY3RpbWUiOjE1MTUwMTI0NzksImV4cGlyZV9pbiI6NTA0NTc2MDAwLCJwcmV2IjoiMjlkYTk5NjFiMmQ4NmJmMTBhOGRlOGUxOTIwYmI0YTZlNTdkZWU5MTVlZWZiY2M3ODRhZDk3OTdjMDA2OTU5MyIsInNlcW5vIjo1NCwidGFnIjoic2lnbmF0dXJlIn2jc2lnxECXwEMojl0y7AFGDdHgWehinfKYI+YKDbYQm5WA4tUR/AJlo411ZcILOl09cP9o4k9ymYOoBiG4Jx4f+B+Tyh8NqHNpZ190eXBlIKRoYXNogqR0eXBlCKV2YWx1ZcQgLjHU9RlTRIuj9ki2YrINCmZlKtsDxOle6V+wgkjPcEOjdGFnzQICp3ZlcnNpb24B
And finally, I am proving ownership of this host by posting or
appending to this document.
View my publicly-auditable identity here: https://keybase.io/tgrosinger
==================================================================

4
pgpkey.txt Normal file
View File

@ -0,0 +1,4 @@
This file claims ownership of the OpenPGP key with long id 0x065559ace0a9c69c.
Token for proof:
[Verifying my OpenPGP key: openpgp4fpr:5be7260e32f038192ecb3464065559ace0a9c69c]

@ -1 +0,0 @@
Subproject commit 7ecfa48972ce1ae7726a52bc73212ffa878ee90d

10958
tw5-checklist/index.html Normal file

File diff suppressed because one or more lines are too long