Compare commits
56 commits
6489a470fc
...
10d41c046c
Author | SHA1 | Date | |
---|---|---|---|
10d41c046c | |||
969c1f9ee9 | |||
854874ecc0 | |||
536eb79a1b | |||
719db9f611 | |||
68868a69fa | |||
0c6bf61358 | |||
109439924b | |||
354f377589 | |||
6abdb8670f | |||
4c8966b496 | |||
81b16a6408 | |||
74f9499f08 | |||
b868602ddf | |||
d928040128 | |||
fe958fa1fe | |||
ac128dd20d | |||
888e44c1a3 | |||
bfc6e7d31b | |||
9047b3d355 | |||
41fb43a6c6 | |||
8826324152 | |||
bb507b4471 | |||
3cb6cbb030 | |||
8577506750 | |||
8d7d527dbb | |||
ebe1f6e6a2 | |||
1ba0e810d7 | |||
cf3bc045a0 | |||
dea5a5535f | |||
7a50a8cffb | |||
f3a85b12f8 | |||
be39488d3b | |||
00f801cc7f | |||
cdb4c11680 | |||
8dc9664f8a | |||
c4a0bfcc6f | |||
a62f8d53f5 | |||
bf8f645c25 | |||
675b5c9a7e | |||
4ba9e7a390 | |||
003283e0f5 | |||
711664e135 | |||
91e98b19db | |||
de7cbfa991 | |||
b69a690969 | |||
c19cee423e | |||
37dd31b3aa | |||
83b02c7eb6 | |||
0e21a8adb6 | |||
45cafda543 | |||
b774c997da | |||
19b99919d2 | |||
c5f556a901 | |||
95aa3009dc | |||
d03e0b2987 |
11 changed files with 255 additions and 45 deletions
9
.github/workflows/deploy.yml
vendored
9
.github/workflows/deploy.yml
vendored
|
@ -4,20 +4,13 @@ on: workflow_dispatch
|
|||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: antville
|
||||
|
||||
environment:
|
||||
name: p3k.org
|
||||
url: https://blog.p3k.org
|
||||
|
||||
steps:
|
||||
- name: Set up SSH agent
|
||||
uses: antville/helma/.github/actions/ssh@helma-🐜
|
||||
with:
|
||||
config: ${{ vars.SSH_CONFIG }}
|
||||
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
known-hosts: ${{ vars.SSH_KNOWN_HOSTS }}
|
||||
|
||||
- name: Copy files to production server
|
||||
run: ssh staging-server deploy-antville
|
||||
|
||||
|
|
40
.github/workflows/renovate.yml
vendored
Normal file
40
.github/workflows/renovate.yml
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
name: Run Renovate
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
#on:
|
||||
# schedule:
|
||||
# - cron: "42 * * * *"
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: antville
|
||||
|
||||
steps:
|
||||
- name: Run Renovate
|
||||
run: npx renovate
|
||||
env:
|
||||
# Renovate is using this token to retrieve release notes
|
||||
GITHUB_COM_TOKEN: ${{ secrets.renovate_github_com_token }}
|
||||
# See <https://docs.renovatebot.com/troubleshooting/#log-debug-levels>
|
||||
LOG_LEVEL: info # debug | info | warn | error | fatal
|
||||
RENOVATE_AUTODISCOVER: 'true'
|
||||
RENOVATE_CONFIG_FILE: /home/runner/renovate.json
|
||||
RENOVATE_ENDPOINT: ${{ github.api_url }}
|
||||
RENOVATE_GIT_AUTHOR: Renovate Bot <mail+renovate@antville.org>
|
||||
#RENOVATE_GIT_IGNORED_AUTHORS:
|
||||
# - 29139614+renovate[bot]@users.noreply.github.com
|
||||
RENOVATE_IGNORE_PR_AUTHOR: 'true'
|
||||
RENOVATE_LOG_FILE: renovate-log.ndjson
|
||||
RENOVATE_LOG_FILE_LEVEL: debug
|
||||
RENOVATE_PLATFORM: gitea
|
||||
RENOVATE_REPOSITORY_CACHE: 'enabled'
|
||||
# github.token is not working here, it lacks some permissions required by Renovate
|
||||
RENOVATE_TOKEN: ${{ secrets.renovate_token }} #${{ github.token }}
|
||||
|
||||
- name: Save log file
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: renovate-log.ndjson
|
||||
path: renovate-log.ndjson
|
||||
|
14
.github/workflows/stage.yml
vendored
14
.github/workflows/stage.yml
vendored
|
@ -4,25 +4,15 @@ on: workflow_dispatch
|
|||
|
||||
jobs:
|
||||
stage:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: antville
|
||||
|
||||
environment:
|
||||
name: stage
|
||||
url: https://antville-test.click
|
||||
url: ${{ vars.stage_url }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up SSH agent
|
||||
uses: antville/helma/.github/actions/ssh@helma-🐜
|
||||
with:
|
||||
config: ${{ vars.SSH_CONFIG }}
|
||||
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
known-hosts: ${{ vars.SSH_KNOWN_HOSTS }}
|
||||
|
||||
- name: Set up Gradle
|
||||
uses: gradle/actions/setup-gradle@v3
|
||||
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew :build
|
||||
|
||||
|
|
8
.github/workflows/stale.yml
vendored
8
.github/workflows/stale.yml
vendored
|
@ -1,21 +1,21 @@
|
|||
name: Mark stale issues and pull requests
|
||||
|
||||
on:
|
||||
on:
|
||||
schedule:
|
||||
- cron: "30 1 * * *"
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: antville
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v9
|
||||
- uses: https://github.com/actions/stale@v9
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
repo-token: ${{ github.token }}
|
||||
stale-issue-message: 'Stale issue message'
|
||||
stale-pr-message: 'Stale pull request message'
|
||||
stale-issue-label: 'no-issue-activity'
|
||||
|
|
50
.github/workflows/test.yml
vendored
Normal file
50
.github/workflows/test.yml
vendored
Normal file
|
@ -0,0 +1,50 @@
|
|||
name: Test
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: debian
|
||||
|
||||
environment:
|
||||
name: p3k.org
|
||||
url: https://blog.p3k.org
|
||||
|
||||
steps:
|
||||
- name: Do something
|
||||
run: |
|
||||
whoami
|
||||
pwd
|
||||
ls -ahl ~
|
||||
echo $SHELL
|
||||
|
||||
- name: Ping staging server
|
||||
run: ssh staging-server ping
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Run Renovate
|
||||
run: npx renovate
|
||||
env:
|
||||
# TODO:
|
||||
#GITHUB_COM_TOKEN=
|
||||
# See <https://docs.renovatebot.com/troubleshooting/#log-debug-levels>
|
||||
LOG_LEVEL: debug # debug | info | warn | error | fatal
|
||||
#RENOVATE_CONFIG_FILE: ./.gitlab/renovate.json
|
||||
RENOVATE_ENDPOINT: ${{ github.api_url }}
|
||||
RENOVATE_GIT_AUTHOR: Renovate Bot <mail+renovate@antville.org>
|
||||
RENOVATE_LOG_FILE: renovate-log.ndjson
|
||||
RENOVATE_LOG_FILE_LEVEL: debug
|
||||
RENOVATE_PLATFORM: gitea
|
||||
#RENOVATE_REPOSITORIES: $CI_PROJECT_PATH
|
||||
RENOVATE_AUTODISCOVER: 'true'
|
||||
RENOVATE_REPOSITORY_CACHE: 'enabled'
|
||||
RENOVATE_TOKEN: ${{ vars.renovate_token }} #${{ github.token }}
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Renovate log
|
||||
path: renovate-log.ndjson
|
||||
|
||||
#- name: Build with Gradle
|
||||
# run: ./gradlew :build
|
20
build.gradle
20
build.gradle
|
@ -62,15 +62,17 @@ assemble {
|
|||
dependsOn 'installJars'
|
||||
dependsOn 'buildStaticFiles'
|
||||
|
||||
copy {
|
||||
from fileTree(antvilleBuildDir).matching {
|
||||
exclude 'node_modules'
|
||||
exclude 'package.json'
|
||||
exclude 'tests'
|
||||
exclude 'tools/client'
|
||||
exclude 'tools/antclick'
|
||||
exclude 'package-lock.json'
|
||||
} into antvilleInstallDir
|
||||
doFirst {
|
||||
copy {
|
||||
from fileTree(antvilleBuildDir).matching {
|
||||
exclude 'node_modules'
|
||||
exclude 'package.json'
|
||||
exclude 'tests'
|
||||
exclude 'tools/client'
|
||||
exclude 'tools/antclick'
|
||||
exclude 'package-lock.json'
|
||||
} into antvilleInstallDir
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -682,7 +682,8 @@ function list_macro(param, id, limit) {
|
|||
return;
|
||||
}
|
||||
|
||||
var skin, collection;
|
||||
var skin;
|
||||
var collection = [];
|
||||
var max = Math.min(limit || 25, 100);
|
||||
|
||||
if (id === 'sites') {
|
||||
|
|
|
@ -402,7 +402,7 @@ void (function(url) {
|
|||
|
||||
// FIXME: compatibility
|
||||
|
||||
@base-font: <% value 'base font' default='Helvetica Neue, Helvetica, Arial, sans-serif' %>;
|
||||
@base-font: <% value 'base font' default='Helvetica Neue, Liberation Sans, Helvetica, Arial, sans-serif' %>;
|
||||
@base-font-size: <% value 'base font size' default="14px e('/') 20px" %>;
|
||||
@base-font-color: <% value 'base font color' default=#444 %>;
|
||||
|
||||
|
@ -435,7 +435,7 @@ void (function(url) {
|
|||
html, html.uk-notouch, body {
|
||||
background-color: @background;
|
||||
color: @text-color;
|
||||
font-family: @text-font;
|
||||
font: @text-font;
|
||||
}
|
||||
|
||||
body.av-16, body.av-page {
|
||||
|
@ -560,7 +560,7 @@ hr {
|
|||
}
|
||||
|
||||
&.uk-button-link {
|
||||
border: initial;
|
||||
border-color: transparent;
|
||||
|
||||
&:link, &:visited {
|
||||
color: @link-color;
|
||||
|
|
|
@ -115,7 +115,7 @@ function openPopup(img, width, height) {
|
|||
<% value 'muted color' #999999 %>
|
||||
<% value 'hover color' #d50000 %>
|
||||
<% value 'link color' #ff4040 %>
|
||||
<% value 'text font' 'Helvetica, Arial, sans-serif' %>
|
||||
<% value 'title font' 'Helvetica, Arial, sans-serif' %>
|
||||
<% value 'text font' 'Liberation Sans, Helvetica, Arial, sans-serif' %>
|
||||
<% value 'title font' 'Liberation Sans, Helvetica, Arial, sans-serif' %>
|
||||
|
||||
<% #stylesheet %>
|
||||
|
|
144
package-lock.json
generated
144
package-lock.json
generated
|
@ -10,7 +10,7 @@
|
|||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"alpinejs": "3.13.3",
|
||||
"codemirror": "5.65.16",
|
||||
"codemirror": "6.0.1",
|
||||
"jquery": "3.7.1",
|
||||
"jquery-collagePlus": "github:antville/jquery-collagePlus#0.3.4",
|
||||
"js-md5": "0.8.3",
|
||||
|
@ -94,6 +94,89 @@
|
|||
"dev": true,
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/@codemirror/autocomplete": {
|
||||
"version": "6.18.2",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.2.tgz",
|
||||
"integrity": "sha512-wJGylKtMFR/Ds6Gh01+OovXE/pncPiKZNNBKuC39pKnH+XK5d9+WsNqcrdxPjFPFTigRBqse0rfxw9UxrfyhPg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/language": "^6.0.0",
|
||||
"@codemirror/state": "^6.0.0",
|
||||
"@codemirror/view": "^6.17.0",
|
||||
"@lezer/common": "^1.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@codemirror/language": "^6.0.0",
|
||||
"@codemirror/state": "^6.0.0",
|
||||
"@codemirror/view": "^6.0.0",
|
||||
"@lezer/common": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@codemirror/commands": {
|
||||
"version": "6.7.1",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.7.1.tgz",
|
||||
"integrity": "sha512-llTrboQYw5H4THfhN4U3qCnSZ1SOJ60ohhz+SzU0ADGtwlc533DtklQP0vSFaQuCPDn3BPpOd1GbbnUtwNjsrw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/language": "^6.0.0",
|
||||
"@codemirror/state": "^6.4.0",
|
||||
"@codemirror/view": "^6.27.0",
|
||||
"@lezer/common": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@codemirror/language": {
|
||||
"version": "6.10.3",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.3.tgz",
|
||||
"integrity": "sha512-kDqEU5sCP55Oabl6E7m5N+vZRoc0iWqgDVhEKifcHzPzjqCegcO4amfrYVL9PmPZpl4G0yjkpTpUO/Ui8CzO8A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/state": "^6.0.0",
|
||||
"@codemirror/view": "^6.23.0",
|
||||
"@lezer/common": "^1.1.0",
|
||||
"@lezer/highlight": "^1.0.0",
|
||||
"@lezer/lr": "^1.0.0",
|
||||
"style-mod": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@codemirror/lint": {
|
||||
"version": "6.8.2",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.2.tgz",
|
||||
"integrity": "sha512-PDFG5DjHxSEjOXk9TQYYVjZDqlZTFaDBfhQixHnQOEVDDNHUbEh/hstAjcQJaA6FQdZTD1hquXTK0rVBLADR1g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/state": "^6.0.0",
|
||||
"@codemirror/view": "^6.0.0",
|
||||
"crelt": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"node_modules/@codemirror/search": {
|
||||
"version": "6.5.7",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.7.tgz",
|
||||
"integrity": "sha512-6+iLsXvITWKHYlkgHPCs/qiX4dNzn8N78YfhOFvPtPYCkuXqZq10rAfsUMhOq7O/1VjJqdXRflyExlfVcu/9VQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/state": "^6.0.0",
|
||||
"@codemirror/view": "^6.0.0",
|
||||
"crelt": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"node_modules/@codemirror/state": {
|
||||
"version": "6.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz",
|
||||
"integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@codemirror/view": {
|
||||
"version": "6.34.1",
|
||||
"resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.34.1.tgz",
|
||||
"integrity": "sha512-t1zK/l9UiRqwUNPm+pdIT0qzJlzuVckbTEMVNFhfWkGiBQClstzg+78vedCvLSX0xJEZ6lwZbPpnljL7L6iwMQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/state": "^6.4.0",
|
||||
"style-mod": "^4.1.0",
|
||||
"w3c-keyname": "^2.2.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@commander-js/extra-typings": {
|
||||
"version": "11.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@commander-js/extra-typings/-/extra-typings-11.1.0.tgz",
|
||||
|
@ -171,6 +254,30 @@
|
|||
"node": ">=v12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@lezer/common": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz",
|
||||
"integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@lezer/highlight": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz",
|
||||
"integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@lezer/common": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@lezer/lr": {
|
||||
"version": "1.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz",
|
||||
"integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@lezer/common": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@npmcli/agent": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz",
|
||||
|
@ -1497,10 +1604,19 @@
|
|||
}
|
||||
},
|
||||
"node_modules/codemirror": {
|
||||
"version": "5.65.16",
|
||||
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.16.tgz",
|
||||
"integrity": "sha512-br21LjYmSlVL0vFCPWPfhzUCT34FM/pAdK7rRIZwa0rrtrIdotvP4Oh4GUHsu2E3IrQMCfRkL/fN3ytMNxVQvg==",
|
||||
"license": "MIT"
|
||||
"version": "6.0.1",
|
||||
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz",
|
||||
"integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@codemirror/autocomplete": "^6.0.0",
|
||||
"@codemirror/commands": "^6.0.0",
|
||||
"@codemirror/language": "^6.0.0",
|
||||
"@codemirror/lint": "^6.0.0",
|
||||
"@codemirror/search": "^6.0.0",
|
||||
"@codemirror/state": "^6.0.0",
|
||||
"@codemirror/view": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/color-convert": {
|
||||
"version": "1.9.3",
|
||||
|
@ -1687,6 +1803,12 @@
|
|||
"sha.js": "^2.4.8"
|
||||
}
|
||||
},
|
||||
"node_modules/crelt": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz",
|
||||
"integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
|
@ -6187,6 +6309,12 @@
|
|||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/style-mod": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz",
|
||||
"integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/subarg": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz",
|
||||
|
@ -6687,6 +6815,12 @@
|
|||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/w3c-keyname": {
|
||||
"version": "2.2.8",
|
||||
"resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz",
|
||||
"integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/walk-up-path": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz",
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"alpinejs": "3.13.3",
|
||||
"codemirror": "5.65.16",
|
||||
"codemirror": "6.0.1",
|
||||
"jquery": "3.7.1",
|
||||
"jquery-collagePlus": "github:antville/jquery-collagePlus#0.3.4",
|
||||
"js-md5": "0.8.3",
|
||||
|
|
Loading…
Add table
Reference in a new issue