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: + +
+ +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 @@ -63,6 +63,15 @@ sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y"; }; } + { + 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 = { @@ -135,6 +144,15 @@ sha256 = "1lwqibra4hyzx0jhaz12rfhfnw73bmdf8cn9r51nqidk8k7zf7sg"; }; } + { + 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 = { @@ -207,6 +225,15 @@ sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"; }; } + { + 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 = { @@ -252,6 +279,33 @@ sha256 = "0cksf3andl8z04lychay2j0l8wrpdq7j5pdb6zy5yr4990iab6aa"; }; } + { + 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 = { @@ -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"; }; } { @@ -477,6 +540,24 @@ sha256 = "0vfk9czmlxmp6wndq8k17rhnjxal764mxfhrccza7nwlia760pjy"; }; } + { + 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 = { 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 @@