From 3fa058ee76af19fdc34aa9f9b863b380d9ac6a5e Mon Sep 17 00:00:00 2001 From: Jake Jarvis Date: Tue, 1 Jun 2021 07:52:49 -0400 Subject: [PATCH] =?UTF-8?q?finally=20remove=20every=20trace=20of=20AMP=20?= =?UTF-8?q?=F0=9F=A5=B3=20(#415)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc.json | 2 +- .github/dependabot.yml | 31 -- .github/workflows/ci.yml | 6 +- .gitignore | 8 +- .lighthouserc.json | 2 + .percy.yml | 5 +- .prettierignore | 3 - config.toml | 10 +- content/_index.md | 1 - layouts/_default/etc.amp.html | 19 -- layouts/_default/single.amp.html | 17 -- layouts/_default/video.amp.html | 28 -- layouts/index.headers | 7 +- layouts/index.redirects | 5 + layouts/partials/amp/foot.html | 14 - layouts/partials/amp/head.html | 287 ------------------ layouts/partials/head/canonical.html | 6 - layouts/robots.txt | 1 - layouts/shortcodes/codepen.amp.html | 8 - layouts/shortcodes/codepen.atom.atom | 2 +- layouts/shortcodes/facebook.amp.html | 6 - layouts/shortcodes/facebook.atom.atom | 5 +- layouts/shortcodes/gh-buttons.amp.html | 3 - layouts/shortcodes/gh-buttons.atom.atom | 2 +- layouts/shortcodes/gist.amp.html | 6 - layouts/shortcodes/gist.atom.atom | 2 +- layouts/shortcodes/iframe.amp.html | 8 - layouts/shortcodes/iframe.atom.atom | 2 +- layouts/shortcodes/image.amp.html | 16 - layouts/shortcodes/image.atom.atom | 11 +- layouts/shortcodes/instagram.amp.html | 7 - layouts/shortcodes/instagram.atom.atom | 2 +- layouts/shortcodes/tweet.amp.html | 9 - layouts/shortcodes/tweet.atom.atom | 5 +- layouts/shortcodes/video.amp.html | 18 -- layouts/shortcodes/video.atom.atom | 2 +- layouts/shortcodes/vimeo.amp.html | 6 - layouts/shortcodes/vimeo.atom.atom | 2 +- layouts/shortcodes/youtube.amp.html | 8 - layouts/shortcodes/youtube.atom.atom | 2 +- netlify.toml | 25 +- package.json | 1 + .../netlify-plugin-amp-optimizer/.gitignore | 3 - plugins/netlify-plugin-amp-optimizer/LICENSE | 21 -- .../netlify-plugin-amp-optimizer/README.md | 3 - plugins/netlify-plugin-amp-optimizer/index.js | 37 --- .../netlify-plugin-amp-optimizer/manifest.yml | 1 - .../netlify-plugin-amp-optimizer/package.json | 30 -- plugins/netlify-plugin-cache/.gitignore | 3 - plugins/netlify-plugin-cache/LICENSE | 21 -- plugins/netlify-plugin-cache/README.md | 48 --- plugins/netlify-plugin-cache/index.js | 37 --- plugins/netlify-plugin-cache/manifest.yml | 5 - plugins/netlify-plugin-cache/package.json | 21 -- requirements.txt | 3 - ...2283_130509_320x320_resize_q90_lanczos.jpg | Bin 25290 -> 0 bytes static/.well-known/amphtml/apikey.pub | 9 - yarn.lock | 33 +- 58 files changed, 54 insertions(+), 831 deletions(-) delete mode 100644 layouts/_default/etc.amp.html delete mode 100644 layouts/_default/single.amp.html delete mode 100644 layouts/_default/video.amp.html delete mode 100644 layouts/partials/amp/foot.html delete mode 100644 layouts/partials/amp/head.html delete mode 100644 layouts/shortcodes/codepen.amp.html mode change 100644 => 120000 layouts/shortcodes/codepen.atom.atom delete mode 100644 layouts/shortcodes/facebook.amp.html mode change 100644 => 120000 layouts/shortcodes/facebook.atom.atom delete mode 100644 layouts/shortcodes/gh-buttons.amp.html mode change 100644 => 120000 layouts/shortcodes/gh-buttons.atom.atom delete mode 100644 layouts/shortcodes/gist.amp.html mode change 100644 => 120000 layouts/shortcodes/gist.atom.atom delete mode 100644 layouts/shortcodes/iframe.amp.html mode change 100644 => 120000 layouts/shortcodes/iframe.atom.atom delete mode 100644 layouts/shortcodes/image.amp.html mode change 100644 => 120000 layouts/shortcodes/image.atom.atom delete mode 100644 layouts/shortcodes/instagram.amp.html mode change 100644 => 120000 layouts/shortcodes/instagram.atom.atom delete mode 100644 layouts/shortcodes/tweet.amp.html mode change 100644 => 120000 layouts/shortcodes/tweet.atom.atom delete mode 100644 layouts/shortcodes/video.amp.html mode change 100644 => 120000 layouts/shortcodes/video.atom.atom delete mode 100644 layouts/shortcodes/vimeo.amp.html mode change 100644 => 120000 layouts/shortcodes/vimeo.atom.atom delete mode 100644 layouts/shortcodes/youtube.amp.html mode change 100644 => 120000 layouts/shortcodes/youtube.atom.atom delete mode 100644 plugins/netlify-plugin-amp-optimizer/.gitignore delete mode 100644 plugins/netlify-plugin-amp-optimizer/LICENSE delete mode 100644 plugins/netlify-plugin-amp-optimizer/README.md delete mode 100644 plugins/netlify-plugin-amp-optimizer/index.js delete mode 100644 plugins/netlify-plugin-amp-optimizer/manifest.yml delete mode 100644 plugins/netlify-plugin-amp-optimizer/package.json delete mode 100644 plugins/netlify-plugin-cache/.gitignore delete mode 100644 plugins/netlify-plugin-cache/LICENSE delete mode 100644 plugins/netlify-plugin-cache/README.md delete mode 100644 plugins/netlify-plugin-cache/index.js delete mode 100644 plugins/netlify-plugin-cache/manifest.yml delete mode 100644 plugins/netlify-plugin-cache/package.json delete mode 100644 requirements.txt delete mode 100644 resources/_gen/images/me_hu1c1a997e30e234e83718deb8b3f52283_130509_320x320_resize_q90_lanczos.jpg delete mode 100644 static/.well-known/amphtml/apikey.pub diff --git a/.eslintrc.json b/.eslintrc.json index fc631120..a0d9228b 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -11,7 +11,7 @@ "es6": true }, "overrides": [{ - "files": ["{functions,plugins}/**/*.js"], + "files": ["functions/**/*.js"], "parserOptions": { "ecmaVersion": 8, "sourceType": "module" diff --git a/.github/dependabot.yml b/.github/dependabot.yml index fbc4f81d..ec713dc7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -14,30 +14,6 @@ updates: - "npm" - "dependencies" -- package-ecosystem: npm - directory: "/plugins/netlify-plugin-amp-optimizer" - schedule: - interval: weekly - versioning-strategy: increase - commit-message: - prefix: "📦 build(amp):" - labels: - - "build plugins" - - "npm" - - "dependencies" - -- package-ecosystem: npm - directory: "/plugins/netlify-plugin-cache" - schedule: - interval: weekly - versioning-strategy: increase - commit-message: - prefix: "📦 build(cache):" - labels: - - "build plugins" - - "npm" - - "dependencies" - - package-ecosystem: docker directory: "/" schedule: @@ -51,10 +27,3 @@ updates: interval: weekly commit-message: prefix: "📦 ci:" - -- package-ecosystem: pip - directory: "/" - schedule: - interval: weekly - commit-message: - prefix: "📦 pip:" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7452dc60..a9e63ba5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,16 +47,14 @@ jobs: run: | lhci autorun \ --collect.url=https://deploy-preview-${{ github.event.number }}--jakejarvis.netlify.app/ \ - --collect.url=https://deploy-preview-${{ github.event.number }}--jakejarvis.netlify.app/notes/netlify-analytics-review/ \ - --collect.url=https://deploy-preview-${{ github.event.number }}--jakejarvis.netlify.app/notes/how-to-pull-request-fork-github/amp.html + --collect.url=https://deploy-preview-${{ github.event.number }}--jakejarvis.netlify.app/notes/how-to-pull-request-fork-github/ - name: Audit production site if: "github.event_name == 'push' && github.ref == 'refs/heads/main'" continue-on-error: true run: | lhci autorun \ --collect.url=https://jarv.is/ \ - --collect.url=https://jarv.is/notes/netlify-analytics-review/ \ - --collect.url=https://jarv.is/notes/how-to-pull-request-fork-github/amp.html + --collect.url=https://jarv.is/notes/how-to-pull-request-fork-github/ - name: Upload results as artifact uses: actions/upload-artifact@v2 if: success() diff --git a/.gitignore b/.gitignore index 275e971b..a1af8a48 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,9 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +# local Netlify config +.netlify/ + # Lighthouse CI .lighthouseci/ @@ -26,8 +29,3 @@ yarn-error.log* .Trashes *.icloud .nosync - -# local Netlify/Zeit config -.netlify/ -.now/ -.vercel/ diff --git a/.lighthouserc.json b/.lighthouserc.json index 6183ed60..08511ae1 100644 --- a/.lighthouserc.json +++ b/.lighthouserc.json @@ -7,6 +7,8 @@ "preset": "lighthouse:no-pwa", "assertions": { "color-contrast": "warn", + "errors-in-console": "warn", + "inspector-issues": "warn", "link-text": "warn", "long-tasks": "warn", "non-composited-animations": "warn", diff --git a/.percy.yml b/.percy.yml index a30e5ca9..8b8fad93 100644 --- a/.percy.yml +++ b/.percy.yml @@ -7,8 +7,7 @@ snapshot: iframe, video, img[src$=".gif"], - .i-amphtml-element, - #hit-spinner, #hit-spinner { + div#meta-hits { display: none !important; /* don't worry about third-party content/embeds */ } code, @@ -21,7 +20,7 @@ snapshot: } static-snapshots: path: public/ - snapshot-files: 'index.html,uses/index.html,notes/{netlify-analytics-review,shodan-search-queries,dropping-dropbox,coronavirus-open-source}/*.html' + snapshot-files: 'index.html,uses/index.html,notes/{netlify-analytics-review,shodan-search-queries,dropping-dropbox,coronavirus-open-source}/index.html' agent: asset-discovery: network-idle-timeout: 2000 # ms diff --git a/.prettierignore b/.prettierignore index e38b1810..bfbecbc5 100644 --- a/.prettierignore +++ b/.prettierignore @@ -16,12 +16,9 @@ postcss.config.js devcontainer.json # miscellaneous -plugins/ .github/ .lighthouseci/ .netlify/ -.now/ -.vercel/ .vscode/ LICENSE.md content/notes/dark-mode/example.html diff --git a/config.toml b/config.toml index 8934abaa..a79dd929 100644 --- a/config.toml +++ b/config.toml @@ -98,7 +98,7 @@ disableAliases = true [outputs] home = ["HTML", "RSS", "ATOM", "MANIFEST", "REDIRECTS", "HEADERS"] section = ["HTML"] - page = ["HTML", "AMP"] + page = ["HTML"] [outputFormats] [outputFormats.RSS] @@ -111,12 +111,6 @@ disableAliases = true baseName = "feed" # /feed.atom isPlainText = false isHTML = false - [outputFormats.AMP] - mediaType = "text/html" - baseName = "amp" # amp.html - path = "." # put in same directory as original post - permalinkable = true - isHTML = true [outputFormats.MANIFEST] mediaType = "application/manifest+json" # https://github.com/w3c/manifest/issues/689 baseName = "site" # /site.webmanifest @@ -200,5 +194,3 @@ disableAliases = true for = "/**" [server.headers.values] Access-Control-Allow-Origin = "*" - # uncomment to get hashes of inline scripts via console errors: - # content-security-policy = "script-src 'self';" diff --git a/content/_index.md b/content/_index.md index 74014347..bb15473a 100644 --- a/content/_index.md +++ b/content/_index.md @@ -4,7 +4,6 @@ date: 2021-05-26 21:40:49-0400 type: home sitemap: priority: 1.0 -amp: false --- # Hi there! I'm Jake. 👋 diff --git a/layouts/_default/etc.amp.html b/layouts/_default/etc.amp.html deleted file mode 100644 index 2d278476..00000000 --- a/layouts/_default/etc.amp.html +++ /dev/null @@ -1,19 +0,0 @@ -{{ partial "amp/head" . }} - -
- {{ with .OutputFormats.Get "html" }} - - {{ end }} - - {{ with .OutputFormats.Get "html" }} -

{{ $.Title | markdownify }}

- {{ end }} - -
- {{ .Content }} -
-
- -{{ partial "amp/foot" . }} diff --git a/layouts/_default/single.amp.html b/layouts/_default/single.amp.html deleted file mode 100644 index f28bb261..00000000 --- a/layouts/_default/single.amp.html +++ /dev/null @@ -1,17 +0,0 @@ -{{ partial "amp/head" . }} - -
-
- {{ .Date.Format "January 2, 2006" }}{{ with .OutputFormats.Get "html" }}View Full Version{{ end }} -
- - {{ with .OutputFormats.Get "html" }} -

{{ $.Title | markdownify }}

- {{ end }} - -
- {{ .Content }} -
-
- -{{ partial "amp/foot" . }} diff --git a/layouts/_default/video.amp.html b/layouts/_default/video.amp.html deleted file mode 100644 index 00eb7c01..00000000 --- a/layouts/_default/video.amp.html +++ /dev/null @@ -1,28 +0,0 @@ -{{ partial "amp/head" . }} - -
- {{ with .OutputFormats.Get "html" }} -

{{ $.Title | markdownify }}

- {{ end }} - - - {{ with .Page.Resources.GetMatch "*.webm" }}{{ end }} - {{ with .Page.Resources.GetMatch "*.mp4" }}{{ end }} - {{ with .Page.Resources.GetMatch "*.ogg" }}{{ end }} - - {{ with .Page.Resources.GetMatch "*.vtt" }}{{ end }} - -
-

Your browser does not support HTML5 video. {{ with .Page.Resources.GetMatch "*.mp4" }}Load the .mp4 video directly.{{ end }}

-
-
- - {{ .Content }} -
- -{{ partial "amp/foot" . }} diff --git a/layouts/index.headers b/layouts/index.headers index c0cfe88a..0230bafa 100644 --- a/layouts/index.headers +++ b/layouts/index.headers @@ -7,15 +7,10 @@ /site.webmanifest Content-Type: application/manifest+json -# AMP cache invalidation key requirements: -# https://developers.google.com/amp/cache/update-cache#update-cache-guidelines -/.well-known/amphtml/apikey.pub - Content-Type: text/plain; charset=UTF-8 - # Set matching Onion-Location headers for each permalink {{- range $page := .Site.Pages }} {{- range .AlternativeOutputFormats }} {{ .RelPermalink }} Onion-Location: {{ $.Site.Params.baseOnionURL }}{{ .RelPermalink }} -{{ end }} +{{ end -}} {{ end -}} diff --git a/layouts/index.redirects b/layouts/index.redirects index 9547f801..1bd1dc96 100644 --- a/layouts/index.redirects +++ b/layouts/index.redirects @@ -19,3 +19,8 @@ {{ . }} {{ $page.RelPermalink }} 301 {{- end }} {{- end }} + +# Redirect old AMP URLs to the normal HTML page +{{- range $page := .Site.Pages }} +{{ print .RelPermalink "amp.html" }} {{ .RelPermalink }} 301! +{{ end -}} diff --git a/layouts/partials/amp/foot.html b/layouts/partials/amp/foot.html deleted file mode 100644 index f4457027..00000000 --- a/layouts/partials/amp/foot.html +++ /dev/null @@ -1,14 +0,0 @@ - - - {{ if eq hugo.Environment "production" }} - - {{ end }} - - - -{{ partialCached "functions/debug" . }} diff --git a/layouts/partials/amp/head.html b/layouts/partials/amp/head.html deleted file mode 100644 index 4dc1a875..00000000 --- a/layouts/partials/amp/head.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - {{ partial "functions/init" . }} - - {{ hugo.Generator }} - {{ if ne hugo.Environment "production" }}{{ end }} - - - {{ if .HasShortcode "video" }}{{ end }} - {{ if .HasShortcode "youtube" }}{{ end }} - {{ if .HasShortcode "tweet" }}{{ end }} - {{ if .HasShortcode "facebook" }}{{ end }} - {{ if .HasShortcode "gist" }}{{ end }} - {{ if .HasShortcode "instagram" }}{{ end }} - {{ if .HasShortcode "vimeo" }}{{ end }} - {{ .Scratch.Get "plainTitle" }} – {{ .Site.Title }} - {{ with .OutputFormats.Get "html" }}{{ end }} - - {{ with .Site.Author.name }}{{ end }} - - {{ partial "head/open-graph" . }} - - - - - - - {{ partialCached "head/favicons" (dict "pngSizes" "192 48 32 16" "icoSizes" "16 32") }} - {{ partialCached "head/feeds" . }} - {{ partialCached "head/webmention" . }} - {{ partial "head/schema" . }} - - -
- -
diff --git a/layouts/partials/head/canonical.html b/layouts/partials/head/canonical.html index 4ff724a2..d78de84b 100644 --- a/layouts/partials/head/canonical.html +++ b/layouts/partials/head/canonical.html @@ -1,11 +1,5 @@ -{{ if and .IsPage (ne .Params.amp false) -}} - {{- with .OutputFormats.Get "amp" -}} - - {{- end }} -{{- end }} - diff --git a/layouts/robots.txt b/layouts/robots.txt index 2e7ca636..8119b955 100644 --- a/layouts/robots.txt +++ b/layouts/robots.txt @@ -1,6 +1,5 @@ User-Agent: * {{- if eq hugo.Environment "production" }} -Allow: /.well-known/amphtml/apikey.pub Disallow: /403.html Disallow: /404.html Disallow: /api/ diff --git a/layouts/shortcodes/codepen.amp.html b/layouts/shortcodes/codepen.amp.html deleted file mode 100644 index d6d4db6c..00000000 --- a/layouts/shortcodes/codepen.amp.html +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/layouts/shortcodes/codepen.atom.atom b/layouts/shortcodes/codepen.atom.atom deleted file mode 100644 index 7f8b979a..00000000 --- a/layouts/shortcodes/codepen.atom.atom +++ /dev/null @@ -1 +0,0 @@ -

Open this CodePen in a new window.

diff --git a/layouts/shortcodes/codepen.atom.atom b/layouts/shortcodes/codepen.atom.atom new file mode 120000 index 00000000..fb1c8684 --- /dev/null +++ b/layouts/shortcodes/codepen.atom.atom @@ -0,0 +1 @@ +codepen.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/facebook.amp.html b/layouts/shortcodes/facebook.amp.html deleted file mode 100644 index 22eb20ab..00000000 --- a/layouts/shortcodes/facebook.amp.html +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/layouts/shortcodes/facebook.atom.atom b/layouts/shortcodes/facebook.atom.atom deleted file mode 100644 index 34c405c2..00000000 --- a/layouts/shortcodes/facebook.atom.atom +++ /dev/null @@ -1,4 +0,0 @@ -{{- $url := printf "https://www.facebook.com/plugins/post/oembed.json/?omitscript=1&url=%s" (.Get "url" | urlize) -}} -{{- $json := getJSON $url -}} - -{{ $json.html | safeHTML }} diff --git a/layouts/shortcodes/facebook.atom.atom b/layouts/shortcodes/facebook.atom.atom new file mode 120000 index 00000000..babfdf6a --- /dev/null +++ b/layouts/shortcodes/facebook.atom.atom @@ -0,0 +1 @@ +facebook.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/gh-buttons.amp.html b/layouts/shortcodes/gh-buttons.amp.html deleted file mode 100644 index 9b3e7703..00000000 --- a/layouts/shortcodes/gh-buttons.amp.html +++ /dev/null @@ -1,3 +0,0 @@ -

- View on GitHub. -

diff --git a/layouts/shortcodes/gh-buttons.atom.atom b/layouts/shortcodes/gh-buttons.atom.atom deleted file mode 100644 index a4adcc3c..00000000 --- a/layouts/shortcodes/gh-buttons.atom.atom +++ /dev/null @@ -1 +0,0 @@ -

Star {{ .Get "username" }}/{{ .Get "repo" }} on GitHub — Issues for {{ .Get "username" }}/{{ .Get "repo" }} on GitHub

diff --git a/layouts/shortcodes/gh-buttons.atom.atom b/layouts/shortcodes/gh-buttons.atom.atom new file mode 120000 index 00000000..94abf3fe --- /dev/null +++ b/layouts/shortcodes/gh-buttons.atom.atom @@ -0,0 +1 @@ +gh-buttons.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/gist.amp.html b/layouts/shortcodes/gist.amp.html deleted file mode 100644 index 328ffb52..00000000 --- a/layouts/shortcodes/gist.amp.html +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/layouts/shortcodes/gist.atom.atom b/layouts/shortcodes/gist.atom.atom deleted file mode 100644 index c9ddb231..00000000 --- a/layouts/shortcodes/gist.atom.atom +++ /dev/null @@ -1 +0,0 @@ -

Open this GitHub Gist in a new window.

diff --git a/layouts/shortcodes/gist.atom.atom b/layouts/shortcodes/gist.atom.atom new file mode 120000 index 00000000..6dc7ff22 --- /dev/null +++ b/layouts/shortcodes/gist.atom.atom @@ -0,0 +1 @@ +gist.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/iframe.amp.html b/layouts/shortcodes/iframe.amp.html deleted file mode 100644 index 5544bce9..00000000 --- a/layouts/shortcodes/iframe.amp.html +++ /dev/null @@ -1,8 +0,0 @@ - - diff --git a/layouts/shortcodes/iframe.atom.atom b/layouts/shortcodes/iframe.atom.atom deleted file mode 100644 index d58a5638..00000000 --- a/layouts/shortcodes/iframe.atom.atom +++ /dev/null @@ -1 +0,0 @@ -

Open frame in a new window.

diff --git a/layouts/shortcodes/iframe.atom.atom b/layouts/shortcodes/iframe.atom.atom new file mode 120000 index 00000000..13bec42c --- /dev/null +++ b/layouts/shortcodes/iframe.atom.atom @@ -0,0 +1 @@ +iframe.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/image.amp.html b/layouts/shortcodes/image.amp.html deleted file mode 100644 index a041c2c6..00000000 --- a/layouts/shortcodes/image.amp.html +++ /dev/null @@ -1,16 +0,0 @@ -{{- $optimized := partial "functions/optimize-image" . -}} - -

- {{ with .Get "link" }}{{ end }} - - - {{ if .Get "link" }}{{ end }} -

- -{{ with .Inner }}

{{ . | $.Page.RenderString | safeHTML }}

{{ end }} diff --git a/layouts/shortcodes/image.atom.atom b/layouts/shortcodes/image.atom.atom deleted file mode 100644 index 649d6f42..00000000 --- a/layouts/shortcodes/image.atom.atom +++ /dev/null @@ -1,10 +0,0 @@ -{{- $optimized := partial "functions/optimize-image" . -}} - -

-{{ with .Get "link" }}{{ end }} -{{ . | safeHTML }} -{{ if .Get "link" }}{{ end }} -{{ with .Inner }}
{{ . | $.Page.RenderString | safeHTML }}{{ end -}} -

diff --git a/layouts/shortcodes/image.atom.atom b/layouts/shortcodes/image.atom.atom new file mode 120000 index 00000000..6e5953a9 --- /dev/null +++ b/layouts/shortcodes/image.atom.atom @@ -0,0 +1 @@ +image.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/instagram.amp.html b/layouts/shortcodes/instagram.amp.html deleted file mode 100644 index 92c945da..00000000 --- a/layouts/shortcodes/instagram.amp.html +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/layouts/shortcodes/instagram.atom.atom b/layouts/shortcodes/instagram.atom.atom deleted file mode 100644 index cd79a22c..00000000 --- a/layouts/shortcodes/instagram.atom.atom +++ /dev/null @@ -1 +0,0 @@ -

View this image on Instagram.

diff --git a/layouts/shortcodes/instagram.atom.atom b/layouts/shortcodes/instagram.atom.atom new file mode 120000 index 00000000..6e667426 --- /dev/null +++ b/layouts/shortcodes/instagram.atom.atom @@ -0,0 +1 @@ +instagram.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/tweet.amp.html b/layouts/shortcodes/tweet.amp.html deleted file mode 100644 index 06fb3014..00000000 --- a/layouts/shortcodes/tweet.amp.html +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/layouts/shortcodes/tweet.atom.atom b/layouts/shortcodes/tweet.atom.atom deleted file mode 100644 index 15acdab0..00000000 --- a/layouts/shortcodes/tweet.atom.atom +++ /dev/null @@ -1,4 +0,0 @@ -{{- $url := printf "https://publish.twitter.com/oembed?lang=en&omit_script=true&dnt=true&align=center&url=%s" (index .Params 0 | safeURL) -}} -{{- $json := getJSON $url -}} - -{{ $json.html | safeHTML }} diff --git a/layouts/shortcodes/tweet.atom.atom b/layouts/shortcodes/tweet.atom.atom new file mode 120000 index 00000000..dfa6f9f5 --- /dev/null +++ b/layouts/shortcodes/tweet.atom.atom @@ -0,0 +1 @@ +tweet.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/video.amp.html b/layouts/shortcodes/video.amp.html deleted file mode 100644 index bb6d4177..00000000 --- a/layouts/shortcodes/video.amp.html +++ /dev/null @@ -1,18 +0,0 @@ - - {{ with .Page.Resources.GetMatch (.Get "webm") }}{{ end }} - {{ with .Page.Resources.GetMatch (.Get "mp4") }}{{ end }} - {{ with .Page.Resources.GetMatch (.Get "ogg") }}{{ end }} - - {{ with .Page.Resources.GetMatch (.Get "vtt") }}{{ end }} - -
-

Your browser does not support HTML5 video. {{ with .Page.Resources.GetMatch (.Get "mp4") }}Load the .mp4 video directly.{{ end }}

-
-
diff --git a/layouts/shortcodes/video.atom.atom b/layouts/shortcodes/video.atom.atom deleted file mode 100644 index 683cba5a..00000000 --- a/layouts/shortcodes/video.atom.atom +++ /dev/null @@ -1 +0,0 @@ -

Your browser does not support HTML5 video. {{ with .Page.Resources.GetMatch (.Get "mp4") }}Click to open the .mp4 video directly.{{ end }}

diff --git a/layouts/shortcodes/video.atom.atom b/layouts/shortcodes/video.atom.atom new file mode 120000 index 00000000..ca466f99 --- /dev/null +++ b/layouts/shortcodes/video.atom.atom @@ -0,0 +1 @@ +video.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/vimeo.amp.html b/layouts/shortcodes/vimeo.amp.html deleted file mode 100644 index f456297f..00000000 --- a/layouts/shortcodes/vimeo.amp.html +++ /dev/null @@ -1,6 +0,0 @@ - - diff --git a/layouts/shortcodes/vimeo.atom.atom b/layouts/shortcodes/vimeo.atom.atom deleted file mode 100644 index 448532ad..00000000 --- a/layouts/shortcodes/vimeo.atom.atom +++ /dev/null @@ -1 +0,0 @@ -

Watch this video on Vimeo.

diff --git a/layouts/shortcodes/vimeo.atom.atom b/layouts/shortcodes/vimeo.atom.atom new file mode 120000 index 00000000..99cc4d5c --- /dev/null +++ b/layouts/shortcodes/vimeo.atom.atom @@ -0,0 +1 @@ +vimeo.rss.xml \ No newline at end of file diff --git a/layouts/shortcodes/youtube.amp.html b/layouts/shortcodes/youtube.amp.html deleted file mode 100644 index 63165892..00000000 --- a/layouts/shortcodes/youtube.amp.html +++ /dev/null @@ -1,8 +0,0 @@ -

- - -

diff --git a/layouts/shortcodes/youtube.atom.atom b/layouts/shortcodes/youtube.atom.atom deleted file mode 100644 index 4420d080..00000000 --- a/layouts/shortcodes/youtube.atom.atom +++ /dev/null @@ -1 +0,0 @@ -

Watch this video on YouTube.

diff --git a/layouts/shortcodes/youtube.atom.atom b/layouts/shortcodes/youtube.atom.atom new file mode 120000 index 00000000..40ab488e --- /dev/null +++ b/layouts/shortcodes/youtube.atom.atom @@ -0,0 +1 @@ +youtube.rss.xml \ No newline at end of file diff --git a/netlify.toml b/netlify.toml index 7abc6cca..aced916a 100644 --- a/netlify.toml +++ b/netlify.toml @@ -7,7 +7,6 @@ NODE_VERSION = "14" YARN_VERSION = "1.22.10" YARN_FLAGS = "--no-ignore-optional --frozen-lockfile" - PYTHON_VERSION = "3.7" # Ensure *only* Pretty URLs are enabled, even though this is already set up in # the Netlify dashboard. @@ -44,15 +43,10 @@ # Enable local Netlify build plugins: [[plugins]] package = "@netlify/plugin-local-install-core" -# Optimize AMP pages server-side: -# https://github.com/ampproject/amp-toolbox/tree/master/packages/optimizer -# https://github.com/martinbean/netlify-plugin-amp-server-side-rendering -[[plugins]] - package = "./plugins/netlify-plugin-amp-optimizer" # Cache resoures between builds: # https://github.com/jakejarvis/netlify-plugin-cache [[plugins]] - package = "./plugins/netlify-plugin-cache" + package = "netlify-plugin-cache" [plugins.inputs] paths = ["public", "builds", "_vendor"] # List cached resources for debugging: @@ -67,21 +61,20 @@ [[headers]] for = "/*" [headers.values] - # https://amp.dev/documentation/guides-and-tutorials/optimize-and-measure/secure-pages/ Content-Security-Policy = ''' default-src 'self'; base-uri 'none'; - connect-src 'self' *.ampproject.net csp-collector.appspot.com/csp/amp api.github.com platform.twitter.com; - font-src 'self' fonts.googleapis.com fonts.gstatic.com; + connect-src 'self' api.github.com platform.twitter.com; + font-src 'self'; form-action 'none'; frame-ancestors 'self'; - frame-src 'self' jakejarvis.github.io *.ampproject.net cdn.ampproject.org app.usefathom.com buttons.github.io codepen.io cdpn.io platform.twitter.com player.vimeo.com www.youtube-nocookie.com; + frame-src 'self' jakejarvis.github.io buttons.github.io codepen.io cdpn.io platform.twitter.com www.youtube-nocookie.com; img-src 'self' data: https:; manifest-src 'self'; media-src 'self' data: https:; object-src 'none'; - script-src 'self' cdn.ampproject.org/lts/v0.js cdn.ampproject.org/lts/v0.mjs cdn.ampproject.org/lts/v0/ cdn.ampproject.org/viewer/ cdn.ampproject.org/rtv/ 3p.ampproject.net buttons.github.io gist.github.com syndication.twitter.com platform.twitter.com player.vimeo.com 'sha256-1j1MKfE70TTCp5KmiC2YImxw2RMS52uCH5yXl1heG9U=' 'sha256-y3Xr/40/KQnUvqk/kZO5us6t3i/I49BsbYjsH8ELhVg=' 'sha256-JGG0npUp+0ABq/NY1azjpQ0WBtm+m5gU58mzF+2DCXY='; - style-src 'self' 'unsafe-inline' cdn.ampproject.org/rtv/ fonts.googleapis.com assets-cdn.github.com github.githubassets.com; + script-src 'self' buttons.github.io gist.github.com syndication.twitter.com platform.twitter.com 'sha256-1j1MKfE70TTCp5KmiC2YImxw2RMS52uCH5yXl1heG9U=' 'sha256-y3Xr/40/KQnUvqk/kZO5us6t3i/I49BsbYjsH8ELhVg=' 'sha256-JGG0npUp+0ABq/NY1azjpQ0WBtm+m5gU58mzF+2DCXY='; + style-src 'self' 'unsafe-inline' github.githubassets.com; worker-src 'self'; block-all-mixed-content; report-uri https://jarv.is/api/csp_wizard; @@ -137,12 +130,6 @@ to = "https://jarvis.report-uri.com/r/d/csp/enforce" status = 200 force = true -## Fathom Analytics endpoint -[[redirects]] - from = "/api/count_view*" - to = "https://starman.fathomdns.com/:splat" - status = 200 - force = true ## Webmention.io endpoints [[redirects]] from = "/api/mention" diff --git a/package.json b/package.json index 2551a87b..c97912ac 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "lint-staged": "^11.0.0", "markdownlint-cli": "~0.27.1", "netlify-lambda": "^2.0.8", + "netlify-plugin-cache": "^1.0.3", "npm-run-all": "^4.1.5", "postcss": "^8.3.0", "postcss-clean": "jakejarvis/postcss-clean#master", diff --git a/plugins/netlify-plugin-amp-optimizer/.gitignore b/plugins/netlify-plugin-amp-optimizer/.gitignore deleted file mode 100644 index db2cc52f..00000000 --- a/plugins/netlify-plugin-amp-optimizer/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -package-lock.json -npm-debug.log* diff --git a/plugins/netlify-plugin-amp-optimizer/LICENSE b/plugins/netlify-plugin-amp-optimizer/LICENSE deleted file mode 100644 index 0042aa8a..00000000 --- a/plugins/netlify-plugin-amp-optimizer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Martin Bean - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/plugins/netlify-plugin-amp-optimizer/README.md b/plugins/netlify-plugin-amp-optimizer/README.md deleted file mode 100644 index f28675b7..00000000 --- a/plugins/netlify-plugin-amp-optimizer/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Netlify Plugin: AMP Optimizer - -Lightly modified from [martinbean/netlify-plugin-amp-server-side-rendering](https://github.com/martinbean/netlify-plugin-amp-server-side-rendering). diff --git a/plugins/netlify-plugin-amp-optimizer/index.js b/plugins/netlify-plugin-amp-optimizer/index.js deleted file mode 100644 index 0ecd4652..00000000 --- a/plugins/netlify-plugin-amp-optimizer/index.js +++ /dev/null @@ -1,37 +0,0 @@ -const ampOptimizer = require('@ampproject/toolbox-optimizer').create({ - verbose: true, - lts: true, - minify: true, - autoExtensionImport: true, - blurredPlaceholders: true, - imageBasePath: './images' -}) -const fs = require('fs') -const glob = require('glob') - -module.exports = { - onPostBuild: async ({ constants, utils }) => { - // Hugo renders my AMP pages as amp.html right next to each page's index.html - const pattern = constants.PUBLISH_DIR + '/**/amp.html' - - const files = await new Promise((resolve, reject) => { - glob(pattern, { nodir: true }, (error, files) => { - // eslint-disable-next-line no-unused-expressions - error ? reject(error) : resolve(files) - }) - }) - - await Promise.all( - files.map(async file => { - const html = await fs.promises.readFile(file, 'utf-8') - const optimizedHtml = await ampOptimizer.transformHtml(html) - await fs.promises.writeFile(file, optimizedHtml) - }) - ) - - utils.status.show({ - title: `${files.length} AMP pages optimized`, - summary: 'Great success! ⚡' - }) - } -} diff --git a/plugins/netlify-plugin-amp-optimizer/manifest.yml b/plugins/netlify-plugin-amp-optimizer/manifest.yml deleted file mode 100644 index f5c24ba8..00000000 --- a/plugins/netlify-plugin-amp-optimizer/manifest.yml +++ /dev/null @@ -1 +0,0 @@ -name: netlify-plugin-amp-optimizer diff --git a/plugins/netlify-plugin-amp-optimizer/package.json b/plugins/netlify-plugin-amp-optimizer/package.json deleted file mode 100644 index 50d403a5..00000000 --- a/plugins/netlify-plugin-amp-optimizer/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "netlify-plugin-amp-optimizer", - "version": "1.0.0", - "description": "Render your AMP pages, server-side.", - "license": "MIT", - "author": { - "name": "Martin Bean", - "url": "https://martinbean.dev" - }, - "files": [ - "manifest.yml", - "index.js" - ], - "main": "index.js", - "dependencies": { - "@ampproject/toolbox-optimizer": "^2.8.0", - "@ampproject/toolbox-update-cache": "^2.8.0", - "cssnano-simple": "^2.0.0", - "glob": "^7.1.7", - "jimp": "^0.16.1", - "lru-cache": "^6.0.0", - "postcss": "^8.x", - "postcss-safe-parser": "^5.0.2", - "probe-image-size": "^7.1.1", - "terser": "^5.7.0" - }, - "engines": { - "node": ">=10.18" - } -} diff --git a/plugins/netlify-plugin-cache/.gitignore b/plugins/netlify-plugin-cache/.gitignore deleted file mode 100644 index db2cc52f..00000000 --- a/plugins/netlify-plugin-cache/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -package-lock.json -npm-debug.log* diff --git a/plugins/netlify-plugin-cache/LICENSE b/plugins/netlify-plugin-cache/LICENSE deleted file mode 100644 index 57b6e477..00000000 --- a/plugins/netlify-plugin-cache/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Jake Jarvis - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/plugins/netlify-plugin-cache/README.md b/plugins/netlify-plugin-cache/README.md deleted file mode 100644 index e9c3bade..00000000 --- a/plugins/netlify-plugin-cache/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# ⚡ Netlify Plugin: Custom Cache [![npm](https://img.shields.io/npm/v/netlify-plugin-cache?logo=npm&color=red)](https://www.npmjs.com/package/netlify-plugin-cache) ![CI](https://github.com/jakejarvis/netlify-plugin-cache/workflows/CI/badge.svg) - -A generic cache plugin for saving and restoring files and/or folders between Netlify builds for impressive speed improvements. Worry less about running out of build minutes! ⏰ - -Essentially, this plugin is a pretty wrapper around [Netlify's native cache utility](https://github.com/netlify/build/blob/master/packages/cache-utils/README.md) — it isn't tied to any specific static site generator (on purpose). - -## 💿 Install - -Add the following lines to your `netlify.toml`: - -```toml -[[plugins]] -package = "netlify-plugin-cache" - [plugins.inputs] - # Optional (but highly recommended). Defaults to [".cache"]. - paths = ["resources", "_vendor", "folder/file.md"] -``` - -This plugin only takes one input named `paths`: an array of files and/or directories relative to your project's root. These files/directories are restored before a build and saved in cache after a build **if it is successful**. - -**🚨 Important:** `paths` defaults to `[".cache"]`, but it's **highly recommended** you set this yourself based on the tool(s) you're using to generate your site. See examples below. - -Read more about plugin configuration at [the official Netlify Plugin docs](https://docs.netlify.com/configure-builds/build-plugins/#install-a-plugin). - -## 👩‍💻 Usage - -- **Hugo:** Caching the `resources` directory can speed up your build greatly if you [process](https://gohugo.io/content-management/image-processing/) a lot of images, or compile SASS/SCSS via Hugo pipes. You can also cache the `public` directory to avoid completely rebuilding the entire site on each deploy. [More info here.](https://gohugo.io/getting-started/directory-structure/#directory-structure-explained) -- **Gatsby:** By default, the `.cache` directory holds persistent data between builds. You can also cache the `dist` directory to avoid completely rebuilding the entire site on each deploy. [More info here.](https://www.gatsbyjs.org/docs/build-caching/) -- **Jekyll:** A caching API was added as of v4. The notoriously slow SSG can become (relatively) faster by caching the `.jekyll-cache` directory. [More info here.](https://jekyllrb.com/tutorials/cache-api/) -- **Next.js:** The `.next` directory holds the build output. [More info here.](https://nextjs.org/docs/api-reference/next.config.js/setting-a-custom-build-directory) -- **Anything else:** This is the reason I kept this plugin as generic as possible! Research the caching behavior of your static site generator (and how to customize it if necessary). Feel free to open a PR and list it here as well! - -## 🐛 Debugging - -This plugin doesn't provide a way to output a list of files that were cached or restored, because Netlify already provides an official plugin named [`netlify-plugin-debug-cache`](https://github.com/netlify-labs/netlify-plugin-debug-cache) to do exactly that. No need to re-invent the wheel! - -You can add the debug plugin **after** this plugin in your `netlify.toml`. (And yes, you need a `[[plugins]]` line for _each_ plugin you add.) - -```toml -[[plugins]] -package = "netlify-plugin-debug-cache" -``` - -The debug plugin will generate a file named `cache-output.json` at the root of your project's publish directory. [See an example file](https://infallible-wing-581e78.netlify.app/cache-output.json) or [learn more about this plugin](https://github.com/netlify-labs/netlify-plugin-debug-cache). - -## 📜 License - -This project is distributed under the [MIT license](LICENSE). diff --git a/plugins/netlify-plugin-cache/index.js b/plugins/netlify-plugin-cache/index.js deleted file mode 100644 index c0cd0a0e..00000000 --- a/plugins/netlify-plugin-cache/index.js +++ /dev/null @@ -1,37 +0,0 @@ -// Netlify Plugin: netlify-plugin-cache -// https://github.com/jakejarvis/netlify-plugin-cache -// -// This plugin is essentially a wrapper around Netlify's native `cache-utils`: -// https://github.com/netlify/build/blob/master/packages/cache-utils/README.md - -module.exports = { - // Try to restore cache before build begins, if it exists - onPreBuild: async ({ utils: { cache }, inputs }) => { - if (await cache.restore(inputs.paths)) { - const files = await cache.list(inputs.paths); - console.log(`Successfully restored: ${inputs.paths.join(", ")} ... ${files.length} files in total.`); - } else { - console.log(`A cache of '${inputs.paths.join(", ")}' doesn't exist (yet).`); - } - }, - - // Only save/update cache if build was successful - onSuccess: async ({ utils: { cache, status }, inputs }) => { - if (await cache.save(inputs.paths)) { - const files = await cache.list(inputs.paths); - console.log(`Successfully cached: ${inputs.paths.join(", ")} ... ${files.length} files in total.`); - - // Show success & more detail in deploy summary - status.show({ - title: `${files.length} files cached`, - summary: "These will be restored on the next build! ⚡", - text: `${inputs.paths.join(", ")}`, - }); - } else { - // This probably happened because the default `paths` is set, so provide instructions to fix - console.log(`Attempted to cache: ${inputs.paths.join(", ")} ... but failed. :(`); - console.log("Try setting the 'paths' input appropriately in your netlify.toml configuration."); - console.log("More details: https://jrvs.io/netlify-cache-usage"); - } - }, -}; diff --git a/plugins/netlify-plugin-cache/manifest.yml b/plugins/netlify-plugin-cache/manifest.yml deleted file mode 100644 index 334189ef..00000000 --- a/plugins/netlify-plugin-cache/manifest.yml +++ /dev/null @@ -1,5 +0,0 @@ -name: netlify-plugin-cache -inputs: - - name: paths - description: Array of files and/or directories to cache between builds. - default: [".cache"] diff --git a/plugins/netlify-plugin-cache/package.json b/plugins/netlify-plugin-cache/package.json deleted file mode 100644 index 7e7cbf62..00000000 --- a/plugins/netlify-plugin-cache/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "netlify-plugin-cache", - "version": "1.0.3", - "description": "Generic cache plugin for saving and restoring files and/or folders between Netlify builds", - "license": "MIT", - "author": { - "name": "Jake Jarvis", - "email": "jake@jarv.is", - "url": "http://jarv.is/" - }, - "homepage": "https://github.com/jakejarvis/netlify-plugin-cache#readme", - "bugs": "https://github.com/jakejarvis/netlify-plugin-cache/issues", - "repository": { - "type": "git", - "url": "git+https://github.com/jakejarvis/netlify-plugin-cache.git" - }, - "main": "index.js", - "engines": { - "node": ">=10.18" - } -} diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index a3e93c93..00000000 --- a/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -fonttools[lxml,ufo,unicode,woff]==4.24.4 -Brotli==1.0.9 -zopfli==0.1.8 diff --git a/resources/_gen/images/me_hu1c1a997e30e234e83718deb8b3f52283_130509_320x320_resize_q90_lanczos.jpg b/resources/_gen/images/me_hu1c1a997e30e234e83718deb8b3f52283_130509_320x320_resize_q90_lanczos.jpg deleted file mode 100644 index cd49dc7c0ceeffd4f176ed76d9c322c3452f0a9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25290 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 diff --git a/static/.well-known/amphtml/apikey.pub b/static/.well-known/amphtml/apikey.pub deleted file mode 100644 index 43a6a67c..00000000 --- a/static/.well-known/amphtml/apikey.pub +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN PUBLIC KEY----- -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1upnHtc/v97NGGvSFiJ6 -Krddk+u62ZiZiNjU+urVfBYNZe4H+SDgfmSwi/AEpa3C5O9U0bInGlNJUvL5FYNo -Wjrg8/ZFZ0mkGwe9GqCw/ipeYBiBovIPoWpoHLts5KRLMGro4/gWfivcYFi9+gm8 -x4rbGOgMdQf+p86vxMlo/waeKD3YV1+YOqJDTGib0e9JqZH/RavRPwcp+1kMExYv -DHvpcBnZdg16663mjGGiG4IPS3KzwL7cXxryywPmt/yg/fSh63h2W5MMOKoevjr0 -oZbUNEEjepvuYq0aAcK3Ce33cSKgkHv67Ir/3TDgfAi4l4VgIZm0JZd2W5OwvcvN -/QIDAQAB ------END PUBLIC KEY----- diff --git a/yarn.lock b/yarn.lock index f311b8d6..320c9152 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1952,9 +1952,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001166, caniuse-lite@^1.0.30001179, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001230: - version "1.0.30001231" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001231.tgz#6c1f9b49fc27cc368b894e64b9b28b39ef80603b" - integrity sha512-WAFFv31GgU4DiwNAy77qMo3nNyycEhH3ikcCVHvkQpPe/fO8Tb2aRYzss8kgyLQBm8mJ7OryW4X6Y4vsBCIqag== + version "1.0.30001232" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001232.tgz#2ebc8b6a77656fd772ab44a82a332a26a17e9527" + integrity sha512-e4Gyp7P8vqC2qV2iHA+cJNf/yqUKOShXQOJHQt81OHxlIZl/j/j3soEA0adAQi8CPUQgvOdDENyQ5kd6a6mNSg== caw@^2.0.0, caw@^2.0.1: version "2.0.1" @@ -2901,9 +2901,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.723: - version "1.3.742" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.742.tgz#7223215acbbd3a5284962ebcb6df85d88b95f200" - integrity sha512-ihL14knI9FikJmH2XUIDdZFWJxvr14rPSdOhJ7PpS27xbz8qmaRwCwyg/bmFwjWKmWK9QyamiCZVCvXm5CH//Q== + version "1.3.743" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.743.tgz#fcec24d6d647cb84fd796b42caa1b4039a180894" + integrity sha512-K2wXfo9iZQzNJNx67+Pld0DRF+9bYinj62gXCdgPhcu1vidwVuLPHQPPFnCdO55njWigXXpfBiT90jGUPbw8Zg== elliptic@^6.5.3: version "6.5.4" @@ -3666,10 +3666,10 @@ for-in@^1.0.2: resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fraction.js@^4.1.1: version "4.1.1" @@ -5804,6 +5804,11 @@ netlify-lambda@^2.0.8: webpack "^4.43.0" webpack-merge "^4.2.2" +netlify-plugin-cache@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/netlify-plugin-cache/-/netlify-plugin-cache-1.0.3.tgz#f60514e259dff2b3286b6d60b570bb1c81206794" + integrity sha512-CTOwNWrTOP59T6y6unxQNnp1WX702v2R/faR5peSH94ebrYfyY4zT5IsRcIiHKq57jXeyCrhy0GLuTN8ktzuQg== + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -6731,11 +6736,11 @@ proto-list@~1.2.1: integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: - forwarded "~0.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" prr@~1.0.1: