From 7cd1380d063b3e7db644ecd74856ff5a6c128111 Mon Sep 17 00:00:00 2001 From: Suzanne Soy Date: Tue, 21 Nov 2023 17:57:02 +0000 Subject: [PATCH] Updated links, auto-update _dnslink entry for IPFS --- .github/github_install_ipfs.sh | 8 + .github/github_update_homepage.sh | 18 + .github/pin-using-ipfs.sh | 76 + .github/print-and-compare-ipfs.sh | 13 + .github/update-ovh.py | 49 + .../upload-to-ipfs-and-update-dns.yml | 75 + README | 7 +- deploy.sh | 8 +- directory_hashes.js | 2 +- flake.nix | 2 +- index.html | 11 +- sitemap.html | 1464 +++++++++-------- 12 files changed, 996 insertions(+), 737 deletions(-) create mode 100755 .github/github_install_ipfs.sh create mode 100755 .github/github_update_homepage.sh create mode 100755 .github/pin-using-ipfs.sh create mode 100755 .github/print-and-compare-ipfs.sh create mode 100755 .github/update-ovh.py create mode 100644 .github/workflows/upload-to-ipfs-and-update-dns.yml diff --git a/.github/github_install_ipfs.sh b/.github/github_install_ipfs.sh new file mode 100755 index 0000000..d3cbfe0 --- /dev/null +++ b/.github/github_install_ipfs.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -euET -o pipefail + +cd /tmp +wget https://dist.ipfs.tech/kubo/v0.19.1/kubo_v0.19.1_linux-amd64.tar.gz +tar -zxf kubo_v0.19.1_linux-amd64.tar.gz +PATH="/tmp/kubo:$PATH" ipfs init --profile=lowpower diff --git a/.github/github_update_homepage.sh b/.github/github_update_homepage.sh new file mode 100755 index 0000000..2f40b05 --- /dev/null +++ b/.github/github_update_homepage.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -euET -o pipefail + +echo "Hashing repository contents with IPFS..." + +h="$(result/www/ipfs-add.sh --pin=true)" + +printf "The new homepage URL will be: https://%s.ipfs.dweb.link/\n" "$h" + +# Update Homepage URL on GitHub +curl -L \ + -X PATCH \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer $API_TOKEN_FOR_UPDATE_HOMEPAGE"\ + -H "X-GitHub-Api-Version: 2022-11-28" \ + https://api.github.com/repos/ligolang/bounties \ + -d '{"name":"bounties", "homepage":"https://dweb.link/ipfs/'"$h"'"}' > /dev/null diff --git a/.github/pin-using-ipfs.sh b/.github/pin-using-ipfs.sh new file mode 100755 index 0000000..0c09568 --- /dev/null +++ b/.github/pin-using-ipfs.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash + +set -euET -o pipefail + +echo "Hashing repository contents with IPFS..." + +h="$(result/www/ipfs-add.sh --pin=true)" + +printf "Pinning ipfs://%s/\n" "$h" + +echo 0 > ipfs-pin-global-exitcode + +if test -n "${IPFS_REMOTE_API_ENDPOINT:-}" && test -n "${IPFS_REMOTE_TOKEN:-}" && test -n "${IPFS_SWARM_CONNECT_TO:-}"; then + # Wait for IPFS daemon to be ready + echo 'Starting IPFS daemon...' + tail -F /tmp/ipfs-daemon.logs -n +1 & pid=$! + ipfs daemon >/tmp/ipfs-daemon.logs 2>&1 & + while ! grep 'Daemon is ready' /tmp/ipfs-daemon.logs; do sleep 1; date; done + echo 'IPFS daemon started, killing log tail...' + kill "$pid" + echo 'log tail killed' + + printf %s\\n "$IPFS_SWARM_CONNECT_TO" | (i=1; while read multiaddr; do + printf "Connecting to IPFS node %s...\n" "$i" + ( + ipfs swarm connect "$multiaddr" & + ) > /dev/null 2>&1 + i=$((i+1)) + done) + sleep 10 + + printf %s\\n "$IPFS_REMOTE_API_ENDPOINT" | (i=1; while read api_endpoint; do + printf "Extracting token %s from environment...\n" "$i" + token="$( (printf %s\\n "$IPFS_REMOTE_TOKEN" | tail -n +"$i" | head -n 1) 2>/dev/null )" + #(printf %s "$token" | sha256sum | sha256sum | sha256sum) 2>/dev/null # for debugging without leaking the token + # Pin this hash + printf "Adding remote pinning service %s...\n" "$i" + ( + ipfs pin remote service add my-remote-pin-"$i" "$api_endpoint" "$token" + ) > /dev/null 2>&1 + + printf "Pinning %s on the remote service %s...\n" "$h" "$i" + ( + if ipfs pin remote add --service=my-remote-pin-"$i" --name="site-bounties-$(TZ=UTC git log -1 --format=%cd --date=iso-strict-local HEAD)-$GITHUB_SHA" "$h"; then + echo $? > ipfs-pin-remote-add-exitcode + else + echo $? > ipfs-pin-remote-add-exitcode + fi + ) > /dev/null 2>&1 + printf "Finished pinning %s on the remote service %s, exitcode=%s\n" "$h" "$i" "$(cat ipfs-pin-remote-add-exitcode)" + if test "$(cat ipfs-pin-remote-add-exitcode)" != 0; then + echo 1 > ipfs-pin-global-exitcode + fi + i=$((i+1)) + done) +fi + +# warm up cache, twice (a few files in the first attempt would likely fail as the DHT propagation is not instant) +for i in `seq 2`; do + ipfs add --progress=false --ignore-rules-path "result/www/.ipfsignore" --pin=false --hidden -r result/www \ + | cut -d ' ' -f 3- \ + | sed -e 's~^www/*~~' \ + | while read f; do + if (printf %s\\n "$IPFS_REMOTE_API_ENDPOINT" | grep pinata) >/dev/null 2>&1; then + printf "Warming up pinata cache for %s (attempt %d)...\n" "$f" "$i" + wget --tries=1 --timeout=10 -O- "https://gateway.pinata.cloud/ipfs/$h/$f" > /dev/null || true + fi + printf "Warming up Cloudflare cache for %s (attempt %d)...\n" "$f" "$i" + wget --tries=1 --timeout=10 -O- "https://cloudflare-ipfs.com/ipfs/$h/$f" > /dev/null || true + printf "Warming up dweb.link cache for %s (attempt %d)...\n" "$f" "$i" + wget --tries=1 --timeout=10 -O- "https://$h.ipfs.dweb.link/$f" > /dev/null || true + done +done + +# Fail job if one of the pinning services didn't work +exit "$(cat ipfs-pin-global-exitcode)" diff --git a/.github/print-and-compare-ipfs.sh b/.github/print-and-compare-ipfs.sh new file mode 100755 index 0000000..68cd93f --- /dev/null +++ b/.github/print-and-compare-ipfs.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -euET -o pipefail + +h1="ipfs://$(./result/www/ipfs-add.sh --pin=false)" +h2="ipfs://$(./ipfs-add.sh --pin=false)" +h3="$(cat result/ipfs.url)" + +echo "$h1" +echo "$h2" +echo "$h3" + +test "$h1" = "$h2" && test "$h2" = "$h3" diff --git a/.github/update-ovh.py b/.github/update-ovh.py new file mode 100755 index 0000000..c8fb2f5 --- /dev/null +++ b/.github/update-ovh.py @@ -0,0 +1,49 @@ +# -*- encoding: utf-8 -*- +''' +First, install the latest release of Python wrapper: $ pip install ovh + +To create an API token, visit: +OVH_DNS_DOMAIN=foobar.com +OVH_DNS_RECORD_ID=?????? +x-www-browser https://www.ovh.com/auth/api/createToken?GET=/domain/zone/"$OVH_DNS_DOMAIN"/record/"$OVH_DNS_RECORD_ID"&PUT=/domain/zone/"$OVH_DNS_DOMAIN"/record/"$OVH_DNS_RECORD_ID"&POST=/domain/zone/"$OVH_DNS_DOMAIN"/refresh + +This should create an API key with the following. + Add the last one and uncomment the code a few lines + below to be able to obtain the "$OVH_DNS_RECORD_ID" number. + +GET /domain/zone/"$OVH_DNS_DOMAIN"/record/"$OVH_DNS_RECORD_ID" +PUT /domain/zone/"$OVH_DNS_DOMAIN"/record/"$OVH_DNS_RECORD_ID" +POST /domain/zone/"$OVH_DNS_DOMAIN"/refresh +#GET /domain/zone/"$OVH_DNS_DOMAIN"/record +''' +import os +import json +import ovh + +# Instanciate an OVH Client. +# You can generate new credentials with full access to your account on +# the token creation page +client = ovh.Client( + endpoint=os.environ['API_OVH_ENDPOINT'], + application_key=os.environ['API_OVH_APPLICATION_KEY'], + application_secret=os.environ['API_OVH_APPLICATION_SECRET'], + consumer_key=os.environ['API_OVH_CONSUMER_KEY'], +) + +# Uncomment to get the OVH_DNS_RECORD_ID number (needs GET /domain/zone/"$OVH_DNS_DOMAIN"/record allowed in the API token) +#result = client.get('/domain/zone/'+os.environ['OVH_DNS_DOMAIN']+'/record', +# fieldType='TXT', +# subDomain='_dnslink.git-tutorial', +#) +#print(json.dumps(result, indent=4)) + +if client.get('/domain/zone/'+os.environ['OVH_DNS_DOMAIN']+'/record/'+os.environ['OVH_DNS_RECORD_ID'])['subDomain'] == '_dnslink.git-tutorial': + result = client.put('/domain/zone/'+os.environ['OVH_DNS_DOMAIN']+'/record/'+os.environ['OVH_DNS_RECORD_ID'], + subDomain='_dnslink.git-tutorial', + target='dnslink=/ipfs/bafybeigexuwmsjhnitngyacj5ja7nqigddyekkhcsz6ejntrgpwcwtusoy', + ttl=60, + ) + print(json.dumps(result, indent=4)) + + result = client.post('/domain/zone/'+os.environ['OVH_DNS_DOMAIN']+'/refresh') + print(json.dumps(result, indent=4)) diff --git a/.github/workflows/upload-to-ipfs-and-update-dns.yml b/.github/workflows/upload-to-ipfs-and-update-dns.yml new file mode 100644 index 0000000..f31192c --- /dev/null +++ b/.github/workflows/upload-to-ipfs-and-update-dns.yml @@ -0,0 +1,75 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Upload to IPFS + +on: + # Runs on pushes targeting the default branch + push: + branches: ["gh-pages"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: 'recursive' + - name: Install Nix + uses: cachix/install-nix-action@v17 + - name: Build website + run: nix build + - name: Download IPFS + run: ./.github/github_install_ipfs.sh + - name: Print and compare IPFS hahes + run: export PATH="/tmp/kubo:$PATH"; .github/print-and-compare-ipfs.sh + - name: Upload to IPFS + run: PATH="/tmp/kubo:$PATH" ./.github/pin-using-ipfs.sh + continue-on-error: true + env: + IPFS_SWARM_CONNECT_TO: ${{ secrets.IPFS_SWARM_CONNECT_TO }} + IPFS_REMOTE_API_ENDPOINT: ${{ secrets.IPFS_REMOTE_API_ENDPOINT }} + IPFS_REMOTE_TOKEN: ${{ secrets.IPFS_REMOTE_TOKEN }} + - name: Install OVH pip package + run: pip install ovh + - name: Install OVH pip package + run: python ./.github/update-ovh.py >/dev/null 2>&1 + env: + API_OVH_APPLICATION_KEY: ${{ secrets.API_OVH_APPLICATION_KEY }} + API_OVH_APPLICATION_SECRET: ${{ secrets.API_OVH_APPLICATION_SECRET }} + API_OVH_CONSUMER_KEY: ${{ secrets.API_OVH_CONSUMER_KEY }} + API_OVH_ENDPOINT: ${{ secrets.API_OVH_ENDPOINT }} + OVH_DNS_DOMAIN: ${{ secrets.OVH_DNS_DOMAIN }} + OVH_DNS_RECORD_ID: ${{ secrets.OVH_DNS_RECORD_ID }} +# - name: Update homepage URL +# run: PATH="/tmp/kubo:$PATH" ./.github/github_update_homepage.sh +# env: +# API_TOKEN_FOR_UPDATE_HOMEPAGE: ${{ secrets.API_TOKEN_FOR_UPDATE_HOMEPAGE }} +# - name: Setup Pages +# uses: actions/configure-pages@v3 +# - name: Upload artifact +# uses: actions/upload-pages-artifact@v2 +# with: +# # Upload entire repository +# path: 'result/www/' +# - name: Deploy to GitHub Pages +# id: deployment +# uses: actions/deploy-pages@v2 diff --git a/README b/README index 4b2e738..94f7382 100644 --- a/README +++ b/README @@ -4,4 +4,9 @@ pako 2.0.3: https://github.com/nodeca/pako license (MIT AND Zlib) Viz.js v2.1.2: https://github.com/mdaines/viz.js license MIT FileSaver.js: https://github.com/eligrey/FileSaver.js license MIT Blob.js: https://github.com/eligrey/Blob.js license MIT license -JSZip v1.8.2: https://github.com/Stuk/jszip/tree/v2.6.1 license (MIT OR GPLv3) \ No newline at end of file +JSZip v1.8.2: https://github.com/Stuk/jszip/tree/v2.6.1 license (MIT OR GPLv3) + +GitHub depoloyment environment variables: +* IPFS_REMOTE_API_ENDPOINT: one per line +* IPFS_REMOTE_TOKEN: one per line (same order as IPFS_REMOTE_API_ENDPOINT) +* IPFS_SWARM_CONNECT_TO: multiaddr of peers to connect to, to help as intermediaries when connecting to the DHT & pinning services (can be multiaddr of the pinning node itself if known) diff --git a/deploy.sh b/deploy.sh index 666ccea..767ce1e 100755 --- a/deploy.sh +++ b/deploy.sh @@ -27,6 +27,8 @@ diff result/www/directory_hashes.js directory_hashes.js diff result/www/favicon.ico favicon.ico diff result/www/sitemap.html sitemap.html +./.github/print-and-compare-ipfs.sh + # Add to IPFS and get the hash ipfs_hash="$(./result/www/ipfs-add.sh --pin=true)" printf %s\\n "$ipfs_hash" @@ -34,4 +36,8 @@ printf %s\\n "$ipfs_hash" git tag "$1" git tag "ipfs-$1-${ipfs_hash}" -ipfs name publish --key=git-tutorial "/ipfs/$ipfs_hash" \ No newline at end of file +git push origin HEAD:gh-pages +git push origin "$1" +git push origin "ipfs-$1-${ipfs_hash}" + +ipfs name publish --key=git-tutorial "/ipfs/$ipfs_hash" diff --git a/directory_hashes.js b/directory_hashes.js index 64aaa85..b9a20ca 100644 --- a/directory_hashes.js +++ b/directory_hashes.js @@ -1 +1 @@ -jsonp_ipfs_directory_hashes({"vanity_text":"soy","vanity_number":20445,"tree":{"Links":[{"Name":".gitignore","Hash":"QmW9iMXzmPqLSnzL4p6DKsvsL3nC1xKS3teRB4SRdukfrz","Size":16},{"Name":".ipfsignore","Hash":"QmPpQN29FbeaNwGsXbebbv588UZtSLCGRffa3Zrz68RAMp","Size":22},{"Name":".nojekyll","Hash":"QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH","Size":6},{"Name":"Blob.js","Hash":"QmSxKmtcBxBRkmkLGpnXAGrRc16kPrJx5Hmdsvt6LRWeSG","Size":21833},{"Name":"CNAME","Hash":"QmT3mZdxv3tQQGq9mwMmjnhXDaDAnkrcwmh2Hvy8gQhRyr","Size":32},{"Name":"FileSaver.js","Hash":"QmUgg2HLo4W9bpf92CkHH6WWVFfg2DmNqJrz2Z46L7VmUq","Size":7367},{"Name":"JSZip","Hash":"QmWW2hDPrMU5e5KgSAMiqfM2YW5RSiZzWiNJSQ7w63ngiL","Size":422094},{"Name":"README","Hash":"QmPVpTsg2DmVqnCWRVua3vggVAoYLKzZPPgGf5ZQzzVUwf","Size":464},{"Name":"Viz.js","Hash":"QmaxUCu1gnFwTTpDoTAPB3fMQQav1NJZrZ7LGqLXECidKj","Size":3564410},{"Name":"codemirror-5.60.0","Hash":"QmXPbArMAid8MbC5G7HCyWz2PUkfSMWZaUQpnq63x8Dw2y","Size":4669604},{"Name":"deploy.sh","Hash":"QmWr2dfiJX2LjpYnXpetkxmwjWP53eAv6RKNYPEptBUPkz","Size":1144},{"Name":"directory_hashes.js","Hash":"","Size":0},{"Name":"favicon.ico","Hash":"QmUq6pQamF58ZDNpPSvF3C2bcCWEJSjx3dFZZLjkSCrYpi","Size":32052},{"Name":"favicon.svg","Hash":"QmesnKGtStCZGpiTjoAcAETdSZgUUQ3wzekn1LSQMFtbgn","Size":3272},{"Name":"flake.lock","Hash":"QmdkX8PkV6j2sLH1JSPD1z4533rEGTa6JKSfsJcYAGSrvx","Size":1475},{"Name":"flake.nix","Hash":"QmRFLGF9aQ6zm67hLt4S1SKf6aRxxxK3sneiq79TtfA9YF","Size":1549},{"Name":"git-tutorial.css","Hash":"QmdsWg4RVZR3kRA7xFchoWLEQQzLpzVyspTtKwa9qttDMF","Size":10842},{"Name":"git-tutorial.js","Hash":"QmbcAMAuGyFumz4pHtKMnRY2VyRAr2tZoiYBLfNY3p2kCj","Size":47083},{"Name":"index.html","Hash":"QmUFRUWMnogkPtFgbPdffKQ2YVbXATZrwMqyuWF7J597uF","Size":117584},{"Name":"ipfs-add.sh","Hash":"QmXSLYLy13efSFVEN3Ej3A3vyimH618Vrt82hoBKeKYgDB","Size":473},{"Name":"micro_ipfs.js","Hash":"QmeWPj4vzN66eCUwQkjjzTgfciBLBzNjQQdvqEBL8x1pmh","Size":16738},{"Name":"pako","Hash":"QmRtJhu2rJCe59JPS9UiyAja5iUZNmJ8nyBijdZpLLEgG9","Size":178431},{"Name":"sha1.js","Hash":"QmP7HPPYQqwKXYyDrkDm9vKt8FZE1WsDUJG8cLnjFf4a11","Size":7966},{"Name":"sha256.js","Hash":"QmRhgx5Fq4JqfCgsPcMxNSYwt8M9WRBkec9omPWzJ7gdwL","Size":8553},{"Name":"sitemap.html","Hash":"Qmb7AvFhE73oxQWXYTJUWuqXCGkPD4FwMWLPv8BRrAgB9X","Size":70990}],"Data":"\b\u0001"}}); +jsonp_ipfs_directory_hashes({"vanity_text":"soy","vanity_number":2035,"tree":{"Links":[{"Name":".github","Hash":"QmPVN8KzBJhCezPsFbNHfJ38LRJFyWhVwkpGQdWE6nSRh3","Size":9433},{"Name":".gitignore","Hash":"QmW9iMXzmPqLSnzL4p6DKsvsL3nC1xKS3teRB4SRdukfrz","Size":16},{"Name":".ipfsignore","Hash":"QmPpQN29FbeaNwGsXbebbv588UZtSLCGRffa3Zrz68RAMp","Size":22},{"Name":".nojekyll","Hash":"QmbFMke1KXqnYyBBWxB74N4c5SBnJMVAiMNRcGu6x1AwQH","Size":6},{"Name":"Blob.js","Hash":"QmSxKmtcBxBRkmkLGpnXAGrRc16kPrJx5Hmdsvt6LRWeSG","Size":21833},{"Name":"CNAME","Hash":"QmT3mZdxv3tQQGq9mwMmjnhXDaDAnkrcwmh2Hvy8gQhRyr","Size":32},{"Name":"FileSaver.js","Hash":"QmUgg2HLo4W9bpf92CkHH6WWVFfg2DmNqJrz2Z46L7VmUq","Size":7367},{"Name":"JSZip","Hash":"QmWW2hDPrMU5e5KgSAMiqfM2YW5RSiZzWiNJSQ7w63ngiL","Size":422094},{"Name":"README","Hash":"QmVPSdJVXbYuQSN5v3VXqZcYKJuuzvv4ZArg8S7u1MF85F","Size":810},{"Name":"Viz.js","Hash":"QmaxUCu1gnFwTTpDoTAPB3fMQQav1NJZrZ7LGqLXECidKj","Size":3564410},{"Name":"codemirror-5.60.0","Hash":"QmXPbArMAid8MbC5G7HCyWz2PUkfSMWZaUQpnq63x8Dw2y","Size":4669604},{"Name":"deploy.sh","Hash":"QmedckMFRS5rBkuv4DVqHxff11ouWZSitr2SNKvnYot56j","Size":1273},{"Name":"directory_hashes.js","Hash":"","Size":0},{"Name":"favicon.ico","Hash":"QmUq6pQamF58ZDNpPSvF3C2bcCWEJSjx3dFZZLjkSCrYpi","Size":32052},{"Name":"favicon.svg","Hash":"QmesnKGtStCZGpiTjoAcAETdSZgUUQ3wzekn1LSQMFtbgn","Size":3272},{"Name":"flake.lock","Hash":"QmdkX8PkV6j2sLH1JSPD1z4533rEGTa6JKSfsJcYAGSrvx","Size":1475},{"Name":"flake.nix","Hash":"Qmf28V3ScemKqCCq2x7uAYPSikHv9tYbWwo78MsxqvKaZf","Size":1556},{"Name":"git-tutorial.css","Hash":"QmdsWg4RVZR3kRA7xFchoWLEQQzLpzVyspTtKwa9qttDMF","Size":10842},{"Name":"git-tutorial.js","Hash":"QmTpny5DSeUzCULRtYH2YJSgLx57KuYPr2LRR7N2A2K4Qg","Size":47919},{"Name":"index.html","Hash":"QmSAqYiSkbR1xhZU6FLMUFTtfXBNXrbqtYb6hJ78Zq1ibB","Size":118368},{"Name":"ipfs-add.sh","Hash":"QmXSLYLy13efSFVEN3Ej3A3vyimH618Vrt82hoBKeKYgDB","Size":473},{"Name":"micro_ipfs.js","Hash":"QmeWPj4vzN66eCUwQkjjzTgfciBLBzNjQQdvqEBL8x1pmh","Size":16738},{"Name":"pako","Hash":"QmRtJhu2rJCe59JPS9UiyAja5iUZNmJ8nyBijdZpLLEgG9","Size":178431},{"Name":"sha1.js","Hash":"QmP7HPPYQqwKXYyDrkDm9vKt8FZE1WsDUJG8cLnjFf4a11","Size":7966},{"Name":"sha256.js","Hash":"QmRhgx5Fq4JqfCgsPcMxNSYwt8M9WRBkec9omPWzJ7gdwL","Size":8553},{"Name":"sitemap.html","Hash":"QmWgCZfJ7TkX4hpXj71Q1FnZ5ccZeKSik3oXSnXein4XW4","Size":71584}],"Data":"\b\u0001"}}); diff --git a/flake.nix b/flake.nix index c416ee0..4ae1980 100644 --- a/flake.nix +++ b/flake.nix @@ -19,7 +19,7 @@ cd "$out/www"; echo 'Sitemap' # TODO: honor .ipfsignore - find | sed -e 's~.*~\0~' + find | sort | sed -e 's~.*~\0~' echo '' ) > "$out/www/sitemap.html" diff --git a/index.html b/index.html index a19a52e..ee02b20 100644 --- a/index.html +++ b/index.html @@ -5,11 +5,11 @@ GIT tutorial - + - + @@ -52,15 +52,16 @@ function ___example(id, f) {

By for LIGO. .

Please send remarks and suggestions to git-tutorial@suzanne.soy or simply fork this repository on GitHub.

-

This version of the site matches the tag v1.0.2 on GitHub. +

This version of the site matches the tag v1.1.0 on GitHub. Permalinks to snapshots of this site are available via IPFS: - v1.0.2 (this version) [computing URL…], + v1.1.0 (this version) [computing URL…], + v1.0.2 (02023-11-21), v1.0.1 (02023-11-21), v1 (02021-06-29), Alternatively check the latest version via IPNS/IPFS or - latest via HTTPS. + latest via HTTPS. See the Changelog section for errata, and the sitemap for a list of contents.

diff --git a/sitemap.html b/sitemap.html index a8bd661..336ae5b 100644 --- a/sitemap.html +++ b/sitemap.html @@ -1,784 +1,792 @@ Sitemap . -./sha1.js -./sha1.js/sha1.js -./sha1.js/LICENSE -./flake.nix +./.github +./.github/github_install_ipfs.sh +./.github/github_update_homepage.sh +./.github/pin-using-ipfs.sh +./.github/print-and-compare-ipfs.sh +./.github/update-ovh.py +./.github/workflows +./.github/workflows/upload-to-ipfs-and-update-dns.yml +./.gitignore +./.ipfsignore +./.nojekyll ./Blob.js ./Blob.js/Blob.js ./Blob.js/LICENSE.md -./deploy.sh -./flake.lock ./CNAME -./ipfs-add.sh -./sha256.js +./FileSaver.js +./FileSaver.js/FileSaver.js +./FileSaver.js/LICENSE.md ./JSZip -./JSZip/jszip.min.js ./JSZip/LICENSE.markdown ./JSZip/jszip.js -./.gitignore -./git-tutorial.css -./git-tutorial.js +./JSZip/jszip.min.js +./README +./Viz.js +./Viz.js/LICENSE +./Viz.js/viz-lite.js +./Viz.js/viz.js ./codemirror-5.60.0 -./codemirror-5.60.0/demo -./codemirror-5.60.0/demo/changemode.html -./codemirror-5.60.0/demo/visibletabs.html -./codemirror-5.60.0/demo/activeline.html -./codemirror-5.60.0/demo/tern.html -./codemirror-5.60.0/demo/html5complete.html -./codemirror-5.60.0/demo/simplemode.html -./codemirror-5.60.0/demo/marker.html -./codemirror-5.60.0/demo/resize.html -./codemirror-5.60.0/demo/closetag.html -./codemirror-5.60.0/demo/panel.html -./codemirror-5.60.0/demo/btree.html -./codemirror-5.60.0/demo/fullscreen.html -./codemirror-5.60.0/demo/simplescrollbars.html -./codemirror-5.60.0/demo/lint.html -./codemirror-5.60.0/demo/emacs.html -./codemirror-5.60.0/demo/rulers.html -./codemirror-5.60.0/demo/matchtags.html -./codemirror-5.60.0/demo/search.html -./codemirror-5.60.0/demo/trailingspace.html -./codemirror-5.60.0/demo/complete.html -./codemirror-5.60.0/demo/markselection.html -./codemirror-5.60.0/demo/indentwrap.html -./codemirror-5.60.0/demo/hardwrap.html -./codemirror-5.60.0/demo/xmlcomplete.html -./codemirror-5.60.0/demo/folding.html -./codemirror-5.60.0/demo/closebrackets.html -./codemirror-5.60.0/demo/multiplex.html -./codemirror-5.60.0/demo/bidi.html -./codemirror-5.60.0/demo/sublime.html -./codemirror-5.60.0/demo/anywordhint.html -./codemirror-5.60.0/demo/mustache.html -./codemirror-5.60.0/demo/runmode-standalone.html -./codemirror-5.60.0/demo/placeholder.html -./codemirror-5.60.0/demo/requirejs.html -./codemirror-5.60.0/demo/merge.html -./codemirror-5.60.0/demo/runmode.html -./codemirror-5.60.0/demo/matchhighlighter.html -./codemirror-5.60.0/demo/vim.html -./codemirror-5.60.0/demo/spanaffectswrapping_shim.html -./codemirror-5.60.0/demo/widget.html -./codemirror-5.60.0/demo/buffers.html -./codemirror-5.60.0/demo/loadmode.html -./codemirror-5.60.0/demo/variableheight.html -./codemirror-5.60.0/demo/theme.html -./codemirror-5.60.0/demo/preview.html -./codemirror-5.60.0/lib -./codemirror-5.60.0/lib/codemirror.js -./codemirror-5.60.0/lib/codemirror.css -./codemirror-5.60.0/src -./codemirror-5.60.0/src/modes.js -./codemirror-5.60.0/src/line -./codemirror-5.60.0/src/line/highlight.js -./codemirror-5.60.0/src/line/utils_line.js -./codemirror-5.60.0/src/line/saw_special_spans.js -./codemirror-5.60.0/src/line/spans.js -./codemirror-5.60.0/src/line/pos.js -./codemirror-5.60.0/src/line/line_data.js -./codemirror-5.60.0/src/model -./codemirror-5.60.0/src/model/history.js -./codemirror-5.60.0/src/model/mark_text.js -./codemirror-5.60.0/src/model/document_data.js -./codemirror-5.60.0/src/model/chunk.js -./codemirror-5.60.0/src/model/change_measurement.js -./codemirror-5.60.0/src/model/line_widget.js -./codemirror-5.60.0/src/model/changes.js -./codemirror-5.60.0/src/model/selection.js -./codemirror-5.60.0/src/model/selection_updates.js -./codemirror-5.60.0/src/model/Doc.js -./codemirror-5.60.0/src/edit -./codemirror-5.60.0/src/edit/commands.js -./codemirror-5.60.0/src/edit/legacy.js -./codemirror-5.60.0/src/edit/options.js -./codemirror-5.60.0/src/edit/deleteNearSelection.js -./codemirror-5.60.0/src/edit/drop_events.js -./codemirror-5.60.0/src/edit/methods.js -./codemirror-5.60.0/src/edit/key_events.js -./codemirror-5.60.0/src/edit/global_events.js -./codemirror-5.60.0/src/edit/mouse_events.js -./codemirror-5.60.0/src/edit/main.js -./codemirror-5.60.0/src/edit/fromTextArea.js -./codemirror-5.60.0/src/edit/utils.js -./codemirror-5.60.0/src/edit/CodeMirror.js -./codemirror-5.60.0/src/input -./codemirror-5.60.0/src/input/movement.js -./codemirror-5.60.0/src/input/ContentEditableInput.js -./codemirror-5.60.0/src/input/indent.js -./codemirror-5.60.0/src/input/keynames.js -./codemirror-5.60.0/src/input/keymap.js -./codemirror-5.60.0/src/input/input.js -./codemirror-5.60.0/src/input/TextareaInput.js -./codemirror-5.60.0/src/codemirror.js -./codemirror-5.60.0/src/util -./codemirror-5.60.0/src/util/bidi.js -./codemirror-5.60.0/src/util/feature_detection.js -./codemirror-5.60.0/src/util/StringStream.js -./codemirror-5.60.0/src/util/operation_group.js -./codemirror-5.60.0/src/util/event.js -./codemirror-5.60.0/src/util/browser.js -./codemirror-5.60.0/src/util/misc.js -./codemirror-5.60.0/src/util/dom.js -./codemirror-5.60.0/src/measurement -./codemirror-5.60.0/src/measurement/widgets.js -./codemirror-5.60.0/src/measurement/position_measurement.js -./codemirror-5.60.0/src/addon -./codemirror-5.60.0/src/addon/runmode -./codemirror-5.60.0/src/addon/runmode/codemirror-standalone.js -./codemirror-5.60.0/src/addon/runmode/codemirror.node.js -./codemirror-5.60.0/src/addon/runmode/runmode.node.js -./codemirror-5.60.0/src/addon/runmode/runmode-standalone.js -./codemirror-5.60.0/src/display -./codemirror-5.60.0/src/display/view_tracking.js -./codemirror-5.60.0/src/display/mode_state.js -./codemirror-5.60.0/src/display/highlight_worker.js -./codemirror-5.60.0/src/display/gutters.js -./codemirror-5.60.0/src/display/Display.js -./codemirror-5.60.0/src/display/update_line.js -./codemirror-5.60.0/src/display/update_display.js -./codemirror-5.60.0/src/display/focus.js -./codemirror-5.60.0/src/display/line_numbers.js -./codemirror-5.60.0/src/display/scrolling.js -./codemirror-5.60.0/src/display/scrollbars.js -./codemirror-5.60.0/src/display/selection.js -./codemirror-5.60.0/src/display/operations.js -./codemirror-5.60.0/src/display/update_lines.js -./codemirror-5.60.0/src/display/scroll_events.js +./codemirror-5.60.0/.editorconfig +./codemirror-5.60.0/.gitattributes +./codemirror-5.60.0/.npmignore +./codemirror-5.60.0/.travis.yml +./codemirror-5.60.0/AUTHORS ./codemirror-5.60.0/CHANGELOG.md +./codemirror-5.60.0/CONTRIBUTING.md +./codemirror-5.60.0/LICENSE +./codemirror-5.60.0/README.md +./codemirror-5.60.0/addon +./codemirror-5.60.0/addon/comment +./codemirror-5.60.0/addon/comment/comment.js +./codemirror-5.60.0/addon/comment/continuecomment.js +./codemirror-5.60.0/addon/dialog +./codemirror-5.60.0/addon/dialog/dialog.css +./codemirror-5.60.0/addon/dialog/dialog.js +./codemirror-5.60.0/addon/display +./codemirror-5.60.0/addon/display/autorefresh.js +./codemirror-5.60.0/addon/display/fullscreen.css +./codemirror-5.60.0/addon/display/fullscreen.js +./codemirror-5.60.0/addon/display/panel.js +./codemirror-5.60.0/addon/display/placeholder.js +./codemirror-5.60.0/addon/display/rulers.js +./codemirror-5.60.0/addon/edit +./codemirror-5.60.0/addon/edit/closebrackets.js +./codemirror-5.60.0/addon/edit/closetag.js +./codemirror-5.60.0/addon/edit/continuelist.js +./codemirror-5.60.0/addon/edit/matchbrackets.js +./codemirror-5.60.0/addon/edit/matchtags.js +./codemirror-5.60.0/addon/edit/trailingspace.js +./codemirror-5.60.0/addon/fold +./codemirror-5.60.0/addon/fold/brace-fold.js +./codemirror-5.60.0/addon/fold/comment-fold.js +./codemirror-5.60.0/addon/fold/foldcode.js +./codemirror-5.60.0/addon/fold/foldgutter.css +./codemirror-5.60.0/addon/fold/foldgutter.js +./codemirror-5.60.0/addon/fold/indent-fold.js +./codemirror-5.60.0/addon/fold/markdown-fold.js +./codemirror-5.60.0/addon/fold/xml-fold.js +./codemirror-5.60.0/addon/hint +./codemirror-5.60.0/addon/hint/anyword-hint.js +./codemirror-5.60.0/addon/hint/css-hint.js +./codemirror-5.60.0/addon/hint/html-hint.js +./codemirror-5.60.0/addon/hint/javascript-hint.js +./codemirror-5.60.0/addon/hint/show-hint.css +./codemirror-5.60.0/addon/hint/show-hint.js +./codemirror-5.60.0/addon/hint/sql-hint.js +./codemirror-5.60.0/addon/hint/xml-hint.js +./codemirror-5.60.0/addon/lint +./codemirror-5.60.0/addon/lint/coffeescript-lint.js +./codemirror-5.60.0/addon/lint/css-lint.js +./codemirror-5.60.0/addon/lint/html-lint.js +./codemirror-5.60.0/addon/lint/javascript-lint.js +./codemirror-5.60.0/addon/lint/json-lint.js +./codemirror-5.60.0/addon/lint/lint.css +./codemirror-5.60.0/addon/lint/lint.js +./codemirror-5.60.0/addon/lint/yaml-lint.js +./codemirror-5.60.0/addon/merge +./codemirror-5.60.0/addon/merge/merge.css +./codemirror-5.60.0/addon/merge/merge.js +./codemirror-5.60.0/addon/mode +./codemirror-5.60.0/addon/mode/loadmode.js +./codemirror-5.60.0/addon/mode/multiplex.js +./codemirror-5.60.0/addon/mode/multiplex_test.js +./codemirror-5.60.0/addon/mode/overlay.js +./codemirror-5.60.0/addon/mode/simple.js +./codemirror-5.60.0/addon/runmode +./codemirror-5.60.0/addon/runmode/colorize.js +./codemirror-5.60.0/addon/runmode/runmode-standalone.js +./codemirror-5.60.0/addon/runmode/runmode.js +./codemirror-5.60.0/addon/runmode/runmode.node.js +./codemirror-5.60.0/addon/scroll +./codemirror-5.60.0/addon/scroll/annotatescrollbar.js +./codemirror-5.60.0/addon/scroll/scrollpastend.js +./codemirror-5.60.0/addon/scroll/simplescrollbars.css +./codemirror-5.60.0/addon/scroll/simplescrollbars.js +./codemirror-5.60.0/addon/search +./codemirror-5.60.0/addon/search/jump-to-line.js +./codemirror-5.60.0/addon/search/match-highlighter.js +./codemirror-5.60.0/addon/search/matchesonscrollbar.css +./codemirror-5.60.0/addon/search/matchesonscrollbar.js +./codemirror-5.60.0/addon/search/search.js +./codemirror-5.60.0/addon/search/searchcursor.js +./codemirror-5.60.0/addon/selection +./codemirror-5.60.0/addon/selection/active-line.js +./codemirror-5.60.0/addon/selection/mark-selection.js +./codemirror-5.60.0/addon/selection/selection-pointer.js +./codemirror-5.60.0/addon/tern +./codemirror-5.60.0/addon/tern/tern.css +./codemirror-5.60.0/addon/tern/tern.js +./codemirror-5.60.0/addon/tern/worker.js +./codemirror-5.60.0/addon/wrap +./codemirror-5.60.0/addon/wrap/hardwrap.js +./codemirror-5.60.0/bin +./codemirror-5.60.0/bin/authors.sh +./codemirror-5.60.0/bin/lint +./codemirror-5.60.0/bin/release +./codemirror-5.60.0/bin/source-highlight +./codemirror-5.60.0/bin/upload-release.js +./codemirror-5.60.0/demo +./codemirror-5.60.0/demo/activeline.html +./codemirror-5.60.0/demo/anywordhint.html +./codemirror-5.60.0/demo/bidi.html +./codemirror-5.60.0/demo/btree.html +./codemirror-5.60.0/demo/buffers.html +./codemirror-5.60.0/demo/changemode.html +./codemirror-5.60.0/demo/closebrackets.html +./codemirror-5.60.0/demo/closetag.html +./codemirror-5.60.0/demo/complete.html +./codemirror-5.60.0/demo/emacs.html +./codemirror-5.60.0/demo/folding.html +./codemirror-5.60.0/demo/fullscreen.html +./codemirror-5.60.0/demo/hardwrap.html +./codemirror-5.60.0/demo/html5complete.html +./codemirror-5.60.0/demo/indentwrap.html +./codemirror-5.60.0/demo/lint.html +./codemirror-5.60.0/demo/loadmode.html +./codemirror-5.60.0/demo/marker.html +./codemirror-5.60.0/demo/markselection.html +./codemirror-5.60.0/demo/matchhighlighter.html +./codemirror-5.60.0/demo/matchtags.html +./codemirror-5.60.0/demo/merge.html +./codemirror-5.60.0/demo/multiplex.html +./codemirror-5.60.0/demo/mustache.html +./codemirror-5.60.0/demo/panel.html +./codemirror-5.60.0/demo/placeholder.html +./codemirror-5.60.0/demo/preview.html +./codemirror-5.60.0/demo/requirejs.html +./codemirror-5.60.0/demo/resize.html +./codemirror-5.60.0/demo/rulers.html +./codemirror-5.60.0/demo/runmode-standalone.html +./codemirror-5.60.0/demo/runmode.html +./codemirror-5.60.0/demo/search.html +./codemirror-5.60.0/demo/simplemode.html +./codemirror-5.60.0/demo/simplescrollbars.html +./codemirror-5.60.0/demo/spanaffectswrapping_shim.html +./codemirror-5.60.0/demo/sublime.html +./codemirror-5.60.0/demo/tern.html +./codemirror-5.60.0/demo/theme.html +./codemirror-5.60.0/demo/trailingspace.html +./codemirror-5.60.0/demo/variableheight.html +./codemirror-5.60.0/demo/vim.html +./codemirror-5.60.0/demo/visibletabs.html +./codemirror-5.60.0/demo/widget.html +./codemirror-5.60.0/demo/xmlcomplete.html ./codemirror-5.60.0/doc ./codemirror-5.60.0/doc/activebookmark.js -./codemirror-5.60.0/doc/manual.html -./codemirror-5.60.0/doc/releases.html ./codemirror-5.60.0/doc/docs.css -./codemirror-5.60.0/doc/realworld.html ./codemirror-5.60.0/doc/internals.html ./codemirror-5.60.0/doc/logo.png -./codemirror-5.60.0/doc/yinyang.png -./codemirror-5.60.0/doc/upgrade_v4.html +./codemirror-5.60.0/doc/logo.svg +./codemirror-5.60.0/doc/manual.html +./codemirror-5.60.0/doc/realworld.html +./codemirror-5.60.0/doc/releases.html ./codemirror-5.60.0/doc/reporting.html ./codemirror-5.60.0/doc/upgrade_v2.2.html -./codemirror-5.60.0/doc/logo.svg ./codemirror-5.60.0/doc/upgrade_v3.html -./codemirror-5.60.0/.npmignore -./codemirror-5.60.0/test -./codemirror-5.60.0/test/driver.js -./codemirror-5.60.0/test/multi_test.js -./codemirror-5.60.0/test/sql-hint-test.js -./codemirror-5.60.0/test/scroll_test.js -./codemirror-5.60.0/test/doc_test.js -./codemirror-5.60.0/test/emacs_test.js -./codemirror-5.60.0/test/lint.js -./codemirror-5.60.0/test/comment_test.js -./codemirror-5.60.0/test/contenteditable_test.js -./codemirror-5.60.0/test/mode_test.css -./codemirror-5.60.0/test/vim_test.js -./codemirror-5.60.0/test/index.html -./codemirror-5.60.0/test/sublime_test.js -./codemirror-5.60.0/test/html-hint-test.js -./codemirror-5.60.0/test/annotatescrollbar.js -./codemirror-5.60.0/test/search_test.js -./codemirror-5.60.0/test/mode_test.js -./codemirror-5.60.0/test/test.js -./codemirror-5.60.0/test/run.js -./codemirror-5.60.0/CONTRIBUTING.md +./codemirror-5.60.0/doc/upgrade_v4.html +./codemirror-5.60.0/doc/yinyang.png +./codemirror-5.60.0/index.html +./codemirror-5.60.0/keymap +./codemirror-5.60.0/keymap/emacs.js +./codemirror-5.60.0/keymap/sublime.js +./codemirror-5.60.0/keymap/vim.js +./codemirror-5.60.0/lib +./codemirror-5.60.0/lib/codemirror.css +./codemirror-5.60.0/lib/codemirror.js ./codemirror-5.60.0/mode -./codemirror-5.60.0/mode/clojure -./codemirror-5.60.0/mode/clojure/clojure.js -./codemirror-5.60.0/mode/clojure/index.html -./codemirror-5.60.0/mode/clojure/test.js -./codemirror-5.60.0/mode/soy -./codemirror-5.60.0/mode/soy/index.html -./codemirror-5.60.0/mode/soy/soy.js -./codemirror-5.60.0/mode/soy/test.js -./codemirror-5.60.0/mode/sass -./codemirror-5.60.0/mode/sass/index.html -./codemirror-5.60.0/mode/sass/sass.js -./codemirror-5.60.0/mode/sass/test.js -./codemirror-5.60.0/mode/ttcn-cfg -./codemirror-5.60.0/mode/ttcn-cfg/index.html -./codemirror-5.60.0/mode/ttcn-cfg/ttcn-cfg.js -./codemirror-5.60.0/mode/protobuf -./codemirror-5.60.0/mode/protobuf/index.html -./codemirror-5.60.0/mode/protobuf/protobuf.js -./codemirror-5.60.0/mode/solr -./codemirror-5.60.0/mode/solr/index.html -./codemirror-5.60.0/mode/solr/solr.js -./codemirror-5.60.0/mode/ecl -./codemirror-5.60.0/mode/ecl/ecl.js -./codemirror-5.60.0/mode/ecl/index.html -./codemirror-5.60.0/mode/perl -./codemirror-5.60.0/mode/perl/index.html -./codemirror-5.60.0/mode/perl/perl.js -./codemirror-5.60.0/mode/handlebars -./codemirror-5.60.0/mode/handlebars/index.html -./codemirror-5.60.0/mode/handlebars/handlebars.js -./codemirror-5.60.0/mode/javascript -./codemirror-5.60.0/mode/javascript/index.html -./codemirror-5.60.0/mode/javascript/typescript.html -./codemirror-5.60.0/mode/javascript/javascript.js -./codemirror-5.60.0/mode/javascript/test.js -./codemirror-5.60.0/mode/javascript/json-ld.html -./codemirror-5.60.0/mode/puppet -./codemirror-5.60.0/mode/puppet/index.html -./codemirror-5.60.0/mode/puppet/puppet.js -./codemirror-5.60.0/mode/stex -./codemirror-5.60.0/mode/stex/stex.js -./codemirror-5.60.0/mode/stex/index.html -./codemirror-5.60.0/mode/stex/test.js -./codemirror-5.60.0/mode/octave -./codemirror-5.60.0/mode/octave/octave.js -./codemirror-5.60.0/mode/octave/index.html -./codemirror-5.60.0/mode/vbscript -./codemirror-5.60.0/mode/vbscript/vbscript.js -./codemirror-5.60.0/mode/vbscript/index.html -./codemirror-5.60.0/mode/textile -./codemirror-5.60.0/mode/textile/textile.js -./codemirror-5.60.0/mode/textile/index.html -./codemirror-5.60.0/mode/textile/test.js -./codemirror-5.60.0/mode/commonlisp -./codemirror-5.60.0/mode/commonlisp/commonlisp.js -./codemirror-5.60.0/mode/commonlisp/index.html -./codemirror-5.60.0/mode/cmake -./codemirror-5.60.0/mode/cmake/index.html -./codemirror-5.60.0/mode/cmake/cmake.js -./codemirror-5.60.0/mode/swift -./codemirror-5.60.0/mode/swift/swift.js -./codemirror-5.60.0/mode/swift/index.html -./codemirror-5.60.0/mode/swift/test.js -./codemirror-5.60.0/mode/r -./codemirror-5.60.0/mode/r/r.js -./codemirror-5.60.0/mode/r/index.html -./codemirror-5.60.0/mode/verilog -./codemirror-5.60.0/mode/verilog/index.html -./codemirror-5.60.0/mode/verilog/verilog.js -./codemirror-5.60.0/mode/verilog/test.js -./codemirror-5.60.0/mode/vhdl -./codemirror-5.60.0/mode/vhdl/index.html -./codemirror-5.60.0/mode/vhdl/vhdl.js -./codemirror-5.60.0/mode/mumps -./codemirror-5.60.0/mode/mumps/mumps.js -./codemirror-5.60.0/mode/mumps/index.html -./codemirror-5.60.0/mode/dylan -./codemirror-5.60.0/mode/dylan/index.html -./codemirror-5.60.0/mode/dylan/test.js -./codemirror-5.60.0/mode/dylan/dylan.js -./codemirror-5.60.0/mode/pig -./codemirror-5.60.0/mode/pig/pig.js -./codemirror-5.60.0/mode/pig/index.html -./codemirror-5.60.0/mode/sas -./codemirror-5.60.0/mode/sas/sas.js -./codemirror-5.60.0/mode/sas/index.html -./codemirror-5.60.0/mode/groovy -./codemirror-5.60.0/mode/groovy/groovy.js -./codemirror-5.60.0/mode/groovy/index.html -./codemirror-5.60.0/mode/ntriples -./codemirror-5.60.0/mode/ntriples/ntriples.js -./codemirror-5.60.0/mode/ntriples/index.html -./codemirror-5.60.0/mode/properties -./codemirror-5.60.0/mode/properties/index.html -./codemirror-5.60.0/mode/properties/properties.js -./codemirror-5.60.0/mode/vb -./codemirror-5.60.0/mode/vb/index.html -./codemirror-5.60.0/mode/vb/vb.js -./codemirror-5.60.0/mode/ruby -./codemirror-5.60.0/mode/ruby/index.html -./codemirror-5.60.0/mode/ruby/ruby.js -./codemirror-5.60.0/mode/ruby/test.js -./codemirror-5.60.0/mode/slim -./codemirror-5.60.0/mode/slim/index.html -./codemirror-5.60.0/mode/slim/slim.js -./codemirror-5.60.0/mode/slim/test.js +./codemirror-5.60.0/mode/apl +./codemirror-5.60.0/mode/apl/apl.js +./codemirror-5.60.0/mode/apl/index.html ./codemirror-5.60.0/mode/asciiarmor -./codemirror-5.60.0/mode/asciiarmor/index.html ./codemirror-5.60.0/mode/asciiarmor/asciiarmor.js -./codemirror-5.60.0/mode/yaml -./codemirror-5.60.0/mode/yaml/index.html -./codemirror-5.60.0/mode/yaml/yaml.js +./codemirror-5.60.0/mode/asciiarmor/index.html +./codemirror-5.60.0/mode/asn.1 +./codemirror-5.60.0/mode/asn.1/asn.1.js +./codemirror-5.60.0/mode/asn.1/index.html +./codemirror-5.60.0/mode/asterisk +./codemirror-5.60.0/mode/asterisk/asterisk.js +./codemirror-5.60.0/mode/asterisk/index.html +./codemirror-5.60.0/mode/brainfuck +./codemirror-5.60.0/mode/brainfuck/brainfuck.js +./codemirror-5.60.0/mode/brainfuck/index.html ./codemirror-5.60.0/mode/clike ./codemirror-5.60.0/mode/clike/clike.js ./codemirror-5.60.0/mode/clike/index.html ./codemirror-5.60.0/mode/clike/scala.html ./codemirror-5.60.0/mode/clike/test.js -./codemirror-5.60.0/mode/htmlmixed -./codemirror-5.60.0/mode/htmlmixed/htmlmixed.js -./codemirror-5.60.0/mode/htmlmixed/index.html -./codemirror-5.60.0/mode/scheme -./codemirror-5.60.0/mode/scheme/scheme.js -./codemirror-5.60.0/mode/scheme/index.html -./codemirror-5.60.0/mode/sql -./codemirror-5.60.0/mode/sql/sql.js -./codemirror-5.60.0/mode/sql/index.html -./codemirror-5.60.0/mode/http -./codemirror-5.60.0/mode/http/http.js -./codemirror-5.60.0/mode/http/index.html -./codemirror-5.60.0/mode/julia -./codemirror-5.60.0/mode/julia/index.html -./codemirror-5.60.0/mode/julia/julia.js -./codemirror-5.60.0/mode/pascal -./codemirror-5.60.0/mode/pascal/index.html -./codemirror-5.60.0/mode/pascal/pascal.js -./codemirror-5.60.0/mode/wast -./codemirror-5.60.0/mode/wast/wast.js -./codemirror-5.60.0/mode/wast/index.html -./codemirror-5.60.0/mode/wast/test.js -./codemirror-5.60.0/mode/django -./codemirror-5.60.0/mode/django/django.js -./codemirror-5.60.0/mode/django/index.html -./codemirror-5.60.0/mode/haskell-literate -./codemirror-5.60.0/mode/haskell-literate/haskell-literate.js -./codemirror-5.60.0/mode/haskell-literate/index.html -./codemirror-5.60.0/mode/sieve -./codemirror-5.60.0/mode/sieve/index.html -./codemirror-5.60.0/mode/sieve/sieve.js -./codemirror-5.60.0/mode/xquery -./codemirror-5.60.0/mode/xquery/index.html -./codemirror-5.60.0/mode/xquery/test.js -./codemirror-5.60.0/mode/xquery/xquery.js -./codemirror-5.60.0/mode/rust -./codemirror-5.60.0/mode/rust/rust.js -./codemirror-5.60.0/mode/rust/index.html -./codemirror-5.60.0/mode/rust/test.js -./codemirror-5.60.0/mode/vue -./codemirror-5.60.0/mode/vue/vue.js -./codemirror-5.60.0/mode/vue/index.html -./codemirror-5.60.0/mode/mscgen -./codemirror-5.60.0/mode/mscgen/mscgen_test.js -./codemirror-5.60.0/mode/mscgen/mscgen.js -./codemirror-5.60.0/mode/mscgen/xu_test.js -./codemirror-5.60.0/mode/mscgen/msgenny_test.js -./codemirror-5.60.0/mode/mscgen/index.html -./codemirror-5.60.0/mode/lua -./codemirror-5.60.0/mode/lua/index.html -./codemirror-5.60.0/mode/lua/lua.js -./codemirror-5.60.0/mode/stylus -./codemirror-5.60.0/mode/stylus/stylus.js -./codemirror-5.60.0/mode/stylus/index.html -./codemirror-5.60.0/mode/ebnf -./codemirror-5.60.0/mode/ebnf/index.html -./codemirror-5.60.0/mode/ebnf/ebnf.js -./codemirror-5.60.0/mode/elm -./codemirror-5.60.0/mode/elm/elm.js -./codemirror-5.60.0/mode/elm/index.html -./codemirror-5.60.0/mode/oz -./codemirror-5.60.0/mode/oz/oz.js -./codemirror-5.60.0/mode/oz/index.html -./codemirror-5.60.0/mode/idl -./codemirror-5.60.0/mode/idl/idl.js -./codemirror-5.60.0/mode/idl/index.html -./codemirror-5.60.0/mode/jsx -./codemirror-5.60.0/mode/jsx/index.html -./codemirror-5.60.0/mode/jsx/jsx.js -./codemirror-5.60.0/mode/jsx/test.js +./codemirror-5.60.0/mode/clojure +./codemirror-5.60.0/mode/clojure/clojure.js +./codemirror-5.60.0/mode/clojure/index.html +./codemirror-5.60.0/mode/clojure/test.js +./codemirror-5.60.0/mode/cmake +./codemirror-5.60.0/mode/cmake/cmake.js +./codemirror-5.60.0/mode/cmake/index.html +./codemirror-5.60.0/mode/cobol +./codemirror-5.60.0/mode/cobol/cobol.js +./codemirror-5.60.0/mode/cobol/index.html +./codemirror-5.60.0/mode/coffeescript +./codemirror-5.60.0/mode/coffeescript/coffeescript.js +./codemirror-5.60.0/mode/coffeescript/index.html +./codemirror-5.60.0/mode/commonlisp +./codemirror-5.60.0/mode/commonlisp/commonlisp.js +./codemirror-5.60.0/mode/commonlisp/index.html +./codemirror-5.60.0/mode/crystal +./codemirror-5.60.0/mode/crystal/crystal.js +./codemirror-5.60.0/mode/crystal/index.html +./codemirror-5.60.0/mode/css +./codemirror-5.60.0/mode/css/css.js +./codemirror-5.60.0/mode/css/gss.html +./codemirror-5.60.0/mode/css/gss_test.js +./codemirror-5.60.0/mode/css/index.html +./codemirror-5.60.0/mode/css/less.html +./codemirror-5.60.0/mode/css/less_test.js +./codemirror-5.60.0/mode/css/scss.html +./codemirror-5.60.0/mode/css/scss_test.js +./codemirror-5.60.0/mode/css/test.js +./codemirror-5.60.0/mode/cypher +./codemirror-5.60.0/mode/cypher/cypher.js +./codemirror-5.60.0/mode/cypher/index.html +./codemirror-5.60.0/mode/cypher/test.js ./codemirror-5.60.0/mode/d ./codemirror-5.60.0/mode/d/d.js ./codemirror-5.60.0/mode/d/index.html ./codemirror-5.60.0/mode/d/test.js -./codemirror-5.60.0/mode/htmlembedded -./codemirror-5.60.0/mode/htmlembedded/htmlembedded.js -./codemirror-5.60.0/mode/htmlembedded/index.html -./codemirror-5.60.0/mode/toml -./codemirror-5.60.0/mode/toml/index.html -./codemirror-5.60.0/mode/toml/toml.js -./codemirror-5.60.0/mode/asn.1 -./codemirror-5.60.0/mode/asn.1/index.html -./codemirror-5.60.0/mode/asn.1/asn.1.js -./codemirror-5.60.0/mode/haxe -./codemirror-5.60.0/mode/haxe/haxe.js -./codemirror-5.60.0/mode/haxe/index.html -./codemirror-5.60.0/mode/twig -./codemirror-5.60.0/mode/twig/index.html -./codemirror-5.60.0/mode/twig/twig.js -./codemirror-5.60.0/mode/index.html -./codemirror-5.60.0/mode/ttcn -./codemirror-5.60.0/mode/ttcn/ttcn.js -./codemirror-5.60.0/mode/ttcn/index.html -./codemirror-5.60.0/mode/python -./codemirror-5.60.0/mode/python/index.html -./codemirror-5.60.0/mode/python/python.js -./codemirror-5.60.0/mode/python/test.js -./codemirror-5.60.0/mode/tiki -./codemirror-5.60.0/mode/tiki/tiki.js -./codemirror-5.60.0/mode/tiki/index.html -./codemirror-5.60.0/mode/tiki/tiki.css -./codemirror-5.60.0/mode/factor -./codemirror-5.60.0/mode/factor/index.html -./codemirror-5.60.0/mode/factor/factor.js -./codemirror-5.60.0/mode/forth -./codemirror-5.60.0/mode/forth/index.html -./codemirror-5.60.0/mode/forth/forth.js -./codemirror-5.60.0/mode/z80 -./codemirror-5.60.0/mode/z80/index.html -./codemirror-5.60.0/mode/z80/z80.js -./codemirror-5.60.0/mode/mllike -./codemirror-5.60.0/mode/mllike/index.html -./codemirror-5.60.0/mode/mllike/mllike.js -./codemirror-5.60.0/mode/tcl -./codemirror-5.60.0/mode/tcl/index.html -./codemirror-5.60.0/mode/tcl/tcl.js -./codemirror-5.60.0/mode/dtd -./codemirror-5.60.0/mode/dtd/dtd.js -./codemirror-5.60.0/mode/dtd/index.html -./codemirror-5.60.0/mode/crystal -./codemirror-5.60.0/mode/crystal/crystal.js -./codemirror-5.60.0/mode/crystal/index.html -./codemirror-5.60.0/mode/coffeescript -./codemirror-5.60.0/mode/coffeescript/index.html -./codemirror-5.60.0/mode/coffeescript/coffeescript.js -./codemirror-5.60.0/mode/sparql -./codemirror-5.60.0/mode/sparql/index.html -./codemirror-5.60.0/mode/sparql/sparql.js -./codemirror-5.60.0/mode/mbox -./codemirror-5.60.0/mode/mbox/index.html -./codemirror-5.60.0/mode/mbox/mbox.js -./codemirror-5.60.0/mode/q -./codemirror-5.60.0/mode/q/q.js -./codemirror-5.60.0/mode/q/index.html -./codemirror-5.60.0/mode/mirc -./codemirror-5.60.0/mode/mirc/mirc.js -./codemirror-5.60.0/mode/mirc/index.html -./codemirror-5.60.0/mode/powershell -./codemirror-5.60.0/mode/powershell/index.html -./codemirror-5.60.0/mode/powershell/test.js -./codemirror-5.60.0/mode/powershell/powershell.js -./codemirror-5.60.0/mode/meta.js +./codemirror-5.60.0/mode/dart +./codemirror-5.60.0/mode/dart/dart.js +./codemirror-5.60.0/mode/dart/index.html ./codemirror-5.60.0/mode/diff -./codemirror-5.60.0/mode/diff/index.html ./codemirror-5.60.0/mode/diff/diff.js -./codemirror-5.60.0/mode/haskell -./codemirror-5.60.0/mode/haskell/index.html -./codemirror-5.60.0/mode/haskell/haskell.js -./codemirror-5.60.0/mode/spreadsheet -./codemirror-5.60.0/mode/spreadsheet/index.html -./codemirror-5.60.0/mode/spreadsheet/spreadsheet.js -./codemirror-5.60.0/mode/rpm -./codemirror-5.60.0/mode/rpm/index.html -./codemirror-5.60.0/mode/rpm/changes -./codemirror-5.60.0/mode/rpm/changes/index.html -./codemirror-5.60.0/mode/rpm/rpm.js -./codemirror-5.60.0/mode/eiffel -./codemirror-5.60.0/mode/eiffel/index.html -./codemirror-5.60.0/mode/eiffel/eiffel.js -./codemirror-5.60.0/mode/erlang -./codemirror-5.60.0/mode/erlang/index.html -./codemirror-5.60.0/mode/erlang/erlang.js -./codemirror-5.60.0/mode/pug -./codemirror-5.60.0/mode/pug/index.html -./codemirror-5.60.0/mode/pug/pug.js -./codemirror-5.60.0/mode/cobol -./codemirror-5.60.0/mode/cobol/index.html -./codemirror-5.60.0/mode/cobol/cobol.js +./codemirror-5.60.0/mode/diff/index.html +./codemirror-5.60.0/mode/django +./codemirror-5.60.0/mode/django/django.js +./codemirror-5.60.0/mode/django/index.html ./codemirror-5.60.0/mode/dockerfile ./codemirror-5.60.0/mode/dockerfile/dockerfile.js ./codemirror-5.60.0/mode/dockerfile/index.html ./codemirror-5.60.0/mode/dockerfile/test.js -./codemirror-5.60.0/mode/modelica -./codemirror-5.60.0/mode/modelica/index.html -./codemirror-5.60.0/mode/modelica/modelica.js +./codemirror-5.60.0/mode/dtd +./codemirror-5.60.0/mode/dtd/dtd.js +./codemirror-5.60.0/mode/dtd/index.html +./codemirror-5.60.0/mode/dylan +./codemirror-5.60.0/mode/dylan/dylan.js +./codemirror-5.60.0/mode/dylan/index.html +./codemirror-5.60.0/mode/dylan/test.js +./codemirror-5.60.0/mode/ebnf +./codemirror-5.60.0/mode/ebnf/ebnf.js +./codemirror-5.60.0/mode/ebnf/index.html +./codemirror-5.60.0/mode/ecl +./codemirror-5.60.0/mode/ecl/ecl.js +./codemirror-5.60.0/mode/ecl/index.html +./codemirror-5.60.0/mode/eiffel +./codemirror-5.60.0/mode/eiffel/eiffel.js +./codemirror-5.60.0/mode/eiffel/index.html +./codemirror-5.60.0/mode/elm +./codemirror-5.60.0/mode/elm/elm.js +./codemirror-5.60.0/mode/elm/index.html +./codemirror-5.60.0/mode/erlang +./codemirror-5.60.0/mode/erlang/erlang.js +./codemirror-5.60.0/mode/erlang/index.html +./codemirror-5.60.0/mode/factor +./codemirror-5.60.0/mode/factor/factor.js +./codemirror-5.60.0/mode/factor/index.html ./codemirror-5.60.0/mode/fcl ./codemirror-5.60.0/mode/fcl/fcl.js ./codemirror-5.60.0/mode/fcl/index.html -./codemirror-5.60.0/mode/livescript -./codemirror-5.60.0/mode/livescript/index.html -./codemirror-5.60.0/mode/livescript/livescript.js -./codemirror-5.60.0/mode/markdown -./codemirror-5.60.0/mode/markdown/markdown.js -./codemirror-5.60.0/mode/markdown/index.html -./codemirror-5.60.0/mode/markdown/test.js -./codemirror-5.60.0/mode/dart -./codemirror-5.60.0/mode/dart/index.html -./codemirror-5.60.0/mode/dart/dart.js -./codemirror-5.60.0/mode/nginx -./codemirror-5.60.0/mode/nginx/nginx.js -./codemirror-5.60.0/mode/nginx/index.html -./codemirror-5.60.0/mode/jinja2 -./codemirror-5.60.0/mode/jinja2/jinja2.js -./codemirror-5.60.0/mode/jinja2/index.html -./codemirror-5.60.0/mode/smalltalk -./codemirror-5.60.0/mode/smalltalk/smalltalk.js -./codemirror-5.60.0/mode/smalltalk/index.html -./codemirror-5.60.0/mode/php -./codemirror-5.60.0/mode/php/index.html -./codemirror-5.60.0/mode/php/php.js -./codemirror-5.60.0/mode/php/test.js -./codemirror-5.60.0/mode/gas -./codemirror-5.60.0/mode/gas/index.html -./codemirror-5.60.0/mode/gas/gas.js -./codemirror-5.60.0/mode/asterisk -./codemirror-5.60.0/mode/asterisk/asterisk.js -./codemirror-5.60.0/mode/asterisk/index.html -./codemirror-5.60.0/mode/mathematica -./codemirror-5.60.0/mode/mathematica/index.html -./codemirror-5.60.0/mode/mathematica/mathematica.js -./codemirror-5.60.0/mode/turtle -./codemirror-5.60.0/mode/turtle/index.html -./codemirror-5.60.0/mode/turtle/turtle.js -./codemirror-5.60.0/mode/gherkin -./codemirror-5.60.0/mode/gherkin/index.html -./codemirror-5.60.0/mode/gherkin/gherkin.js -./codemirror-5.60.0/mode/yacas -./codemirror-5.60.0/mode/yacas/index.html -./codemirror-5.60.0/mode/yacas/yacas.js -./codemirror-5.60.0/mode/rst -./codemirror-5.60.0/mode/rst/rst.js -./codemirror-5.60.0/mode/rst/index.html -./codemirror-5.60.0/mode/velocity -./codemirror-5.60.0/mode/velocity/index.html -./codemirror-5.60.0/mode/velocity/velocity.js -./codemirror-5.60.0/mode/nsis -./codemirror-5.60.0/mode/nsis/index.html -./codemirror-5.60.0/mode/nsis/nsis.js -./codemirror-5.60.0/mode/brainfuck -./codemirror-5.60.0/mode/brainfuck/index.html -./codemirror-5.60.0/mode/brainfuck/brainfuck.js -./codemirror-5.60.0/mode/tornado -./codemirror-5.60.0/mode/tornado/tornado.js -./codemirror-5.60.0/mode/tornado/index.html -./codemirror-5.60.0/mode/gfm -./codemirror-5.60.0/mode/gfm/index.html -./codemirror-5.60.0/mode/gfm/gfm.js -./codemirror-5.60.0/mode/gfm/test.js -./codemirror-5.60.0/mode/apl -./codemirror-5.60.0/mode/apl/index.html -./codemirror-5.60.0/mode/apl/apl.js +./codemirror-5.60.0/mode/forth +./codemirror-5.60.0/mode/forth/forth.js +./codemirror-5.60.0/mode/forth/index.html ./codemirror-5.60.0/mode/fortran -./codemirror-5.60.0/mode/fortran/index.html ./codemirror-5.60.0/mode/fortran/fortran.js -./codemirror-5.60.0/mode/css -./codemirror-5.60.0/mode/css/gss.html -./codemirror-5.60.0/mode/css/scss.html -./codemirror-5.60.0/mode/css/gss_test.js -./codemirror-5.60.0/mode/css/scss_test.js -./codemirror-5.60.0/mode/css/less.html -./codemirror-5.60.0/mode/css/index.html -./codemirror-5.60.0/mode/css/css.js -./codemirror-5.60.0/mode/css/less_test.js -./codemirror-5.60.0/mode/css/test.js -./codemirror-5.60.0/mode/troff -./codemirror-5.60.0/mode/troff/index.html -./codemirror-5.60.0/mode/troff/troff.js -./codemirror-5.60.0/mode/yaml-frontmatter -./codemirror-5.60.0/mode/yaml-frontmatter/yaml-frontmatter.js -./codemirror-5.60.0/mode/yaml-frontmatter/index.html +./codemirror-5.60.0/mode/fortran/index.html +./codemirror-5.60.0/mode/gas +./codemirror-5.60.0/mode/gas/gas.js +./codemirror-5.60.0/mode/gas/index.html +./codemirror-5.60.0/mode/gfm +./codemirror-5.60.0/mode/gfm/gfm.js +./codemirror-5.60.0/mode/gfm/index.html +./codemirror-5.60.0/mode/gfm/test.js +./codemirror-5.60.0/mode/gherkin +./codemirror-5.60.0/mode/gherkin/gherkin.js +./codemirror-5.60.0/mode/gherkin/index.html ./codemirror-5.60.0/mode/go ./codemirror-5.60.0/mode/go/go.js ./codemirror-5.60.0/mode/go/index.html -./codemirror-5.60.0/mode/webidl -./codemirror-5.60.0/mode/webidl/webidl.js -./codemirror-5.60.0/mode/webidl/index.html -./codemirror-5.60.0/mode/cypher -./codemirror-5.60.0/mode/cypher/index.html -./codemirror-5.60.0/mode/cypher/test.js -./codemirror-5.60.0/mode/cypher/cypher.js -./codemirror-5.60.0/mode/smarty -./codemirror-5.60.0/mode/smarty/index.html -./codemirror-5.60.0/mode/smarty/smarty.js -./codemirror-5.60.0/mode/xml -./codemirror-5.60.0/mode/xml/index.html -./codemirror-5.60.0/mode/xml/test.js -./codemirror-5.60.0/mode/xml/xml.js -./codemirror-5.60.0/mode/tiddlywiki -./codemirror-5.60.0/mode/tiddlywiki/tiddlywiki.css -./codemirror-5.60.0/mode/tiddlywiki/tiddlywiki.js -./codemirror-5.60.0/mode/tiddlywiki/index.html +./codemirror-5.60.0/mode/groovy +./codemirror-5.60.0/mode/groovy/groovy.js +./codemirror-5.60.0/mode/groovy/index.html ./codemirror-5.60.0/mode/haml ./codemirror-5.60.0/mode/haml/haml.js ./codemirror-5.60.0/mode/haml/index.html ./codemirror-5.60.0/mode/haml/test.js -./codemirror-5.60.0/mode/shell -./codemirror-5.60.0/mode/shell/index.html -./codemirror-5.60.0/mode/shell/test.js -./codemirror-5.60.0/mode/shell/shell.js +./codemirror-5.60.0/mode/handlebars +./codemirror-5.60.0/mode/handlebars/handlebars.js +./codemirror-5.60.0/mode/handlebars/index.html +./codemirror-5.60.0/mode/haskell +./codemirror-5.60.0/mode/haskell-literate +./codemirror-5.60.0/mode/haskell-literate/haskell-literate.js +./codemirror-5.60.0/mode/haskell-literate/index.html +./codemirror-5.60.0/mode/haskell/haskell.js +./codemirror-5.60.0/mode/haskell/index.html +./codemirror-5.60.0/mode/haxe +./codemirror-5.60.0/mode/haxe/haxe.js +./codemirror-5.60.0/mode/haxe/index.html +./codemirror-5.60.0/mode/htmlembedded +./codemirror-5.60.0/mode/htmlembedded/htmlembedded.js +./codemirror-5.60.0/mode/htmlembedded/index.html +./codemirror-5.60.0/mode/htmlmixed +./codemirror-5.60.0/mode/htmlmixed/htmlmixed.js +./codemirror-5.60.0/mode/htmlmixed/index.html +./codemirror-5.60.0/mode/http +./codemirror-5.60.0/mode/http/http.js +./codemirror-5.60.0/mode/http/index.html +./codemirror-5.60.0/mode/idl +./codemirror-5.60.0/mode/idl/idl.js +./codemirror-5.60.0/mode/idl/index.html +./codemirror-5.60.0/mode/index.html +./codemirror-5.60.0/mode/javascript +./codemirror-5.60.0/mode/javascript/index.html +./codemirror-5.60.0/mode/javascript/javascript.js +./codemirror-5.60.0/mode/javascript/json-ld.html +./codemirror-5.60.0/mode/javascript/test.js +./codemirror-5.60.0/mode/javascript/typescript.html +./codemirror-5.60.0/mode/jinja2 +./codemirror-5.60.0/mode/jinja2/index.html +./codemirror-5.60.0/mode/jinja2/jinja2.js +./codemirror-5.60.0/mode/jsx +./codemirror-5.60.0/mode/jsx/index.html +./codemirror-5.60.0/mode/jsx/jsx.js +./codemirror-5.60.0/mode/jsx/test.js +./codemirror-5.60.0/mode/julia +./codemirror-5.60.0/mode/julia/index.html +./codemirror-5.60.0/mode/julia/julia.js +./codemirror-5.60.0/mode/livescript +./codemirror-5.60.0/mode/livescript/index.html +./codemirror-5.60.0/mode/livescript/livescript.js +./codemirror-5.60.0/mode/lua +./codemirror-5.60.0/mode/lua/index.html +./codemirror-5.60.0/mode/lua/lua.js +./codemirror-5.60.0/mode/markdown +./codemirror-5.60.0/mode/markdown/index.html +./codemirror-5.60.0/mode/markdown/markdown.js +./codemirror-5.60.0/mode/markdown/test.js +./codemirror-5.60.0/mode/mathematica +./codemirror-5.60.0/mode/mathematica/index.html +./codemirror-5.60.0/mode/mathematica/mathematica.js +./codemirror-5.60.0/mode/mbox +./codemirror-5.60.0/mode/mbox/index.html +./codemirror-5.60.0/mode/mbox/mbox.js +./codemirror-5.60.0/mode/meta.js +./codemirror-5.60.0/mode/mirc +./codemirror-5.60.0/mode/mirc/index.html +./codemirror-5.60.0/mode/mirc/mirc.js +./codemirror-5.60.0/mode/mllike +./codemirror-5.60.0/mode/mllike/index.html +./codemirror-5.60.0/mode/mllike/mllike.js +./codemirror-5.60.0/mode/modelica +./codemirror-5.60.0/mode/modelica/index.html +./codemirror-5.60.0/mode/modelica/modelica.js +./codemirror-5.60.0/mode/mscgen +./codemirror-5.60.0/mode/mscgen/index.html +./codemirror-5.60.0/mode/mscgen/mscgen.js +./codemirror-5.60.0/mode/mscgen/mscgen_test.js +./codemirror-5.60.0/mode/mscgen/msgenny_test.js +./codemirror-5.60.0/mode/mscgen/xu_test.js +./codemirror-5.60.0/mode/mumps +./codemirror-5.60.0/mode/mumps/index.html +./codemirror-5.60.0/mode/mumps/mumps.js +./codemirror-5.60.0/mode/nginx +./codemirror-5.60.0/mode/nginx/index.html +./codemirror-5.60.0/mode/nginx/nginx.js +./codemirror-5.60.0/mode/nsis +./codemirror-5.60.0/mode/nsis/index.html +./codemirror-5.60.0/mode/nsis/nsis.js +./codemirror-5.60.0/mode/ntriples +./codemirror-5.60.0/mode/ntriples/index.html +./codemirror-5.60.0/mode/ntriples/ntriples.js +./codemirror-5.60.0/mode/octave +./codemirror-5.60.0/mode/octave/index.html +./codemirror-5.60.0/mode/octave/octave.js +./codemirror-5.60.0/mode/oz +./codemirror-5.60.0/mode/oz/index.html +./codemirror-5.60.0/mode/oz/oz.js +./codemirror-5.60.0/mode/pascal +./codemirror-5.60.0/mode/pascal/index.html +./codemirror-5.60.0/mode/pascal/pascal.js ./codemirror-5.60.0/mode/pegjs ./codemirror-5.60.0/mode/pegjs/index.html ./codemirror-5.60.0/mode/pegjs/pegjs.js -./codemirror-5.60.0/theme -./codemirror-5.60.0/theme/duotone-light.css -./codemirror-5.60.0/theme/neo.css -./codemirror-5.60.0/theme/icecoder.css -./codemirror-5.60.0/theme/xq-dark.css -./codemirror-5.60.0/theme/material-palenight.css -./codemirror-5.60.0/theme/ayu-mirage.css -./codemirror-5.60.0/theme/twilight.css -./codemirror-5.60.0/theme/railscasts.css -./codemirror-5.60.0/theme/duotone-dark.css -./codemirror-5.60.0/theme/blackboard.css -./codemirror-5.60.0/theme/lesser-dark.css -./codemirror-5.60.0/theme/midnight.css -./codemirror-5.60.0/theme/base16-light.css -./codemirror-5.60.0/theme/zenburn.css -./codemirror-5.60.0/theme/seti.css -./codemirror-5.60.0/theme/material.css -./codemirror-5.60.0/theme/tomorrow-night-bright.css -./codemirror-5.60.0/theme/erlang-dark.css -./codemirror-5.60.0/theme/oceanic-next.css -./codemirror-5.60.0/theme/bespin.css -./codemirror-5.60.0/theme/paraiso-dark.css -./codemirror-5.60.0/theme/yonce.css -./codemirror-5.60.0/theme/material-darker.css -./codemirror-5.60.0/theme/tomorrow-night-eighties.css -./codemirror-5.60.0/theme/moxer.css -./codemirror-5.60.0/theme/isotope.css -./codemirror-5.60.0/theme/3024-day.css -./codemirror-5.60.0/theme/nord.css -./codemirror-5.60.0/theme/paraiso-light.css -./codemirror-5.60.0/theme/material-ocean.css -./codemirror-5.60.0/theme/mbo.css -./codemirror-5.60.0/theme/3024-night.css -./codemirror-5.60.0/theme/xq-light.css -./codemirror-5.60.0/theme/ttcn.css -./codemirror-5.60.0/theme/colorforth.css -./codemirror-5.60.0/theme/vibrant-ink.css -./codemirror-5.60.0/theme/ambiance-mobile.css -./codemirror-5.60.0/theme/solarized.css -./codemirror-5.60.0/theme/yeti.css -./codemirror-5.60.0/theme/ayu-dark.css -./codemirror-5.60.0/theme/shadowfox.css -./codemirror-5.60.0/theme/hopscotch.css -./codemirror-5.60.0/theme/darcula.css -./codemirror-5.60.0/theme/eclipse.css -./codemirror-5.60.0/theme/the-matrix.css -./codemirror-5.60.0/theme/dracula.css -./codemirror-5.60.0/theme/idea.css -./codemirror-5.60.0/theme/liquibyte.css -./codemirror-5.60.0/theme/ssms.css -./codemirror-5.60.0/theme/elegant.css -./codemirror-5.60.0/theme/base16-dark.css -./codemirror-5.60.0/theme/abcdef.css -./codemirror-5.60.0/theme/panda-syntax.css -./codemirror-5.60.0/theme/pastel-on-dark.css -./codemirror-5.60.0/theme/rubyblue.css -./codemirror-5.60.0/theme/night.css -./codemirror-5.60.0/theme/neat.css -./codemirror-5.60.0/theme/cobalt.css -./codemirror-5.60.0/theme/ambiance.css -./codemirror-5.60.0/theme/gruvbox-dark.css -./codemirror-5.60.0/theme/monokai.css -./codemirror-5.60.0/theme/mdn-like.css -./codemirror-5.60.0/theme/lucario.css -./codemirror-5.60.0/index.html -./codemirror-5.60.0/keymap -./codemirror-5.60.0/keymap/sublime.js -./codemirror-5.60.0/keymap/emacs.js -./codemirror-5.60.0/keymap/vim.js -./codemirror-5.60.0/AUTHORS -./codemirror-5.60.0/.editorconfig -./codemirror-5.60.0/.travis.yml -./codemirror-5.60.0/bin -./codemirror-5.60.0/bin/source-highlight -./codemirror-5.60.0/bin/authors.sh -./codemirror-5.60.0/bin/upload-release.js -./codemirror-5.60.0/bin/lint -./codemirror-5.60.0/bin/release -./codemirror-5.60.0/addon -./codemirror-5.60.0/addon/runmode -./codemirror-5.60.0/addon/runmode/runmode.node.js -./codemirror-5.60.0/addon/runmode/colorize.js -./codemirror-5.60.0/addon/runmode/runmode.js -./codemirror-5.60.0/addon/runmode/runmode-standalone.js -./codemirror-5.60.0/addon/wrap -./codemirror-5.60.0/addon/wrap/hardwrap.js -./codemirror-5.60.0/addon/selection -./codemirror-5.60.0/addon/selection/selection-pointer.js -./codemirror-5.60.0/addon/selection/active-line.js -./codemirror-5.60.0/addon/selection/mark-selection.js -./codemirror-5.60.0/addon/fold -./codemirror-5.60.0/addon/fold/xml-fold.js -./codemirror-5.60.0/addon/fold/comment-fold.js -./codemirror-5.60.0/addon/fold/foldgutter.js -./codemirror-5.60.0/addon/fold/brace-fold.js -./codemirror-5.60.0/addon/fold/foldgutter.css -./codemirror-5.60.0/addon/fold/markdown-fold.js -./codemirror-5.60.0/addon/fold/indent-fold.js -./codemirror-5.60.0/addon/fold/foldcode.js -./codemirror-5.60.0/addon/comment -./codemirror-5.60.0/addon/comment/comment.js -./codemirror-5.60.0/addon/comment/continuecomment.js -./codemirror-5.60.0/addon/scroll -./codemirror-5.60.0/addon/scroll/scrollpastend.js -./codemirror-5.60.0/addon/scroll/simplescrollbars.css -./codemirror-5.60.0/addon/scroll/annotatescrollbar.js -./codemirror-5.60.0/addon/scroll/simplescrollbars.js -./codemirror-5.60.0/addon/mode -./codemirror-5.60.0/addon/mode/simple.js -./codemirror-5.60.0/addon/mode/loadmode.js -./codemirror-5.60.0/addon/mode/multiplex.js -./codemirror-5.60.0/addon/mode/multiplex_test.js -./codemirror-5.60.0/addon/mode/overlay.js -./codemirror-5.60.0/addon/hint -./codemirror-5.60.0/addon/hint/xml-hint.js -./codemirror-5.60.0/addon/hint/show-hint.js -./codemirror-5.60.0/addon/hint/javascript-hint.js -./codemirror-5.60.0/addon/hint/show-hint.css -./codemirror-5.60.0/addon/hint/css-hint.js -./codemirror-5.60.0/addon/hint/sql-hint.js -./codemirror-5.60.0/addon/hint/anyword-hint.js -./codemirror-5.60.0/addon/hint/html-hint.js -./codemirror-5.60.0/addon/edit -./codemirror-5.60.0/addon/edit/closetag.js -./codemirror-5.60.0/addon/edit/continuelist.js -./codemirror-5.60.0/addon/edit/matchtags.js -./codemirror-5.60.0/addon/edit/closebrackets.js -./codemirror-5.60.0/addon/edit/matchbrackets.js -./codemirror-5.60.0/addon/edit/trailingspace.js -./codemirror-5.60.0/addon/tern -./codemirror-5.60.0/addon/tern/tern.js -./codemirror-5.60.0/addon/tern/worker.js -./codemirror-5.60.0/addon/tern/tern.css -./codemirror-5.60.0/addon/dialog -./codemirror-5.60.0/addon/dialog/dialog.js -./codemirror-5.60.0/addon/dialog/dialog.css -./codemirror-5.60.0/addon/display -./codemirror-5.60.0/addon/display/autorefresh.js -./codemirror-5.60.0/addon/display/panel.js -./codemirror-5.60.0/addon/display/fullscreen.js -./codemirror-5.60.0/addon/display/rulers.js -./codemirror-5.60.0/addon/display/fullscreen.css -./codemirror-5.60.0/addon/display/placeholder.js -./codemirror-5.60.0/addon/merge -./codemirror-5.60.0/addon/merge/merge.css -./codemirror-5.60.0/addon/merge/merge.js -./codemirror-5.60.0/addon/lint -./codemirror-5.60.0/addon/lint/coffeescript-lint.js -./codemirror-5.60.0/addon/lint/html-lint.js -./codemirror-5.60.0/addon/lint/lint.js -./codemirror-5.60.0/addon/lint/css-lint.js -./codemirror-5.60.0/addon/lint/json-lint.js -./codemirror-5.60.0/addon/lint/javascript-lint.js -./codemirror-5.60.0/addon/lint/lint.css -./codemirror-5.60.0/addon/lint/yaml-lint.js -./codemirror-5.60.0/addon/search -./codemirror-5.60.0/addon/search/search.js -./codemirror-5.60.0/addon/search/matchesonscrollbar.css -./codemirror-5.60.0/addon/search/match-highlighter.js -./codemirror-5.60.0/addon/search/matchesonscrollbar.js -./codemirror-5.60.0/addon/search/searchcursor.js -./codemirror-5.60.0/addon/search/jump-to-line.js -./codemirror-5.60.0/LICENSE -./codemirror-5.60.0/.gitattributes -./codemirror-5.60.0/rollup.config.js -./codemirror-5.60.0/README.md +./codemirror-5.60.0/mode/perl +./codemirror-5.60.0/mode/perl/index.html +./codemirror-5.60.0/mode/perl/perl.js +./codemirror-5.60.0/mode/php +./codemirror-5.60.0/mode/php/index.html +./codemirror-5.60.0/mode/php/php.js +./codemirror-5.60.0/mode/php/test.js +./codemirror-5.60.0/mode/pig +./codemirror-5.60.0/mode/pig/index.html +./codemirror-5.60.0/mode/pig/pig.js +./codemirror-5.60.0/mode/powershell +./codemirror-5.60.0/mode/powershell/index.html +./codemirror-5.60.0/mode/powershell/powershell.js +./codemirror-5.60.0/mode/powershell/test.js +./codemirror-5.60.0/mode/properties +./codemirror-5.60.0/mode/properties/index.html +./codemirror-5.60.0/mode/properties/properties.js +./codemirror-5.60.0/mode/protobuf +./codemirror-5.60.0/mode/protobuf/index.html +./codemirror-5.60.0/mode/protobuf/protobuf.js +./codemirror-5.60.0/mode/pug +./codemirror-5.60.0/mode/pug/index.html +./codemirror-5.60.0/mode/pug/pug.js +./codemirror-5.60.0/mode/puppet +./codemirror-5.60.0/mode/puppet/index.html +./codemirror-5.60.0/mode/puppet/puppet.js +./codemirror-5.60.0/mode/python +./codemirror-5.60.0/mode/python/index.html +./codemirror-5.60.0/mode/python/python.js +./codemirror-5.60.0/mode/python/test.js +./codemirror-5.60.0/mode/q +./codemirror-5.60.0/mode/q/index.html +./codemirror-5.60.0/mode/q/q.js +./codemirror-5.60.0/mode/r +./codemirror-5.60.0/mode/r/index.html +./codemirror-5.60.0/mode/r/r.js +./codemirror-5.60.0/mode/rpm +./codemirror-5.60.0/mode/rpm/changes +./codemirror-5.60.0/mode/rpm/changes/index.html +./codemirror-5.60.0/mode/rpm/index.html +./codemirror-5.60.0/mode/rpm/rpm.js +./codemirror-5.60.0/mode/rst +./codemirror-5.60.0/mode/rst/index.html +./codemirror-5.60.0/mode/rst/rst.js +./codemirror-5.60.0/mode/ruby +./codemirror-5.60.0/mode/ruby/index.html +./codemirror-5.60.0/mode/ruby/ruby.js +./codemirror-5.60.0/mode/ruby/test.js +./codemirror-5.60.0/mode/rust +./codemirror-5.60.0/mode/rust/index.html +./codemirror-5.60.0/mode/rust/rust.js +./codemirror-5.60.0/mode/rust/test.js +./codemirror-5.60.0/mode/sas +./codemirror-5.60.0/mode/sas/index.html +./codemirror-5.60.0/mode/sas/sas.js +./codemirror-5.60.0/mode/sass +./codemirror-5.60.0/mode/sass/index.html +./codemirror-5.60.0/mode/sass/sass.js +./codemirror-5.60.0/mode/sass/test.js +./codemirror-5.60.0/mode/scheme +./codemirror-5.60.0/mode/scheme/index.html +./codemirror-5.60.0/mode/scheme/scheme.js +./codemirror-5.60.0/mode/shell +./codemirror-5.60.0/mode/shell/index.html +./codemirror-5.60.0/mode/shell/shell.js +./codemirror-5.60.0/mode/shell/test.js +./codemirror-5.60.0/mode/sieve +./codemirror-5.60.0/mode/sieve/index.html +./codemirror-5.60.0/mode/sieve/sieve.js +./codemirror-5.60.0/mode/slim +./codemirror-5.60.0/mode/slim/index.html +./codemirror-5.60.0/mode/slim/slim.js +./codemirror-5.60.0/mode/slim/test.js +./codemirror-5.60.0/mode/smalltalk +./codemirror-5.60.0/mode/smalltalk/index.html +./codemirror-5.60.0/mode/smalltalk/smalltalk.js +./codemirror-5.60.0/mode/smarty +./codemirror-5.60.0/mode/smarty/index.html +./codemirror-5.60.0/mode/smarty/smarty.js +./codemirror-5.60.0/mode/solr +./codemirror-5.60.0/mode/solr/index.html +./codemirror-5.60.0/mode/solr/solr.js +./codemirror-5.60.0/mode/soy +./codemirror-5.60.0/mode/soy/index.html +./codemirror-5.60.0/mode/soy/soy.js +./codemirror-5.60.0/mode/soy/test.js +./codemirror-5.60.0/mode/sparql +./codemirror-5.60.0/mode/sparql/index.html +./codemirror-5.60.0/mode/sparql/sparql.js +./codemirror-5.60.0/mode/spreadsheet +./codemirror-5.60.0/mode/spreadsheet/index.html +./codemirror-5.60.0/mode/spreadsheet/spreadsheet.js +./codemirror-5.60.0/mode/sql +./codemirror-5.60.0/mode/sql/index.html +./codemirror-5.60.0/mode/sql/sql.js +./codemirror-5.60.0/mode/stex +./codemirror-5.60.0/mode/stex/index.html +./codemirror-5.60.0/mode/stex/stex.js +./codemirror-5.60.0/mode/stex/test.js +./codemirror-5.60.0/mode/stylus +./codemirror-5.60.0/mode/stylus/index.html +./codemirror-5.60.0/mode/stylus/stylus.js +./codemirror-5.60.0/mode/swift +./codemirror-5.60.0/mode/swift/index.html +./codemirror-5.60.0/mode/swift/swift.js +./codemirror-5.60.0/mode/swift/test.js +./codemirror-5.60.0/mode/tcl +./codemirror-5.60.0/mode/tcl/index.html +./codemirror-5.60.0/mode/tcl/tcl.js +./codemirror-5.60.0/mode/textile +./codemirror-5.60.0/mode/textile/index.html +./codemirror-5.60.0/mode/textile/test.js +./codemirror-5.60.0/mode/textile/textile.js +./codemirror-5.60.0/mode/tiddlywiki +./codemirror-5.60.0/mode/tiddlywiki/index.html +./codemirror-5.60.0/mode/tiddlywiki/tiddlywiki.css +./codemirror-5.60.0/mode/tiddlywiki/tiddlywiki.js +./codemirror-5.60.0/mode/tiki +./codemirror-5.60.0/mode/tiki/index.html +./codemirror-5.60.0/mode/tiki/tiki.css +./codemirror-5.60.0/mode/tiki/tiki.js +./codemirror-5.60.0/mode/toml +./codemirror-5.60.0/mode/toml/index.html +./codemirror-5.60.0/mode/toml/toml.js +./codemirror-5.60.0/mode/tornado +./codemirror-5.60.0/mode/tornado/index.html +./codemirror-5.60.0/mode/tornado/tornado.js +./codemirror-5.60.0/mode/troff +./codemirror-5.60.0/mode/troff/index.html +./codemirror-5.60.0/mode/troff/troff.js +./codemirror-5.60.0/mode/ttcn +./codemirror-5.60.0/mode/ttcn-cfg +./codemirror-5.60.0/mode/ttcn-cfg/index.html +./codemirror-5.60.0/mode/ttcn-cfg/ttcn-cfg.js +./codemirror-5.60.0/mode/ttcn/index.html +./codemirror-5.60.0/mode/ttcn/ttcn.js +./codemirror-5.60.0/mode/turtle +./codemirror-5.60.0/mode/turtle/index.html +./codemirror-5.60.0/mode/turtle/turtle.js +./codemirror-5.60.0/mode/twig +./codemirror-5.60.0/mode/twig/index.html +./codemirror-5.60.0/mode/twig/twig.js +./codemirror-5.60.0/mode/vb +./codemirror-5.60.0/mode/vb/index.html +./codemirror-5.60.0/mode/vb/vb.js +./codemirror-5.60.0/mode/vbscript +./codemirror-5.60.0/mode/vbscript/index.html +./codemirror-5.60.0/mode/vbscript/vbscript.js +./codemirror-5.60.0/mode/velocity +./codemirror-5.60.0/mode/velocity/index.html +./codemirror-5.60.0/mode/velocity/velocity.js +./codemirror-5.60.0/mode/verilog +./codemirror-5.60.0/mode/verilog/index.html +./codemirror-5.60.0/mode/verilog/test.js +./codemirror-5.60.0/mode/verilog/verilog.js +./codemirror-5.60.0/mode/vhdl +./codemirror-5.60.0/mode/vhdl/index.html +./codemirror-5.60.0/mode/vhdl/vhdl.js +./codemirror-5.60.0/mode/vue +./codemirror-5.60.0/mode/vue/index.html +./codemirror-5.60.0/mode/vue/vue.js +./codemirror-5.60.0/mode/wast +./codemirror-5.60.0/mode/wast/index.html +./codemirror-5.60.0/mode/wast/test.js +./codemirror-5.60.0/mode/wast/wast.js +./codemirror-5.60.0/mode/webidl +./codemirror-5.60.0/mode/webidl/index.html +./codemirror-5.60.0/mode/webidl/webidl.js +./codemirror-5.60.0/mode/xml +./codemirror-5.60.0/mode/xml/index.html +./codemirror-5.60.0/mode/xml/test.js +./codemirror-5.60.0/mode/xml/xml.js +./codemirror-5.60.0/mode/xquery +./codemirror-5.60.0/mode/xquery/index.html +./codemirror-5.60.0/mode/xquery/test.js +./codemirror-5.60.0/mode/xquery/xquery.js +./codemirror-5.60.0/mode/yacas +./codemirror-5.60.0/mode/yacas/index.html +./codemirror-5.60.0/mode/yacas/yacas.js +./codemirror-5.60.0/mode/yaml +./codemirror-5.60.0/mode/yaml-frontmatter +./codemirror-5.60.0/mode/yaml-frontmatter/index.html +./codemirror-5.60.0/mode/yaml-frontmatter/yaml-frontmatter.js +./codemirror-5.60.0/mode/yaml/index.html +./codemirror-5.60.0/mode/yaml/yaml.js +./codemirror-5.60.0/mode/z80 +./codemirror-5.60.0/mode/z80/index.html +./codemirror-5.60.0/mode/z80/z80.js ./codemirror-5.60.0/package.json -./index.html -./micro_ipfs.js -./favicon.ico -./pako -./pako/MIT-LICENSE -./pako/pako.min.js -./pako/LICENSE -./pako/lib-slash-zlib-slash-README -./README -./FileSaver.js -./FileSaver.js/LICENSE.md -./FileSaver.js/FileSaver.js -./.ipfsignore -./Viz.js -./Viz.js/viz-lite.js -./Viz.js/viz.js -./Viz.js/LICENSE -./favicon.svg +./codemirror-5.60.0/rollup.config.js +./codemirror-5.60.0/src +./codemirror-5.60.0/src/addon +./codemirror-5.60.0/src/addon/runmode +./codemirror-5.60.0/src/addon/runmode/codemirror-standalone.js +./codemirror-5.60.0/src/addon/runmode/codemirror.node.js +./codemirror-5.60.0/src/addon/runmode/runmode-standalone.js +./codemirror-5.60.0/src/addon/runmode/runmode.node.js +./codemirror-5.60.0/src/codemirror.js +./codemirror-5.60.0/src/display +./codemirror-5.60.0/src/display/Display.js +./codemirror-5.60.0/src/display/focus.js +./codemirror-5.60.0/src/display/gutters.js +./codemirror-5.60.0/src/display/highlight_worker.js +./codemirror-5.60.0/src/display/line_numbers.js +./codemirror-5.60.0/src/display/mode_state.js +./codemirror-5.60.0/src/display/operations.js +./codemirror-5.60.0/src/display/scroll_events.js +./codemirror-5.60.0/src/display/scrollbars.js +./codemirror-5.60.0/src/display/scrolling.js +./codemirror-5.60.0/src/display/selection.js +./codemirror-5.60.0/src/display/update_display.js +./codemirror-5.60.0/src/display/update_line.js +./codemirror-5.60.0/src/display/update_lines.js +./codemirror-5.60.0/src/display/view_tracking.js +./codemirror-5.60.0/src/edit +./codemirror-5.60.0/src/edit/CodeMirror.js +./codemirror-5.60.0/src/edit/commands.js +./codemirror-5.60.0/src/edit/deleteNearSelection.js +./codemirror-5.60.0/src/edit/drop_events.js +./codemirror-5.60.0/src/edit/fromTextArea.js +./codemirror-5.60.0/src/edit/global_events.js +./codemirror-5.60.0/src/edit/key_events.js +./codemirror-5.60.0/src/edit/legacy.js +./codemirror-5.60.0/src/edit/main.js +./codemirror-5.60.0/src/edit/methods.js +./codemirror-5.60.0/src/edit/mouse_events.js +./codemirror-5.60.0/src/edit/options.js +./codemirror-5.60.0/src/edit/utils.js +./codemirror-5.60.0/src/input +./codemirror-5.60.0/src/input/ContentEditableInput.js +./codemirror-5.60.0/src/input/TextareaInput.js +./codemirror-5.60.0/src/input/indent.js +./codemirror-5.60.0/src/input/input.js +./codemirror-5.60.0/src/input/keymap.js +./codemirror-5.60.0/src/input/keynames.js +./codemirror-5.60.0/src/input/movement.js +./codemirror-5.60.0/src/line +./codemirror-5.60.0/src/line/highlight.js +./codemirror-5.60.0/src/line/line_data.js +./codemirror-5.60.0/src/line/pos.js +./codemirror-5.60.0/src/line/saw_special_spans.js +./codemirror-5.60.0/src/line/spans.js +./codemirror-5.60.0/src/line/utils_line.js +./codemirror-5.60.0/src/measurement +./codemirror-5.60.0/src/measurement/position_measurement.js +./codemirror-5.60.0/src/measurement/widgets.js +./codemirror-5.60.0/src/model +./codemirror-5.60.0/src/model/Doc.js +./codemirror-5.60.0/src/model/change_measurement.js +./codemirror-5.60.0/src/model/changes.js +./codemirror-5.60.0/src/model/chunk.js +./codemirror-5.60.0/src/model/document_data.js +./codemirror-5.60.0/src/model/history.js +./codemirror-5.60.0/src/model/line_widget.js +./codemirror-5.60.0/src/model/mark_text.js +./codemirror-5.60.0/src/model/selection.js +./codemirror-5.60.0/src/model/selection_updates.js +./codemirror-5.60.0/src/modes.js +./codemirror-5.60.0/src/util +./codemirror-5.60.0/src/util/StringStream.js +./codemirror-5.60.0/src/util/bidi.js +./codemirror-5.60.0/src/util/browser.js +./codemirror-5.60.0/src/util/dom.js +./codemirror-5.60.0/src/util/event.js +./codemirror-5.60.0/src/util/feature_detection.js +./codemirror-5.60.0/src/util/misc.js +./codemirror-5.60.0/src/util/operation_group.js +./codemirror-5.60.0/test +./codemirror-5.60.0/test/annotatescrollbar.js +./codemirror-5.60.0/test/comment_test.js +./codemirror-5.60.0/test/contenteditable_test.js +./codemirror-5.60.0/test/doc_test.js +./codemirror-5.60.0/test/driver.js +./codemirror-5.60.0/test/emacs_test.js +./codemirror-5.60.0/test/html-hint-test.js +./codemirror-5.60.0/test/index.html +./codemirror-5.60.0/test/lint.js +./codemirror-5.60.0/test/mode_test.css +./codemirror-5.60.0/test/mode_test.js +./codemirror-5.60.0/test/multi_test.js +./codemirror-5.60.0/test/run.js +./codemirror-5.60.0/test/scroll_test.js +./codemirror-5.60.0/test/search_test.js +./codemirror-5.60.0/test/sql-hint-test.js +./codemirror-5.60.0/test/sublime_test.js +./codemirror-5.60.0/test/test.js +./codemirror-5.60.0/test/vim_test.js +./codemirror-5.60.0/theme +./codemirror-5.60.0/theme/3024-day.css +./codemirror-5.60.0/theme/3024-night.css +./codemirror-5.60.0/theme/abcdef.css +./codemirror-5.60.0/theme/ambiance-mobile.css +./codemirror-5.60.0/theme/ambiance.css +./codemirror-5.60.0/theme/ayu-dark.css +./codemirror-5.60.0/theme/ayu-mirage.css +./codemirror-5.60.0/theme/base16-dark.css +./codemirror-5.60.0/theme/base16-light.css +./codemirror-5.60.0/theme/bespin.css +./codemirror-5.60.0/theme/blackboard.css +./codemirror-5.60.0/theme/cobalt.css +./codemirror-5.60.0/theme/colorforth.css +./codemirror-5.60.0/theme/darcula.css +./codemirror-5.60.0/theme/dracula.css +./codemirror-5.60.0/theme/duotone-dark.css +./codemirror-5.60.0/theme/duotone-light.css +./codemirror-5.60.0/theme/eclipse.css +./codemirror-5.60.0/theme/elegant.css +./codemirror-5.60.0/theme/erlang-dark.css +./codemirror-5.60.0/theme/gruvbox-dark.css +./codemirror-5.60.0/theme/hopscotch.css +./codemirror-5.60.0/theme/icecoder.css +./codemirror-5.60.0/theme/idea.css +./codemirror-5.60.0/theme/isotope.css +./codemirror-5.60.0/theme/lesser-dark.css +./codemirror-5.60.0/theme/liquibyte.css +./codemirror-5.60.0/theme/lucario.css +./codemirror-5.60.0/theme/material-darker.css +./codemirror-5.60.0/theme/material-ocean.css +./codemirror-5.60.0/theme/material-palenight.css +./codemirror-5.60.0/theme/material.css +./codemirror-5.60.0/theme/mbo.css +./codemirror-5.60.0/theme/mdn-like.css +./codemirror-5.60.0/theme/midnight.css +./codemirror-5.60.0/theme/monokai.css +./codemirror-5.60.0/theme/moxer.css +./codemirror-5.60.0/theme/neat.css +./codemirror-5.60.0/theme/neo.css +./codemirror-5.60.0/theme/night.css +./codemirror-5.60.0/theme/nord.css +./codemirror-5.60.0/theme/oceanic-next.css +./codemirror-5.60.0/theme/panda-syntax.css +./codemirror-5.60.0/theme/paraiso-dark.css +./codemirror-5.60.0/theme/paraiso-light.css +./codemirror-5.60.0/theme/pastel-on-dark.css +./codemirror-5.60.0/theme/railscasts.css +./codemirror-5.60.0/theme/rubyblue.css +./codemirror-5.60.0/theme/seti.css +./codemirror-5.60.0/theme/shadowfox.css +./codemirror-5.60.0/theme/solarized.css +./codemirror-5.60.0/theme/ssms.css +./codemirror-5.60.0/theme/the-matrix.css +./codemirror-5.60.0/theme/tomorrow-night-bright.css +./codemirror-5.60.0/theme/tomorrow-night-eighties.css +./codemirror-5.60.0/theme/ttcn.css +./codemirror-5.60.0/theme/twilight.css +./codemirror-5.60.0/theme/vibrant-ink.css +./codemirror-5.60.0/theme/xq-dark.css +./codemirror-5.60.0/theme/xq-light.css +./codemirror-5.60.0/theme/yeti.css +./codemirror-5.60.0/theme/yonce.css +./codemirror-5.60.0/theme/zenburn.css +./deploy.sh ./directory_hashes.js -./.nojekyll +./favicon.ico +./favicon.svg +./flake.lock +./flake.nix +./git-tutorial.css +./git-tutorial.js +./index.html +./ipfs-add.sh +./micro_ipfs.js +./pako +./pako/LICENSE +./pako/MIT-LICENSE +./pako/lib-slash-zlib-slash-README +./pako/pako.min.js +./sha1.js +./sha1.js/LICENSE +./sha1.js/sha1.js +./sha256.js ./sitemap.html