- commit
- d19c0db
- parent
- 7575c0b
- author
- Eric Bower
- date
- 2023-08-05 18:09:44 +0000 UTC
chore: formatting
9 files changed,
+1420,
-42
M
Makefile
+1,
-0
1@@ -7,6 +7,7 @@ build:
2 .PHONY: build
3
4 static: build clean
5+ cp -R ./static ./public
6 ./pgit
7 .PHONY:
8
M
go.mod
+52,
-4
1@@ -4,25 +4,73 @@ go 1.18
2
3 require (
4 github.com/gogs/git-module v1.6.0
5+ github.com/picosh/pico v1.1.6
6 github.com/spf13/viper v1.12.0
7 )
8
9 require (
10+ github.com/alecthomas/chroma v0.10.0 // indirect
11+ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
12+ github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de // indirect
13+ github.com/aymerick/douceur v0.2.0 // indirect
14+ github.com/disintegration/imaging v1.6.2 // indirect
15+ github.com/dlclark/regexp2 v1.7.0 // indirect
16+ github.com/dsoprea/go-exif v0.0.0-20221012082141-d21ac8e2de85 // indirect
17+ github.com/dsoprea/go-exif/v2 v2.0.0-20221012082141-d21ac8e2de85 // indirect
18+ github.com/dsoprea/go-iptc v0.0.0-20200610044640-bc9ca208b413 // indirect
19+ github.com/dsoprea/go-logging v0.0.0-20200710184922-b02d349568dd // indirect
20+ github.com/dsoprea/go-photoshop-info-format v0.0.0-20200610045659-121dd752914d // indirect
21+ github.com/dsoprea/go-png-image-structure v0.0.0-20210512210324-29b889a6093d // indirect
22+ github.com/dsoprea/go-utility v0.0.0-20221003172846-a3e1774ef349 // indirect
23+ github.com/dustin/go-humanize v1.0.0 // indirect
24 github.com/fsnotify/fsnotify v1.5.4 // indirect
25+ github.com/gliderlabs/ssh v0.3.5 // indirect
26+ github.com/go-errors/errors v1.4.2 // indirect
27+ github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect
28+ github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 // indirect
29+ github.com/google/uuid v1.3.0 // indirect
30+ github.com/gorilla/css v1.0.0 // indirect
31+ github.com/gorilla/feeds v1.1.1 // indirect
32 github.com/hashicorp/hcl v1.0.0 // indirect
33+ github.com/json-iterator/go v1.1.12 // indirect
34+ github.com/klauspost/compress v1.15.13 // indirect
35+ github.com/klauspost/cpuid/v2 v2.2.2 // indirect
36+ github.com/kolesa-team/go-webp v1.0.2 // indirect
37+ github.com/lib/pq v1.10.7 // indirect
38 github.com/magiconair/properties v1.8.6 // indirect
39 github.com/mcuadros/go-version v0.0.0-20190308113854-92cdf37c5b75 // indirect
40+ github.com/microcosm-cc/bluemonday v1.0.21 // indirect
41+ github.com/minio/md5-simd v1.1.2 // indirect
42+ github.com/minio/minio-go/v7 v7.0.45 // indirect
43+ github.com/minio/sha256-simd v1.0.0 // indirect
44 github.com/mitchellh/mapstructure v1.5.0 // indirect
45+ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
46+ github.com/modern-go/reflect2 v1.0.2 // indirect
47+ github.com/neurosnap/go-exif-remove v0.0.0-20221010134343-50d1e3c35577 // indirect
48+ github.com/neurosnap/go-jpeg-image-structure v0.0.0-20221010133817-70b1c1ff679e // indirect
49+ github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
50 github.com/pelletier/go-toml v1.9.5 // indirect
51 github.com/pelletier/go-toml/v2 v2.0.1 // indirect
52+ github.com/rs/xid v1.4.0 // indirect
53+ github.com/sirupsen/logrus v1.9.0 // indirect
54 github.com/spf13/afero v1.8.2 // indirect
55 github.com/spf13/cast v1.5.0 // indirect
56 github.com/spf13/jwalterweatherman v1.1.0 // indirect
57 github.com/spf13/pflag v1.0.5 // indirect
58 github.com/subosito/gotenv v1.3.0 // indirect
59- golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect
60- golang.org/x/text v0.3.7 // indirect
61- gopkg.in/ini.v1 v1.66.4 // indirect
62+ github.com/yuin/goldmark v1.5.3 // indirect
63+ github.com/yuin/goldmark-highlighting v0.0.0-20220208100518-594be1970594 // indirect
64+ github.com/yuin/goldmark-meta v1.1.0 // indirect
65+ go.uber.org/atomic v1.10.0 // indirect
66+ go.uber.org/multierr v1.8.0 // indirect
67+ go.uber.org/zap v1.24.0 // indirect
68+ golang.org/x/crypto v0.4.0 // indirect
69+ golang.org/x/exp v0.0.0-20221211140036-ad323defaf05 // indirect
70+ golang.org/x/image v0.2.0 // indirect
71+ golang.org/x/net v0.4.0 // indirect
72+ golang.org/x/sys v0.3.0 // indirect
73+ golang.org/x/text v0.5.0 // indirect
74+ gopkg.in/ini.v1 v1.67.0 // indirect
75 gopkg.in/yaml.v2 v2.4.0 // indirect
76- gopkg.in/yaml.v3 v3.0.0 // indirect
77+ gopkg.in/yaml.v3 v3.0.1 // indirect
78 )
M
go.sum
+164,
-9
1@@ -38,6 +38,15 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f
2 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
3 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
4 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
5+github.com/alecthomas/chroma v0.10.0 h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek=
6+github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s=
7+github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
8+github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
9+github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhPwqqXc4/vE0f7GvRjuAsbW+HOIe8KnA=
10+github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw=
11+github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
12+github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
13+github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
14 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
15 github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
16 github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
17@@ -49,6 +58,37 @@ github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnht
18 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
19 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
20 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
21+github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
22+github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
23+github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
24+github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo=
25+github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
26+github.com/dsoprea/go-exif v0.0.0-20221012082141-d21ac8e2de85 h1:+wKSjK8wh5Ybb63Fx1QvTSIfWU/n1nmqEzZy+82pqbQ=
27+github.com/dsoprea/go-exif v0.0.0-20221012082141-d21ac8e2de85/go.mod h1:lOaOt7+UEppOgyvRy749v3do836U/hw0YVJNjoyPaEs=
28+github.com/dsoprea/go-exif/v2 v2.0.0-20200321225314-640175a69fe4/go.mod h1:Lm2lMM2zx8p4a34ZemkaUV95AnMl4ZvLbCUbwOvLC2E=
29+github.com/dsoprea/go-exif/v2 v2.0.0-20200604193436-ca8584a0e1c4/go.mod h1:9EXlPeHfblFFnwu5UOqmP2eoZfJyAZ2Ri/Vki33ajO0=
30+github.com/dsoprea/go-exif/v2 v2.0.0-20221012082141-d21ac8e2de85 h1:sgMOHQHMiddteUitH9QYgaRTwAcqqr5X9z5j4yNXDuY=
31+github.com/dsoprea/go-exif/v2 v2.0.0-20221012082141-d21ac8e2de85/go.mod h1:oKrjk2kb3rAR5NbtSTLUMvMSbc+k8ZosI3MaVH47noc=
32+github.com/dsoprea/go-exif/v3 v3.0.0-20200717053412-08f1b6708903/go.mod h1:0nsO1ce0mh5czxGeLo4+OCZ/C6Eo6ZlMWsz7rH/Gxv8=
33+github.com/dsoprea/go-exif/v3 v3.0.0-20210512043655-120bcdb2a55e/go.mod h1:cg5SNYKHMmzxsr9X6ZeLh/nfBRHHp5PngtEPcujONtk=
34+github.com/dsoprea/go-iptc v0.0.0-20200609062250-162ae6b44feb/go.mod h1:kYIdx9N9NaOyD7U6D+YtExN7QhRm+5kq7//yOsRXQtM=
35+github.com/dsoprea/go-iptc v0.0.0-20200610044640-bc9ca208b413 h1:YDRiMEm32T60Kpm35YzOK9ZHgjsS1Qrid+XskNcsdp8=
36+github.com/dsoprea/go-iptc v0.0.0-20200610044640-bc9ca208b413/go.mod h1:kYIdx9N9NaOyD7U6D+YtExN7QhRm+5kq7//yOsRXQtM=
37+github.com/dsoprea/go-logging v0.0.0-20190624164917-c4f10aab7696/go.mod h1:Nm/x2ZUNRW6Fe5C3LxdY1PyZY5wmDv/s5dkPJ/VB3iA=
38+github.com/dsoprea/go-logging v0.0.0-20200517223158-a10564966e9d/go.mod h1:7I+3Pe2o/YSU88W0hWlm9S22W7XI1JFNJ86U0zPKMf8=
39+github.com/dsoprea/go-logging v0.0.0-20200710184922-b02d349568dd h1:l+vLbuxptsC6VQyQsfD7NnEC8BZuFpz45PgY+pH8YTg=
40+github.com/dsoprea/go-logging v0.0.0-20200710184922-b02d349568dd/go.mod h1:7I+3Pe2o/YSU88W0hWlm9S22W7XI1JFNJ86U0zPKMf8=
41+github.com/dsoprea/go-photoshop-info-format v0.0.0-20200609050348-3db9b63b202c/go.mod h1:pqKB+ijp27cEcrHxhXVgUUMlSDRuGJJp1E+20Lj5H0E=
42+github.com/dsoprea/go-photoshop-info-format v0.0.0-20200610045659-121dd752914d h1:dg6UMHa50VI01WuPWXPbNJpO8QSyvIF5T5n2IZiqX3A=
43+github.com/dsoprea/go-photoshop-info-format v0.0.0-20200610045659-121dd752914d/go.mod h1:pqKB+ijp27cEcrHxhXVgUUMlSDRuGJJp1E+20Lj5H0E=
44+github.com/dsoprea/go-png-image-structure v0.0.0-20210512210324-29b889a6093d h1:8+qI8ant/vZkNSsbwSjIR6XJfWcDVTg/qx/3pRUUZNA=
45+github.com/dsoprea/go-png-image-structure v0.0.0-20210512210324-29b889a6093d/go.mod h1:yTR3tKgyk20phAFg6IE9ulMA5NjEDD2wyx+okRFLVtw=
46+github.com/dsoprea/go-utility v0.0.0-20200711062821-fab8125e9bdf/go.mod h1:95+K3z2L0mqsVYd6yveIv1lmtT3tcQQ3dVakPySffW8=
47+github.com/dsoprea/go-utility v0.0.0-20221003172846-a3e1774ef349 h1:/py11NlxDaOxkT9OKN+gXgT+QOH5xj1ZRoyusfRIlo4=
48+github.com/dsoprea/go-utility v0.0.0-20221003172846-a3e1774ef349/go.mod h1:KVK+/Hul09ujXAGq+42UBgCTnXkiJZRnLYdURGjQUwo=
49+github.com/dsoprea/go-utility/v2 v2.0.0-20200717064901-2fccff4aa15e/go.mod h1:uAzdkPTub5Y9yQwXe8W4m2XuP0tK4a9Q/dantD0+uaU=
50+github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
51+github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
52 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
53 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
54 github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
55@@ -58,11 +98,25 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7
56 github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
57 github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
58 github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
59+github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
60+github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
61+github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
62+github.com/go-errors/errors v1.0.2/go.mod h1:psDX2osz5VnTOnFWbDeWwS7yejl+uV3FEWEp4lssFEs=
63+github.com/go-errors/errors v1.1.1/go.mod h1:psDX2osz5VnTOnFWbDeWwS7yejl+uV3FEWEp4lssFEs=
64+github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
65+github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
66 github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
67 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
68 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
69+github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
70+github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U=
71+github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM=
72 github.com/gogs/git-module v1.6.0 h1:71GdRM9/pFxGgSUz8t2DKmm3RYuHUnTjsOuFInJXnkM=
73 github.com/gogs/git-module v1.6.0/go.mod h1:8jFYhDxLUwEOhM2709l2CJXmoIIslobU1xszpT0NcAI=
74+github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI=
75+github.com/golang/geo v0.0.0-20200319012246-673a6f80352d/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI=
76+github.com/golang/geo v0.0.0-20210211234256-740aa86cb551 h1:gtexQ/VGyN+VVFRXSFiguSNcXmS6rkKT+X7FdIrTtfo=
77+github.com/golang/geo v0.0.0-20210211234256-740aa86cb551/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI=
78 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
79 github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
80 github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
81@@ -100,6 +154,7 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
82 github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
83 github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
84 github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
85+github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
86 github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
87 github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
88 github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
89@@ -115,41 +170,90 @@ github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLe
90 github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
91 github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
92 github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
93+github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
94+github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
95 github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
96 github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
97 github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
98+github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
99+github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
100+github.com/gorilla/feeds v1.1.1 h1:HwKXxqzcRNg9to+BbvJog4+f3s/xzvtZXICcQGutYfY=
101+github.com/gorilla/feeds v1.1.1/go.mod h1:Nk0jZrvPFZX1OBe5NPiddPw7CfwF6Q9eqzaBbaightA=
102 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
103 github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
104 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
105 github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
106 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
107 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
108+github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
109+github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
110+github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
111 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
112 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
113 github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
114+github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0=
115+github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
116+github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
117+github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
118+github.com/klauspost/cpuid/v2 v2.2.2 h1:xPMwiykqNK9VK0NYC3+jTMYv9I6Vl3YdjZgPZKG3zO0=
119+github.com/klauspost/cpuid/v2 v2.2.2/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
120+github.com/kolesa-team/go-webp v1.0.2 h1:XCrWqxI7tNOI3dr0YufD9TUb+54vBDogg9KsHH7q5Lc=
121+github.com/kolesa-team/go-webp v1.0.2/go.mod h1:oMvdivD6K+Q5qIIkVC2w4k2ZUnI1H+MyP7inwgWq9aA=
122 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
123 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
124 github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
125 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
126 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
127 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
128+github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
129+github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
130 github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
131 github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
132+github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE=
133+github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
134 github.com/mcuadros/go-version v0.0.0-20190308113854-92cdf37c5b75 h1:Pijfgr7ZuvX7QIQiEwLdRVr3RoMG+i0SbBO1Qu+7yVk=
135 github.com/mcuadros/go-version v0.0.0-20190308113854-92cdf37c5b75/go.mod h1:76rfSfYPWj01Z85hUf/ituArm797mNKcvINh1OlsZKo=
136+github.com/microcosm-cc/bluemonday v1.0.21 h1:dNH3e4PSyE4vNX+KlRGHT5KrSvjeUkoNPwEORjffHJg=
137+github.com/microcosm-cc/bluemonday v1.0.21/go.mod h1:ytNkv4RrDrLJ2pqlsSI46O6IVXmZOBBD4SaJyDwwTkM=
138+github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
139+github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
140+github.com/minio/minio-go/v7 v7.0.45 h1:g4IeM9M9pW/Lo8AGGNOjBZYlvmtlE1N5TQEYWXRWzIs=
141+github.com/minio/minio-go/v7 v7.0.45/go.mod h1:nCrRzjoSUQh8hgKKtu3Y708OLvRLtuASMg2/nvmbarw=
142+github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g=
143+github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
144 github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
145 github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
146+github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
147+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
148+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
149+github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
150+github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
151+github.com/neurosnap/go-exif-remove v0.0.0-20221010134343-50d1e3c35577 h1:hVmVNttSLNloGsbFKVXAUHonXTd8KKrv30U/8UkloKI=
152+github.com/neurosnap/go-exif-remove v0.0.0-20221010134343-50d1e3c35577/go.mod h1:G3Cu1AW+dmRLDFpOi8eUAfc3cGoRHUjTkGjeRcndgl4=
153+github.com/neurosnap/go-jpeg-image-structure v0.0.0-20221010133817-70b1c1ff679e h1:76Dng5ms0fR+26doKZAvNqhi2UPfnLxGfPIDEr+BBlM=
154+github.com/neurosnap/go-jpeg-image-structure v0.0.0-20221010133817-70b1c1ff679e/go.mod h1:nZBDA7+RD63GDJwjZmxhxac65MJqiCIHUUUvdYOsFkk=
155+github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
156+github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
157 github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
158 github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
159 github.com/pelletier/go-toml/v2 v2.0.1 h1:8e3L2cCQzLFi2CR4g7vGFuFxX7Jl1kKX8gW+iV0GUKU=
160 github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo=
161+github.com/picosh/pico v1.1.6 h1:Kw0gP/WVOwD9DkvEfTFt84pXJSv4yKI4n9ncIJHpOnQ=
162+github.com/picosh/pico v1.1.6/go.mod h1:dbiKZsgsm/4KWzN6g4hCkqPj4itd9KzplPYZqs1JWLg=
163+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
164 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
165 github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
166 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
167 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
168 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
169+github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
170 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
171 github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
172+github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY=
173+github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
174+github.com/scylladb/termtables v0.0.0-20191203121021-c4c0b6d42ff4/go.mod h1:C1a7PQSMz9NShzorzCiG2fk9+xuCgLkPeCvMHYR2OWg=
175+github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
176+github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
177 github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo=
178 github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo=
179 github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=
180@@ -162,30 +266,51 @@ github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ=
181 github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI=
182 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
183 github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
184+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
185 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
186 github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
187 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
188-github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
189 github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
190+github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
191 github.com/subosito/gotenv v1.3.0 h1:mjC+YW8QpAdXibNi+vNWgzmgBH4+5l5dCXv8cNysBLI=
192 github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs=
193 github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
194 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
195 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
196 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
197+github.com/yuin/goldmark v1.4.5/go.mod h1:rmuwmfZ0+bvzB24eSC//bk1R1Zp3hM0OXYv/G2LIilg=
198+github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
199+github.com/yuin/goldmark v1.5.3 h1:3HUJmBFbQW9fhQOzMgseU134xfi6hU+mjWywx5Ty+/M=
200+github.com/yuin/goldmark v1.5.3/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
201+github.com/yuin/goldmark-highlighting v0.0.0-20220208100518-594be1970594 h1:yHfZyN55+5dp1wG7wDKv8HQ044moxkyGq12KFFMFDxg=
202+github.com/yuin/goldmark-highlighting v0.0.0-20220208100518-594be1970594/go.mod h1:U9ihbh+1ZN7fR5Se3daSPoz1CGF9IYtSvWwVQtnzGHU=
203+github.com/yuin/goldmark-meta v1.1.0 h1:pWw+JLHGZe8Rk0EGsMVssiNb/AaPMHfSRszZeUeiOUc=
204+github.com/yuin/goldmark-meta v1.1.0/go.mod h1:U4spWENafuA7Zyg+Lj5RqK/MF+ovMYtBvXi1lBb2VP0=
205 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
206 go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
207 go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
208 go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
209 go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
210 go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
211+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
212+go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
213+go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
214+go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
215+go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8=
216+go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak=
217+go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
218+go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
219 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
220 golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
221 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
222 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
223 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
224 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
225+golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
226 golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
227+golang.org/x/crypto v0.0.0-20220826181053-bd7e27e6170d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
228+golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8=
229+golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80=
230 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
231 golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
232 golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
233@@ -196,8 +321,14 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
234 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
235 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
236 golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
237+golang.org/x/exp v0.0.0-20221211140036-ad323defaf05 h1:T8EldfGCcveFMewH5xAYxxoX3PSQMrsechlUGVFlQBU=
238+golang.org/x/exp v0.0.0-20221211140036-ad323defaf05/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
239 golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
240 golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
241+golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
242+golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
243+golang.org/x/image v0.2.0 h1:/DcQ0w3VHKCC5p0/P2B0JpAZ9Z++V2KOo2fyU89CXBQ=
244+golang.org/x/image v0.2.0/go.mod h1:la7oBXb9w3YFjBqaAwtynVioc1ZvOnNteUNrifGNmAI=
245 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
246 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
247 golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
248@@ -219,6 +350,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
249 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
250 golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
251 golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
252+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
253 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
254 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
255 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
256@@ -237,6 +369,7 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLL
257 golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
258 golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
259 golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
260+golang.org/x/net v0.0.0-20200320220750-118fecf932d8/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
261 golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
262 golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
263 golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
264@@ -250,6 +383,11 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY
265 golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
266 golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
267 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
268+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
269+golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
270+golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
271+golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU=
272+golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
273 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
274 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
275 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
276@@ -268,8 +406,9 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ
277 golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
278 golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
279 golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
280-golang.org/x/sync v0.0.0-20201207232520-09787c993a3a h1:DcqTD9SDLc+1P/r1EmRBwnVsrOwW+kk2vWf9n+1sGhs=
281 golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
282+golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=
283+golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
284 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
285 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
286 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
287@@ -302,20 +441,32 @@ golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7w
288 golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
289 golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
290 golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
291+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
292 golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
293 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
294 golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
295-golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
296 golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
297+golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
298+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
299+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
300+golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
301+golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
302+golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
303+golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
304 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
305+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
306+golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
307+golang.org/x/term v0.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI=
308 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
309 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
310 golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
311 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
312 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
313 golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
314-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
315+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
316 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
317+golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM=
318+golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
319 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
320 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
321 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
322@@ -366,6 +517,7 @@ golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4f
323 golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
324 golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
325 golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
326+golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
327 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
328 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
329 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
330@@ -459,17 +611,20 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
331 google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
332 google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
333 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
334-gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
335 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
336+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
337 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
338-gopkg.in/ini.v1 v1.66.4 h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=
339-gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
340+gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
341+gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
342 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
343+gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
344+gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
345 gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
346 gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
347 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
348-gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA=
349-gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
350+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
351+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
352+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
353 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
354 honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
355 honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+1,
-0
1@@ -11,6 +11,7 @@
2 <meta name="keywords" content="git code forge repo repository" />
3
4 <link rel="stylesheet" href="/main.css" />
5+ <link rel="stylesheet" href="/syntax.css" />
6 </head>
7 <body>
8 {{template "content" .}}
+25,
-24
1@@ -9,7 +9,7 @@
2 <dd><a href="{{.Data.CommitURL}}">{{.Data.Commit.ID}}</a></dd>
3
4 <dt>parent</dt>
5- <dd><a href="{{.Data.ParentURL}}">parent {{.Data.Parent}}</a></dd>
6+ <dd><a href="{{.Data.ParentURL}}">{{.Data.Parent}}</a></dd>
7
8 <dt>author</dt>
9 <dd>{{.Data.Commit.Author.Name}}</dd>
10@@ -18,33 +18,34 @@
11 <dd>{{.Data.Commit.Author.When}}</dd>
12 </dl>
13
14- <p>
15- {{.Data.Commit.Message}}
16- </p>
17+ <pre>{{.Data.Commit.Message}}</pre>
18
19- <p>
20- <strong>{{.Data.Diff.NumFiles}}</strong> files changed,
21+ <div class="box mono">
22+ <div>
23+ <strong>{{.Data.Diff.NumFiles}}</strong> files changed,&nbps;
24 <span class="color-green">+{{.Data.Diff.TotalAdditions}}</span>,
25 <span class="color-red">-{{.Data.Diff.TotalDeletions}}</span>
26- </p>
27-
28- {{range .Data.Diff.Files}}
29-
30- <p>
31- {{.OldMode}} {{.OldName}} => {{.Mode}} {{.Name}}
32- </p>
33-
34- <div>
35- <span class="color-green">+{{.NumAdditions}}</span>,
36- <span class="color-red">-{{.NumDeletions}}</span>
37+ </div>
38+
39+ <div>
40+ {{range .Data.Diff.Files}}
41+ <div>
42+ <span>{{.FileType}}</span>
43+ <span>{{.Name}}</span>
44+ </div>
45+ {{end}}
46+ </div>
47 </div>
48
49- <pre>
50- {{range .Sections}}
51- {{range .Lines}}
52- {{.Content}}
53- {{end}}
54- {{end}}
55- </pre>
56+ {{range .Data.Diff.Files}}
57+ <div class="flex justify-between mono">
58+ <span>{{.FileType}} {{.OldName}} => {{.Name}}</span>
59+ <div>
60+ <span class="color-green">+{{.NumAdditions}}</span>,
61+ <span class="color-red">-{{.NumDeletions}}</span>
62+ </div>
63+ </div>
64+
65+ {{.Content}}
66 {{end}}
67 {{end}}
+1,
-1
1@@ -6,5 +6,5 @@
2
3 <h1>{{.Name}}</h1>
4
5- <pre>{{.Data.Contents}}</pre>
6+ {{.Data.Contents}}
7 {{end }}
M
main.go
+74,
-4
1@@ -2,12 +2,14 @@ package main
2
3 import (
4 "fmt"
5+ "html/template"
6 html "html/template"
7 "os"
8 "path/filepath"
9 "strings"
10
11 git "github.com/gogs/git-module"
12+ "github.com/picosh/pico/pastes"
13 "github.com/spf13/viper"
14 )
15
16@@ -55,8 +57,9 @@ type PageData struct {
17 }
18
19 type CommitPageData struct {
20+ CommitMsg template.HTML
21 Commit *CommitData
22- Diff *git.Diff
23+ Diff *DiffRender
24 Repo *RepoData
25 Parent string
26 ParentURL string
27@@ -72,6 +75,38 @@ type WriteData struct {
28 Repo *RepoData
29 }
30
31+type DiffRender struct {
32+ NumFiles int
33+ TotalAdditions int
34+ TotalDeletions int
35+ Files []*DiffRenderFile
36+}
37+
38+type DiffRenderFile struct {
39+ FileType string
40+ OldMode git.EntryMode
41+ OldName string
42+ Mode git.EntryMode
43+ Name string
44+ Content template.HTML
45+ NumAdditions int
46+ NumDeletions int
47+}
48+
49+func diffFileType(_type git.DiffFileType) string {
50+ if _type == git.DiffFileAdd {
51+ return "A"
52+ } else if _type == git.DiffFileChange {
53+ return "M"
54+ } else if _type == git.DiffFileDelete {
55+ return "D"
56+ } else if _type == git.DiffFileRename {
57+ return "R"
58+ }
59+
60+ return ""
61+}
62+
63 func bail(err error) {
64 if err != nil {
65 panic(err)
66@@ -225,7 +260,7 @@ func writeRefs(data *PageData) {
67 }
68
69 type FileData struct {
70- Contents string
71+ Contents template.HTML
72 }
73
74 func writeHTMLTreeFiles(data *PageData) {
75@@ -235,10 +270,14 @@ func writeHTMLTreeFiles(data *PageData) {
76 file.NumLines = len(strings.Split(string(b), "\n"))
77
78 d := filepath.Dir(file.Path)
79+ contents, err := pastes.ParseText(file.Entry.Name(), string(b))
80+ if err != nil {
81+ panic(err)
82+ }
83 writeHtml(&WriteData{
84 Name: fmt.Sprintf("%s.html", file.Entry.Name()),
85 Template: "./html/file.page.tmpl",
86- Data: &FileData{Contents: string(b)},
87+ Data: &FileData{Contents: template.HTML(contents)},
88 RepoName: data.Repo.Name,
89 Subdir: filepath.Join("tree", data.RevName, "item", d),
90 Repo: data.Repo,
91@@ -278,9 +317,40 @@ func writeLogDiffs(project string, repo *git.Repository, data *PageData, cache m
92 git.DiffOptions{Base: commitID},
93 )
94
95+ rnd := &DiffRender{
96+ NumFiles: diff.NumFiles(),
97+ TotalAdditions: diff.TotalAdditions(),
98+ TotalDeletions: diff.TotalDeletions(),
99+ }
100+ fls := []*DiffRenderFile{}
101+ for _, file := range diff.Files {
102+ fl := &DiffRenderFile{
103+ FileType: diffFileType(file.Type),
104+ OldMode: file.OldMode(),
105+ OldName: file.OldName(),
106+ Mode: file.Mode(),
107+ Name: file.Name,
108+ NumAdditions: file.NumAdditions(),
109+ NumDeletions: file.NumDeletions(),
110+ }
111+ content := ""
112+ for _, section := range file.Sections {
113+ for _, line := range section.Lines {
114+ content += fmt.Sprintf("%s\n", line.Content)
115+ }
116+ }
117+ finContent, err := pastes.ParseText("commit.diff", content)
118+ if err != nil {
119+ panic(err)
120+ }
121+ fl.Content = template.HTML(finContent)
122+ fls = append(fls, fl)
123+ }
124+ rnd.Files = fls
125+
126 commitData := &CommitPageData{
127 Commit: commit,
128- Diff: diff,
129+ Diff: rnd,
130 Repo: data.Repo,
131 Parent: parentID,
132 CommitURL: CommitURL(project, commitID),
+402,
-0
1@@ -0,0 +1,402 @@
2+*,
3+::before,
4+::after {
5+ box-sizing: border-box;
6+}
7+
8+::-moz-focus-inner {
9+ border-style: none;
10+ padding: 0;
11+}
12+:-moz-focusring {
13+ outline: 1px dotted ButtonText;
14+}
15+:-moz-ui-invalid {
16+ box-shadow: none;
17+}
18+
19+@media (prefers-color-scheme: light) {
20+ :root {
21+ --white: #6a737d;
22+ --code: #fff8d3;
23+ --code-border: #f0d547;
24+ --pre: #f6f8fa;
25+ --bg-color: #fff;
26+ --text-color: #24292f;
27+ --link-color: #005cc5;
28+ --visited: #6f42c1;
29+ --blockquote: #005cc5;
30+ --blockquote-bg: #fff;
31+ --hover: #d73a49;
32+ --grey: #ccc;
33+ --success: #50fa7b;
34+ --error: #ff5555;
35+ }
36+}
37+
38+@media (prefers-color-scheme: dark) {
39+ :root {
40+ --white: #f2f2f2;
41+ --code: #414558;
42+ --code-border: #252525;
43+ --pre: #252525;
44+ --bg-color: #282a36;
45+ --text-color: #f2f2f2;
46+ --link-color: #8be9fd;
47+ --visited: #bd93f9;
48+ --blockquote: #bd93f9;
49+ --blockquote-bg: #414558;
50+ --hover: #ff80bf;
51+ --grey: #414558;
52+ --success: #50fa7b;
53+ --error: #ff5555;
54+ }
55+}
56+
57+html {
58+ background-color: var(--bg-color);
59+ color: var(--text-color);
60+ line-height: 1.5;
61+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
62+ Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial,
63+ sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
64+ -webkit-text-size-adjust: 100%;
65+ -moz-tab-size: 4;
66+ tab-size: 4;
67+}
68+
69+body {
70+ margin: 0 auto;
71+ max-width: 720px;
72+}
73+
74+img {
75+ max-width: 100%;
76+ height: auto;
77+}
78+
79+b,
80+strong {
81+ font-weight: bold;
82+}
83+
84+code,
85+kbd,
86+samp,
87+pre {
88+ font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo,
89+ monospace;
90+ font-size: 0.8rem;
91+}
92+
93+code,
94+kbd,
95+samp {
96+ background-color: var(--code);
97+ border: 1px solid var(--code-border);
98+}
99+
100+pre > code {
101+ background-color: inherit;
102+ padding: 0;
103+ border: none;
104+}
105+
106+code {
107+ border-radius: 0.3rem;
108+ padding: 0.15rem 0.2rem 0.05rem;
109+}
110+
111+pre {
112+ border-radius: 5px;
113+ padding: 1rem;
114+ margin: 1rem 0;
115+ overflow-x: auto;
116+ background-color: var(--pre) !important;
117+}
118+
119+.mono {
120+ font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo,
121+ monospace;
122+}
123+
124+.box {
125+ font-size: 0.8rem;
126+ border-radius: 5px;
127+ padding: 1rem;
128+ margin: 1rem 0;
129+ overflow-x: auto;
130+ background-color: var(--pre) !important;
131+}
132+
133+small {
134+ font-size: 0.8rem;
135+}
136+
137+summary {
138+ display: list-item;
139+}
140+
141+h1,
142+h2,
143+h3 {
144+ margin: 0;
145+ padding: 0.6rem 0 0 0;
146+ border: 0;
147+ font-style: normal;
148+ font-weight: inherit;
149+ font-size: inherit;
150+}
151+
152+hr {
153+ color: inherit;
154+ border: 0;
155+ margin: 0;
156+ height: 1px;
157+ background: var(--grey);
158+ margin: 2rem auto;
159+ text-align: center;
160+}
161+
162+a {
163+ text-decoration: underline;
164+ color: var(--link-color);
165+}
166+
167+a:hover,
168+a:visited:hover {
169+ color: var(--hover);
170+}
171+
172+a:visited {
173+ color: var(--visited);
174+}
175+
176+a.link-grey {
177+ text-decoration: underline;
178+ color: var(--white);
179+}
180+
181+a.link-grey:visited {
182+ color: var(--white);
183+}
184+
185+section {
186+ margin-bottom: 1.4rem;
187+}
188+
189+section:last-child {
190+ margin-bottom: 0;
191+}
192+
193+header {
194+ margin: 1rem auto;
195+}
196+
197+p {
198+ margin: 0.8rem 0;
199+}
200+
201+article {
202+ overflow-wrap: break-word;
203+}
204+
205+blockquote {
206+ border-left: 5px solid var(--blockquote);
207+ background-color: var(--blockquote-bg);
208+ padding: 0.8rem;
209+ margin: 1rem 0;
210+}
211+
212+blockquote > p {
213+ margin: 0;
214+}
215+
216+ul,
217+ol {
218+ padding: 0 0 0 2rem;
219+ list-style-position: outside;
220+}
221+
222+ul[style*="list-style-type: none;"] {
223+ padding: 0;
224+}
225+
226+li {
227+ margin: 0.5rem 0;
228+}
229+
230+li > pre {
231+ padding: 0;
232+}
233+
234+footer {
235+ text-align: center;
236+ margin-bottom: 4rem;
237+}
238+
239+dt {
240+ font-weight: bold;
241+}
242+
243+dd {
244+ margin-left: 0;
245+}
246+
247+dd:not(:last-child) {
248+ margin-bottom: 0.5rem;
249+}
250+
251+figure {
252+ margin: 0;
253+}
254+
255+.color-green {
256+ color: var(--success);
257+}
258+
259+.color-red {
260+ color: var(--error);
261+}
262+
263+.post-date {
264+ width: 130px;
265+}
266+
267+.text-grey {
268+ color: var(--grey);
269+}
270+
271+.text-2xl {
272+ font-size: 1.85rem;
273+ line-height: 1.15;
274+}
275+
276+.text-xl {
277+ font-size: 1.55rem;
278+ line-height: 1.15;
279+}
280+
281+.text-lg {
282+ font-size: 1.35rem;
283+ line-height: 1.15;
284+}
285+
286+.text-md {
287+ font-size: 1.15rem;
288+ line-height: 1.15;
289+}
290+
291+.text-sm {
292+ font-size: 0.875rem;
293+}
294+
295+.text-center {
296+ text-align: center;
297+}
298+
299+.font-bold {
300+ font-weight: bold;
301+}
302+
303+.font-italic {
304+ font-style: italic;
305+}
306+
307+.inline {
308+ display: inline;
309+}
310+
311+.flex {
312+ display: flex;
313+}
314+
315+.items-center {
316+ align-items: center;
317+}
318+
319+.m-0 {
320+ margin: 0;
321+}
322+
323+.mt {
324+ margin-top: 0.5rem;
325+}
326+
327+.mb {
328+ margin-bottom: 0.5rem;
329+}
330+
331+.mr {
332+ margin-right: 0.5rem;
333+}
334+
335+.ml {
336+ margin-left: 0.5rem;
337+}
338+
339+.my {
340+ margin-top: 0.5rem;
341+ margin-bottom: 0.5rem;
342+}
343+
344+.my-2 {
345+ margin-top: 1rem;
346+ margin-bottom: 1rem;
347+}
348+
349+.mx {
350+ margin-left: 0.5rem;
351+ margin-right: 0.5rem;
352+}
353+
354+.mx-2 {
355+ margin-left: 1rem;
356+ margin-right: 1rem;
357+}
358+
359+.justify-between {
360+ justify-content: space-between;
361+}
362+
363+.flex-1 {
364+ flex: 1;
365+}
366+
367+.layout-aside {
368+ max-width: 50rem;
369+}
370+
371+.layout-aside aside {
372+ width: 200px;
373+}
374+
375+.layout-aside img {
376+ border-radius: 5px;
377+}
378+
379+#readme {
380+ display: none;
381+}
382+
383+@media only screen and (max-width: 600px) {
384+ body {
385+ padding: 1rem;
386+ }
387+
388+ header {
389+ margin: 0;
390+ }
391+
392+ .layout-aside main {
393+ flex-direction: column;
394+ }
395+
396+ aside {
397+ display: none;
398+ }
399+
400+ #readme {
401+ display: block;
402+ }
403+}
+700,
-0
1@@ -0,0 +1,700 @@
2+@media (prefers-color-scheme: light) {
3+ /* Background */
4+ .bg {
5+ background-color: #ffffff;
6+ }
7+ /* PreWrapper */
8+ .chroma {
9+ background-color: #ffffff;
10+ }
11+ /* Other */
12+ .chroma .x {
13+ }
14+ /* Error */
15+ .chroma .err {
16+ background-color: #a848a8;
17+ }
18+ /* CodeLine */
19+ .chroma .cl {
20+ }
21+ /* LineTableTD */
22+ .chroma .lntd {
23+ vertical-align: top;
24+ padding: 0;
25+ margin: 0;
26+ border: 0;
27+ }
28+ /* LineTable */
29+ .chroma .lntable {
30+ border-spacing: 0;
31+ padding: 0;
32+ margin: 0;
33+ border: 0;
34+ }
35+ /* LineHighlight */
36+ .chroma .hl {
37+ background-color: #ffffcc;
38+ }
39+ /* LineNumbersTable */
40+ .chroma .lnt {
41+ white-space: pre;
42+ user-select: none;
43+ margin-right: 0.4em;
44+ padding: 0 0.4em 0 0.4em;
45+ color: #7f7f7f;
46+ }
47+ /* LineNumbers */
48+ .chroma .ln {
49+ white-space: pre;
50+ user-select: none;
51+ margin-right: 0.4em;
52+ padding: 0 0.4em 0 0.4em;
53+ color: #7f7f7f;
54+ }
55+ /* Line */
56+ .chroma .line {
57+ display: flex;
58+ }
59+ /* Keyword */
60+ .chroma .k {
61+ color: #2838b0;
62+ }
63+ /* KeywordConstant */
64+ .chroma .kc {
65+ color: #444444;
66+ font-style: italic;
67+ }
68+ /* KeywordDeclaration */
69+ .chroma .kd {
70+ color: #2838b0;
71+ font-style: italic;
72+ }
73+ /* KeywordNamespace */
74+ .chroma .kn {
75+ color: #2838b0;
76+ }
77+ /* KeywordPseudo */
78+ .chroma .kp {
79+ color: #2838b0;
80+ }
81+ /* KeywordReserved */
82+ .chroma .kr {
83+ color: #2838b0;
84+ }
85+ /* KeywordType */
86+ .chroma .kt {
87+ color: #2838b0;
88+ font-style: italic;
89+ }
90+ /* Name */
91+ .chroma .n {
92+ }
93+ /* NameAttribute */
94+ .chroma .na {
95+ color: #388038;
96+ }
97+ /* NameBuiltin */
98+ .chroma .nb {
99+ color: #388038;
100+ }
101+ /* NameBuiltinPseudo */
102+ .chroma .bp {
103+ font-style: italic;
104+ }
105+ /* NameClass */
106+ .chroma .nc {
107+ color: #287088;
108+ }
109+ /* NameConstant */
110+ .chroma .no {
111+ color: #b85820;
112+ }
113+ /* NameDecorator */
114+ .chroma .nd {
115+ color: #287088;
116+ }
117+ /* NameEntity */
118+ .chroma .ni {
119+ color: #709030;
120+ }
121+ /* NameException */
122+ .chroma .ne {
123+ color: #908828;
124+ }
125+ /* NameFunction */
126+ .chroma .nf {
127+ color: #785840;
128+ }
129+ /* NameFunctionMagic */
130+ .chroma .fm {
131+ color: #b85820;
132+ }
133+ /* NameLabel */
134+ .chroma .nl {
135+ color: #289870;
136+ }
137+ /* NameNamespace */
138+ .chroma .nn {
139+ color: #289870;
140+ }
141+ /* NameOther */
142+ .chroma .nx {
143+ }
144+ /* NameProperty */
145+ .chroma .py {
146+ }
147+ /* NameTag */
148+ .chroma .nt {
149+ color: #2838b0;
150+ }
151+ /* NameVariable */
152+ .chroma .nv {
153+ color: #b04040;
154+ }
155+ /* NameVariableClass */
156+ .chroma .vc {
157+ }
158+ /* NameVariableGlobal */
159+ .chroma .vg {
160+ color: #908828;
161+ }
162+ /* NameVariableInstance */
163+ .chroma .vi {
164+ }
165+ /* NameVariableMagic */
166+ .chroma .vm {
167+ color: #b85820;
168+ }
169+ /* Literal */
170+ .chroma .l {
171+ }
172+ /* LiteralDate */
173+ .chroma .ld {
174+ }
175+ /* LiteralString */
176+ .chroma .s {
177+ color: #b83838;
178+ }
179+ /* LiteralStringAffix */
180+ .chroma .sa {
181+ color: #444444;
182+ }
183+ /* LiteralStringBacktick */
184+ .chroma .sb {
185+ color: #b83838;
186+ }
187+ /* LiteralStringChar */
188+ .chroma .sc {
189+ color: #a848a8;
190+ }
191+ /* LiteralStringDelimiter */
192+ .chroma .dl {
193+ color: #b85820;
194+ }
195+ /* LiteralStringDoc */
196+ .chroma .sd {
197+ color: #b85820;
198+ font-style: italic;
199+ }
200+ /* LiteralStringDouble */
201+ .chroma .s2 {
202+ color: #b83838;
203+ }
204+ /* LiteralStringEscape */
205+ .chroma .se {
206+ color: #709030;
207+ }
208+ /* LiteralStringHeredoc */
209+ .chroma .sh {
210+ color: #b83838;
211+ }
212+ /* LiteralStringInterpol */
213+ .chroma .si {
214+ color: #b83838;
215+ text-decoration: underline;
216+ }
217+ /* LiteralStringOther */
218+ .chroma .sx {
219+ color: #a848a8;
220+ }
221+ /* LiteralStringRegex */
222+ .chroma .sr {
223+ color: #a848a8;
224+ }
225+ /* LiteralStringSingle */
226+ .chroma .s1 {
227+ color: #b83838;
228+ }
229+ /* LiteralStringSymbol */
230+ .chroma .ss {
231+ color: #b83838;
232+ }
233+ /* LiteralNumber */
234+ .chroma .m {
235+ color: #444444;
236+ }
237+ /* LiteralNumberBin */
238+ .chroma .mb {
239+ color: #444444;
240+ }
241+ /* LiteralNumberFloat */
242+ .chroma .mf {
243+ color: #444444;
244+ }
245+ /* LiteralNumberHex */
246+ .chroma .mh {
247+ color: #444444;
248+ }
249+ /* LiteralNumberInteger */
250+ .chroma .mi {
251+ color: #444444;
252+ }
253+ /* LiteralNumberIntegerLong */
254+ .chroma .il {
255+ color: #444444;
256+ }
257+ /* LiteralNumberOct */
258+ .chroma .mo {
259+ color: #444444;
260+ }
261+ /* Operator */
262+ .chroma .o {
263+ color: #666666;
264+ }
265+ /* OperatorWord */
266+ .chroma .ow {
267+ color: #a848a8;
268+ }
269+ /* Punctuation */
270+ .chroma .p {
271+ color: #888888;
272+ }
273+ /* Comment */
274+ .chroma .c {
275+ color: #888888;
276+ font-style: italic;
277+ }
278+ /* CommentHashbang */
279+ .chroma .ch {
280+ color: #287088;
281+ font-style: italic;
282+ }
283+ /* CommentMultiline */
284+ .chroma .cm {
285+ color: #888888;
286+ font-style: italic;
287+ }
288+ /* CommentSingle */
289+ .chroma .c1 {
290+ color: #888888;
291+ font-style: italic;
292+ }
293+ /* CommentSpecial */
294+ .chroma .cs {
295+ color: #888888;
296+ font-style: italic;
297+ }
298+ /* CommentPreproc */
299+ .chroma .cp {
300+ color: #289870;
301+ }
302+ /* CommentPreprocFile */
303+ .chroma .cpf {
304+ color: #289870;
305+ }
306+ /* Generic */
307+ .chroma .g {
308+ }
309+ /* GenericDeleted */
310+ .chroma .gd {
311+ color: #c02828;
312+ }
313+ /* GenericEmph */
314+ .chroma .ge {
315+ font-style: italic;
316+ }
317+ /* GenericError */
318+ .chroma .gr {
319+ color: #c02828;
320+ }
321+ /* GenericHeading */
322+ .chroma .gh {
323+ color: #666666;
324+ }
325+ /* GenericInserted */
326+ .chroma .gi {
327+ color: #388038;
328+ }
329+ /* GenericOutput */
330+ .chroma .go {
331+ color: #666666;
332+ }
333+ /* GenericPrompt */
334+ .chroma .gp {
335+ color: #444444;
336+ }
337+ /* GenericStrong */
338+ .chroma .gs {
339+ font-weight: bold;
340+ }
341+ /* GenericSubheading */
342+ .chroma .gu {
343+ color: #444444;
344+ }
345+ /* GenericTraceback */
346+ .chroma .gt {
347+ color: #2838b0;
348+ }
349+ /* GenericUnderline */
350+ .chroma .gl {
351+ text-decoration: underline;
352+ }
353+ /* TextWhitespace */
354+ .chroma .w {
355+ color: #a89028;
356+ }
357+}
358+
359+@media (prefers-color-scheme: dark) {
360+ /* Background */
361+ .bg {
362+ color: #f8f8f2;
363+ background-color: #282a36;
364+ }
365+ /* PreWrapper */
366+ .chroma {
367+ color: #f8f8f2;
368+ background-color: #282a36;
369+ }
370+ /* Other */
371+ .chroma .x {
372+ }
373+ /* Error */
374+ .chroma .err {
375+ }
376+ /* CodeLine */
377+ .chroma .cl {
378+ }
379+ /* LineTableTD */
380+ .chroma .lntd {
381+ vertical-align: top;
382+ padding: 0;
383+ margin: 0;
384+ border: 0;
385+ }
386+ /* LineTable */
387+ .chroma .lntable {
388+ border-spacing: 0;
389+ padding: 0;
390+ margin: 0;
391+ border: 0;
392+ }
393+ /* LineHighlight */
394+ .chroma .hl {
395+ background-color: #ffffcc;
396+ }
397+ /* LineNumbersTable */
398+ .chroma .lnt {
399+ white-space: pre;
400+ user-select: none;
401+ margin-right: 0.4em;
402+ padding: 0 0.4em 0 0.4em;
403+ color: #7f7f7f;
404+ }
405+ /* LineNumbers */
406+ .chroma .ln {
407+ white-space: pre;
408+ user-select: none;
409+ margin-right: 0.4em;
410+ padding: 0 0.4em 0 0.4em;
411+ color: #7f7f7f;
412+ }
413+ /* Line */
414+ .chroma .line {
415+ display: flex;
416+ }
417+ /* Keyword */
418+ .chroma .k {
419+ color: #ff79c6;
420+ }
421+ /* KeywordConstant */
422+ .chroma .kc {
423+ color: #ff79c6;
424+ }
425+ /* KeywordDeclaration */
426+ .chroma .kd {
427+ color: #8be9fd;
428+ font-style: italic;
429+ }
430+ /* KeywordNamespace */
431+ .chroma .kn {
432+ color: #ff79c6;
433+ }
434+ /* KeywordPseudo */
435+ .chroma .kp {
436+ color: #ff79c6;
437+ }
438+ /* KeywordReserved */
439+ .chroma .kr {
440+ color: #ff79c6;
441+ }
442+ /* KeywordType */
443+ .chroma .kt {
444+ color: #8be9fd;
445+ }
446+ /* Name */
447+ .chroma .n {
448+ }
449+ /* NameAttribute */
450+ .chroma .na {
451+ color: #50fa7b;
452+ }
453+ /* NameBuiltin */
454+ .chroma .nb {
455+ color: #8be9fd;
456+ font-style: italic;
457+ }
458+ /* NameBuiltinPseudo */
459+ .chroma .bp {
460+ }
461+ /* NameClass */
462+ .chroma .nc {
463+ color: #50fa7b;
464+ }
465+ /* NameConstant */
466+ .chroma .no {
467+ }
468+ /* NameDecorator */
469+ .chroma .nd {
470+ }
471+ /* NameEntity */
472+ .chroma .ni {
473+ }
474+ /* NameException */
475+ .chroma .ne {
476+ }
477+ /* NameFunction */
478+ .chroma .nf {
479+ color: #50fa7b;
480+ }
481+ /* NameFunctionMagic */
482+ .chroma .fm {
483+ }
484+ /* NameLabel */
485+ .chroma .nl {
486+ color: #8be9fd;
487+ font-style: italic;
488+ }
489+ /* NameNamespace */
490+ .chroma .nn {
491+ }
492+ /* NameOther */
493+ .chroma .nx {
494+ }
495+ /* NameProperty */
496+ .chroma .py {
497+ }
498+ /* NameTag */
499+ .chroma .nt {
500+ color: #ff79c6;
501+ }
502+ /* NameVariable */
503+ .chroma .nv {
504+ color: #8be9fd;
505+ font-style: italic;
506+ }
507+ /* NameVariableClass */
508+ .chroma .vc {
509+ color: #8be9fd;
510+ font-style: italic;
511+ }
512+ /* NameVariableGlobal */
513+ .chroma .vg {
514+ color: #8be9fd;
515+ font-style: italic;
516+ }
517+ /* NameVariableInstance */
518+ .chroma .vi {
519+ color: #8be9fd;
520+ font-style: italic;
521+ }
522+ /* NameVariableMagic */
523+ .chroma .vm {
524+ }
525+ /* Literal */
526+ .chroma .l {
527+ }
528+ /* LiteralDate */
529+ .chroma .ld {
530+ }
531+ /* LiteralString */
532+ .chroma .s {
533+ color: #f1fa8c;
534+ }
535+ /* LiteralStringAffix */
536+ .chroma .sa {
537+ color: #f1fa8c;
538+ }
539+ /* LiteralStringBacktick */
540+ .chroma .sb {
541+ color: #f1fa8c;
542+ }
543+ /* LiteralStringChar */
544+ .chroma .sc {
545+ color: #f1fa8c;
546+ }
547+ /* LiteralStringDelimiter */
548+ .chroma .dl {
549+ color: #f1fa8c;
550+ }
551+ /* LiteralStringDoc */
552+ .chroma .sd {
553+ color: #f1fa8c;
554+ }
555+ /* LiteralStringDouble */
556+ .chroma .s2 {
557+ color: #f1fa8c;
558+ }
559+ /* LiteralStringEscape */
560+ .chroma .se {
561+ color: #f1fa8c;
562+ }
563+ /* LiteralStringHeredoc */
564+ .chroma .sh {
565+ color: #f1fa8c;
566+ }
567+ /* LiteralStringInterpol */
568+ .chroma .si {
569+ color: #f1fa8c;
570+ }
571+ /* LiteralStringOther */
572+ .chroma .sx {
573+ color: #f1fa8c;
574+ }
575+ /* LiteralStringRegex */
576+ .chroma .sr {
577+ color: #f1fa8c;
578+ }
579+ /* LiteralStringSingle */
580+ .chroma .s1 {
581+ color: #f1fa8c;
582+ }
583+ /* LiteralStringSymbol */
584+ .chroma .ss {
585+ color: #f1fa8c;
586+ }
587+ /* LiteralNumber */
588+ .chroma .m {
589+ color: #bd93f9;
590+ }
591+ /* LiteralNumberBin */
592+ .chroma .mb {
593+ color: #bd93f9;
594+ }
595+ /* LiteralNumberFloat */
596+ .chroma .mf {
597+ color: #bd93f9;
598+ }
599+ /* LiteralNumberHex */
600+ .chroma .mh {
601+ color: #bd93f9;
602+ }
603+ /* LiteralNumberInteger */
604+ .chroma .mi {
605+ color: #bd93f9;
606+ }
607+ /* LiteralNumberIntegerLong */
608+ .chroma .il {
609+ color: #bd93f9;
610+ }
611+ /* LiteralNumberOct */
612+ .chroma .mo {
613+ color: #bd93f9;
614+ }
615+ /* Operator */
616+ .chroma .o {
617+ color: #ff79c6;
618+ }
619+ /* OperatorWord */
620+ .chroma .ow {
621+ color: #ff79c6;
622+ }
623+ /* Punctuation */
624+ .chroma .p {
625+ }
626+ /* Comment */
627+ .chroma .c {
628+ color: #6272a4;
629+ }
630+ /* CommentHashbang */
631+ .chroma .ch {
632+ color: #6272a4;
633+ }
634+ /* CommentMultiline */
635+ .chroma .cm {
636+ color: #6272a4;
637+ }
638+ /* CommentSingle */
639+ .chroma .c1 {
640+ color: #6272a4;
641+ }
642+ /* CommentSpecial */
643+ .chroma .cs {
644+ color: #6272a4;
645+ }
646+ /* CommentPreproc */
647+ .chroma .cp {
648+ color: #ff79c6;
649+ }
650+ /* CommentPreprocFile */
651+ .chroma .cpf {
652+ color: #ff79c6;
653+ }
654+ /* Generic */
655+ .chroma .g {
656+ }
657+ /* GenericDeleted */
658+ .chroma .gd {
659+ color: #ff5555;
660+ }
661+ /* GenericEmph */
662+ .chroma .ge {
663+ text-decoration: underline;
664+ }
665+ /* GenericError */
666+ .chroma .gr {
667+ }
668+ /* GenericHeading */
669+ .chroma .gh {
670+ font-weight: bold;
671+ }
672+ /* GenericInserted */
673+ .chroma .gi {
674+ color: #50fa7b;
675+ font-weight: bold;
676+ }
677+ /* GenericOutput */
678+ .chroma .go {
679+ color: #44475a;
680+ }
681+ /* GenericPrompt */
682+ .chroma .gp {
683+ }
684+ /* GenericStrong */
685+ .chroma .gs {
686+ }
687+ /* GenericSubheading */
688+ .chroma .gu {
689+ font-weight: bold;
690+ }
691+ /* GenericTraceback */
692+ .chroma .gt {
693+ }
694+ /* GenericUnderline */
695+ .chroma .gl {
696+ text-decoration: underline;
697+ }
698+ /* TextWhitespace */
699+ .chroma .w {
700+ }
701+}