├── .gitattributes ├── .github ├── renovate.json └── workflows │ ├── docker.yaml │ ├── golang.yml │ ├── goreleaser.yml │ └── mkdocs.yml ├── .gitignore ├── .goreleaser.yaml ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── client ├── conf │ └── conf.go ├── main.go └── screenshot │ └── screenshot.go ├── docs ├── docs │ ├── client │ │ ├── build.md │ │ ├── documentation.md │ │ └── install.md │ ├── curl.md │ ├── index.md │ └── server │ │ ├── build.md │ │ ├── downloads.md │ │ ├── install.md │ │ ├── running.md │ │ └── serve.md ├── mkdocs.yml └── requirements.txt ├── go.mod ├── go.sum └── server ├── conf └── conf.go ├── curl ├── curl.go ├── data.go └── helpers.go ├── database └── database.go ├── examples ├── apache │ └── goploader.conf ├── caddy │ └── Caddyfile ├── conf.yml.example ├── supervisor │ └── goploader.conf └── systemd │ └── goploader.service ├── logger └── logger.go ├── main.go ├── metrics └── metrics.go ├── models ├── initialize.go ├── resources.go └── statistics.go ├── monitoring └── monitoring.go ├── router └── router.go ├── setup └── setup.go ├── utils ├── assets.go ├── assets │ ├── clipboard.min.js │ ├── custom.js │ ├── favicon.ico │ ├── fontawesome │ │ ├── css │ │ │ ├── font-awesome.css │ │ │ └── font-awesome.min.css │ │ └── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.svg │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ ├── jquery.min.js │ ├── manifest.json │ ├── milligram.min.css │ ├── prism │ │ ├── components │ │ │ ├── prism-abap.js │ │ │ ├── prism-abap.min.js │ │ │ ├── prism-actionscript.js │ │ │ ├── prism-actionscript.min.js │ │ │ ├── prism-ada.js │ │ │ ├── prism-ada.min.js │ │ │ ├── prism-apacheconf.js │ │ │ ├── prism-apacheconf.min.js │ │ │ ├── prism-apl.js │ │ │ ├── prism-apl.min.js │ │ │ ├── prism-applescript.js │ │ │ ├── prism-applescript.min.js │ │ │ ├── prism-asciidoc.js │ │ │ ├── prism-asciidoc.min.js │ │ │ ├── prism-aspnet.js │ │ │ ├── prism-aspnet.min.js │ │ │ ├── prism-autohotkey.js │ │ │ ├── prism-autohotkey.min.js │ │ │ ├── prism-autoit.js │ │ │ ├── prism-autoit.min.js │ │ │ ├── prism-bash.js │ │ │ ├── prism-bash.min.js │ │ │ ├── prism-basic.js │ │ │ ├── prism-basic.min.js │ │ │ ├── prism-batch.js │ │ │ ├── prism-batch.min.js │ │ │ ├── prism-bison.js │ │ │ ├── prism-bison.min.js │ │ │ ├── prism-brainfuck.js │ │ │ ├── prism-brainfuck.min.js │ │ │ ├── prism-bro.js │ │ │ ├── prism-bro.min.js │ │ │ ├── prism-c.js │ │ │ ├── prism-c.min.js │ │ │ ├── prism-clike.js │ │ │ ├── prism-clike.min.js │ │ │ ├── prism-coffeescript.js │ │ │ ├── prism-coffeescript.min.js │ │ │ ├── prism-cpp.js │ │ │ ├── prism-cpp.min.js │ │ │ ├── prism-crystal.js │ │ │ ├── prism-crystal.min.js │ │ │ ├── prism-csharp.js │ │ │ ├── prism-csharp.min.js │ │ │ ├── prism-css-extras.js │ │ │ ├── prism-css-extras.min.js │ │ │ ├── prism-css.js │ │ │ ├── prism-css.min.js │ │ │ ├── prism-d.js │ │ │ ├── prism-d.min.js │ │ │ ├── prism-dart.js │ │ │ ├── prism-dart.min.js │ │ │ ├── prism-diff.js │ │ │ ├── prism-diff.min.js │ │ │ ├── prism-django.js │ │ │ ├── prism-django.min.js │ │ │ ├── prism-docker.js │ │ │ ├── prism-docker.min.js │ │ │ ├── prism-eiffel.js │ │ │ ├── prism-eiffel.min.js │ │ │ ├── prism-elixir.js │ │ │ ├── prism-elixir.min.js │ │ │ ├── prism-erlang.js │ │ │ ├── prism-erlang.min.js │ │ │ ├── prism-fortran.js │ │ │ ├── prism-fortran.min.js │ │ │ ├── prism-fsharp.js │ │ │ ├── prism-fsharp.min.js │ │ │ ├── prism-gherkin.js │ │ │ ├── prism-gherkin.min.js │ │ │ ├── prism-git.js │ │ │ ├── prism-git.min.js │ │ │ ├── prism-glsl.js │ │ │ ├── prism-glsl.min.js │ │ │ ├── prism-go.js │ │ │ ├── prism-go.min.js │ │ │ ├── prism-graphql.js │ │ │ ├── prism-graphql.min.js │ │ │ ├── prism-groovy.js │ │ │ ├── prism-groovy.min.js │ │ │ ├── prism-haml.js │ │ │ ├── prism-haml.min.js │ │ │ ├── prism-handlebars.js │ │ │ ├── prism-handlebars.min.js │ │ │ ├── prism-haskell.js │ │ │ ├── prism-haskell.min.js │ │ │ ├── prism-haxe.js │ │ │ ├── prism-haxe.min.js │ │ │ ├── prism-http.js │ │ │ ├── prism-http.min.js │ │ │ ├── prism-icon.js │ │ │ ├── prism-icon.min.js │ │ │ ├── prism-inform7.js │ │ │ ├── prism-inform7.min.js │ │ │ ├── prism-ini.js │ │ │ ├── prism-ini.min.js │ │ │ ├── prism-j.js │ │ │ ├── prism-j.min.js │ │ │ ├── prism-jade.js │ │ │ ├── prism-jade.min.js │ │ │ ├── prism-java.js │ │ │ ├── prism-java.min.js │ │ │ ├── prism-javascript.js │ │ │ ├── prism-javascript.min.js │ │ │ ├── prism-jolie.js │ │ │ ├── prism-jolie.min.js │ │ │ ├── prism-json.js │ │ │ ├── prism-json.min.js │ │ │ ├── prism-jsx.js │ │ │ ├── prism-jsx.min.js │ │ │ ├── prism-julia.js │ │ │ ├── prism-julia.min.js │ │ │ ├── prism-keyman.js │ │ │ ├── prism-keyman.min.js │ │ │ ├── prism-kotlin.js │ │ │ ├── prism-kotlin.min.js │ │ │ ├── prism-latex.js │ │ │ ├── prism-latex.min.js │ │ │ ├── prism-less.js │ │ │ ├── prism-less.min.js │ │ │ ├── prism-livescript.js │ │ │ ├── prism-livescript.min.js │ │ │ ├── prism-lolcode.js │ │ │ ├── prism-lolcode.min.js │ │ │ ├── prism-lua.js │ │ │ ├── prism-lua.min.js │ │ │ ├── prism-makefile.js │ │ │ ├── prism-makefile.min.js │ │ │ ├── prism-markdown.js │ │ │ ├── prism-markdown.min.js │ │ │ ├── prism-markup.js │ │ │ ├── prism-markup.min.js │ │ │ ├── prism-matlab.js │ │ │ ├── prism-matlab.min.js │ │ │ ├── prism-mel.js │ │ │ ├── prism-mel.min.js │ │ │ ├── prism-mizar.js │ │ │ ├── prism-mizar.min.js │ │ │ ├── prism-monkey.js │ │ │ ├── prism-monkey.min.js │ │ │ ├── prism-nasm.js │ │ │ ├── prism-nasm.min.js │ │ │ ├── prism-nginx.js │ │ │ ├── prism-nginx.min.js │ │ │ ├── prism-nim.js │ │ │ ├── prism-nim.min.js │ │ │ ├── prism-nix.js │ │ │ ├── prism-nix.min.js │ │ │ ├── prism-nsis.js │ │ │ ├── prism-nsis.min.js │ │ │ ├── prism-objectivec.js │ │ │ ├── prism-objectivec.min.js │ │ │ ├── prism-ocaml.js │ │ │ ├── prism-ocaml.min.js │ │ │ ├── prism-oz.js │ │ │ ├── prism-oz.min.js │ │ │ ├── prism-parigp.js │ │ │ ├── prism-parigp.min.js │ │ │ ├── prism-parser.js │ │ │ ├── prism-parser.min.js │ │ │ ├── prism-pascal.js │ │ │ ├── prism-pascal.min.js │ │ │ ├── prism-perl.js │ │ │ ├── prism-perl.min.js │ │ │ ├── prism-php-extras.js │ │ │ ├── prism-php-extras.min.js │ │ │ ├── prism-php.js │ │ │ ├── prism-php.min.js │ │ │ ├── prism-powershell.js │ │ │ ├── prism-powershell.min.js │ │ │ ├── prism-processing.js │ │ │ ├── prism-processing.min.js │ │ │ ├── prism-prolog.js │ │ │ ├── prism-prolog.min.js │ │ │ ├── prism-properties.js │ │ │ ├── prism-properties.min.js │ │ │ ├── prism-protobuf.js │ │ │ ├── prism-protobuf.min.js │ │ │ ├── prism-puppet.js │ │ │ ├── prism-puppet.min.js │ │ │ ├── prism-pure.js │ │ │ ├── prism-pure.min.js │ │ │ ├── prism-python.js │ │ │ ├── prism-python.min.js │ │ │ ├── prism-q.js │ │ │ ├── prism-q.min.js │ │ │ ├── prism-qore.js │ │ │ ├── prism-qore.min.js │ │ │ ├── prism-r.js │ │ │ ├── prism-r.min.js │ │ │ ├── prism-reason.js │ │ │ ├── prism-reason.min.js │ │ │ ├── prism-rest.js │ │ │ ├── prism-rest.min.js │ │ │ ├── prism-rip.js │ │ │ ├── prism-rip.min.js │ │ │ ├── prism-roboconf.js │ │ │ ├── prism-roboconf.min.js │ │ │ ├── prism-ruby.js │ │ │ ├── prism-ruby.min.js │ │ │ ├── prism-rust.js │ │ │ ├── prism-rust.min.js │ │ │ ├── prism-sas.js │ │ │ ├── prism-sas.min.js │ │ │ ├── prism-sass.js │ │ │ ├── prism-sass.min.js │ │ │ ├── prism-scala.js │ │ │ ├── prism-scala.min.js │ │ │ ├── prism-scheme.js │ │ │ ├── prism-scheme.min.js │ │ │ ├── prism-scss.js │ │ │ ├── prism-scss.min.js │ │ │ ├── prism-smalltalk.js │ │ │ ├── prism-smalltalk.min.js │ │ │ ├── prism-smarty.js │ │ │ ├── prism-smarty.min.js │ │ │ ├── prism-sql.js │ │ │ ├── prism-sql.min.js │ │ │ ├── prism-stylus.js │ │ │ ├── prism-stylus.min.js │ │ │ ├── prism-swift.js │ │ │ ├── prism-swift.min.js │ │ │ ├── prism-tcl.js │ │ │ ├── prism-tcl.min.js │ │ │ ├── prism-textile.js │ │ │ ├── prism-textile.min.js │ │ │ ├── prism-twig.js │ │ │ ├── prism-twig.min.js │ │ │ ├── prism-typescript.js │ │ │ ├── prism-typescript.min.js │ │ │ ├── prism-vbnet.js │ │ │ ├── prism-vbnet.min.js │ │ │ ├── prism-verilog.js │ │ │ ├── prism-verilog.min.js │ │ │ ├── prism-vhdl.js │ │ │ ├── prism-vhdl.min.js │ │ │ ├── prism-vim.js │ │ │ ├── prism-vim.min.js │ │ │ ├── prism-wiki.js │ │ │ ├── prism-wiki.min.js │ │ │ ├── prism-xojo.js │ │ │ ├── prism-xojo.min.js │ │ │ ├── prism-yaml.js │ │ │ └── prism-yaml.min.js │ │ ├── prism-dark.css │ │ ├── prism-light.css │ │ └── prism.js │ ├── style.css │ ├── toastr.css │ ├── toastr.min.js │ └── webapp │ │ ├── gpldr.svg │ │ ├── gpldr144.png │ │ ├── gpldr168.png │ │ ├── gpldr192.png │ │ ├── gpldr48.png │ │ ├── gpldr72.png │ │ ├── gpldr96.png │ │ └── sw.js ├── scheme.go ├── servername.go ├── templates │ ├── code.tmpl │ ├── index.html │ ├── info.tmpl │ ├── mobile.html │ └── setup.html └── units.go └── views ├── resources.go ├── unencrypted.go └── web.go /.gitattributes: -------------------------------------------------------------------------------- 1 | server/utils/assets/* linguist-vendored 2 | -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": ["config:best-practices", ":automergeMinor", ":automergeDigest"] 4 | } 5 | -------------------------------------------------------------------------------- /.github/workflows/docker.yaml: -------------------------------------------------------------------------------- 1 | name: docker 2 | on: 3 | push: 4 | branches: ["main"] 5 | tags: ["*"] 6 | 7 | env: 8 | REGISTRY: ghcr.io 9 | IMAGE_NAME: ${{ github.repository }} 10 | 11 | jobs: 12 | build-and-push-image: 13 | runs-on: ubuntu-latest 14 | permissions: 15 | contents: read 16 | packages: write 17 | 18 | steps: 19 | - name: Checkout repository 20 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 21 | 22 | - name: Log in to the Container registry 23 | uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3 24 | with: 25 | registry: ${{ env.REGISTRY }} 26 | username: ${{ github.actor }} 27 | password: ${{ secrets.GITHUB_TOKEN }} 28 | 29 | - name: Extract metadata (tags, labels) for Docker 30 | id: meta 31 | uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5 32 | with: 33 | images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} 34 | tags: | 35 | type=semver,pattern={{version}} 36 | type=semver,pattern={{major}}.{{minor}} 37 | type=ref,event=branch 38 | type=sha 39 | 40 | - name: Build and push Docker image 41 | uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6 42 | with: 43 | context: . 44 | push: true 45 | tags: ${{ steps.meta.outputs.tags }} 46 | labels: ${{ steps.meta.outputs.labels }} 47 | -------------------------------------------------------------------------------- /.github/workflows/goreleaser.yml: -------------------------------------------------------------------------------- 1 | name: goreleaser 2 | 3 | on: 4 | push: 5 | tags: ["*"] 6 | 7 | permissions: 8 | contents: write 9 | 10 | jobs: 11 | goreleaser: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout 15 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 16 | with: 17 | fetch-depth: 0 18 | - name: Set up Go 19 | uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5 20 | with: 21 | go-version: stable 22 | - name: Run GoReleaser 23 | uses: goreleaser/goreleaser-action@9c156ee8a17a598857849441385a2041ef570552 # v6 24 | with: 25 | distribution: goreleaser 26 | version: "~> v2" 27 | args: release --clean 28 | env: 29 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 30 | -------------------------------------------------------------------------------- /.github/workflows/mkdocs.yml: -------------------------------------------------------------------------------- 1 | name: mdkocs 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: ["main"] 7 | paths: ["docs/**"] 8 | 9 | permissions: 10 | contents: read 11 | pages: write 12 | id-token: write 13 | 14 | concurrency: 15 | group: "pages" 16 | cancel-in-progress: false 17 | 18 | jobs: 19 | deploy: 20 | environment: 21 | name: github-pages 22 | url: ${{ steps.deployment.outputs.page_url }} 23 | runs-on: ubuntu-latest 24 | defaults: 25 | run: 26 | working-directory: docs/ 27 | steps: 28 | - name: Checkout 29 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 30 | - name: Setup Python 31 | uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 32 | with: 33 | python-version: 3.x 34 | - name: Install mkdocs 35 | run: pip install mkdocs-material 36 | - name: Build Documentation 37 | working-directory: "./docs/" 38 | run: mkdocs build 39 | - name: Setup Pages 40 | uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5 41 | - name: Upload artifact 42 | uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3 43 | with: 44 | path: "./docs/site/" 45 | - name: Deploy to GitHub Pages 46 | id: deployment 47 | uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4 48 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | client/client 2 | client/client* 3 | client/misc/ 4 | client/testfiles/ 5 | server/*.back 6 | server/*.db 7 | server/up/ 8 | server/server 9 | server/conf.yml 10 | server/ssl 11 | releases 12 | server/data/ 13 | prom.yml 14 | vendor/ 15 | docs/env/ 16 | docs/site/ 17 | .vscode/ 18 | dist/ 19 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Build Step 2 | FROM golang:1.24-alpine@sha256:b4f875e650466fa0fe62c6fd3f02517a392123eea85f1d7e69d85f780e4db1c1 AS builder 3 | 4 | # Dependencies 5 | RUN apk update && apk add --no-cache git 6 | 7 | # Source 8 | WORKDIR $GOPATH/src/github.com/Depado/goploader 9 | COPY go.mod go.sum ./ 10 | RUN go mod download 11 | RUN go mod verify 12 | COPY . . 13 | 14 | # Build 15 | RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o /tmp/gpldr github.com/Depado/goploader/server 16 | 17 | # Final Step 18 | FROM gcr.io/distroless/static@sha256:d9f9472a8f4541368192d714a995eb1a99bab1f7071fc8bde261d7eda3b667d8 19 | COPY --from=builder /tmp/gpldr /go/bin/gpldr 20 | 21 | VOLUME [ "/data" ] 22 | WORKDIR /data 23 | EXPOSE 8080 24 | ENTRYPOINT ["/go/bin/gpldr"] 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .DEFAULT_GOAL := all 2 | CGO_ENABLED=0 3 | VERSION=$(shell git describe --abbrev=0 --tags 2> /dev/null || echo "0.1.0") 4 | BUILD=$(shell git rev-parse HEAD 2> /dev/null || echo "undefined") 5 | BUILDDATE=$(shell LANG=en_us_88591 date) 6 | 7 | .PHONY: help 8 | help: 9 | @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' 10 | 11 | .PHONY: all 12 | all: ## Build both the client and the server in their respective directories 13 | go build -o ./client/client ./client 14 | go build -o ./server/server ./server 15 | 16 | .PHONY: docker 17 | docker: ## Build the docker image 18 | docker build -t gpldr:latest -t gpldr:$(BUILD) -f Dockerfile . 19 | 20 | .PHONY: release 21 | release: ## Create a new release 22 | goreleaser release --clean 23 | 24 | .PHONY: snapshot 25 | snapshot: ## Create a new snapshot release 26 | goreleaser release --snapshot --clean 27 | 28 | clean: 29 | -rm -r releases/ 30 | -rm -r goploader-server 31 | -------------------------------------------------------------------------------- /client/conf/conf.go: -------------------------------------------------------------------------------- 1 | package conf 2 | 3 | import ( 4 | "fmt" 5 | "log" 6 | "os" 7 | 8 | "github.com/mitchellh/go-homedir" 9 | 10 | "gopkg.in/yaml.v2" 11 | ) 12 | 13 | // Configuration is the struct representing a configuration. 14 | type Configuration struct { 15 | Service string `yaml:"service"` 16 | Token string `yaml:"token"` 17 | } 18 | 19 | // C is the exported global configuration variable 20 | var C Configuration 21 | 22 | // Load loads the given fp (file path) to the C global configuration variable. 23 | func Load() error { 24 | var err error 25 | var hd string 26 | var conf []byte 27 | 28 | if hd, err = homedir.Dir(); err != nil { 29 | return err 30 | } 31 | 32 | cdir := hd + "/.config/" 33 | cf := cdir + "goploader.conf.yml" 34 | 35 | if _, err = os.Stat(cdir); os.IsNotExist(err) { 36 | log.Printf("Creating %v directory.\n", cdir) 37 | if err := os.Mkdir(cdir, 0700); err != nil { 38 | return fmt.Errorf("unable to create %v directory: %w", cdir, err) 39 | } 40 | } else if err != nil { 41 | return err 42 | } 43 | if _, err = os.Stat(cf); os.IsNotExist(err) { 44 | log.Printf("Configuration file %v not found. Writing default configuration.\n", cf) 45 | C.Service = "http://127.0.0.1:8080" 46 | if conf, err = yaml.Marshal(C); err != nil { 47 | return err 48 | } 49 | return os.WriteFile(cf, conf, 0644) 50 | } else if err != nil { 51 | return err 52 | } 53 | 54 | if conf, err = os.ReadFile(cf); err != nil { 55 | return err 56 | } 57 | return yaml.Unmarshal(conf, &C) 58 | } 59 | -------------------------------------------------------------------------------- /client/screenshot/screenshot.go: -------------------------------------------------------------------------------- 1 | package screenshot 2 | 3 | import ( 4 | "fmt" 5 | "os/exec" 6 | ) 7 | 8 | // Program is a simple struct defining a screenshot program 9 | type Program struct { 10 | Command string 11 | WindowArgs []string 12 | FullScreenArgs []string 13 | } 14 | 15 | // GetCommand returns an *exec.Cmd 16 | func (p *Program) GetCommand(fp string, window bool) *exec.Cmd { 17 | var args []string 18 | if window { 19 | args = append(args, p.WindowArgs...) 20 | args = append(args, fp) 21 | } else { 22 | args = append(args, p.FullScreenArgs...) 23 | args = append(args, fp) 24 | } 25 | return exec.Command(p.Command, args...) 26 | } 27 | 28 | // Do executes a screenshot with the given program 29 | func (p *Program) Do(fp string, window bool) error { 30 | cmd := p.GetCommand(fp, window) 31 | cmd.Stderr = nil 32 | cmd.Stdout = nil 33 | return cmd.Run() 34 | } 35 | 36 | var progs = []Program{ 37 | { 38 | Command: "gnome-screenshot", 39 | WindowArgs: []string{"-a", "-f"}, 40 | FullScreenArgs: []string{"-f"}, 41 | }, 42 | { 43 | Command: "import", 44 | WindowArgs: []string{}, 45 | FullScreenArgs: []string{"-window", "root"}, 46 | }, 47 | { 48 | Command: "scrot", 49 | WindowArgs: []string{"-s"}, 50 | FullScreenArgs: []string{}, 51 | }, 52 | } 53 | 54 | // Do executes the screenshot, saving the file to the file path fp. 55 | func Do(fp string, window bool) error { 56 | var err error 57 | 58 | for _, p := range progs { 59 | if _, err = exec.LookPath(p.Command); err == nil { 60 | return p.Do(fp, window) 61 | } 62 | } 63 | 64 | return fmt.Errorf("no screenshot program found") 65 | } 66 | -------------------------------------------------------------------------------- /docs/docs/client/build.md: -------------------------------------------------------------------------------- 1 | If you don't want to download a pre-compiled version of goploader client you can 2 | build it from source. Otherwise you can directly download a pre-compiled binary 3 | [here](install.md). 4 | 5 | ## Prerequisites 6 | 7 | - A recent version Go installed on your machine 8 | - `$GOPATH` should be set to the appropriate directory 9 | - The `dep` tool must be installed : `go get -u github.com/golang/dep/cmd/dep` 10 | 11 | ## Clone the repo 12 | 13 | ```shell 14 | $ mkdir -p $GOPATH/src/github.com/Depado/ 15 | $ cd $GOPATH/src/github.com/Depado/ 16 | $ git clone https://github.com/Depado/goploader.git 17 | $ cd goploader/ 18 | $ dep ensure 19 | ``` 20 | 21 | ## Build 22 | 23 | Now all you have to do is build the client : 24 | 25 | ```shell 26 | $ cd 27 | $ go build -i -o gpldr github.com/Depado/goploader/client 28 | ``` 29 | 30 | ## Next steps 31 | 32 | Ensure you have `$GOPATH/bin` added to your standard `$PATH` so you can have 33 | access to the binary you just built. Then head over to 34 | [the client's documentation](documentation.md) to learn how to use it. 35 | -------------------------------------------------------------------------------- /docs/docs/client/install.md: -------------------------------------------------------------------------------- 1 | ## Archlinux 2 | 3 | If you're running Archlinux, there is a `goploader-client-git` package in AUR. 4 | 5 | Thanks to [krion](https://twitter.com/dropinthebin) for setting up the AUR 6 | package. 7 | 8 | !!! note 9 | This package will compile and install the latest version of goploader and 10 | will also install Go in your machine if you don't already have it. 11 | 12 | ## Binary Downloads 13 | 26 | 27 | ### Linux 28 | 29 | Linux 64-bit 30 | Linux 32-bit 31 | Linux ARMv7 32 | 33 | ### FreeBSD 34 | 35 | FreeBSD 64-bit 36 | FreeBSD 32-bit 37 | 38 | ### MacOS 39 | 40 | Darwin 64-bit 41 | Darwin 32-bit 42 | 43 | ### Windows 44 | 45 | Windows 64-bit 46 | Windows 32-bit 47 | -------------------------------------------------------------------------------- /docs/docs/server/build.md: -------------------------------------------------------------------------------- 1 | # Building from source 2 | 3 | If you don't want to download a pre-compiled version of goploader server you can 4 | build it from source. 5 | 6 | ## Prerequisites 7 | 8 | - A recent version Go installed on your machine 9 | - `$GOPATH` should be set to the appropriate directory 10 | 11 | ## Clone the repo 12 | 13 | ```shell 14 | $ mkdir -p $GOPATH/src/github.com/Depado/ 15 | $ cd $GOPATH/src/github.com/Depado/ 16 | $ git clone https://github.com/Depado/goploader.git 17 | $ cd goploader/ 18 | ``` 19 | 20 | ## Build 21 | 22 | Now all you have to do is build the project : 23 | 24 | ```shell 25 | $ go build -o server github.com/Depado/goploader/server 26 | ``` 27 | 28 | That's it. Now head to the [setup](install.md) part to see how to 29 | generate or create the `conf.yml` file that is necessary for goploader to run. 30 | -------------------------------------------------------------------------------- /docs/docs/server/downloads.md: -------------------------------------------------------------------------------- 1 | # Downloads 2 | 3 | All downloads can be found on the 4 | [releases](https://github.com/depado/goploader/releases) page on GitHub. This 5 | page exists to explain the different download types. 6 | 7 | ## Standalone Downloads 8 | 9 | The standalone distribution contains only a binary. All assets and templates 10 | (html files, css, js, etc) are included directly in the binary. If you don't 11 | intend to modify those assets, this distribution is for you. All you have to 12 | do is download the archive, and go the [Setup](install.md) page to read 13 | the instructions on how to setup goploader server. 14 | 15 | ## Simple Downloads 16 | 17 | These downloads contain the pre-compiled binary along with all its assets. 18 | You're free to modify what you want in those assets. (HTML templates, CSS, JS) 19 | 20 | -------------------------------------------------------------------------------- /docs/docs/server/running.md: -------------------------------------------------------------------------------- 1 | ## Running with Supervisor 2 | 3 | I enjoy supervisor for its ease of use and the control it offers on the process. 4 | You can run the goploader server using a configuration file that could look like 5 | that : 6 | 7 | ```ini 8 | [program:goploader] 9 | directory=/home/youruser/goploader/ 10 | command=/home/youruser/goploader/server 11 | user=youruser 12 | autostart=true 13 | autorestart=true 14 | stdout_logfile=/var/log/supervisor/goploader_stdout.log 15 | stderr_logfile=/var/log/supervisor/goploader_stderr.log 16 | ``` 17 | 18 | Of course you need to replace `youruser` with the user you installed goploader 19 | with. 20 | 21 | ## Running with Systemd 22 | 23 | You can also use a Systemd Unit to launch Goploader on boot. 24 | 25 | ```ini 26 | [Unit] 27 | Description=goploader 28 | 29 | [Service] 30 | Type=simple 31 | User=youruser 32 | WorkingDirectory=/home/youruser/goploader 33 | ExecStart=/home/youruser/goploader/server 34 | 35 | 36 | [Install] 37 | WantedBy=multi-user.target 38 | ``` 39 | 40 | As for supervisor, you'll need to replace `youruser` with the user you installed 41 | goploader with. -------------------------------------------------------------------------------- /docs/docs/server/serve.md: -------------------------------------------------------------------------------- 1 | ## Serving with Caddy 2 | 3 | ``` 4 | up.example.com { 5 | proxy / 127.0.0.1:8002 { 6 | transparent 7 | } 8 | gzip 9 | } 10 | ``` 11 | 12 | ## Serving with Apache 13 | 14 | ```xml 15 | 16 | ServerName up.example.com 17 | DocumentRoot /data/goploader-server 18 | 19 | 20 | Require all granted 21 | 22 | 23 | ProxyPass / "http://localhost:8080/" 24 | ProxyPassReverse / "http://localhost:8080/" 25 | 26 | LogLevel warn 27 | ErrorLog /data/logs/apache2/goploader.log 28 | CustomLog /var/log/apache2/goploader.log combined 29 | 30 | ``` -------------------------------------------------------------------------------- /docs/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Goploader 2 | repo_url: https://github.com/depado/goploader 3 | site_author: depado 4 | theme: 5 | name: 'material' 6 | feature: 7 | tabs: true 8 | palette: 9 | - scheme: default 10 | toggle: 11 | icon: material/weather-night 12 | name: Switch to dark mode 13 | - scheme: slate 14 | toggle: 15 | icon: material/weather-sunny 16 | name: Switch to light mode 17 | 18 | markdown_extensions: 19 | - toc: 20 | permalink: True 21 | - admonition 22 | - codehilite 23 | - pymdownx.arithmatex 24 | - pymdownx.betterem: 25 | smart_enable: all 26 | - pymdownx.caret 27 | - pymdownx.critic 28 | - pymdownx.details 29 | - pymdownx.emoji: 30 | emoji_generator: !!python/name:pymdownx.emoji.to_svg 31 | - pymdownx.magiclink 32 | - pymdownx.mark 33 | - pymdownx.smartsymbols 34 | - pymdownx.superfences 35 | - pymdownx.tasklist: 36 | custom_checkbox: true 37 | - pymdownx.tilde 38 | nav: 39 | - Home: index.md 40 | - Server Guide: 41 | - Build From Source: server/build.md 42 | - Downloads: server/downloads.md 43 | - Setup: server/install.md 44 | - Running: server/running.md 45 | - Serve: server/serve.md 46 | - Client: 47 | - Build From Source: client/build.md 48 | - Downloads and Install: client/install.md 49 | - Documentation: client/documentation.md 50 | - Curl: curl.md 51 | extra: 52 | social: 53 | - icon: fontawesome/brands/github-alt 54 | link: https://github.com/Depado 55 | - icon: fontawesome/brands/bluesky 56 | link: https://bsky.app/profile/depa.do 57 | 58 | 59 | -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | babel==2.17.0 2 | certifi==2025.4.26 3 | charset-normalizer==3.4.2 4 | click==8.2.1 5 | colorama==0.4.6 6 | ghp-import==2.1.0 7 | idna==3.10 8 | Jinja2==3.1.6 9 | Markdown==3.8 10 | MarkupSafe==3.0.2 11 | mergedeep==1.3.4 12 | mkdocs==1.6.1 13 | mkdocs-get-deps==0.2.0 14 | mkdocs-material==9.6.14 15 | mkdocs-material-extensions==1.3.1 16 | packaging==25.0 17 | paginate==0.5.7 18 | pathspec==0.12.1 19 | platformdirs==4.3.8 20 | Pygments==2.19.1 21 | pymdown-extensions==10.15 22 | python-dateutil==2.9.0.post0 23 | PyYAML==6.0.2 24 | pyyaml_env_tag==1.1 25 | regex==2024.11.6 26 | requests==2.32.3 27 | six==1.17.0 28 | urllib3==2.4.0 29 | watchdog==6.0.0 30 | -------------------------------------------------------------------------------- /server/curl/curl.go: -------------------------------------------------------------------------------- 1 | package curl 2 | 3 | import ( 4 | "github.com/gin-gonic/gin" 5 | 6 | "github.com/Depado/goploader/server/utils" 7 | ) 8 | 9 | // WriteTutorial will write to a gin.Context's writer the full curl tutorial 10 | func WriteTutorial(c *gin.Context) { 11 | w := c.Writer 12 | Header(w, header) 13 | Title(w, "Usage\n") 14 | Standard(w, "Upload from stdin") 15 | Command(w, "$ tree | curl -F file=@- "+utils.ServerURI(c)) 16 | Standard(w, "Simple file upload") 17 | Command(w, "$ curl -F file=@myfile.txt "+utils.ServerURI(c)) 18 | } 19 | -------------------------------------------------------------------------------- /server/curl/data.go: -------------------------------------------------------------------------------- 1 | package curl 2 | 3 | var header = ` 4 | _ _ 5 | | | | | 6 | ____ ____ | | _ | | ____ 7 | / _ || _ \ | | / || | / ___) 8 | ( ( | || | | || |( (_| || | 9 | \_|| || ||_/ |_| \____||_| 10 | (_____||_| 11 | 12 | Because file sharing is meant to be easy 13 | ~ Server-side encrypted file sharing ~ 14 | ` 15 | -------------------------------------------------------------------------------- /server/curl/helpers.go: -------------------------------------------------------------------------------- 1 | package curl 2 | 3 | import ( 4 | "io" 5 | 6 | "github.com/fatih/color" 7 | ) 8 | 9 | // Multiple formats being exported for later reuse 10 | var ( 11 | HeaderFormat = color.New(color.Bold, color.FgBlue) 12 | TitleFormat = color.New(color.Bold, color.Underline, color.FgRed) 13 | StandardFormat = color.New(color.FgWhite) 14 | CommandFormat = color.New(color.BgBlack, color.FgHiGreen) 15 | ExplanationFormat = color.New(color.Italic, color.FgWhite) 16 | ) 17 | 18 | // Header writes a text using the HeaderFormat to the w io.Writer 19 | func Header(w io.Writer, text string) { 20 | HeaderFormat.Fprintln(w, text) //nolint:errcheck 21 | } 22 | 23 | // Title writes a text using the TitleFormat to the w io.Writer 24 | func Title(w io.Writer, text string) { 25 | TitleFormat.Fprintln(w, text) //nolint:errcheck 26 | } 27 | 28 | // Standard writes a text using the StandardFormat to the w io.Writer 29 | func Standard(w io.Writer, text string) { 30 | StandardFormat.Fprintln(w, text) //nolint:errcheck 31 | } 32 | 33 | // Command writes a text using the CommandFormat to the w io.Writer 34 | func Command(w io.Writer, text string) { 35 | CommandFormat.Fprintln(w, text) //nolint:errcheck 36 | } 37 | 38 | // Explanation writes a text using the ExplanationFormat to the w io.Writer 39 | func Explanation(w io.Writer, text string) { 40 | ExplanationFormat.Fprintln(w, text) //nolint:errcheck 41 | } 42 | 43 | func init() { 44 | color.NoColor = false 45 | } 46 | -------------------------------------------------------------------------------- /server/database/database.go: -------------------------------------------------------------------------------- 1 | package database 2 | 3 | import ( 4 | "time" 5 | 6 | "github.com/asdine/storm" 7 | bolt "go.etcd.io/bbolt" 8 | 9 | "github.com/Depado/goploader/server/conf" 10 | ) 11 | 12 | // DB is the main database. Put in separate package for use in external ones. 13 | var DB *storm.DB 14 | 15 | // Initialize initializes the database (creating it if necessary) 16 | func Initialize() error { 17 | var err error 18 | DB, err = storm.Open(conf.C.DB, storm.BoltOptions(0600, &bolt.Options{Timeout: 1 * time.Second})) 19 | return err 20 | } 21 | -------------------------------------------------------------------------------- /server/examples/apache/goploader.conf: -------------------------------------------------------------------------------- 1 | 2 | ServerName up.example.com 3 | DocumentRoot /data/goploader-server 4 | 5 | 6 | Require all granted 7 | 8 | 9 | ProxyPass / "http://localhost:8080/" 10 | ProxyPassReverse / "http://localhost:8080/" 11 | 12 | LogLevel warn 13 | ErrorLog /data/logs/apache2/goploader.log 14 | CustomLog /var/log/apache2/goploader.log combined 15 | 16 | -------------------------------------------------------------------------------- /server/examples/caddy/Caddyfile: -------------------------------------------------------------------------------- 1 | up.example.com { 2 | proxy / 127.0.0.1:8002 { 3 | transparent 4 | } 5 | gzip 6 | } 7 | -------------------------------------------------------------------------------- /server/examples/conf.yml.example: -------------------------------------------------------------------------------- 1 | name_server: yourdomain.tld 2 | upload_dir: up/ 3 | db: goploader.db 4 | port: 8080 5 | uniuri_length: 10 6 | key_length: 16 7 | size_limit: 20 8 | no_web: false 9 | fulldoc: true 10 | loglevel: info 11 | stats: true 12 | sensitive_mode: false 13 | -------------------------------------------------------------------------------- /server/examples/supervisor/goploader.conf: -------------------------------------------------------------------------------- 1 | [program:goploader] 2 | directory=/home/youruser/goploader/ 3 | command=/home/youruser/goploader/server 4 | user=youruser 5 | autostart=true 6 | autorestart=true 7 | stdout_logfile=/var/log/supervisor/goploader_stdout.log 8 | stderr_logfile=/var/log/supervisor/goploader_stderr.log 9 | -------------------------------------------------------------------------------- /server/examples/systemd/goploader.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=goploader 3 | 4 | [Service] 5 | Type=simple 6 | User=www-data 7 | WorkingDirectory=/data/goploader-server 8 | ExecStart=/data/goploader-server/server 9 | 10 | 11 | [Install] 12 | WantedBy=multi-user.target 13 | -------------------------------------------------------------------------------- /server/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "log" 6 | "net/http" 7 | 8 | "github.com/gin-gonic/gin" 9 | flag "github.com/ogier/pflag" 10 | 11 | "github.com/Depado/goploader/server/conf" 12 | "github.com/Depado/goploader/server/database" 13 | "github.com/Depado/goploader/server/logger" 14 | "github.com/Depado/goploader/server/models" 15 | "github.com/Depado/goploader/server/monitoring" 16 | "github.com/Depado/goploader/server/router" 17 | "github.com/Depado/goploader/server/setup" 18 | ) 19 | 20 | func main() { 21 | var err error 22 | var cp string 23 | var initial bool 24 | var r *gin.Engine 25 | 26 | flag.StringVarP(&cp, "conf", "c", "conf.yml", "Local path to configuration file.") 27 | flag.BoolVarP(&initial, "initial", "i", false, "Run the initial setup of the server.") 28 | flag.Parse() 29 | 30 | if err = conf.Load(cp, !initial); err != nil || initial { 31 | setup.Run() 32 | } 33 | if err = database.Initialize(); err != nil { 34 | log.Fatal(err) 35 | } 36 | defer database.DB.Close() //nolint:errcheck 37 | 38 | if err = models.Initialize(); err != nil { 39 | log.Fatal(err) 40 | } 41 | go monitoring.Monit() 42 | if r, err = router.Setup(); err != nil { 43 | log.Fatal(err) 44 | } 45 | 46 | logger.Info("server", "Started goploader server on port", conf.C.Port) 47 | if conf.C.ServeHTTPS { 48 | if err = http.ListenAndServeTLS(fmt.Sprintf(":%d", conf.C.Port), conf.C.SSLCert, conf.C.SSLPrivKey, r); err != nil { 49 | logger.Err("server", "Fatal error", err) 50 | } 51 | } else { 52 | if err = r.Run(fmt.Sprintf("%s:%d", conf.C.Host, conf.C.Port)); err != nil { 53 | logger.Err("server", "Fatal error", err) 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /server/metrics/metrics.go: -------------------------------------------------------------------------------- 1 | package metrics 2 | 3 | import "github.com/prometheus/client_golang/prometheus" 4 | 5 | const namespace = "gpldr" 6 | 7 | // UploadedFilesTotal is a prometheus counter to monitor the number of uploaded 8 | // files 9 | var UploadedFilesTotal = prometheus.NewCounterVec( 10 | prometheus.CounterOpts{ 11 | Namespace: namespace, 12 | Name: "uploaded_files_total", 13 | Help: "Count of files uploaded", 14 | }, 15 | []string{"ip"}, 16 | ) 17 | 18 | // UploadedFilesSizeTotal is a prometheus counter to monitor the size of 19 | // uploaded files 20 | var UploadedFilesSizeTotal = prometheus.NewCounter( 21 | prometheus.CounterOpts{ 22 | Namespace: namespace, 23 | Name: "uploaded_files_size_total", 24 | Help: "Size of uploaded files", 25 | }, 26 | ) 27 | 28 | func init() { 29 | prometheus.MustRegister(UploadedFilesSizeTotal, UploadedFilesTotal) 30 | } 31 | -------------------------------------------------------------------------------- /server/router/router.go: -------------------------------------------------------------------------------- 1 | package router 2 | 3 | import ( 4 | "github.com/gin-gonic/gin" 5 | "github.com/prometheus/client_golang/prometheus/promhttp" 6 | 7 | "github.com/Depado/goploader/server/conf" 8 | "github.com/Depado/goploader/server/utils" 9 | "github.com/Depado/goploader/server/views" 10 | ) 11 | 12 | // Setup creates the gin Engine 13 | func Setup() (*gin.Engine, error) { 14 | var err error 15 | 16 | gin.SetMode(gin.ReleaseMode) 17 | r := gin.New() 18 | r.Use(gin.Recovery()) 19 | if !conf.C.NoWeb { 20 | if err = utils.InitAssetsTemplates(r, true, "index.html", "mobile.html", "code.tmpl"); err != nil { 21 | return nil, err 22 | } 23 | r.Static("/releases", "releases") 24 | r.GET("/", views.Index) 25 | r.GET("/sw.js", func(c *gin.Context) { 26 | c.File("sw.js") 27 | }) 28 | r.GET("/simple", views.SimpleIndex) 29 | 30 | } 31 | if conf.C.DisableEncryption { 32 | r.POST("/", views.Create) 33 | r.GET("/v/:uniuri", views.View) 34 | r.HEAD("/v/:uniuri", views.Head) 35 | r.GET("/v/:uniuri/:lang", views.ViewCode) 36 | } else { 37 | r.POST("/", views.CreateC) 38 | r.GET("/v/:uniuri/:key", views.ViewC) 39 | r.HEAD("/v/:uniuri/:key", views.HeadC) 40 | r.GET("/v/:uniuri/:key/:lang", views.ViewCCode) 41 | //TODO: Add HEAD for ViewCCode 42 | } 43 | if conf.C.PrometheusEnabled { 44 | r.Any("/metrics", gin.WrapH(promhttp.Handler())) 45 | } 46 | return r, nil 47 | } 48 | -------------------------------------------------------------------------------- /server/utils/assets.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "embed" 5 | "html/template" 6 | "net/http" 7 | "io/fs" 8 | 9 | "github.com/gin-gonic/gin" 10 | 11 | "github.com/Depado/goploader/server/logger" 12 | ) 13 | 14 | //go:embed all:assets 15 | var assets embed.FS 16 | //go:embed all:templates 17 | var templates embed.FS 18 | 19 | // InitAssetsTemplates initializes the router to use embedded assets 20 | func InitAssetsTemplates(r *gin.Engine, verbose bool, names ...string) error { 21 | template := template.Must(template.ParseFS(templates, "templates/*")) 22 | r.SetHTMLTemplate(template) 23 | logger.Debug("server", "Loaded templates") 24 | 25 | assetsFp, _ := fs.Sub(assets, "assets") 26 | r.StaticFS("/static", http.FS(assetsFp)) 27 | logger.Debug("server", "Loaded assets") 28 | return nil 29 | } 30 | -------------------------------------------------------------------------------- /server/utils/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/favicon.ico -------------------------------------------------------------------------------- /server/utils/assets/fontawesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/fontawesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /server/utils/assets/fontawesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/fontawesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /server/utils/assets/fontawesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/fontawesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /server/utils/assets/fontawesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/fontawesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /server/utils/assets/fontawesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/fontawesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /server/utils/assets/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Goploader", 3 | "lang": "en-US", 4 | "scope": "/simple", 5 | "orientation": "portrait-primary", 6 | "short_name": "Goploader", 7 | "start_url": "/simple", 8 | "display": "standalone", 9 | "background_color": "#FFF", 10 | "theme_color": "#9b4dca", 11 | "description": "Goploader App", 12 | "icons": [{ 13 | "src": "/static/webapp/gpldr48.png", 14 | "sizes": "48x48", 15 | "type": "image/png" 16 | }, { 17 | "src": "/static/webapp/gpldr72.png", 18 | "sizes": "72x72", 19 | "type": "image/png" 20 | }, { 21 | "src": "/static/webapp/gpldr96.png", 22 | "sizes": "96x96", 23 | "type": "image/png" 24 | }, { 25 | "src": "/static/webapp/gpldr144.png", 26 | "sizes": "144x144", 27 | "type": "image/png" 28 | }, { 29 | "src": "/static/webapp/gpldr168.png", 30 | "sizes": "168x168", 31 | "type": "image/png" 32 | }, { 33 | "src": "/static/webapp/gpldr192.png", 34 | "sizes": "192x192", 35 | "type": "image/png" 36 | }] 37 | } -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-actionscript.js: -------------------------------------------------------------------------------- 1 | Prism.languages.actionscript = Prism.languages.extend('javascript', { 2 | 'keyword': /\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/, 3 | 'operator': /\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/ 4 | }); 5 | Prism.languages.actionscript['class-name'].alias = 'function'; 6 | 7 | if (Prism.languages.markup) { 8 | Prism.languages.insertBefore('actionscript', 'string', { 9 | 'xml': { 10 | pattern: /(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\\1|\\?(?!\1)[\s\S])*\2)*\s*\/?>/, 11 | lookbehind: true, 12 | inside: { 13 | rest: Prism.languages.markup 14 | } 15 | } 16 | }); 17 | } -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-actionscript.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.actionscript=Prism.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),Prism.languages.actionscript["class-name"].alias="function",Prism.languages.markup&&Prism.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\\1|\\?(?!\1)[\s\S])*\2)*\s*\/?>/,lookbehind:!0,inside:{rest:Prism.languages.markup}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-ada.js: -------------------------------------------------------------------------------- 1 | Prism.languages.ada = { 2 | 'comment': /--.*/, 3 | 'string': /"(?:""|[^"\r\f\n])*"/i, 4 | 'number': [ 5 | { 6 | pattern: /\b\d(?:_?\d)*#[0-9A-F](?:_?[0-9A-F])*(?:\.[0-9A-F](?:_?[0-9A-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i 7 | }, 8 | { 9 | pattern: /\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i 10 | } 11 | ], 12 | 'attr-name': /\b'\w+/i, 13 | 'keyword': /\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i, 14 | 'boolean': /\b(?:true|false)\b/i, 15 | 'operator': /<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/, 16 | 'punctuation': /\.\.?|[,;():]/, 17 | 'char': /'.'/, 18 | 'variable': /\b[a-z](?:[_a-z\d])*\b/i 19 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-ada.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/i,number:[{pattern:/\b\d(?:_?\d)*#[0-9A-F](?:_?[0-9A-F])*(?:\.[0-9A-F](?:_?[0-9A-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/i,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,"boolean":/\b(?:true|false)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,"char":/'.'/,variable:/\b[a-z](?:[_a-z\d])*\b/i}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-apl.js: -------------------------------------------------------------------------------- 1 | Prism.languages.apl = { 2 | 'comment': /(?:⍝|#[! ]).*$/m, 3 | 'string': { 4 | pattern: /'(?:[^'\r\n]|'')*'/, 5 | greedy: true 6 | }, 7 | 'number': /¯?(?:\d*\.?\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:\d*\.?\d+(?:e[\+¯]?\d+)?|¯|∞))?/i, 8 | 'statement': /:[A-Z][a-z][A-Za-z]*\b/, 9 | 'system-function': { 10 | pattern: /⎕[A-Z]+/i, 11 | alias: 'function' 12 | }, 13 | 'constant': /[⍬⌾#⎕⍞]/, 14 | 'function': /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/, 15 | 'monadic-operator': { 16 | pattern: /[\\\/⌿⍀¨⍨⌶&∥]/, 17 | alias: 'operator' 18 | }, 19 | 'dyadic-operator': { 20 | pattern: /[.⍣⍠⍤∘⌸@⌺]/, 21 | alias: 'operator' 22 | }, 23 | 'assignment': { 24 | pattern: /←/, 25 | alias: 'keyword' 26 | }, 27 | 'punctuation': /[\[;\]()◇⋄]/, 28 | 'dfn': { 29 | pattern: /[{}⍺⍵⍶⍹∇⍫:]/, 30 | alias: 'builtin' 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-apl.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.apl={comment:/(?:⍝|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/¯?(?:\d*\.?\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:\d*\.?\d+(?:e[\+¯]?\d+)?|¯|∞))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/⎕[A-Z]+/i,alias:"function"},constant:/[⍬⌾#⎕⍞]/,"function":/[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,"monadic-operator":{pattern:/[\\\/⌿⍀¨⍨⌶&∥]/,alias:"operator"},"dyadic-operator":{pattern:/[.⍣⍠⍤∘⌸@⌺]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}⍺⍵⍶⍹∇⍫:]/,alias:"builtin"}}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-applescript.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.applescript={comment:[/\(\*(?:\(\*[\s\S]*?\*\)|[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\?.)*?"/,number:/\b-?\d*\.?\d+([Ee]-?\d+)?\b/,operator:[/[&=≠≤≥*+\-\/÷^]|[<>]=?/,/\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,"class":{pattern:/\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,alias:"builtin"},punctuation:/[{}():,¬«»《》]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-aspnet.js: -------------------------------------------------------------------------------- 1 | Prism.languages.aspnet = Prism.languages.extend('markup', { 2 | 'page-directive tag': { 3 | pattern: /<%\s*@.*%>/i, 4 | inside: { 5 | 'page-directive tag': /<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i, 6 | rest: Prism.languages.markup.tag.inside 7 | } 8 | }, 9 | 'directive tag': { 10 | pattern: /<%.*%>/i, 11 | inside: { 12 | 'directive tag': /<%\s*?[$=%#:]{0,2}|%>/i, 13 | rest: Prism.languages.csharp 14 | } 15 | } 16 | }); 17 | // Regexp copied from prism-markup, with a negative look-ahead added 18 | Prism.languages.aspnet.tag.pattern = /<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\s\S])*\1|[^\s'">=]+))?)*\s*\/?>/i; 19 | 20 | // match directives of attribute value foo="<% Bar %>" 21 | Prism.languages.insertBefore('inside', 'punctuation', { 22 | 'directive tag': Prism.languages.aspnet['directive tag'] 23 | }, Prism.languages.aspnet.tag.inside["attr-value"]); 24 | 25 | Prism.languages.insertBefore('aspnet', 'comment', { 26 | 'asp comment': /<%--[\s\S]*?--%>/ 27 | }); 28 | 29 | // script runat="server" contains csharp, not javascript 30 | Prism.languages.insertBefore('aspnet', Prism.languages.javascript ? 'script' : 'tag', { 31 | 'asp script': { 32 | pattern: /()[\s\S]*?(?=<\/script>)/i, 33 | lookbehind: true, 34 | inside: Prism.languages.csharp || {} 35 | } 36 | }); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-aspnet.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.aspnet=Prism.languages.extend("markup",{"page-directive tag":{pattern:/<%\s*@.*%>/i,inside:{"page-directive tag":/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,rest:Prism.languages.markup.tag.inside}},"directive tag":{pattern:/<%.*%>/i,inside:{"directive tag":/<%\s*?[$=%#:]{0,2}|%>/i,rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\s\S])*\1|[^\s'">=]+))?)*\s*\/?>/i,Prism.languages.insertBefore("inside","punctuation",{"directive tag":Prism.languages.aspnet["directive tag"]},Prism.languages.aspnet.tag.inside["attr-value"]),Prism.languages.insertBefore("aspnet","comment",{"asp comment":/<%--[\s\S]*?--%>/}),Prism.languages.insertBefore("aspnet",Prism.languages.javascript?"script":"tag",{"asp script":{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.csharp||{}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-autoit.js: -------------------------------------------------------------------------------- 1 | Prism.languages.autoit = { 2 | "comment": [ 3 | /;.*/, 4 | { 5 | // The multi-line comments delimiters can actually be commented out with ";" 6 | pattern: /(^\s*)#(?:comments-start|cs)[\s\S]*?^\s*#(?:comments-end|ce)/m, 7 | lookbehind: true 8 | } 9 | ], 10 | "url": { 11 | pattern: /(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m, 12 | lookbehind: true 13 | }, 14 | "string": { 15 | pattern: /(["'])(?:\1\1|(?!\1)[^\r\n])*\1/, 16 | greedy: true, 17 | inside: { 18 | "variable": /([%$@])\w+\1/ 19 | } 20 | }, 21 | "directive": { 22 | pattern: /(^\s*)#\w+/m, 23 | lookbehind: true, 24 | alias: 'keyword' 25 | }, 26 | "function": /\b\w+(?=\()/, 27 | // Variables and macros 28 | "variable": /[$@]\w+/, 29 | "keyword": /\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i, 30 | "number": /\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i, 31 | "boolean": /\b(?:True|False)\b/i, 32 | "operator": /<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i, 33 | "punctuation": /[\[\]().,:]/ 34 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-autoit.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.autoit={comment:[/;.*/,{pattern:/(^\s*)#(?:comments-start|cs)[\s\S]*?^\s*#(?:comments-end|ce)/m,lookbehind:!0}],url:{pattern:/(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^\s*)#\w+/m,lookbehind:!0,alias:"keyword"},"function":/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,"boolean":/\b(?:True|False)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i,punctuation:/[\[\]().,:]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-basic.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.basic={string:/"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,comment:{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},number:/(?:\b|\B[.-])(?:\d+\.?\d*)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,"function":/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-batch.min.js: -------------------------------------------------------------------------------- 1 | !function(e){var r=/%%?[~:\w]+%?|!\S+!/,t={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},n=/"[^"]*"/,i=/(?:\b|-)\d+\b/;e.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/^for\b|\b(?:in|do)\b/i,string:n,parameter:t,variable:r,number:i,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|\S+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|\S+))/im,lookbehind:!0,inside:{keyword:/^if\b|\b(?:not|cmdextversion|defined|errorlevel|exist)\b/i,string:n,parameter:t,variable:r,number:i,operator:/\^|==|\b(?:equ|neq|lss|leq|gtr|geq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: ?\/[a-z](?:[ :](?:"[^"]*"|\S+))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:n,parameter:t,variable:[r,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:i,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^\w+\b/i,string:n,parameter:t,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:r,number:i,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}}(Prism); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-bison.js: -------------------------------------------------------------------------------- 1 | Prism.languages.bison = Prism.languages.extend('c', {}); 2 | 3 | Prism.languages.insertBefore('bison', 'comment', { 4 | 'bison': { 5 | // This should match all the beginning of the file 6 | // including the prologue(s), the bison declarations and 7 | // the grammar rules. 8 | pattern: /^[\s\S]*?%%[\s\S]*?%%/, 9 | inside: { 10 | 'c': { 11 | // Allow for one level of nested braces 12 | pattern: /%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/, 13 | inside: { 14 | 'delimiter': { 15 | pattern: /^%?\{|%?\}$/, 16 | alias: 'punctuation' 17 | }, 18 | 'bison-variable': { 19 | pattern: /[$@](?:<[^\s>]+>)?[\w$]+/, 20 | alias: 'variable', 21 | inside: { 22 | 'punctuation': /<|>/ 23 | } 24 | }, 25 | rest: Prism.languages.c 26 | } 27 | }, 28 | 'comment': Prism.languages.c.comment, 29 | 'string': Prism.languages.c.string, 30 | 'property': /\S+(?=:)/, 31 | 'keyword': /%\w+/, 32 | 'number': { 33 | pattern: /(^|[^@])\b(?:0x[\da-f]+|\d+)/i, 34 | lookbehind: true 35 | }, 36 | 'punctuation': /%[%?]|[|:;\[\]<>]/ 37 | } 38 | } 39 | }); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-bison.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.bison=Prism.languages.extend("c",{}),Prism.languages.insertBefore("bison","comment",{bison:{pattern:/^[\s\S]*?%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:Prism.languages.c}},comment:Prism.languages.c.comment,string:Prism.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-brainfuck.js: -------------------------------------------------------------------------------- 1 | Prism.languages.brainfuck = { 2 | 'pointer': { 3 | pattern: /<|>/, 4 | alias: 'keyword' 5 | }, 6 | 'increment': { 7 | pattern: /\+/, 8 | alias: 'inserted' 9 | }, 10 | 'decrement': { 11 | pattern: /-/, 12 | alias: 'deleted' 13 | }, 14 | 'branching': { 15 | pattern: /\[|\]/, 16 | alias: 'important' 17 | }, 18 | 'operator': /[.,]/, 19 | 'comment': /\S+/ 20 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-brainfuck.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-bro.js: -------------------------------------------------------------------------------- 1 | Prism.languages.bro = { 2 | 3 | 'comment': { 4 | pattern: /(^|[^\\$])#.*/, 5 | lookbehind: true, 6 | inside: { 7 | 'italic': /\b(TODO|FIXME|XXX)\b/ 8 | } 9 | }, 10 | 11 | 'string': { 12 | pattern: /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 13 | greedy: true 14 | }, 15 | 16 | 'boolean': /\b(T|F)\b/, 17 | 18 | 'function': { 19 | pattern: /(?:function|hook|event) [a-zA-Z0-9_]+(::[a-zA-Z0-9_]+)?/, 20 | inside: { 21 | keyword: /^(?:function|hook|event)/ 22 | } 23 | }, 24 | 25 | 'variable': { 26 | pattern: /(?:global|local) [a-zA-Z0-9_]+/i, 27 | inside: { 28 | keyword: /(?:global|local)/ 29 | } 30 | }, 31 | 32 | 'builtin': 33 | /(@(load(-(sigs|plugin))?|unload|prefixes|ifn?def|else|(end)?if|DIR|FILENAME))|(&?(redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/, 34 | 35 | 'constant': { 36 | pattern: /const [a-zA-Z0-9_]+/i, 37 | inside: { 38 | keyword: /const/ 39 | } 40 | }, 41 | 42 | 'keyword': 43 | /\b(break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/, 44 | 45 | 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/, 46 | 47 | 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i, 48 | 49 | 'punctuation': /[{}[\];(),.:]/ 50 | }; 51 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-bro.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(TODO|FIXME|XXX)\b/}},string:{pattern:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"boolean":/\b(T|F)\b/,"function":{pattern:/(?:function|hook|event) [a-zA-Z0-9_]+(::[a-zA-Z0-9_]+)?/,inside:{keyword:/^(?:function|hook|event)/}},variable:{pattern:/(?:global|local) [a-zA-Z0-9_]+/i,inside:{keyword:/(?:global|local)/}},builtin:/(@(load(-(sigs|plugin))?|unload|prefixes|ifn?def|else|(end)?if|DIR|FILENAME))|(&?(redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,constant:{pattern:/const [a-zA-Z0-9_]+/i,inside:{keyword:/const/}},keyword:/\b(break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,punctuation:/[{}[\];(),.:]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-c.js: -------------------------------------------------------------------------------- 1 | Prism.languages.c = Prism.languages.extend('clike', { 2 | 'keyword': /\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/, 3 | 'operator': /\-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*\/]/, 4 | 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)[ful]*\b/i 5 | }); 6 | 7 | Prism.languages.insertBefore('c', 'string', { 8 | 'macro': { 9 | // allow for multiline macro definitions 10 | // spaces after the # character compile fine with gcc 11 | pattern: /(^\s*)#\s*[a-z]+([^\r\n\\]|\\.|\\(?:\r\n?|\n))*/im, 12 | lookbehind: true, 13 | alias: 'property', 14 | inside: { 15 | // highlight the path of the include statement as a string 16 | 'string': { 17 | pattern: /(#\s*include\s*)(<.+?>|("|')(\\?.)+?\3)/, 18 | lookbehind: true 19 | }, 20 | // highlight macro directives as keywords 21 | 'directive': { 22 | pattern: /(#\s*)\b(define|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/, 23 | lookbehind: true, 24 | alias: 'keyword' 25 | } 26 | } 27 | }, 28 | // highlight predefined macros as constants 29 | 'constant': /\b(__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|stdin|stdout|stderr)\b/ 30 | }); 31 | 32 | delete Prism.languages.c['class-name']; 33 | delete Prism.languages.c['boolean']; 34 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-c.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.c=Prism.languages.extend("clike",{keyword:/\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/\-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|?\||[~^%?*\/]/,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)[ful]*\b/i}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+([^\r\n\\]|\\.|\\(?:\r\n?|\n))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(<.+?>|("|')(\\?.)+?\3)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(define|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|stdin|stdout|stderr)\b/}),delete Prism.languages.c["class-name"],delete Prism.languages.c["boolean"]; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-clike.js: -------------------------------------------------------------------------------- 1 | Prism.languages.clike = { 2 | 'comment': [ 3 | { 4 | pattern: /(^|[^\\])\/\*[\s\S]*?\*\//, 5 | lookbehind: true 6 | }, 7 | { 8 | pattern: /(^|[^\\:])\/\/.*/, 9 | lookbehind: true 10 | } 11 | ], 12 | 'string': { 13 | pattern: /(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 14 | greedy: true 15 | }, 16 | 'class-name': { 17 | pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i, 18 | lookbehind: true, 19 | inside: { 20 | punctuation: /(\.|\\)/ 21 | } 22 | }, 23 | 'keyword': /\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, 24 | 'boolean': /\b(true|false)\b/, 25 | 'function': /[a-z0-9_]+(?=\()/i, 26 | 'number': /\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i, 27 | 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, 28 | 'punctuation': /[{}[\];(),.:]/ 29 | }; 30 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-clike.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-coffeescript.min.js: -------------------------------------------------------------------------------- 1 | !function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\?[^\\])*?'/,greedy:!0},{pattern:/"(?:\\?[^\\])*?"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\?[\s\S])*?`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"]}(Prism); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-cpp.js: -------------------------------------------------------------------------------- 1 | Prism.languages.cpp = Prism.languages.extend('c', { 2 | 'keyword': /\b(alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/, 3 | 'boolean': /\b(true|false)\b/, 4 | 'operator': /[-+]{1,2}|!=?|<{1,2}=?|>{1,2}=?|\->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|?\||\?|\*|\/|\b(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/ 5 | }); 6 | 7 | Prism.languages.insertBefore('cpp', 'keyword', { 8 | 'class-name': { 9 | pattern: /(class\s+)[a-z0-9_]+/i, 10 | lookbehind: true 11 | } 12 | }); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-cpp.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.cpp=Prism.languages.extend("c",{keyword:/\b(alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,"boolean":/\b(true|false)\b/,operator:/[-+]{1,2}|!=?|<{1,2}=?|>{1,2}=?|\->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|?\||\?|\*|\/|\b(and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/}),Prism.languages.insertBefore("cpp","keyword",{"class-name":{pattern:/(class\s+)[a-z0-9_]+/i,lookbehind:!0}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-crystal.js: -------------------------------------------------------------------------------- 1 | (function(Prism) { 2 | Prism.languages.crystal = Prism.languages.extend('ruby', { 3 | keyword: [ 4 | /\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/, 5 | { 6 | pattern: /(\.\s*)(?:is_a|responds_to)\?/, 7 | lookbehind: true 8 | } 9 | ], 10 | 11 | number: /\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[0-9a-fA-F_]*[0-9a-fA-F]|(?:\d(?:[0-9_]*\d)?)(?:\.[0-9_]*\d)?(?:[eE][+-]?[0-9_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/, 12 | }); 13 | 14 | var rest = Prism.util.clone(Prism.languages.crystal); 15 | 16 | Prism.languages.insertBefore('crystal', 'string', { 17 | attribute: { 18 | pattern: /@\[.+?\]/, 19 | alias: 'attr-name', 20 | inside: { 21 | delimiter: { 22 | pattern: /^@\[|\]$/, 23 | alias: 'tag' 24 | }, 25 | rest: rest 26 | } 27 | }, 28 | 29 | expansion: [ 30 | { 31 | pattern: /\{\{.+?\}\}/, 32 | inside: { 33 | delimiter: { 34 | pattern: /^\{\{|\}\}$/, 35 | alias: 'tag' 36 | }, 37 | rest: rest 38 | } 39 | }, 40 | { 41 | pattern: /\{%.+?%\}/, 42 | inside: { 43 | delimiter: { 44 | pattern: /^\{%|%\}$/, 45 | alias: 'tag' 46 | }, 47 | rest: rest 48 | } 49 | } 50 | ] 51 | }); 52 | 53 | }(Prism)); 54 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-crystal.min.js: -------------------------------------------------------------------------------- 1 | !function(e){e.languages.crystal=e.languages.extend("ruby",{keyword:[/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[0-9a-fA-F_]*[0-9a-fA-F]|(?:\d(?:[0-9_]*\d)?)(?:\.[0-9_]*\d)?(?:[eE][+-]?[0-9_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/});var t=e.util.clone(e.languages.crystal);e.languages.insertBefore("crystal","string",{attribute:{pattern:/@\[.+?\]/,alias:"attr-name",inside:{delimiter:{pattern:/^@\[|\]$/,alias:"tag"},rest:t}},expansion:[{pattern:/\{\{.+?\}\}/,inside:{delimiter:{pattern:/^\{\{|\}\}$/,alias:"tag"},rest:t}},{pattern:/\{%.+?%\}/,inside:{delimiter:{pattern:/^\{%|%\}$/,alias:"tag"},rest:t}}]})}(Prism); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-csharp.js: -------------------------------------------------------------------------------- 1 | Prism.languages.csharp = Prism.languages.extend('clike', { 2 | 'keyword': /\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/, 3 | 'string': [ 4 | { 5 | pattern: /@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/, 6 | greedy: true 7 | }, 8 | { 9 | pattern: /("|')(\\?.)*?\1/, 10 | greedy: true 11 | } 12 | ], 13 | 'number': /\b-?(0x[\da-f]+|\d*\.?\d+f?)\b/i 14 | }); 15 | 16 | Prism.languages.insertBefore('csharp', 'keyword', { 17 | 'generic-method': { 18 | pattern: /[a-z0-9_]+\s*<[^>\r\n]+?>\s*(?=\()/i, 19 | alias: 'function', 20 | inside: { 21 | keyword: Prism.languages.csharp.keyword, 22 | punctuation: /[<>(),.:]/ 23 | } 24 | }, 25 | 'preprocessor': { 26 | pattern: /(^\s*)#.*/m, 27 | lookbehind: true, 28 | alias: 'property', 29 | inside: { 30 | // highlight preprocessor directives as keywords 31 | 'directive': { 32 | pattern: /(\s*#)\b(define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/, 33 | lookbehind: true, 34 | alias: 'keyword' 35 | } 36 | } 37 | } 38 | }); 39 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-csharp.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.csharp=Prism.languages.extend("clike",{keyword:/\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,string:[{pattern:/@("|')(\1\1|\\\1|\\?(?!\1)[\s\S])*\1/,greedy:!0},{pattern:/("|')(\\?.)*?\1/,greedy:!0}],number:/\b-?(0x[\da-f]+|\d*\.?\d+f?)\b/i}),Prism.languages.insertBefore("csharp","keyword",{"generic-method":{pattern:/[a-z0-9_]+\s*<[^>\r\n]+?>\s*(?=\()/i,alias:"function",inside:{keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-css-extras.js: -------------------------------------------------------------------------------- 1 | Prism.languages.css.selector = { 2 | pattern: /[^\{\}\s][^\{\}]*(?=\s*\{)/, 3 | inside: { 4 | 'pseudo-element': /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/, 5 | 'pseudo-class': /:[-\w]+(?:\(.*\))?/, 6 | 'class': /\.[-:\.\w]+/, 7 | 'id': /#[-:\.\w]+/, 8 | 'attribute': /\[[^\]]+\]/ 9 | } 10 | }; 11 | 12 | Prism.languages.insertBefore('css', 'function', { 13 | 'hexcode': /#[\da-f]{3,8}/i, 14 | 'entity': /\\[\da-f]{1,8}/i, 15 | 'number': /[\d%\.]+/ 16 | }); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-css-extras.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+(?:\(.*\))?/,"class":/\.[-:\.\w]+/,id:/#[-:\.\w]+/,attribute:/\[[^\]]+\]/}},Prism.languages.insertBefore("css","function",{hexcode:/#[\da-f]{3,8}/i,entity:/\\[\da-f]{1,8}/i,number:/[\d%\.]+/}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-css.js: -------------------------------------------------------------------------------- 1 | Prism.languages.css = { 2 | 'comment': /\/\*[\s\S]*?\*\//, 3 | 'atrule': { 4 | pattern: /@[\w-]+?.*?(;|(?=\s*\{))/i, 5 | inside: { 6 | 'rule': /@[\w-]+/ 7 | // See rest below 8 | } 9 | }, 10 | 'url': /url\((?:(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, 11 | 'selector': /[^\{\}\s][^\{\};]*?(?=\s*\{)/, 12 | 'string': { 13 | pattern: /("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 14 | greedy: true 15 | }, 16 | 'property': /(\b|\B)[\w-]+(?=\s*:)/i, 17 | 'important': /\B!important\b/i, 18 | 'function': /[-a-z0-9]+(?=\()/i, 19 | 'punctuation': /[(){};:]/ 20 | }; 21 | 22 | Prism.languages.css['atrule'].inside.rest = Prism.util.clone(Prism.languages.css); 23 | 24 | if (Prism.languages.markup) { 25 | Prism.languages.insertBefore('markup', 'tag', { 26 | 'style': { 27 | pattern: /()[\s\S]*?(?=<\/style>)/i, 28 | lookbehind: true, 29 | inside: Prism.languages.css, 30 | alias: 'language-css' 31 | } 32 | }); 33 | 34 | Prism.languages.insertBefore('inside', 'attr-value', { 35 | 'style-attr': { 36 | pattern: /\s*style=("|').*?\1/i, 37 | inside: { 38 | 'attr-name': { 39 | pattern: /^\s*style/i, 40 | inside: Prism.languages.markup.tag.inside 41 | }, 42 | 'punctuation': /^\s*=\s*['"]|['"]\s*$/, 43 | 'attr-value': { 44 | pattern: /.+/i, 45 | inside: Prism.languages.css 46 | } 47 | }, 48 | alias: 'language-css' 49 | } 50 | }, Prism.languages.markup.tag); 51 | } -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-css.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:{pattern:/("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-dart.js: -------------------------------------------------------------------------------- 1 | Prism.languages.dart = Prism.languages.extend('clike', { 2 | 'string': [ 3 | { 4 | pattern: /r?("""|''')[\s\S]*?\1/, 5 | greedy: true 6 | }, 7 | { 8 | pattern: /r?("|')(\\?.)*?\1/, 9 | greedy: true 10 | } 11 | ], 12 | 'keyword': [ 13 | /\b(?:async|sync|yield)\*/, 14 | /\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/ 15 | ], 16 | 'operator': /\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/ 17 | }); 18 | 19 | Prism.languages.insertBefore('dart','function',{ 20 | 'metadata': { 21 | pattern: /@\w+/, 22 | alias: 'symbol' 23 | } 24 | }); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-dart.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.dart=Prism.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?("|')(\\?.)*?\1/,greedy:!0}],keyword:[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/],operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),Prism.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-diff.js: -------------------------------------------------------------------------------- 1 | Prism.languages.diff = { 2 | 'coord': [ 3 | // Match all kinds of coord lines (prefixed by "+++", "---" or "***"). 4 | /^(?:\*{3}|-{3}|\+{3}).*$/m, 5 | // Match "@@ ... @@" coord lines in unified diff. 6 | /^@@.*@@$/m, 7 | // Match coord lines in normal diff (starts with a number). 8 | /^\d+.*$/m 9 | ], 10 | 11 | // Match inserted and deleted lines. Support both +/- and >/< styles. 12 | 'deleted': /^[-<].*$/m, 13 | 'inserted': /^[+>].*$/m, 14 | 15 | // Match "different" lines (prefixed with "!") in context diff. 16 | 'diff': { 17 | 'pattern': /^!(?!!).+$/m, 18 | 'alias': 'important' 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-diff.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d+.*$/m],deleted:/^[-<].*$/m,inserted:/^[+>].*$/m,diff:{pattern:/^!(?!!).+$/m,alias:"important"}}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-docker.js: -------------------------------------------------------------------------------- 1 | Prism.languages.docker = { 2 | 'keyword': { 3 | pattern: /(^\s*)(?:ONBUILD|FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|COPY|VOLUME|USER|WORKDIR|CMD|LABEL|ENTRYPOINT)(?=\s)/mi, 4 | lookbehind: true 5 | }, 6 | 'string': /("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*?\1/, 7 | 'comment': /#.*/, 8 | 'punctuation': /---|\.\.\.|[:[\]{}\-,|>?]/ 9 | }; 10 | 11 | Prism.languages.dockerfile = Prism.languages.docker; 12 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-docker.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.docker={keyword:{pattern:/(^\s*)(?:ONBUILD|FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|COPY|VOLUME|USER|WORKDIR|CMD|LABEL|ENTRYPOINT)(?=\s)/mi,lookbehind:true},string:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*?\1/,comment:/#.*/,punctuation:/---|\.\.\.|[:[\]{}\-,|>?]/};Prism.languages.dockerfile=Prism.languages.docker; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-eiffel.js: -------------------------------------------------------------------------------- 1 | Prism.languages.eiffel = { 2 | 'string': [ 3 | // Aligned-verbatim-strings 4 | /"([^[]*)\[[\s\S]+?\]\1"/, 5 | // Non-aligned-verbatim-strings 6 | /"([^{]*)\{[\s\S]+?\}\1"/, 7 | // Single-line string 8 | /"(?:%\s+%|%"|.)*?"/ 9 | ], 10 | // (comments including quoted strings not supported) 11 | 'comment': /--.*/, 12 | // normal char | special char | char code 13 | 'char': /'(?:%'|.)+?'/, 14 | 'keyword': /\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i, 15 | 'boolean': /\b(?:True|False)\b/i, 16 | 'number': [ 17 | // hexa | octal | bin 18 | /\b0[xcb][\da-f](?:_*[\da-f])*\b/i, 19 | // Decimal 20 | /(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?[eE][+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/ 21 | ], 22 | 'punctuation': /:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/, 23 | 'operator': /\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/ 24 | }; 25 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-eiffel.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.eiffel={string:[/"([^[]*)\[[\s\S]+?\]\1"/,/"([^{]*)\{[\s\S]+?\}\1"/,/"(?:%\s+%|%"|.)*?"/],comment:/--.*/,"char":/'(?:%'|.)+?'/,keyword:/\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,"boolean":/\b(?:True|False)\b/i,number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?[eE][+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-elixir.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.elixir={comment:{pattern:/(^|[^#])#(?![{#]).*/m,lookbehind:!0},regex:/~[rR](?:("""|'''|[\/|"'])(?:\\.|(?!\1)[^\\])+\1|\((?:\\\)|[^)])+\)|\[(?:\\\]|[^\]])+\]|\{(?:\\\}|[^}])+\}|<(?:\\>|[^>])+>)[uismxfr]*/,string:[{pattern:/~[cCsSwW](?:("""|'''|[\/|"'])(?:\\.|(?!\1)[^\\])+\1|\((?:\\\)|[^)])+\)|\[(?:\\\]|[^\]])+\]|\{(?:\\\}|#\{[^}]+\}|[^}])+\}|<(?:\\>|[^>])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},"attr-name":/\w+:(?!:)/,capture:{pattern:/(^|[^&])&(?:[^&\s\d()][^\s()]*|(?=\())/,lookbehind:!0,alias:"function"},argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@[\S]+/,alias:"variable"},number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/,"boolean":/\b(?:true|false|nil)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},Prism.languages.elixir.string.forEach(function(e){e.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:Prism.util.clone(Prism.languages.elixir)}}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-erlang.js: -------------------------------------------------------------------------------- 1 | Prism.languages.erlang = { 2 | 'comment': /%.+/, 3 | 'string': { 4 | pattern: /"(?:\\?.)*?"/, 5 | greedy: true 6 | }, 7 | 'quoted-function': { 8 | pattern: /'(?:\\.|[^'\\])+'(?=\()/, 9 | alias: 'function' 10 | }, 11 | 'quoted-atom': { 12 | pattern: /'(?:\\.|[^'\\])+'/, 13 | alias: 'atom' 14 | }, 15 | 'boolean': /\b(?:true|false)\b/, 16 | 'keyword': /\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/, 17 | 'number': [ 18 | /\$\\?./, 19 | /\d+#[a-z0-9]+/i, 20 | /(?:\b|-)\d*\.?\d+([Ee][+-]?\d+)?\b/ 21 | ], 22 | 'function': /\b[a-z][\w@]*(?=\()/, 23 | 'variable': { 24 | // Look-behind is used to prevent wrong highlighting of atoms containing "@" 25 | pattern: /(^|[^@])(?:\b|\?)[A-Z_][\w@]*/, 26 | lookbehind: true 27 | }, 28 | 'operator': [ 29 | /[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/, 30 | { 31 | // We don't want to match << 32 | pattern: /(^|[^<])<(?!<)/, 33 | lookbehind: true 34 | }, 35 | { 36 | // We don't want to match >> 37 | pattern: /(^|[^>])>(?!>)/, 38 | lookbehind: true 39 | } 40 | ], 41 | 'atom': /\b[a-z][\w@]*/, 42 | 'punctuation': /[()[\]{}:;,.#|]|<<|>>/ 43 | 44 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-erlang.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\?.)*?"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^'\\])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^'\\])+'/,alias:"atom"},"boolean":/\b(?:true|false)\b/,keyword:/\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,number:[/\$\\?./,/\d+#[a-z0-9]+/i,/(?:\b|-)\d*\.?\d+([Ee][+-]?\d+)?\b/],"function":/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-fortran.js: -------------------------------------------------------------------------------- 1 | Prism.languages.fortran = { 2 | 'quoted-number': { 3 | pattern: /[BOZ](['"])[A-F0-9]+\1/i, 4 | alias: 'number' 5 | }, 6 | 'string': { 7 | pattern: /(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:\s*!.+(?:\r\n?|\n))?|(?!\1).)*(?:\1|&)/, 8 | inside: { 9 | 'comment': { 10 | pattern: /(&(?:\r\n?|\n)\s*)!.*/, 11 | lookbehind: true 12 | } 13 | } 14 | }, 15 | 'comment': /!.*/, 16 | 'boolean': /\.(?:TRUE|FALSE)\.(?:_\w+)?/i, 17 | 'number': /(?:\b|[+-])(?:\d+(?:\.\d*)?|\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i, 18 | 'keyword': [ 19 | // Types 20 | /\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i, 21 | // END statements 22 | /\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i, 23 | // Statements 24 | /\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i, 25 | // Others 26 | /\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i 27 | ], 28 | 'operator': [ 29 | /\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\.|\.[A-Z]+\./i, 30 | { 31 | // Use lookbehind to prevent confusion with (/ /) 32 | pattern: /(^|(?!\().)\/(?!\))/, 33 | lookbehind: true 34 | } 35 | ], 36 | 'punctuation': /\(\/|\/\)|[(),;:&]/ 37 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-fortran.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:\s*!.+(?:\r\n?|\n))?|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:/!.*/,"boolean":/\.(?:TRUE|FALSE)\.(?:_\w+)?/i,number:/(?:\b|[+-])(?:\d+(?:\.\d*)?|\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\.|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-fsharp.js: -------------------------------------------------------------------------------- 1 | Prism.languages.fsharp = Prism.languages.extend('clike', { 2 | 'comment': [ 3 | { 4 | pattern: /(^|[^\\])\(\*[\s\S]*?\*\)/, 5 | lookbehind: true 6 | }, 7 | { 8 | pattern: /(^|[^\\:])\/\/.*/, 9 | lookbehind: true 10 | } 11 | ], 12 | 'keyword': /\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/, 13 | 'string': { 14 | pattern: /(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|("|')(?:\\\1|\\?(?!\1)[\s\S])*\1)B?/, 15 | greedy: true 16 | }, 17 | 'number': [ 18 | /\b-?0x[\da-fA-F]+(un|lf|LF)?\b/, 19 | /\b-?0b[01]+(y|uy)?\b/, 20 | /\b-?(\d*\.?\d+|\d+\.)([fFmM]|[eE][+-]?\d+)?\b/, 21 | /\b-?\d+(y|uy|s|us|l|u|ul|L|UL|I)?\b/ 22 | ] 23 | }); 24 | Prism.languages.insertBefore('fsharp', 'keyword', { 25 | 'preprocessor': { 26 | pattern: /^[^\r\n\S]*#.*/m, 27 | alias: 'property', 28 | inside: { 29 | 'directive': { 30 | pattern: /(\s*#)\b(else|endif|if|light|line|nowarn)\b/, 31 | lookbehind: true, 32 | alias: 'keyword' 33 | } 34 | } 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-fsharp.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.fsharp=Prism.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*[\s\S]*?\*\)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|("|')(?:\\\1|\\?(?!\1)[\s\S])*\1)B?/,greedy:!0},number:[/\b-?0x[\da-fA-F]+(un|lf|LF)?\b/,/\b-?0b[01]+(y|uy)?\b/,/\b-?(\d*\.?\d+|\d+\.)([fFmM]|[eE][+-]?\d+)?\b/,/\b-?\d+(y|uy|s|us|l|u|ul|L|UL|I)?\b/]}),Prism.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/^[^\r\n\S]*#.*/m,alias:"property",inside:{directive:{pattern:/(\s*#)\b(else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-git.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(\\?.)*?\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s(--|-)\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-glsl.js: -------------------------------------------------------------------------------- 1 | Prism.languages.glsl = Prism.languages.extend('clike', { 2 | 'comment': [ 3 | /\/\*[\s\S]*?\*\//, 4 | /\/\/(?:\\(?:\r\n|[\s\S])|.)*/ 5 | ], 6 | 'number': /\b(?:0x[\da-f]+|(?:\.\d+|\d+\.?\d*)(?:e[+-]?\d+)?)[ulf]*\b/i, 7 | 'keyword': /\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/ 8 | }); 9 | 10 | Prism.languages.insertBefore('glsl', 'comment', { 11 | 'preprocessor': { 12 | pattern: /(^[ \t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\b)?/m, 13 | lookbehind: true, 14 | alias: 'builtin' 15 | } 16 | }); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-glsl.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.glsl=Prism.languages.extend("clike",{comment:[/\/\*[\s\S]*?\*\//,/\/\/(?:\\(?:\r\n|[\s\S])|.)*/],number:/\b(?:0x[\da-f]+|(?:\.\d+|\d+\.?\d*)(?:e[+-]?\d+)?)[ulf]*\b/i,keyword:/\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/}),Prism.languages.insertBefore("glsl","comment",{preprocessor:{pattern:/(^[ \t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\b)?/m,lookbehind:!0,alias:"builtin"}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-go.js: -------------------------------------------------------------------------------- 1 | Prism.languages.go = Prism.languages.extend('clike', { 2 | 'keyword': /\b(break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/, 3 | 'builtin': /\b(bool|byte|complex(64|128)|error|float(32|64)|rune|string|u?int(8|16|32|64|)|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(ln)?|real|recover)\b/, 4 | 'boolean': /\b(_|iota|nil|true|false)\b/, 5 | 'operator': /[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./, 6 | 'number': /\b(-?(0x[a-f\d]+|(\d+\.?\d*|\.\d+)(e[-+]?\d+)?)i?)\b/i, 7 | 'string': { 8 | pattern: /("|'|`)(\\?.|\r|\n)*?\1/, 9 | greedy: true 10 | } 11 | }); 12 | delete Prism.languages.go['class-name']; 13 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-go.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.go=Prism.languages.extend("clike",{keyword:/\b(break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(bool|byte|complex(64|128)|error|float(32|64)|rune|string|u?int(8|16|32|64|)|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(ln)?|real|recover)\b/,"boolean":/\b(_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/\b(-?(0x[a-f\d]+|(\d+\.?\d*|\.\d+)(e[-+]?\d+)?)i?)\b/i,string:{pattern:/("|'|`)(\\?.|\r|\n)*?\1/,greedy:!0}}),delete Prism.languages.go["class-name"]; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-graphql.js: -------------------------------------------------------------------------------- 1 | Prism.languages.graphql = { 2 | 'comment': /#.*/, 3 | 'string': { 4 | pattern: /"(?:\\.|[^\\"])*"/, 5 | greedy: true 6 | }, 7 | 'number': /(?:\B-|\b)\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b/, 8 | 'boolean': /\b(?:true|false)\b/, 9 | 'variable': /\$[a-z_]\w*/i, 10 | 'directive': { 11 | pattern: /@[a-z_]\w*/i, 12 | alias: 'function' 13 | }, 14 | 'attr-name': /[a-z_]\w*(?=\s*:)/i, 15 | 'keyword': [ 16 | { 17 | pattern: /(fragment\s+(?!on)[a-z_]\w*\s+|\.\.\.\s*)on\b/, 18 | lookbehind: true 19 | }, 20 | /\b(?:query|fragment|mutation)\b/ 21 | ], 22 | 'operator': /!|=|\.{3}/, 23 | 'punctuation': /[!(){}\[\]:=,]/ 24 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-graphql.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.graphql={comment:/#.*/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b/,"boolean":/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":/[a-z_]\w*(?=\s*:)/i,keyword:[{pattern:/(fragment\s+(?!on)[a-z_]\w*\s+|\.\.\.\s*)on\b/,lookbehind:!0},/\b(?:query|fragment|mutation)\b/],operator:/!|=|\.{3}/,punctuation:/[!(){}\[\]:=,]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-groovy.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.groovy=Prism.languages.extend("clike",{keyword:/\b(as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,string:[{pattern:/("""|''')[\s\S]*?\1|(\$\/)(\$\/\$|[\s\S])*?\/\$/,greedy:!0},{pattern:/("|'|\/)(?:\\?.)*?\1/,greedy:!0}],number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.{1,2}(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),Prism.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),Prism.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(setup|given|when|then|and|cleanup|expect|where):/}),Prism.languages.insertBefore("groovy","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}}),Prism.hooks.add("wrap",function(e){if("groovy"===e.language&&"string"===e.type){var t=e.content[0];if("'"!=t){var n=/([^\\])(\$(\{.*?\}|[\w\.]+))/;"$"===t&&(n=/([^\$])(\$(\{.*?\}|[\w\.]+))/),e.content=e.content.replace(/</g,"<").replace(/&/g,"&"),e.content=Prism.highlight(e.content,{expression:{pattern:n,lookbehind:!0,inside:Prism.languages.groovy}}),e.classes.push("/"===t?"regex":"gstring")}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-handlebars.min.js: -------------------------------------------------------------------------------- 1 | !function(e){var a=/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;e.languages.handlebars=e.languages.extend("markup",{handlebars:{pattern:a,inside:{delimiter:{pattern:/^\{\{\{?|\}\}\}?$/i,alias:"punctuation"},string:/(["'])(\\?.)*?\1/,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/,"boolean":/\b(true|false)\b/,block:{pattern:/^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/}}}),e.languages.insertBefore("handlebars","tag",{"handlebars-comment":{pattern:/\{\{![\s\S]*?\}\}/,alias:["handlebars","comment"]}}),e.hooks.add("before-highlight",function(e){"handlebars"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(a,function(a){for(var n=e.tokenStack.length;-1!==e.backupCode.indexOf("___HANDLEBARS"+n+"___");)++n;return e.tokenStack[n]=a,"___HANDLEBARS"+n+"___"}))}),e.hooks.add("before-insert",function(e){"handlebars"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),e.hooks.add("after-highlight",function(a){if("handlebars"===a.language){for(var n=0,t=Object.keys(a.tokenStack);n]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/ 23 | }); 24 | Prism.languages.insertBefore('haxe', 'class-name', { 25 | 'regex': { 26 | pattern: /~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/, 27 | greedy: true 28 | } 29 | }); 30 | Prism.languages.insertBefore('haxe', 'keyword', { 31 | 'preprocessor': { 32 | pattern: /#\w+/, 33 | alias: 'builtin' 34 | }, 35 | 'metadata': { 36 | pattern: /@:?\w+/, 37 | alias: 'symbol' 38 | }, 39 | 'reification': { 40 | pattern: /\$(?:\w+|(?=\{))/, 41 | alias: 'variable' 42 | } 43 | }); 44 | Prism.languages.haxe['string'].inside['interpolation'].inside.rest = Prism.util.clone(Prism.languages.haxe); 45 | delete Prism.languages.haxe['class-name']; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-haxe.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.haxe=Prism.languages.extend("clike",{string:{pattern:/(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^}]+\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\$\w*/,alias:"variable"}}}}},keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,operator:/\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/}),Prism.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/,greedy:!0}}),Prism.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#\w+/,alias:"builtin"},metadata:{pattern:/@:?\w+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"variable"}}),Prism.languages.haxe.string.inside.interpolation.inside.rest=Prism.util.clone(Prism.languages.haxe),delete Prism.languages.haxe["class-name"]; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-http.js: -------------------------------------------------------------------------------- 1 | Prism.languages.http = { 2 | 'request-line': { 3 | pattern: /^(POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b\shttps?:\/\/\S+\sHTTP\/[0-9.]+/m, 4 | inside: { 5 | // HTTP Verb 6 | property: /^(POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/, 7 | // Path or query argument 8 | 'attr-name': /:\w+/ 9 | } 10 | }, 11 | 'response-status': { 12 | pattern: /^HTTP\/1.[01] \d+.*/m, 13 | inside: { 14 | // Status, e.g. 200 OK 15 | property: { 16 | pattern: /(^HTTP\/1.[01] )\d+.*/i, 17 | lookbehind: true 18 | } 19 | } 20 | }, 21 | // HTTP header name 22 | 'header-name': { 23 | pattern: /^[\w-]+:(?=.)/m, 24 | alias: 'keyword' 25 | } 26 | }; 27 | 28 | // Create a mapping of Content-Type headers to language definitions 29 | var httpLanguages = { 30 | 'application/json': Prism.languages.javascript, 31 | 'application/xml': Prism.languages.markup, 32 | 'text/xml': Prism.languages.markup, 33 | 'text/html': Prism.languages.markup 34 | }; 35 | 36 | // Insert each content type parser that has its associated language 37 | // currently loaded. 38 | for (var contentType in httpLanguages) { 39 | if (httpLanguages[contentType]) { 40 | var options = {}; 41 | options[contentType] = { 42 | pattern: new RegExp('(content-type:\\s*' + contentType + '[\\w\\W]*?)(?:\\r?\\n|\\r){2}[\\w\\W]*', 'i'), 43 | lookbehind: true, 44 | inside: { 45 | rest: httpLanguages[contentType] 46 | } 47 | }; 48 | Prism.languages.insertBefore('http', 'header-name', options); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-http.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.http={"request-line":{pattern:/^(POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b\shttps?:\/\/\S+\sHTTP\/[0-9.]+/m,inside:{property:/^(POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,"attr-name":/:\w+/}},"response-status":{pattern:/^HTTP\/1.[01] \d+.*/m,inside:{property:{pattern:/(^HTTP\/1.[01] )\d+.*/i,lookbehind:!0}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var httpLanguages={"application/json":Prism.languages.javascript,"application/xml":Prism.languages.markup,"text/xml":Prism.languages.markup,"text/html":Prism.languages.markup};for(var contentType in httpLanguages)if(httpLanguages[contentType]){var options={};options[contentType]={pattern:new RegExp("(content-type:\\s*"+contentType+"[\\w\\W]*?)(?:\\r?\\n|\\r){2}[\\w\\W]*","i"),lookbehind:!0,inside:{rest:httpLanguages[contentType]}},Prism.languages.insertBefore("http","header-name",options)} -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-icon.js: -------------------------------------------------------------------------------- 1 | Prism.languages.icon = { 2 | 'comment': /#.*/, 3 | 'string': { 4 | pattern: /(["'])(?:(?!\1)[^\\\r\n]|\\.|_(?:\r?\n|\r))*\1/, 5 | greedy: true 6 | }, 7 | 'number': /\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i, 8 | 'builtin-keyword': { 9 | pattern: /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/, 10 | alias: 'variable' 11 | }, 12 | 'directive': { 13 | pattern: /\$\w+/, 14 | alias: 'builtin' 15 | }, 16 | 'keyword': /\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/, 17 | 'function': /(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/, 18 | 'operator': /[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/, 19 | 'punctuation': /[\[\](){},;]/ 20 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-icon.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\.|_(?:\r?\n|\r))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,"function":/(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-ini.js: -------------------------------------------------------------------------------- 1 | Prism.languages.ini= { 2 | 'comment': /^[ \t]*;.*$/m, 3 | 'selector': /^[ \t]*\[.*?\]/m, 4 | 'constant': /^[ \t]*[^\s=]+?(?=[ \t]*=)/m, 5 | 'attr-value': { 6 | pattern: /=.*/, 7 | inside: { 8 | 'punctuation': /^[=]/ 9 | } 10 | } 11 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-ini.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.ini={comment:/^[ \t]*;.*$/m,selector:/^[ \t]*\[.*?\]/m,constant:/^[ \t]*[^\s=]+?(?=[ \t]*=)/m,"attr-value":{pattern:/=.*/,inside:{punctuation:/^[=]/}}}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-j.js: -------------------------------------------------------------------------------- 1 | Prism.languages.j = { 2 | 'comment': /\bNB\..*/, 3 | 'string': { 4 | pattern: /'(?:''|[^'\r\n])*'/, 5 | greedy: true 6 | }, 7 | 'keyword': /\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/, 8 | 'verb': { 9 | // Negative look-ahead prevents bad highlighting 10 | // of ^: ;. =. =: !. !: 11 | pattern: /(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[\^?]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/, 12 | alias: 'keyword' 13 | }, 14 | 'number': /\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/, 15 | 'adverb': { 16 | pattern: /[~}]|[\/\\]\.?|[bfM]\.|t[.:]/, 17 | alias: 'builtin' 18 | }, 19 | 'operator': /[=a][.:]|_\./, 20 | 'conjunction': { 21 | pattern: /&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/, 22 | alias: 'variable' 23 | }, 24 | 'punctuation': /[()]/ 25 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-j.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.j={comment:/\bNB\..*/,string:{pattern:/'(?:''|[^'\r\n])*'/,greedy:!0},keyword:/\b(?:(?:adverb|conjunction|CR|def|define|dyad|LF|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,verb:{pattern:/(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[\^?]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-java.js: -------------------------------------------------------------------------------- 1 | Prism.languages.java = Prism.languages.extend('clike', { 2 | 'keyword': /\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/, 3 | 'number': /\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i, 4 | 'operator': { 5 | pattern: /(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m, 6 | lookbehind: true 7 | } 8 | }); 9 | 10 | Prism.languages.insertBefore('java','function', { 11 | 'annotation': { 12 | alias: 'punctuation', 13 | pattern: /(^|[^.])@\w+/, 14 | lookbehind: true 15 | } 16 | }); 17 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-java.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.java=Prism.languages.extend("clike",{keyword:/\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),Prism.languages.insertBefore("java","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-javascript.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^\/])\/(?!\/)(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\\\|\\?[^\\])*?`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript"}}),Prism.languages.js=Prism.languages.javascript; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-jolie.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.jolie=Prism.languages.extend("clike",{keyword:/\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|extender|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/g,builtin:/\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/,number:/\b\d*\.?\d+(?:e[+-]?\d+)?l?\b/i,operator:/->|<<|[!+-<>=*]?=|[:<>!?*\/%^]|&&|\|\||--?|\+\+?/g,symbol:/[|;@]/,punctuation:/[,.]/,string:{pattern:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0}}),delete Prism.languages.jolie["class-name"],delete Prism.languages.jolie["function"],Prism.languages.insertBefore("jolie","keyword",{"function":{pattern:/((?:\b(?:outputPort|inputPort|in|service|courier)\b|@)\s*)\w+/,lookbehind:!0},aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{withExtension:{pattern:/\bwith\s+\w+/,inside:{keyword:/\bwith\b/}},"function":{pattern:/\w+/},punctuation:{pattern:/,/}}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:{pattern:/,/},"function":{pattern:/\w+/g},symbol:{pattern:/=>/g}}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-json.js: -------------------------------------------------------------------------------- 1 | Prism.languages.json = { 2 | 'property': /"(?:\\.|[^\\"])*"(?=\s*:)/ig, 3 | 'string': /"(?!:)(?:\\.|[^\\"])*"(?!:)/g, 4 | 'number': /\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/g, 5 | 'punctuation': /[{}[\]);,]/g, 6 | 'operator': /:/g, 7 | 'boolean': /\b(true|false)\b/gi, 8 | 'null': /\bnull\b/gi 9 | }; 10 | 11 | Prism.languages.jsonp = Prism.languages.json; 12 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-json.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.json={property:/"(?:\\.|[^\\"])*"(?=\s*:)/gi,string:/"(?!:)(?:\\.|[^\\"])*"(?!:)/g,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?)\b/g,punctuation:/[{}[\]);,]/g,operator:/:/g,"boolean":/\b(true|false)\b/gi,"null":/\bnull\b/gi},Prism.languages.jsonp=Prism.languages.json; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-jsx.js: -------------------------------------------------------------------------------- 1 | (function(Prism) { 2 | 3 | var javascript = Prism.util.clone(Prism.languages.javascript); 4 | 5 | Prism.languages.jsx = Prism.languages.extend('markup', javascript); 6 | Prism.languages.jsx.tag.pattern= /<\/?[\w\.:-]+\s*(?:\s+(?:[\w\.:-]+(?:=(?:("|')(\\?[\s\S])*?\1|[^\s'">=]+|(\{[\s\S]*?\})))?|\{\.{3}\w+\}))*\s*\/?>/i; 7 | 8 | Prism.languages.jsx.tag.inside['attr-value'].pattern = /=(?!\{)(?:('|")[\s\S]*?(\1)|[^\s>]+)/i; 9 | 10 | Prism.languages.insertBefore('inside', 'attr-name', { 11 | 'spread': { 12 | pattern: /\{\.{3}\w+\}/, 13 | inside: { 14 | 'punctuation': /\{|\}|\./, 15 | 'attr-value': /\w+/ 16 | } 17 | } 18 | }, Prism.languages.jsx.tag); 19 | 20 | var jsxExpression = Prism.util.clone(Prism.languages.jsx); 21 | 22 | delete jsxExpression.punctuation 23 | 24 | jsxExpression = Prism.languages.insertBefore('jsx', 'operator', { 25 | 'punctuation': /=(?={)|[{}[\];(),.:]/ 26 | }, { jsx: jsxExpression }); 27 | 28 | Prism.languages.insertBefore('inside', 'attr-value',{ 29 | 'script': { 30 | // Allow for one level of nesting 31 | pattern: /=(\{(?:\{[^}]*\}|[^}])+\})/i, 32 | inside: jsxExpression, 33 | 'alias': 'language-javascript' 34 | } 35 | }, Prism.languages.jsx.tag); 36 | 37 | }(Prism)); 38 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-jsx.min.js: -------------------------------------------------------------------------------- 1 | !function(a){var e=a.util.clone(a.languages.javascript);a.languages.jsx=a.languages.extend("markup",e),a.languages.jsx.tag.pattern=/<\/?[\w\.:-]+\s*(?:\s+(?:[\w\.:-]+(?:=(?:("|')(\\?[\s\S])*?\1|[^\s'">=]+|(\{[\s\S]*?\})))?|\{\.{3}\w+\}))*\s*\/?>/i,a.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:('|")[\s\S]*?(\1)|[^\s>]+)/i,a.languages.insertBefore("inside","attr-name",{spread:{pattern:/\{\.{3}\w+\}/,inside:{punctuation:/\{|\}|\./,"attr-value":/\w+/}}},a.languages.jsx.tag);var s=a.util.clone(a.languages.jsx);delete s.punctuation,s=a.languages.insertBefore("jsx","operator",{punctuation:/=(?={)|[{}[\];(),.:]/},{jsx:s}),a.languages.insertBefore("inside","attr-value",{script:{pattern:/=(\{(?:\{[^}]*\}|[^}])+\})/i,inside:s,alias:"language-javascript"}},a.languages.jsx.tag)}(Prism); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-julia.js: -------------------------------------------------------------------------------- 1 | Prism.languages.julia= { 2 | 'comment': { 3 | pattern: /(^|[^\\])#.*/, 4 | lookbehind: true 5 | }, 6 | 'string': /"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(\\?.)*?\1/, 7 | 'keyword' : /\b(abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while)\b/, 8 | 'boolean' : /\b(true|false)\b/, 9 | 'number' : /\b-?(0[box])?(?:[\da-f]+\.?\d*|\.\d+)(?:[efp][+-]?\d+)?j?\b/i, 10 | 'operator': /\+=?|-=?|\*=?|\/[\/=]?|\\=?|\^=?|%=?|÷=?|!=?=?|&=?|\|[=>]?|\$=?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]/, 11 | 'punctuation' : /[{}[\];(),.:]/ 12 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-julia.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.julia={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/"""[\s\S]+?"""|'''[\s\S]+?'''|("|')(\\?.)*?\1/,keyword:/\b(abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while)\b/,"boolean":/\b(true|false)\b/,number:/\b-?(0[box])?(?:[\da-f]+\.?\d*|\.\d+)(?:[efp][+-]?\d+)?j?\b/i,operator:/\+=?|-=?|\*=?|\/[\/=]?|\\=?|\^=?|%=?|÷=?|!=?=?|&=?|\|[=>]?|\$=?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥]/,punctuation:/[{}[\];(),.:]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-keyman.js: -------------------------------------------------------------------------------- 1 | Prism.languages.keyman = { 2 | 'comment': /\bc\s.*/i, 3 | 'function': /\[\s*((CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*([TKU]_[a-z0-9_?]+|".+?"|'.+?')\s*\]/i, // virtual key 4 | 'string': /("|')((?!\1).)*\1/, 5 | 'bold': [ // header statements, system stores and variable system stores 6 | /&(baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i, 7 | /\b(bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i 8 | ], 9 | 'keyword': /\b(any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i, // rule keywords 10 | 'atrule': /\b(ansi|begin|unicode|group|using keys|match|nomatch)\b/i, // structural keywords 11 | 'number': /\b(U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i, // U+####, x###, d### characters and numbers 12 | 'operator': /[+>\\,()]/, 13 | 'tag': /\$(keyman|kmfl|weaver|keymanweb|keymanonly):/i // prefixes 14 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-keyman.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.keyman={comment:/\bc\s.*/i,"function":/\[\s*((CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*([TKU]_[a-z0-9_?]+|".+?"|'.+?')\s*\]/i,string:/("|')((?!\1).)*\1/,bold:[/&(baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,/\b(bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i],keyword:/\b(any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,atrule:/\b(ansi|begin|unicode|group|using keys|match|nomatch)\b/i,number:/\b(U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\,()]/,tag:/\$(keyman|kmfl|weaver|keymanweb|keymanonly):/i}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-kotlin.min.js: -------------------------------------------------------------------------------- 1 | !function(n){n.languages.kotlin=n.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|else|enum|final|finally|for|fun|get|if|import|in|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|out|override|package|private|protected|public|reified|return|sealed|set|super|tailrec|this|throw|to|try|val|var|when|where|while)\b/,lookbehind:!0},"function":[/\w+(?=\s*\()/,{pattern:/(\.)\w+(?=\s*\{)/,lookbehind:!0}],number:/\b(?:0[bx][\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete n.languages.kotlin["class-name"],n.languages.insertBefore("kotlin","string",{"raw-string":{pattern:/(["'])\1\1[\s\S]*?\1{3}/,alias:"string"}}),n.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),n.languages.insertBefore("kotlin","function",{label:{pattern:/\w+@|@\w+/,alias:"symbol"}});var e=[{pattern:/\$\{[^}]+\}/,inside:{delimiter:{pattern:/^\$\{|\}$/,alias:"variable"},rest:n.util.clone(n.languages.kotlin)}},{pattern:/\$\w+/,alias:"variable"}];n.languages.kotlin.string.inside=n.languages.kotlin["raw-string"].inside={interpolation:e}}(Prism); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-latex.min.js: -------------------------------------------------------------------------------- 1 | !function(a){var e=/\\([^a-z()[\]]|[a-z\*]+)/i,n={"equation-command":{pattern:e,alias:"regex"}};a.languages.latex={comment:/%.*/m,cdata:{pattern:/(\\begin\{((?:verbatim|lstlisting)\*?)\})([\s\S]*?)(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$(?:\\?[\s\S])*?\$|\\\((?:\\?[\s\S])*?\\\)|\\\[(?:\\?[\s\S])*?\\\]/,inside:n,alias:"string"},{pattern:/(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})([\s\S]*?)(?=\\end\{\2\})/,lookbehind:!0,inside:n,alias:"string"}],keyword:{pattern:/(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/,lookbehind:!0,alias:"class-name"},"function":{pattern:e,alias:"selector"},punctuation:/[[\]{}&]/}}(Prism); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-less.js: -------------------------------------------------------------------------------- 1 | /* FIXME : 2 | :extend() is not handled specifically : its highlighting is buggy. 3 | Mixin usage must be inside a ruleset to be highlighted. 4 | At-rules (e.g. import) containing interpolations are buggy. 5 | Detached rulesets are highlighted as at-rules. 6 | A comment before a mixin usage prevents the latter to be properly highlighted. 7 | */ 8 | 9 | Prism.languages.less = Prism.languages.extend('css', { 10 | 'comment': [ 11 | /\/\*[\s\S]*?\*\//, 12 | { 13 | pattern: /(^|[^\\])\/\/.*/, 14 | lookbehind: true 15 | } 16 | ], 17 | 'atrule': { 18 | pattern: /@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i, 19 | inside: { 20 | 'punctuation': /[:()]/ 21 | } 22 | }, 23 | // selectors and mixins are considered the same 24 | 'selector': { 25 | pattern: /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/, 26 | inside: { 27 | // mixin parameters 28 | 'variable': /@+[\w-]+/ 29 | } 30 | }, 31 | 32 | 'property': /(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i, 33 | 'punctuation': /[{}();:,]/, 34 | 'operator': /[+\-*\/]/ 35 | }); 36 | 37 | // Invert function and punctuation positions 38 | Prism.languages.insertBefore('less', 'punctuation', { 39 | 'function': Prism.languages.less.function 40 | }); 41 | 42 | Prism.languages.insertBefore('less', 'property', { 43 | 'variable': [ 44 | // Variable declaration (the colon must be consumed!) 45 | { 46 | pattern: /@[\w-]+\s*:/, 47 | inside: { 48 | "punctuation": /:/ 49 | } 50 | }, 51 | 52 | // Variable usage 53 | /@@?[\w-]+/ 54 | ], 55 | 'mixin-usage': { 56 | pattern: /([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/, 57 | lookbehind: true, 58 | alias: 'function' 59 | } 60 | }); 61 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-less.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.less=Prism.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,punctuation:/[{}();:,]/,operator:/[+\-*\/]/}),Prism.languages.insertBefore("less","punctuation",{"function":Prism.languages.less.function}),Prism.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,lookbehind:!0,alias:"function"}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-lolcode.js: -------------------------------------------------------------------------------- 1 | Prism.languages.lolcode = { 2 | 'comment': [ 3 | /\bOBTW\s+[\s\S]*?\s+TLDR\b/, 4 | /\bBTW.+/ 5 | ], 6 | 'string': { 7 | pattern: /"(?::.|[^"])*"/, 8 | inside: { 9 | 'variable': /:\{[^}]+\}/, 10 | 'symbol': [ 11 | /:\([a-f\d]+\)/i, 12 | /:\[[^\]]+\]/, 13 | /:[)>o":]/ 14 | ] 15 | }, 16 | greedy: true 17 | }, 18 | 'number': /(-|\b)\d*\.?\d+/, 19 | 'symbol': { 20 | pattern: /(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/, 21 | lookbehind: true, 22 | inside: { 23 | 'keyword': /A(?=\s)/ 24 | } 25 | }, 26 | 'label': { 27 | pattern: /((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/, 28 | lookbehind: true, 29 | alias: 'string' 30 | }, 31 | 'function': { 32 | pattern: /((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/, 33 | lookbehind: true 34 | }, 35 | 'keyword': [ 36 | { 37 | pattern: /(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/, 38 | lookbehind: true 39 | }, 40 | /'Z(?=\s|,|$)/ 41 | ], 42 | 'boolean': { 43 | pattern: /(^|\s)(?:WIN|FAIL)(?=\s|,|$)/, 44 | lookbehind: true 45 | }, 46 | 'variable': { 47 | pattern: /(^|\s)IT(?=\s|,|$)/, 48 | lookbehind: true 49 | }, 50 | 'operator': { 51 | pattern: /(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/, 52 | lookbehind: true 53 | }, 54 | 'punctuation': /\.{3}|…|,|!/ 55 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-lolcode.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.lolcode={comment:[/\bOBTW\s+[\s\S]*?\s+TLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^"])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(-|\b)\d*\.?\d+/,symbol:{pattern:/(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},"function":{pattern:/((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],"boolean":{pattern:/(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-lua.js: -------------------------------------------------------------------------------- 1 | Prism.languages.lua = { 2 | 'comment': /^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m, 3 | // \z may be used to skip the following space 4 | 'string': { 5 | pattern: /(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/, 6 | greedy: true 7 | }, 8 | 'number': /\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i, 9 | 'keyword': /\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/, 10 | 'function': /(?!\d)\w+(?=\s*(?:[({]))/, 11 | 'operator': [ 12 | /[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/, 13 | { 14 | // Match ".." but don't break "..." 15 | pattern: /(^|[^.])\.\.(?!\.)/, 16 | lookbehind: true 17 | } 18 | ], 19 | 'punctuation': /[\[\](){},;]|\.+|:+/ 20 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-lua.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,"function":/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-makefile.js: -------------------------------------------------------------------------------- 1 | Prism.languages.makefile = { 2 | 'comment': { 3 | pattern: /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|.)*/, 4 | lookbehind: true 5 | }, 6 | 'string': { 7 | pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 8 | greedy: true 9 | }, 10 | 11 | // Built-in target names 12 | 'builtin': /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/, 13 | 14 | // Targets 15 | 'symbol': { 16 | pattern: /^[^:=\r\n]+(?=\s*:(?!=))/m, 17 | inside: { 18 | 'variable': /\$+(?:[^(){}:#=\s]+|(?=[({]))/ 19 | } 20 | }, 21 | 'variable': /\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/, 22 | 23 | 'keyword': [ 24 | // Directives 25 | /-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/, 26 | // Functions 27 | { 28 | pattern: /(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/, 29 | lookbehind: true 30 | } 31 | ], 32 | 'operator': /(?:::|[?:+!])?=|[|@]/, 33 | 'punctuation': /[:;(){}]/ 34 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-makefile.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|.)*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^[^:=\r\n]+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-markdown.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.markdown=Prism.languages.extend("markup",{}),Prism.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},code:[{pattern:/^(?: {4}|\t).+/m,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*(?:\r?\n|\r)(?:==+|--+)/,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])([\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:/(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^\*\*|^__|\*\*$|__$/}},italic:{pattern:/(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/,inside:{variable:{pattern:/(!?\[)[^\]]+(?=\]$)/,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),Prism.languages.markdown.bold.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.italic.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.bold.inside.italic=Prism.util.clone(Prism.languages.markdown.italic),Prism.languages.markdown.italic.inside.bold=Prism.util.clone(Prism.languages.markdown.bold); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-markup.js: -------------------------------------------------------------------------------- 1 | Prism.languages.markup = { 2 | 'comment': //, 3 | 'prolog': /<\?[\s\S]+?\?>/, 4 | 'doctype': //i, 5 | 'cdata': //i, 6 | 'tag': { 7 | pattern: /<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\s\S])*\1|[^\s'">=]+))?)*\s*\/?>/i, 8 | inside: { 9 | 'tag': { 10 | pattern: /^<\/?[^\s>\/]+/i, 11 | inside: { 12 | 'punctuation': /^<\/?/, 13 | 'namespace': /^[^\s>\/:]+:/ 14 | } 15 | }, 16 | 'attr-value': { 17 | pattern: /=(?:('|")[\s\S]*?(\1)|[^\s>]+)/i, 18 | inside: { 19 | 'punctuation': /[=>"']/ 20 | } 21 | }, 22 | 'punctuation': /\/?>/, 23 | 'attr-name': { 24 | pattern: /[^\s>\/]+/, 25 | inside: { 26 | 'namespace': /^[^\s>\/:]+:/ 27 | } 28 | } 29 | 30 | } 31 | }, 32 | 'entity': /&#?[\da-z]{1,8};/i 33 | }; 34 | 35 | Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = 36 | Prism.languages.markup['entity']; 37 | 38 | // Plugin to make entity title show the real entity, idea by Roman Komarov 39 | Prism.hooks.add('wrap', function(env) { 40 | 41 | if (env.type === 'entity') { 42 | env.attributes['title'] = env.content.replace(/&/, '&'); 43 | } 44 | }); 45 | 46 | Prism.languages.xml = Prism.languages.markup; 47 | Prism.languages.html = Prism.languages.markup; 48 | Prism.languages.mathml = Prism.languages.markup; 49 | Prism.languages.svg = Prism.languages.markup; 50 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-markup.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\s\S])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\s\S]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-matlab.js: -------------------------------------------------------------------------------- 1 | Prism.languages.matlab = { 2 | // We put string before comment, because of printf() patterns that contain "%" 3 | 'string': /\B'(?:''|[^'\n])*'/, 4 | 'comment': [ 5 | /%\{[\s\S]*?\}%/, 6 | /%.+/ 7 | ], 8 | // FIXME We could handle imaginary numbers as a whole 9 | 'number': /\b-?(?:\d*\.?\d+(?:[eE][+-]?\d+)?(?:[ij])?|[ij])\b/, 10 | 'keyword': /\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/, 11 | 'function': /(?!\d)\w+(?=\s*\()/, 12 | 'operator': /\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/, 13 | 'punctuation': /\.{3}|[.,;\[\](){}!]/ 14 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-matlab.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.matlab={string:/\B'(?:''|[^'\n])*'/,comment:[/%\{[\s\S]*?\}%/,/%.+/],number:/\b-?(?:\d*\.?\d+(?:[eE][+-]?\d+)?(?:[ij])?|[ij])\b/,keyword:/\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/,"function":/(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-mizar.js: -------------------------------------------------------------------------------- 1 | Prism.languages.mizar = { 2 | 'comment': /::.+/, 3 | 'keyword': /@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/, 4 | 'parameter': { 5 | pattern: /\$(?:10|\d)/, 6 | alias: 'variable' 7 | }, 8 | 'variable': /\w+(?=:)/, 9 | 'number': /(?:\b|-)\d+\b/, 10 | 'operator': /\.\.\.|->|&|\.?=/, 11 | 'punctuation': /\(#|#\)|[,:;\[\](){}]/ 12 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-mizar.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-monkey.js: -------------------------------------------------------------------------------- 1 | Prism.languages.monkey = { 2 | 'string': /"[^"\r\n]*"/, 3 | 'comment': [ 4 | /^#Rem\s+[\s\S]*?^#End/im, 5 | /'.+/, 6 | ], 7 | 'preprocessor': { 8 | pattern: /(^[ \t]*)#.+/m, 9 | lookbehind: true, 10 | alias: 'comment' 11 | }, 12 | 'function': /\w+(?=\()/, 13 | 'type-char': { 14 | pattern: /(\w)[?%#$]/, 15 | lookbehind: true, 16 | alias: 'variable' 17 | }, 18 | 'number': { 19 | pattern: /((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+((?!\.\.)\.\d*)?|\$[\da-f]+)/i, 20 | lookbehind: true 21 | }, 22 | 'keyword': /\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i, 23 | 'operator': /\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i, 24 | 'punctuation': /[.,:;()\[\]]/ 25 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-monkey.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.monkey={string:/"[^"\r\n]*"/,comment:[/^#Rem\s+[\s\S]*?^#End/im,/'.+/],preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,alias:"comment"},"function":/\w+(?=\()/,"type-char":{pattern:/(\w)[?%#$]/,lookbehind:!0,alias:"variable"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+((?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-nasm.js: -------------------------------------------------------------------------------- 1 | Prism.languages.nasm = { 2 | 'comment': /;.*$/m, 3 | 'string': /("|'|`)(\\?.)*?\1/m, 4 | 'label': { 5 | pattern: /(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m, 6 | lookbehind: true, 7 | alias: 'function' 8 | }, 9 | 'keyword': [ 10 | /\[?BITS (16|32|64)\]?/m, 11 | { 12 | pattern: /(^\s*)section\s*[a-zA-Z\.]+:?/im, 13 | lookbehind: true 14 | }, 15 | /(?:extern|global)[^;\r\n]*/im, 16 | /(?:CPU|FLOAT|DEFAULT).*$/m 17 | ], 18 | 'register': { 19 | pattern: /\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(bp|sp|si|di)|[cdefgs]s)\b/i, 20 | alias: 'variable' 21 | }, 22 | 'number': /(\b|-|(?=\$))(0[hx][\da-f]*\.?[\da-f]+(p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(\.?e[+-]?\d+)?[dt]?)\b/i, 23 | 'operator': /[\[\]*+\-\/%<>=&|$!]/ 24 | }; 25 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-nasm.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.nasm={comment:/;.*$/m,string:/("|'|`)(\\?.)*?\1/m,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (16|32|64)\]?/m,{pattern:/(^\s*)section\s*[a-zA-Z\.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/im,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(\b|-|(?=\$))(0[hx][\da-f]*\.?[\da-f]+(p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-nim.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.nim={comment:/#.*/,string:{pattern:/(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/,greedy:!0},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,"function":{pattern:/(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,inside:{operator:/\*$/}},ignore:{pattern:/`[^`\r\n]+`/,inside:{punctuation:/`/}},operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-nix.js: -------------------------------------------------------------------------------- 1 | Prism.languages.nix = { 2 | 'comment': /\/\*[\s\S]*?\*\/|#.*/, 3 | 'string': { 4 | pattern: /"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/, 5 | greedy: true, 6 | inside: { 7 | 'interpolation': { 8 | // The lookbehind ensures the ${} is not preceded by \ or '' 9 | pattern: /(^|(?:^|(?!'').)[^\\])\$\{(?:[^}]|\{[^}]*\})*}/, 10 | lookbehind: true, 11 | inside: { 12 | 'antiquotation': { 13 | pattern: /^\$(?=\{)/, 14 | alias: 'variable' 15 | } 16 | // See rest below 17 | } 18 | } 19 | } 20 | }, 21 | 'url': [ 22 | /\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/, 23 | { 24 | pattern: /([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/, 25 | lookbehind: true 26 | } 27 | ], 28 | 'antiquotation': { 29 | pattern: /\$(?=\{)/, 30 | alias: 'variable' 31 | }, 32 | 'number': /\b\d+\b/, 33 | 'keyword': /\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/, 34 | 'function': /\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/, 35 | 'boolean': /\b(?:true|false)\b/, 36 | 'operator': /[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/, 37 | 'punctuation': /[{}()[\].,:;]/ 38 | }; 39 | 40 | Prism.languages.nix.string.inside.interpolation.inside.rest = Prism.util.clone(Prism.languages.nix); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-nix.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.nix={comment:/\/\*[\s\S]*?\*\/|#.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^}]|\{[^}]*\})*}/,lookbehind:!0,inside:{antiquotation:{pattern:/^\$(?=\{)/,alias:"variable"}}}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"variable"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,"function":/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,"boolean":/\b(?:true|false)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},Prism.languages.nix.string.inside.interpolation.inside.rest=Prism.util.clone(Prism.languages.nix); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-objectivec.js: -------------------------------------------------------------------------------- 1 | Prism.languages.objectivec = Prism.languages.extend('c', { 2 | 'keyword': /\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/, 3 | 'string': /("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/, 4 | 'operator': /-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/ 5 | }); 6 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-objectivec.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.objectivec=Prism.languages.extend("c",{keyword:/\b(asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,string:/("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-ocaml.js: -------------------------------------------------------------------------------- 1 | Prism.languages.ocaml = { 2 | 'comment': /\(\*[\s\S]*?\*\)/, 3 | 'string': [ 4 | { 5 | pattern: /"(?:\\.|[^\\\r\n"])*"/, 6 | greedy: true 7 | }, 8 | { 9 | pattern: /(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i, 10 | greedy: true 11 | } 12 | ], 13 | 'number': /\b-?(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i, 14 | 'type': { 15 | pattern: /\B['`][a-z\d_]*/i, 16 | alias: 'variable' 17 | }, 18 | 'directive': { 19 | pattern: /\B#[a-z\d_]+/i, 20 | alias: 'function' 21 | }, 22 | 'keyword': /\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/, 23 | 'boolean': /\b(?:false|true)\b/, 24 | // Custom operators are allowed 25 | 'operator': /:=|[=<>@^|&+\-*\/$%!?~][!$%&\*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/, 26 | 'punctuation': /[(){}\[\]|_.,:;]/ 27 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-ocaml.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b-?(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,type:{pattern:/\B['`][a-z\d_]*/i,alias:"variable"},directive:{pattern:/\B#[a-z\d_]+/i,alias:"function"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,"boolean":/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&\*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,punctuation:/[(){}\[\]|_.,:;]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-oz.js: -------------------------------------------------------------------------------- 1 | Prism.languages.oz = { 2 | 'comment': /\/\*[\s\S]*?\*\/|%.*/, 3 | 'string': { 4 | pattern: /"(?:[^"\\]|\\[\s\S])*"/, 5 | greedy: true 6 | }, 7 | 'atom': { 8 | pattern: /'(?:[^'\\]|\\.)*'/, 9 | greedy: true, 10 | alias: 'builtin' 11 | }, 12 | 'keyword': /[$_]|\[\]|\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/, 13 | 'function': [ 14 | /[a-z][A-Za-z\d]*(?=\()/, 15 | { 16 | pattern: /(\{)[A-Z][A-Za-z\d]*/, 17 | lookbehind: true 18 | } 19 | ], 20 | 'number': /\b(?:0[bx][\da-f]+|\d+\.?\d*(?:e~?\d+)?\b)|&(?:[^\\]|\\(?:\d{3}|.))/i, 21 | 'variable': /\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/, 22 | 'attr-name': /\w+(?=:)/, 23 | 'operator': /:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/, 24 | 'punctuation': /[\[\](){}.:;?]/ 25 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-oz.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.oz={comment:/\/\*[\s\S]*?\*\/|%.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\.)*'/,greedy:!0,alias:"builtin"},keyword:/[$_]|\[\]|\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,"function":[/[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+\.?\d*(?:e~?\d+)?\b)|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,"attr-name":/\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-parigp.js: -------------------------------------------------------------------------------- 1 | Prism.languages.parigp = { 2 | 'comment': /\/\*[\s\S]*?\*\/|\\\\.*/, 3 | 'string': { 4 | pattern: /"(?:[^"\\]|\\.)*"/, 5 | greedy: true 6 | }, 7 | // PARI/GP does not care about white spaces at all 8 | // so let's process the keywords to build an appropriate regexp 9 | // (e.g. "b *r *e *a *k", etc.) 10 | 'keyword': (function () { 11 | var keywords = [ 12 | 'breakpoint', 'break', 'dbg_down', 'dbg_err', 'dbg_up', 'dbg_x', 13 | 'forcomposite', 'fordiv', 'forell', 'forpart', 'forprime', 14 | 'forstep', 'forsubgroup', 'forvec', 'for', 'iferr', 'if', 15 | 'local', 'my', 'next', 'return', 'until', 'while' 16 | ]; 17 | keywords = keywords.map(function (keyword) { 18 | return keyword.split('').join(' *'); 19 | }).join('|'); 20 | return RegExp('\\b(?:' + keywords + ')\\b'); 21 | }()), 22 | 'function': /\w[\w ]*?(?= *\()/, 23 | 'number': { 24 | // The lookbehind and the negative lookahead prevent from breaking the .. operator 25 | pattern: /((?:\. *\. *)?)(?:\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *[+-]? *\d(?: *\d)*)?/i, 26 | lookbehind: true 27 | }, 28 | 'operator': /\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/, 29 | 'punctuation': /[\[\]{}().,:;|]/ 30 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-parigp.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\]|\\.)*"/,greedy:!0},keyword:function(){var r=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return r=r.map(function(r){return r.split("").join(" *")}).join("|"),RegExp("\\b(?:"+r+")\\b")}(),"function":/\w[\w ]*?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *[+-]? *\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-parser.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.parser=Prism.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.\{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},"function":{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/}),Prism.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:Prism.languages.parser.keyword,variable:Prism.languages.parser.variable,"function":Prism.languages.parser.function,"boolean":/\b(?:true|false)\b/,number:/\b(?:0x[a-f\d]+|\d+\.?\d*(?:e[+-]?\d+)?)\b/i,escape:Prism.languages.parser.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:Prism.languages.parser.punctuation}}}),Prism.languages.insertBefore("inside","punctuation",{expression:Prism.languages.parser.expression,keyword:Prism.languages.parser.keyword,variable:Prism.languages.parser.variable,"function":Prism.languages.parser.function,escape:Prism.languages.parser.escape,"parser-punctuation":{pattern:Prism.languages.parser.punctuation,alias:"punctuation"}},Prism.languages.parser.tag.inside["attr-value"]); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-pascal.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.pascal={comment:[/\(\*[\s\S]+?\*\)/,/\{[\s\S]+?\}/,/\/\/.*/],string:{pattern:/(?:'(?:''|[^'\r\n])*'|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/[+-]?(?:[&%]\d+|\$[a-f\d]+)/i,/([+-]|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-php-extras.js: -------------------------------------------------------------------------------- 1 | Prism.languages.insertBefore('php', 'variable', { 2 | 'this': /\$this\b/, 3 | 'global': /\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)/, 4 | 'scope': { 5 | pattern: /\b[\w\\]+::/, 6 | inside: { 7 | keyword: /(static|self|parent)/, 8 | punctuation: /(::|\\)/ 9 | } 10 | } 11 | }); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-php-extras.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.insertBefore("php","variable",{"this":/\$this\b/,global:/\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/(static|self|parent)/,punctuation:/(::|\\)/}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-processing.js: -------------------------------------------------------------------------------- 1 | Prism.languages.processing = Prism.languages.extend('clike', { 2 | 'keyword': /\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/, 3 | 'operator': /<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/ 4 | }); 5 | Prism.languages.insertBefore('processing', 'number', { 6 | // Special case: XML is a type 7 | 'constant': /\b(?!XML\b)[A-Z][A-Z\d_]+\b/, 8 | 'type': { 9 | pattern: /\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z][A-Za-z\d_]*)\b/, 10 | alias: 'variable' 11 | } 12 | }); 13 | 14 | // Spaces are allowed between function name and parenthesis 15 | Prism.languages.processing['function'].pattern = /[a-z0-9_]+(?=\s*\()/i; 16 | 17 | // Class-names is not styled by default 18 | Prism.languages.processing['class-name'].alias = 'variable'; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-processing.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.processing=Prism.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),Prism.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z][A-Za-z\d_]*)\b/,alias:"variable"}}),Prism.languages.processing["function"].pattern=/[a-z0-9_]+(?=\s*\()/i,Prism.languages.processing["class-name"].alias="variable"; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-prolog.js: -------------------------------------------------------------------------------- 1 | Prism.languages.prolog = { 2 | // Syntax depends on the implementation 3 | 'comment': [ 4 | /%.+/, 5 | /\/\*[\s\S]*?\*\// 6 | ], 7 | // Depending on the implementation, strings may allow escaped newlines and quote-escape 8 | 'string': { 9 | pattern: /(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, 10 | greedy: true 11 | }, 12 | 'builtin': /\b(?:fx|fy|xf[xy]?|yfx?)\b/, 13 | 'variable': /\b[A-Z_]\w*/, 14 | // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.? 15 | 'function': /\b[a-z]\w*(?:(?=\()|\/\d+)/, 16 | 'number': /\b\d+\.?\d*/, 17 | // Custom operators are allowed 18 | 'operator': /[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/, 19 | 'punctuation': /[(){}\[\],]/ 20 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-prolog.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.prolog={comment:[/%.+/,/\/\*[\s\S]*?\*\//],string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,variable:/\b[A-Z_]\w*/,"function":/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+\.?\d*/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-properties.js: -------------------------------------------------------------------------------- 1 | Prism.languages.properties = { 2 | 'comment': /^[ \t]*[#!].*$/m, 3 | 'attr-value': { 4 | pattern: /(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?: *[=:] *| ))(?:\\(?:\r\n|[\s\S])|.)+/m, 5 | lookbehind: true 6 | }, 7 | 'attr-name': /^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?= *[ =:]| )/m, 8 | 'punctuation': /[=:]/ 9 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-properties.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?: *[=:] *| ))(?:\\(?:\r\n|[\s\S])|.)+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?= *[ =:]| )/m,punctuation:/[=:]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-protobuf.js: -------------------------------------------------------------------------------- 1 | Prism.languages.protobuf = Prism.languages.extend('clike', { 2 | keyword: /\b(package|import|message|enum)\b/, 3 | builtin: /\b(required|repeated|optional|reserved)\b/, 4 | primitive: { 5 | pattern: /\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/, 6 | alias: 'symbol' 7 | } 8 | }); 9 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-protobuf.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.protobuf=Prism.languages.extend("clike",{keyword:/\b(package|import|message|enum)\b/,builtin:/\b(required|repeated|optional|reserved)\b/,primitive:{pattern:/\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/,alias:"symbol"}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-python.js: -------------------------------------------------------------------------------- 1 | Prism.languages.python= { 2 | 'triple-quoted-string': { 3 | pattern: /"""[\s\S]+?"""|'''[\s\S]+?'''/, 4 | alias: 'string' 5 | }, 6 | 'comment': { 7 | pattern: /(^|[^\\])#.*/, 8 | lookbehind: true 9 | }, 10 | 'string': { 11 | pattern: /("|')(?:\\\\|\\?[^\\\r\n])*?\1/, 12 | greedy: true 13 | }, 14 | 'function' : { 15 | pattern: /((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g, 16 | lookbehind: true 17 | }, 18 | 'class-name': { 19 | pattern: /(\bclass\s+)[a-z0-9_]+/i, 20 | lookbehind: true 21 | }, 22 | 'keyword' : /\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/, 23 | 'boolean' : /\b(?:True|False)\b/, 24 | 'number' : /\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i, 25 | 'operator' : /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/, 26 | 'punctuation' : /[{}[\];(),.:]/ 27 | }; 28 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-python.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.python={"triple-quoted-string":{pattern:/"""[\s\S]+?"""|'''[\s\S]+?'''/,alias:"string"},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/("|')(?:\\\\|\\?[^\\\r\n])*?\1/,greedy:!0},"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_][a-zA-Z0-9_]*(?=\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)[a-z0-9_]+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|with|yield)\b/,"boolean":/\b(?:True|False)\b/,number:/\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-q.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0},/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,/^#!.+/m],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b-?(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\da-fA-F]+|\d+\.?\d*(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?_~=|$&#@^]):?/,alias:"operator"},punctuation:/[(){}\[\];.]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-qore.js: -------------------------------------------------------------------------------- 1 | Prism.languages.qore = Prism.languages.extend('clike', { 2 | 'comment': { 3 | pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/, 4 | lookbehind: true 5 | }, 6 | // Overridden to allow unescaped multi-line strings 7 | 'string': { 8 | pattern: /("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\])*\1/, 9 | greedy: true 10 | }, 11 | 'variable': /\$(?!\d)\w+\b/, 12 | 'keyword': /\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/, 13 | 'number': /\b(?:0b[01]+|0x[\da-f]*\.?[\da-fp\-]+|\d*\.?\d+e?\d*[df]|\d*\.?\d+)\b/i, 14 | 'boolean': /\b(?:true|false)\b/i, 15 | 'operator': { 16 | pattern: /(^|[^\.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/, 17 | lookbehind: true 18 | }, 19 | 'function': /\$?\b(?!\d)\w+(?=\()/ 20 | }); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-qore.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.qore=Prism.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(\\(?:\r\n|[\s\S])|(?!\1)[^\\])*\1/,greedy:!0},variable:/\$(?!\d)\w+\b/,keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01]+|0x[\da-f]*\.?[\da-fp\-]+|\d*\.?\d+e?\d*[df]|\d*\.?\d+)\b/i,"boolean":/\b(?:true|false)\b/i,operator:{pattern:/(^|[^\.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},"function":/\$?\b(?!\d)\w+(?=\()/}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-r.js: -------------------------------------------------------------------------------- 1 | Prism.languages.r = { 2 | 'comment': /#.*/, 3 | 'string': { 4 | pattern: /(['"])(?:\\?.)*?\1/, 5 | greedy: true 6 | }, 7 | 'percent-operator': { 8 | // Includes user-defined operators 9 | // and %%, %*%, %/%, %in%, %o%, %x% 10 | pattern: /%[^%\s]*%/, 11 | alias: 'operator' 12 | }, 13 | 'boolean': /\b(?:TRUE|FALSE)\b/, 14 | 'ellipsis': /\.\.(?:\.|\d+)/, 15 | 'number': [ 16 | /\b(?:NaN|Inf)\b/, 17 | /\b(?:0x[\dA-Fa-f]+(?:\.\d*)?|\d*\.?\d+)(?:[EePp][+-]?\d+)?[iL]?\b/ 18 | ], 19 | 'keyword': /\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/, 20 | 'operator': /->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/, 21 | 'punctuation': /[(){}\[\],;]/ 22 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-r.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\?.)*?\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},"boolean":/\b(?:TRUE|FALSE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:NaN|Inf)\b/,/\b(?:0x[\dA-Fa-f]+(?:\.\d*)?|\d*\.?\d+)(?:[EePp][+-]?\d+)?[iL]?\b/],keyword:/\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-reason.js: -------------------------------------------------------------------------------- 1 | Prism.languages.reason = Prism.languages.extend('clike', { 2 | 'comment': { 3 | pattern: /(^|[^\\])\/\*[\s\S]*?\*\//, 4 | lookbehind: true 5 | }, 6 | 'string': { 7 | pattern: /"(\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/, 8 | greedy: true 9 | }, 10 | // 'class-name' must be matched *after* 'constructor' defined below 11 | 'class-name': /\b[A-Z]\w*/, 12 | 'keyword': /\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/, 13 | 'operator': /\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/ 14 | }); 15 | Prism.languages.insertBefore('reason', 'class-name', { 16 | 'character': { 17 | pattern: /'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'])'/, 18 | alias: 'string' 19 | }, 20 | 'constructor': { 21 | // Negative look-ahead prevents from matching things like String.capitalize 22 | pattern: /\b[A-Z]\w*\b(?!\s*\.)/, 23 | alias: 'variable' 24 | }, 25 | 'label': { 26 | pattern: /\b[a-z]\w*(?=::)/, 27 | alias: 'symbol' 28 | } 29 | }); 30 | 31 | // We can't match functions property, so let's not even try. 32 | delete Prism.languages.reason.function; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-reason.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.reason=Prism.languages.extend("clike",{comment:{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},string:{pattern:/"(\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),Prism.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete Prism.languages.reason.function; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-rip.js: -------------------------------------------------------------------------------- 1 | Prism.languages.rip = { 2 | 'comment': /#.*/, 3 | 4 | 'keyword': /(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/, 5 | 6 | 'builtin': /@|\bSystem\b/, 7 | 8 | 'boolean': /\b(?:true|false)\b/, 9 | 10 | 'date': /\b\d{4}-\d{2}-\d{2}\b/, 11 | 'time': /\b\d{2}:\d{2}:\d{2}\b/, 12 | 'datetime': /\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/, 13 | 14 | 'character': /\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/, 15 | 16 | 'regex': { 17 | pattern: /(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\\\r\n])+\/(?=\s*($|[\r\n,.;})]))/, 18 | lookbehind: true, 19 | greedy: true 20 | }, 21 | 22 | 'symbol': /:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/, 23 | 'string': { 24 | pattern: /("|')(\\?.)*?\1/, 25 | greedy: true 26 | }, 27 | 'number': /[+-]?(?:(?:\d+\.\d+)|(?:\d+))/, 28 | 29 | 'punctuation': /(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/, 30 | 31 | 'reference': /[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/ 32 | }; 33 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-rip.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,builtin:/@|\bSystem\b/,"boolean":/\b(?:true|false)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,character:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,string:{pattern:/("|')(\\?.)*?\1/,greedy:!0},number:/[+-]?(?:(?:\d+\.\d+)|(?:\d+))/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-roboconf.js: -------------------------------------------------------------------------------- 1 | Prism.languages.roboconf = { 2 | 'comment': /#.*/, 3 | 'keyword': { 4 | 'pattern': /(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/, 5 | lookbehind: true 6 | }, 7 | 'component': { 8 | pattern: /[\w-]+(?=[ \t]*\{)/, 9 | alias: 'variable' 10 | }, 11 | 'property': /[\w.-]+(?=[ \t]*:)/, 12 | 'value': { 13 | pattern: /(=[ \t]*)[^,;]+/, 14 | lookbehind: true, 15 | alias: 'attr-value' 16 | }, 17 | 'optional': { 18 | pattern: /\(optional\)/, 19 | alias: 'builtin' 20 | }, 21 | 'wildcard': { 22 | pattern: /(\.)\*/, 23 | lookbehind: true, 24 | alias: 'operator' 25 | }, 26 | 'punctuation': /[{},.;:=]/ 27 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-roboconf.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*)[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-rust.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.rust={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:[{pattern:/b?r(#*)"(?:\\?.)*?"\1/,greedy:!0},{pattern:/b?("|')(?:\\?.)*?\1/,greedy:!0}],keyword:/\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/,attribute:{pattern:/#!?\[.+?\]/,greedy:!0,alias:"attr-name"},"function":[/[a-z0-9_]+(?=\s*\()/i,/[a-z0-9_]+!(?=\s*\(|\[)/i],"macro-rules":{pattern:/[a-z0-9_]+!/i,alias:"function"},number:/\b-?(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\d(_?\d)*)?\.?\d(_?\d)*([Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\b/,"closure-params":{pattern:/\|[^|]*\|(?=\s*[{-])/,inside:{punctuation:/[\|:,]/,operator:/[&*]/}},punctuation:/[{}[\];(),:]|\.+|->/,operator:/[-+*\/%!^=]=?|@|&[&=]?|\|[|=]?|<>?=?/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-sas.js: -------------------------------------------------------------------------------- 1 | Prism.languages.sas = { 2 | 'datalines': { 3 | pattern: /^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im, 4 | alias: 'string', 5 | inside: { 6 | 'keyword': { 7 | pattern: /^(\s*)(?:(?:data)?lines|cards)/i, 8 | lookbehind: true 9 | }, 10 | 'punctuation': /;/ 11 | } 12 | }, 13 | 'comment': [ 14 | { 15 | pattern: /(^\s*|;\s*)\*.*;/m, 16 | lookbehind: true 17 | }, 18 | /\/\*[\s\S]+?\*\// 19 | ], 20 | 'datetime': { 21 | // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt 22 | pattern: /'[^']+'(?:dt?|t)\b/i, 23 | alias: 'number' 24 | }, 25 | 'string': { 26 | pattern: /(["'])(?:\1\1|(?!\1)[\s\S])*\1/, 27 | greedy: true 28 | }, 29 | 'keyword': /\b(?:data|else|format|if|input|proc\s\w+|quit|run|then)\b/i, 30 | // Decimal (1.2e23), hexadecimal (0c1x) 31 | 'number': /(?:\B-|\b)(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i, 32 | 'operator': /\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i, 33 | 'punctuation': /[$%@.(){}\[\];,\\]/ 34 | }; 35 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-sas.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.sas={datalines:{pattern:/^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im,alias:"string",inside:{keyword:{pattern:/^(\s*)(?:(?:data)?lines|cards)/i,lookbehind:!0},punctuation:/;/}},comment:[{pattern:/(^\s*|;\s*)\*.*;/m,lookbehind:!0},/\/\*[\s\S]+?\*\//],datetime:{pattern:/'[^']+'(?:dt?|t)\b/i,alias:"number"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},keyword:/\b(?:data|else|format|if|input|proc\s\w+|quit|run|then)\b/i,number:/(?:\B-|\b)(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,punctuation:/[$%@.(){}\[\];,\\]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-sass.min.js: -------------------------------------------------------------------------------- 1 | !function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var a=/((\$[-_\w]+)|(#\{\$[-_\w]+\}))/i,t=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:a,operator:t}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:a,operator:t,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,delete e.languages.sass.selector,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/,lookbehind:!0}})}(Prism); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-scala.js: -------------------------------------------------------------------------------- 1 | Prism.languages.scala = Prism.languages.extend('java', { 2 | 'keyword': /<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/, 3 | 'string': [ 4 | { 5 | pattern: /"""[\s\S]*?"""/, 6 | greedy: true 7 | }, 8 | { 9 | pattern: /("|')(?:\\\\|\\?[^\\\r\n])*?\1/, 10 | greedy: true 11 | } 12 | ], 13 | 'builtin': /\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/, 14 | 'number': /\b(?:0x[\da-f]*\.?[\da-f]+|\d*\.?\d+e?\d*[dfl]?)\b/i, 15 | 'symbol': /'[^\d\s\\]\w*/ 16 | }); 17 | delete Prism.languages.scala['class-name']; 18 | delete Prism.languages.scala['function']; 19 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-scala.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.scala=Prism.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/("|')(?:\\\\|\\?[^\\\r\n])*?\1/,greedy:!0}],builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b(?:0x[\da-f]*\.?[\da-f]+|\d*\.?\d+e?\d*[dfl]?)\b/i,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala["function"]; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-scheme.js: -------------------------------------------------------------------------------- 1 | Prism.languages.scheme = { 2 | 'comment' : /;.*/, 3 | 'string' : { 4 | pattern: /"(?:[^"\\\r\n]|\\.)*?"|'[^('\s]*/, 5 | greedy: true 6 | }, 7 | 'keyword' : { 8 | pattern : /(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/, 9 | lookbehind : true 10 | }, 11 | 'builtin' : { 12 | pattern : /(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/, 13 | lookbehind : true 14 | }, 15 | 'number' : { 16 | pattern: /(\s|\))[-+]?\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?\b/, 17 | lookbehind: true 18 | }, 19 | 'boolean' : /#[tf]/, 20 | 'operator': { 21 | pattern: /(\()(?:[-+*%\/]|[<>]=?|=>?)/, 22 | lookbehind: true 23 | }, 24 | 'function' : { 25 | pattern : /(\()[^\s()]*(?=\s)/, 26 | lookbehind : true 27 | }, 28 | 'punctuation' : /[()]/ 29 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-scheme.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.scheme={comment:/;.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*?"|'[^('\s]*/,greedy:!0},keyword:{pattern:/(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,lookbehind:!0},builtin:{pattern:/(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,lookbehind:!0},number:{pattern:/(\s|\))[-+]?\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?\b/,lookbehind:!0},"boolean":/#[tf]/,operator:{pattern:/(\()(?:[-+*%\/]|[<>]=?|=>?)/,lookbehind:!0},"function":{pattern:/(\()[^\s()]*(?=\s)/,lookbehind:!0},punctuation:/[()]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-scss.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)*url(?=\()/i,selector:{pattern:/(?=\S)[^@;\{\}\(\)]?([^@;\{\}\(\)]|&|#\{\$[-_\w]+\})+(?=\s*\{(\}|\s|[^\}]+(:|\{)[^\}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-_\w]+/,variable:/\$[-_\w]+|#\{\$[-_\w]+\}/}}}),Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.scss.property={pattern:/(?:[\w-]|\$[-_\w]+|#\{\$[-_\w]+\})+(?=\s*:)/i,inside:{variable:/\$[-_\w]+|#\{\$[-_\w]+\}/}},Prism.languages.insertBefore("scss","important",{variable:/\$[-_\w]+|#\{\$[-_\w]+\}/}),Prism.languages.insertBefore("scss","function",{placeholder:{pattern:/%[-_\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},"boolean":/\b(?:true|false)\b/,"null":/\bnull\b/,operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.util.clone(Prism.languages.scss); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-smalltalk.js: -------------------------------------------------------------------------------- 1 | Prism.languages.smalltalk = { 2 | 'comment': /"(?:""|[^"])+"/, 3 | 'string': /'(?:''|[^'])+'/, 4 | 'symbol': /#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i, 5 | 'block-arguments': { 6 | pattern: /(\[\s*):[^\[|]*?\|/, 7 | lookbehind: true, 8 | inside: { 9 | 'variable': /:[\da-z]+/i, 10 | 'punctuation': /\|/ 11 | } 12 | }, 13 | 'temporary-variables': { 14 | pattern: /\|[^|]+\|/, 15 | inside: { 16 | 'variable': /[\da-z]+/i, 17 | 'punctuation': /\|/ 18 | } 19 | }, 20 | 'keyword': /\b(?:nil|true|false|self|super|new)\b/, 21 | 'character': { 22 | pattern: /\$./, 23 | alias: 'string' 24 | }, 25 | 'number': [ 26 | /\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/, 27 | /(?:\B-|\b)\d+(?:\.\d+)?(?:e-?\d+)?/ 28 | ], 29 | 'operator': /[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/, 30 | 'punctuation': /[.;:?\[\](){}]/ 31 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-smalltalk.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.smalltalk={comment:/"(?:""|[^"])+"/,string:/'(?:''|[^'])+'/,symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*?\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:nil|true|false|self|super|new)\b/,character:{pattern:/\$./,alias:"string"},number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/(?:\B-|\b)\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-smarty.min.js: -------------------------------------------------------------------------------- 1 | !function(e){var t=/\{\*[\s\S]+?\*\}|\{[\s\S]+?\}/g,a="{literal}",n="{/literal}",o=!1;e.languages.smarty=e.languages.extend("markup",{smarty:{pattern:t,inside:{delimiter:{pattern:/^\{|\}$/i,alias:"punctuation"},string:/(["'])(?:\\?.)*?\1/,number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][-+]?\d+)?)\b/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->)(?!\d)\w+/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],"function":[{pattern:/(\|\s*)@?(?!\d)\w+/,lookbehind:!0},/^\/?(?!\d)\w+/,/(?!\d)\w+(?=\()/],"attr-name":{pattern:/\w+\s*=\s*(?:(?!\d)\w+)?/,inside:{variable:{pattern:/(=\s*)(?!\d)\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\[\]().,:`]|\->/],operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/],keyword:/\b(?:false|off|on|no|true|yes)\b/}}}),e.languages.insertBefore("smarty","tag",{"smarty-comment":{pattern:/\{\*[\s\S]*?\*\}/,alias:["smarty","comment"]}}),e.hooks.add("before-highlight",function(e){"smarty"===e.language&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(t,function(t){if(t===n&&(o=!1),!o){t===a&&(o=!0);for(var r=e.tokenStack.length;-1!==e.backupCode.indexOf("___SMARTY"+r+"___");)++r;return e.tokenStack[r]=t,"___SMARTY"+r+"___"}return t}))}),e.hooks.add("before-insert",function(e){"smarty"===e.language&&(e.code=e.backupCode,delete e.backupCode)}),e.hooks.add("after-highlight",function(t){if("smarty"===t.language){for(var a=0,n=Object.keys(t.tokenStack);a?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],punctuation:/[{}()\[\];:,]/};t.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:n.util.clone(t)},t.func={pattern:/[\w-]+\([^)]*\).*/,inside:{"function":/^[^(]+/,rest:n.util.clone(t)}},n.languages.stylus={comment:{pattern:/(^|[^\\])(\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},"atrule-declaration":{pattern:/(^\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:t}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:t}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:t}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\[\];:.]/}}(Prism); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-swift.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.swift=Prism.languages.extend("clike",{string:{pattern:/("|')(\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|Protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b([\d_]+(\.[\de_]+)?|0x[a-f0-9_]+(\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b([A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.util.clone(Prism.languages.swift); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-tcl.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/,lookbehind:!0},{pattern:/(\$){[^}]+}/,lookbehind:!0},{pattern:/(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*[a-zA-Z0-9_]+/m,lookbehind:!0}],"function":{pattern:/(^\s*proc[ \t]+)[^\s]+/m,lookbehind:!0},builtin:[{pattern:/(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,lookbehind:!0},/\b(elseif|else)\b/],scope:{pattern:/(^\s*)(global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^\s*|\[)(after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,punctuation:/[{}()\[\]]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-twig.js: -------------------------------------------------------------------------------- 1 | Prism.languages.twig = { 2 | 'comment': /\{#[\s\S]*?#\}/, 3 | 'tag': { 4 | pattern: /\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/, 5 | inside: { 6 | 'ld': { 7 | pattern: /^(?:\{\{\-?|\{%\-?\s*\w+)/, 8 | inside: { 9 | 'punctuation': /^(?:\{\{|\{%)\-?/, 10 | 'keyword': /\w+/ 11 | } 12 | }, 13 | 'rd': { 14 | pattern: /\-?(?:%\}|\}\})$/, 15 | inside: { 16 | 'punctuation': /.*/ 17 | } 18 | }, 19 | 'string': { 20 | pattern: /("|')(?:\\?.)*?\1/, 21 | inside: { 22 | 'punctuation': /^['"]|['"]$/ 23 | } 24 | }, 25 | 'keyword': /\b(?:even|if|odd)\b/, 26 | 'boolean': /\b(?:true|false|null)\b/, 27 | 'number': /\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+([Ee][-+]?\d+)?)\b/, 28 | 'operator': [ 29 | { 30 | pattern: /(\s)(?:and|b\-and|b\-xor|b\-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/, 31 | lookbehind: true 32 | }, 33 | /[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/ 34 | ], 35 | 'property': /\b[a-zA-Z_][a-zA-Z0-9_]*\b/, 36 | 'punctuation': /[()\[\]{}:.,]/ 37 | } 38 | }, 39 | 40 | // The rest can be parsed as HTML 41 | 'other': { 42 | // We want non-blank matches 43 | pattern: /\S(?:[\s\S]*\S)?/, 44 | inside: Prism.languages.markup 45 | } 46 | }; 47 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-twig.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.twig={comment:/\{#[\s\S]*?#\}/,tag:{pattern:/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,inside:{ld:{pattern:/^(?:\{\{\-?|\{%\-?\s*\w+)/,inside:{punctuation:/^(?:\{\{|\{%)\-?/,keyword:/\w+/}},rd:{pattern:/\-?(?:%\}|\}\})$/,inside:{punctuation:/.*/}},string:{pattern:/("|')(?:\\?.)*?\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,"boolean":/\b(?:true|false|null)\b/,number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+([Ee][-+]?\d+)?)\b/,operator:[{pattern:/(\s)(?:and|b\-and|b\-xor|b\-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],property:/\b[a-zA-Z_][a-zA-Z0-9_]*\b/,punctuation:/[()\[\]{}:.,]/}},other:{pattern:/\S(?:[\s\S]*\S)?/,inside:Prism.languages.markup}}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-typescript.js: -------------------------------------------------------------------------------- 1 | Prism.languages.typescript = Prism.languages.extend('javascript', { 2 | // From JavaScript Prism keyword list and TypeScript language spec: https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md#221-reserved-words 3 | 'keyword': /\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|false|true|module|declare|constructor|string|Function|any|number|boolean|Array|enum|symbol|namespace|abstract|require|type)\b/ 4 | }); 5 | 6 | Prism.languages.ts = Prism.languages.typescript; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-typescript.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.typescript=Prism.languages.extend("javascript",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|false|true|module|declare|constructor|string|Function|any|number|boolean|Array|enum|symbol|namespace|abstract|require|type)\b/}),Prism.languages.ts=Prism.languages.typescript; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-vbnet.js: -------------------------------------------------------------------------------- 1 | Prism.languages.vbnet = Prism.languages.extend("basic", { 2 | 'keyword': /(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i, 3 | 'comment': [ 4 | { 5 | pattern: /(?:!|REM\b).+/i, 6 | inside: { 7 | 'keyword': /^REM/i 8 | } 9 | }, 10 | { 11 | pattern: /(^|[^\\:])'.*/, 12 | lookbehind: true 13 | } 14 | ] 15 | }); 16 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-vbnet.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.vbnet=Prism.languages.extend("basic",{keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0}]}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-vhdl.js: -------------------------------------------------------------------------------- 1 | Prism.languages.vhdl = { 2 | 'comment': /--.+/, 3 | // support for all logic vectors 4 | 'vhdl-vectors': { 5 | 'pattern': /\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i, 6 | 'alias': 'number' 7 | }, 8 | // support for operator overloading included 9 | 'quoted-function': { 10 | pattern: /"\S+?"(?=\()/, 11 | alias: 'function' 12 | }, 13 | 'string': /"(?:[^\\\r\n]|\\?(?:\r\n|[\s\S]))*?"/, 14 | 'constant': /\b(?:use|library)\b/i, 15 | // support for predefined attributes included 16 | 'keyword': /\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i, 17 | 'boolean': /\b(?:true|false)\b/i, 18 | 'function': /[a-z0-9_]+(?=\()/i, 19 | // decimal, based, physical, and exponential numbers supported 20 | 'number': /'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i, 21 | 'operator': /[<>]=?|:=|[-+*/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i, 22 | 'punctuation': /[{}[\];(),.:]/ 23 | }; 24 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-vhdl.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\\r\n]|\\?(?:\r\n|[\s\S]))*?"/,constant:/\b(?:use|library)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,"boolean":/\b(?:true|false)\b/i,"function":/[a-z0-9_]+(?=\()/i,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*\/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,punctuation:/[{}[\];(),.:]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-wiki.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.wiki=Prism.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+).+?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?}}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:Prism.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),Prism.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[\s\S]*?>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[\s\S]*?>|<\/(?:nowiki|pre|source)>/i,inside:Prism.languages.markup.tag.inside}}}}); -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-xojo.js: -------------------------------------------------------------------------------- 1 | Prism.languages.xojo = { 2 | 'comment': { 3 | pattern: /(?:'|\/\/|Rem\b).+/i, 4 | inside: { 5 | 'keyword': /^Rem/i 6 | } 7 | }, 8 | 'string': { 9 | pattern: /"(?:""|[^"])*"/, 10 | greedy: true 11 | }, 12 | 'number': [ 13 | /(?:\b|\B[.-])(?:\d+\.?\d*)(?:E[+-]?\d+)?/i, 14 | /&[bchou][a-z\d]+/i 15 | ], 16 | 'symbol': /#(?:If|Else|ElseIf|Endif|Pragma)\b/i, 17 | 'keyword': /\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\b/i, 18 | 'operator': /<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i, 19 | 'punctuation': /[.,;:()]/ 20 | }; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-xojo.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,inside:{keyword:/^Rem/i}},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b|\B[.-])(?:\d+\.?\d*)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],symbol:/#(?:If|Else|ElseIf|Endif|Pragma)\b/i,keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i,punctuation:/[.,;:()]/}; -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-yaml.js: -------------------------------------------------------------------------------- 1 | Prism.languages.yaml = { 2 | 'scalar': { 3 | pattern: /([\-:]\s*(![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\3[^\r\n]+)*)/, 4 | lookbehind: true, 5 | alias: 'string' 6 | }, 7 | 'comment': /#.*/, 8 | 'key': { 9 | pattern: /(\s*(?:^|[:\-,[{\r\n?])[ \t]*(![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/, 10 | lookbehind: true, 11 | alias: 'atrule' 12 | }, 13 | 'directive': { 14 | pattern: /(^[ \t]*)%.+/m, 15 | lookbehind: true, 16 | alias: 'important' 17 | }, 18 | 'datetime': { 19 | pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)(\d{4}-\d\d?-\d\d?([tT]|[ \t]+)\d\d?:\d{2}:\d{2}(\.\d*)?[ \t]*(Z|[-+]\d\d?(:\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(:\d{2}(\.\d*)?)?)(?=[ \t]*($|,|]|}))/m, 20 | lookbehind: true, 21 | alias: 'number' 22 | }, 23 | 'boolean': { 24 | pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)(true|false)[ \t]*(?=$|,|]|})/im, 25 | lookbehind: true, 26 | alias: 'important' 27 | }, 28 | 'null': { 29 | pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)(null|~)[ \t]*(?=$|,|]|})/im, 30 | lookbehind: true, 31 | alias: 'important' 32 | }, 33 | 'string': { 34 | pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')(?=[ \t]*($|,|]|}))/m, 35 | lookbehind: true, 36 | greedy: true 37 | }, 38 | 'number': { 39 | pattern: /([:\-,[{]\s*(![^\s]+)?[ \t]*)[+\-]?(0x[\da-f]+|0o[0-7]+|(\d+\.?\d*|\.?\d+)(e[\+\-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im, 40 | lookbehind: true 41 | }, 42 | 'tag': /![^\s]+/, 43 | 'important': /[&*][\w]+/, 44 | 'punctuation': /---|[:[\]{}\-,|>?]|\.\.\./ 45 | }; 46 | -------------------------------------------------------------------------------- /server/utils/assets/prism/components/prism-yaml.min.js: -------------------------------------------------------------------------------- 1 | Prism.languages.yaml={scalar:{pattern:/([\-:]\s*(![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\3[^\r\n]+)*)/,lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:/(\s*(?:^|[:\-,[{\r\n?])[ \t]*(![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/,lookbehind:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:/([:\-,[{]\s*(![^\s]+)?[ \t]*)(\d{4}-\d\d?-\d\d?([tT]|[ \t]+)\d\d?:\d{2}:\d{2}(\.\d*)?[ \t]*(Z|[-+]\d\d?(:\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(:\d{2}(\.\d*)?)?)(?=[ \t]*($|,|]|}))/m,lookbehind:!0,alias:"number"},"boolean":{pattern:/([:\-,[{]\s*(![^\s]+)?[ \t]*)(true|false)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},"null":{pattern:/([:\-,[{]\s*(![^\s]+)?[ \t]*)(null|~)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},string:{pattern:/([:\-,[{]\s*(![^\s]+)?[ \t]*)("(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')(?=[ \t]*($|,|]|}))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\-,[{]\s*(![^\s]+)?[ \t]*)[+\-]?(0x[\da-f]+|0o[0-7]+|(\d+\.?\d*|\.?\d+)(e[\+\-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\s]+/,important:/[&*][\w]+/,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./}; -------------------------------------------------------------------------------- /server/utils/assets/webapp/gpldr144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/webapp/gpldr144.png -------------------------------------------------------------------------------- /server/utils/assets/webapp/gpldr168.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/webapp/gpldr168.png -------------------------------------------------------------------------------- /server/utils/assets/webapp/gpldr192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/webapp/gpldr192.png -------------------------------------------------------------------------------- /server/utils/assets/webapp/gpldr48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/webapp/gpldr48.png -------------------------------------------------------------------------------- /server/utils/assets/webapp/gpldr72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/webapp/gpldr72.png -------------------------------------------------------------------------------- /server/utils/assets/webapp/gpldr96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/depado/goploader/a389583d3b5b6d698c56d3cc1c8c03157cdd6ed0/server/utils/assets/webapp/gpldr96.png -------------------------------------------------------------------------------- /server/utils/assets/webapp/sw.js: -------------------------------------------------------------------------------- 1 | var CACHE_NAME = 'gpldr-v2'; 2 | var urlsToCache = [ 3 | "/simple", 4 | "/static/jquery.min.js", 5 | "/static/clipboard.min.js", 6 | "/static/toastr.min.js", 7 | "/static/custom.js", 8 | "/static/milligram.min.css", 9 | "/static/toastr.css", 10 | "/static/style.css" 11 | ]; 12 | 13 | self.addEventListener('install', function(event) { 14 | event.waitUntil( 15 | caches.open(CACHE_NAME).then(function(cache) { 16 | return cache.addAll(urlsToCache); 17 | }) 18 | ); 19 | }); 20 | 21 | self.addEventListener('fetch', function(event) { 22 | event.respondWith( 23 | caches.match(event.request) 24 | .then(function(response) { 25 | if (response) { 26 | return response; 27 | } 28 | return fetch(event.request); 29 | } 30 | ) 31 | ); 32 | }); 33 | 34 | -------------------------------------------------------------------------------- /server/utils/scheme.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import "github.com/gin-gonic/gin" 4 | 5 | // DetectScheme allows to detect the scheme of a request 6 | func DetectScheme(c *gin.Context) string { 7 | scheme := c.Request.Header.Get("X-Forwarded-Proto") 8 | if scheme == "http" || scheme == "https" { 9 | return scheme 10 | } 11 | if c.Request.TLS != nil { 12 | return "https" 13 | } 14 | return "http" 15 | } 16 | -------------------------------------------------------------------------------- /server/utils/servername.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/gin-gonic/gin" 7 | 8 | "github.com/Depado/goploader/server/conf" 9 | ) 10 | 11 | // ServerName returns the configured hostname (and port) of the server 12 | func ServerName() string { 13 | ns := conf.C.NameServer 14 | if conf.C.AppendPort { 15 | ns = fmt.Sprintf("%s:%d", conf.C.NameServer, conf.C.Port) 16 | } 17 | return ns 18 | } 19 | 20 | // ServerURI returns the full URI to the server including scheme 21 | func ServerURI(c *gin.Context) string { 22 | return DetectScheme(c) + "://" + ServerName() 23 | } 24 | -------------------------------------------------------------------------------- /server/utils/templates/code.tmpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | {{ .name }} 7 | 8 | 9 | 10 | 11 |
{{ .code }}
12 | 13 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /server/utils/templates/info.tmpl: -------------------------------------------------------------------------------- 1 | {{ define "intro" }} 2 |

Goploader

3 |

Because file sharing is meant to be easy

4 | {{ end }} 5 | 6 | {{ define "blank_intro" }} 7 |

 

8 |

 

9 | {{ end }} -------------------------------------------------------------------------------- /server/utils/units.go: -------------------------------------------------------------------------------- 1 | package utils 2 | 3 | import ( 4 | "fmt" 5 | "strings" 6 | ) 7 | 8 | // Exported values 9 | const ( 10 | KiloByte = 1024.0 11 | MegaByte = 1024 * KiloByte 12 | GigaByte = 1024 * MegaByte 13 | TeraByte = 1024 * GigaByte 14 | ) 15 | 16 | // HumanBytes returns a human readable size 17 | func HumanBytes(bytes uint64) string { 18 | unit := "" 19 | value := float32(bytes) 20 | 21 | switch { 22 | case bytes >= TeraByte: 23 | unit = "TB" 24 | value = value / TeraByte 25 | case bytes >= GigaByte: 26 | unit = "GB" 27 | value = value / GigaByte 28 | case bytes >= MegaByte: 29 | unit = "MB" 30 | value = value / MegaByte 31 | case bytes >= KiloByte: 32 | unit = "KB" 33 | value = value / KiloByte 34 | case bytes >= 1.0: 35 | unit = "B" 36 | case bytes == 0: 37 | return "0" 38 | } 39 | 40 | sv := fmt.Sprintf("%.1f", value) 41 | sv = strings.TrimSuffix(sv, ".0") 42 | return fmt.Sprintf("%s%s", sv, unit) 43 | } 44 | -------------------------------------------------------------------------------- /server/views/web.go: -------------------------------------------------------------------------------- 1 | package views 2 | 3 | import ( 4 | "net/http" 5 | 6 | "github.com/gin-gonic/gin" 7 | 8 | "strings" 9 | 10 | "github.com/Depado/goploader/server/conf" 11 | "github.com/Depado/goploader/server/curl" 12 | "github.com/Depado/goploader/server/logger" 13 | "github.com/Depado/goploader/server/models" 14 | "github.com/Depado/goploader/server/utils" 15 | ) 16 | 17 | // Index handles the main page 18 | func Index(c *gin.Context) { 19 | logger.InfoC(c, "server", "GET /") 20 | if strings.HasPrefix(c.Request.Header.Get("User-Agent"), "curl") { 21 | curl.WriteTutorial(c) 22 | return 23 | } 24 | data := gin.H{ 25 | "token": conf.C.Token, 26 | "fulldoc": conf.C.FullDoc, 27 | "size_limit": utils.HumanBytes(uint64(conf.C.SizeLimit * utils.MegaByte)), 28 | "sensitive_mode": conf.C.SensitiveMode, 29 | } 30 | if conf.C.Stats { 31 | data["total_size"] = utils.HumanBytes(models.S.TotalSize) 32 | data["total_files"] = models.S.TotalFiles 33 | } 34 | c.HTML(http.StatusOK, "index.html", data) 35 | } 36 | 37 | // SimpleIndex is a simple rendering for webapp purpose 38 | func SimpleIndex(c *gin.Context) { 39 | logger.InfoC(c, "server", "GET /simple") 40 | data := gin.H{ 41 | "size_limit": utils.HumanBytes(uint64(conf.C.SizeLimit * utils.MegaByte)), 42 | "sensitive_mode": conf.C.SensitiveMode, 43 | } 44 | c.HTML(http.StatusOK, "mobile.html", data) 45 | } 46 | --------------------------------------------------------------------------------