Compare commits

...

672 commits

Author SHA1 Message Date
a2e96cc1fa
Merge remote-tracking branch 'origin/main' into refactor_setting_of_root_cookie 2026-01-02 15:17:57 +01:00
c1af55a9de
Refactor automatic setting of root cookie
* Use existing functions
* Respect “remember me” setting
2026-01-02 15:14:31 +01:00
87640ed8da Prevent “undefined” showing up in skin diff 2025-06-01 13:00:46 +00:00
ad4e35f452 Prevent exception when a diff line is falsy 2025-06-01 12:41:24 +00:00
ae79a59639
Remove stale code in comments 2025-05-30 22:24:15 +02:00
354c9788c8
Make it less cumbersome to build/run the H2 database/console 2025-05-30 22:24:15 +02:00
67573db0e0
Add work-around allowing the reserved keyword “value“ as identifier
See <https://www.h2database.com/html/commands.html#set_non_keywords>
2025-05-30 22:24:15 +02:00
22013f2267 Update dependency com.h2database:h2 to v2 [SECURITY] 2025-05-29 22:42:28 +00:00
8370b2ba98
Create more useful links from version info 2025-05-29 23:57:04 +02:00
144d2475cb
Prevent error when data.type is undefined in proxy claustra 2025-05-28 23:04:26 +02:00
96ae3ad7fb Lock file maintenance 2025-05-27 18:36:08 +00:00
a7fc1df893
Merge branch 'main' into automatically-set-root-cookie
# Conflicts:
#	.github/workflows/deploy.yml
2025-05-27 20:32:47 +02:00
5b929bf0ca
Add compatibility fix for <td> elements overflowing the layout 2025-05-27 20:29:59 +02:00
0b326e71e6
Add compatibility fix for CSS skins with <style> element 2025-05-27 20:29:59 +02:00
c6d86368c5 Add and translate missing translatable message 2025-05-27 18:24:53 +00:00
1d59aff5a6 Always grant access to robots.txt 2025-05-27 18:24:53 +00:00
50b5c4d09e Slightly reword robot rules setting and translate to German 2025-05-27 18:24:53 +00:00
42a0d7e610 Add routine to enforce rules in robots.txt if corresponding setting is enabled 2025-05-27 18:24:53 +00:00
c5b9a613a8 Add site setting for enforcing rules in robots.txt 2025-05-27 18:24:53 +00:00
362ca05ab8 Adapt robots parser and its tests for Rhino 2025-05-27 18:24:53 +00:00
a7cabf0d63 Add third-party robots parser, including unit tests 2025-05-27 18:24:53 +00:00
f25b3c0b76
Simplify repository workflows
Use deploy workflow for staging, too
2025-05-25 20:58:23 +02:00
543070a94f Implement conditional redirect to root site after login
This way the account can be logged in to the default domain, too
2025-05-25 15:50:34 +00:00
786a110b48 Lock file maintenance 2025-05-25 15:43:49 +00:00
348fa4607d Update dependency gradle to v8.14.1 2025-05-25 15:40:16 +00:00
f90d1e0667
Simplify repository workflows
Use deploy workflow for staging, too
2025-05-25 16:58:53 +02:00
e5216c6c5f
Update NVM configuration for compatibility with official implementation 2025-05-25 16:41:15 +02:00
6ed24ef0d2 Replace hard-coded hostname with input 2025-05-24 20:03:13 +00:00
829ee33c32 Merge pull request 'Lock file maintenance' (#487) from renovate/lock-file-maintenance into main
Reviewed-on: #487
2025-04-22 20:09:19 +00:00
44a3e406a8 Lock file maintenance 2025-04-22 20:08:15 +00:00
cdbbe92e89 Merge pull request 'Update dependency generate-license-file to v4' (#492) from renovate/generate-license-file-4.x into main
Reviewed-on: #492
2025-04-22 20:05:44 +00:00
d62ada6c53 Update dependency generate-license-file to v4 2025-04-22 20:05:44 +00:00
342712e72f Merge pull request 'Update dependency codemirror to v5.65.19' (#493) from renovate/codemirror-5.x into main
Reviewed-on: #493
2025-04-22 19:56:43 +00:00
59c17419a9
Merge remote-tracking branch 'origin/main' into renovate/codemirror-5.x
# Conflicts:
#	package-lock.json
#	package.json
2025-04-22 21:52:38 +02:00
ac978f9555 Merge pull request 'Update dependency less to v4.3.0' (#494) from renovate/less-4.x into main
Reviewed-on: #494
2025-04-22 19:48:26 +00:00
4f97663619 Update dependency less to v4.3.0 2025-04-22 19:48:26 +00:00
7723a55306 Update dependency alpinejs to v3.14.9 2025-04-22 19:44:15 +00:00
45c8131c84 Merge pull request 'Update dependency org.jsoup:jsoup to v1.19.1' (#489) from renovate/org.jsoup-jsoup-1.x into main 2025-04-22 19:43:07 +00:00
147bd635fc
Merge remote-tracking branch 'origin/main' into renovate/org.jsoup-jsoup-1.x
# Conflicts:
#	code/Global/Global.js
2025-04-22 21:41:54 +02:00
a0e78d7fa6
Bump imported Jsoup version 2025-04-22 21:37:27 +02:00
7e32c3ad6f Update dependency gradle to v8.13 2025-04-22 19:20:46 +00:00
6e6a5ce191 Merge pull request 'Get rid of the annoying log message “done”' (#495) from remove-annoying-log-message into main 2025-04-22 19:17:32 +00:00
eb3f749ba1
Get rid of the annoying log message “done”
It is triggered by the LessCss compiler in the lesscss-1.7.9.1.1.jar file, META-INF/lessc-rhino-1.7.0.js – it’s an unminified JS file, so it’s simply patched by adding comments before the console.log("done") call.

Also see https://github.com/marceloverdijk/lesscss-java/issues/59
2025-04-08 00:46:40 +02:00
f005cb7b17 Update dependency codemirror to v5.65.19
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2025-03-23 16:42:51 +00:00
dbec9f22b2 Update dependency org.jsoup:jsoup to v1.19.1 2025-03-04 04:42:47 +00:00
ab7c1a4c1c
Bump year of the copyright notice
All checks were successful
Release / release (push) Successful in 49s
2025-03-01 19:36:14 +01:00
e37c4ad69b
Replace all repo URLs pointing to GitHub 2025-03-01 19:35:55 +01:00
cbcdb22670
Escape HTML elements in commit messages 2025-03-01 17:59:17 +01:00
babf14a8d2
Do not publish the archives with the Antville source code
These sources are included in the release files, anyway.
2025-03-01 17:47:13 +01:00
bae8079268
Switch to GZIP compression, BZIP2 still looking unpopular 2025-03-01 17:46:31 +01:00
cf5405478f
Add intermediate directory to archive files 2025-03-01 17:44:47 +01:00
31029a8cac
Bump Helma version
All checks were successful
Release / release (push) Successful in 46s
2025-03-01 16:47:25 +01:00
7821dd0142
Add release notes generated with git-cliff
All checks were successful
Release / release (push) Successful in 57s
2025-03-01 16:42:17 +01:00
12023e23e0
Fix issue with modern Servlet API 2025-02-15 21:06:27 +01:00
c9853f6217
Use correct GH_TOKEN and distribution files
All checks were successful
Release / build (push) Successful in 43s
2025-02-15 20:01:54 +01:00
5a6f1d14c2
Merge remote-tracking branch 'origin/main'
Some checks failed
Release / build (push) Failing after 42s
2025-02-15 19:59:13 +01:00
4d62d2083a
Also create a GitHub release using the gh client at the runner 2025-02-15 19:58:34 +01:00
6364067bac
Use tag in release title 2025-02-15 19:58:16 +01:00
542beb0c67 Update dependency generate-license-file to v3.7.0 2025-02-15 17:26:40 +00:00
8a9dc51b73 Merge pull request 'Update dependency less to v4.2.2' (#485) from renovate/less-4.x into main
Reviewed-on: #485
2025-02-15 17:23:40 +00:00
12d827ae67 Update dependency less to v4.2.2 2025-02-15 17:23:29 +00:00
b8ae49178c Merge pull request 'Update dependency gradle to v8.12.1' (#486) from renovate/gradle-8.x into main
Reviewed-on: #486
2025-02-15 17:22:45 +00:00
461c481607 Update dependency gradle to v8.12.1 2025-02-15 17:21:15 +00:00
24d1d29944
Initial commit
All checks were successful
Release / build (push) Successful in 41s
2025-02-15 17:34:58 +01:00
a51e2557c9
Use name and URL of actual production environment 2025-02-15 15:24:43 +01:00
8f0887ac8d
Remove obsolete workflows 2025-02-15 13:48:17 +01:00
8ba66866e2 Merge pull request 'Update dependency npm-run-all2 to v7' (#482) from renovate/npm-run-all2-7.x into main
Reviewed-on: #482
2025-01-03 21:55:39 +00:00
358ad425b8 Update dependency npm-run-all2 to v7
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2025-01-03 21:43:25 +00:00
5ffc647e64
Fix NPM version string; needs to be semver 🙄 2025-01-03 22:34:30 +01:00
ef572aa7f8
Update repository and download URLs 2025-01-03 22:34:24 +01:00
6c54afad92 Merge pull request 'Replace dependency npm-run-all with npm-run-all2 5.0.0' (#464) from renovate/npm-run-all-replacement into main
Reviewed-on: #464
2025-01-03 21:31:11 +00:00
8df5414e6e
Merge remote-tracking branch 'origin/main' into renovate/npm-run-all-replacement 2025-01-03 22:30:46 +01:00
ae550148d4 Merge pull request 'Update dependency browserify to v17.0.1' (#465) from renovate/browserify-17.x into main
Reviewed-on: #465
2025-01-03 21:22:11 +00:00
ff30bc43a3
Merge remote-tracking branch 'origin/main' into renovate/browserify-17.x 2025-01-03 22:20:44 +01:00
bdcaf06d8d Merge pull request 'Update dependency codemirror to v5.65.18' (#466) from renovate/codemirror-5.x into main
Reviewed-on: #466
2025-01-03 21:19:16 +00:00
9f5e19bfcf
Merge remote-tracking branch 'origin/main' into renovate/codemirror-5.x 2025-01-03 22:18:53 +01:00
318fd04ff7 Merge pull request 'Update dependency jsdoc to v4.0.4' (#467) from renovate/jsdoc-4.x into main
Reviewed-on: #467
2025-01-03 21:12:56 +00:00
f723404f96
Merge branch 'main' into renovate/jsdoc-4.x 2025-01-03 22:08:38 +01:00
6114af4cc6 Merge pull request 'Update dependency less to v4.2.1' (#468) from renovate/less-4.x into main
Reviewed-on: #468
2025-01-03 21:05:01 +00:00
9b5fe093b0 Merge branch 'main' into renovate/less-4.x 2025-01-03 21:04:45 +00:00
c336fc1f97 Merge pull request 'Update dependency alpinejs to v3.14.8' (#469) from renovate/alpinejs-3.x into main
Reviewed-on: #469
2025-01-03 20:52:28 +00:00
38b0667d2b Merge branch 'main' into renovate/alpinejs-3.x 2025-01-03 20:52:16 +00:00
9c9f8317b2 Merge pull request 'Update dependency generate-license-file to v3.6.0' (#470) from renovate/generate-license-file-3.x into main
Reviewed-on: #470
2025-01-03 20:44:25 +00:00
9ad65bbae5 Merge branch 'main' into renovate/generate-license-file-3.x 2025-01-03 20:44:16 +00:00
ffe73e0e5a Update dependency less to v4.2.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2025-01-03 20:43:26 +00:00
f258bbc81f Update dependency browserify to v17.0.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2025-01-03 20:43:15 +00:00
72286377df Replace dependency npm-run-all with npm-run-all2 5.0.0 2025-01-03 20:43:09 +00:00
dee6227989 Merge pull request 'Update dependency less-plugin-clean-css to v1.6.0' (#472) from renovate/less-plugin-clean-css-1.x into main
Reviewed-on: #472
2025-01-03 20:41:12 +00:00
29bf38aab2 Merge branch 'main' into renovate/less-plugin-clean-css-1.x 2025-01-03 20:41:04 +00:00
b6004b3a31
Update CommonMark packages to v0.24.0 2025-01-03 21:31:13 +01:00
a53ff1b03c
Update dependency org.jsoup:jsoup to v1.18.3 2025-01-03 21:31:13 +01:00
95aa91f33b
Update plugin com.github.jk1.dependency-license-report to v2.9 2025-01-03 21:28:39 +01:00
583f27f95d
Update plugin com.github.node-gradle.node to v7.1.0 2025-01-03 21:28:39 +01:00
4df9ce571a Merge pull request 'Update dependency gradle to v8.12' (#471) from renovate/gradle-8.x into main
Reviewed-on: #471
2025-01-03 19:31:36 +00:00
c9f7ce7b1a Merge branch 'main' into renovate/gradle-8.x 2025-01-03 18:48:37 +00:00
41f3d384c5
Merge remote-tracking branch 'remotes/origin/main' into origin/main 2025-01-03 19:35:24 +01:00
d25965a116 Enable manual trigger of Renovate workflow 2025-01-03 18:26:40 +00:00
45603d8794 Update Renovate workflow according to changes in antville/helma 2025-01-03 15:36:42 +00:00
3aeb363485 Update dependency alpinejs to v3.14.8
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2024-12-26 15:43:05 +00:00
02d566809c Update dependency gradle to v8.12 2024-12-20 16:43:27 +00:00
c7386c4ef2 Update dependency less-plugin-clean-css to v1.6.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2024-12-08 19:44:10 +00:00
31e86e0af9 Update dependency generate-license-file to v3.6.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2024-12-08 19:44:02 +00:00
8e38572d31 Update dependency jsdoc to v4.0.4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2024-12-08 19:43:29 +00:00
fcb6b286f3 Update dependency codemirror to v5.65.18
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
2024-12-08 19:43:20 +00:00
14e3c538ff
Migrate Renovate setup to setup at Antville.org 2024-11-01 16:28:12 +01:00
83b02c7eb6 Add .github/workflows/test.yml 2024-10-30 16:35:07 +00:00
16448dab95
Add EditorConfig for *.skin files 2024-09-21 13:45:39 +02:00
0e21a8adb6
Align the size of the button link with the button
It needs a border, though a transparent one.
2024-08-08 21:46:35 +02:00
45cafda543
Give Linux some font love 2024-08-08 21:44:40 +02:00
b774c997da
Copy during execution phase 2024-08-08 20:22:50 +02:00
19b99919d2
Merge remote-tracking branch 'origin/main' 2024-08-08 19:33:00 +02:00
c5f556a901
Update URL of stage environment 2024-08-08 19:31:50 +02:00
95aa3009dc
Initialize collection with a default value
This prevents it from being null and not iterable in the for..of loop, and Helma from throwing an exception.
2024-08-04 09:14:01 +02:00
d03e0b2987
Fix definition for CSS font shorthard property 2024-06-23 23:52:11 +02:00
998025b55c
Merge pull request #395 from antville/renovate/lock-file-maintenance
Lock file maintenance
2024-06-15 23:40:12 +02:00
42fa5a1c6d
Switch to tasks.register() to define custom tasks 2024-06-15 23:29:53 +02:00
renovate[bot]
b20a7ca05c
Lock file maintenance 2024-06-15 20:49:02 +00:00
6e085b82cb
Revert version bump; let’s release 1.6 before adding a decimal 2024-06-15 22:46:51 +02:00
e26760bdc4
Adapt version output to changes in Helma 2024-06-15 22:46:50 +02:00
508c193c50
Bump Node.js version 2024-06-15 22:41:54 +02:00
da393c74f0
Replace Gradle Git plugin with direct Git commands 2024-06-15 22:41:34 +02:00
88b8391673
No need to add the Gson library as long as it is bundles with Helma 2024-06-15 15:07:09 +02:00
1e071fd0cc
Revert CSS display of <summary> element
Otherwise the triangle to open/close a <details> element is not shown.
2024-06-11 23:05:45 +02:00
63bfe34e35
Move <p> element to customizable skin 2024-06-11 23:05:04 +02:00
6f632e9d4f
Add information about the JVM to the health page 2024-06-11 21:16:49 +02:00
81c442d5b0
Add links to dependencies listed under versions 2024-06-02 20:45:27 +02:00
893b8f98a8
Add deployment workflow 2024-06-02 02:24:27 +02:00
7db39d5c5b
Use action for setting up SSH agent 2024-06-01 19:51:44 +02:00
d74547ce41
Rsync files more specifically 2024-06-01 19:13:07 +02:00
e44539454f
Slightly reword workflow names 2024-05-31 12:30:07 +02:00
49ee8ace0d
Merge pull request #422 from antville/add-versions-to-health-output
Add version information for most important dependencies
2024-05-31 12:22:16 +02:00
6960102a81
Add version information for most important dependencies 2024-05-31 12:13:31 +02:00
dafab7f85f
Bump versions 2024-05-31 02:11:52 +02:00
23923fd694
Merge pull request #420 from antville/fix-error-in-health-action
Fix error in health action during first minutes after startup
2024-05-31 02:10:52 +02:00
f20e5d36a6
Use more reasonable defaults 2024-05-31 02:08:51 +02:00
d4bb902410
Merge remote-tracking branch 'origin/main' into fix-error-in-health-action 2024-05-31 02:03:41 +02:00
aec7a9195b
Merge pull request #421 from antville/remove-extra-git-checkout
Run tasks in project directory
2024-05-31 02:02:56 +02:00
56aff15a70
Run tasks in project directory 2024-05-31 01:51:19 +02:00
264ac59cbe
Fix error in health action during first minutes after startup
TypeError: Cannot read property "errorsPerUnit" from undefined (/home/helma/./apps/antville/code/Root/Root.js#278)
2024-05-31 00:04:38 +02:00
f2fa11cfca
Java is not needed for staging 2024-05-30 23:50:30 +02:00
dbd0071bc9
Arm GitHub workflow 2024-05-30 23:44:28 +02:00
3bd9f96c6c
Do not delete when transferring static content 2024-05-30 23:43:34 +02:00
3cf01e6bf5
Tansfer specific static files only 2024-05-30 23:38:48 +02:00
8abb8c8efd
Merge pull request #419 from antville/add-stage-workflow
Add stage workflow
2024-05-30 23:25:55 +02:00
91921c809f
Add stage workflow 2024-05-30 23:25:30 +02:00
6eeb0e12b6
Merge pull request #417 from antville/group-renovate-updates
Group Renovate updates
2024-05-30 21:56:36 +02:00
eb58b19791
Group CommonMark packages 2024-05-30 21:55:55 +02:00
a558d8c78f
Merge pull request #398 from antville/renovate/gradle-8.x
Update dependency gradle to v8.7
2024-05-30 21:44:16 +02:00
118fcf23b6
Merge pull request #416 from antville/remove-custom-codeql-config
Remove custom CodeQL workflow
2024-05-30 21:06:08 +02:00
c7d2e99de3
Remove custom CodeQL workflow 2024-05-30 21:02:42 +02:00
1e2cb8a3e3
Merge pull request #415 from antville/414-fix-code-scanning-alert-bad-html-filtering-regexp
Match also uppercase script tags in regex
2024-05-30 20:51:58 +02:00
b1869dc000
Parse also --!> as an HTML comment end tag 2024-05-30 20:48:50 +02:00
806d2b6cfd
Match also uppercase script tags in regex 2024-05-30 20:47:19 +02:00
c7822b9fc2
Update renovate.json 2024-03-24 13:51:42 +01:00
renovate[bot]
6467b38d04
Update dependency gradle to v8.7 2024-03-24 12:45:13 +00:00
187cbba693 Update renovate.json 2024-03-24 13:42:26 +01:00
09384070f9 Merge remote-tracking branch 'origin/main' 2024-03-23 23:10:49 +01:00
c0cf251e97 Add work-around for issue with CommonMark erroneously encoding HTML entities
See <https://github.com/commonmark/commonmark-java/issues/307>
2024-02-20 21:01:07 +01:00
7e17ff6f78 Remove cumbersome and obsolete mangling of strings in Story.linebreak_filter
Remove unused Story.code_filter
2024-02-20 20:13:45 +01:00
b2e5fbbe9d Correctly load and initialize Alpine.js 2024-02-20 20:11:58 +01:00
b9e557e6b8 Update changelog 2024-01-13 20:31:00 +01:00
4396dd2b44 Fix errors in the client-side code filtering the referrers 2024-01-13 20:21:38 +01:00
9ffc935ded Fix new choices being added to an existing poll at the wrong position 2024-01-13 19:55:16 +01:00
5bd5e0a5e4 Add missing URL encoding 2024-01-13 18:21:51 +01:00
763594b3ec Update changelog 2024-01-07 00:13:17 +01:00
cd35c1c26d Enable fancy console output of Gradle 2024-01-07 00:11:45 +01:00
6a8f1f2813 Fix output of non-semantic version string 2024-01-07 00:10:19 +01:00
7bf5dafec5
Merge pull request #384 from antville/renovate/lock-file-maintenance
Lock file maintenance
2024-01-06 23:31:44 +01:00
renovate[bot]
2fbf09911f
Lock file maintenance 2024-01-06 22:28:56 +00:00
5ab37a5227
Merge pull request #383 from antville/renovate/codemirror-5.x
Update dependency codemirror to v5.65.16
2024-01-06 23:27:10 +01:00
renovate[bot]
7bec2586fb
Update dependency codemirror to v5.65.16 2024-01-06 22:23:11 +00:00
44037fb22d
Merge pull request #389 from antville/renovate/alpinejs-3.x
Update dependency alpinejs to v3.13.3
2024-01-06 23:22:47 +01:00
renovate[bot]
fa8c56144a
Update dependency alpinejs to v3.13.3 2024-01-06 22:17:56 +00:00
dc551a972f
Merge pull request #386 from antville/renovate/js-md5-0.x
Update dependency js-md5 to v0.8.3
2024-01-06 23:17:29 +01:00
renovate[bot]
4070dcf19f
Update dependency js-md5 to v0.8.3 2024-01-06 21:56:39 +00:00
8bd1dad245
Merge pull request #387 from antville/renovate/com.github.node-gradle.node-7.x
Update plugin com.github.node-gradle.node to v7.0.1
2024-01-06 22:55:23 +01:00
renovate[bot]
dd14305803
Update plugin com.github.node-gradle.node to v7.0.1 2024-01-06 21:48:29 +00:00
5fee872830 Fix output path for licenses of Java libraries 2024-01-06 22:45:23 +01:00
4593e66e55 Use more fitting labels for Renovate PRs 2024-01-06 22:45:23 +01:00
38d18dc8c2 Don’t leak user data via API 2024-01-06 22:45:23 +01:00
48adee4823 Set dummy date to Antville’s birthday 2024-01-06 22:45:23 +01:00
renovate[bot]
68e2197d24 Update dependency gradle to v8.5 2024-01-06 22:45:23 +01:00
renovate[bot]
d3630b919b Update dependency generate-license-file to v3 2024-01-06 22:45:23 +01:00
renovate[bot]
78d151f5ea Update dependency org.jsoup:jsoup to v1.17.2 2024-01-06 22:45:23 +01:00
renovate[bot]
4291709620 Update actions/checkout action to v4 2024-01-06 22:45:23 +01:00
0edd1e2bff
Merge pull request #391 from antville/renovate/org.ajoberstar.grgit-5.x
Update plugin org.ajoberstar.grgit to v5.2.1
2024-01-06 22:14:13 +01:00
renovate[bot]
9c3c69fd07
Update plugin org.ajoberstar.grgit to v5.2.1 2024-01-06 20:44:22 +00:00
786208c09e
Merge pull request #393 from antville/renovate/actions-stale-9.x
Update actions/stale action to v9
2024-01-06 21:42:04 +01:00
e11eafa795
Merge pull request #394 from antville/renovate/github-codeql-action-3.x
Update github/codeql-action action to v3
2024-01-06 21:41:22 +01:00
renovate[bot]
8fbb19a349
Update github/codeql-action action to v3 2023-12-30 18:15:55 +00:00
renovate[bot]
9f8737ed3d
Update actions/stale action to v9 2023-12-30 18:15:22 +00:00
1db17b29ae Add support for images in webp format 2023-12-30 19:13:13 +01:00
c38ed1e1b4 Add NVM config file 2023-12-30 19:13:00 +01:00
2147f68168 Fix import of markdown library 2023-12-30 19:12:52 +01:00
a7d60cd0e7 Catch error where Site#trollFilter is not a string 2023-10-24 19:19:27 +02:00
772d06b3ef
Update renovate.json 2023-08-28 20:56:32 +02:00
dcf1821398
Update renovate.json 2023-08-28 20:45:40 +02:00
726dd77649
Update renovate.json 2023-08-28 20:44:49 +02:00
a0ec7b148b
Merge pull request #381 from antville/p3k-patch-1
Update renovate.json
2023-08-28 20:44:22 +02:00
eb62053bf4
Update renovate.json 2023-08-28 20:44:05 +02:00
2dda30ed75
Merge pull request #363 from antville/renovate/org.jsoup-jsoup-1.x
Update dependency org.jsoup:jsoup to v1.16.1
2023-08-28 20:10:30 +02:00
3d85327afe Sync renamed Jsoup namespace 2023-08-28 20:10:06 +02:00
6256e83f9e
Merge pull request #373 from antville/renovate/com.github.node-gradle.node-7.x
Update plugin com.github.node-gradle.node to v7
2023-08-28 20:05:54 +02:00
renovate[bot]
3134a0053f
Update plugin com.github.node-gradle.node to v7 2023-08-28 18:03:03 +00:00
ba2e3199cb
Merge pull request #367 from antville/renovate/org.ajoberstar.grgit-5.x
Update plugin org.ajoberstar.grgit to v5.2.0
2023-08-28 19:56:53 +02:00
renovate[bot]
65d3631194
Update plugin org.ajoberstar.grgit to v5.2.0 2023-08-28 17:56:37 +00:00
d344903d40
Merge pull request #379 from antville/renovate/jquery-3.x
Update dependency jquery to v3.7.1
2023-08-28 19:56:10 +02:00
renovate[bot]
1619fc5675
Update dependency jquery to v3.7.1 2023-08-28 17:54:04 +00:00
e33f92b07a
Merge pull request #364 from antville/renovate/com.github.jk1.dependency-license-report-2.x
Update plugin com.github.jk1.dependency-license-report to v2.5
2023-08-28 19:53:38 +02:00
b92c0f9c50 Sync JSoup version number 2023-08-28 17:52:03 +00:00
4529c9c372 Remove Dependabot configuration 2023-08-28 19:45:37 +02:00
renovate[bot]
27d1ee65d9
Update plugin com.github.jk1.dependency-license-report to v2.5 2023-08-27 18:17:39 +00:00
renovate[bot]
748825e40c
Update dependency org.jsoup:jsoup to v1.16.1 2023-08-27 18:17:35 +00:00
renovate[bot]
29cee882c0 Update actions/checkout action to v3 2023-08-27 20:16:49 +02:00
renovate[bot]
934735e15d Update actions/stale action to v8 2023-08-27 20:16:49 +02:00
3f554e1266
Merge pull request #362 from antville/renovate/configure
Configure Renovate
2023-08-27 13:00:45 +02:00
renovate[bot]
ff1d283448
Add renovate.json 2023-08-27 10:57:52 +00:00
fe83d13b48
Merge pull request #361 from antville/gradle-8-upgrade
Gradle 8 upgrade
2023-08-27 12:33:40 +02:00
32c56b5c9d Upgrade Gradle to latest version 2023-08-27 12:27:04 +02:00
5f45255c24 Update changelog 2023-08-27 12:26:14 +02:00
1a5d2d8a13
Merge pull request #360 from antville/rewrite-for-each-with-for-of
Replace `for…each` loops with `for…of`
2023-08-27 12:14:16 +02:00
69e46539d0 Merge branch 'main' into rewrite-for-each-with-for-of 2023-08-27 00:16:47 +02:00
5fc1852035
The JavaExecSpec.main property has been deprecated
This is scheduled to be removed in Gradle 9.0. Please use the mainClass property instead. For more information, please refer to https://docs.gradle.org/8.3/dsl/org.gradle.process.JavaExecSpec.html#org.gradle.process.JavaExecSpec:main in the Gradle documentation.
2023-08-27 00:14:28 +02:00
d2501c2d3a Replace for..each loops with for..of
💡 Needs Helma with enabled ES6 features in Rhino
2023-08-27 00:09:17 +02:00
8c5cbde7b5
Fix reference to upgraded GSON package 2023-08-26 23:39:18 +02:00
fd517885f8
Remove references to unsocial networks 2023-08-26 23:13:39 +02:00
b196d285cd
Fix wrong name for a JSDoc option 2023-08-26 22:58:52 +02:00
c4f7a7991a
Merge pull request #323 from antville/dependabot/gradle/org.ajoberstar.grgit-5.0.0
build(deps): bump org.ajoberstar.grgit from 4.1.1 to 5.0.0
2023-08-26 21:24:02 +02:00
816c7151ab
Merge branch 'main' into dependabot/gradle/org.ajoberstar.grgit-5.0.0 2023-08-26 21:23:42 +02:00
18c80b047d Merge pull request #352 from antville/dependabot/gradle/org.commonmark-commonmark-ext-autolink-0.21.0
build(deps): bump commonmark-ext-autolink from 0.18.1 to 0.21.0
2023-08-26 21:10:28 +02:00
fab5fa2e14
Merge pull request #353 from antville/dependabot/gradle/com.github.node-gradle.node-3.5.1
build(deps): bump com.github.node-gradle.node from 3.1.1 to 3.5.1
2023-08-26 20:53:48 +02:00
b8a87576c0 Merge remote-tracking branch 'origin/main' 2023-08-26 20:18:47 +02:00
9e371e7012
Merge pull request #317 from antville/dependabot/gradle/com.github.jk1.dependency-license-report-2.1
build(deps): bump com.github.jk1.dependency-license-report from 2.0 to 2.1
2023-08-26 20:17:56 +02:00
70d0b51c92 Remove script for running JSDoc again 2023-08-26 20:15:20 +02:00
e9d1014e3f Rewrite Gradle scripts for using NPM instead of Yarn 2023-08-26 19:43:50 +02:00
413e5ca70d Rename some NPM scripts and increase the verbosity of some arguments 2023-08-26 18:42:23 +02:00
7d91d5bcf7 Add build script for all scripts prefixed with “build:” 2023-08-26 18:25:36 +02:00
8a2d0a3209 Update changelog 2023-08-26 18:15:57 +02:00
a9e5c204fe Upgrade CodeMirror package to latest version 5.x 2023-08-26 18:14:42 +02:00
e59635f4ae Upgrade Less.js package to the latest version 2023-08-26 18:14:42 +02:00
f9c8214348 Upgrade JSDoc package to the latest version 2023-08-26 18:14:42 +02:00
3e29317264 Upgrade jQuery to the latest version 2023-08-26 18:14:42 +02:00
6a12114927 Upgrade Alpine.js package to the latest version 2023-08-26 18:14:42 +02:00
c437076c49 Pin versions 2023-08-26 17:05:05 +02:00
ffa3f65f10 Rename dev scripts/prefix to watch 2023-08-26 16:58:35 +02:00
31a1cb0a86 Migrate from Yarn back to NPM 2023-08-26 16:35:10 +02:00
50ff264517 Fix version bump of GSON Java library 2023-05-21 12:42:40 +02:00
416898f83b
Merge pull request #356 from antville/355-harden-search-against-sql-injection
Harden search against SQL injection
2023-03-05 15:33:16 +01:00
f42812d771 Transform SQL search queries to support prepared statements 2023-03-05 13:28:25 +01:00
f25200f5fd Support prepared statements in Sql library 2023-03-05 13:27:19 +01:00
a55999a14c Let Sql.prepare() automagically set int and string values
Return the actual prepared statement for further processing
2023-03-05 13:26:20 +01:00
c9f25316a2 Revert to previous code
with the exception of introducing an option for prepared statements
2023-03-05 13:22:29 +01:00
ab10032de9 Merge branch 'main' into 355-harden-search-against-sql-injection 2023-03-04 00:20:19 +01:00
1356b7cb67
Merge pull request #358 from antville/357-upgrade-codeql-action
Bump CodeQL Action to version 2
2023-03-04 00:17:34 +01:00
e3dfbc704e Bump CodeQL Action to version 2 2023-03-03 23:13:29 +00:00
c7cf535652 Prevent SQL injection in search by using prepared statement 2023-03-03 17:59:59 +01:00
a5424825b8 Add Sql.prepare() method for handling prepared statements 2023-03-03 17:59:24 +01:00
dependabot[bot]
9ab30b47e8
build(deps): bump com.github.node-gradle.node from 3.1.1 to 3.5.1
Bumps com.github.node-gradle.node from 3.1.1 to 3.5.1.

---
updated-dependencies:
- dependency-name: com.github.node-gradle.node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-27 16:01:51 +00:00
dependabot[bot]
04550673f9
build(deps): bump commonmark-ext-autolink from 0.18.1 to 0.21.0
Bumps [commonmark-ext-autolink](https://github.com/commonmark/commonmark-java) from 0.18.1 to 0.21.0.
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.18.1...commonmark-parent-0.21.0)

---
updated-dependencies:
- dependency-name: org.commonmark:commonmark-ext-autolink
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-17 16:05:49 +00:00
dependabot[bot]
7852d26b6c
build(deps): bump org.ajoberstar.grgit from 4.1.1 to 5.0.0
Bumps [org.ajoberstar.grgit](https://github.com/ajoberstar/grgit) from 4.1.1 to 5.0.0.
- [Release notes](https://github.com/ajoberstar/grgit/releases)
- [Commits](https://github.com/ajoberstar/grgit/compare/4.1.1...5.0.0)

---
updated-dependencies:
- dependency-name: org.ajoberstar.grgit
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-11 16:10:16 +00:00
dependabot[bot]
40e1d2d6fa
build(deps): bump com.github.jk1.dependency-license-report
Bumps com.github.jk1.dependency-license-report from 2.0 to 2.1.

---
updated-dependencies:
- dependency-name: com.github.jk1.dependency-license-report
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-20 16:15:29 +00:00
af1f560c66
Merge pull request #308 from antville/dependabot/gradle/org.ajoberstar.grgit-4.1.1
build(deps): bump org.ajoberstar.grgit from 4.1.0 to 4.1.1
2021-12-11 16:03:46 +01:00
6ec7fccac9 Merge remote-tracking branch 'origin/dependabot/gradle/org.ajoberstar.grgit-4.1.1' into dependabot/gradle/org.ajoberstar.grgit-4.1.1 2021-12-11 16:00:38 +01:00
288e21a710 Merge branch 'main' into dependabot/gradle/org.ajoberstar.grgit-4.1.1 2021-12-11 15:55:53 +01:00
dependabot[bot]
b063643e2f
build(deps): bump org.ajoberstar.grgit from 4.1.0 to 4.1.1
Bumps org.ajoberstar.grgit from 4.1.0 to 4.1.1.

---
updated-dependencies:
- dependency-name: org.ajoberstar.grgit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 14:55:34 +00:00
81a5bac780
Merge pull request #307 from antville/dependabot/gradle/com.github.node-gradle.node-3.1.1
build(deps): bump com.github.node-gradle.node from 3.1.0 to 3.1.1
2021-12-11 15:54:56 +01:00
1f5094c165 Merge branch 'main' into dependabot/gradle/com.github.node-gradle.node-3.1.1 2021-12-11 15:50:43 +01:00
f4de3114b8
Merge pull request #306 from antville/dependabot/gradle/com.github.jk1.dependency-license-report-2.0
build(deps): bump com.github.jk1.dependency-license-report from 1.16 to 2.0
2021-12-11 15:49:59 +01:00
c9f7043a90 Merge branch 'main' into dependabot/gradle/com.github.jk1.dependency-license-report-2.0 2021-12-11 15:41:36 +01:00
b7e7645eef
Merge pull request #293 from antville/dependabot/npm_and_yarn/codemirror-5.64.0
build(deps): bump codemirror from 5.61.0 to 5.64.0
2021-12-11 15:31:51 +01:00
dependabot[bot]
0dc29460e4
build(deps): bump org.ajoberstar.grgit from 4.1.0 to 4.1.1
Bumps org.ajoberstar.grgit from 4.1.0 to 4.1.1.

---
updated-dependencies:
- dependency-name: org.ajoberstar.grgit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 12:01:37 +00:00
5f4dc8b314 Merge branch 'main' into dependabot/npm_and_yarn/codemirror-5.64.0 2021-12-11 13:01:36 +01:00
dbe96d4cdd
Merge pull request #289 from antville/dependabot/npm_and_yarn/less-4.1.2
build(deps-dev): bump less from 4.1.1 to 4.1.2
2021-12-11 13:00:54 +01:00
cf4486e397 Merge branch 'main' into dependabot/npm_and_yarn/less-4.1.2 2021-12-11 12:58:01 +01:00
180d271c66 Bump Node and Yarn versions 2021-12-11 12:53:58 +01:00
71c3eec62d Merge branch 'main' into dependabot/npm_and_yarn/less-4.1.2 2021-12-11 12:44:51 +01:00
dependabot[bot]
99c9f00db4
build(deps): bump com.github.node-gradle.node from 3.1.0 to 3.1.1
Bumps com.github.node-gradle.node from 3.1.0 to 3.1.1.

---
updated-dependencies:
- dependency-name: com.github.node-gradle.node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 11:42:04 +00:00
e27958fd2f
Merge pull request #288 from antville/dependabot/gradle/org.jsoup-jsoup-1.14.3
build(deps): bump jsoup from 1.13.1 to 1.14.3
2021-12-11 12:41:29 +01:00
174864b3aa Bump JSoup version in JS code 2021-12-11 12:33:58 +01:00
dependabot[bot]
adf2d4002d
build(deps): bump jsoup from 1.13.1 to 1.14.3
Bumps [jsoup](https://github.com/jhy/jsoup) from 1.13.1 to 1.14.3.
- [Release notes](https://github.com/jhy/jsoup/releases)
- [Changelog](https://github.com/jhy/jsoup/blob/master/CHANGES)
- [Commits](https://github.com/jhy/jsoup/compare/jsoup-1.13.1...jsoup-1.14.3)

---
updated-dependencies:
- dependency-name: org.jsoup:jsoup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 11:29:02 +00:00
dependabot[bot]
559d95cf16
build(deps): bump com.github.jk1.dependency-license-report
Bumps com.github.jk1.dependency-license-report from 1.16 to 2.0.

---
updated-dependencies:
- dependency-name: com.github.jk1.dependency-license-report
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-11 11:28:36 +00:00
9c737b5552
Merge pull request #305 from antville/upgrade-commonmark-0.17.1-0.18.1
Upgrade commonmark 0.17.1 to 0.18.1
2021-12-11 12:28:17 +01:00
e82eda3252 Merge remote-tracking branch 'origin/dependabot/gradle/org.commonmark-commonmark-ext-gfm-tables-0.18.1' into upgrade-commonmark-0.17.1-0.18.1
Fix #295 #296 #297 #298
2021-12-11 12:26:25 +01:00
229209c3a3 Merge remote-tracking branch 'origin/dependabot/gradle/org.commonmark-commonmark-ext-gfm-strikethrough-0.18.1' into upgrade-commonmark-0.17.1-0.18.1 2021-12-11 12:13:06 +01:00
1d445b72f0 Merge remote-tracking branch 'origin/dependabot/gradle/org.commonmark-commonmark-ext-autolink-0.18.1' into upgrade-commonmark-0.17.1-0.18.1 2021-12-11 12:12:20 +01:00
2ec999c49d Merge remote-tracking branch 'origin/dependabot/gradle/org.commonmark-commonmark-0.18.1' into upgrade-commonmark-0.17.1-0.18.1 2021-12-11 12:09:54 +01:00
8f8a5fa341
Merge pull request #304 from antville/fix-codeql-js-incomplete-sanitization
Fix CodeQL issue js/incomplete-sanitization
2021-12-11 11:48:40 +01:00
dbec5531e8 Fix CodeQL issue js/incomplete-sanitization 2021-12-11 11:45:54 +01:00
ce68275e4e
Merge pull request #302 from antville/fix-codeql-js-useless-regexp-character-escape
Fix CodeQL issue js/useless-regexp-character-escape
2021-12-11 11:34:20 +01:00
96ca0b6690 Fix CodeQL issue js/useless-regexp-character-escape 2021-12-11 11:31:21 +01:00
e437bec53e
Merge pull request #275 from antville/dependabot/npm_and_yarn/path-parse-1.0.7
build(deps): bump path-parse from 1.0.6 to 1.0.7
2021-12-05 00:13:36 +01:00
bddbfe6547
Merge pull request #260 from antville/dependabot/npm_and_yarn/glob-parent-5.1.2
build(deps): bump glob-parent from 5.1.1 to 5.1.2
2021-12-05 00:13:10 +01:00
42799ec995 Add support for hiding elements “x-cloaked“ with AlpineJS 2021-12-04 22:58:52 +01:00
7fef2bfaa8 Improve header display across browsers 2021-12-04 22:58:05 +01:00
32e1a595eb Slightly increase top margin of main header 2021-12-04 22:28:36 +01:00
0bf402827f Format comments with Markdown by default 2021-12-04 22:14:45 +01:00
750f174508 Update URLs of Antville / Helma buttons 2021-12-04 22:13:38 +01:00
675d0c4182 Add support for lazy loading in image macro 2021-12-04 22:12:05 +01:00
dependabot[bot]
dc80cf2ccd
build(deps): bump commonmark-ext-autolink from 0.17.1 to 0.18.1
Bumps [commonmark-ext-autolink](https://github.com/commonmark/commonmark-java) from 0.17.1 to 0.18.1.
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.17.1...commonmark-parent-0.18.1)

---
updated-dependencies:
- dependency-name: org.commonmark:commonmark-ext-autolink
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 16:11:20 +00:00
dependabot[bot]
745e594941
build(deps): bump commonmark from 0.17.1 to 0.18.1
Bumps [commonmark](https://github.com/commonmark/commonmark-java) from 0.17.1 to 0.18.1.
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.17.1...commonmark-parent-0.18.1)

---
updated-dependencies:
- dependency-name: org.commonmark:commonmark
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 16:11:10 +00:00
dependabot[bot]
0115e0382b
build(deps): bump commonmark-ext-gfm-strikethrough from 0.17.1 to 0.18.1
Bumps [commonmark-ext-gfm-strikethrough](https://github.com/commonmark/commonmark-java) from 0.17.1 to 0.18.1.
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.17.1...commonmark-parent-0.18.1)

---
updated-dependencies:
- dependency-name: org.commonmark:commonmark-ext-gfm-strikethrough
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 16:11:07 +00:00
dependabot[bot]
5ba9989c93
build(deps): bump commonmark-ext-gfm-tables from 0.17.1 to 0.18.1
Bumps [commonmark-ext-gfm-tables](https://github.com/commonmark/commonmark-java) from 0.17.1 to 0.18.1.
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.17.1...commonmark-parent-0.18.1)

---
updated-dependencies:
- dependency-name: org.commonmark:commonmark-ext-gfm-tables
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 16:11:03 +00:00
dependabot[bot]
233e7f1023
build(deps): bump codemirror from 5.61.0 to 5.64.0
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.61.0 to 5.64.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.61.0...5.64.0)

---
updated-dependencies:
- dependency-name: codemirror
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-22 16:01:37 +00:00
dependabot[bot]
f73400884f
build(deps-dev): bump less from 4.1.1 to 4.1.2
Bumps [less](https://github.com/less/less.js) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/less/less.js/releases)
- [Changelog](https://github.com/less/less.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/less/less.js/commits)

---
updated-dependencies:
- dependency-name: less
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-10-04 16:01:20 +00:00
d0d0ba7ddb Modify hash for automatic login to only include one IP
Remove unused cookieLevel property
2021-09-05 15:22:25 +02:00
dependabot[bot]
d4495fa735
build(deps): bump path-parse from 1.0.6 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-11 01:02:27 +00:00
dependabot[bot]
00be74d8dd
build(deps): bump glob-parent from 5.1.1 to 5.1.2
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-11 20:57:39 +00:00
6e40b1fdec Format story content in compat layer as Markdown 2021-06-06 20:45:43 +02:00
628caae82c Set default release date to Antville’s birthday 2021-06-06 20:45:03 +02:00
4276bd7862
Remove Java language
(added by mistake)
2021-05-17 14:18:45 +02:00
099f9e7fa6
Create stale.yml 2021-05-16 14:36:09 +02:00
178441ab87
Add Java language 2021-05-16 14:34:35 +02:00
8c4bf49270
Create codeql-analysis.yml 2021-05-16 14:27:52 +02:00
bf5c7e257d
Merge pull request #254 from antville/dependabot/fix-underscore-security-issue
Upgrade JSDoc dependency
2021-05-16 14:18:32 +02:00
631258b5f6 Upgrade JSDoc dependency 2021-05-16 14:15:24 +02:00
c6488102c1
Merge pull request #251 from antville/dependabot/npm_and_yarn/lodash-4.17.21
build(deps): bump lodash from 4.17.19 to 4.17.21
2021-05-16 14:02:32 +02:00
ddf7c80b3a
Merge pull request #252 from antville/dependabot/npm_and_yarn/hosted-git-info-2.8.9
build(deps): bump hosted-git-info from 2.8.8 to 2.8.9
2021-05-16 14:02:06 +02:00
fd84b89f12
Merge pull request #250 from antville/dependabot/gradle/com.github.node-gradle.node-3.1.0
build(deps): bump com.github.node-gradle.node from 3.0.1 to 3.1.0
2021-05-16 13:57:23 +02:00
ae74311d11
Merge pull request #249 from antville/dependabot/npm_and_yarn/codemirror-5.61.0
build(deps): bump codemirror from 5.60.0 to 5.61.0
2021-05-16 13:37:23 +02:00
dependabot[bot]
f6105b7476
build(deps): bump hosted-git-info from 2.8.8 to 2.8.9
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-11 19:40:39 +00:00
dependabot[bot]
75f8dfe60d
build(deps): bump lodash from 4.17.19 to 4.17.21
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-11 09:15:27 +00:00
dependabot[bot]
b67f421edc
build(deps): bump com.github.node-gradle.node from 3.0.1 to 3.1.0
Bumps com.github.node-gradle.node from 3.0.1 to 3.1.0.

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-10 09:56:47 +00:00
dependabot[bot]
9c39d75cc7
build(deps): bump codemirror from 5.60.0 to 5.61.0
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.60.0 to 5.61.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.60.0...5.61.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-21 05:02:08 +00:00
0ecc3c8c8d
Merge pull request #241 from antville/dependabot/npm_and_yarn/less-4.1.1
build(deps-dev): bump less from 3.11.1 to 4.1.1
2021-04-18 18:39:08 +02:00
ad0f7e0c65 Build files initially in dev mode 2021-04-18 18:38:40 +02:00
f87eac943e Merge branch 'dependabot/npm_and_yarn/less-4.1.1' of github.com:antville/antville into dependabot/npm_and_yarn/less-4.1.1 2021-04-18 18:35:22 +02:00
dependabot[bot]
d1e605cadb
build(deps-dev): bump less from 3.11.1 to 4.1.1
Bumps [less](https://github.com/less/less.js) from 3.11.1 to 4.1.1.
- [Release notes](https://github.com/less/less.js/releases)
- [Changelog](https://github.com/less/less.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/less/less.js/compare/v3.11.1...v4.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-18 16:32:45 +00:00
d8f52a063f
Merge pull request #245 from antville/dependabot/npm_and_yarn/alpinejs-2.8.2
build(deps): bump alpinejs from 2.3.3 to 2.8.2
2021-04-18 18:31:02 +02:00
dependabot[bot]
5154650c25
build(deps): bump alpinejs from 2.3.3 to 2.8.2
Bumps [alpinejs](https://github.com/alpinejs/alpine) from 2.3.3 to 2.8.2.
- [Release notes](https://github.com/alpinejs/alpine/releases)
- [Commits](https://github.com/alpinejs/alpine/compare/v2.3.3...v2.8.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-18 16:21:47 +00:00
394fbe9c66
Merge pull request #243 from antville/dependabot/npm_and_yarn/jquery-3.6.0
build(deps): bump jquery from 3.5.1 to 3.6.0
2021-04-18 18:20:16 +02:00
3ec835cb73 Merge branch 'main' into dependabot/npm_and_yarn/jquery-3.6.0 2021-04-18 17:53:28 +02:00
dependabot[bot]
281232f0a9
build(deps-dev): bump less from 3.11.1 to 4.1.1
Bumps [less](https://github.com/less/less.js) from 3.11.1 to 4.1.1.
- [Release notes](https://github.com/less/less.js/releases)
- [Changelog](https://github.com/less/less.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/less/less.js/compare/v3.11.1...v4.1.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-18 15:15:23 +00:00
00cc3f780c
Merge pull request #244 from antville/dependabot/npm_and_yarn/browserify-17.0.0
build(deps-dev): bump browserify from 16.5.1 to 17.0.0
2021-04-18 17:13:36 +02:00
900fd2635c Add Gradle task setting Yarn version 2021-04-18 17:10:50 +02:00
8edd8d1dcd Merge branch 'main' into dependabot/npm_and_yarn/browserify-17.0.0 2021-04-18 16:42:27 +02:00
e7750a2281
Merge pull request #236 from antville/dependabot/gradle/com.github.node-gradle.node-3.0.1
build(deps): bump com.github.node-gradle.node from 2.2.3 to 3.0.1
2021-04-18 16:41:53 +02:00
735f580b32 Bump Yarn version 2021-04-18 16:41:29 +02:00
287df1e4ec Bump Node to latest LTS 2021-04-18 16:40:26 +02:00
1144db0434 Merge branch 'main' into dependabot/gradle/com.github.node-gradle.node-3.0.1 2021-04-18 16:37:09 +02:00
25d309fe81 Bump Gradle version 2021-04-18 16:35:22 +02:00
29d25a08ad Merge branch 'main' into dependabot/gradle/com.github.node-gradle.node-3.0.1 2021-04-18 15:56:06 +02:00
60c9f486d0 Fix error when dir already exists 2021-04-18 15:54:16 +02:00
4835eb8884 Bump commonmark version 2021-04-18 15:53:56 +02:00
a24e9681ec
Merge pull request #246 from antville/dependabot/gradle/org.commonmark-commonmark-ext-gfm-tables-0.17.1
build(deps): bump commonmark-ext-gfm-tables from 0.14.0 to 0.17.1
2021-04-18 15:29:05 +02:00
dependabot[bot]
c96fdb8c49
build(deps): bump commonmark-ext-gfm-tables from 0.14.0 to 0.17.1
Bumps [commonmark-ext-gfm-tables](https://github.com/commonmark/commonmark-java) from 0.14.0 to 0.17.1.
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.14.0...commonmark-parent-0.17.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-18 13:29:01 +00:00
8918870bde
Merge pull request #247 from antville/dependabot/gradle/org.commonmark-commonmark-ext-gfm-strikethrough-0.17.1
build(deps): bump commonmark-ext-gfm-strikethrough from 0.14.0 to 0.17.1
2021-04-18 15:28:45 +02:00
dependabot[bot]
196bb0f435
build(deps): bump commonmark-ext-gfm-strikethrough from 0.14.0 to 0.17.1
Bumps [commonmark-ext-gfm-strikethrough](https://github.com/commonmark/commonmark-java) from 0.14.0 to 0.17.1.
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.14.0...commonmark-parent-0.17.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-18 13:28:30 +00:00
9d53108f4f
Merge pull request #248 from antville/dependabot/gradle/org.commonmark-commonmark-ext-autolink-0.17.1
build(deps): bump commonmark-ext-autolink from 0.14.0 to 0.17.1
2021-04-18 15:27:58 +02:00
5066a6d21d Merge branch 'main' of github.com:antville/antville 2021-04-18 15:17:28 +02:00
9e0b760237 Save domains.map in static dir 2021-04-18 14:58:31 +02:00
48793c4190
Add myself as default assignee 2021-04-05 12:11:53 +02:00
dependabot[bot]
6dada559f1
build(deps): bump commonmark-ext-autolink from 0.14.0 to 0.17.1
Bumps [commonmark-ext-autolink](https://github.com/commonmark/commonmark-java) from 0.14.0 to 0.17.1.
- [Release notes](https://github.com/commonmark/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/commonmark/commonmark-java/compare/commonmark-parent-0.14.0...commonmark-parent-0.17.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 09:24:24 +00:00
dependabot[bot]
2b006cc113
build(deps-dev): bump browserify from 16.5.1 to 17.0.0
Bumps [browserify](https://github.com/browserify/browserify) from 16.5.1 to 17.0.0.
- [Release notes](https://github.com/browserify/browserify/releases)
- [Changelog](https://github.com/browserify/browserify/blob/master/changelog.markdown)
- [Commits](https://github.com/browserify/browserify/compare/v16.5.1...v17.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 05:06:17 +00:00
dependabot[bot]
4772796817
build(deps): bump jquery from 3.5.1 to 3.6.0
Bumps [jquery](https://github.com/jquery/jquery) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/jquery/jquery/releases)
- [Commits](https://github.com/jquery/jquery/compare/3.5.1...3.6.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-05 05:05:50 +00:00
82c4072160
Merge pull request #240 from antville/dependabot/npm_and_yarn/codemirror-5.60.0
build(deps): bump codemirror from 5.53.2 to 5.60.0
2021-04-04 23:26:16 +02:00
468b046104
Merge pull request #239 from antville/dependabot/npm_and_yarn/onchange-7.1.0
build(deps-dev): bump onchange from 7.0.2 to 7.1.0
2021-04-04 23:25:01 +02:00
dependabot[bot]
e317b74aba
build(deps): bump com.github.node-gradle.node from 2.2.3 to 3.0.1
Bumps com.github.node-gradle.node from 2.2.3 to 3.0.1.

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-04 19:10:12 +00:00
8b993edc28
Merge pull request #242 from antville/dependabot/npm_and_yarn/jsdoc-3.6.6
build(deps-dev): bump jsdoc from 3.6.4 to 3.6.6
2021-04-04 21:09:46 +02:00
94f727a993
Merge pull request #234 from antville/dependabot/gradle/org.ajoberstar.grgit-4.1.0
build(deps): bump org.ajoberstar.grgit from 4.0.2 to 4.1.0
2021-04-04 21:05:14 +02:00
8656b9be92
Merge pull request #237 from antville/dependabot/gradle/com.github.jk1.dependency-license-report-1.16
build(deps): bump com.github.jk1.dependency-license-report from 1.13 to 1.16
2021-04-04 21:04:06 +02:00
23a510d9d3
Merge pull request #235 from antville/dependabot/gradle/com.atlassian.commonmark-commonmark-0.17.0
build(deps): bump commonmark from 0.14.0 to 0.17.0
2021-04-04 20:50:18 +02:00
a4a1fc757a
Fix location of moved artifacts 2021-04-04 20:49:32 +02:00
dependabot[bot]
f2463752e5
build(deps-dev): bump jsdoc from 3.6.4 to 3.6.6
Bumps [jsdoc](https://github.com/jsdoc/jsdoc) from 3.6.4 to 3.6.6.
- [Release notes](https://github.com/jsdoc/jsdoc/releases)
- [Changelog](https://github.com/jsdoc/jsdoc/blob/master/CHANGES.md)
- [Commits](https://github.com/jsdoc/jsdoc/compare/3.6.4...3.6.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-04 18:34:58 +00:00
dependabot[bot]
2e906a8d94
build(deps): bump codemirror from 5.53.2 to 5.60.0
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.53.2 to 5.60.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.53.2...5.60.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-04 18:34:34 +00:00
dependabot[bot]
6c641f1125
build(deps-dev): bump onchange from 7.0.2 to 7.1.0
Bumps [onchange](https://github.com/Qard/onchange) from 7.0.2 to 7.1.0.
- [Release notes](https://github.com/Qard/onchange/releases)
- [Commits](https://github.com/Qard/onchange/compare/v7.0.2...v7.1.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-04 18:34:27 +00:00
dependabot[bot]
f59cedcea0
build(deps): bump com.github.jk1.dependency-license-report
Bumps com.github.jk1.dependency-license-report from 1.13 to 1.16.

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-04 18:33:36 +00:00
dependabot[bot]
cdab84b54b
build(deps): bump commonmark from 0.14.0 to 0.17.0
Bumps [commonmark](https://github.com/atlassian/commonmark-java) from 0.14.0 to 0.17.0.
- [Release notes](https://github.com/atlassian/commonmark-java/releases)
- [Changelog](https://github.com/commonmark/commonmark-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/atlassian/commonmark-java/compare/commonmark-parent-0.14.0...commonmark-parent-0.17.0)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-04 18:33:34 +00:00
dependabot[bot]
c91a765a31
build(deps): bump org.ajoberstar.grgit from 4.0.2 to 4.1.0
Bumps org.ajoberstar.grgit from 4.0.2 to 4.1.0.

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-04 18:33:31 +00:00
8050d7ed6c
Create dependabot.yml 2021-04-04 20:33:09 +02:00
0ec3464962 Remove obsolete code in comments 2021-04-04 14:22:49 +02:00
1e78e4da64 Still tweaking redirect after delete/cancel 2021-04-04 14:08:12 +02:00
34f61ea7d9 Use hashed filenames when saving
Refactor File.getName() method to return a string consisting of the
hashed filename, a random string and the current timestamp.

This way, there should be no more issue with unsupported characters in the
filename.

Furthermore, Helma’s internal access names are now fully decoupled from
the filename and thus, the full unicode set should be available for naming.
2021-04-04 13:46:40 +02:00
6f6b15f6a1 Merge branch 'main' of github.com:antville/antville 2021-04-04 11:24:10 +02:00
956dcec279
Merge pull request #231 from antville/dependabot/npm_and_yarn/elliptic-6.5.4
build(deps): bump elliptic from 6.5.3 to 6.5.4
2021-03-16 21:50:45 +01:00
dependabot[bot]
154aa4235b
build(deps): bump elliptic from 6.5.3 to 6.5.4
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-09 04:08:57 +00:00
af9f74594b
Merge pull request #227 from antville/dependabot/npm_and_yarn/lodash-4.17.19
build(deps): bump lodash from 4.17.15 to 4.17.19
2020-07-30 21:03:19 +02:00
f32621f991
Merge pull request #228 from antville/dependabot/npm_and_yarn/elliptic-6.5.3
build(deps): bump elliptic from 6.5.2 to 6.5.3
2020-07-30 21:02:39 +02:00
dependabot[bot]
630971076c
build(deps): bump elliptic from 6.5.2 to 6.5.3
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-30 15:44:19 +00:00
dependabot[bot]
c9cf3ce5cf
build(deps): bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-20 03:13:00 +00:00
b08268b311
chg: last paragraph
[shosho.co](https://shosho.co/About-Antville-2675) still complains about it but so far i could not find a better way
2020-06-16 21:13:07 +02:00
382449c574
chg: some more wording 2020-06-16 21:07:33 +02:00
32d0682163
chg: minor wording 2020-06-16 20:36:15 +02:00
3ba5d22723
chg: wording
according to suggestions from https://shosho.co
2020-06-16 20:24:34 +02:00
97b2d790c7 fix: incorrect site reference when displaying timeline 2020-06-14 19:25:31 +02:00
b0de833542 del: obsolete browserify config 2020-06-14 18:59:02 +02:00
83575dd27d fix: redirecting on cancelled delete dialog 2020-06-14 18:58:45 +02:00
05603b7dc8 add: tasks for running h2 console 2020-06-14 17:48:31 +02:00
4194c7849d add: yarn build and development tasks 2020-06-14 17:47:57 +02:00
2e368ce13f fix: semantic version string but keep it non-semantic in build 2020-06-14 17:16:50 +02:00
c92d6f93d6 chg: updated translations 2020-06-14 16:34:55 +02:00
9119dd7ea6 add: latest changelog entries 2020-06-14 16:28:51 +02:00
08b2d96eba chg: helma download url to recent release 2020-06-14 16:27:50 +02:00
1c5b661a3e add: ignore all build dirs 2020-06-14 16:27:04 +02:00
11639f9319 chg: reverted to more strict file name pattern 2020-05-31 22:21:07 +02:00
f64a1fa25d fix: redundant calls of decodeURIComponent 2020-05-31 14:40:15 +02:00
9fc91c221d chg: localize errors for accepting terms / gdpr 2020-05-24 22:28:04 +02:00
751d1d2523 fix: “null” string showing in alt/title attributes of images 2020-05-24 13:06:51 +02:00
6c407d72b3 fix: missing default properties in root site 2020-05-23 22:41:51 +02:00
820d11f35f fix: incorrect client-side hashing of password 2020-05-23 12:09:11 +02:00
ef5ac1c83c del: logging statement 2020-05-23 11:04:45 +02:00
707fd6391f fix: missing properties of default site created by db script 2020-05-23 10:34:00 +02:00
3e50f2a636 fix: missing upload input on layout import 2020-05-23 09:39:14 +02:00
cd6fd202c7 chg: replaced google’s captcha with h-captcha 2020-05-23 09:39:14 +02:00
51036916f8 chg: display markdown tables in uikit style 2020-05-23 09:39:14 +02:00
3fb8b91f89 chg: updated readme and changelog 2020-05-17 21:35:28 +02:00
9e9c929847 del: obsolete shell scripts 2020-05-17 21:26:42 +02:00
8e6e401cec fix: display of version and build date 2020-05-17 20:42:36 +02:00
207091aee8 chg: ironed out some details in build tasks 2020-05-17 20:19:29 +02:00
b1c60cbf00 add: properties for build version and date (placeholders)
both will be replaced with actual values on build
2020-05-17 17:14:34 +02:00
5d2ccc7c47 add: license report for additional jars 2020-05-17 15:41:35 +02:00
a83378d719 fix: missing output of generated license information 2020-05-17 15:10:36 +02:00
44b59e87fd fix: boolean check for alpine value
See https://github.com/alpinejs/alpine/pull/486
2020-05-17 15:07:55 +02:00
97f1bad6e0 fix: file permissions 2020-05-17 14:42:21 +02:00
8b5a26a4ac chg: documentation tasks 2020-05-17 14:14:02 +02:00
9d3fef0e4f fix: breaking change in alpinejs 2.3.4
See https://github.com/alpinejs/alpine/issues/499
2020-05-17 14:14:02 +02:00
764ac7eac0 del: obsolete file 2020-05-17 14:14:02 +02:00
c4ddaa2f60 chg: run yarn tasks silently 2020-05-17 11:31:56 +02:00
0f18744ee6 chg: improved build tasks 2020-05-17 11:31:56 +02:00
1c3889fae8 chg: replaced marked node module with commonmark java library 2020-05-17 11:31:56 +02:00
7ba2421018 chg: replaced string-strip-html node module with jsoup java library 2020-05-16 21:47:08 +02:00
8f377d0150 chg: rewrote most yarn tasks with gradle 2020-05-16 21:39:13 +02:00
22ccbedd47 add: routine for installing node modules if necessary 2020-05-16 13:44:32 +02:00
cfb9cdb590 chg: console methods (colors) to be consistent with helma log 2020-05-16 11:47:24 +02:00
2ecad42879 fix: rhino-incompatible versions of string-strip-html and punycode 2020-05-10 17:26:27 +02:00
319186547e fix: missing style for disabled submit buttons 2020-05-02 19:54:10 +02:00
eaa3ba2357 chg: rewrote most client-side code with alpine.js 2020-05-02 17:44:26 +02:00
21191ded75 chg: wrapped client-side code in iife 2020-05-02 17:35:38 +02:00
a7fe64b70e chg: surrounded client-side code with iife 2020-05-02 16:41:33 +02:00
a5fd70eba5 chg: load all necessary files from within editor skin 2020-05-02 16:27:21 +02:00
e214e9c80f del: work-around for https://github.com/uikit/uikit/issues/1149
was fixed alreday in 2015 with fe0b2e0010
2020-05-02 15:58:43 +02:00
95b4baf2cd fix: github security alert with jquery upgrade 2020-05-02 00:38:57 +02:00
1cad3ea794 fix: github security alert by running yarn upgrade 2020-05-02 00:17:53 +02:00
c74d616e77 add: alpine.js 2020-05-01 22:20:24 +02:00
49fad937e8 chg: move jquery collage plugin into extra file loaded in gallery only 2020-05-01 16:04:41 +02:00
a554aed6d0 fix: branch name 2020-05-01 15:50:44 +02:00
28988c34fb chg: replaced unmaintained minifyify with uglifyiy 2020-05-01 15:49:40 +02:00
da4ac4333c chg: return http status 400 if no url is provided 2020-04-24 22:41:03 +02:00
da17ed5855 add: readme 2020-04-24 22:29:15 +02:00
1041d5cc49 del: obsolete file and wiki reference 2020-04-24 22:29:04 +02:00
9e28a3af94 fix: jsonp response not containing json 2020-04-24 22:26:47 +02:00
93d2efed58 add: readme for connection claustra 2020-04-24 20:25:22 +02:00
501c060ed1 chg: updated codemirror, marked, string-strip-html, browserify and jsdoc deps 2020-04-24 19:08:11 +02:00
0cfd2abe5e del: console.log 2020-04-24 19:04:07 +02:00
b46838df69 add: construction claustra as integral part of antville 2020-04-13 20:17:50 +02:00
ef43475897 add: proxy claustra as integral part of antville 2020-04-13 20:17:50 +02:00
da1c419875 chg: rewrote most client-side code without using jquery 2020-04-13 13:40:06 +02:00
23d248bef2 fix: missing > at end of macro 2020-04-12 19:07:14 +02:00
1e83a393c3 fix: accidentally committed file paths with date string 2020-04-10 20:43:09 +02:00
1e8ac45da8 fix: client-side code requiring server-side rendering 2020-04-10 20:40:31 +02:00
302d2e3729 chg: refactored formica bookmarklet for using proxy claustra 2020-04-10 20:36:39 +02:00
307723572a add: some http headers for better changes to get a reasonable response 2020-04-10 20:34:37 +02:00
23e7af26a6 chg: moved client-side js code from .skin to main.js 2020-04-05 21:11:13 +02:00
0bdaa332e7 chg: refactored main js code without jquery 2020-04-05 21:11:08 +02:00
9260adc98d del: code in comments 2020-04-05 21:11:08 +02:00
38c203b89e chg: moved md5() method from jquery to global scope 2020-04-05 21:11:08 +02:00
b41116c3f5 chg: refactored initial js after page load without jquery 2020-04-05 21:11:08 +02:00
6cb6e4cd3e chg: refactored grouping timezones without jquery 2020-04-05 21:11:08 +02:00
1952ca19f6 chg: slightly modernized formica bookmarklet code 2020-04-05 21:11:08 +02:00
a90fff0c9f chg: rewrote formica bookmarklet without jquery 2020-04-05 14:14:21 +02:00
0c77ab756c fix: missing markdown rendering in multiple places 2020-04-04 11:14:24 +02:00
37817b382f chg: edited wording, revised or removed some outdated sections 2020-04-03 16:55:03 +02:00
6427aaf9ce chg: replaced ant task for creating claustra with yarn script 2020-04-03 16:36:50 +02:00
2d486f197b chg: replaced patch tasks in ant with yarn scripts 2020-04-03 16:07:11 +02:00
5f8482092a chg: replaced i18n tasks in ant with yarn scripts 2020-04-03 14:21:53 +02:00
0cdd3385cf fix: wrong site context for errors on sites which are not deleted 2020-04-03 11:48:05 +02:00
7ed88a16b4 del: support for instant articles 2020-04-03 11:31:11 +02:00
c588441add del: support for amplified mobile pages 2020-04-03 11:18:51 +02:00
72068d0d8c del: erroneously committed files 2020-03-29 21:46:08 +02:00
4ee6d89bf5 chg: moved parser files into tools dir 2020-03-29 21:36:52 +02:00
243e80d8ac chg: moved build scripts into their own dir 2020-03-29 21:13:12 +02:00
bf6aa7a90b chg: moved config files into tools/config dir 2020-03-29 21:04:50 +02:00
eff0f1f47c chg: moved updater into tools dir 2020-03-29 21:04:50 +02:00
d217d85e04 chg: moved client scripts into tools dir 2020-03-29 21:04:50 +02:00
d47cf60be5 chg: generate jsdoc files during build 2020-03-29 20:36:15 +02:00
f555a0e417 chg: replaced some ant tasks with yarn scripts 2020-03-29 20:33:29 +02:00
e86d3f0a9e chg: moved antville’s license to top-level directory 2020-03-28 23:05:23 +01:00
7cc3adedbf chg: replaced gradle build tasks with yarn scripts 2020-03-27 21:57:05 +01:00
af9b02de26 chg: bumped version of marked npm package 2020-03-27 21:26:58 +01:00
d29a2a1c3f chg: replaced sanitize-html npm package with string-strip-html 2020-03-27 21:21:59 +01:00
1205d82fda chg: bumped codemirror version 2020-03-22 15:23:49 +01:00
9ca613268f chg: reformatted long line 2020-03-22 15:21:59 +01:00
e1660721ef fix: story formatting issues due to mixing helma and markdown features 2020-03-22 15:21:31 +01:00
e3f3e29502 chg: bumped versions of browserify and less 2020-03-22 14:36:24 +01:00
9cf539c382 chg: moved client build from gradle to npm script 2020-03-22 14:35:50 +01:00
4d83a7e941 del: obsolete file 2020-03-07 19:43:48 +01:00
6986a8507e fix: missing digest / etag header for a site’s main action 2020-03-07 19:28:15 +01:00
8930a73b5a fix: markdown issues 2020-03-07 19:26:06 +01:00
175989447e add: editorconfig 2020-03-07 19:25:50 +01:00
4cce47686c Merge branch 'master' into develop 2020-03-07 19:12:48 +01:00
ff78289daa fix: base64 encoding w/ java > 8 2020-03-07 18:59:14 +01:00
95777db1fa fix: dangling pipe symbol if export action is disabled 2020-03-07 18:56:05 +01:00
74e76accb8 chg: ignore i18n files for now 2020-03-07 18:54:48 +01:00
5340dbfac5 fix: rss output missing digest / etag header 2020-03-07 18:43:31 +01:00
ac83a5e474 fix: less dividing values instead of correctly interpreting font-size syntax 2020-03-07 18:41:09 +01:00
c36302a83f chg: refactored deletion of accounts and sites 2018-05-21 15:00:57 +02:00
a978ad7c59 fix: typo in sql statement 2018-05-21 07:52:20 +02:00
5ed3ad138f fix: missing re-assignment of site creators and modifiers when deleting an account 2018-05-21 07:50:09 +02:00
12df0060f7 fix: error when trying to remove non-existing tag hub 2018-05-21 07:48:00 +02:00
09585e21df fix: misleading log message 2018-05-20 18:54:33 +02:00
a21c378b7a fix: exception when trying to delete image file 2018-05-20 18:50:59 +02:00
0ba3b4800c fix: premature assignment of image.parent.site 2018-05-20 17:59:21 +02:00
4e46065e87 fix: missing new creator for items in sites a deleted account might had been owner of before 2018-05-20 17:33:13 +02:00
4764649789 fix: undefined site 2018-05-20 16:53:15 +02:00
386690a818 fix: missing deletions / reassignments when deleting account 2018-05-20 16:48:18 +02:00
2b48d309f3 chg: refactored account deletion with sql 2018-05-20 15:02:32 +02:00
5683b35d12 chg: refactored site deletion with sql 2018-05-20 13:16:04 +02:00
70d8c67f07 fix: insufficient checks for displaying admin alert 2018-05-20 13:13:15 +02:00
4f0b0ab834 fix: obsolete calculation site’s deletion date 2018-05-20 10:28:03 +02:00
a4ff04909a chg: also schedule sites owned by an account for deletion 2018-05-20 10:16:33 +02:00
5f96e314db fix: timeout error when running nightly scheduler 2018-05-20 09:42:47 +02:00
e121967bbc fix: out of memory exception when deleting an account 2018-05-20 09:42:19 +02:00
0cb91214c7 fix: typo in translation 2018-05-20 09:39:21 +02:00
4c85e79dec chg: don’t save site export as antville file anymore 2018-05-20 08:52:07 +02:00
704f80de75 fix: out of memory error when exporting large sites 2018-05-19 12:38:20 +02:00
3f9d03a6f6 chg: moved recaptcha from claustra to core 2018-05-19 09:56:24 +02:00
62bd495564 fix: path of search provider being displayed in button 2018-05-18 21:09:08 +02:00
6dde17b8e8 chg: updated translated messages 2018-05-18 20:55:53 +02:00
b8b58a2ce7 chg: replaced google-search property with search.provider
enabled button for more results at other search providers
2018-05-18 20:46:14 +02:00
f65eff0015 fix: slow search 2018-05-18 20:44:43 +02:00
2120bc3ed8 fix: remaining persistent metadata preventing account deletion to complete 2018-05-13 00:08:11 +02:00
fc044132bb chg: sort jobs by date 2018-05-13 00:05:50 +02:00
2352a788e4 revert: extra deletion of child node 2018-05-12 22:34:49 +02:00
a1e8a00957 fix: transient metadata after deletion 2018-05-12 22:12:29 +02:00
cdefd37ee8 fix: wrong requirements preventing privileged users to delete accounts 2018-05-12 20:01:54 +02:00
0713ac5db7 fix: incomplete account deletion
also generally disable deletion of privileged accounts
2018-05-12 19:03:21 +02:00
94bd4c1f59 fix: missing translations 2018-05-12 17:51:13 +02:00
922f2ed732 add: support for account deletion 2018-05-12 17:39:34 +02:00
1defbc8240 fix: double encoding 2018-05-11 17:27:19 +02:00
24a41030e7 chg: get total count of items and then retrieve each page 2018-05-11 17:27:04 +02:00
b36609006e fix: sql syntax error in mysql 2018-05-11 17:01:51 +02:00
b61940c2e1 add: display of a user’s timeline 2018-05-11 16:53:20 +02:00
48c415cd2c add: tags to site export 2018-05-11 15:02:45 +02:00
bdf8d227b9 fix: issue with wrong membership name
exporting all site content now, anyway
2018-05-11 14:20:53 +02:00
c66b372748 add: site export in json format
contains vintage export.xml
2018-05-11 12:56:48 +02:00
72680a2659 fix: dysfunctional evaluation of response from stopforumspam.com
while adding a property for enabling the blacklist checks
2018-05-10 23:05:26 +02:00
aae43d3051 chg: column order and re-enabled size column 2018-05-06 22:01:20 +02:00
f35eaef6aa add: creator_name to every exported object 2018-05-05 19:24:30 +02:00
f6da6748cc fix: href of wrong object 2018-05-05 19:24:09 +02:00
2726768ddf add: story comments by other users to export 2018-05-05 18:55:37 +02:00
2e8fba1f31 add: job name to admin table 2018-05-05 17:53:30 +02:00
eed7d08028 fix: missing less compiler for creating static css 2018-05-05 16:57:24 +02:00
c3d64dc829 fix: unwanted code running after caught exception 2018-05-05 16:56:53 +02:00
ca2040d429 fix: undefined res.meta.values 2018-05-05 16:55:58 +02:00
3b4112fcfb add: check and removal of existing account data archive 2018-05-05 16:55:25 +02:00
b42772eef1 add: log output when exporting account data 2018-05-05 16:54:43 +02:00
6a62937005 fix: too complicated deletion of jobs 2018-05-05 16:46:30 +02:00
fb654a6c46 fix: incorrect method application 2018-05-05 16:45:47 +02:00
5a2af525e1 chg: run account export as job 2018-05-05 11:04:17 +02:00
c388e71203 add: archive export for account (json) 2018-05-04 17:02:00 +02:00
8b45d5acf7 fix: type in translation 2018-04-30 21:19:26 +02:00
3feee29c0f fix: missing translation 2018-04-30 13:51:42 +02:00
3a34a2fb0e fix: missing translations 2018-04-30 13:44:20 +02:00
8f83797e44 add: check and dialog for accepting updated terms and conditions 2018-04-30 13:37:21 +02:00
ef097ff020 add: class for rendering text from right to left 2018-04-30 12:04:00 +02:00
9f7d1a8529 fix: wrong namespace for sanitizeHtml method 2018-04-30 11:28:17 +02:00
97bfba00d0 chg: allow paths to other sites for terms / privacy stories 2018-04-30 11:26:12 +02:00
065679f7f0 chg: directly require() server-side node modules
needs `rhino.optlevel = -1` to prevent [“generated bytecode for method exceeds 64K limit” error](https://groups.google.com/forum/#!msg/mozilla-rhino/N_O4Got4ED8/gqMnItFFzL8J)
2018-04-29 23:55:57 +02:00
c2c3684ae0 chg: minor code improvement 2018-04-29 22:50:00 +02:00
8c86db2eb0 Merge branch 'develop' into feature/commonjs-support 2018-04-29 21:57:07 +02:00
10736fff35 fix: outdated rhino version 2018-04-29 21:51:32 +02:00
0f44650110 Merge branch 'develop' into feature/emulate-deleted-site 2018-04-29 20:46:26 +02:00
4d85afcf8a add: support for data privacy statement and terms & conditions 2018-04-29 20:42:42 +02:00
b31be0f3aa chg: prevent user from logging in and out again on insufficient login permission 2018-04-29 13:32:06 +02:00
9ec39eaf98 fix: user being logged in in spite of missing permission 2018-04-29 01:42:54 +02:00
fcc889a480 fix: unsecure url 2018-04-29 01:29:32 +02:00
6d85a22091 fix: display of null values for creation / modification dates on initial setup 2018-04-29 01:29:21 +02:00
1681ea1ec0 chg: use default public schema in postgres / h2 databases 2018-04-29 01:29:16 +02:00
6663e220d8 chg: upgraded h2 to version 1.4 2018-04-29 01:29:11 +02:00
d864e5e9d3 chg: refactored setup for login / registration permissions 2018-04-29 01:29:04 +02:00
4befcbac0d add: metadata for new root properties 2018-04-27 17:10:22 +02:00
66f0813c4d Revert "Merge branch 'hotfix/missing-metadata' into develop"
This reverts commit 81eade1e27.
2018-04-27 17:09:03 +02:00
4d18de1f59 Revert "Merge branch 'hotfix/missing-metadata' into develop"
This reverts commit c9527ef194.
2018-04-27 17:08:46 +02:00
45a47e47c1 Merge branch 'develop' 2018-04-27 17:02:30 +02:00
c9527ef194 Merge branch 'hotfix/missing-metadata' into develop 2018-04-27 16:59:12 +02:00
81eade1e27 Merge branch 'hotfix/missing-metadata' into develop 2018-04-27 16:58:17 +02:00
13b9782cf0 add: metadata for new root properties 2018-04-27 16:57:47 +02:00
d33f0eeaae Merge branch 'develop' into hotfix/missing-metadata 2018-04-27 16:54:33 +02:00
1b2bd820a0 fix: insufficient and invalidating amp output 2018-04-27 14:42:11 +02:00
4136683d2e Merge branch 'feature/disable-registration' into develop 2018-04-27 13:55:00 +02:00
b8d9958060 chg: translated new messages and rebuilt message files 2018-04-21 22:32:45 +02:00
f617e44d83 add: setup options for registration scope and login mode 2018-04-21 22:23:32 +02:00
7520783ff9 chg: simplified b/w compatibility for module optimizations 2018-04-18 22:43:20 +02:00
f283f83553 fix: too narrow page width for skin editor 2018-04-15 22:39:38 +02:00
9619351f9b chg: reverse application of new body css
ignore only if body has av-15 class
2018-04-15 20:13:43 +02:00
658a595dbd chg: refactored nav menu for smaller screens 2018-04-08 22:49:02 +02:00
79ceae33a4 del: unnecessary $Site#page skin 2018-04-08 22:48:09 +02:00
ac5d7dbe49 fix: dimensions of header image 2018-03-25 12:18:08 +02:00
19316ee98c fix: restrict max page width to most pages 2018-03-24 18:37:06 +01:00
df04fb91dc fix: image width in list view 2018-03-24 17:56:59 +01:00
b77469b33c chg: limit maximum page width 2018-03-24 17:56:28 +01:00
7cb6c70f60 fix: missing ant icon 2018-03-18 18:51:39 +01:00
c8f0c8ade9 Revert "fix: missing ant svg"
This reverts commit dcad7a4df4.
2018-03-18 18:51:19 +01:00
dcad7a4df4 fix: missing ant svg 2018-03-18 18:47:49 +01:00
4c0c009e05 fix: clashing class name av-ant 2018-03-18 18:45:55 +01:00
aca84e15f4 chg: hide floating navbar when area to left of it is touched 2018-03-18 18:29:41 +01:00
2274d2081a chg: display floating navigation with toggle button on small screens 2018-03-18 12:55:38 +01:00
6b30e1c71f Merge remote-tracking branch 'origin/develop' into develop 2018-03-17 20:35:30 +01:00
dba702341f Merge branch 'feature/update-depencendies' into develop 2018-03-17 20:35:19 +01:00
92be9c8079
Merge pull request #210 from antville/develop
Fix current dependency vulnerabilities
2018-03-17 20:33:03 +01:00
99f6d714bb
Merge pull request #208 from antville/feature/update-depencendies
Feature/update dependencies
2018-03-17 20:31:13 +01:00
503e2025ac
Merge pull request #209 from antville/develop
Release 1.6
2018-03-17 20:30:25 +01:00
86108f1bc8 chg: updated dependencies 2018-03-17 20:25:26 +01:00
3632095276 Merge pull request #203 from antville/feature/resolve-referrer-urls
Resolve Referrer URLs
2017-07-02 11:56:31 +02:00
b3a9a82382 chg: resolve referrer urls before writing to database 2017-07-02 11:54:16 +02:00
9ad4989583 add: Admin.resolveURl() method 2017-07-02 11:53:18 +02:00
55fb6d57e8 del: unnecessary prefix/suffix macro parameters
also unified meta tags wherever possible
2017-07-02 11:51:40 +02:00
e2d4447fbe fix: german t9n of “in {0} days” 2017-04-30 10:22:37 +02:00
5ab19df7d9 fix: too fuzzy results of text output in formatDate()
was always returning the integer part of the result – i.e. Math.floor()
2017-04-30 10:19:50 +02:00
88f65c007d fix: missing getDeletionDate() method 2017-04-30 10:08:50 +02:00
7393f28e66 chg: updated i18n files 2017-04-30 09:52:30 +02:00
c115f03867 chg: use “delete” instead of ”remove” in user messages 2017-04-30 09:50:52 +02:00
c2d8c557fc chg: simplified “deleted site” warning 2017-04-30 09:50:13 +02:00
ceeba55018 fix: display of 401 error message 2017-04-30 09:49:31 +02:00
49b1b357a0 fix: missing support for future dates in formatDate() method 2017-04-30 09:49:03 +02:00
f6b76518ac fix: return value of deleted_macro() if no formatting should be applied
in that case, the date value is returned allowing meaningful application of format filter
2017-04-30 09:47:15 +02:00
951f9a0983 fix: path to rhino jar 2017-04-30 09:45:11 +02:00
b7d55cbc88 chg: immediately show most users 404 page for a deleted site
owners can revert the deletion request until cronjob is created, privileged users until site is removed with nightly cronjo
2017-04-29 22:07:35 +02:00
df1a87eab4 chg: improved display of various console output levels 2017-04-17 20:03:16 +02:00
59bedf9e78 fix: display of modifier in list of story updates 2017-03-18 00:12:24 +01:00
37909691e5 chg: rebuilt server-side JS file 2017-03-18 00:11:32 +01:00
901cbc7aaf fix: missing build target for server-side JS files 2017-03-18 00:10:57 +01:00
76d98b32e1 fix: stickiness of version for marked
also fixed license to be spdx conform
2017-03-17 17:17:48 +01:00
f5cff5ba44 chg: bumped versions and rebuilt client files
note: marked is sticky @0.3.3 because of issue #872https://github.com/chjj/marked/issues/872
2017-03-17 16:53:55 +01:00
97d2813df2 add: helma version to health page 2016-12-17 18:16:20 +01:00
122818697b chg: incremented version string 2016-12-17 18:15:50 +01:00
472104fa75 chg: updated client files 2016-12-17 16:03:40 +01:00
52144cfa84 chg: line wrapping 2016-12-17 15:56:23 +01:00
e04e1daeaf fix: insufficient compression of main.css 2016-12-17 15:55:57 +01:00
d69cf54e43 add: ant target for updating java libraries
using helma’s new gradlew wrapper and an extra build.gradle file
2016-12-17 15:54:47 +01:00
0e3bb7216c fix: redundant call of lessParser.parse()
to improve performance again, compromised by slow java less parser
2016-12-17 14:36:53 +01:00
d28d18c0fe chg: experimental branch using rhino’s commonjs support
needs helma’s feature/commonjs-support branch

the less-rhino-1.7.5.js implementation uses its own require() implementation which breaks rhino’s one. thus, the official java impl is used instead – which is quite slow, unfortunately… needs to be resolved in a better way before this can be merged.

however, using marked with require() works like a charm :)
2016-12-17 14:36:52 +01:00
70e55bc853 fix: wording 2016-12-17 14:35:41 +01:00
6619322053 fix: indentation 2016-12-17 14:35:19 +01:00
59377e4676 fix: output of empty locale 2016-12-17 14:34:53 +01:00
b322ac79f6 fix: redundant call of lessParser.parse()
to improve performance again, compromised by slow java less parser
2016-12-17 14:11:09 +01:00
93194492ad chg: experimental branch using rhino’s commonjs support
needs helma’s feature/commonjs-support branch

the less-rhino-1.7.5.js implementation uses its own require() implementation which breaks rhino’s one. thus, the official java impl is used instead – which is quite slow, unfortunately… needs to be resolved in a better way before this can be merged.

however, using marked with require() works like a charm :)
2016-12-17 10:30:12 +01:00
cd5cd15018 del: definition of JSON object in external module
use Rhino’s implemented JSON support instead
2016-12-17 10:01:19 +01:00
d8fdba526a fix: href processing
missing else clause caused wrong hrefs for default domain
2016-12-09 15:01:17 +01:00
dd49a26a57 add: app property for overriding the scheme used in hrefs
e.g. hrefScheme = https generally renders urls starting with https://
2016-12-09 14:48:12 +01:00
9748633b78 add: current location as referrer
to make up for missing information in the user agent
2016-09-04 00:34:06 +02:00
7f6584dcbd fix: use simplified user agent
works better e.g. with nytimes.com because this site always redirects to its login form when a user agent starting with `Mozilla/5.0 (c` is detected:

```python
import os
import pprint

from google.appengine.api import memcache
from google.appengine.api import mail
from google.appengine.api import urlfetch
from google.appengine.ext import db

url = 'http://www.nytimes.com/2016/09/03/technology/nso-group-how-spy-tech-firms-let-governments-see-everything-on-a-smartphone.html?utm_source=pocket&utm_medium=email&utm_campaign=pockethits&_r=0'

response = urlfetch.fetch(url, headers={
  'User-Agent': 'Mozilla/5.0 (c u got me'
}, follow_redirects=True)

pprint.pprint(response.content)
```
2016-09-04 00:33:51 +02:00
02371689c8 chg: add log output 2016-07-10 18:24:11 +02:00
313833ecce fix: enable real utf-8 for mysql database
source: https://mathiasbynens.be/notes/mysql-utf8mb4
2016-07-10 18:23:27 +02:00
f27a4cf5ac fix: do not create or drop obsolete tables 2016-07-10 18:22:16 +02:00
c58bedeb0b chg: allow instant articles for all sites 2016-06-26 20:46:53 +02:00
3ead0b8019 add: basic support for Google’s accelerated mobile pages (AMP) 2016-06-26 20:36:28 +02:00
4be343d768 chg: sped up execution of sql deletion 2016-06-26 14:20:46 +02:00
1fc175018a fix: revert accidental commit of commented code 2016-06-26 14:13:45 +02:00
2d61c0dafa fix: ignore any origin without either http, https or ftp protocol 2016-06-26 14:12:53 +02:00
d75e3437a9 fix: respect default parameter in description macro 2016-06-26 13:40:29 +02:00
fdfee2e50d fix: display of file origin in File and Image prototypes
* ignore origins with c:\fakepath\ (i.e. uploaded from local file system)
 * use `description_macro()` for output of either this.description or this.origin (if available) or nothing, instead of macro default
 * prevent setting this.description in `update()` methods or from formica bookmarklet
2016-06-26 13:21:57 +02:00
2eeb4549ce fix: do not create a helma.Image instance if constraints are fulfilled
obviously, helma.Image already compresses image data and a recent change actually removed code preventing this for images fulfilling the max width and height constraints

see http://help.antville.org/stories/2239244/
2016-05-26 12:36:42 +02:00
79d6c265e2 new: skin for instant article 2016-05-25 17:21:29 +02:00
2d0b1d6790 change: added support for instant articles in rss feeds
currently only enabled for a few sites
2016-05-25 17:20:39 +02:00
a8b37e39ba fix: do not resize original image 2016-04-22 22:13:11 +02:00
ee28a1466a fix: don’t resize layout images (except their thumbnails) 2016-04-09 18:24:20 +02:00
4b451cd84c fix: automatically set og:image from formica 2016-03-28 18:29:53 +02:00
0fe4d4b160 fix: replaced getURL() with corresponding helma.Http methods for more configuration options and better results 2016-03-28 18:28:41 +02:00
b5851313b9 fix: reset the response before sending JSONP data 2016-03-28 18:27:47 +02:00
e9c9fb7ae5 fix: custom message for error when retrieving url 2016-03-25 20:06:55 +01:00
2e16d8b179 fix: disable debugging mode 2016-03-25 19:58:24 +01:00
780ad73c2a fix: catch various errors and give a litte bit of feedback in the gui 2016-03-25 19:57:19 +01:00
ac64092624 fix: replaced hard-coded site url with macro 2016-03-25 16:36:07 +01:00
a4b85d40e6 fix: disabled debugging code 2016-03-18 22:32:34 +01:00
8b3a41191e updated formica bookmarklet
fix: layout in uikit style
fix: gui for in/excluding image
add: support for open graph title and description
chg: emoji in bookmarklet code with support for custom cookie (useful e.g. for nyt)
2016-03-18 22:27:38 +01:00
4d2867d744 fix: added missing change in $Image#embed skin for improved formica image link 2016-01-16 23:43:11 +01:00
7644cc4ec0 chg: improved responsive formica image with custom link to source URL 2016-01-16 23:39:41 +01:00
95297f5f14 fix: styled image from formica bookmarklet as thumbnail to maintain responsive layout 2016-01-15 21:20:45 +01:00
6180ee475c fix: refactored for latest update in Helma’s format() method to prevent huge gaps in <pre> elements 2015-08-14 14:25:53 +02:00
aeb13485e9 fix: date formatting 2015-08-14 14:24:50 +02:00
342974fdc9 chg: added hints to Java and JavaScript to the first sentence about Helma 2015-08-14 14:24:33 +02:00
34af2b0bd9 fix: missing simple linebreaks in story 2015-08-14 11:29:47 +02:00
317 changed files with 17383 additions and 115693 deletions

17
.editorconfig Normal file
View file

@ -0,0 +1,17 @@
# editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.{java,skin}]
indent_size = 3
[*.md]
trim_trailing_whitespace = false

48
.github/workflows/deploy.yml vendored Normal file
View file

@ -0,0 +1,48 @@
name: Deploy
on:
workflow_dispatch:
inputs:
hostname:
description: Hostname
type: string
required: true
default: antville.org
jobs:
stage:
runs-on: antville
environment:
name: production
url: ${{ inputs.hostname }}
steps:
- uses: actions/checkout@v4
- name: Build with Gradle
run: ./gradlew :build
- name: Copy files to server
run: |
rsync ./build/install/antville/ ${{ inputs.hostname }}:./apps/antville/ \
--archive --compress --delete --verbose \
--filter '+ /claustra' \
--filter '+ /code' \
--filter '+ /compat' \
--filter '+ /db' \
--filter '+ /i18n' \
--filter '+ /lib' \
--filter '- /*'
rsync ./build/install/antville/static/ ${{ inputs.hostname }}:./apps/antville/static/ \
--archive --compress --verbose \
--filter '+ /fonts' \
--filter '+ /formica.html' \
--filter '+ /img' \
--filter '+ /scripts' \
--filter '+ /styles' \
--filter '- /*'
- name: Restart Helma
run: ssh ${{ inputs.hostname }} restart

60
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,60 @@
name: Release
on:
workflow_dispatch:
push:
tags: '1.6.*'
permissions:
contents: write
jobs:
release:
runs-on: antville
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
LC_TIME: en_US.UTF-8
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build with Gradle
run: ./gradlew assembleDist
- name: Create release notes
id: create_release_notes
run: |
release_notes=$(npx git-cliff@latest --latest)
# Write the release notes as a heredoc to the workflow output
# ⚠️ No white space around `<<` is crucial!
echo "release_notes<<.eot0x03" >> $GITHUB_OUTPUT
echo "$release_notes" >> $GITHUB_OUTPUT
echo ".eot0x03" >> $GITHUB_OUTPUT
- name: Create release
uses: actions/forgejo-release@v2
with:
direction: upload
url: https://code.host.antville.org
token: ${{ github.token }}
title: Antville ${{ github.ref_name }}
release-dir: build/distributions
release-notes: ${{ steps.create_release_notes.outputs.release_notes }}
hide-archive-link: true
verbose: true
- name: Create release at GitHub
run: |
gh release create "$GITHUB_REF_NAME" \
--repo "$GITHUB_REPOSITORY" \
--title "Antville ${{ github.ref_name }}" \
--notes "${{ steps.create_release_notes.outputs.release_notes }}"
- name: Upload release assets to GitHub
run: |
gh release upload "$GITHUB_REF_NAME" build/distributions/ant*.* \
--repo "$GITHUB_REPOSITORY" \
--clobber

41
.github/workflows/renovate.yml vendored Normal file
View file

@ -0,0 +1,41 @@
name: Run Renovate
on:
schedule:
- cron: "42 * * * *"
workflow_dispatch:
jobs:
renovate:
runs-on: antville
steps:
- uses: actions/checkout@v4
- name: Run Renovate
# See <https://docs.renovatebot.com/troubleshooting/#log-debug-levels>
# debug | info | warn | error | fatal
run: LOG_LEVEL=info npx renovate
env:
# Renovate is using this token to retrieve release notes
GITHUB_COM_TOKEN: ${{ secrets.renovate_github_com_token }}
RENOVATE_CONFIG_FILE: renovate.json
RENOVATE_ENDPOINT: ${{ github.api_url }}
RENOVATE_GIT_AUTHOR: Renovate Bot <mail+renovate@antville.org>
RENOVATE_IGNORE_PR_AUTHOR: 'true'
RENOVATE_LOG_FILE: renovate-log.ndjson
RENOVATE_LOG_FILE_LEVEL: debug
RENOVATE_PLATFORM: gitea
RENOVATE_REPOSITORIES: ${{ github.repository }}
RENOVATE_REPOSITORY_CACHE: 'enabled'
# github.token is not working here, it lacks some permissions required by Renovate
RENOVATE_TOKEN: ${{ secrets.renovate_token }}
- name: Save log file
# FIXME: v4 of this action causes an error on Forgejo (“You must configure a GitHub token”)
uses: actions/upload-artifact@v3
if: always()
with:
name: renovate-log.ndjson
path: renovate-log.ndjson

27
.gitignore vendored
View file

@ -1,13 +1,16 @@
.*
•*
*.eml
*.iml
build/work
build/dist
claustra/
code/domains.map
jobs/
local/
node_modules/
static/sites/*
static/scripts/*.map.json
build/
/claustra/
/docs/
/jobs/
/local/
/lib/
/node_modules/
/static/
!/static/img
!/static/formica.html
/code/domains.map
/i18n/*.js

1
.npmrc Normal file
View file

@ -0,0 +1 @@
save-exact = true

1
.nvmrc Normal file
View file

@ -0,0 +1 @@
lts/*

59
CHANGES.md Normal file
View file

@ -0,0 +1,59 @@
# Change Log
## 2024 January 13
* Fix cross-site scripting vulnerability in search output
* Fix new choices being added to an existing poll at the wrong position
* Fix errors in the client-side code filtering the referrers
* Correctly load and initialize Alpine.js
## 2024 January 7
* Upgrade third-party dependencies
## 2023 December 30
* Fix initialization of MarkDown in UIKit editor
* Add support for images in webp format
## 2023 August 26
* Migrate from Yarn back to NPM
* Some major upgrades of third-party dependencies
* Rewrite `for…each` loops with `for…of` (needs enabled ES6 features in Rhino)
## 2023 March 5
* Fix SQL injection vulnerability
## 2020 May 23
* Render tables with stripes and hover colors extrapolated from layout settings
* Replaced Googles ReCaptcha with [hCaptcha](https://hcaptcha.com)
## 2020 May 17
* Reverted Yarn scripts into Gradle tasks
* Implemented complete build system in Gradle
* Added color support for console messages
* Replaced Node module for rendering Markdown (marked) with Java implementation ([CommonMark](https://github.com/atlassian/commonmark-java))
* Replaced Node module for sanitizing HTML (string-strip-html) with Java implementation ([jsoup](https://jsoup.org))
## 2020 May 1
* Upgraded jQuery to version 3
* Refactored remaining cient-side jQuery code using [Alpine](https://github.com/alpinejs/alpine) (jQuery is still a dependency of UIkit, though)
* Moved code for jQuery [CollagePlus](https://github.com/antville/jquery-collagePlus) plugin into extra file
## 2020 April 13
* Rewrote most client-side code without using jQuery
* Refactored Formica bookmarklet
* Improved Proxy Claustra for use with Formica bookmarklet
* Fixed output missing Markdown filter in multiple places
* Replaced Gradle and Ant build tasks with Yarn scripts
* Removed support for Instant Articles
* Removed support for Accelerated Mobile Pages
* Replaced Rhino-incompatible sanitize-html NPM package with string-strip-html
* Upgraded NPM dependencies to latest compatible versions
* Incorporated some claustra as integral part of Antville

View file

@ -2,18 +2,19 @@
## Helma Object Publisher
Antville needs Helma Object Publisher to be installed on the desired machine. If not already done so please [download Helma](http://helma.org/download) and follow the [installation instructions](http://helma.org/download/installation).
Antville needs Helma Object Publisher to be installed on the desired machine. If not already done so please [download Helma](https://code.host.antville.org/antville/helma/releases) and follow the [installation instructions](https://code.host.antville.org/antville/helma/#how-to-helma).
## SQL Database
Furthermore, Antville needs an SQL database to be installed as well. Currently supported products are PostgreSQL and MySQL. If not already done so please install the desired database before you continue.
Furthermore, Antville needs an SQL database to be installed as well. Currently supported products are PostgreSQL and MySQL/MariaDB. Be sure to install the desired database before you continue.
For connecting Antville to the database the corresponding JDBC driver is also necessary. If not already done so please copy the driver to the directory `lib/ext` of Helmas installation directory.
Finally, you need the corresponding JDBC driver for connecting Antville to the database. Please copy the driver to the directory `lib/ext` of Helmas installation directory.
As of writing this installation guide the drivers could be downloaded via the following URLs:
As of writing this installation guide the drivers can be downloaded via the following URLs:
- [http://jdbc.postgresql.org/download.html]()
- [http://dev.mysql.com/downloads/connector/j/]()
- <http://jdbc.postgresql.org/download.html>
- <http://dev.mysql.com/downloads/connector/j/>
- <https://mariadb.com/kb/en/mariadb-connector-j/>
Of course you can also use a packet manager like aptitude or MacPorts if the JDBC driver is available from there. However, you then need to create a symbolic link to the driver from within Helmas `lib/ext` directory.
@ -21,9 +22,9 @@ Now unpack the Antville distribution package. Move the resulting directory `antv
Inside the directory `antville` you will find a directory called `db`. This directory contains all database-related files, ie. several SQL scripts for creating the database needed by the application. Change to that directory.
Antville currently comes with scripts for PostgreSQL (`postgre.sql`) and for MySQL databases (`my.sql`).
Antville currently comes with scripts for PostgreSQL (`postgre.sql`) and for MySQL/MariaDB databases (`my.sql`).
_Note:_ Antville is preconfigured for PostgreSQL out of the box but it is easy to modify the configuration to be compatible with MySQL.
_Note:_ Antville is preconfigured for PostgreSQL out of the box but it is easy to modify the configuration to be compatible with MySQL/MariaDB.
Each of these SQL scripts creates the tables, indexes and initial records and also the account used by the application to communicate with the database.
@ -31,7 +32,7 @@ Each of these SQL scripts creates the tables, indexes and initial records and al
The default password of this account is `antville`, so you should change it if you want to secure your installation. Open the desired SQL script and scroll down to the `create user` (for PostgreSQL) or `grant user` (for MySQL) statement. Search for `password` (PostgreSQL) or `identified by` (MySQL) and change the trailing value in quotes to the password of your choice.
Please refer to the documentation of your database on how to run the appropriate script. Afterwards you will have to tell Antville how it can access your database. This is done in a configuration file named `db.properties` which is located in the `code` directory, or if you are going for MySQL in the `db/my.compat` directory.
Please refer to the documentation of your database on how to run the appropriate script. Afterwards you will have to tell Antville how it can access your database. This is done in a configuration file named `db.properties` which is located in the `code` directory, or if you are going for MySQL/MariaDB in the `db/my.compat` directory.
Open the desired file and ensure that the line beginning with `antville.url` points to the server that runs the database. By default, this is the local machine aka localhost which will be just right in most cases.
@ -39,11 +40,11 @@ Check that the password is set accordingly to the one you entered in the SQL scr
## Enabling an Application
Finally, you need to tell Helma about the new application. This is done by adding the contents of the file `apps.properties` in the `extra` directory to the file `apps.properties` located in the top installation directory.
Finally, you need to tell Helma about the new application. This is done by adding the contents of the file `apps.properties` in the `tools/config` directory to the file `apps.properties` located in the top installation directory.
_Note:_ If you are using MySQL you need to edit and enable line 5 (the one defining `antville.repository.1`) of the file by removing the leading comment symbol `#`.
_Note:_ If you are using MySQL/MariaDB you need to edit and enable line 5 (the one defining `antville.repository.1`) of the file by removing the leading comment symbol `#`.
## Starting Up!
## Starting Up
Now start up Helma and point your browser to
@ -58,11 +59,11 @@ Have fun!
## TL;DR
1. Install Helma if not already done so
2. Install PostgreSQL or MySQL database if not already done so
3. Install corresponding JDBC driver in helma/lib/ext
2. Install PostgreSQL or MySQL/MariaDB database if not already done so
3. Install or symlink corresponding JDBC driver in helma/lib/ext
4. Unpack Antville distribution file
5. Move antville directory into helma/app directory
6. Run the desired script in antville/db for either PostgreSQL or MySQL
7. Copy contents of antville/extra/apps.properties to helma/apps.properties
8. If necessary, enable MySQL compatibility in apps.properties
9. Start up Helma and browse to [http://localhost:8080/antville]()
6. Run the desired SQL script in antville/db for either PostgreSQL or MySQL/MariaDB
7. Copy contents of antville/tools/config/apps.properties to helma/apps.properties
8. If necessary, enable MySQL/MariaDB compatibility in apps.properties
9. Start up Helma and browse to <http://localhost:8080/antville>

View file

@ -1,10 +1,13 @@
Copyright 2001-2014 by the Workers of Antville.
# License
Copyright 2001-2025 by Antville Verein für Entwicklung, Betrieb und
Unterstützung freier Publishing-Software, Austria.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
<http://www.apache.org/licenses/LICENSE-2.0>
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,

View file

@ -1,58 +1,52 @@
# About Antville
Antville is an open source project aimed at the development of a high performance, feature rich weblog hosting software. It can easily host up to several thousands of sites (the number of weblogs is rather limited by the installation owners choice and server power than by software limitations).
Antville is an open source project providing a high performance, feature-rich blog hosting software. Antville can host tens of thousands of blogs. Server power is the only limit. Installation and use is easy.
Antville is entirely written in JavaScript (ECMAScript, to be precise) and based on Helma Object Publisher, a powerful and fast scriptable open source web application server (which itself is written in Java). Antville works with a relational database in the backend.
Antville is written in server-side JavaScript and developed with Helma Object Publisher. Antville works with a relational database in the back-end.
[Check out the project site for more information.](http://project.antville.org)
[Look at the project site for more information.](https://project.antville.org)
## Status
Antville can be considered stable quality code. It is heavily used by several thousands of users at [Antville.org](http://antville.org) and [several other sites](http://code.google.com/p/antville/wiki/AntvilleSites). Nevertheless, there still could be bugs hidden somewhere in this application.
Antvilles codebase is of stable quality and ready for production deployment. Try out [Antville.org](https://antville.org) for a demonstration.
Antville can be used for production purposes, but please bear in mind that the creators of Antville do not take any warranty, whichever kind.
There still could be bugs hidden in Antvilles source code. If you find one please let us know. The creators of Antville do not take any responsibility for what the software might do.
## System Requirements
To run Antville you need [Helma Object Publisher](http://helma.org) and a relational database in the backend. Antville was thoroughly tested with [PostgreSQL](http://postgresql.org) and [MySQL](http://mysql.com).
To run Antville you need [Helma Object Publisher](https://code.host.antville.org/antville/helma) and a relational database software. We tested Antville with [PostgreSQL](https://postgresql.org) and [MySQL](https://mysql.com) [MariaDB](https://mariadb.com) should work, too.
For setting up Helma Object Publisher and the database of your choice please refer to the corresponding installation instructions.
To enable Antville sending notification e-mails you need access to an SMTP server.
To enable Antville sending confirmation mails to users (e.g. after registration) you will also need access to an SMTP server.
Helma comes with an embedded webserver (Jetty) so you do not need to install one. Yet, you can also use the webserver of your choice.
Helma comes with its own embedded webserver (Jetty) so you do not need to install one, although you can easily use Apache httpd as front-end webserver, too.
For details please refer to the installation instructions of Helma Object Publisher and the corresponding software packages.
Please refer to the Install.md file for detailed information on how to install Antville.
The `INSTALL.md` file contains detailed instructions to install Antville.
## Documentation and Further Information
For documentation and further information regarding Antville you can refer to:
For documentation and further information about Antville you can refer to:
- [project.antville.org](https://project.antville.org)
- [about.antville.org](https://about.antville.org)
- [help.antville.org](https://help.antville.org)
- [project.antville.org](http://project.antville.org)
- [about.antville.org](http://about.antville.org)
- [help.antville.org](http://help.antville.org)
Feel free to ask any question about Antville at our [support site](http://help.antville.org).
You should follow Antville on [Facebook](http://facebook.com/Antville) and [Twitter](http://twitter.com/antville_org)!
Feel free to ask any question about Antville at our [support site](https://help.antville.org).
## Bug Reporting and Feature Requests
If you think you found a bug [please report it](http://project.antville.org).
If you think you found a bug [please let us know](https://project.antville.org).
A good place for your feature requests or proposals is the [project development site](http://project.antville.org).
A great place for your feature requests or proposals is the [project development site](https://project.antville.org).
Since Antville is open-source, you are definitely encouraged to modify the application, we would be happy to hear from your ideas, suggestions and changes drop us a message via <mail@antville.org> or use any of the aforementioned channels.
For those of you who demonstrated a commitment to collaborative open-source development through sustained participation and contributions within the development of Antville, there will also be other ways to participate.
Antville is open-source, and we want to encourage you to change its code according to your likeness. We are curious about your ideas and suggestions. Feel free to drop us a message to <mail@antville.org> or through any channels mentioned before.
## About Helma Object Publisher
[Helma Object Publisher](http://helma.org) is a web application server.
[Helma Object Publisher](https://code.host.antville.org/antville/helma) is an open source project providing a powerful, fast and scriptable web application server written in Java.
With Helma Object Publisher (sometimes simply referred to as Helma or Hop) you can define Objects and map them to a relational database table. These so-called HopObjects can be created, modified and deleted using a comfortable object/container model. Hence, no manual fiddling around with database code is necessary.
Define HopObjects and map them to a relational database table. Create, change and delete HopObjects at your whim using a comfortable object-container model. Manual fiddling around with database code is not necessary.
HopObjects are extended JavaScript objects which can be scripted using server-side JavaScript. Beyond the common JavaScript features, Helma provides special “skin” and template functionalities which facilitate the rendering of objects via a web interface.
Thanks to Helmas relational database mapping technology, HopObjects create a hierarchical structure, the URL space of a Helma site. The parts between slashes in a Helma URL represent HopObjects (similar to the document tree in static sites). The Helma URL space can be thought of as an analogy to the Document Object Model (DOM) in client-side JavaScript.
HopObjects extend the native JavaScript object. They got all the common features you know and more. One highlight are the special templating features to ease the rendering of objects for the Web.
Combine HopObjects to create a hierarchical structure. A URL in Helma mirrors this structure. Each part of the URL path corresponds to a relational database mapping, similar to the document tree of static websites. Helmas URL space is an analogy to the Document Object Model implemented in client-side JavaScript.

374
build.gradle Normal file
View file

@ -0,0 +1,374 @@
plugins {
id 'base'
id 'java'
id 'com.github.node-gradle.node' version '7.1.0'
}
tasks.build.dependsOn 'assemble'
node {
version = '20.9.0'
download = true
}
allprojects {
apply plugin: 'java'
repositories {
mavenCentral()
}
project.ext.distVersion = { ->
def json = new groovy.json.JsonSlurper()
def packageData = json.parse(file("${rootProject.projectDir}/package.json"))
return packageData.version;
}
project.ext.antvilleBuildDir = "${rootProject.buildDir}/tmp/antville"
project.ext.antvilleInstallDir = "${rootProject.buildDir}/install/antville"
project.ext.antvilleDistFiles = copySpec {
from fileTree(antvilleBuildDir).matching {}
}
// Hide some purely Java-related tasks
project.tasks.buildDependents.group = null;
project.tasks.buildNeeded.group = null;
project.tasks.classes.group = null;
project.tasks.jar.group = null;
project.tasks.javadoc.group = null;
project.tasks.testClasses.group = null;
}
version = distVersion()
configurations {
lessCss
}
dependencies {
implementation 'org.commonmark:commonmark:0.24.0'
implementation 'org.commonmark:commonmark-ext-autolink:0.24.0'
implementation 'org.commonmark:commonmark-ext-gfm-strikethrough:0.24.0'
implementation 'org.commonmark:commonmark-ext-gfm-tables:0.24.0'
implementation 'org.jsoup:jsoup:1.19.1'
implementation 'rome:rome:1.0'
lessCss('org.lesscss:lesscss:1.7.0.1.1') {
exclude group: 'org.mozilla', module: 'rhino'
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'org.slf4j', module: 'slf4j-simple'
}
}
assemble {
dependsOn 'installAntville'
dependsOn 'installJars'
dependsOn 'buildStaticFiles'
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
}
}
}
tasks.register('installAntville') {
description 'Clone the Antville repository and remove all unnecessary files.'
group 'installation'
outputs.dirs antvilleBuildDir
doLast {
def date = new Date().format('d MMM yyyy')
def gitOutput = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', '--short', 'HEAD'
standardOutput = gitOutput
errorOutput = new ByteArrayOutputStream()
ignoreExitValue = true
}
def tag = gitOutput.toString().trim()
copy {
from "${project.projectDir}/code/app.properties"
into "$antvilleBuildDir/code"
filter { line -> line.replaceAll('(version =) 0.0.0', "\$1 $version.$tag")
.replaceAll('(buildDate =) 18 Jun 2001', "\$1 $date")
}
}
copy {
from fileTree(project.projectDir).matching {
include 'claustra/**'
include 'code/**'
exclude 'code/app.properties'
include 'compat/**'
include 'db/**'
include 'i18n/**'
exclude 'i18n/*.po*'
include 'static/**'
include 'tools/**'
include 'CHANGES.md'
include 'INSTALL.md'
include 'README.md'
} into antvilleBuildDir
}
}
}
tasks.register('installJars', Copy) {
description 'Download required JAR libraries.'
group 'installation'
dependsOn 'installAntville'
def outputDir = "$antvilleBuildDir/lib"
outputs.dir outputDir
from configurations.runtimeClasspath
into outputDir
}
tasks.register('installNodeModules', NpmTask) {
description 'Download required Node modules.'
group 'build'
dependsOn 'installAntville'
inputs.files "${project.projectDir}/package-lock.json"
outputs.dir "${project.projectDir}/node_modules"
args = ['--silent', 'install']
execOverrides {
it.workingDir = antvilleBuildDir
}
}
tasks.register('buildStaticFiles', Copy) {
description 'Build fonts, client-side scripts and stylesheets.'
group 'build'
dependsOn 'installAntville'
dependsOn 'installNodeModules'
dependsOn 'buildMainScript'
dependsOn 'buildMainStyles'
dependsOn 'buildEditorScript'
dependsOn 'buildEditorStyles'
dependsOn 'buildGalleryScript'
dependsOn 'buildLicenses'
def inputDir = "${project.projectDir}/node_modules/uikit/dist/fonts"
def outputDir = "$antvilleBuildDir/static/fonts"
inputs.dir inputDir
outputs.dir outputDir
from inputDir
into outputDir
}
['main', 'editor', 'gallery'].each { name ->
tasks.register("build${name.capitalize()}Script", NpmTask) {
description "Build the ${name} client-side scripts."
group 'build'
dependsOn 'installNodeModules'
def inputFile = "${project.projectDir}/tools/client/${name}.js"
def outputFile = "$antvilleBuildDir/static/scripts/${name}.min.js"
inputs.files inputFile
outputs.files outputFile
args = [
'--silent',
'exec', '--',
'browserify', inputFile,
'--outfile', outputFile,
'-g', 'uglifyify'
]
}
}
['main', 'editor'].each { name ->
tasks.register("build${name.capitalize()}Styles", NpmTask) {
description "Build the ${name} stylesheet."
group 'build'
dependsOn 'installNodeModules'
def inputFile = "${project.projectDir}/tools/client/${name}.less"
def outputFile = "$antvilleBuildDir/static/styles/${name}.min.css"
inputs.files inputFile
outputs.files outputFile
args = [
'--silent',
'exec', '--',
'lessc',
'--clean-css',
inputFile,
outputFile
]
}
}
tasks.register('buildLicenses', NpmTask) {
description 'Build licenses file from client-side dependencies.'
group 'build'
dependsOn 'installNodeModules'
def outputFile = "$antvilleBuildDir/static/licenses.txt"
inputs.file "${project.projectDir}/package-lock.json"
outputs.file outputFile
args = [
'--silent',
'exec', '--',
'generate-license-file',
'--input', "${project.projectDir}/package.json",
'--output', outputFile,
'--overwrite',
'--eol', 'lf'
]
execOverrides {
it.workingDir = antvilleBuildDir
it.standardOutput = new FileOutputStream(outputFile)
}
}
tasks.register('jsdoc', NpmTask) {
description 'Generates JavaScript API documentation for the main source code.'
group 'documentation'
dependsOn 'installNodeModules'
def inputDir = "$antvilleBuildDir/code"
def outputDir = "${project.buildDir}/docs/jsdoc"
inputs.dir inputDir
outputs.dir outputDir
args = [
'--silent',
'exec', '--',
'jsdoc',
'--recurse',
'--destination',
outputDir,
inputDir
]
execOverrides {
it.workingDir = antvilleBuildDir
}
}
tasks.register('assembleDist') {
description 'Creates the Antville download packages.'
group 'distribution'
dependsOn 'assemble'
dependsOn 'distZip'
dependsOn 'distTar'
}
tasks.register('distZip', Zip) {
description 'Creates the Antville download package as Zip file.'
group 'distribution'
dependsOn 'assemble'
def version = project.distVersion()
def outputDir = "${project.buildDir}/distributions"
def outputFile = "antville-${version}.zip"
inputs.dir antvilleInstallDir
outputs.file "$outputDir/$outputFile"
from (antvilleInstallDir) {
into "antville-${version}"
}
destinationDirectory = file(outputDir)
archiveFileName = outputFile
}
tasks.register('distTar', Tar) {
description 'Creates the Antville download package as compressed archive file.'
group 'distribution'
dependsOn 'assemble'
def version = project.distVersion()
def outputDir = "${project.buildDir}/distributions"
def outputFile = "antville-${version}.tgz"
inputs.dir antvilleInstallDir
outputs.file "$outputDir/$outputFile"
from (antvilleInstallDir) {
into "antville-${version}"
}
compression = Compression.GZIP
destinationDirectory = file(outputDir)
archiveFileName = outputFile
}
// Task to patch the lesscss JAR file
// This task modifies the lessc-rhino-1.7.0.js file in the JAR to comment out an annoying console.log statement (done)
def patchLessCssJar = tasks.register('patchLessCssJar') {
def name = 'lesscss-1.7.0.1.1'
def targetFile = 'META-INF/lessc-rhino-1.7.0.js' // File to patch
def tempDir = file("${buildDir}/${name}") // Temporary directory for extraction
def patchedJar = file("${buildDir}/${name}-patched.jar") // Output patched JAR
outputs.file patchedJar
doLast {
if (tempDir.exists()) {
tempDir.deleteDir()
}
tempDir.mkdirs()
def jarFile = configurations.lessCss.find {
it.name.contains(name)
}
println "Patching $jarFile…"
ant.unzip(src: jarFile, dest: tempDir)
def targetFilePath = new File(tempDir, targetFile)
def content = targetFilePath.text
content = content.replace('console.log("done")', '// console.log("done")')
targetFilePath.text = content
ant.zip(destfile: patchedJar) {
fileset(dir: tempDir)
}
}
}
// Ensure the patchLessCssJar task runs before the classes task
tasks.named('build').configure {
dependsOn patchLessCssJar
}
// Exclude the original lesscss JAR from the runtime classpath
// and include the patched JAR instead
configurations.runtimeClasspath {
exclude group: 'org.lesscss', module: 'lesscss'
dependencies {
runtimeOnly(patchLessCssJar.map { it.outputs.files })
}
}

337
build.xml
View file

@ -1,337 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ The Antville Project
~ http://code.google.com/p/antville
~
~ Copyright 2001-2014 by the Workers of Antville.
~
~ Copyright 20012007 Robert Gaggl, Hannes Wallnöfer, Tobi Schäfer,
~ Matthias & Michael Platzer, Christoph Lincke.
~
~ Licensed under the Apache License, Version 2.0 (the ``License'');
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an ``AS IS'' BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project name="antville" default="dist" basedir=".">
<target name="help" depends="usage"/>
<target name="usage">
<echo message="Antville Build Instructions"/>
<echo message="==========================="/>
<echo message="Available targets are:"/>
<echo message=" clean Clean up build directory"/>
<echo message=" click Generate the AntClick packages"/>
<echo message=" client Build client-side scripts and styles"/>
<echo message=" dist Generate the Antville and AntClick packages (default)"/>
<echo message=" docs Generate the API documentation"/>
<echo message=" help Show these build instructions"/>
<echo message=" messages Generate JavaScript message files"/>
<echo message=" patch Apply patch file to Antville installation"/>
<echo message=" pot Extract gettext call strings into POT file"/>
<echo message=" ville Generate the Antville packages"/>
<echo message=" +claustra Scaffolds a new claustra, ready for implementation"/>
<echo message=" +patch Scaffolds a new patch, ready for implementation"/>
</target>
<target name="dist" depends="antville, antclick"/>
<target name="all" depends="dist"/>
<target name="build" depends="dist"/>
<target name="init">
<tstamp>
<format property="date" pattern="d MMM yyyy" locale="en"/>
</tstamp>
<tstamp>
<format property="file-date" pattern="yyyyMMdd" locale="en"/>
</tstamp>
<property name="name" value="antville"/>
<property name="year" value="2001-${year}"/>
<property name="version" value="1.5"/>
<property name="package.name" value="${name}-${version}"/>
<property name="antville.src" value="https://github.com/antville/antville.git"/>
<property name="helma.src" value="https://github.com/antville/helma.git"/>
<property name="jala.src" value="https://github.com/antville/helma-jala.git"/>
<property name="uikit.dir" location="./node_modules/uikit-bower"/>
<property name="build.dir" location="${basedir}/build"/>
<property file="${build.dir}/build.properties"/>
<property name="helma.dir" location="/opt/helma"/>
<property name="extra.dir" location="${build.dir}/extra"/>
<property name="dist.dir" location="${build.dir}/dist"/>
<property name="work.dir" location="${build.dir}/work"/>
<property name="source.dir" location="${work.dir}/src"/>
<property name="export.dir" location="${work.dir}/export"/>
<property name="modules.dir" location="${export.dir}/helma/modules"/>
<property name="antville.dir" location="${export.dir}/antville"/>
<property name="docs.title" value="Antville&amp;#32;${version}&amp;#32;API&amp;#32;Reference"/>
<property name="docs.infiles" location="${basedir}/code"/>
<property name="docs.outfiles" location="${basedir}/docs"/>
<property name="i18n.scan" value="claustra code compat extra"/>
<property name="i18n.destination" location="${basedir}/i18n"/>
<property name="i18n.poDirectory" location="${i18n.destination}"/>
<property name="i18n.template" location="${i18n.destination}/antville.pot"/>
<property name="i18n.namespace" value=""/>
</target>
<target name="export" depends="init">
<mkdir dir="${source.dir}"/>
<exec dir="${source.dir}" executable="git">
<arg line="clone ${antville.src}"/>
</exec>
<exec dir="${source.dir}/antville" executable="git">
<arg line="checkout-index -f -a --prefix=${antville.dir}/"/>
</exec>
<delete includeemptydirs="true">
<fileset dir="${antville.dir}" includes="build.xml build/** docs/** i18n/*.po*"/>
</delete>
<exec dir="${source.dir}/antville" executable="git" outputproperty="hash">
<arg line="rev-parse --short HEAD"/>
</exec>
<replace file="${antville.dir}/code/Root/Root.js" value="${version}">
<replacetoken><![CDATA[<v>0</v>]]></replacetoken>
</replace>
<replace file="${antville.dir}/code/Root/Root.js" value="${hash}">
<replacetoken><![CDATA[<h>0</h>]]></replacetoken>
</replace>
<replace file="${antville.dir}/code/Root/Root.js" value="${date}">
<replacetoken><![CDATA[<d/>]]></replacetoken>
</replace>
</target>
<target name="ville" depends="antville"/>
<target name="click" depends="antclick"/>
<target name="antville" depends="export">
<antcall target="make-tar">
<param name="filename" value="${package.name}"/>
<param name="path" value="${antville.dir}"/>
</antcall>
<antcall target="make-zip">
<param name="filename" value="${package.name}"/>
<param name="path" value="${antville.dir}"/>
</antcall>
</target>
<target name="antclick" depends="export">
<!-- Export the Helma and Jala repositories to a temporary directory -->
<exec dir="${source.dir}" executable="git">
<arg line="clone ${helma.src}"/>
</exec>
<exec dir="${source.dir}" executable="git">
<arg line="clone ${jala.src}"/>
</exec>
<!-- Checkout each repository index to the export directory -->
<mkdir dir="${export.dir}"/>
<exec dir="${source.dir}/helma" executable="git">
<arg line="checkout-index -f -a --prefix=${export.dir}/helma/"/>
</exec>
<exec dir="${source.dir}/helma-jala" executable="git">
<arg line="checkout-index -f -a --prefix=${export.dir}/helma/modules/jala/"/>
</exec>
<!-- Copy exported files to final destinations -->
<copy todir="${work.dir}">
<fileset dir="${export.dir}/helma" includes="lib/** licenses/**"/>
</copy>
<copy todir="${work.dir}/apps/antville">
<fileset dir="${antville.dir}"/>
</copy>
<copy todir="${work.dir}/modules">
<fileset dir="${modules.dir}" includes="core/** helma/** jala/**"/>
</copy>
<!-- Copy extra files to final destinations -->
<copy file="${export.dir}/helma/license.txt" tofile="${work.dir}/licenses/helma.txt"/>
<copy todir="${work.dir}">
<fileset dir="${extra.dir}" includes="start.bat apps.properties server.properties launcher.jar"/>
</copy>
<exec dir="${extra.dir}" executable="cp">
<arg line="-p start.sh ${work.dir}"/>
</exec>
<copy file="${extra.dir}/helma.jar" todir="${work.dir}/lib"/>
<copy file="${extra.dir}/h2-1.3.176.jar" todir="${work.dir}/lib/ext"/>
<copy file="${extra.dir}/h2.txt" todir="${work.dir}/licenses"/>
<copy todir="${build.dir}/work/db">
<fileset dir="${extra.dir}" includes="antville.h2.db"/>
</copy>
<copy todir="${work.dir}/licenses">
<fileset dir="${antville.dir}/legal" includes="**"/>
</copy>
<copy file="${modules.dir}/jala/licenses/jala.txt" todir="${work.dir}/licenses"/>
<!-- Delete unnecessary files -->
<delete>
<fileset dir="${work.dir}/modules/helma" includes="*.jar Search.js Ssh.js Chart.js"/>
</delete>
<delete includeemptydirs="true">
<fileset dir="${work.dir}/modules/jala" includes="build.properties docs/** lib/** licenses/** tests/** util/**"/>
</delete>
<delete dir="${work.dir}/apps/antville/legal"/>
<delete dir="${source.dir}"/>
<delete dir="${export.dir}"/>
<!-- Create the packages -->
<antcall target="make-zip">
<param name="filename" value="antclick-${version}"/>
<param name="path" value="${work.dir}"/>
</antcall>
<antcall target="make-tar">
<param name="filename" value="antclick-${version}"/>
<param name="path" value="${work.dir}"/>
</antcall>
</target>
<target name="client" depends="init">
<copy todir="static/fonts">
<fileset dir="${uikit.dir}/fonts" includes="**"/>
</copy>
<mkdir dir="static/scripts"/>
<exec executable="node_modules/.bin/browserify" output="static/scripts/main.min.js">
<arg line="build/client/main.js -d -p [minifyify --map /static/scripts/main.min.map.json --output static/scripts/main.min.map.json]"/>
</exec>
<exec executable="node_modules/.bin/browserify" output="static/scripts/editor.min.js">
<arg line="build/client/editor.js -d -p [minifyify --map /static/scripts/editor.min.map.json --output static/scripts/editor.min.map.json]"/>
</exec>
<mkdir dir="static/styles"/>
<exec executable="node_modules/.bin/lessc" output="static/styles/main.min.css">
<arg line="-x build/client/main.less"/>
</exec>
<exec executable="node_modules/.bin/lessc" output="static/styles/editor.min.css">
<arg line="--clean-css build/client/editor.less"/>
</exec>
</target>
<target name="server" depends="init">
<exec executable="node_modules/.bin/browserify" output="code/Global/0.node.js">
<arg line="build/server.js -d"/>
</exec>
<concat destfile="code/Global/0.node.js" append="true">
<fileset file="node_modules/less/dist/less-rhino-1.7.5.js"/>
<fileset file="node_modules/marked/lib/marked.js"/>
</concat>
</target>
<target name="docs" depends="init">
<exec dir="${build.dir}/jsdoc/toolkit" executable="${build.dir}/jsdoc/jsrunwrapper.sh">
<arg line='-D="title:${docs.title}" -q -r=2 -p -t=../templates/codeview
-d=${docs.outfiles} ${docs.infiles}'/>
</exec>
</target>
<target name="pot" depends="init">
<java dir="${helma.dir}" classpath="${helma.dir}/launcher.jar" classname="helma.main.launcher.Commandline"
fork="true">
<!-- Root.extractMessages is currently located in Global/i18n.js -->
<arg value="antville.extractMessages"/>
<arg value="${build.dir}/MessageParser.js"/>
<arg value="${i18n.scan}"/>
<arg value="${i18n.template}"/>
</java>
</target>
<target name="messages" depends="init">
<java dir="${helma.dir}" classpath="${helma.dir}/lib/rhino.jar"
classname="org.mozilla.javascript.tools.shell.Main">
<arg value="${build.dir}/PoParser.js"/>
<arg value="${i18n.poDirectory}"/>
<arg value="${i18n.destination}"/>
<arg value="${i18n.namespace}"/>
</java>
</target>
<target name="make-tar" depends="init">
<mkdir dir="${dist.dir}"/>
<fixcrlf srcdir="${path}" eol="lf" eof="remove" includes="**/*.txt,
**/*.properties, **/*.hac, **/*.js, **/*.skin, **/.xml, **/.sh"/>
<tar tarfile="${dist.dir}/${filename}.tar" basedir="${path}" excludes="**">
<tarfileset prefix="${filename}" dir="${path}" mode="755">
<include name="**/*.sh"/>
</tarfileset>
<tarfileset prefix="${filename}" dir="${path}">
<include name="**"/>
<exclude name="**/*.sh"/>
</tarfileset>
</tar>
<bzip2 zipfile="${dist.dir}/${filename}.tbz" src="${dist.dir}/${filename}.tar"/>
<delete file="${dist.dir}/${filename}.tar"/>
</target>
<target name="make-zip" depends="init">
<mkdir dir="${dist.dir}"/>
<fixcrlf srcdir="${path}" eol="crlf" includes="**/*.txt, **/*.properties, **/*.hac, **/*.js, **/*.skin, **/*.xml, **/.bat"/>
<zip zipfile="${dist.dir}/${filename}.zip">
<zipfileset dir="${path}" prefix="${filename}" includes="**"/>
</zip>
</target>
<target name="patch" depends="init">
<input message="Please enter the patch ID: " addproperty="patch.id"/>
<loadfile property="patch" srcFile="${basedir}/extra/updater/patch-${patch.id}.js"/>
<echo message="${patch}"/>
<input message="Apply the displayed patch? " validargs="y,n" addproperty="patch.confirm"/>
<condition property="patch.abort">
<equals arg1="${patch.confirm}" arg2="n" casesensitive="false" trim="true"/>
</condition>
<fail if="patch.abort">Build aborted by user.</fail>
<java dir="${helma.dir}" classpath="${helma.dir}/launcher.jar" classname="helma.main.launcher.Commandline" fork="true">
<arg value="antville.patch"/>
<arg value="${patch}"/>
</java>
</target>
<target name="+patch" depends="init">
<property name="patch.dir" value="extra/updater"/>
<echo file="${patch.dir}/patch-${file-date}.js">// Apply with enabled updater repository using `ant patch -Dpatch.id=${file-date}`${line.separator}<!--
-->var sql = new Sql();
</echo>
</target>
<target name="+claustra" depends="init">
<input message="Please enter the name of the new claustra: " addproperty="claustra.name"/>
<script language="javascript"><![CDATA[
name = project.getProperty('claustra.name');
firstLetter = name.substr(0, 1).toUpperCase();
title = firstLetter + name.substr(1);
project.setProperty('claustra.title', title);
]]></script>
<property name="claustra.dir" value="claustra/${claustra.name}/${claustra.title}"/>
<mkdir dir="${claustra.dir}"/>
<echo file="${claustra.dir}/${claustra.title}.properties" append="true">#sites = collection(Site)</echo>
<echo file="${claustra.dir}/${claustra.title}.js" append="true">${claustra.title}.prototype.main_action = function () {${line.separator}<!--
--> //res.debug(this.sites.count());${line.separator}<!--
-->};${line.separator}</echo>
<mkdir dir="${claustra.dir}/../Claustra"/>
<echo file="${claustra.dir}/../Claustra/Claustra.properties" append="true">${claustra.name} = mountpoint(${claustra.title})${line.separator}</echo>
</target>
<target name="clean" depends="init">
<delete dir="${work.dir}"/>
<delete dir="${dist.dir}"/>
</target>
<target name="file-exists" unless="file.exists">
<available property="file.exists" file="${file}"/>
</target>
<target name="debug" depends="init">
<!-- For debugging and testing purposes -->
</target>
</project>

View file

@ -1,481 +0,0 @@
// Jala Project [http://opensvn.csie.org/traccgi/jala]
//
// Copyright 2004 ORF Online und Teletext GmbH.
//
// Licensed under the Apache License, Version 2.0 (the ``License'');
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an ``AS IS'' BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* MessageParser script that extracts all gettext message macros
* out of skin files and all calls of gettext functions
* (that is "gettext", "ngettext" and "_") out of function
* files and directly generates a .pot file from it.
* If an argument "-o" is given and it is followed by
* a path to a file, the output is written to this file.
* Any other argument is interpreted as directory or file
* that should be parsed.
*/
/**
* @constructor
*/
var Message = function(id, pluralId) {
this.id = id && String(id);
this.pluralId = pluralId && String(pluralId);
this.locations = [];
return this;
};
/**
* Static method that constructs a message key by
* which a message can be identified in the messages map.
* @param {String} id The message Id
* @param {String} pluralId The plural message Id
* @returns The generated message key
* @type String
*/
Message.getKey = function(id, pluralId) {
if (id && pluralId) {
return id + pluralId;
} else {
return id;
}
};
/**
* Encloses the string passed as argument in quotes
* and wraps the string if it is longer than 80 characters.
* @param {String} str The string to format
* @param {Boolean} wrap If true the message string will be splitted in
* parts where each one is max. 80 characters long
* @returns The formatted string.
* @type String
*/
Message.formatId = function(str, wrap) {
var escapeQuotes = function(s) {
return s.replace(/(^|[^\\])"/g, '$1\\"');
};
var len = 80;
var buf = new java.lang.StringBuffer();
if (wrap == true && str.length > len) {
buf.append('""\n');
var offset = 0;
while (offset < str.length) {
buf.append('"');
buf.append(escapeQuotes(str.substring(offset, offset += len)));
buf.append('"');
buf.append("\n");
}
return buf.toString();
} else {
buf.append('"');
buf.append(escapeQuotes(str));
buf.append('"\n');
}
return buf.toString();
};
/**
* Adds a new location to this Message instance.
* @param {String} filePath The path to the file this message
* is located in.
* @param {Number} lineNum The line number at which this message
* was found at
*/
Message.prototype.addLocation = function(filePath, lineNum) {
this.locations.push(filePath + ":" + lineNum);
};
/**
* Writes this Message instance as .po compatible string to
* the StringBuffer passed as argument.
* @param {java.lang.StringBuffer} buf The StringBuffer instance
* to write into
*/
Message.prototype.write = function(buf) {
for (var i=0;i<this.locations.length;i++) {
buf.append("#: ");
buf.append(this.locations[i]);
buf.append("\n");
}
if (this.id.indexOf("{") > -1
|| (this.pluralId != null && this.pluralId.indexOf("{") > -1)) {
buf.append("#, java-format\n");
}
buf.append('msgid ');
buf.append(Message.formatId(this.id));
if (this.pluralId != null) {
buf.append('msgid_plural ');
buf.append(Message.formatId(this.pluralId));
buf.append('msgstr[0] ""\nmsgstr[1] ""\n')
} else {
buf.append('msgstr ""\n')
}
buf.append("\n");
return;
};
/**
* @constructor
*/
var MessageParser = function() {
this.messages = {};
return this;
};
/**
* Object containing the accepted function names, currently
* supported are "gettext", "ngettext" and "_". This is used
* as a lookup map during function file parsing.
* @type Object
*/
MessageParser.FUNCTION_NAMES = {
"_": true,
"gettext": true,
"ngettext": true,
"markgettext": true,
"cgettext": true
};
/**
* The name of the gettext macro
* @type String
*/
MessageParser.MACRO_NAME = "message";
/**
* The name of the macro attribute that will be interpreted
* as gettext attribute.
* @type String
*/
MessageParser.ATTRIBUTE_NAME = MessageParser.MACRO_NAME;
/**
* A regular expression for parsing macros in a skin. The result
* of this regular expression contains:
* result[1] = macro handler name (can be empty for global macros)
* result[2] = macro name
* result[3] = the macro's attributes
* @type RegExp
*/
MessageParser.REGEX_MACRO = /<%\s*(?:([\w]+)\.)?([\w]+)\s+([^%]+?)\s*%>/gm;
/**
* A regular expression for parsing the attributes of a macro. The result
* of this regular expression contains:
* result[1] = attribute name
* result[2] = attribute value
* @type RegExp
*/
MessageParser.REGEX_PARAM = /([\w]*)\s*=\s*["'](.*?)["']\s*(?=\w+=|$)/gm;
/**
* Calculates the line number in the string passed as argument
* at which the specified index position is located.
* @param {String} str The source string
* @param {Number} idx The index position to get the line number for.
* @returns The line number of the index position in the source string.
* @type Number
*/
MessageParser.getLineNum = function(str, idx) {
return str.substring(0, idx).split(/.*(?:\r\n|\n\r|\r|\n)/).length;
};
/**
* Parses the file passed as argument. If the file
* is a directory, this method recurses down the directory
* tree and parses all skin and function files.
* @param {java.io.File} file The file or directory to start at.
* @param {String} encoding The encoding to use
*/
MessageParser.prototype.parse = function(file, encoding) {
if (file.isDirectory()) {
var list = file.list();
for (var i=0;i<list.length;i++) {
this.parse(new java.io.File(file, list[i]), encoding);
}
} else {
var fName, dotIdx;
fName = file.getName();
if ((dotIdx = fName.lastIndexOf(".")) > -1) {
switch (String(fName.substring(dotIdx+1))) {
case "skin":
print("Parsing skin file " + file.getCanonicalPath() + "...");
this.parseSkinFile(file, encoding);
break;
case "hac":
case "js":
print("Parsing function file " + file.getCanonicalPath() + "...");
this.parseFunctionFile(file, encoding);
break;
default:
break;
}
}
}
return;
};
/** @ignore */
MessageParser.prototype.toString = function() {
return "[Jala Message Parser]";
};
/**
* Parses a .js file and creates Message instances for all
* calls of "gettext", "ngettext", "markgettext" and "_".
* @param {java.io.File} file The function file to parse
* @param {String} encoding The encoding to use
*/
MessageParser.prototype.parseFunctionFile = function(file, encoding) {
var fis = new java.io.FileInputStream(file);
var isr = new java.io.InputStreamReader(fis, encoding || "UTF-8");
var reader = new java.io.BufferedReader(isr);
var tokenizer = new java.io.StreamTokenizer(reader);
var messages = [], stack = [];
var c;
while ((c = tokenizer.nextToken()) != java.io.StreamTokenizer.TT_EOF) {
switch (c) {
case java.io.StreamTokenizer.TT_WORD:
if (MessageParser.FUNCTION_NAMES[tokenizer.sval] == true) {
stack.push({name: tokenizer.sval, lineNr: tokenizer.lineno()});
} else if (stack.length > 0) {
// it's something else than a string argument inside a gettext method call
// so finalize the argument parsing here as we aren't interested in that
messages.push(stack.pop());
}
break;
case java.io.StreamTokenizer.TT_NUMBER:
break;
default:
if (stack.length > 0) {
if ("\u0028".charCodeAt(0) == c) {
// start of arguments (an opening bracket)
stack[stack.length-1].args = [];
} else if ("\u0029".charCodeAt(0) == c) {
// end of arguments (a closing bracket)
messages.push(stack.pop());
} else if ("\u0022".charCodeAt(0) == c || "\u0027".charCodeAt(0) == c) {
// a quoted string argument
stack[stack.length-1].args.push(tokenizer.sval);
}
}
break;
}
}
if (messages.length > 0) {
var msgParam, key, msg;
for (var i=0;i<messages.length;i++) {
msgParam = messages[i];
if (msgParam.args && msgParam.args.length > 0) {
if (msgParam.name === "cgettext" || msgParam.name === "markgettext") {
msgParam.args[0] = cgettext.getKey(msgParam.args[0], msgParam.args[1]);
delete msgParam.args[1];
}
key = Message.getKey(msgParam.args[0]);
if (!(msg = this.messages[key])) {
this.messages[key] = msg = new Message(msgParam.args[0], msgParam.args[1]);
}
if (!msg.pluralId && msgParam.args.length > 1) {
msg.pluralId = msgParam.args[1];
}
msg.addLocation(file.getCanonicalPath(), msgParam.lineNr);
}
}
}
fis.close();
isr.close();
reader.close();
return;
};
/**
* =================================================
* FIXME: This is a patched version of the method in
* jala/util/HopKit/scripts/MessageParser.js
* It needs skin/macro introspection features enabled
* in Helma. See also the file Skin.java.patch.
* ==================================================
* Parses a skin file and creates Message instances for
* all macros which name is either "message" or
* that have attributes named "message" and optional
* "plural"
* @param {java.io.File} file The skin file to parse
* @param {String} encoding The encoding to use
*/
MessageParser.prototype.parseSkinFile = function(file, encoding) {
var self = this;
var source = readFile(file.getAbsolutePath(), encoding || "UTF-8");
var checkNestedMacros = function(iterator) {
var macros = [];
while (iterator.hasNext()) {
macro = iterator.next();
if (macro && macro.constructor !== String) {
macros.push(macro);
}
}
processMacros(macros);
}
var processMacros = function(macros) {
var re = gettext_macro.REGEX;
var id, pluralId, name, args, param, key, msg;
for each (var macro in macros) {
id = pluralId = null;
name = macro.getName();
param = macro.getNamedParams();
if (param) {
checkNestedMacros(param.values().iterator());
if (name === MessageParser.MACRO_NAME) {
id = param.get("text");
pluralId = param.get("plural");
} else if (param.containsKey("message") === MessageParser.ATTRIBUTE_NAME) {
id = param.get("message");
pluralId = param.get("plural");
}
}
args = macro.getPositionalParams();
if (args) {
checkNestedMacros(args.iterator());
if (name === "gettext" || name === "markgettext") {
id = cgettext.getKey(args.get(0), param && param.get("context"));
} else if (name === "ngettext") {
id = args.get(0);
pluralId = args.get(1);
}
}
if (id != null) {
if (id.constructor !== String) {
continue;
}
// create new Message instance or update the existing one
id = id.replace(re, String.SPACE);
pluralId && (pluralId = pluralId.replace(re, String.SPACE));
key = Message.getKey(id);
if (!(msg = self.messages[key])) {
self.messages[key] = msg = new Message(id, pluralId, file.getCanonicalPath());
}
msg.addLocation(file.getCanonicalPath(), MessageParser.getLineNum(source, macro.start));
}
}
}
var skin = createSkin(source);
if (skin.hasMainskin()) {
processMacros(skin.getMacros());
}
for each (var name in skin.getSubskinNames()) {
var subskin = skin.getSubskin(name);
processMacros(subskin.getMacros());
}
return;
}
/**
* FIXME: Patched with adequate header data
* Prints a standard Header of a .po file
* FIXME: why the hell is Plural-Forms ignored in poEdit?
* @see http://drupal.org/node/17564
*/
MessageParser.prototype.getPotString = function() {
var date = new Date;
var buf = new java.lang.StringBuffer();
buf.append('#\n');
buf.append('# The Antville Project\n');
buf.append('# http://code.google.com/p/antville\n');
buf.append('#\n');
buf.append('# Copyright 2001-' + date.getFullYear() + ' by the Workers of Antville.\n');
buf.append('#\n');
buf.append("# Licensed under the Apache License, Version 2.0 (the ``License''\n");
buf.append('# you may not use this file except in compliance with the License.\n');
buf.append('# You may obtain a copy of the License at\n');
buf.append('#\n');
buf.append('# http://www.apache.org/licenses/LICENSE-2.0\n');
buf.append('#\n');
buf.append('# Unless required by applicable law or agreed to in writing, software\n');
buf.append("# distributed under the License is distributed on an ``AS IS'' BASIS,\n");
buf.append('# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n');
buf.append('# See the License for the specific language governing permissions and\n');
buf.append('# limitations under the License.\n');
buf.append('#\n\n');
buf.append('#, fuzzy\n');
buf.append('msgid ""\n');
buf.append('msgstr ""\n');
buf.append('"Project-Id-Version: Antville-' + Root.VERSION + '\\n"\n');
buf.append('"Report-Msgid-Bugs-To: mail@antville.org\\n"\n');
var sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mmZ");
buf.append('"POT-Creation-Date: ' + sdf.format(new java.util.Date()) + '\\n"\n');
buf.append('"PO-Revision-Date: ' + sdf.format(new java.util.Date()) + '\\n"\n');
//buf.append('"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"\n');
buf.append('"Language-Team: The Antville People <mail@antville.org>\\n"\n');
buf.append('"MIME-Version: 1.0\\n"\n');
buf.append('"Content-Type: text/plain; charset=utf-8\\n"\n');
buf.append('"Content-Transfer-Encoding: 8bit\\n"\n');
buf.append('"Plural-Forms: nplurals=2; plural=(n != 1);\\n"\n');
buf.append('\n');
// sort all messages by their singular key
var keys = [];
for (var i in this.messages) {
keys[keys.length] = this.messages[i].id;
}
keys.sort();
// add all the messages
for (var i=0;i<keys.length;i++) {
this.messages[keys[i]].write(buf);
}
return new java.lang.String(buf);
};
/**
* Write the parsed contents into the file passed as argument.
* @param {java.io.File} file The file to write to
*/
MessageParser.prototype.writeToFile = function(file) {
var writer = new java.io.FileWriter(file);
writer.write(new java.lang.String(this.getPotString().getBytes("UTF-8")));
writer.close();
return;
};
/**
* Main script body
*/
var toParse = [];
var arg, outFile, file, fileEncoding;
for (var i=0;i<arguments.length;i++) {
arg = arguments[i];
if (arg.indexOf("-o") === 0 && i < arguments.length -1) {
outFile = new java.io.File(arguments[i += 1]);
} else if (arg.indexOf("-e") === 0 && i < arguments.length -1) {
fileEncoding = arguments[i += 1];
} else {
// add argument to list of files and directories to parse
toParse.push(new java.io.File(arg));
}
}
// start parsing
var parser = new MessageParser();
for (var i=0;i<toParse.length;i++) {
parser.parse(toParse[i], fileEncoding);
}
if (outFile != null) {
parser.writeToFile(outFile);
} else {
print(parser.getPotString());
}

View file

@ -1,328 +0,0 @@
// Jala Project [http://opensvn.csie.org/traccgi/jala]
//
// Copyright 2004 ORF Online und Teletext GmbH.
//
// Licensed under the Apache License, Version 2.0 (the ``License'');
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an ``AS IS'' BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @fileoverview
* A parser script that converts GNU Gettext .po files into plain JavaScript objects
* for use with jala.I18n. To run it either start the build script of HopKit
* or call it directly using the JavaScript shell of Rhino:
* <code>java -cp rhino.jar org.mozilla.javascript.tools.shell.Main PoParser.js <input> <output> [namespace]</code>
*
* The accepted arguments are:
* <ul>
* <li><code>input</code>: Either a single .po file or a directory containing multiple files</li>
* <li><code>output</code>: The directory where to put the generated message files</li>
* <li><code>namespace</code>: An optional namespace in which the generated message object will reside
* (eg. if the namespace is called "jala", the messages will be stored in global.jala.messages)</li>
* </ul>
*/
/**
* Constructs a new PoParser instance.
* @class Instances of this class can generate JavaScript message files out
* of GNU Gettext .po files for use with jala.I18n (and possibly other internationalization
* environments too).
* @param {String} handler An optional namespace where the parsed messages should be stored
* @returns A newly created instance of PoParser
* @constructor
*/
var PoParser = function(namespace) {
/**
* An array containing the parsed messages
* @type Array
*/
this.messages = [];
/**
* The locale key string (eg. "de_AT") of the .po file
* @type String
*/
this.localeKey = null;
/**
* The namespace (optional) where to store the generated messages
* @type String
*/
this.namespace = namespace;
return this;
};
/**
* A regular expression for splitting the contents of a .po file into
* single lines
* @type RegExp
*/
PoParser.REGEX_LINES = /\r\n|\r|\n|\u0085|\u2028|\u2029/;
/**
* A regular expression for parsing singular message keys
* @type RegExp
*/
PoParser.REGEX_MSGID = /^\s*msgid(?!_plural)\s+\"(.*)\"\s*$/;
/**
* A regular expression for parsing plural message keys
* @type RegExp
*/
PoParser.REGEX_MSGID_PLURAL = /^\s*msgid_plural\s+\"(.*)\"\s*$/;
/**
* A regular expression for parsing message key continuations
* @type RegExp
*/
PoParser.REGEX_MSG_CONT = /^\s*\"(.*)\"\s*$/;
/**
* A regular expression for parsing a message translation
* @type RegExp
*/
PoParser.REGEX_MSGSTR = /^\s*msgstr(?:\[(\d)\])?\s+\"(.*)\"\s*$/;
/**
* A regular expression used to detect lines other than whitespace
* and comments
* @type RegExp
*/
PoParser.REGEX_DATA = /^\s*msg/;
PoParser.isData = function(str) {
return PoParser.REGEX_DATA.test(str);
};
/**
* Reads the file passed as argument, assuming that it is UTF-8 encoded
* @param {java.io.File} file The file to read
* @returns The contents of the file
* @type java.lang.String
*/
PoParser.readFile = function(file) {
var inStream = new java.io.InputStreamReader(new java.io.FileInputStream(file), "UTF-8");
var buffer = new java.lang.reflect.Array.newInstance(java.lang.Character.TYPE, 2048);
var read = 0;
var r = 0;
while ((r = inStream.read(buffer, read, buffer.length - read)) > -1) {
read += r;
if (read == buffer.length) {
// grow input buffer
var newBuffer = new java.lang.reflect.Array.newInstance(java.lang.Character.TYPE, buffer.length * 2);
java.lang.System.arraycopy(buffer, 0, newBuffer, 0, buffer.length);
buffer = newBuffer;
}
}
inStream.close();
return new java.lang.String(buffer, 0, read);
}
/**
* Parses the PO file passed as argument into the messages array
* of this PoParser instance.
* @param {java.io.File} file The .po file to parse
*/
PoParser.prototype.parse = function(file) {
// parse the locale key out of the file name
var fileName = file.getName();
if (!(this.localeKey = fileName.substring(0, fileName.indexOf(".")))) {
throw "Invalid PO file name: " + fileName;
}
// read the PO file content and parse it into messages
var content = PoParser.readFile(file);
var start = new Date();
var lines = content.split(PoParser.REGEX_LINES);
var idx = -1;
var line = null;
var m, value, nr;
var msg;
var hasMoreLines = function() {
return idx < lines.length - 1;
};
var nextLine = function() {
return (line = lines[idx += 1]) != null;
};
var getContinuation = function(str) {
var nLine;
while ((nLine = lines[idx + 1]) != null) {
if ((m = nLine.match(PoParser.REGEX_MSG_CONT)) != null) {
str += m[1];
nextLine();
} else {
break;
}
}
return str;
}
while (nextLine()) {
if ((m = line.match(PoParser.REGEX_MSGID)) != null) {
value = getContinuation(m[1]);
if (value) {
msg = this.messages[this.messages.length] = new Message(value);
}
} else if ((m = line.match(PoParser.REGEX_MSGID_PLURAL)) != null) {
value = getContinuation(m[1]);
if (value && msg != null) {
msg.pluralKey = value;
}
} else if ((m = line.match(PoParser.REGEX_MSGSTR)) != null) {
nr = m[1];
value = getContinuation(m[2]);
if (value && msg != null) {
nr = parseInt(nr, 10);
msg.translations[nr || 0] = value;
}
}
}
return;
};
/**
* Converts the array containing the parsed messages into a message
* catalog script file and saves it on disk.
* @param {java.io.File} outputDir The directory where the message
* file should be saved
*/
PoParser.prototype.writeToFile = function(output) {
var buf = new java.lang.StringBuffer();
// write header
buf.append('/**\n');
buf.append(' * Instantiate the messages namespace if it\'s not already existing\n');
buf.append(' */\n');
var objPath = "";
if (this.namespace) {
objPath += this.namespace;
buf.append('if (!global.' + objPath + ') {\n');
buf.append(' global.' + objPath + ' = {};\n');
buf.append('}\n');
objPath += ".";
}
objPath += "messages";
buf.append('if (!global.' + objPath + ') {\n');
buf.append(' global.' + objPath + ' = {};\n');
buf.append('}\n\n');
buf.append('/**\n');
buf.append(' * Messages for locale "' + this.localeKey + '"\n');
buf.append(' */\n');
var fname = objPath + "." + this.localeKey + ".js";
objPath += "['" + this.localeKey + "']";
buf.append('global.' + objPath + ' = {\n');
// write messages
for (var i=0;i<this.messages.length; i++) {
this.messages[i].write(buf);
}
// write footer
buf.append('};\n');
// write the message catalog into the outFile
var file = new java.io.File(output, fname);
var writer = new java.io.FileWriter(file);
writer.write(new java.lang.String(buf.toString().getBytes("UTF-8")));
writer.close();
print("generated messages file " + file.getAbsolutePath());
return;
};
/**
* Constructs a new message object containing the singular- and
* plural key plus their translations
* @param {String} singularKey The singular key of the message
* @returns A newly created Message instance
* @constructor
*/
var Message = function(singularKey) {
this.singularKey = singularKey;
this.pluralKey = null;
this.translations = [];
return this;
}
/**
* Dumps this message as JavaScript literal key-value pair(s)
* @param {java.lang.StringBuffer} buf The buffer to append the dumped
* string to
*/
Message.prototype.write = function(buf) {
var writeLine = function(key, value) {
buf.append(' "');
buf.append(key);
buf.append('": "');
if (value !== null && value !== undefined) {
buf.append(value);
}
buf.append('",\n');
};
if (this.singularKey != null) {
writeLine(this.singularKey, this.translations[0]);
if (this.pluralKey != null) {
writeLine(this.pluralKey, this.translations[1]);
}
}
return;
}
/**
* Main script body
*/
if (arguments.length < 2) {
print("Usage:");
print("PoParser.js <input> <output> [namespace]");
print("<input>: Either a single .po file or a directory containing .po files");
print("<output>: The directory where the generated messages files should be stored");
print("[namespace]: An optional global namespace where the messages should be");
print(" stored (eg. a namespace like 'jala' will lead to messages");
print(" stored in global.jala.messages by their locale.");
quit();
}
var input = new java.io.File(arguments[0]);
var output = new java.io.File(arguments[1]);
var namespace = arguments[2];
// check if the output destination is a directory
if (output.isFile()) {
print("Invalid arguments: the output destination must be a directory.");
quit();
}
if (namespace && namespace.indexOf(".") != -1) {
print("Invalid arguments: Please don't specify complex object paths, as this");
print("would corrupt the messages file.");
quit();
}
// parse the PO file(s) and create the message catalog files
var parser;
if (input.isDirectory()) {
var files = input.listFiles();
var file;
for (var i=0;i<files.length;i++) {
file = files[i];
if (file.getName().endsWith(".po")) {
parser = new PoParser(namespace);
parser.parse(file);
parser.writeToFile(output);
}
}
} else {
parser = new PoParser(namespace);
parser.parse(input);
parser.writeToFile(output);
}

View file

@ -1,2 +0,0 @@
@import (inline) 'node_modules/codemirror/lib/codemirror.css';
@import (inline) 'node_modules/uikit-bower/css/components/htmleditor.almost-flat.css';

View file

@ -1,172 +0,0 @@
window.$ = window.jQuery = require('jquery');
jQuery.md5 = require('js-md5/src/md5');
require('jquery-collagePlus/jquery.collagePlus');
require('jquery-collagePlus/extras/jquery.collageCaption');
require('jquery-collagePlus/extras/jquery.removeWhitespace');
require('uikit-bower/js/uikit');
require('uikit-bower/js/components/form-password');
require('uikit-bower/js/components/tooltip');
require('uikit-bower/js/components/upload');
$(function() {
// Extend jQuery with selectText() method.
$.fn.selectText = function() {
var element = this.get(0);
if (document.body.createTextRange) { // ms
var range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) { // moz, opera, webkit
var selection = window.getSelection();
var range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
};
// Highlight the current navigation menu item
var counter = 0;
$('.uk-nav li').each(function (index, element) {
if (counter > 0) {
return;
}
var href = String($(element).find('a').attr('href')) + location.hash;
var index = location.href.lastIndexOf(href);
if (href && index > -1 && index + href.length === location.href.length) {
$(element).addClass('uk-active');
counter += 1;
}
});
// Prevent redundant submits of a form
$('form').one('submit', function (event) {
var submit = $(this).find('[type=submit]');
setTimeout(function () {
submit.attr('disabled', true);
}, 1);
});
// Show prompt to copy macro code
$('a.av-clipboard-copy').on('click', function (event) {
event.preventDefault();
prompt($(this).data('text'), $(this).data('value'));
});
// Select the macro code when clicking on elements with the macro-code class.
// FIXME: Obsolete (should move to compat layer)
$('.macro-code').click(function(event) {
$(this).selectText();
});
// Compatibility: Go back when cancel link is clicked
$('a.cancel').on('click', function (event) {
event.preventDefault();
history.back()
});
// Add the skin controls for the layout sandbox
/*$('body').prepend($('<div>').attr('class', 'layout-sandbox')
.append($('<div>')
.append($('<button>')
.html('Exit Sandbox')
.click(function() {
location.replace($('a[href$='sandbox']').attr('href'));
}))));*/
$('.av-skin').each(function() {
var skinButton = $('<span class="av-skin-control"><a class="av-skin-edit-link">');
skinButton.find('a').attr({
'data-uk-tooltip': true,
href: $(this).data('href'),
title: 'Click to edit ' + $(this).data('name') + ' skin'
}).mouseover(function() {
$(this).parents('.av-skin').eq(0).addClass('av-skin-active');
}).mouseout(function() {
$(this).parents('.av-skin').eq(0).removeClass('av-skin-active');
}).html('<i class="uk-icon-pencil"></i>');
$(this).prepend(skinButton);
});
});
Antville = {};
Antville.prefix = 'Antville_';
Antville.encode = function(str) {
var chars = ['&', '<', '>', '\''];
for (var i in chars) {
var c = chars[i];
var re = new RegExp(c, 'g');
str = str.replace(re, '&#' + c.charCodeAt() + ';');
}
return str;
};
Antville.decode = function(str) {
return str.replace(/&amp;/g, '&');
};
Antville.Referrer = function(url, text, count) {
this.url = url;
var re = new RegExp('https?://(?:www\.)?');
this.text = String(text).replace(re, '');
var pos = this.text.lastIndexOf('/');
if (pos === this.text.length - 1) {
this.text = this.text.substr(0, pos);
}
this.count = parseInt(count, 10);
this.compose = function(prefix, key) {
prefix || (prefix = '');
var query = new Antville.Query(this.url);
if (query[key]) {
return prefix + ' ' + Antville.encode(query[key]);
}
return this.text;
}
return this;
};
Antville.Query = function(str) {
if (str == undefined)
var str = location.search.substring(1);
else if (str.indexOf('?') > -1)
var str = str.split('?')[1];
if (str == '')
return this;
var parts = Antville.decode(decodeURIComponent(str)).split('&');
for (var i in parts) {
var pair = parts[i].split('=');
var key = pair[0];
if (key) {
key = key.replace(/\+/g, ' ');
var value = pair[1];
if (value)
value = value.replace(/\+/g, ' ');
this[key] = value;
}
}
return this;
};
Antville.Filter = function(def, key) {
this.key = key;
if (def == null)
this.items = [];
else if (def instanceof Array)
this.items = def;
else
this.items = def.replace(/\r/g, '\n').split('\n');
this.test = function(str) {
if (!str)
return false;
str = str.replace(/&amp;/g, '&');
for (var n in this.items) {
var re = new RegExp(this.items[n], 'i');
if (re.test(str))
return true;
}
return false;
}
return this;
};

View file

@ -1,5 +0,0 @@
@import (inline) 'node_modules/uikit-bower/css/uikit.almost-flat.css';
@import (inline) 'node_modules/uikit-bower/css/components/form-password.almost-flat.css';
@import (inline) 'node_modules/uikit-bower/css/components/tooltip.almost-flat.css';
@import './sprites';

Binary file not shown.

Binary file not shown.

View file

@ -1,12 +0,0 @@
H2 is dual licensed and available under a modified version of the MPL 1.1 (Mozilla Public License) or under the (unmodified) EPL 1.0 (Eclipse Public License). The changes to the MPL are underlined. There is a License FAQ for both the MPL and the EPL, most of that is applicable to the H2 License as well.
* You can use H2 for free. You can integrate it into your application (including commercial applications), and you can distribute it.
* Files containing only your code are not covered by this license (it is 'commercial friendly').
* Modifications to the H2 source code must be published.
* You don't need to provide the source code of H2 if you did not modify anything.
However, nobody is allowed to rename H2, modify it a little, and sell it as a database engine without telling the customers it is in fact H2. This happened to HSQLDB: a company called 'bungisoft' copied HSQLDB, renamed it to 'RedBase', and tried to sell it, hiding the fact that it was in fact just HSQLDB. It seems 'bungisoft' does not exist any more, but you can use the Wayback Machine and visit old web pages of http://www.bungisoft.com.
About porting the source code to another language (for example C# or C++): converted source code (even if done manually) stays under the same copyright and license as the original code. The copyright of the ported source code does not (automatically) go to the person who ported the code.
For the full license text see http://www.h2database.com/html/license.html.

Binary file not shown.

Binary file not shown.

View file

@ -1,23 +0,0 @@
# The Antville Project
# http://code.google.com/p/antville
#
# Copyright 20012014 by the Workers of Antville.
#
# Licensed under the Apache License, Version 2.0 (the ``License'');
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an ``AS IS'' BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
country = AT
language = en
smtp = localhost
# Login to manage console: admin/admin
adminAccess = 32ff9ee7e841b26a966870c144fdcaec
allowAdmin = 127.0.0.1, ::1

View file

@ -1,83 +0,0 @@
::
:: The Antville Project
:: http://code.google.com/p/antville
::
:: Copyright 20012014 by the Workers of Antville.
::
:: Licensed under the Apache License, Version 2.0 (the ``License'');
:: you may not use this file except in compliance with the License.
:: You may obtain a copy of the License at
::
:: http://www.apache.org/licenses/LICENSE-2.0
::
:: Unless required by applicable law or agreed to in writing, software
:: distributed under the License is distributed on an ``AS IS'' BASIS,
:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
:: See the License for the specific language governing permissions and
:: limitations under the License.
::
@echo off
set JAVA_HOME=
set HOP_HOME=
set HTTP_PORT=
set XMLRPC_PORT=
set AJP13_PORT=
set RMI_PORT=
set CONFIG_FILE=
set OPTIONS=
set HTTP_PORT=8080
rem set XMLRPC_PORT=8081
rem set AJP13_PORT=8009
rem set RMI_PORT=5050
rem set CONFIGFILE=./etc/jetty.xml
rem set HOP_HOME="c:\program files\helma"
rem set JAVA_HOME="c:\program files\java"
set JAVA_OPTIONS=-Djava.awt.headless=true -Dfile.encoding=utf-8
set INSTALL_DIR=%~d0%~p0
if "%JAVA_HOME%"=="" goto default
set JAVACMD=%JAVA_HOME%\bin\java
goto end
:default
set JAVACMD=java
:end
if "%HOP_HOME%"=="" (
set HOP_HOME=%INSTALL_DIR%
)
cd %HOP_HOME%
if not "%CONFIG_FILE%"=="" (
echo Using configuration file %CONFIG_FILE%
set OPTION=%OPTIONS% -c %CONFIG_FILE%
goto java
)
if not "%HTTP_PORT%"=="" (
echo Starting HTTP server on port %HTTP_PORT%
set OPTIONS=%OPTIONS% -w %HTTP_PORT%
)
if not "%XMLRPC_PORT%"=="" (
echo Starting XML-RPC server on port %XMLRPC_PORT%
set OPTIONS=%OPTIONS% -x %XMLRPC_PORT%
)
if not "%AJP13_PORT%"=="" (
echo Starting AJP13 listener on port %AJP13_PORT%
set OPTIONS=%OPTIONS% -jk %AJP13_PORT%
)
if not "%RMI_PORT%"=="" (
echo Starting RMI server on port %RMI_PORT%
set OPTIONS=%OPTIONS% -p %RMI_PORT%
)
if not "%HOP_HOME%"=="" (
echo Serving applications from %HOP_HOME%
set OPTIONS=%OPTIONS% -h "%HOP_HOME%
)
:java
%JAVACMD% %JAVA_OPTIONS% -jar "%INSTALL_DIR%\launcher.jar" %OPTIONS%

View file

@ -1,80 +0,0 @@
# The Antville Project
# http://code.google.com/p/antville
#
# Copyright 20012014 by the Workers of Antville.
#
# Licensed under the Apache License, Version 2.0 (the ``License'');
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an ``AS IS'' BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#!/bin/sh
HTTP_PORT=8080
#XMLRPC_PORT=8081
#AJP13_PORT=8009
#RMI_PORT=5050
#CONFIG_FILE=./etc/jetty.xml
#JAVA_HOME=/usr/lib/java
#HOP_HOME=/usr/local/helma
JAVA_OPTIONS="-Djava.awt.headless=true -Dfile.encoding=utf-8"
if [ "$JAVA_HOME" ]; then
JAVACMD="$JAVA_HOME/bin/java"
# Check if java command is executable
if [ ! -x $JAVACMD ]; then
echo "Warning: JAVA_HOME variable may be set incorrectly:"
echo " No executable found at $JAVACMD"
fi
else
JAVACMD=java
fi
INSTALL_DIR="${0%/*}"
cd $INSTALL_DIR
INSTALL_DIR=$PWD
if [ -z "$HOP_HOME" ]; then
HOP_HOME="${0%/*}"
cd $HOP_HOME
HOP_HOME=$PWD
else
cd $HOP_HOME
fi
echo "Starting Helma in directory $HOP_HOME"
if [ "$CONFIG_FILE" ]; then
SWITCHES="$SWITCHES -c $CONFIG_FILE"
echo Using configuration file $CONFIG_FILE
else
if [ "$HTTP_PORT" ]; then
SWITCHES="$SWITCHES -w $HTTP_PORT"
echo Starting HTTP server on port $HTTP_PORT
fi
if [ "$XMLRPC_PORT" ]; then
SWITCHES="$SWITCHES -x $XMLRPC_PORT"
echo Starting XML-RPC server on port $XMLRPC_PORT
fi
if [ "$AJP13_PORT" ]; then
SWITCHES="$SWITCHES -jk $AJP13_PORT"
echo Starting AJP13 listener on port $AJP13_PORT
fi
if [ "$RMI_PORT" ]; then
SWITCHES="$SWITCHES -p $RMI_PORT"
echo Starting RMI server on port $RMI_PORT
fi
if [ "$HOP_HOME" ]; then
SWITCHES="$SWITCHES -h $HOP_HOME"
fi
fi
$JAVACMD $JAVA_OPTIONS -jar "$INSTALL_DIR/launcher.jar" $SWITCHES

View file

@ -1,5 +0,0 @@
#!/bin/sh
# Simple wrapper for the JSDoc runner which is checked out
# from the JSDoc repository w/o executable permission.
. jsrun.sh

View file

@ -1,18 +0,0 @@
{! Link.base = ""; /* all generated links will be relative to this */ !}
{+subtemplate("subtemplates/head.tmpl", {subtitle: "Class Index"})+}
{+subtemplate("subtemplates/menu.tmpl")+}
<div class="content">
<div class="innerContent">
<h1 class="classTitle"><span>Class Index</span></h1>
<ul id="ClassList2">
<for each="thisClass" in="data">
<li>
<h2 class="classname">{+(new Link().toSymbol(thisClass.alias))+}</h2>
<p>{+resolveLinks(summarize(thisClass.classDesc))+}</p>
</li>
</for>
</ul>
</div>
</div>
{+subtemplate("subtemplates/foot.tmpl")+}

View file

@ -1,39 +0,0 @@
{! Link.base = ""; /* all generated links will be relative to this */ !}
{+subtemplate("subtemplates/head.tmpl", {subtitle: "File Index"})+}
{+subtemplate("subtemplates/menu.tmpl")+}
<div class="content">
<div class="innerContent">
<h1 class="classTitle"><span>File Index</span></h1>
<ul class="fileList" id="FileList">
<for each="item" in="data">
<li>
<h2 class="filename">{+new Link().toSrc(item.alias).withText(item.name)+}</h2>
<if test="item.desc">{+resolveLinks(item.desc)+}</if>
<dl class="detailList">
<if test="item.author">
<dt class="heading">Author:</dt>
<dd>{+item.author+}</dd>
</if>
<if test="item.version">
<dt class="heading">Version:</dt>
<dd>{+item.version+}</dd>
</if>
{! var locations = item.comment.getTag('location').map(function($){return $.toString().replace(/(^\$ ?| ?\$$)/g, '').replace(/^HeadURL: https:/g, 'http:');}) !}
<if test="locations.length">
<dt class="heading">Location:</dt>
<for each="location" in="locations">
<dd><a href="{+location+}">{+location+}</a></dd>
</for>
</if>
</dl>
</li>
</for>
</ul>
</div>
</div>
{+subtemplate("subtemplates/foot.tmpl")+}

View file

@ -1,679 +0,0 @@
{! Link.base = "../"; /* all generated links will be relative to this */ !}
{+subtemplate("subtemplates/head.tmpl", {subtitle: data.alias})+}
{+subtemplate("subtemplates/menu.tmpl")+}
<div class="content">
<div class="innerContent">
<h1 class="classTitle">
{!
var classType = "";
if (data.isBuiltin()) {
classType += "Built-In ";
}
if (data.isNamespace) {
if (data.is('FUNCTION')) {
classType += "Function ";
}
classType += "Namespace ";
} else {
classType += "Class ";
}
!}
{+classType+}<span>{+data.alias+}</span>
</h1>
<div class="intro">
<p class="description summary">
{+resolveLinks(data.classDesc)+}
</p>
<if test="data.version || !data.isBuiltin() || data.augments.length">
<ul class="summary">
<if test="data.version">
<li>Version {+ data.version +}</li>
</if>
<if test="!data.isBuiltin()">{# isn't defined in any file #}
<li>Defined in: {+new Link().toSrc(data.srcFile)+}</li>
</if>
<if test="data.augments.length"><li>Extends <span class="fixedFont">
{+
data.augments
.sort()
.map(
function($) { return new Link().toSymbol($); }
)
.join(", ")
+}</span></li>
</if>
</ul>
</if>
</div>
<if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class {+data.alias+}.">
<caption class="sectionTitle">{+classType+}Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">{!
if (data.isPrivate) output += "&lt;private&gt; ";
if (data.isInner) output += "&lt;inner&gt; ";
!}&nbsp;</td>
<td class="nameDescription" {!if (data.comment.getTag("hilited").length){output += 'style="color: red"'}!}>
<div class="fixedFont">
<b>{+ new Link().toSymbol(data.alias).inner('constructor')+}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
</div>
<div class="description">{+resolveLinks(summarize(data.desc))+}</div>
</td>
</tr>
</tbody>
</table>
</div>
</if>
<if test="data.properties.length">
{! var ownProperties = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
<if test="ownProperties.length">
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class {+data.alias+}.">
<caption class="sectionTitle">Field Summary</caption>
<thead>
<tr>
<th scope="col">Field Attributes</th>
<th scope="col">Field Name and Description</th>
</tr>
</thead>
<tbody>
<for each="member" in="ownProperties">
<tr>
<td class="attributes">{!
if (member.isPrivate) output += "&lt;private&gt; ";
if (member.isInner) output += "&lt;inner&gt; ";
if (member.isStatic) output += "&lt;static&gt; ";
if (member.isConstant) output += "&lt;constant&gt; ";
!}&nbsp;</td>
<td class="nameDescription">
<div class="fixedFont">
<if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>
</div>
<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
</td>
</tr>
</for>
</tbody>
</table>
</div>
</if>
<if test="data.inheritsFrom.length">
<dl class="inheritsList">
{!
var borrowedMembers = data.properties.filter(function($) {return $.memberOf != data.alias});
var contributers = [];
borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
for (var i = 0, l = contributers.length; i < l; i++) {
output +=
"<dt>Fields borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
+
"<dd>" +
borrowedMembers
.filter(
function($) { return $.memberOf == contributers[i] }
)
.sort(makeSortby("name"))
.map(
function($) { return new Link().toSymbol($.alias).withText($.name) }
)
.join(", ")
+
"</dd>";
}
!}
</dl>
</if>
</if>
<!--
#### METHODS SUMMARY
-->
<if test="data.methods.length">
{! var ownMethods = data.methods.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
<div class="props">
<h2 class="sectionTitle">Method Summary</h2>
<if test="ownMethods.length">
<table class="summaryTable" id="MethodsList" cellspacing="0" summary="A summary of the methods documented in the class {+data.alias+}.">
<thead>
<tr>
<th scope="col">Method Attributes</th>
<th scope="col">Method Name and Description</th>
</tr>
</thead>
<tbody>
{!
var methodSummaryCount = 0;
!}
<for each="member" in="ownMethods">
<tr
{!
output += " class='item"+ methodSummaryCount +"'";
methodSummaryCount++
!}
>
<td class="attributes">{!
if (member.isPrivate) output += "&lt;private&gt; ";
if (member.isInner) output += "&lt;inner&gt; ";
if (member.isStatic) output += "&lt;static&gt; ";
!}&nbsp;</td>
<td class="nameDescription">
<div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name.replace(/\^\d+$/, ''))+}</b>{+makeSignature(member.params)+}
</div>
<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
</td>
</tr>
</for>
</tbody>
</table>
</if>
<if test="data.inheritsFrom.length">
<dl class="inheritsList" id="MethodsListInherited">
{!
var borrowedMembers = data.methods.filter(function($) {return $.memberOf != data.alias});
var contributers = [];
borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
for (var i = 0, l = contributers.length; i < l; i++) {
output +=
"<dt>Methods borrowed from class <span class='fixedFont'>"+new Link().toSymbol(contributers[i])+"</span>: </dt>"
+
borrowedMembers
.filter(
function($) { return $.memberOf == contributers[i] }
)
.sort(makeSortby("name"))
.map(
function($) {
var link = "";
link += "<dd><span class='fixedFont'>";
link += new Link().toSymbol($.alias).withText($.name);
link += "</span></dd>";
return link;
}
)
.join(" ");
}
!}
</dl>
</if>
</div>
</if>
<!--
#### EVENTS SUMMARY
-->
<if test="data.events.length">
{! var ownEvents = data.events.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
<if test="ownEvents.length">
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the events documented in the class {+data.alias+}.">
<caption class="sectionTitle">Event Summary</caption>
<thead>
<tr>
<th scope="col">Event Attributes</th>
<th scope="col">Event Name and Description</th>
</tr>
</thead>
<tbody>
<for each="member" in="ownEvents">
<tr>
<td class="attributes">{!
if (member.isPrivate) output += "&lt;private&gt; ";
if (member.isInner) output += "&lt;inner&gt; ";
if (member.isStatic) output += "&lt;static&gt; ";
!}&nbsp;</td>
<td class="nameDescription">
<div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>{+makeSignature(member.params)+}
</div>
<div class="description">{+resolveLinks(summarize(member.desc))+}</div>
</td>
</tr>
</for>
</tbody>
</table>
</div>
</if>
<if test="data.inheritsFrom.length">
<dl class="inheritsList">
{!
var borrowedMembers = data.events.filter(function($) {return $.memberOf != data.alias});
var contributers = [];
borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
for (var i = 0, l = contributers.length; i < l; i++) {
output +=
"<dt>Events borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
+
"<dd>" +
borrowedMembers
.filter(
function($) { return $.memberOf == contributers[i] }
)
.sort(makeSortby("name"))
.map(
function($) { return new Link().toSymbol($.alias).withText($.name) }
)
.join(", ")
+
"</dd>";
}
!}
</dl>
</if>
</if>
<!--
#### CONSTRUCTOR DETAILS
-->
<if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
<div class="details props">
<div class="innerProps">
<h2 class="sectionTitle" id="constructor">
{+classType+}Detail
</h2>
<div class="fixedFont">{!
if (data.isPrivate) output += "&lt;private&gt; ";
if (data.isInner) output += "&lt;inner&gt; ";
!}
<b>{+ data.alias +}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
</div>
<div class="description">
{+resolveLinks(data.desc)+}
<if test="data.author"><br /><i>Author: </i>{+data.author+}.</if>
</div>
<if test="data.example.length">
<for each="example" in="data.example">
<pre class="code">{+example+}</pre>
</for>
</if>
<if test="data.params.length">
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<for each="item" in="data.params">
<dt>
{+((item.type)?""+("<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type)+"}</span> ")) : "")+} <b>{+item.name+}</b>
<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
</dt>
<dd>{+resolveLinks(item.desc)+}</dd>
</for>
</dl>
</if>
<if test="data.deprecated || data.since || data.exceptions.length || data.returns.length || data.requires.length || data.see.length">
<dl class="detailList nomargin">
<if test="data.deprecated">
<dt>
{+resolveLinks(data.deprecated)+}
</dt>
</if>
<if test="data.since">
<dt class="heading">Since:</dt>
<dd>{+ data.since +}</dd>
</if>
<if test="data.exceptions.length">
<dt class="heading">Throws:</dt>
<for each="item" in="data.exceptions">
<dt>
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
</dt>
<dd>{+resolveLinks(item.desc)+}</dd>
</for>
</if>
<if test="data.returns.length">
<dt class="heading">Returns:</dt>
<for each="item" in="data.returns">
<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
</for>
</if>
<if test="data.requires.length">
<dt class="heading">Requires:</dt>
<for each="item" in="data.requires">
<dd>{+ resolveLinks(item) +}</dd>
</for>
</if>
<if test="data.see.length">
<dt class="heading">See:</dt>
<for each="item" in="data.see">
<dd>{+ new Link().toSymbol(item) +}</dd>
</for>
</if>
</dl>
</if>
</div>
</div>
</if>
<!--
#### FIELD DETAILS
-->
<if test="defined(ownProperties) && ownProperties.length">
<div class="details props">
<div class="innerProps">
<h2 class="sectionTitle">
Field Detail
</h2>
<for each="member" in="ownProperties">
<div class="fixedFont heading" id="{+Link.symbolNameToLinkName(member)+}">
<span class='lighter'>
{!
if (member.isPrivate) output += "&lt;private&gt; ";
if (member.isInner) output += "&lt;inner&gt; ";
if (member.isStatic) output += "&lt;static&gt; ";
if (member.isConstant) output += "&lt;constant&gt; ";
!}
</span>
<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>
</div>
<div class="description">
{+resolveLinks(member.desc)+}
<if test="member.srcFile != data.srcFile">
<br />
<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
</if>
<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
</div>
<if test="member.example.length">
<for each="example" in="member.example">
<pre class="code">{+example+}</pre>
</for>
</if>
<if test="member.deprecated || member.since || member.see.length || member.defaultValue">
<dl class="detailList nomargin">
<if test="member.deprecated">
<dt class="heading">Deprecated:</dt>
<dt>
{+ resolveLinks(member.deprecated) +}
</dt>
</if>
<if test="member.since">
<dt class="heading">Since:</dt>
<dd>{+ member.since +}</dd>
</if>
<if test="member.see.length">
<dt class="heading">See:</dt>
<for each="item" in="member.see">
<dd>{+ new Link().toSymbol(item) +}</dd>
</for>
</if>
<if test="member.defaultValue">
<dt class="heading">Default Value:</dt>
<dd>
{+resolveLinks(member.defaultValue)+}
</dd>
</if>
</dl>
</if>
<if test="!$member_last"><div class="hr"></div></if>
</for>
</div>
</div>
</if>
<!--
#### METHOD DETAILS
-->
<if test="defined(ownMethods) && ownMethods.length">
<div class="details props">
<div class="innerProps">
<h2 class="sectionTitle">
Method Detail
</h2>
<ul class="methodDetail" id="MethodDetail">
{!
var methodDetailCount = 0;
!}
<for each="member" in="ownMethods">
<li
{!
output += " class='item"+ methodDetailCount +"'";
methodDetailCount++
!}
>
<div class="fixedFont heading" id="{+Link.symbolNameToLinkName(member)+}">
<span class='lighter'>
{!
if (member.isPrivate) output += "&lt;private&gt; ";
if (member.isInner) output += "&lt;inner&gt; ";
if (member.isStatic) output += "&lt;static&gt; ";
!}
</span>
<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name.replace(/\^\d+$/, '')+}</b>{+makeSignature(member.params)+}
</div>
<div class="description">
{+resolveLinks(member.desc)+}
<if test="member.srcFile != data.srcFile">
<br />
<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
</if>
<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
</div>
<if test="member.example.length">
<for each="example" in="member.example">
<pre class="code">{+example+}</pre>
</for>
</if>
<if test="member.params.length">
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<for each="item" in="member.params">
<dt>
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>{+item.name+}</b>
<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
</dt>
<dd>{+resolveLinks(item.desc)+}</dd>
</for>
</dl>
</if>
<if test="member.deprecated || member.since || member.exceptions.length || member.returns.length || member.requires.length || member.see.length">
<dl class="detailList nomargin">
<if test="member.deprecated">
<dt class="heading">Deprecated:</dt>
<dt>
{+ resolveLinks(member.deprecated) +}
</dt>
</if>
<if test="member.since">
<dt class="heading">Since:</dt>
<dd>{+ member.since +}</dd>
</if>
<if test="member.exceptions.length">
<dt class="heading">Throws:</dt>
<for each="item" in="member.exceptions">
<dt>
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
</dt>
<dd>{+resolveLinks(item.desc)+}</dd>
</for>
</if>
<if test="member.returns.length">
<dt class="heading">Returns:</dt>
<for each="item" in="member.returns">
<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
</for>
</if>
<if test="member.requires.length">
<dt class="heading">Requires:</dt>
<for each="item" in="member.requires">
<dd>{+ resolveLinks(item) +}</dd>
</for>
</if>
<if test="member.see.length">
<dt class="heading">See:</dt>
<for each="item" in="member.see">
<dd>{+ new Link().toSymbol(item) +}</dd>
</for>
</if>
</dl>
</if>
<if test="!$member_last"><div class="hr"></div></if>
</li>
</for>
</ul>
</div>
</div>
</if>
<!--
#### EVENT DETAILS
-->
<if test="defined(ownEvents) && ownEvents.length">
<div class="details props">
<div class="innerProps">
<h2 class="sectionTitle">
Event Detail
</h2>
<for each="member" in="ownEvents">
<div class="fixedFont heading" id="event:{+Link.symbolNameToLinkName(member)+}">
<span class='lighter'>
{!
if (member.isPrivate) output += "&lt;private&gt; ";
if (member.isInner) output += "&lt;inner&gt; ";
if (member.isStatic) output += "&lt;static&gt; ";
!}
</span>
<if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
<if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>{+makeSignature(member.params)+}
</div>
<div class="description">
{+resolveLinks(member.desc)+}
<if test="member.srcFile != data.srcFile">
<br />
<i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
</if>
<if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
</div>
<if test="member.example.length">
<for each="example" in="member.example">
<pre class="code">{+example+}</pre>
</for>
</if>
<if test="member.params.length">
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<for each="item" in="member.params">
<dt>
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>{+item.name+}</b>
<if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
</dt>
<dd>{+ resolveLinks(item.desc) +}</dd>
</for>
</dl>
</if>
<if test="member.deprecated || member.since || member.exceptions.length || member.returns.length || member.see.length">
<dl class="detailList nomargin">
<if test="member.deprecated">
<dt class="heading">Deprecated:</dt>
<dt>{+ resolveLinks(member.deprecated) +}</dt>
</if>
<if test="member.since">
<dt class="heading">Since:</dt>
<dd>{+ member.since +}</dd>
</if>
<if test="member.exceptions.length">
<dt class="heading">Throws:</dt>
<for each="item" in="member.exceptions">
<dt>
{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
</dt>
<dd>{+ resolveLinks(item.desc) +}</dd>
</for>
</if>
<if test="member.returns.length">
<dt class="heading">Returns:</dt>
<for each="item" in="member.returns">
<dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
</for>
</if>
<if test="member.requires.length">
<dt class="heading">Requires:</dt>
<for each="item" in="member.requires">
<dd>{+ resolveLinks(item) +}</dd>
</for>
</if>
<if test="member.see.length">
<dt class="heading">See:</dt>
<for each="item" in="member.see">
<dd>{+ new Link().toSymbol(item) +}</dd>
</for>
</if>
</dl>
</if>
<if test="!$member_last"><div class="hr"></div></if>
</for>
</div>
</div>
</if>
</div>
</div>
{+subtemplate("subtemplates/foot.tmpl")+}

View file

@ -1,358 +0,0 @@
/* TABLE OF CONTENTS:
* - Browser reset
* - HTML elements
* - JsDoc styling
*/
/*
* BEGIN BROWSER RESET
*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,p,pre,form,fieldset,input,textarea,p,blockquote,th,td {
margin:0;
padding:0
}
html {
height:100%;
overflow:-moz-scrollbars-vertical;
overflow-x:auto
}
table {
border:0;
border-collapse:collapse;
border-spacing:0
}
fieldset,img {
border:0
}
address,caption,cite,code,dfn,em,strong,th,var {
font-style:normal;
font-weight:normal
}
em,cite {
font-style:italic
}
strong {
font-weight:bold
}
ol,ul {
list-style:none
}
caption,th {
text-align:left
}
h1,h2,h3,h4,h5,h6 {
font-size:100%;
font-weight:normal;
margin:0;
padding:0
}
q:before,q:after {
content:''
}
abbr,acronym {
border:0
}
section,article,header,footer,nav,aside,hgroup {
display:block
}
/*
* END BROWSER RESET
*/
/*
* HTML ELEMENTS
*/
@font-face {
font-family: 'M1m';
src: url('fonts/mplus-1m-regular-webfont.eot');
src: local('☺'), url('fonts/mplus-1m-regular-webfont.woff') format('woff'), url('fonts/mplus-1m-regular-webfont.ttf') format('truetype'), url('fonts/mplus-1m-regular-webfont.svg#webfontVd14f4NN') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'M1m';
src: url('fonts/mplus-1m-bold-webfont.eot');
src: local('☺'), url('fonts/mplus-1m-bold-webfont.woff') format('woff'), url('fonts/mplus-1m-bold-webfont.ttf') format('truetype'), url('fonts/mplus-1m-bold-webfont.svg#webfontIjI5mZqE') format('svg');
font-weight: bold;
font-style: normal;
}
* {
line-height: 1.4em;
}
html {
font-size: 100%;
}
body {
font-size: 0.75em;
padding: 15px 0;
background: #eee;
background-image: -moz-linear-gradient(left, #dddddd, #f9f9f9) fixed;
background-image: -webkit-gradient(linear,left bottom,right bottom,color-stop(0, #dddddd),color-stop(1, #f9f9f9)) fixed;
}
body,
input,
select,
textarea {
color: #000;
font-family: Arial, Geneva, sans-serif;
}
a:link,
a:hover,
a:active,
a:visited {
color: #19199e;
}
a:hover,
a:focus {
color: #00f;
text-decoration: none;
}
p {
margin: 0 0 1.5em 0;
}
/*
* END HTML ELEMENTS
*/
/*
* BEGIN HACK
*/
div.containerMain:after,
div.safeBox:after {
content:"";
display:block;
height:0;
clear:both;
}
/*
* END HACK
*/
/*
* BEGIN JSDOC
*/
/* Start menu */
div.index *.heading1 {
margin-bottom: 0.5em;
border-bottom: 1px solid #999999;
font-family: M1m, Arial, sans-serif;
font-size: 1.6em;
letter-spacing: 1px;
line-height: 1.3em;
}
div.index div.menu {
background-color: #FFFFFF;
}
*+html div.index div.menu {
background-color: #FFFFFF;
}
* html div.index div.menu {
background-color: #FFFFFF;
}
div.index div.menu div {
text-align: left;
}
div.index div.menu a {
text-decoration: none;
}
div.index div.menu a:hover {
text-decoration: underline;
}
div.index ul.classList {
padding-left: 0;
}
div.index ul.classList a {
display: block;
margin: 1px 0;
padding: 4px 0 2px 10px;
text-indent: -10px;
}
div.index div.fineprint {
color: #777;
font-size: 0.9em;
}
div.index div.fineprint a {
color: #777;
}
/* End menu */
/* Start content */
div.content ul {
padding-left: 0;
}
div.content *.classTitle {
font-size: 1.2em;
font-weight: bold;
line-height: 1em;
}
div.content *.classTitle span {
display: block;
font-size: 2em;
letter-spacing: 2px;
line-height: 1em;
padding-top: 5px;
text-shadow: 1px 1px 1px #999999;
word-wrap: break-word;
}
div.content p.summary {
font-size: 1.25em;
}
div.content ul *.classname a,
div.content ul *.filename a {
font-family: Consolas, "Courier New", Courier, monospace;
text-decoration: none;
font-weight: bold;
}
div.content ul *.classname a:hover,
div.content ul *.filename a:hover {
text-decoration: underline;
}
div.content div.props {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
background: #fff;
background: -moz-linear-gradient(top, rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.2)); /* FF3.6 */
background: -webkit-gradient(linear,left top,left bottom,color-stop(0, rgba(255, 255, 255, 0.7)),color-stop(1, rgba(255, 255, 255, 0.2)));
-moz-box-shadow: 0px 0px 10px #ccc;
-webkit-box-shadow: 0px 0px 5px #bbb;
box-shadow: 0px 0px 5px #bbb;
}
*.sectionTitle {
font-family: M1m, sans-serif;
font-size: 1.6em;
letter-spacing: 1px;
}
table.summaryTable td,
table.summaryTable th {
vertical-align: top;
}
table.summaryTable tr:last-child td {
padding-bottom: 0;
}
table.summaryTable th {
font-weight: bold;
}
table.summaryTable td.attributes {
font-family: Consolas, "Courier New", Courier, monospace;
color: #666;
}
table.summaryTable td.nameDescription div.fixedFont {
font-weight: bold;
}
table.summaryTable div.description {
color: #333;
}
dl.detailList dt {
font-weight: bold;
}
dl.inheritsList dd + dt {
margin-top: 10px;
}
dl.inheritsList dd {
display: inline;
}
.fixedFont {
font-family: Consolas, "Courier New", Courier, monospace;
}
.fixedFont.heading {
font-size: 1.25em;
line-height: 1.1em
}
.fixedFont.heading + .description {
font-size: 1.2em;
}
.fixedFont.heading .light,
.fixedFont.heading .lighter {
font-weight: bold;
}
pre.code {
overflow: auto;
font-family: Consolas, "Courier New", Courier, monospace;
background: #eee;
}
/* Start content */
/* Start general styles */
.light {
color: #666;
}
.lighter {
color: #999;
}
span.break {
font-size: 1px;
line-height: 1px;
}
/* End general styles */
/*
* END JSDOC
*/

View file

@ -1,134 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG webfont generated by Font Squirrel.
Foundry URL : http://mplus-fonts.sourceforge.jp
</metadata>
<defs>
<font id="webfontIjI5mZqE" horiz-adv-x="500" >
<font-face units-per-em="1000" ascent="860" descent="-140" />
<missing-glyph horiz-adv-x="500" />
<glyph unicode=" " />
<glyph unicode="!" d="M165 730h170l-20 -495h-130zM170 0v150h160v-150h-160z" />
<glyph unicode="&#x22;" d="M270 780h160l-30 -320h-100zM70 780h160l-30 -320h-100z" />
<glyph unicode="#" d="M20 165v120h62l24 185h-51v120h67l18 140h135l-18 -140h45l18 140h135l-18 -140h43v-120h-59l-24 -185h48v-120h-64l-21 -165h-135l21 165h-45l-21 -165h-135l21 165h-46zM217 285h45l24 185h-45z" />
<glyph unicode="$" d="M357 397q55 -32 76.5 -74t21.5 -108q0 -190 -192 -199v-101h-110v112q-51 16 -88 43v140q38 -35 88 -55v191q-53 33 -75.5 75.5t-22.5 103.5q0 89 50 138.5t142 51.5v100h110v-112q42 -12 78 -33v-135q-32 25 -78 42v-180zM247 445v149q-54 -9 -54 -69q0 -55 54 -80z M263 295v-157q52 13 52 77q0 55 -52 80z" />
<glyph unicode="%" d="M40 310l420 220v-110l-420 -220v110zM160 740q70 0 110 -41t40 -119t-40 -119t-110 -41t-110 41t-40 119t40 119t110 41zM340 310q70 0 110 -41t40 -119t-40 -119t-110 -41t-110 41t-40 119t40 119t110 41zM160 518q38 0 38 62t-38 62t-38 -62t38 -62zM340 88q38 0 38 62 t-38 62t-38 -62t38 -62z" />
<glyph unicode="&#x26;" d="M235 615q-23 0 -36.5 -14.5t-13.5 -40.5q0 -18 7.5 -37.5t33.5 -65.5q35 30 47 52.5t12 50.5q0 26 -13.5 40.5t-36.5 14.5zM118 368q-47 77 -62.5 116t-15.5 76q0 80 51.5 130t138.5 50t141 -50.5t54 -129.5q0 -114 -130 -220l55 -94v2v132h125v-225q-16 -25 -41 -52 l61 -103h-150l-15 24q-66 -34 -130 -34q-88 0 -136.5 45.5t-48.5 134.5q0 99 103 198zM269 124l-77 125q-27 -37 -27 -74q0 -60 65 -60q20 0 39 9z" />
<glyph unicode="'" d="M160 780h180l-35 -320h-110z" />
<glyph unicode="(" d="M100 300q0 136 50 256.5t144 213.5h126q-196 -194 -196 -470t196 -470h-126q-94 93 -144 213.5t-50 256.5z" />
<glyph unicode=")" d="M400 300q0 -136 -50 -256.5t-144 -213.5h-126q196 194 196 470t-196 470h126q94 -93 144 -213.5t50 -256.5z" />
<glyph unicode="*" d="M193 750h114l-4 -144l136 48l35 -109l-138 -40l88 -115l-93 -67l-81 119l-81 -119l-93 67l88 115l-138 40l35 109l136 -48z" />
<glyph unicode="+" d="M315 545v-195h135v-110h-135v-195h-130v195h-135v110h135v195h130z" />
<glyph unicode="," d="M180 190h190l-130 -320h-120z" />
<glyph unicode="-" d="M90 240v110h320v-110h-320z" />
<glyph unicode="." d="M155 0v190h190v-190h-190z" />
<glyph unicode="/" d="M465 730l-310 -770h-120l310 770h120z" />
<glyph unicode="0" d="M250 740q73 0 117.5 -32.5t68.5 -116t24 -226.5t-24 -226.5t-68.5 -116t-117.5 -32.5t-117.5 32.5t-68.5 116t-24 226.5t24 226.5t68.5 116t117.5 32.5zM171 317l142 248q-9 34 -24.5 47t-38.5 13q-28 0 -44.5 -19.5t-26 -77.5t-9.5 -163q0 -33 1 -48zM183 179 q9 -41 25.5 -57.5t41.5 -16.5q28 0 44.5 19.5t26 77.5t9.5 163q0 47 -1 67z" />
<glyph unicode="1" d="M240 592l-2 1l-173 -91v128l175 100h140v-730h-140v592z" />
<glyph unicode="2" d="M220 122v-2h220v-120h-380v120q127 141 181 237t54 173q0 43 -21 66.5t-59 23.5q-31 0 -74 -22t-81 -58v130q78 70 185 70q90 0 140 -51t50 -149q0 -180 -215 -418z" />
<glyph unicode="3" d="M290 608v2h-230v120h385v-120l-170 -178v-2h10q79 0 122 -51.5t43 -153.5q0 -121 -54 -178t-166 -57q-51 0 -81.5 6.5t-78.5 28.5v130q80 -45 150 -45q46 0 68 27t22 88q0 58 -26 76.5t-114 18.5h-40v120z" />
<glyph unicode="4" d="M400 150v-150h-135v150h-245v120l230 460h150v-460h80v-120h-80zM265 270v255h-2l-127 -253v-2h129z" />
<glyph unicode="5" d="M202 455q36 19 82 19q161 0 161 -239q0 -245 -230 -245q-76 0 -150 35v130q80 -45 140 -45q51 0 75.5 29t24.5 96t-14.5 93t-46.5 26q-34 0 -64 -34h-110l10 410h345v-120h-220l-5 -155h2z" />
<glyph unicode="6" d="M295 625q-54 0 -76.5 -34.5t-28.5 -135.5h2q45 35 98 35q92 0 133.5 -54.5t41.5 -185.5q0 -141 -51 -200.5t-159 -59.5q-75 0 -119 28.5t-67.5 101t-23.5 200.5q0 162 25 254t75 129t135 37q66 0 135 -20v-125q-57 30 -120 30zM255 107q39 0 55.5 29.5t16.5 113.5 q0 79 -14 104.5t-53 25.5q-38 0 -56.5 -29.5t-18.5 -100.5q0 -81 17 -112t53 -31z" />
<glyph unicode="7" d="M55 730h390v-120q-113 -273 -200 -610h-146q92 325 216 608v2h-260v120z" />
<glyph unicode="8" d="M258 625q-41 0 -59.5 -20.5t-18.5 -64.5q0 -74 75 -105q33 16 51.5 43.5t18.5 61.5q0 40 -18 62.5t-49 22.5zM250 -10q-105 0 -162.5 52t-57.5 148q0 116 105 179v2q-42 31 -66 80t-24 104q0 87 53.5 136t151.5 49t151.5 -48.5t53.5 -136.5q0 -98 -100 -164v-2 q115 -62 115 -199q0 -96 -58 -148t-162 -52zM242 105q93 0 93 100q0 75 -103 115q-33 -17 -52.5 -48.5t-19.5 -66.5q0 -48 22.5 -74t59.5 -26z" />
<glyph unicode="9" d="M205 110q55 0 77 32.5t28 132.5h-2q-45 -35 -98 -35q-89 0 -132 57.5t-43 192.5q0 131 51 190.5t159 59.5q79 0 123 -27.5t65.5 -99.5t21.5 -203q0 -162 -25 -254t-75 -129t-135 -37q-66 0 -135 20v130q57 -30 120 -30zM245 623q-39 0 -55.5 -28t-16.5 -105 q0 -83 15.5 -111.5t51.5 -28.5q75 0 75 140q0 73 -17 103t-53 30z" />
<glyph unicode=":" d="M160 390v190h180v-190h-180zM160 0v190h180v-190h-180z" />
<glyph unicode=";" d="M170 190h190l-130 -320h-120zM170 390v190h180v-190h-180z" />
<glyph unicode="&#x3c;" d="M445 470l-320 -174v-2l320 -174v-120l-400 225v140l400 225v-120z" />
<glyph unicode="=" d="M50 125v110h400v-110h-400zM50 362v103h400v-103h-400z" />
<glyph unicode="&#x3e;" d="M55 470v120l400 -225v-140l-400 -225v120l320 174v2z" />
<glyph unicode="?" d="M460 575q0 -36 -12.5 -69t-25 -51t-38.5 -49q-25 -30 -38 -48.5t-27.5 -52.5t-18.5 -70h-130q0 49 17 94.5t32 66.5t44 57q21 25 30.5 38t19 33.5t9.5 40.5q0 58 -82 58t-180 -53v130q95 40 200 40q95 0 147.5 -44t52.5 -121zM155 0v150h160v-150h-160z" />
<glyph unicode="@" d="M285 635q-72 0 -108.5 -62.5t-36.5 -207.5q0 -265 160 -265q58 0 125 30v-115q-70 -25 -150 -25q-260 0 -260 375q0 194 64 284.5t191 90.5q99 0 152 -51.5t53 -148.5v-325q-28 -28 -76 -46.5t-94 -18.5q-69 0 -102 49t-33 166q0 114 31.5 164.5t93.5 50.5q36 0 68 -25h2 v15q0 26 -23.5 45.5t-56.5 19.5zM290 365q0 -72 8 -93.5t29 -21.5q20 0 28 18v147q0 41 -6 53t-25 12t-26.5 -22t-7.5 -93z" />
<glyph unicode="A" d="M249 620h-2l-55 -335h112zM323 170h-150l-28 -170h-140l165 730h160l165 -730h-144z" />
<glyph unicode="B" d="M190 445h15q59 0 85 20.5t26 64.5q0 49 -23 71t-73 22q-17 0 -30 -5v-173zM190 330v-218q20 -5 45 -5q51 0 75 27.5t24 90.5q0 57 -25.5 81t-88.5 24h-30zM470 210q0 -220 -240 -220q-93 0 -180 15v720q92 15 190 15q210 0 210 -185q0 -62 -32 -105t-83 -54v-2 q57 -10 96 -61.5t39 -122.5z" />
<glyph unicode="C" d="M30 365q0 195 64.5 285t190.5 90q80 0 150 -25v-115q-70 25 -125 25q-74 0 -109.5 -58.5t-35.5 -201.5q0 -260 150 -260q57 0 125 30v-120q-70 -25 -150 -25q-260 0 -260 375z" />
<glyph unicode="D" d="M344 365q0 142 -30 198.5t-94 56.5q-23 0 -40 -5v-500q17 -5 40 -5q63 0 93.5 55.5t30.5 199.5zM480 365q0 -144 -28.5 -226.5t-83.5 -115.5t-148 -33q-92 0 -180 15v720q88 15 180 15q141 0 200.5 -82t59.5 -293z" />
<glyph unicode="E" d="M210 610v-165h220v-115h-220v-210h230v-120h-370v730h370v-120h-230z" />
<glyph unicode="F" d="M220 330v-330h-140v730h360v-120h-220v-165h210v-115h-210z" />
<glyph unicode="G" d="M310 625q-82 0 -116 -55t-34 -205q0 -143 32 -201.5t93 -58.5q27 0 48 10v215h-98v115h230v-415q-83 -40 -180 -40q-260 0 -260 375q0 196 69.5 285.5t215.5 89.5q70 0 130 -25v-115q-72 25 -130 25z" />
<glyph unicode="H" d="M318 330h-140v-330h-138v730h138v-280h140v280h142v-730h-142v330z" />
<glyph unicode="I" d="M430 0h-360v115h108v500h-108v115h360v-115h-108v-500h108v-115z" />
<glyph unicode="J" d="M410 730v-515q0 -126 -48.5 -175.5t-166.5 -49.5q-86 0 -155 30v130q29 -18 68 -30t67 -12q50 0 71 26.5t21 95.5v385h-147v115h290z" />
<glyph unicode="K" d="M192 330h-2v-330h-140v730h140v-300h2l135 300h148l-160 -345l165 -385h-150z" />
<glyph unicode="L" d="M230 730v-610h210v-120h-350v730h140z" />
<glyph unicode="M" d="M338 500h-2l-38 -300h-100l-38 300h-2v-500h-133v730h167l59 -400h2l59 400h163v-730h-137v500z" />
<glyph unicode="N" d="M187 460h-2v-460h-140v730h147l125 -460h2v460h136v-730h-143z" />
<glyph unicode="O" d="M250 740q121 0 175.5 -84t54.5 -291t-54.5 -291t-175.5 -84t-175.5 84t-54.5 291t54.5 291t175.5 84zM250 108q52 0 75 53.5t23 203.5t-23 203.5t-75 53.5t-75 -53.5t-23 -203.5t23 -203.5t75 -53.5z" />
<glyph unicode="P" d="M334 503q0 120 -104 120q-23 0 -40 -5v-235q18 -5 40 -5q53 0 78.5 28t25.5 97zM470 503q0 -127 -57 -184.5t-173 -57.5q-26 0 -50 5v-266h-140v725q90 15 185 15q122 0 178.5 -56t56.5 -181z" />
<glyph unicode="Q" d="M250 740q121 0 175.5 -84t54.5 -291q0 -257 -92 -333v-2q39 -22 68.5 -74t33.5 -106h-145q-15 81 -36.5 110.5t-58.5 29.5q-121 0 -175.5 84t-54.5 291t54.5 291t175.5 84zM250 108q52 0 75 53.5t23 203.5t-23 203.5t-75 53.5t-75 -53.5t-23 -203.5t23 -203.5t75 -53.5z " />
<glyph unicode="R" d="M465 513q0 -151 -98 -199l-1 -2q27 -19 58 -118l61 -194h-145l-57 204q-12 43 -25.5 57.5t-42.5 14.5h-30v-276h-140v725q90 15 185 15q124 0 179.5 -53.5t55.5 -173.5zM185 393h30q64 0 89 24.5t25 95.5q0 58 -25.5 84t-78.5 26q-23 0 -40 -5v-225z" />
<glyph unicode="S" d="M440 575q-84 48 -165 48q-41 0 -65 -21t-24 -57q0 -71 69 -100q116 -48 160.5 -103t44.5 -142q0 -210 -225 -210q-100 0 -180 50v135q83 -68 173 -68q94 0 94 88q0 76 -77 110q-108 46 -151.5 99.5t-43.5 135.5q0 90 57 145t153 55q102 0 180 -35v-130z" />
<glyph unicode="T" d="M320 615v-615h-140v615h-145v115h430v-115h-145z" />
<glyph unicode="U" d="M250 -10q-112 0 -161 54t-49 186v500h142v-460q0 -101 14.5 -131.5t55.5 -30.5t55.5 30.5t14.5 131.5v460h138v-500q0 -132 -49 -186t-161 -54z" />
<glyph unicode="V" d="M253 110l92 620h140l-155 -730h-160l-155 730h144l92 -620h2z" />
<glyph unicode="W" d="M164 190h2l38 440h100l38 -440h2l15 540h126l-45 -730h-157l-34 420h-2l-34 -420h-153l-45 730h134z" />
<glyph unicode="X" d="M251 470h2l74 260h145l-132 -360l135 -370h-152l-74 270h-2l-74 -270h-148l135 370l-132 360h149z" />
<glyph unicode="Y" d="M251 415h2l84 315h148l-165 -455v-275h-140v275l-165 455h152z" />
<glyph unicode="Z" d="M290 613v2h-235v115h390v-115l-235 -498v-2h235v-115h-390v115z" />
<glyph unicode="[" d="M410 675h-170v-750h170v-95h-290v940h290v-95z" />
<glyph unicode="\" d="M35 730h120l310 -770h-120z" />
<glyph unicode="]" d="M90 675v95h290v-940h-290v95h170v750h-170z" />
<glyph unicode="^" d="M251 655h-2l-111 -375h-123l145 450h180l145 -450h-123z" />
<glyph unicode="_" d="M40 -170v88h420v-88h-420z" />
<glyph unicode="`" d="M90 810h190l100 -320h-120z" />
<glyph unicode="a" d="M65 495q39 14 95 24.5t90 10.5q111 0 155.5 -45t44.5 -160v-325h-127l-2 65h-2q-49 -75 -134 -75q-68 0 -106.5 42t-38.5 118q0 88 63.5 136.5t186.5 48.5h25v10q0 40 -16 56.5t-54 16.5q-32 0 -86.5 -11.5t-93.5 -26.5v115zM315 245h-25q-59 0 -89.5 -23t-30.5 -62 q0 -31 15 -48t40 -17q90 0 90 130v20z" />
<glyph unicode="b" d="M45 730h137v-275h2q49 75 116 75q83 0 129 -66.5t46 -203.5q0 -133 -47.5 -201.5t-127.5 -68.5q-35 0 -62.5 17.5t-56.5 62.5h-2l-2 -70h-132v730zM338 260q0 150 -78 150q-80 0 -80 -145v-10q0 -145 80 -145q35 0 56.5 36.5t21.5 113.5z" />
<glyph unicode="c" d="M305 420q-115 0 -115 -160q0 -163 120 -163q60 0 120 28v-110q-68 -25 -140 -25q-116 0 -178 67.5t-62 202.5t60 202.5t175 67.5q67 0 135 -25v-110q-61 25 -115 25z" />
<glyph unicode="d" d="M455 0h-132l-2 70h-2q-29 -45 -56.5 -62.5t-62.5 -17.5q-80 0 -127.5 68.5t-47.5 201.5q0 137 46 203.5t129 66.5q67 0 116 -75h2v275h137v-730zM162 260q0 -77 21.5 -113.5t56.5 -36.5q80 0 80 145v10q0 145 -80 145q-78 0 -78 -150z" />
<glyph unicode="e" d="M182 206q7 -62 33 -85.5t80 -23.5q52 0 135 28v-110q-84 -25 -155 -25q-112 0 -173.5 68t-61.5 202q0 270 220 270q200 0 200 -270q0 -31 -2 -54h-276zM181 310h142q-1 63 -15.5 88t-47.5 25q-41 0 -58 -23t-21 -90z" />
<glyph unicode="f" d="M60 391v109h100v45q0 104 40.5 149.5t129.5 45.5q56 0 110 -15v-110q-36 16 -80 16q-37 0 -50 -20.5t-13 -85.5v-25h143v-109h-143v-391h-137v391h-100z" />
<glyph unicode="g" d="M323 75h-2q-45 -75 -116 -75q-78 0 -126.5 66.5t-48.5 193.5q0 137 46 203.5t129 66.5q35 0 62.5 -17.5t56.5 -62.5h2l2 70h132v-505q0 -245 -240 -245q-81 0 -150 25v115q76 -33 145 -33q55 0 81.5 34t26.5 114v50zM167 260q0 -70 22 -105t56 -35q80 0 80 135v10 q0 145 -80 145q-78 0 -78 -150z" />
<glyph unicode="h" d="M50 730h137v-275h2q47 75 126 75t112 -47.5t33 -172.5v-310h-135v290q0 74 -12.5 98t-47.5 24t-56.5 -43.5t-21.5 -131.5v-237h-137v730z" />
<glyph unicode="i" d="M110 520h240v-413h100v-107h-370v107h130v306h-100v107zM190 630v130h160v-130h-160z" />
<glyph unicode="j" d="M225 -20v433h-110v107h250v-540q0 -68 -10.5 -106t-44 -63t-87.5 -33t-148 -8v109q39 0 60.5 0.5t41 5t27 9.5t13.5 18t7 27.5t1 40.5zM205 630v130h160v-130h-160z" />
<glyph unicode="k" d="M480 520l-185 -250l185 -270h-162l-131 224v-224h-137v730h137v-418l133 208h160z" />
<glyph unicode="l" d="M310 190q0 -68 9 -80.5t56 -12.5q31 0 75 6v-108q-44 -5 -100 -5q-111 0 -145.5 32.5t-34.5 137.5v463h-120v107h260v-540z" />
<glyph unicode="m" d="M360 0v340q0 40 -21 40q-8 0 -12.5 -5t-7 -22.5t-2.5 -52.5v-300h-130v340q0 40 -21 40q-8 0 -12.5 -5t-7 -22.5t-2.5 -52.5v-300h-134v520h120l2 -65h2q15 34 39.5 54.5t48.5 20.5q28 0 45 -16t32 -59h2q42 75 99 75q48 0 69 -36t21 -134v-360h-130z" />
<glyph unicode="n" d="M50 520h132l2 -70h2q49 80 129 80q79 0 112 -47.5t33 -172.5v-310h-135v290q0 74 -12.5 98t-47.5 24t-56.5 -43.5t-21.5 -131.5v-237h-137v520z" />
<glyph unicode="o" d="M250 530q220 0 220 -270t-220 -270t-220 270t220 270zM250 97q44 0 62 33.5t18 129.5t-18 129.5t-62 33.5t-62 -33.5t-18 -129.5t18 -129.5t62 -33.5z" />
<glyph unicode="p" d="M179 70h-2v-290h-137v740h132l2 -70h2q29 45 56.5 62.5t62.5 17.5q83 0 129 -66.5t46 -203.5q0 -133 -47.5 -201.5t-127.5 -68.5q-71 0 -116 80zM333 260q0 150 -78 150q-80 0 -80 -145v-10q0 -145 80 -145q35 0 56.5 36.5t21.5 113.5z" />
<glyph unicode="q" d="M321 70q-45 -80 -116 -80q-80 0 -127.5 68.5t-47.5 201.5q0 137 46 203.5t129 66.5q35 0 62.5 -17.5t56.5 -62.5h2l2 70h132v-740h-137v290h-2zM167 260q0 -77 21.5 -113.5t56.5 -36.5q80 0 80 145v10q0 145 -80 145q-78 0 -78 -150z" />
<glyph unicode="r" d="M375 416q-69 0 -111 -52t-42 -144v-220h-137v520h135v-85h2q36 53 70.5 74t82.5 21q36 0 70 -10v-115q-36 11 -70 11z" />
<glyph unicode="s" d="M265 418q-73 0 -73 -43q0 -22 14.5 -35t48.5 -20q109 -21 149.5 -60t40.5 -115q0 -74 -50.5 -114.5t-144.5 -40.5q-107 0 -190 35v120q87 -43 165 -43q45 0 64 11.5t19 36.5q0 22 -14 34t-54 21q-99 21 -142 62.5t-43 112.5t49 110.5t146 39.5q99 0 180 -30v-115 q-87 33 -165 33z" />
<glyph unicode="t" d="M445 500v-109h-158v-201q0 -61 10.5 -74.5t57.5 -13.5q43 0 80 17v-114q-50 -15 -110 -15q-98 0 -136.5 36.5t-38.5 133.5v231h-105v109h105v190h137v-190h158z" />
<glyph unicode="u" d="M445 0h-132l-2 70h-2q-50 -80 -124 -80q-77 0 -108.5 44.5t-31.5 165.5v320h135v-300q0 -70 11 -91t44 -21q73 0 73 175v237h137v-520z" />
<glyph unicode="v" d="M251 90h2l79 430h138l-130 -520h-180l-130 520h142z" />
<glyph unicode="w" d="M343 120h2l29 400h116l-70 -520h-137l-37 358h-2l-31 -358h-133l-70 520h124l29 -400h2l39 400h100z" />
<glyph unicode="x" d="M251 335h2l69 185h143l-125 -260l125 -260h-152l-64 180h-2l-64 -180h-148l125 260l-125 260h147z" />
<glyph unicode="y" d="M254 170h2l87 350h142l-237 -740h-138l85 230l-170 510h142z" />
<glyph unicode="z" d="M275 411h-210v109h370v-109l-210 -300v-2h210v-109h-370v109l210 300v2z" />
<glyph unicode="{" d="M187 301v-2q58 -24 85.5 -62t27.5 -100v-112q0 -73 12 -86.5t75 -13.5h53v-95h-107q-80 0 -116.5 37t-36.5 123v147q0 61 -22 88t-68 27h-40v96h40q46 0 68 27t22 88v147q0 86 36.5 123t116.5 37h107v-95h-53q-63 0 -75 -13.5t-12 -86.5v-112q0 -62 -27.5 -100t-85.5 -62 z" />
<glyph unicode="|" d="M188 -220v1030h124v-1030h-124z" />
<glyph unicode="}" d="M313 301q-58 24 -85.5 62t-27.5 100v112q0 73 -12 86.5t-75 13.5h-53v95h107q80 0 116.5 -37t36.5 -123v-147q0 -61 22 -88t68 -27h40v-96h-40q-46 0 -68 -27t-22 -88v-147q0 -86 -36.5 -123t-116.5 -37h-107v95h53q63 0 75 13.5t12 86.5v112q0 62 27.5 100t85.5 62v2z " />
<glyph unicode="~" d="M40 568v107q45 35 100 35q63 0 131 -50q49 -37 84 -37q49 0 105 51v-107q-45 -35 -100 -35q-63 0 -131 50q-49 37 -84 37q-49 0 -105 -51z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa5;" d="M251 415h2l84 315h148l-132 -365h97v-95h-130v-65h130v-95h-130v-110h-140v110h-130v95h130v65h-130v95h97l-132 365h152z" />
<glyph unicode="&#xad;" d="M90 240v110h320v-110h-320z" />
<glyph unicode="&#x2000;" horiz-adv-x="407" />
<glyph unicode="&#x2001;" horiz-adv-x="815" />
<glyph unicode="&#x2002;" horiz-adv-x="407" />
<glyph unicode="&#x2003;" horiz-adv-x="815" />
<glyph unicode="&#x2004;" horiz-adv-x="271" />
<glyph unicode="&#x2005;" horiz-adv-x="203" />
<glyph unicode="&#x2006;" horiz-adv-x="135" />
<glyph unicode="&#x2007;" horiz-adv-x="135" />
<glyph unicode="&#x2008;" horiz-adv-x="101" />
<glyph unicode="&#x2009;" horiz-adv-x="163" />
<glyph unicode="&#x200a;" horiz-adv-x="45" />
<glyph unicode="&#x2010;" d="M90 240v110h320v-110h-320z" />
<glyph unicode="&#x2011;" d="M90 240v110h320v-110h-320z" />
<glyph unicode="&#x2013;" d="M50 240v110h400v-110h-400z" />
<glyph unicode="&#x2014;" d="M10 240v110h480v-110h-480z" />
<glyph unicode="&#x2018;" d="M305 460h-190l130 320h120z" />
<glyph unicode="&#x2019;" d="M190 780h190l-130 -320h-120z" />
<glyph unicode="&#x201c;" d="M405 460h-170l130 320h100zM195 460h-170l130 320h100z" />
<glyph unicode="&#x201d;" d="M300 780h170l-130 -320h-100zM90 780h170l-130 -320h-100z" />
<glyph unicode="&#x2026;" horiz-adv-x="1000" d="M72 270v190h190v-190h-190zM405 270v190h190v-190h-190zM738 270v190h190v-190h-190z" />
<glyph unicode="&#x202f;" horiz-adv-x="163" />
<glyph unicode="&#x205f;" horiz-adv-x="203" />
<glyph unicode="&#x2122;" horiz-adv-x="1000" d="M838 500h-2l-38 -300h-100l-38 300h-2v-500h-133v730h167l59 -400h2l59 400h163v-730h-137v500zM320 615v-615h-140v615h-145v115h430v-115h-145z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 17 KiB

View file

@ -1,134 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
This is a custom SVG webfont generated by Font Squirrel.
Foundry URL : http://mplus-fonts.sourceforge.jp
</metadata>
<defs>
<font id="webfontVd14f4NN" horiz-adv-x="500" >
<font-face units-per-em="1000" ascent="860" descent="-140" />
<missing-glyph horiz-adv-x="500" />
<glyph unicode=" " />
<glyph unicode="!" d="M200 730h100l-10 -515h-80zM195 0v130h110v-130h-110z" />
<glyph unicode="&#x22;" d="M275 780h100l-20 -280h-60zM125 780h100l-20 -280h-60z" />
<glyph unicode="#" d="M40 188v72h77l29 228h-71v72h80l21 170h82l-21 -170h76l21 170h82l-21 -170h65v-72h-74l-29 -228h68v-72h-77l-23 -188h-82l23 188h-76l-23 -188h-82l23 188h-68zM199 260h76l29 228h-76z" />
<glyph unicode="$" d="M293 311v-214q58 21 58 108q0 71 -58 106zM293 19v-104h-76v101q-70 6 -137 49v95q65 -57 137 -69v251q-77 31 -109.5 75.5t-32.5 117.5q0 76 37 122.5t105 55.5v102h76v-102q69 -8 127 -38v-90q-52 38 -127 52v-237q77 -31 109.5 -76.5t32.5 -118.5q0 -163 -142 -186z M217 429v207q-58 -18 -58 -101q0 -73 58 -106z" />
<glyph unicode="%" d="M60 260l380 290v-80l-380 -290v80zM160 740q61 0 95.5 -41t34.5 -119t-34.5 -119t-95.5 -41t-95.5 41t-34.5 119t34.5 119t95.5 41zM340 310q61 0 95.5 -41t34.5 -119t-34.5 -119t-95.5 -41t-95.5 41t-34.5 119t34.5 119t95.5 41zM160 488q52 0 52 92t-52 92t-52 -92 t52 -92zM340 58q52 0 52 92t-52 92t-52 -92t52 -92z" />
<glyph unicode="&#x26;" d="M228 665q-38 0 -60.5 -20t-22.5 -55q0 -29 12.5 -59t53.5 -95q59 51 79 83.5t20 70.5q0 33 -22 54t-60 21zM151 385l-9 14q-47 71 -63.5 111.5t-16.5 79.5q0 66 45 108t118 42t119 -42t46 -108q0 -57 -30.5 -106.5t-106.5 -112.5l119 -183v217h80v-253q-13 -28 -26 -46 l69 -106h-87l-33 49q-69 -59 -175 -59q-82 0 -128.5 46t-46.5 129q0 107 126 220zM331 115l-137 206q-84 -79 -84 -153q0 -51 27 -77t78 -26q70 0 116 50z" />
<glyph unicode="'" d="M195 780h110l-25 -280h-60z" />
<glyph unicode="(" d="M125 315q0 275 194 455h76q-196 -184 -196 -455t196 -455h-76q-194 180 -194 455z" />
<glyph unicode=")" d="M375 315q0 -275 -194 -455h-76q196 184 196 455t-196 455h76q194 -180 194 -455z" />
<glyph unicode="*" d="M214 750h72l-3 -169l160 55l22 -68l-161 -50l101 -135l-58 -42l-97 138l-97 -138l-58 42l101 135l-161 50l22 68l160 -55z" />
<glyph unicode="+" d="M291 555v-214h149v-72h-149v-214h-82v214h-149v72h149v214h82z" />
<glyph unicode="," d="M210 150h120l-110 -280h-70z" />
<glyph unicode="-" d="M100 269v72h300v-72h-300z" />
<glyph unicode="." d="M185 0v150h130v-150h-130z" />
<glyph unicode="/" d="M452 730l-332 -770h-72l332 770h72z" />
<glyph unicode="0" d="M250 740q48 0 82 -18t59 -60t37 -115.5t12 -181.5t-12 -181.5t-37 -115.5t-59 -60t-82 -18t-82 18t-59 60t-37 115.5t-12 181.5t12 181.5t37 115.5t59 60t82 18zM142 249l196 339q-26 82 -88 82q-36 0 -60 -26t-38 -95t-14 -184q0 -50 4 -116zM158 155q26 -95 92 -95 q36 0 60 26t38 95t14 184q0 78 -6 133z" />
<glyph unicode="1" d="M258 0v645l-2 1l-173 -101v80l175 105h82v-730h-82z" />
<glyph unicode="2" d="M175 74v-2h245v-72h-340v72q251 288 251 478q0 116 -93 116q-30 0 -76 -22.5t-82 -55.5v87q75 65 170 65q85 0 125 -47t40 -143q0 -99 -54 -208t-186 -268z" />
<glyph unicode="3" d="M330 656v2h-250v72h345v-72l-180 -229v-2h10q91 0 133 -51t42 -166q0 -220 -195 -220q-73 0 -145 30v87q77 -43 130 -43q64 0 95 34.5t31 111.5q0 89 -25 117t-101 28h-70v72z" />
<glyph unicode="4" d="M293 590h-2l-175 -341v-2h177v343zM293 175h-253v82l243 473h92v-483h85v-72h-85v-175h-82v175z" />
<glyph unicode="5" d="M180 430h2q33 30 88 30q160 0 160 -230q0 -125 -49.5 -182.5t-145.5 -57.5q-74 0 -145 30v87q75 -43 140 -43q116 0 116 166q0 156 -96 156q-46 0 -80 -41h-75l10 385h305v-72h-223z" />
<glyph unicode="6" d="M285 740q61 0 115 -20v-77q-50 25 -105 25q-70 0 -101 -48.5t-39 -184.5h2q50 50 113 50q87 0 128.5 -56t41.5 -184q0 -134 -46.5 -194.5t-138.5 -60.5q-65 0 -104 28.5t-60 101.5t-21 200q0 158 25.5 252t71 131t118.5 37zM255 62q54 0 78.5 39t24.5 144q0 94 -23.5 132 t-74.5 38q-106 0 -106 -160q0 -107 25 -150t76 -43z" />
<glyph unicode="7" d="M345 656v2h-270v72h350v-72q-128 -296 -210 -658h-88q84 353 218 656z" />
<glyph unicode="8" d="M255 670q-53 0 -81.5 -27.5t-28.5 -77.5q0 -54 29 -94t76 -51q52 14 80.5 51.5t28.5 93.5q0 47 -28.5 76t-75.5 29zM250 -10q-96 0 -148 51t-52 149q0 68 33 119t92 75v2q-48 23 -79 73.5t-31 105.5q0 82 49 128.5t136 46.5t136 -47t49 -128q0 -56 -30.5 -103.5 t-79.5 -70.5v-2q59 -23 92 -75t33 -124q0 -98 -52 -149t-148 -51zM255 60q53 0 84 33.5t31 96.5q0 130 -125 160q-61 -16 -90 -54.5t-29 -105.5q0 -62 35 -96t94 -34z" />
<glyph unicode="9" d="M215 -10q-61 0 -115 20v80q52 -26 105 -26q70 0 101 47.5t39 183.5h-2q-50 -50 -113 -50q-84 0 -127 59t-43 191q0 126 46 185.5t139 59.5q68 0 107 -28t58.5 -100.5t19.5 -201.5q0 -158 -25.5 -252t-71 -131t-118.5 -37zM245 668q-55 0 -79 -38t-24 -135t25 -138.5 t73 -41.5q49 0 77.5 41.5t28.5 128.5q0 100 -25 141.5t-76 41.5z" />
<glyph unicode=":" d="M190 390v150h120v-150h-120zM190 0v150h120v-150h-120z" />
<glyph unicode=";" d="M200 150h120l-110 -280h-70zM200 390v150h120v-150h-120z" />
<glyph unicode="&#x3c;" d="M435 510l-330 -204v-2l330 -204v-80l-380 245v80l380 245v-80z" />
<glyph unicode="=" d="M60 165v72h380v-72h-380zM60 373v72h380v-72h-380z" />
<glyph unicode="&#x3e;" d="M65 510v80l380 -245v-80l-380 -245v80l330 204v2z" />
<glyph unicode="?" d="M445 580q0 -41 -14 -77t-28.5 -55t-42.5 -49q-29 -33 -43 -52t-28 -55t-14 -77h-80q0 55 16.5 101.5t32.5 68t47 56.5q24 27 36 42.5t23 41.5t11 55q0 41 -29.5 63.5t-86.5 22.5q-85 0 -180 -61v90q93 45 190 45q91 0 140.5 -42t49.5 -118zM180 0v130h110v-130h-110z" />
<glyph unicode="@" d="M375 258v167q0 41 -16 63t-44 22q-40 0 -56 -29.5t-16 -115.5q0 -82 17 -113.5t55 -31.5q44 0 60 38zM165 365q0 215 140 215q38 0 73 -25h2v5q0 50 -27.5 79t-72.5 29q-83 0 -124 -70.5t-41 -232.5q0 -166 40 -234.5t125 -68.5q62 0 125 38v-80q-59 -30 -130 -30 q-122 0 -181 86t-59 289q0 197 60.5 286t179.5 89q87 0 133.5 -50t46.5 -150v-325q-65 -65 -140 -65q-76 0 -113 49t-37 166z" />
<glyph unicode="A" d="M249 660h-2l-83 -380h168zM348 210h-200l-46 -210h-82l180 730h100l180 -730h-86z" />
<glyph unicode="B" d="M157 430h45q80 0 116.5 29.5t36.5 90.5q0 57 -36 88.5t-102 31.5q-36 0 -60 -8v-232zM157 360v-292q37 -8 90 -8q126 0 126 160q0 140 -161 140h-55zM455 210q0 -220 -225 -220q-80 0 -155 15v720q75 15 155 15q205 0 205 -180q0 -61 -30.5 -103t-84.5 -56v-2 q58 -11 96.5 -64t38.5 -125z" />
<glyph unicode="C" d="M55 365q0 197 60.5 286t179.5 89q66 0 125 -30v-75q-60 33 -120 33q-165 0 -165 -303q0 -164 42 -233.5t123 -69.5q62 0 125 38v-80q-59 -30 -130 -30q-122 0 -181 86t-59 289z" />
<glyph unicode="D" d="M383 365q0 168 -43.5 235.5t-137.5 67.5q-33 0 -55 -8v-590q22 -8 55 -8q65 0 102.5 24.5t58 91.5t20.5 187zM465 365q0 -207 -63.5 -291t-199.5 -84q-70 0 -137 15v720q67 15 137 15q137 0 200 -85.5t63 -289.5z" />
<glyph unicode="E" d="M162 658v-228h248v-70h-248v-288h258v-72h-340v730h340v-72h-258z" />
<glyph unicode="F" d="M172 360v-360h-82v730h330v-72h-248v-228h238v-70h-238z" />
<glyph unicode="G" d="M370 85v275h-155v70h235v-400q-80 -40 -170 -40q-118 0 -179 89t-61 286q0 196 63.5 285.5t191.5 89.5q59 0 130 -25v-77q-66 30 -130 30q-87 0 -132 -72t-45 -231q0 -303 167 -303q45 0 85 23z" />
<glyph unicode="H" d="M140 730v-298h216v298h84v-730h-84v360h-216v-360h-80v730h80z" />
<glyph unicode="I" d="M410 0h-320v70h118v590h-118v70h320v-70h-118v-590h118v-70z" />
<glyph unicode="J" d="M400 730v-540q0 -110 -43.5 -155t-146.5 -45q-82 0 -150 30v87q29 -17 75.5 -31t74.5 -14q53 0 79 30.5t26 99.5v468h-165v70h250z" />
<glyph unicode="K" d="M157 400h2l206 330h95l-225 -350l230 -380h-95l-211 360h-2v-360h-82v730h82v-330z" />
<glyph unicode="L" d="M182 730v-658h238v-72h-320v730h82z" />
<glyph unicode="M" d="M378 540h-2l-88 -340h-80l-88 340h-2v-540h-78v730h92l119 -450h2l119 450h88v-730h-82v540z" />
<glyph unicode="N" d="M151 550h-2v-550h-84v730h84l204 -550h2v550h80v-730h-80z" />
<glyph unicode="O" d="M250 740q107 0 158.5 -84.5t51.5 -290.5t-51.5 -290.5t-158.5 -84.5t-158.5 84.5t-51.5 290.5t51.5 290.5t158.5 84.5zM250 62q44 0 71 25.5t43 93.5t16 184t-16 184t-43 93.5t-71 25.5t-71 -25.5t-43 -93.5t-16 -184t16 -184t43 -93.5t71 -25.5z" />
<glyph unicode="P" d="M375 520q0 79 -36 114.5t-112 35.5q-41 0 -70 -8v-292q30 -5 70 -5q77 0 112.5 35.5t35.5 119.5zM455 520q0 -120 -52.5 -172.5t-165.5 -52.5q-35 0 -80 5v-300h-82v725q78 15 160 15q114 0 167 -52.5t53 -167.5z" />
<glyph unicode="Q" d="M250 740q107 0 158.5 -84.5t51.5 -290.5q0 -273 -100 -344v-2q41 -21 73 -66t47 -103h-88q-21 78 -54 109t-88 31q-107 0 -158.5 84.5t-51.5 290.5t51.5 290.5t158.5 84.5zM250 62q44 0 71 25.5t43 93.5t16 184t-16 184t-43 93.5t-71 25.5t-71 -25.5t-43 -93.5t-16 -184 t16 -184t43 -93.5t71 -25.5z" />
<glyph unicode="R" d="M370 540q0 130 -148 130q-41 0 -70 -8v-272h60q87 0 122.5 33.5t35.5 116.5zM152 320v-320h-82v725q78 15 160 15q112 0 166 -49.5t54 -150.5q0 -143 -109 -193v-2q31 -15 66 -131l63 -214h-86l-59 216q-17 64 -41 84t-82 20h-50z" />
<glyph unicode="S" d="M260 668q-47 0 -77.5 -30.5t-30.5 -77.5q0 -50 21.5 -82.5t71.5 -55.5q111 -49 153 -102.5t42 -139.5q0 -94 -51.5 -142t-148.5 -48q-91 0 -165 55v95q80 -78 170 -78q113 0 113 118q0 55 -26 91t-87 64q-94 42 -134.5 95.5t-40.5 129.5q0 80 51 130t134 50q53 0 87 -8 t78 -32v-90q-77 58 -160 58z" />
<glyph unicode="T" d="M209 0v660h-154v70h390v-70h-154v-660h-82z" />
<glyph unicode="U" d="M250 -10q-95 0 -142.5 48.5t-47.5 151.5v540h84v-520q0 -81 26.5 -114.5t81.5 -33.5t81.5 33.5t26.5 114.5v520h80v-540q0 -103 -47.5 -151.5t-142.5 -48.5z" />
<glyph unicode="V" d="M253 70l135 660h82l-170 -730h-100l-170 730h86l135 -660h2z" />
<glyph unicode="W" d="M153 120h2l54 510h90l54 -510h2l45 610h75l-60 -730h-109l-55 520h-2l-55 -520h-109l-60 730h83z" />
<glyph unicode="X" d="M251 440h2l112 290h83l-148 -355l150 -375h-90l-111 305h-2l-112 -305h-85l150 375l-148 355h88z" />
<glyph unicode="Y" d="M251 375h2l132 355h85l-179 -440v-290h-82v290l-179 440h90z" />
<glyph unicode="Z" d="M335 658v2h-260v70h350v-70l-260 -588v-2h260v-70h-350v70z" />
<glyph unicode="[" d="M390 710h-178v-790h178v-60h-250v910h250v-60z" />
<glyph unicode="\" d="M48 730h72l332 -770h-72z" />
<glyph unicode="]" d="M110 710v60h250v-910h-250v60h178v790h-178z" />
<glyph unicode="^" d="M251 680h-2l-147 -400h-72l170 450h100l170 -450h-72z" />
<glyph unicode="_" d="M50 -140v56h400v-56h-400z" />
<glyph unicode="`" d="M130 810h120l100 -280h-70z" />
<glyph unicode="a" d="M255 530q100 0 137.5 -40t37.5 -150v-340h-72l-2 75h-2q-47 -85 -149 -85q-65 0 -105 41.5t-40 113.5q0 91 61.5 140.5t183.5 49.5h48v25q0 57 -22 80t-76 23q-33 0 -84 -12t-86 -28v72q35 15 85 25t85 10zM353 275h-48q-170 0 -170 -125q0 -45 23 -69t62 -24q59 0 96 48 t37 135v35z" />
<glyph unicode="b" d="M144 445h2q43 85 134 85q175 0 175 -270q0 -135 -48 -202.5t-127 -67.5q-84 0 -137 85h-2l-2 -75h-74v730h79v-285zM376 260q0 195 -116 195q-51 0 -83.5 -49.5t-32.5 -140.5v-10q0 -91 32.5 -140.5t83.5 -49.5q53 0 84.5 48.5t31.5 146.5z" />
<glyph unicode="c" d="M70 260q0 134 55 202t155 68q61 0 125 -25v-80q-60 33 -120 33q-63 0 -98 -50t-35 -148q0 -101 37 -151t101 -50q59 0 120 36v-80q-64 -25 -125 -25q-102 0 -158.5 67.5t-56.5 202.5z" />
<glyph unicode="d" d="M356 730h79v-730h-74l-2 75h-2q-53 -85 -137 -85q-79 0 -127 67.5t-48 202.5q0 270 175 270q91 0 134 -85h2v285zM124 260q0 -98 31.5 -146.5t84.5 -48.5q51 0 83.5 49.5t32.5 140.5v10q0 91 -32.5 140.5t-83.5 49.5q-116 0 -116 -195z" />
<glyph unicode="e" d="M138 234q4 -93 38 -134t99 -41q61 0 135 36v-80q-74 -25 -140 -25q-215 0 -215 270q0 141 50 205.5t150 64.5q91 0 135.5 -62t44.5 -203q0 -11 -2 -31h-295zM138 300h218q-1 161 -101 161q-57 0 -85 -36t-32 -125z" />
<glyph unicode="f" d="M75 431v69h120v60q0 98 33 139t107 41q45 0 90 -15v-72q-38 18 -75 18q-47 0 -61.5 -23.5t-14.5 -107.5v-40h151v-69h-151v-431h-79v431h-120z" />
<glyph unicode="g" d="M50 260q0 270 175 270q83 0 137 -85h2l2 75h74v-515q0 -125 -50.5 -180t-154.5 -55q-71 0 -140 25v80q71 -36 140 -36q126 0 126 166v80h-2q-43 -85 -134 -85q-80 0 -127.5 66t-47.5 194zM129 260q0 -92 31.5 -138.5t84.5 -46.5q52 0 84 45.5t32 134.5v10 q0 91 -32.5 140.5t-83.5 49.5q-58 0 -87 -46.5t-29 -148.5z" />
<glyph unicode="h" d="M440 330v-330h-77v312q0 88 -20 117.5t-73 29.5q-50 0 -85.5 -56t-35.5 -151v-252h-79v730h79v-285h2q19 39 56.5 62t82.5 23q79 0 114.5 -45.5t35.5 -154.5z" />
<glyph unicode="i" d="M316 520v-452h109v-68h-330v68h139v384h-109v68h191zM214 640v120h102v-120h-102z" />
<glyph unicode="j" d="M249 -33v485h-119v68h201v-553q0 -65 -8.5 -101t-36.5 -59t-72 -30t-123 -7v68q40 0 63 1t42.5 6.5t28.5 12.5t15.5 23.5t7.5 34.5t1 51zM229 640v120h102v-120h-102z" />
<glyph unicode="k" d="M460 520l-230 -250l230 -270h-95l-206 253v-253h-79v730h79v-444l207 234h94z" />
<glyph unicode="l" d="M281 150q0 -66 10.5 -79t63.5 -13q33 0 75 6v-69q-47 -5 -85 -5q-90 0 -118 28.5t-28 121.5v522h-129v68h211v-580z" />
<glyph unicode="m" d="M290 0h-78v360q-1 58 -10.5 77.5t-32.5 19.5q-20 0 -35 -24t-25 -83.5t-10 -149.5v-200h-79v520h70l2 -70h2q17 38 42.5 59t53.5 21q31 0 50.5 -18.5t33.5 -61.5h2q39 80 104 80q53 0 76.5 -32.5t23.5 -117.5v-380h-77v360q-1 59 -11.5 78t-37.5 19q-64 0 -64 -197v-260z " />
<glyph unicode="n" d="M440 330v-330h-77v312q0 88 -20 117.5t-73 29.5q-50 0 -85.5 -56t-35.5 -151v-252h-79v520h74l2 -75h2q19 38 58 61.5t84 23.5q79 0 114.5 -45.5t35.5 -154.5z" />
<glyph unicode="o" d="M250 530q200 0 200 -270t-200 -270t-200 270t200 270zM250 59q61 0 89.5 45.5t28.5 155.5t-28.5 155.5t-89.5 45.5t-89.5 -45.5t-28.5 -155.5t28.5 -155.5t89.5 -45.5z" />
<glyph unicode="p" d="M141 75h-2v-295h-79v740h74l2 -75h2q54 85 137 85q175 0 175 -270q0 -135 -48 -202.5t-127 -67.5q-91 0 -134 85zM371 260q0 195 -116 195q-51 0 -83.5 -49.5t-32.5 -140.5v-10q0 -91 32.5 -140.5t83.5 -49.5q53 0 84.5 48.5t31.5 146.5z" />
<glyph unicode="q" d="M359 75q-43 -85 -134 -85q-79 0 -127 67.5t-48 202.5q0 270 175 270q83 0 137 -85h2l2 75h74v-740h-79v295h-2zM129 260q0 -98 31.5 -146.5t84.5 -48.5q51 0 83.5 49.5t32.5 140.5v10q0 91 -32.5 140.5t-83.5 49.5q-116 0 -116 -195z" />
<glyph unicode="r" d="M186 520v-100h2q62 110 172 110q37 0 70 -10v-70q-35 11 -70 11q-73 0 -122 -61t-49 -160v-240h-79v520h76z" />
<glyph unicode="s" d="M255 463q-96 0 -96 -73q0 -34 21 -54.5t75 -35.5q106 -30 140.5 -63t34.5 -102t-47 -107t-133 -38t-165 40v80q78 -53 155 -53q111 0 111 78q0 37 -21.5 57t-84.5 38q-92 26 -128.5 62t-36.5 98q0 66 43.5 103t126.5 37q84 0 160 -35v-75q-79 43 -155 43z" />
<glyph unicode="t" d="M244 500h181v-69h-181v-281q0 -56 16.5 -74.5t64.5 -18.5q50 0 90 18v-70q-48 -15 -100 -15q-84 0 -117 32.5t-33 117.5v291h-100v69h100v190h79v-190z" />
<glyph unicode="u" d="M65 180v340h77v-322q0 -83 18.5 -110t69.5 -27q49 0 82.5 55t33.5 152v252h79v-520h-74l-2 75h-2q-19 -40 -56 -62.5t-81 -22.5q-77 0 -111 43t-34 147z" />
<glyph unicode="v" d="M251 60h2l115 460h82l-145 -520h-110l-145 520h86z" />
<glyph unicode="w" d="M351 80h2l49 440h78l-80 -520h-99l-54 440h-2l-49 -440h-96l-80 520h82l49 -440h2l49 440h100z" />
<glyph unicode="x" d="M251 305h2l104 215h88l-145 -260l145 -260h-94l-102 215h-2l-102 -215h-90l145 260l-145 260h92z" />
<glyph unicode="y" d="M259 120h2l117 400h87l-240 -740h-83l78 230l-175 510h88z" />
<glyph unicode="z" d="M80 520h340v-69l-248 -380v-2h248v-69h-340v69l248 380v2h-248v69z" />
<glyph unicode="{" d="M195 316l4 -2q81 -38 81 -149v-135q0 -72 16.5 -91t78.5 -19h40v-60h-65q-73 0 -107.5 35.5t-34.5 114.5v150q0 66 -21.5 95.5t-66.5 29.5h-45v60h45q45 0 66.5 29.5t21.5 95.5v150q0 79 34.5 114.5t107.5 35.5h65v-60h-40q-62 0 -78.5 -19t-16.5 -91v-135q0 -61 -20 -95 t-65 -54z" />
<glyph unicode="|" d="M212 -220v1030h76v-1030h-76z" />
<glyph unicode="}" d="M305 316q-45 20 -65 54t-20 95v135q0 72 -16.5 91t-78.5 19h-40v60h65q73 0 107.5 -35.5t34.5 -114.5v-150q0 -66 21.5 -95.5t66.5 -29.5h45v-60h-45q-45 0 -66.5 -29.5t-21.5 -95.5v-150q0 -79 -34.5 -114.5t-107.5 -35.5h-65v60h40q62 0 78.5 19t16.5 91v135 q0 111 81 149z" />
<glyph unicode="~" d="M50 602v75q42 33 95 33q61 0 125 -48q48 -35 80 -35q25 0 47 10t53 39v-75q-42 -33 -95 -33q-61 0 -125 48q-47 35 -80 35q-25 0 -47 -10t-53 -39z" />
<glyph unicode="&#xa0;" />
<glyph unicode="&#xa5;" d="M251 375h2l132 355h85l-153 -375h123v-65h-149v-85h149v-65h-149v-140h-82v140h-149v65h149v85h-149v65h123l-153 375h90z" />
<glyph unicode="&#xad;" d="M100 269v72h300v-72h-300z" />
<glyph unicode="&#x2000;" horiz-adv-x="407" />
<glyph unicode="&#x2001;" horiz-adv-x="815" />
<glyph unicode="&#x2002;" horiz-adv-x="407" />
<glyph unicode="&#x2003;" horiz-adv-x="815" />
<glyph unicode="&#x2004;" horiz-adv-x="271" />
<glyph unicode="&#x2005;" horiz-adv-x="203" />
<glyph unicode="&#x2006;" horiz-adv-x="135" />
<glyph unicode="&#x2007;" horiz-adv-x="135" />
<glyph unicode="&#x2008;" horiz-adv-x="101" />
<glyph unicode="&#x2009;" horiz-adv-x="163" />
<glyph unicode="&#x200a;" horiz-adv-x="45" />
<glyph unicode="&#x2010;" d="M100 269v72h300v-72h-300z" />
<glyph unicode="&#x2011;" d="M100 269v72h300v-72h-300z" />
<glyph unicode="&#x2013;" d="M60 269v72h380v-72h-380z" />
<glyph unicode="&#x2014;" d="M20 269v72h460v-72h-460z" />
<glyph unicode="&#x2018;" d="M275 500h-120l110 280h70z" />
<glyph unicode="&#x2019;" d="M220 780h120l-110 -280h-70z" />
<glyph unicode="&#x201c;" d="M340 500h-110l110 280h60zM190 500h-110l110 280h60z" />
<glyph unicode="&#x201d;" d="M300 780h110l-110 -280h-60zM150 780h110l-110 -280h-60z" />
<glyph unicode="&#x2026;" horiz-adv-x="1000" d="M102 288v150h130v-150h-130zM435 288v150h130v-150h-130zM768 288v150h130v-150h-130z" />
<glyph unicode="&#x202f;" horiz-adv-x="163" />
<glyph unicode="&#x205f;" horiz-adv-x="203" />
<glyph unicode="&#x2122;" horiz-adv-x="1000" d="M878 540h-2l-88 -340h-80l-88 340h-2v-540h-78v730h92l119 -450h2l119 450h88v-730h-82v540zM209 0v660h-154v70h390v-70h-154v-660h-82z" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 17 KiB

View file

@ -1,217 +0,0 @@
/*
* TABLE OF CONTENTS:
* - Browser reset
* - HTML elements
* - JsDoc styling
* - Media query check
*/
/*
* HTML ELEMENTS
*/
body {
padding: 1% 4% 1% 4%;
}
/*
* HTML ELEMENTS
*/
/*
* BEGIN JSDOC
*/
/* Start menu */
div.index div.menu {
position: fixed;
top: 0;
right: 0;
-moz-border-radius-bottomleft: 15px;
-webkit-border-bottom-left-radius: 15px;
-border-bottom-left-radius: 15px;
padding: 4px 5px 8px 10px;
-moz-box-shadow: 0px 0px 10px #c4c4c4;
-webkit-box-shadow: 0px 0px 10px #c4c4c4;
box-shadow: 0px 0px 10px #c4c4c4;
background-color: rgba(255, 255, 255, 0.9);
}
div.index input.classFilter {
display: none;
}
div.index div.indexLinks a {
float: right;
clear: both;
font-size: 1.1em;
}
div.index *.heading1 {
display:none;
}
div.index ul.classList {
display:none;
}
div.index div.fineprint {
display:none;
}
div.indexStatic {
display: none;
}
/* End menu */
/* Start content */
div.content *.classTitle {
margin-right: 60px;
margin-bottom: 15px;
}
div.content div.intro {
margin: 15px 0 35px;
}
div.content p.description.summary {
margin-bottom: 0.2em;
}
div.content div.props {
margin: 1.5em -2% 0 -2%;
padding: 2%;
}
table.summaryTable {
position: relative;
left: -10px;
width: 100%;
border-collapse: collapse;
box-sizing: content-box;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-ms-box-sizing: content-box;
-o-box-sizing: content-box;
-icab-box-sizing: content-box;
-khtml-box-sizing: content-box;
}
*.sectionTitle {
padding: 0 10px 10px 0;
}
caption.sectionTitle {
padding-left: 10px;
}
table.summaryTable td,
table.summaryTable th {
padding: 0px 10px 10px 10px;
}
table.summaryTable tr:last-child td {
padding-bottom: 0;
}
table.summaryTable td.attributes {
width: 35%;
}
table.summaryTable td.nameDescription {
width: 65%
}
dl.detailList {
margin-top: 0.5em;
}
dl.detailList.nomargin + dl.detailList.nomargin {
margin-top: 0;
}
dl.detailList dt {
display: inline;
margin-right: 5px;
}
dl.detailList dt:before {
display: block;
content: "";
}
dl.detailList dd {
display: inline;
}
dl.detailList.params dt {
display: block;
}
dl.detailList.params dd {
display: block;
padding-left: 2em;
padding-bottom: 0.4em;
}
ul.fileList li {
margin-bottom: 1.5em;
}
.fixedFont.heading {
margin-bottom: 0.5em;
}
pre.code {
margin: 10px 0 10px 0;
padding: 10px;
border: 1px solid #ccc;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
}
/* End content */
/*
* END JSDOC
*/
/*
* START MEDIA QUERY CHECK
*/
.cssLoadCheck {
position: absolute;
top: -99999px;
left: -99999px;
border: 0;
width: 100px;
padding: 0;
overflow: hidden;
}
/*
* END MEDIA QUERY CHECK
*/

View file

@ -1,297 +0,0 @@
/*
* TABLE OF CONTENTS:
* - JsDoc styling
* - Media query check
*/
/*
* BEGIN JSDOC
*/
/* Start menu */
div.index {
position: fixed;
top: 0;
bottom: 0;
float: left;
width: 30%;
min-width: 100px;
max-width: 300px;
padding: 0 0 10px 0;
overflow: auto;
}
div.index *.heading1 {
padding: 8px 0 0 0;
}
div.index div.menu {
margin: 0 15px 0 -15px;
-moz-border-radius-bottomright: 15px;
-webkit-border-bottom-right-radius: 15px;
-border-bottom-right-radius: 15px;
padding: 15px 15px 15px 30px;
-moz-box-shadow: 0px 0px 10px #c4c4c4;
-webkit-box-shadow: 0px 0px 10px #c4c4c4;
box-shadow: 0px 0px 10px #c4c4c4;
background-color: rgba(255, 255, 255, 0.5);
}
div.index div.indexLinks {
margin-top: 13px;
position: absolute;
right: 30px;
}
div.index div.indexLinks a {
color: #999999;
text-transform: lowercase;
}
div.index div.indexLinks a:first-child {
margin-right: 3px;
border-right: 1px solid #999999;
padding-right: 5px;
}
div.index input.classFilter {
margin-bottom: 4px;
width: 100%;
border-width: 1px;
border-style: solid;
border-color: #CCCCCC #999999 #999999 #CCCCCC;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
-border-radius: 3px;
}
div.index ul.classList a {
line-height: 1.3em;
}
div.index ul.classList a + a {
margin-left: 0.5em;
}
div.index div.fineprint {
margin: 1em 0 0 15px;
color: #777;
font-size: 0.9em;
}
div.index div.fineprint a {
color: #777;
}
div.indexStatic {
position: static;
min-height: 1em;
}
/* End menu */
/* Start content */
div.content {
float: left;
width: 70%;
min-width: 300px;
max-width: 600px;
}
div.innerContent {
padding: 0 0 0 2.5em;
}
div.content ul,
div.content ol {
margin-bottom: 3em;
}
div.content ul.methodDetail {
margin-bottom: 0;
}
div.content *.classTitle {
position: relative;
left: -10px;
margin: -30px 0 15px 0;
-moz-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
padding: 25px 15px 15px 15px;
background-color: #FFFFFF;
background-color: rgba(255, 255, 255, 0.5);
-moz-box-shadow: 0px 0px 10px #c4c4c4;
-webkit-box-shadow: 0px 0px 10px #c4c4c4;
box-shadow: 0px 0px 10px #c4c4c4;
}
div.content div.intro {
margin: 15px 0 45px
}
div.content p.summary {
margin-bottom: 0.5em;
}
div.content ul.summary {
margin-bottom: 1.5em;
}
div.content ul *.classname a,
div.content ul *.filename a {
font-family: Consolas, "Courier New", Courier, monospace;
text-decoration: none;
font-weight: bold;
}
div.content ul *.classname a:hover,
div.content ul *.filename a:hover {
text-decoration: underline;
}
div.content div.props {
position: relative;
left: -10px;
margin-bottom: 2.5em;
padding: 10px 15px 15px 15px;
overflow: hidden;
}
div.content div.hr {
margin: 0 10px 0 0;
height: 4em;
}
table.summaryTable {
position: relative;
left: -10px;
width: 100%;
border-collapse: collapse;
box-sizing: content-box;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-ms-box-sizing: content-box;
-o-box-sizing: content-box;
-icab-box-sizing: content-box;
-khtml-box-sizing: content-box;
}
*.sectionTitle {
padding: 0 10px 10px 0;
}
caption.sectionTitle {
padding-left: 10px;
}
table.summaryTable td,
table.summaryTable th {
padding: 0px 10px 10px 10px;
}
table.summaryTable tr:last-child td {
padding-bottom: 0;
}
table.summaryTable td.attributes {
width: 35%;
}
table.summaryTable td.nameDescription {
width: 65%
}
dl.detailList {
margin-top: 0.5em;
}
dl.detailList.nomargin + dl.detailList.nomargin {
margin-top: 0;
}
dl.detailList dt {
display: inline;
margin-right: 5px;
}
dl.detailList dt:before {
display: block;
content: "";
}
dl.detailList dd {
display: inline;
}
dl.detailList.params dt {
display: block;
}
dl.detailList.params dd {
display: block;
padding-left: 2em;
padding-bottom: 0.4em;
}
ul.fileList li {
margin-bottom: 1.5em;
}
.fixedFont.heading {
margin-bottom: 0.5em;
}
pre.code {
margin: 10px 0 10px 0;
padding: 10px;
border: 1px solid #ccc;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
}
/* End content */
.clear {
clear: both;
width: 100%;
min-height: 0;
}
/*
* END JSDOC
*/
/*
* START MEDIA QUERY CHECK
*/
.cssLoadCheck {
position: absolute;
top: -99999px;
left: -99999px;
border: 0;
width: 100px;
padding: 0;
overflow: hidden;
}
/*
* END MEDIA QUERY CHECK
*/

View file

@ -1,326 +0,0 @@
/**
* @fileOverview Contains standard code in the namespace 'wbos' and code specifically written for Codeview in the namespace 'codeview'
* @author Wouter Bos (www.thebrightlines.com)
* @since 1.0 - 2010-09-10
* @version 1.0 - 2010-09-10
*/
if (typeof(wbos) == "undefined") {
/**
* @namespace Standard code of Wouter Bos (wbos)
*/
wbos = {}
}
if (typeof(wbos.CssTools) == "undefined") {
/**
* @namespace Namespace for CSS-related functionality
*/
wbos.CssTools = {}
}
/**
* @namespace Fallback for CSS advanced media query
* @class
* @since 1.0 - 2010-09-10
* @version 1.0 - 2010-09-10
*/