aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristine Dodrill <me@christine.website>2020-03-18 16:45:55 -0400
committerGitHub <noreply@github.com>2020-03-18 16:45:55 -0400
commit7dc75b17a4c38c312ef87412273b3d7636746a1b (patch)
tree57502a097318be6ef6f24aeb6968ccb6eb51f3fa
parent207f6a32f578f0465af6c2788b4c5cb02d1ad5ba (diff)
downloadxesite-7dc75b17a4c38c312ef87412273b3d7636746a1b.tar.xz
xesite-7dc75b17a4c38c312ef87412273b3d7636746a1b.zip
signal boost page (#128)
-rw-r--r--Dockerfile1
-rw-r--r--blog/signalboost-page-2020-03-20.markdown50
-rw-r--r--cmd/site/main.go24
-rw-r--r--cmd/site/signalboost.go29
-rw-r--r--cmd/site/signalboost_test.go28
-rw-r--r--go.mod1
-rw-r--r--go.sum18
-rw-r--r--nix/deps.nix89
-rw-r--r--signalboost.dhall39
-rw-r--r--site.nix1
-rw-r--r--templates/base.html3
-rw-r--r--templates/signalboost.html30
12 files changed, 300 insertions, 13 deletions
diff --git a/Dockerfile b/Dockerfile
index 6695ebb..a3df3e3 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -15,5 +15,6 @@ COPY ./blog /site/blog
COPY ./talks /site/talks
COPY ./gallery /site/gallery
COPY ./css /site/css
+COPY ./signalboost.dhall /site/signalboost.dhall
HEALTHCHECK CMD wget --spider http://127.0.0.1:5000/.within/health || exit 1
CMD ./site
diff --git a/blog/signalboost-page-2020-03-20.markdown b/blog/signalboost-page-2020-03-20.markdown
new file mode 100644
index 0000000..5f9e930
--- /dev/null
+++ b/blog/signalboost-page-2020-03-20.markdown
@@ -0,0 +1,50 @@
+---
+title: "New Site Feature: Signal Boosting"
+date: 2020-03-20
+tags:
+ - signalboost
+---
+
+# New Site Feature: Signal Boosting
+
+In light of the [COVID-19][covid19] pandemic, people have been losing their
+jobs. In normal times, this would be less of an issue, but in the middle of the
+pandemic, HR departments have been reluctant to hire people as entire companies
+suddenly switch to remote work. I feel utterly powerless during this outbreak. I
+can only image what people who have lost their job feel.
+
+[covid19]: https://www.canada.ca/en/public-health/services/diseases/coronavirus-disease-covid-19.html
+
+I've decided to do what I can to help. I have created a page on my website to
+signal boost people who are looking for work. You can find it at
+[`/signalboost`](/signalboost). If you want to be added to it, please open a
+[GitHub issue](https://github.com/Xe/site/issues/new), [contact me](/contact),
+or open a pull request to `signalboost.dhall` in the root.
+
+The schema of this is simple:
+
+```dhall
+Person::{ Name = "Nicole Brennan"
+ , Tags = [ "python", "go", "rust", "technical-writing" ]
+ , GitLink = "https://github.com/Twi"
+ , Twitter = "https://twitter.com/TwitterAccountNameHere"
+ }
+```
+
+This will create a grid entry on the site that looks like this:
+
+<div class="grid">
+ <div class="cell -4of12 content"></div>
+ <div class="cell -4of12 content">
+ <big>Nicole Brennan</big>
+ <p>python go rust technical-writing</p>
+ <a href="https://github.com/Twi">GitHub</a> - <a href="https://twitter.com/TwitterAccountNameHere">Twitter</a>
+ </div>
+ <div class="cell -4of12 content"></div>
+</div>
+
+I've also changed my footer to point to this page for the forseeable future
+instead of linking to my Patreon. Thank you for reading this and please take a
+look at the people on [`/signalboost`](/signalboost).
+
+Be well.
diff --git a/cmd/site/main.go b/cmd/site/main.go
index 3a534f0..bb7b369 100644
--- a/cmd/site/main.go
+++ b/cmd/site/main.go
@@ -56,13 +56,14 @@ func main() {
// Site is the parent object for https://christine.website's backend.
type Site struct {
- Posts blog.Posts
- Talks blog.Posts
- Gallery blog.Posts
- Resume template.HTML
- Series []string
- patrons []string
-
+ Posts blog.Posts
+ Talks blog.Posts
+ Gallery blog.Posts
+ Resume template.HTML
+ Series []string
+ SignalBoost []Person
+
+ patrons []string
rssFeed *feeds.Feed
jsonFeed *jsonfeed.Feed
@@ -100,6 +101,11 @@ func Build() (*Site, error) {
return nil, err
}
+ people, err := loadPeople("./signalboost.dhall")
+ if err != nil {
+ return nil, err
+ }
+
smi := sitemap.New()
smi.Add(&sitemap.URL{
Loc: "https://christine.website/resume",
@@ -162,7 +168,8 @@ func Build() (*Site, error) {
mux: http.NewServeMux(),
xffmw: xffmw,
- patrons: pledges,
+ patrons: pledges,
+ SignalBoost: people,
}
posts, err := blog.LoadPosts("./blog/", "blog")
@@ -236,6 +243,7 @@ func Build() (*Site, error) {
})
s.mux.Handle("/metrics", promhttp.Handler())
s.mux.Handle("/patrons", middleware.Metrics("patrons", s.renderTemplatePage("patrons.html", s.patrons)))
+ s.mux.Handle("/signalboost", middleware.Metrics("signalboost", s.renderTemplatePage("signalboost.html", s.SignalBoost)))
s.mux.Handle("/resume", middleware.Metrics("resume", s.renderTemplatePage("resume.html", s.Resume)))
s.mux.Handle("/blog", middleware.Metrics("blog", s.renderTemplatePage("blogindex.html", s.Posts)))
s.mux.Handle("/talks", middleware.Metrics("talks", s.renderTemplatePage("talkindex.html", s.Talks)))
diff --git a/cmd/site/signalboost.go b/cmd/site/signalboost.go
new file mode 100644
index 0000000..c242711
--- /dev/null
+++ b/cmd/site/signalboost.go
@@ -0,0 +1,29 @@
+package main
+
+import (
+ "io/ioutil"
+
+ "github.com/philandstuff/dhall-golang"
+)
+
+type Person struct {
+ Name string `dhall:"name"`
+ GitLink string `dhall:"gitLink"`
+ Twitter string `dhall:"twitter"`
+ Tags []string `dhall:"tags"`
+}
+
+func loadPeople(path string) ([]Person, error) {
+ data, err := ioutil.ReadFile(path)
+ if err != nil {
+ return nil, err
+ }
+
+ var people []Person
+ err = dhall.Unmarshal(data, &people)
+ if err != nil {
+ return nil, err
+ }
+
+ return people, nil
+}
diff --git a/cmd/site/signalboost_test.go b/cmd/site/signalboost_test.go
new file mode 100644
index 0000000..7f53943
--- /dev/null
+++ b/cmd/site/signalboost_test.go
@@ -0,0 +1,28 @@
+package main
+
+import "testing"
+
+func TestLoadPeople(t *testing.T) {
+ people, err := loadPeople("../../signalboost.dhall")
+ if err != nil {t.Fatal(err)}
+
+ for _, person := range people {
+ t.Run(person.Name, func(t *testing.T) {
+ if person.Name == "" {
+ t.Error("missing name")
+ }
+
+ if len(person.Tags) == 0 {
+ t.Error("missing tags")
+ }
+
+ if person.Twitter == "" {
+ t.Error("missing twitter")
+ }
+
+ if person.GitLink == "" {
+ t.Error("missing git link")
+ }
+ })
+ }
+}
diff --git a/go.mod b/go.mod
index c347dfc..1911f1e 100644
--- a/go.mod
+++ b/go.mod
@@ -5,6 +5,7 @@ require (
github.com/gorilla/feeds v1.1.1
github.com/joho/godotenv v1.3.0
github.com/mxpv/patreon-go v0.0.0-20190917022727-646111f1d983
+ github.com/philandstuff/dhall-golang v1.0.0
github.com/povilasv/prommod v0.0.12
github.com/prometheus/client_golang v1.5.1
github.com/russross/blackfriday v2.0.0+incompatible
diff --git a/go.sum b/go.sum
index d4ffac2..1bd58cb 100644
--- a/go.sum
+++ b/go.sum
@@ -15,6 +15,7 @@ github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XL
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
@@ -33,6 +34,7 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/gorilla/feeds v1.1.1 h1:HwKXxqzcRNg9to+BbvJog4+f3s/xzvtZXICcQGutYfY=
github.com/gorilla/feeds v1.1.1/go.mod h1:Nk0jZrvPFZX1OBe5NPiddPw7CfwF6Q9eqzaBbaightA=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -45,6 +47,7 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/leanovate/gopter v0.2.5-0.20190402064358-634a59d12406/go.mod h1:gNcbPWNEWRe4lm+bycKqxUYoH5uoVje5SkOJ3uoLer8=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -54,6 +57,11 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mxpv/patreon-go v0.0.0-20190917022727-646111f1d983 h1:r32TFg+FHLnoF8PCqCQNp+R9EjMBuP62FXkD/Eqp9Us=
github.com/mxpv/patreon-go v0.0.0-20190917022727-646111f1d983/go.mod h1:ksYjm2GAbGlgIP7jO9Q5/AdyE4MwwEbgQ+lFMx3hyiM=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/philandstuff/dhall-golang v1.0.0 h1:4iYE+OfVjpXtwB6todsw5w+rnBvAhufgpNzAo9K0ljw=
+github.com/philandstuff/dhall-golang v1.0.0/go.mod h1:nYfzcKjqq6UDCStpXV6UxRwD0HX9IK9z/MuHmHghbEY=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -106,23 +114,30 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
+github.com/ugorji/go v1.1.5-0.20190603013658-a2c9fa250719 h1:UW5IeyWBDAPQ+Qu1hT/lwtxL7pP3L+ETA8WuBvvvBWU=
+github.com/ugorji/go v1.1.5-0.20190603013658-a2c9fa250719/go.mod h1:RaaajvHwnCbhlqWLTIB78hyPWp24YUXhQ3YXM7Hg7os=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 h1:ywK/j/KkyTHcdyYSZNXGjMwgmDSfjglYZ3vStQ/gSCU=
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -133,8 +148,11 @@ google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO50
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
diff --git a/nix/deps.nix b/nix/deps.nix
index 63b0a56..3e8e68d 100644
--- a/nix/deps.nix
+++ b/nix/deps.nix
@@ -64,6 +64,15 @@
};
}
{
+ goPackagePath = "github.com/fsnotify/fsnotify";
+ fetch = {
+ type = "git";
+ url = "https://github.com/fsnotify/fsnotify";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
goPackagePath = "github.com/go-kit/kit";
fetch = {
type = "git";
@@ -136,6 +145,15 @@
};
}
{
+ goPackagePath = "github.com/hpcloud/tail";
+ fetch = {
+ type = "git";
+ url = "https://github.com/hpcloud/tail";
+ rev = "v1.0.0";
+ sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
+ };
+ }
+ {
goPackagePath = "github.com/joho/godotenv";
fetch = {
type = "git";
@@ -208,6 +226,15 @@
};
}
{
+ goPackagePath = "github.com/leanovate/gopter";
+ fetch = {
+ type = "git";
+ url = "https://github.com/leanovate/gopter";
+ rev = "634a59d12406";
+ sha256 = "0rjx9niww7qxiqch6lwq9gibvxi41nm112yg5mzl3hpi084mb94c";
+ };
+ }
+ {
goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
fetch = {
type = "git";
@@ -253,6 +280,33 @@
};
}
{
+ goPackagePath = "github.com/onsi/ginkgo";
+ fetch = {
+ type = "git";
+ url = "https://github.com/onsi/ginkgo";
+ rev = "v1.7.0";
+ sha256 = "14wgpdrvpc35rdz3859bz53sc1g4vpr1fysy15wy3ff9gmqs14yg";
+ };
+ }
+ {
+ goPackagePath = "github.com/onsi/gomega";
+ fetch = {
+ type = "git";
+ url = "https://github.com/onsi/gomega";
+ rev = "v1.4.3";
+ sha256 = "1c8rqg5i2hz3snmq7s41yar1zjnzilb0fyiyhkg83v97afcfx79v";
+ };
+ }
+ {
+ goPackagePath = "github.com/philandstuff/dhall-golang";
+ fetch = {
+ type = "git";
+ url = "https://github.com/philandstuff/dhall-golang";
+ rev = "v1.0.0";
+ sha256 = "1ir3yhjbkqgk1z1q2v6vgbrw4q1n086mi9mbxpjrn2yn09k1h8l1";
+ };
+ }
+ {
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
@@ -284,8 +338,8 @@
fetch = {
type = "git";
url = "https://github.com/prometheus/client_golang";
- rev = "v1.4.1";
- sha256 = "1kx461i7kw6y8s98774d0aasagzjh60ijsg3ikzxrfcc6adjmhz2";
+ rev = "v1.5.0";
+ sha256 = "0cqcrzvzvzc5jj1zpmvbig3aj3a2vxaixfz5r3nprgxc9jryqpp9";
};
}
{
@@ -383,8 +437,17 @@
fetch = {
type = "git";
url = "https://github.com/stretchr/testify";
- rev = "v1.4.0";
- sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
+ rev = "v1.5.1";
+ sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl";
+ };
+ }
+ {
+ goPackagePath = "github.com/ugorji/go";
+ fetch = {
+ type = "git";
+ url = "https://github.com/ugorji/go";
+ rev = "a2c9fa250719";
+ sha256 = "10l24bp2vj5c99lxlkzm9icja265jmpki813v3s32ibam590virx";
};
}
{
@@ -478,6 +541,24 @@
};
}
{
+ goPackagePath = "gopkg.in/fsnotify.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/fsnotify.v1";
+ rev = "v1.4.7";
+ sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
+ };
+ }
+ {
+ goPackagePath = "gopkg.in/tomb.v1";
+ fetch = {
+ type = "git";
+ url = "https://gopkg.in/tomb.v1";
+ rev = "dd632973f1e7";
+ sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
+ };
+ }
+ {
goPackagePath = "gopkg.in/yaml.v2";
fetch = {
type = "git";
diff --git a/signalboost.dhall b/signalboost.dhall
new file mode 100644
index 0000000..cd5acc9
--- /dev/null
+++ b/signalboost.dhall
@@ -0,0 +1,39 @@
+let Person =
+ { Type = { name : Text, tags : List Text, gitLink : Text, twitter : Text }
+ , default =
+ { name = "", tags = [] : List Text, gitLink = "", twitter = "" }
+ }
+
+in [ Person::{
+ , name = "Aisling Fae"
+ , tags =
+ [ "python", "bash", "kubernetes", "google-cloud", "aws", "devops" ]
+ , gitLink = "https://github.com/aislingfae"
+ , twitter = "https://twitter.com/aisstern"
+ }
+ , Person::{
+ , name = "Christian Sullivan"
+ , tags =
+ [ "go"
+ , "wasm"
+ , "react"
+ , "rust"
+ , "react-native"
+ , "swift"
+ , "google-cloud"
+ , "aws"
+ , "docker"
+ , "kubernetes"
+ , "istio"
+ , "typescript"
+ ]
+ , gitLink = "https://github.com/euforic"
+ , twitter = "https://twitter.com/euforic"
+ }
+ , Person::{
+ , name = "Jamie Bliss"
+ , tags = [ "python", "devops", "full-stack", "saltstack", "web", "linux" ]
+ , gitLink = "https://github.com/astronouth7303"
+ , twitter = "https://twitter.com/AstraLuma"
+ }
+ ]
diff --git a/site.nix b/site.nix
index 157429e..aabe7be 100644
--- a/site.nix
+++ b/site.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
cp -rf $src/blog $bin/blog
cp -rf $src/css $bin/css
cp -rf $src/gallery $bin/gallery
+ cp -rf $src/signalboost.dhall $bin/signalboost.dhall
cp -rf $src/static $bin/static
cp -rf $src/talks $bin/talks
cp -rf $src/templates $bin/templates
diff --git a/templates/base.html b/templates/base.html
index ad0d099..c250dc0 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -68,7 +68,8 @@
<footer>
<blockquote>Copyright 2020 Christine Dodrill. Any and all opinions listed here are my own and not representative of my employers; future, past and present.</blockquote>
<br />
- <p>Like what you see? Donate on <a href="https://www.patreon.com/cadey">Patreon</a> like <a href="/patrons">these awesome people</a>!</p>
+ {{/* <p>Like what you see? Donate on <a href="https://www.patreon.com/cadey">Patreon</a> like <a href="/patrons">these awesome people</a>!</p> */}}
+ <p>Looking for someone for your team? Take a look <a href="/signalboost">here</a>.</p>
</footer>
<script>
diff --git a/templates/signalboost.html b/templates/signalboost.html
new file mode 100644
index 0000000..e128867
--- /dev/null
+++ b/templates/signalboost.html
@@ -0,0 +1,30 @@
+{{ define "title" }}
+<title>Signal Boosts - Christine Dodrill</title>
+{{ end }}
+
+{{ define "content" }}
+<h1>Signal Boosts</h1>
+
+<p>These awesome people are currently looking for a job. If you are looking for anyone with these skills, please feel free to reach out to them.</p>
+
+<p>To add yourself to this list, fork <a href="https://github.com/Xe/site">this website's source code</a> and send a pull request with edits to <code>signalboost.dhall</code>.</p>
+
+{{/* Remove this after COVID-19 is less of a thing */}}
+
+<p>With COVID-19 raging across the world, these people are in need of a job now more than ever.</p>
+
+{{/* end COVID-19 note */}}
+
+<h2>People</h2>
+
+<div class="grid">
+ {{ range . }}
+ <div class="cell -4of12 content">
+ <big>{{ .Name }}</big>
+ <p>{{ range .Tags }}{{ . }} {{ end }}</p>
+ <a href="{{ .GitLink }}">GitHub</a> - <a href="{{ .Twitter }}">Twitter</a>
+ </div>
+ {{ end }}
+</div>
+
+{{ end }}