diff --git a/.gitignore b/.gitignore index 8b1ffdc8..b8c788fe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .DS_Store +.cache _site node_modules diff --git a/License.txt b/License.txt index 2b3da698..3ca40900 100644 --- a/License.txt +++ b/License.txt @@ -1,4 +1,4 @@ -http://creativecommons.org/licenses/by/3.0/ +https://creativecommons.org/licenses/by/3.0/ THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. diff --git a/README.md b/README.md index 0648bfb8..d6cec333 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,12 @@ ## Browse the Infusion Documentation -You can [browse the Infusion Documentation website](http://docs.fluidproject.org/infusion/), or if +You can [browse the Infusion Documentation website](https://docs.fluidproject.org/infusion/), or if you prefer, you can [browse the source documentation files directly on GitHub](src/documents). ## Working with the Infusion Documentation locally -You must have [Node and NPM](https://nodejs.org/en/download/) installed in order to work on the Infusion Documentation +You must have [Node and NPM](https://nodejs.org/en/download/package-manager) installed in order to work on the Infusion Documentation locally (the LTS version is recommended). To install the dependencies for this project: @@ -34,7 +34,7 @@ npm run build ## Deploying the Infusion Documentation website -The [Infusion Documentation website](http://docs.fluidproject.org/infusion/) is published with [Netlify](https://netlify.com) +The [Infusion Documentation website](https://docs.fluidproject.org/infusion/) is published with [Netlify](https://netlify.com) every time new content is pushed to the `main` branch of this repository. [Deploy previews](https://docs.netlify.com/site-deploys/overview/#deploy-preview-controls) are also generated for every pull request. For more information, please review Netlify's [documentation](https://docs.netlify.com). @@ -47,7 +47,7 @@ Once you have Docker installed, run the following commands to build a Docker ima * Build the image: `docker build -t infusion-docs .` * Run the container: `docker run --name infusion-docs -p 8000:80 infusion-docs` -The documentation will be available at [http://localhost:8000](http://localhost:8000) +The documentation will be available at * To stop and remove the container: `docker rm -f infusion-docs` diff --git a/eleventy.config.js b/eleventy.config.js index 9d2b19e2..4c8df309 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -13,6 +13,7 @@ var githubSlugify = require("github-slugger").slug; var {exec} = require("child_process"); +const brokenLinksPlugin = require("eleventy-plugin-broken-links"); require("./index.js"); var hljs = require("highlight.js"); @@ -42,6 +43,13 @@ module.exports = function (eleventyConfig) { eleventyConfig.addTransform("parse", parseTransform); eleventyConfig.addPlugin(navigationPlugin); + eleventyConfig.addPlugin(brokenLinksPlugin, { + forbidden: "error", + broken: "error", + // Codepen links return 403 + // see: https://github.com/bradleyburgess/eleventy-plugin-broken-links/issues/9 + excludeUrls: ["https://codepen.io*"] + }); eleventyConfig.addPassthroughCopy({ "node_modules/infusion/dist": "lib/infusion/dist", diff --git a/package-lock.json b/package-lock.json index 508cdf3b..6d000089 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ }, "devDependencies": { "cross-env": "7.0.3", + "eleventy-plugin-broken-links": "2.2.1", "fluid-express": "1.0.18", "fluid-lint-all": "1.2.9", "github-slugger": "1.5.0", @@ -123,6 +124,25 @@ "url": "https://opencollective.com/11ty" } }, + "node_modules/@11ty/eleventy-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-3.0.0.tgz", + "integrity": "sha512-qJvfb331rYQAmlCS71Ygg0/XHUdB4/qXBOLsG0DJ1m61WL5JNha52OtKVeQq34u2J2Nfzim+X4TIL/+QyesB7Q==", + "dev": true, + "dependencies": { + "debug": "^4.3.3", + "flat-cache": "^3.0.4", + "node-fetch": "^2.6.7", + "p-queue": "^6.6.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, "node_modules/@11ty/eleventy-navigation": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@11ty/eleventy-navigation/-/eleventy-navigation-0.3.5.tgz", @@ -1423,6 +1443,12 @@ "node": ">= 0.8" } }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1903,6 +1929,98 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -2291,6 +2409,41 @@ "integrity": "sha512-BLG5HxSELlrMx7dJ2s+8SFlsCtJp37Zpk2VAxyC6CZtbc+9AJeZHfYHbrlSgdXp6saQ8StMqOTEDaBKgA7u1sw==", "dev": true }, + "node_modules/eleventy-plugin-broken-links": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eleventy-plugin-broken-links/-/eleventy-plugin-broken-links-2.2.1.tgz", + "integrity": "sha512-2u1kzt7kuA9mryFa3U+hnO4J9ZUHZlfwpTXA9oB9Z/rKmZ1KXN098shWJCcYlEncg0Mky80I0iPhNcZw6/FKOg==", + "dev": true, + "dependencies": { + "@11ty/eleventy-fetch": "^3.0.0", + "debug": "^4.3.4", + "kleur": "^4.1.4", + "minimatch": "^5.0.1", + "node-html-parser": "^5.3.3", + "valid-url": "^1.0.9" + } + }, + "node_modules/eleventy-plugin-broken-links/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/eleventy-plugin-broken-links/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2746,6 +2899,12 @@ "node": ">= 0.6" } }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, "node_modules/execall": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", @@ -3816,6 +3975,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, "node_modules/highlight.js": { "version": "11.8.0", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz", @@ -6236,6 +6404,58 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-html-parser": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", + "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", + "dev": true, + "dependencies": { + "css-select": "^4.2.1", + "he": "1.2.0" + } + }, "node_modules/node-jqunit": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/node-jqunit/-/node-jqunit-1.1.9.tgz", @@ -6519,6 +6739,18 @@ "which": "bin/which" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", @@ -6665,6 +6897,15 @@ "node": ">= 0.8.0" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -6695,6 +6936,34 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -9204,6 +9473,12 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "node_modules/valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==", + "dev": true + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -9678,6 +9953,18 @@ "ws": "^8.13.0" } }, + "@11ty/eleventy-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-fetch/-/eleventy-fetch-3.0.0.tgz", + "integrity": "sha512-qJvfb331rYQAmlCS71Ygg0/XHUdB4/qXBOLsG0DJ1m61WL5JNha52OtKVeQq34u2J2Nfzim+X4TIL/+QyesB7Q==", + "dev": true, + "requires": { + "debug": "^4.3.3", + "flat-cache": "^3.0.4", + "node-fetch": "^2.6.7", + "p-queue": "^6.6.2" + } + }, "@11ty/eleventy-navigation": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@11ty/eleventy-navigation/-/eleventy-navigation-0.3.5.tgz", @@ -10678,6 +10965,12 @@ } } }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -11019,6 +11312,70 @@ "which": "^2.0.1" } }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "dependencies": { + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true + }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -11309,6 +11666,40 @@ "integrity": "sha512-BLG5HxSELlrMx7dJ2s+8SFlsCtJp37Zpk2VAxyC6CZtbc+9AJeZHfYHbrlSgdXp6saQ8StMqOTEDaBKgA7u1sw==", "dev": true }, + "eleventy-plugin-broken-links": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/eleventy-plugin-broken-links/-/eleventy-plugin-broken-links-2.2.1.tgz", + "integrity": "sha512-2u1kzt7kuA9mryFa3U+hnO4J9ZUHZlfwpTXA9oB9Z/rKmZ1KXN098shWJCcYlEncg0Mky80I0iPhNcZw6/FKOg==", + "dev": true, + "requires": { + "@11ty/eleventy-fetch": "^3.0.0", + "debug": "^4.3.4", + "kleur": "^4.1.4", + "minimatch": "^5.0.1", + "node-html-parser": "^5.3.3", + "valid-url": "^1.0.9" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -11664,6 +12055,12 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, "execall": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", @@ -12519,6 +12916,12 @@ "has-symbols": "^1.0.2" } }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, "highlight.js": { "version": "11.8.0", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.8.0.tgz", @@ -14288,6 +14691,49 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "requires": { + "whatwg-url": "^5.0.0" + }, + "dependencies": { + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } + }, + "node-html-parser": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", + "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", + "dev": true, + "requires": { + "css-select": "^4.2.1", + "he": "1.2.0" + } + }, "node-jqunit": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/node-jqunit/-/node-jqunit-1.1.9.tgz", @@ -14510,6 +14956,15 @@ } } }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", @@ -14614,6 +15069,12 @@ "type-check": "^0.4.0" } }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -14632,6 +15093,25 @@ "p-limit": "^3.0.2" } }, + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -16542,6 +17022,12 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", diff --git a/package.json b/package.json index 0e0d3c6f..60e1281a 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ }, "devDependencies": { "cross-env": "7.0.3", + "eleventy-plugin-broken-links": "2.2.1", "fluid-express": "1.0.18", "fluid-lint-all": "1.2.9", "github-slugger": "1.5.0", diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk index 632691ab..f6e15579 100644 --- a/src/_includes/layouts/base.njk +++ b/src/_includes/layouts/base.njk @@ -171,7 +171,7 @@ diff --git a/src/documents/APIChangesFrom1_4To1_5.md b/src/documents/APIChangesFrom1_4To1_5.md index 79e6b3ce..c599fbf5 100644 --- a/src/documents/APIChangesFrom1_4To1_5.md +++ b/src/documents/APIChangesFrom1_4To1_5.md @@ -25,7 +25,7 @@ This page contains a list of the features, APIs, and etc. that have changed in I ### Uploader -* Flash version removed (see: [FLUID-5354](http://issues.fluidproject.org/browse/FLUID-5354)) +* Flash version removed (see: [FLUID-5354](https://fluidproject.atlassian.net/browse/FLUID-5354)) * Support for Firefox 3.x's implementation of HTML5 upload removed ## Framework API Changes diff --git a/src/documents/ChangeApplierAPI.md b/src/documents/ChangeApplierAPI.md index 4afe435a..d0475aa5 100644 --- a/src/documents/ChangeApplierAPI.md +++ b/src/documents/ChangeApplierAPI.md @@ -374,11 +374,11 @@ marking _will_ be logged by the listener.
Note: The current implementation of the ChangeApplier has a bug -([FLUID-5519](http://issues.fluidproject.org/browse/FLUID-5519)) which will often cause a model listener to be notified +([FLUID-5519](https://fluidproject.atlassian.net/browse/FLUID-5519)) which will often cause a model listener to be notified before much of the surrounding component has constructed. This can be annoying, since the model listener may want to rely on other infrastructure (e.g. invokers, etc.) that it cannot be sure have been constructed. For this reason, `excludeSource: "init"` is a useful way of stabilising this behaviour until the implementation is fixed (fix will be -delivered as part of [FLUID-4925](http://issues.fluidproject.org/browse/FLUID-4925)). +delivered as part of [FLUID-4925](https://fluidproject.atlassian.net/browse/FLUID-4925)).
#### Wildcards in model path references diff --git a/src/documents/ComponentConfigurationOptions.md b/src/documents/ComponentConfigurationOptions.md index 48a5b0cb..1eff6302 100644 --- a/src/documents/ComponentConfigurationOptions.md +++ b/src/documents/ComponentConfigurationOptions.md @@ -321,11 +321,15 @@ fluid.defaults("examples.eventedComponent", { Some special context names will be available within the subcomponent's definition block, for example {source} and {sourcePath} or {arguments}, derived from the material - responsible for constructing the component. This framework facility will be replaced by a more declarative - equivalent in time - ask on the - fluid-work mailing list or - #fluid-work IRC channel if you seem to - find yourself needing to use it. + responsible for constructing the component. + + This framework facility will be replaced by a more declarative equivalent in time - ask on the + fluid-work mailing list or + + #fluid-work Matrix channel + + if you seem to find yourself needing to use it. + diff --git a/src/documents/ComponentGrades.md b/src/documents/ComponentGrades.md index 71aa2c3f..3dfd8ecd 100644 --- a/src/documents/ComponentGrades.md +++ b/src/documents/ComponentGrades.md @@ -203,8 +203,8 @@ Grades supplied as arguments to a constructing component in the `gradeNames` fie the particular component instance, as if a new `fluid.defaults` block had been issued creating a new "type" in the system - however, the main `type` of the component will not change. This facility could be thought of as a form of "type evolution" or -[Schema evolution](http://scholarworks.umass.edu/cgi/viewcontent.cgi?article=1041&context=cs_faculty_pubs). All dynamic -grades take precedence over (that is, are merged in after) all static grades. +[Schema evolution](https://scholarworks.umass.edu/server/api/core/bitstreams/bb49378d-0387-491b-bc6e-fc6d077a0b6a/content). +All dynamic grades take precedence over (that is, are merged in after) all static grades. ### Delivering a dynamic gradeName as a direct argument: diff --git a/src/documents/ComponentOptionsAndDefaults.md b/src/documents/ComponentOptionsAndDefaults.md index bf1a77b0..48fd3703 100644 --- a/src/documents/ComponentOptionsAndDefaults.md +++ b/src/documents/ComponentOptionsAndDefaults.md @@ -5,7 +5,7 @@ category: Infusion One of the key principles that Infusion components operate on is configurability. Components have options that can be set by integrators to customize the behaviour. For example, the Infusion -[Inline Edit](http://build.fluidproject.org/infusion/demos/inlineEdit/) component has +[Inline Edit](https://build-infusion.fluidproject.org/demos/inlineEdit/) component has options for configuring the text content of the tooltip, the length of time the user must hover before the tooltip appears, the 'invitation text' that should be displayed in the field if it is empty, and other things. diff --git a/src/documents/ContextAwareness.md b/src/documents/ContextAwareness.md index ee894cc7..ed1ccbbf 100644 --- a/src/documents/ContextAwareness.md +++ b/src/documents/ContextAwareness.md @@ -44,7 +44,7 @@ of: ## Simple example - speech API-aware component This simple example invokes the `fluid.textToSpeech.isSupported` feature detector, which returns `true` if the current -browser supports the [HTML5 Speech API](https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html). We use the +browser supports the [HTML5 Speech API](https://wicg.github.io/speech-api/). We use the `fluid.contextAware.makeChecks` function to assign the result of this feature detection to a _context_ named `fluid.supportsTTS`. We can then use this context to conditionally switch in an extra [grade name](ComponentGrades.md), `examples.myComponent.speechAware` into the `examples.myComponent` component: diff --git a/src/documents/Contexts.md b/src/documents/Contexts.md index d42bd5d3..8bd0131f 100644 --- a/src/documents/Contexts.md +++ b/src/documents/Contexts.md @@ -27,7 +27,7 @@ Context names are derived both from particular components in the tree which have (ancestors) and the __*static environment*__. The static environment can be thought of as a set of contexts which are global to the entire application (that is, a context managed by the JavaScript virtual machine operated by the runtime - for example that derived from a browser frame or -[V8 context](https://developers.google.com/v8/embed#contexts)). These names can be matched by the +[V8 context](https://v8.dev/#contexts)). These names can be matched by the names appearing in curly brackets at the beginning of EL path expressions like `"{contextName}.furtherPath"`. Each component in the tree can give rise to a context name through three strategies: diff --git a/src/documents/CoreAPI.md b/src/documents/CoreAPI.md index efc4d0fc..05523c72 100644 --- a/src/documents/CoreAPI.md +++ b/src/documents/CoreAPI.md @@ -135,7 +135,7 @@ A function which raises a failure if executed. This function name can also be us * Returns: none Iterates over a supplied array or hash, invoking a function once for each member. Similar to -[`jQuery.each`](http://api.jquery.com/jquery.each/) only the arguments to `func` are the right way round and the +[`jQuery.each`](https://api.jquery.com/jquery.each/) only the arguments to `func` are the right way round and the function does not explode on nonvalues. `fluid.each` on `null` or `undefined` is a no-op. ### fluid.invokeLater(func) @@ -214,7 +214,7 @@ Fills an array of given size with copies of a value or result of a function invo Returns an array of size `n`, filled with increasing integers, starting at 0 or at the value specified by `first`. The name `iota` originally stems from the -[APL](http://stackoverflow.com/questions/9244879/what-does-iota-of-stdiota-stand-for) programming language. +[APL](https://stackoverflow.com/questions/9244879/what-does-iota-of-stdiota-stand-for) programming language. ### fluid.clear(target) @@ -238,7 +238,7 @@ destructively modified.** member acted on by the function or functions. Return a list or hash of objects, transformed by one or more functions. Similar to -[`jQuery.map`](http://api.jquery.com/jquery.map/), but accepts an arbitrary list of transformation functions and does +[`jQuery.map`](https://api.jquery.com/jquery.map/), but accepts an arbitrary list of transformation functions and does not explode on null sources. `fluid.transform` on a non-array and non-object (e.g. `null`) is a no-op. ### fluid.accumulate(list, fn, initial) @@ -412,7 +412,7 @@ var CATTyears = fluid.hashToArray(hash, "species", function (newElement, oldElem Converts an array consisting of a mixture of arrays and non-arrays into the concatenation of any inner arrays with the non-array elements. The original array **will not be modified**. See description of -[mapcat](http://martinfowler.com/articles/collection-pipeline/flat-map.html) or `flat-map`. +[mapcat](https://martinfowler.com/articles/collection-pipeline/flat-map.html) or `flat-map`. ### fluid.freezeRecursive(tofreeze) @@ -556,7 +556,7 @@ Writes a new value into a model at a specified path. This is performed by direct referenced model object (the one referenced by the first `n-1` path segments in `path`) by writing the value `newValue` to its property named after the final path segment. Other approaches to this task are possible (see [New New Notes on the -ChangeApplier](https://wiki.fluidproject.org/display/fluid/New+New+Notes+on+the+ChangeApplier#NewNewNotesontheChangeApplier-Theseveralwaysofactuallyapplyingachange)) +ChangeApplier](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11471098/New+New+Notes+on+the+ChangeApplier#NewNewNotesontheChangeApplier-Theseveralwaysofactuallyapplyingachange)) but the fundamental invariant to be respected is that ```javascript @@ -572,10 +572,10 @@ component which can be rebound. If the path `path` indirects beyond the range of concrete properties in `model`, the implementation will fill in any intermediate path levels with fresh instances of `{}` (in the manner of -[`mkdirs`](http://stackoverflow.com/questions/9820088/difference-between-mkdir-and-mkdirs-in-java-for-java-io-file)). +[`mkdirs`](https://stackoverflow.com/questions/9820088/difference-between-mkdir-and-mkdirs-in-java-for-java-io-file)). There are some esoteric extra arguments for `fluid.set` which will allow this to be done in a schema-aware way, for example filling in path levels with `[]` instead - [contact -us](https://wiki.fluidproject.org/display/fluid/Mailing+Lists) if you are interested. +us](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11577660/Mailing+Lists) if you are interested. * `model {Object}` The model object to be indirected into. This must be an `Object`. * `path {String|Array of String}` Either a period-separated [EL path](FrameworkConcepts.md#el-paths) representing a @@ -808,7 +808,7 @@ Write a value to a particular global path. Users are strongly discouraged from s paths, but it is accepted that in certain integration scenarios there can be little alternative. Please choose a properly qualified global path name that identifies your project (perhaps, derived from a [domain name](https://en.wikipedia.org/wiki/Domain_name) or [npm package -name](https://docs.npmjs.com/misc/faq#why-no-namespaces)) that you have control over. The [Java package naming +name](https://docs.npmjs.com/package-name-guidelines)) that you have control over. The [Java package naming conventions](https://en.wikipedia.org/wiki/Java_package#Package_naming_conventions) have proved effective at heading off such problems in the past and we intend that Infusion global names should be handled in an analogous way. diff --git a/src/documents/DeclarativeThisismInIoC.md b/src/documents/DeclarativeThisismInIoC.md index 23af145e..5ae24108 100644 --- a/src/documents/DeclarativeThisismInIoC.md +++ b/src/documents/DeclarativeThisismInIoC.md @@ -12,7 +12,7 @@ back to itself. The most common example would be using a jQuery element. For more details on the differences between **that-ist** and **this-ist** approaches, as well as the reasoning behind why Infusion employs the former, see the [About this and -that](http://fluidproject.org/blog/2008/07/21/about-this-and-that/) blog post. +that](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11580702/About+this+and+that) blog post. ## Structure diff --git a/src/documents/DeprecatedIn2_0.md b/src/documents/DeprecatedIn2_0.md index 3d346309..8cf94b4b 100644 --- a/src/documents/DeprecatedIn2_0.md +++ b/src/documents/DeprecatedIn2_0.md @@ -21,7 +21,7 @@ changes, the contents of this page may not be exhaustive. fluid.progress - HTML5 progress + HTML5 progress element @@ -42,7 +42,7 @@ changes, the contents of this page may not be exhaustive. jQuery UI Slider version of fluid.textfieldSlider Native HTML5 version of fluid.textfieldSlider making use of the - range + range input diff --git a/src/documents/DeprecationsIn1_5.md b/src/documents/DeprecationsIn1_5.md index e1e62e07..41b6db68 100644 --- a/src/documents/DeprecationsIn1_5.md +++ b/src/documents/DeprecationsIn1_5.md @@ -19,7 +19,7 @@ This page contains a list of the features, API's, and etc. that were deprecated There are no CSS Framework requirements for working with Infusion. Infusion's strategy going forward will be to use custom CSS for component specific styling and Foundation for demos, as needed. + href="https://get.foundation/">Foundation for demos, as needed. diff --git a/src/documents/FetchResources.md b/src/documents/FetchResources.md index 053845b4..952821d1 100644 --- a/src/documents/FetchResources.md +++ b/src/documents/FetchResources.md @@ -8,7 +8,7 @@ possibly asynchronously, using AJAX requests or from the current DOM. This API i core or components rely on it, however it will be retained for one further release cycle since it appears in a few pieces of example code and wrappers. The core framework grade [Resource Loader](ResourceLoader.md) should be used by any component wishing to issue I/O as part of component loading, or else a -[DataSource](https://github.com/fluid-project/kettle/blob/master/docs/DataSources.md) for I/O which may be issued +[DataSource](https://github.com/fluid-project/kettle/blob/main/docs/DataSources.md) for I/O which may be issued repeatedly during a component's lifecycle. This API is deprecated and will be removed in an upcoming revision of the framework. diff --git a/src/documents/FrameworkConcepts.md b/src/documents/FrameworkConcepts.md index 970bc9b8..edf9e281 100644 --- a/src/documents/FrameworkConcepts.md +++ b/src/documents/FrameworkConcepts.md @@ -105,7 +105,7 @@ frameworks. The renderer reduces the entire binding and controller function of a interpretation and re-processing. Historically, the desire to be able to treat logic as data has strong roots, for example in the -[LISP](http://en.wikipedia.org/wiki/Lisp_programming_language) community. However, where all application code is on a +[LISP](https://en.wikipedia.org/wiki/Lisp_(programming_language)) community. However, where all application code is on a common footing, designs become tangled and hard to interpret. By providing domain-specific forms for carefully selected parts of an application's functionality, typically at the Controller level, the complexity of code operating on this data can be reduced and transparency increased. It is a productive middle ground, between all application code becoming @@ -113,9 +113,9 @@ a candidate to be data (as in LISP), and none of it (as in Java). ## IoC -IoC stands for [*Inversion of Control*](http://en.wikipedia.org/wiki/Inversion_of_control), the traditional name given +IoC stands for [*Inversion of Control*](https://en.wikipedia.org/wiki/Inversion_of_control), the traditional name given to this programming concept by its early promoters, [Ralph Johnson](http://www.laputan.org/drc/drc.html) and [Martin -Fowler](http://martinfowler.com/bliki/InversionOfControl.html). IoC is the technique that naturally results when trying +Fowler](https://martinfowler.com/bliki/InversionOfControl.html). IoC is the technique that naturally results when trying to make sure that dependencies in a codebase are correctly organised. The goal is to eliminate cycles of knowledge and points of dependency weakness within an application architecture. diff --git a/src/documents/ImageReordererAPI.md b/src/documents/ImageReordererAPI.md index eca4fa8b..2d595bb0 100644 --- a/src/documents/ImageReordererAPI.md +++ b/src/documents/ImageReordererAPI.md @@ -20,7 +20,7 @@ var myImageReordererWithOptions = fluid.reorderImages(container, options); #### container -The `container` parameter is a CSS-based [selector](http://api.jquery.com/category/selectors/), single-element jQuery +The `container` parameter is a CSS-based [selector](https://api.jquery.com/category/selectors/), single-element jQuery object, or DOM element specifying the root node of the Reorderer. #### options parameter diff --git a/src/documents/IoCAPI.md b/src/documents/IoCAPI.md index 2392974d..5740f020 100644 --- a/src/documents/IoCAPI.md +++ b/src/documents/IoCAPI.md @@ -7,7 +7,8 @@ Whilst Infusion's [IoC](HowToUseInfusionIoC.md) is primarily a declarative syste JSON configuration, there are a few language-level APIs which are useful in dealing with the system. Some of these are externalisable in that there is a reasonable semantic for operating them from outside the JavaScript VM housing the component tree - these special APIs are grouped under the heading [Nexus API methods](#nexus-api-methods), named after -the [Nexus component](https://wiki.gpii.net/w/Nexus_API) that will shortly be built around them. +the [Nexus component](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11577865/Nexus+API) that will shortly +be built around them. ## IoC utility methods @@ -132,10 +133,10 @@ Holds the global root component for the global instantiator's component tree. ## Nexus API methods These API methods are grouped together here since they were developed alongside the need to support the -GPII [Nexus](https://wiki.fluidproject.org/display/fluid/Nexus+API), but they are of interest to others who are building -frameworks or authoring systems layered on Infusion's component tree substrate. They allow for the construction and -destruction of arbitrary components at arbitrary paths in the (single, global) component tree managed by this Infusion -instance. +GPII [Nexus](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11577865/Nexus+API), but they are of interest to +others who are building frameworks or authoring systems layered on Infusion's component tree substrate. They allow for +the construction and destruction of arbitrary components at arbitrary paths in the (single, global) component tree +managed by this Infusion instance. ### fluid.construct(path, options[, instantiator]) @@ -146,7 +147,7 @@ location must already be a component. of segments * `options {Object}` Top-level options supplied to the component - must at the very least include a field `type` holding the component's type. Note that these are expressed in the future-compatible - [post-FLUID-5750](https://issues.fluidproject.org/browse/FLUID-5750) format with `type` alongside the component's options + [post-FLUID-5750](https://fluidproject.atlassian.net/browse/FLUID-5750) format with `type` alongside the component's options rather than at a higher nested level as is currently required in local configuration supplied as [subcomponents](SubcomponentDeclaration.md). * `instantiator {Instantiator}` [optional] The instantiator holding the component to be created - if blank, the @@ -193,7 +194,7 @@ As well as allowing for construction and destruction of material at arbitrary pa for the grouping of constructions and destructions into "tree transactions" in which instantiating components will be constructed simultaneously and so may be mutually referent. In addition, the framework rewrite which supports these in Infusion 4.0 and higher (described under -[FLUID-6148](https://issues.fluidproject.org/browse/FLUID-6148) and linked JIRAs) ensures that in the event of any +[FLUID-6148](https://fluidproject.atlassian.net/browse/FLUID-6148) and linked JIRAs) ensures that in the event of any failure during the transaction, the entire construction will be cleanly backed out, leaving the remaining component tree in a stable condition as it was before (except for any effects on component models and naturally any other side-effects unrelated to the component tree). @@ -216,7 +217,7 @@ unit via `fluid.commitPotentiae` or cancelled via `fluid.cancelTreeTransaction`. * `transactionOptions {Object}` [optional] A set of options configuring this tree transaction. This may include fields * `breakAt {String}` - one of the values: * `shells`: signifying that this transaction should pause as soon as all component shells are constructed (see - [FLUID-4925](https://issues.fluidproject.org/browse/FLUID-4925)) + [FLUID-4925](https://fluidproject.atlassian.net/browse/FLUID-4925)) * `observation`: signifying that this transaction should pause once the observation process of all components is concluded - that is, that all component options, members and invokers are evaluated. * Returns: `{String}` The id of the freshly allocated tree transaction. @@ -368,7 +369,7 @@ particularly ambitious functionality which requires oversight of the entire inst execute before any local workflows. The framework currently includes just one global workflow, the one which identifies and resolves the values of all model components throughout the instantiating tree's `model skeleton`, but further ones will be implemented as part of the upcoming framework's markup renderer for Infusion 5.0 as described in -[FLUID-4260](https://issues.fluidproject.org/browse/FLUID-4260). +[FLUID-4260](https://fluidproject.atlassian.net/browse/FLUID-4260). A global workflow function receives the signature: diff --git a/src/documents/IoCSS.md b/src/documents/IoCSS.md index 48e30eec..85017243 100644 --- a/src/documents/IoCSS.md +++ b/src/documents/IoCSS.md @@ -222,7 +222,7 @@ fluid.defaults("fluid.tests.uploader", { ## Example: broadcast via root to all components -([All Husnock, everywhere](http://en.memory-alpha.org/wiki/Husnock)) +([All Husnock, everywhere](https://memory-alpha.fandom.com/wiki/Husnock)) ```javascript diff --git a/src/documents/IoCTestingFramework.md b/src/documents/IoCTestingFramework.md index def8e640..ac65a661 100644 --- a/src/documents/IoCTestingFramework.md +++ b/src/documents/IoCTestingFramework.md @@ -4,7 +4,7 @@ category: Infusion --- The IoC Testing Framework is written using our existing [jqUnit](jqUnit.md) wrapper for jQuery's -[QUnit](http://qunitjs.com/) as a base. The IoC Testing Framework is both written using Fluid's +[QUnit](https://qunitjs.com/) as a base. The IoC Testing Framework is both written using Fluid's [IoC](HowToUseInfusionIoC.md) system, as well as being designed to test components which are themselves written using IoC. This framework aims to extend our power to write tests in various directions at the same time. As well as creating an idiomatic way of writing *integration tests* addressed at realistic-sized chunks of applications, expressed as IoC @@ -66,8 +66,8 @@ configuration defining the sequence and structure of a group of test cases which ### `modules`, `tests` and `sequence` The standard structure inside a `fluid.test.testCaseHolder` has an outer layer of containment, `modules`, with members -corresponding to QUnit [modules](https://api.qunitjs.com/QUnit.module/), and within that an entry named `tests`, holding -an array of structures corresponding to QUnit [test](https://api.qunitjs.com/QUnit.test/). In ordinary use, each element +corresponding to QUnit [modules](https://qunitjs.com/api/QUnit/module/), and within that an entry named `tests`, holding +an array of structures corresponding to QUnit [test](https://qunitjs.com/api/QUnit/test/). In ordinary use, each element `tests` then contains a member named `sequence` holding a list of [*fixture records*](#supported-fixture-records). As well as containing a flat list of fixture records, `sequence` may also contain nested arrays of such records. These @@ -334,8 +334,8 @@ Boiling](EventInjectionAndBoiling.md#listener-boiling). `{change}` is not curren jQuery event triggerjQueryTrigger [*] {String} - The name of a jQuery event (jQuery eventType) to be triggered - via a call to jquery.triggerjQuery eventType) to be triggered + via a call to jquery.triggerexecutor @@ -357,7 +357,7 @@ Boiling](EventInjectionAndBoiling.md#listener-boiling). `{change}` is not curren {String} The name of a jQuery event for which a listener is to be registered via a call to jquery.onejquery.onebinder @@ -841,7 +841,7 @@ sequence: }, "md", - "[unified listing](http://ul.gpii.net/)" + "[unified listing](https://ul.gpii.net/)" ] } of fixture Confirm that the client-side renderer can render markdown... ``` @@ -858,9 +858,9 @@ detection message appears in all environments. ## Design Discussion about the Testing Framework The framework was designed over October-December 2012, with initial call for implementation on the fluid-work mailing -list at [October 31st](http://lists.idrc.ocad.ca/pipermail/fluid-work/2012-October/008615.html), continuing over a +list at [October 31st](https://lists.idrc.ocadu.ca/pipermail/fluid-work/2012-October/008615.html), continuing over a sequence of community meetings, and including a summary of work in progress on [December -5th](http://lists.idrc.ocad.ca/pipermail/fluid-work/2012-December/008652.html). The overall goals for the testing +5th](https://lists.idrc.ocadu.ca/pipermail/fluid-work/2012-December/008652.html). The overall goals for the testing framework were presented as these: * To facilitate the testing of demands blocks that may be issued by integrators against components deployed in a @@ -876,5 +876,5 @@ framework were presented as these: The framework was given a substantial spring-cleaning in October 2016, implementing significant new features such as promise-based fixtures, and priority-driven sequence grade assembly, and some support for compact invokers. A few significant bugs remain, especially when listing multiple "listener"-type fixtures adjacent in the sequence - see -[FLUID-5502](https://issues.fluidproject.org/browse/FLUID-5502). The support for model change event fixtures is also -very old-fashioned and needs to be reformed - see [FLUID-6077](https://issues.fluidproject.org/browse/FLUID-6077). +[FLUID-5502](https://fluidproject.atlassian.net/browse/FLUID-5502). The support for model change event fixtures is also +very old-fashioned and needs to be reformed - see [FLUID-6077](https://fluidproject.atlassian.net/browse/FLUID-6077). diff --git a/src/documents/ModelRelay.md b/src/documents/ModelRelay.md index 92f00371..ecca8ce3 100644 --- a/src/documents/ModelRelay.md +++ b/src/documents/ModelRelay.md @@ -383,8 +383,7 @@ reference in any of those slots. Relay documents are just written with the simpl The use of the term "transactions" to describe the process by which the model skeleton updates is not entirely consistent with its use elsewhere in the industry. Those interested in more semantic and detailed discussion can consult -[New Notes on the ChangeApplier](http://wiki.fluidproject.org/display/fluid/New+Notes+on+the+ChangeApplier) which -describes how the new relay-capable implementation differs from the old one, and how our approach to and thinking about -coordinated model updates is different to that of other frameworks. A more recent page of notes describing the future -evolution of model relay can be found at [New New Notes on the -ChangeApplier](http://wiki.fluidproject.org/display/fluid/New+New+Notes+on+the+ChangeApplier). +[New Notes on the ChangeApplier](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11672298/New+Notes+on+the+ChangeApplier) +which describes how the new relay-capable implementation differs from the old one, and how our approach to and thinking +about coordinated model updates is different to that of other frameworks. A more recent page of notes describing the +future evolution of model relay can be found at [New New Notes on the ChangeApplier](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11471098/New+New+Notes+on+the+ChangeApplier). diff --git a/src/documents/ModelTransformationAPI.md b/src/documents/ModelTransformationAPI.md index 366d43ec..bf645a02 100644 --- a/src/documents/ModelTransformationAPI.md +++ b/src/documents/ModelTransformationAPI.md @@ -827,7 +827,7 @@ transformation rules). In practice, perfect inversion of a rule is not always possible. Unless extra information is kept, or extra information added about defaulting values, etc., -the inversion/lensing will be lossy (see [FLUID-5133](https://issues.fluidproject.org/browse/FLUID-5133) ). +the inversion/lensing will be lossy (see [FLUID-5133](https://fluidproject.atlassian.net/browse/FLUID-5133) ). If we call our original transformation function `F`, input document `x` and output document `y`, a general transformation is described as follows: `F(x)=y`. If we say the inverse of `F` is called `G`, we use the following diff --git a/src/documents/NodeAPI.md b/src/documents/NodeAPI.md index 9838b4f5..913d51b9 100644 --- a/src/documents/NodeAPI.md +++ b/src/documents/NodeAPI.md @@ -109,6 +109,6 @@ the top-level module in whatever application they are nested in, rather than the This is an architectural risk that we are aware of — in that it requires that all the cooperating modules within an Infusion application are compatible with a single version of Infusion, the one requested at the application's module root. Future work on [modularization of -Infusion](https://wiki.fluidproject.org/display/fluid/Notes+on+Modularisation+of+Infusion) will address this risk by -splitting Infusion into several smaller modules, only one of which (responsible for storing and retrieving grade -definitions and module paths) requires to be application-global. +Infusion](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11527165/Notes+on+Modularisation+of+Infusion) will +address this risk by splitting Infusion into several smaller modules, only one of which (responsible for storing and +retrieving grade definitions and module paths) requires to be application-global. diff --git a/src/documents/PrimarySchemaForPreferencesFramework.md b/src/documents/PrimarySchemaForPreferencesFramework.md index 5d819fd3..9c80182c 100644 --- a/src/documents/PrimarySchemaForPreferencesFramework.md +++ b/src/documents/PrimarySchemaForPreferencesFramework.md @@ -4,7 +4,7 @@ category: Infusion --- A Primary Schema is a JSON document that contains the information necessary to define desired preferences using the -format specified by the [JSON Schema specification](http://json-schema.org/documentation.html). A Primary Schema defines +format specified by the [JSON Schema specification](https://json-schema.org/docs). A Primary Schema defines such things as the type of the preference, its default value, the limits of its range (if appropriate), an enumeration of possible values (if appropriate), etc. diff --git a/src/documents/PromisesAPI.md b/src/documents/PromisesAPI.md index 9a7ec920..a6faa6e0 100644 --- a/src/documents/PromisesAPI.md +++ b/src/documents/PromisesAPI.md @@ -5,11 +5,11 @@ category: Infusion [Promises](https://en.wikipedia.org/wiki/Futures_and_promises) are a now widespread programming construct aiming to simplify coding of complex workflows involving values which may be available asynchronously (perhaps as a result of requiring I/O) or fallibly. JavaScript enjoys numerous competing libraries implementing this feature, such as -[when.js](https://github.com/cujojs/when), [Q](http://documentup.com/kriskowal/q) and +[when.js](https://github.com/cujojs/when), [Q](https://github.com/kriskowal/q) and [Bluebird](https://github.com/petkaantonov/bluebird) as well as even multiple competing promise standards, such as -[Promises/A+](https://promisesaplus.com/) and others from [CommonJS](http://wiki.commonjs.org/wiki/Promises). Promises +[Promises/A+](https://promisesaplus.com/) and others from [CommonJS](https://wiki.commonjs.org/wiki/Promises). Promises are even built into an upcoming version of the JavaScript language itself, -[ES6](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise). +[ES6](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). Infusion required an extremely simple implementation which can evolve independently, as well as begin the process of merging with the general declarative facilities of [Infusion IoC](HowToUseInfusionIoC.md) and hence become invisible as @@ -99,7 +99,7 @@ promises specification is a useful source of convincing argumentation that the d asynchronous resolution is flawed. As a further landmark for discussion, note that in terms of the following very illuminating [category -theoretic](http://brianmckenna.org/blog/category_theory_promisesaplus) treatment of promises (itself rejected by +theoretic](https://brianmckenna.org/blog/category_theory_promisesaplus) treatment of promises (itself rejected by mainstream promises proponents), our `then` method is very definitely **not** "the name for `flatMap`". Our `then` method is simply a "glorified callback aggregator". @@ -252,8 +252,8 @@ reason in place, etc. Finally the fully accumulated rejection reason will be dis handler. What familiar exception-handling pattern from synchronous code does this reproduce? It is the **rethrowing pattern**, -described in the Java context by [Bruce Eckel](http://www.mindview.net/Etc/Discussions/CheckedExceptions/). Some more -general commentary is on the "original wiki" at [Nested Exception](http://c2.com/cgi/wiki?NestedException). Thankfully, +described in the Java context by Bruce Eckel. Some more +general commentary is on the "original wiki" at [Nested Exception](https://wiki.c2.com/?NestedException). Thankfully, JavaScript is free of "checked exception specifications" but both the bathwater and baby have been thrown out in that it is also free of exception wrapping. The promises community is still so immature that the lack of this facility has not yet even been characterised. Here is some old-fashioned sequential code illustrating what is going on here: diff --git a/src/documents/ProtoComponentTypes.md b/src/documents/ProtoComponentTypes.md index ea00ad11..e00ce3d1 100644 --- a/src/documents/ProtoComponentTypes.md +++ b/src/documents/ProtoComponentTypes.md @@ -109,7 +109,7 @@ field names shown in bold text are the definitive fields that will indicate whic
var protoTree = {
     contact-addressType1: {
-        target: "http://company.com/help/${topic.url}",
+        target: "https://company.com/help/${topic.url}",
         linktext: "${topic.name}"
     }
 };
diff --git a/src/documents/ResourceLoader.md b/src/documents/ResourceLoader.md
index 703f019c..8fd42f0f 100644
--- a/src/documents/ResourceLoader.md
+++ b/src/documents/ResourceLoader.md
@@ -11,7 +11,7 @@ directly from the filesystem if Infusion is running under `node.js`. These resou
 or other kinds of static resources.
 
 The resources to be loaded are configured in a free hash held in the top-level `resources` option of the component.
-Each member of `resources` is a structure named `ResourceSpec` specifying a resource to be loaded.  
+Each member of `resources` is a structure named `ResourceSpec` specifying a resource to be loaded.
 
 ### Minimal `fluid.resourceLoader` example
 
@@ -109,7 +109,7 @@ it is an Object with keys described in the [section on resourceSpecs](#resources
 
     locale
     Specifies the language code with the desired localization. Language codes are expected in a form
-    similar to BCP 47 tags but with a "_" instead of a "-" separating
+    similar to BCP 47 tags but with a "_" instead of a "-" separating
     the language code from the country code. When specified, the resource loader will add a suffix of the locale value
     to each entry defined in the resources and look for them at the first attempt. If any such resource is
     not located, the resource loader follows
@@ -186,7 +186,7 @@ identifying both the transport and the address of the resource to be loaded:
     of the directModel field in this resourceSpec. Documentation for core Infusion
     DataSources will
     be ported soon, in the meantime you may refer to the docs on
-    
+    
     Kettle DataSources and substitute kettle for fluid in all gradeNames.
     
     fluid.dataSource
diff --git a/src/documents/SubcomponentDeclaration.md b/src/documents/SubcomponentDeclaration.md
index 76682af1..652883a4 100644
--- a/src/documents/SubcomponentDeclaration.md
+++ b/src/documents/SubcomponentDeclaration.md
@@ -303,8 +303,8 @@ Although this facility is powerful, the reader will note the peculiar asymmetry
 framework may be directed to construct these components in a declarative way, but they may only be destroyed
 procedurally through a call to the component's `destroy()` function. An improved and properly symmetric version of this
 facility will be delivered as part of work on the new Fluid Renderer as described by
-[FLUID-5047](http://issues.fluidproject.org/browse/FLUID-5047) and related JIRAs, and the system described here will be
-withdrawn, as with previous "bridging technologies" such as the initFunction system.
+[FLUID-5047](https://fluidproject.atlassian.net/browse/FLUID-5047) and related JIRAs, and the system described here will
+be withdrawn, as with previous "bridging technologies" such as the initFunction system.
 
 ### Dynamic subcomponents with a source array
 
diff --git a/src/documents/SwitchAPI.md b/src/documents/SwitchAPI.md
index 3c68b4d3..38f8be5f 100644
--- a/src/documents/SwitchAPI.md
+++ b/src/documents/SwitchAPI.md
@@ -19,7 +19,7 @@ var switchUIWithOptions = fluid.switchUI(container, options);
 
 #### container
 
-The `container` parameter is a CSS-based [selector](http://api.jquery.com/category/selectors/), single-element jQuery
+The `container` parameter is a CSS-based [selector](https://api.jquery.com/category/selectors/), single-element jQuery
 object, or DOM element specifying the containing element for the Switch.
 
 #### options parameter
diff --git a/src/documents/TextToSpeechAPI.md b/src/documents/TextToSpeechAPI.md
index 20bd48f9..ea629a58 100644
--- a/src/documents/TextToSpeechAPI.md
+++ b/src/documents/TextToSpeechAPI.md
@@ -4,12 +4,12 @@ category: Components
 ---
 
 The **Text To Speech** component uses [Web Speech Synthesis
-API](https://dvcs.w3.org/hg/speech-api/raw-file/tip/webspeechapi.html#tts-section) to queue up and read texts.
+API](https://wicg.github.io/speech-api/#tts-section) to queue up and read texts.
 
 ## Browser Support
 
 The Text To Speech component can be used in browsers that support [Web Speech Synthesis
-API](https://dvcs.w3.org/hg/speech-api/raw-file/tip/webspeechapi.html#tts-section). At the time of writing, July 26
+API](https://wicg.github.io/speech-api/#tts-section). At the time of writing, July 26
 2016, these browsers include:
 
 * Chrome 31+
@@ -21,7 +21,7 @@ API](https://dvcs.w3.org/hg/speech-api/raw-file/tip/webspeechapi.html#tts-sectio
 
 
Note: find the latest browser support data for Web Speech Synthesis API from caniuse.com. + href="https://caniuse.com/speech-recognition">caniuse.com.
## Creator @@ -376,7 +376,7 @@ speech: Configuration of the Text To Speech component can be done through `model.utteranceOpts`. This model path is a Javascript object that contains attributes that users can use to define the behaviour of the [SpeechSynthesisUtterance -instance](https://dvcs.w3.org/hg/speech-api/raw-file/tip/webspeechapi.html#utterance-attributes) (a part of the web +instance](https://wicg.github.io/speech-api/#utterance-attributes) (a part of the web speech API that the Text To Speech component interacts with).
@@ -430,7 +430,7 @@ fluid.textToSpeech({ Description The lang attribute gives you ability to specify a BCP 47 language tag indicating the language of the + href="https://www.ietf.org/rfc/bcp/bcp47.txt">BCP 47 language tag indicating the language of the voice. @@ -465,16 +465,16 @@ fluid.textToSpeech({ Description The voice attribute must be a SpeechSynthesisVoice + href="https://wicg.github.io/speech-api/#speechsynthesisvoice">SpeechSynthesisVoice object that specifies the speech synthesis voice that the web application wishes to use. Calling the getVoices method returns an array of all available voices, from which you can select a valid SpeechSynthesisVoice, or you can call the SpeechSynthesis.getVoices() + href="https://wicg.github.io/speech-api/#dom-speechsynthesis-getvoices">SpeechSynthesis.getVoices() function of the browser directly.
Note: in some browsers (such as Chrome), the voice list is populated after the page is loaded, and you may need to wait for the voiceschanged + href="https://wicg.github.io/speech-api/#dom-speechsynthesis-onvoiceschanged">voiceschanged event to get a full list.
diff --git a/src/documents/TextfieldAPI.md b/src/documents/TextfieldAPI.md index 1aa79e46..438c035a 100644 --- a/src/documents/TextfieldAPI.md +++ b/src/documents/TextfieldAPI.md @@ -93,7 +93,7 @@ var textfield = fluid.textfield(".flc-textfield", {
event
- A jQuery event object + A jQuery event object including a change value. The setModel method will source the change value from event.target.value.
diff --git a/src/documents/UploaderAPI.md b/src/documents/UploaderAPI.md index 1d651a95..49bbfbbc 100644 --- a/src/documents/UploaderAPI.md +++ b/src/documents/UploaderAPI.md @@ -76,7 +76,7 @@ calling methods on the Uploader, be sure to check its `typeName` or use duck typ #### container -The `container` is a CSS-based [selector](http://docs.jquery.com/Selectors), single-element jQuery object, or DOM +The `container` is a CSS-based [selector](https://api.jquery.com/category/selectors/), single-element jQuery object, or DOM element that identifies the root DOM node of the Uploader markup. #### options @@ -404,7 +404,7 @@ when querying the filestatus property of a [File object](#file-objects). fluid.uploader.errorConstants.SPECIFIED_FILE_ID_NOT_FOUND This indicates an error in the Uploader and should be filed as a bug. + href="https://fluidproject.atlassian.net/jira/software/c/projects/FLUID/issues">bug. diff --git a/src/documents/ViewAPI.md b/src/documents/ViewAPI.md index 60b4e060..11c086f5 100644 --- a/src/documents/ViewAPI.md +++ b/src/documents/ViewAPI.md @@ -73,7 +73,7 @@ unchanged. * `newValue {String|Boolean|Array of String}` [optional] The value to be written - if omitted, the value will be read * Returns: `{String|Array of String}` The value read from the DOM, if required -A generalisation of [`jQuery.val`](http://api.jquery.com/val/) to correctly handle the case of acquiring and setting the +A generalisation of [`jQuery.val`](https://api.jquery.com/val/) to correctly handle the case of acquiring and setting the value of clustered radio button/checkbox sets, potentially, given a node corresponding to just one element. If the supplied element is not an HTML radio button or checkbox, the implementation will defer to `jQuery.val`. If the supplied element is an HTML radio button or checkbox, the function will automatically acquire all other elements sharing the same @@ -83,8 +83,8 @@ HTML `name` within the same `form` element before performing the read or write. A standalone utility and associated component for easily managing an [ARIA live region](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions) and/or the -[`aria-label`](http://www.w3.org/TR/wai-aria/complete#aria-label) holding a label associated with a particular DOM node -in the document. +[`aria-label`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-label) holding a label +associated with a particular DOM node in the document. ### fluid.updateAriaLabel(element, text[, options]) diff --git a/src/documents/documents.11tydata.js b/src/documents/documents.11tydata.js index e1090613..aee6d5a5 100644 --- a/src/documents/documents.11tydata.js +++ b/src/documents/documents.11tydata.js @@ -11,7 +11,7 @@ module.exports = { var githubDocRoot = "https://github.com/fluid-project/infusion-docs/blob/main/src"; // In case we're on Windows, replace "\" in the path with "/" var relativePath = data.page.filePathStem.replace(/\\/g, "/"); - return githubDocRoot + relativePath + ".md"; + return `${githubDocRoot}${relativePath}.${data.page.inputPath.split(".").at(-1)}`; } } }; diff --git a/src/documents/index.md b/src/documents/index.md index 30845fbf..8db6267b 100644 --- a/src/documents/index.md +++ b/src/documents/index.md @@ -13,4 +13,4 @@ to navigate the content. See the Infusion website at: - + diff --git a/src/documents/jqUnit.md b/src/documents/jqUnit.md index 737c7453..a360f4e3 100644 --- a/src/documents/jqUnit.md +++ b/src/documents/jqUnit.md @@ -27,18 +27,18 @@ example simulating user GUI interaction or HTTP requests, you should use the IoC ### jqUnit.module(name, hooks) Starts a group of related tests which will display with the module's name as a prefix. Direct passthrough for -[QUnit.module](http://api.qunitjs.com/QUnit.module/) +[QUnit.module](https://qunitjs.com/api/QUnit/module/) ### jqUnit.test(name, testFunc) Registers (queues) a synchronous test fixture by providing a callback which will run it. Direct passthrough for -[QUnit.test](http://api.qunitjs.com/QUnit.test/). This is equivalent to a call to `jqUnit.asyncTest`, where the fixture +[QUnit.test](https://qunitjs.com/api/QUnit/test/). This is equivalent to a call to `jqUnit.asyncTest`, where the fixture ends with `jqUnit.start`. ### jqUnit.asyncTest(name, testFunc) Registers (queues) an asynchronous test fixture by providing a callback which will run it. Direct passthrough for -[QUnit.asyncTest](http://api.qunitjs.com/QUnit.asyncTest/). +[QUnit.asyncTest](https://qunitjs.com/api/QUnit/test/). ### jqUnit.start() @@ -47,19 +47,19 @@ is that whilst the system is suspended by `stop`, the test currently in progress will not proceed until it resumes. Note that QUnit's suspension has the semantics of a [Counting Semaphore](https://en.wikipedia.org/wiki/Semaphore_%28programming%29#Semantics_and_implementation) in that repeated calls to `jqUnit.stop` are possible and must be matched by an equal number of calls to `jqUnit.start` before the system -will resume. Direct passthrough for [QUnit.start](http://api.qunitjs.com/QUnit.start/). +will resume. Direct passthrough for [QUnit.start](https://qunitjs.com/api/QUnit/start/). ### jqUnit.stop() Suspends QUnit's progression through its fixtures. QUnit will not continue to the next queued test fixture until it has -been resumed with `jqUnit.start`. Direct passthrough for [QUnit.start](http://api.qunitjs.com/QUnit.stop/). +been resumed with `jqUnit.start`. Direct passthrough for [QUnit.start](https://qunitjs.com/upgrade-guide-2.x/#introducing-assertasync). ### jqUnit.expect(count) Informs QUnit that it must receive a certain number of successful assertions in the current fixture, or else the fixture will fail. Note that multiple successive calls to `jqUnit.expect` within the same fixture will be **cumulative** - this -is different to QUnit's base behaviour for [`QUnit.expect`](http://api.qunitjs.com/expect/) where successive calls to -`QUnit.expect` will overwrite the framework's expected count. +is different to QUnit's base behaviour for [`QUnit.expect`](https://qunitjs.com/api/assert/expect/) where successive +calls to `QUnit.expect` will overwrite the framework's expected count. * `count: {Integer}` The number of (additional) successful assertions to be expected @@ -76,24 +76,24 @@ below contains an entry: ### jqUnit.assert(message) An assertion which unconditionally succeeds, and raises the successful assertion count by one. Equivalent to -[`QUnit.ok(true, message)`](http://api.qunitjs.com/ok/). +[`QUnit.ok(true, message)`](https://qunitjs.com/api/assert/ok/). ### jqUnit.fail(message) An assertion which unconditionally fails, and then aborts the current fixture. Equivalent to [`QUnit.ok(false, -message)`](http://api.qunitjs.com/ok/). +message)`](https://qunitjs.com/api/assert/ok/). ### jqUnit.assertTrue(message, value) * `value {Any}` The value to be tested -Asserts that the supplied value is `true`. Equivalent to [`QUnit.ok(value, message)`](http://api.qunitjs.com/ok/). +Asserts that the supplied value is `true`. Equivalent to [`QUnit.ok(value, message)`](https://qunitjs.com/api/assert/ok/). ### jqUnit.assertFalse(message, value) * `value {Any}` The value to be tested -Asserts that the supplied value is `false`. Equivalent to [`QUnit.ok(!value, message)`](http://api.qunitjs.com/ok/). +Asserts that the supplied value is `false`. Equivalent to [`QUnit.ok(!value, message)`](https://qunitjs.com/api/assert/ok/). ### jqUnit.assertUndefined(message, value) @@ -137,7 +137,7 @@ Asserts that the supplied value is either `null` or `undefined`. * `value {Any}` The value to be tested Asserts that the supplied value is equal to the one supplied as `expected`. This will be performed by a strict equality -check (`===`) - equivalent to [`QUnit.strictEqual(actual, expected, message)`](http://api.qunitjs.com/strictEqual/) +check (`===`) - equivalent to [`QUnit.strictEqual(actual, expected, message)`](https://qunitjs.com/api/assert/strictEqual/) ### jqUnit.assertNotEquals(message, unexpected value) @@ -146,7 +146,7 @@ check (`===`) - equivalent to [`QUnit.strictEqual(actual, expected, message)`](h Asserts that the supplied value is not equal to the one supplied as `unexpected`. This will be performed by a strict inequality check (`!==`) - equivalent to [`QUnit.notStrictEqual(actual, expected, -message)`](http://api.qunitjs.com/notStrictEqual/) +message)`](https://qunitjs.com/api/assert/notStrictEqual/) ### jqUnit.assertDeepEq(message, expected, value) @@ -155,7 +155,7 @@ message)`](http://api.qunitjs.com/notStrictEqual/) Asserts that the supplied value is equal to the one supplied as `expected`. This will be performed by a deep equality check on the basis of properties only (ignoring constructors and prototypes) - equivalent to [`QUnit.propEqual(actual, -expected, message)`](http://api.qunitjs.com/propEqual/) +expected, message)`](https://qunitjs.com/api/assert/propEqual/) ### jqUnit.assertDeepNeq(message, unexpected, value) @@ -164,7 +164,7 @@ expected, message)`](http://api.qunitjs.com/propEqual/) Asserts that the supplied value is not equal to the one supplied as `unexpected`. This will be performed by a deep equality check on the basis of properties only (ignoring constructors and prototypes) - -equivalent to [`QUnit.notPropEqual(actual, expected, message)`](http://api.qunitjs.com/notPropEqual/) +equivalent to [`QUnit.notPropEqual(actual, expected, message)`](https://qunitjs.com/api/assert/notPropEqual/) ### jqUnit.assertCanoniseEqual(message, expected, value, canonFunc) diff --git a/src/documents/to-do/AddingPrefsEditorToSite.md b/src/documents/to-do/AddingPrefsEditorToSite.md index 93ba5a98..545f9cb2 100644 --- a/src/documents/to-do/AddingPrefsEditorToSite.md +++ b/src/documents/to-do/AddingPrefsEditorToSite.md @@ -4,5 +4,5 @@ category: Tutorials --- _This page is still under construction. An archived version can be found on the -[Adding a Basic Preferences Editor to a Site](http://wiki.fluidproject.org/display/docs/Tutorial+-+Adding+a+Basic+Preferences+Editor+to+a+Site) -page of the [Infusion Documentation wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +[Adding a Basic Preferences Editor to a Site](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079708/Tutorial+-+Adding+a+Basic+Preferences+Editor+to+a+Site) +page of the [Infusion Documentation wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/GridReordererAPI.md b/src/documents/to-do/GridReordererAPI.md index 620d5c8d..83753678 100644 --- a/src/documents/to-do/GridReordererAPI.md +++ b/src/documents/to-do/GridReordererAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Grid Reorderer -API](http://wiki.fluidproject.org/display/docs/Grid+Reorderer+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079642/Grid+Reorderer+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/InlineEdit.md b/src/documents/to-do/InlineEdit.md index 8882bc8b..4b5c8737 100644 --- a/src/documents/to-do/InlineEdit.md +++ b/src/documents/to-do/InlineEdit.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Inline -Edit](http://wiki.fluidproject.org/display/docs/Inline+Edit) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +Edit](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079647/Inline+Edit) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/InlineEditAPI.md b/src/documents/to-do/InlineEditAPI.md index b0ebdc4b..8f2e199b 100644 --- a/src/documents/to-do/InlineEditAPI.md +++ b/src/documents/to-do/InlineEditAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Inline Edit -API](http://wiki.fluidproject.org/display/docs/Inline+Edit+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079510/Inline+Edit+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/LayoutReordererAPI.md b/src/documents/to-do/LayoutReordererAPI.md index 10359e66..3faf2785 100644 --- a/src/documents/to-do/LayoutReordererAPI.md +++ b/src/documents/to-do/LayoutReordererAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Layout Reorderer -API](http://wiki.fluidproject.org/display/docs/Layout+Reorderer+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079640/Layout+Reorderer+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/ListReordererAPI.md b/src/documents/to-do/ListReordererAPI.md index 8db13d60..53e22cfe 100644 --- a/src/documents/to-do/ListReordererAPI.md +++ b/src/documents/to-do/ListReordererAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [List Reorderer -API](http://wiki.fluidproject.org/display/docs/List+Reorderer+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079617/List+Reorderer+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/Pager.md b/src/documents/to-do/Pager.md index a9f15d93..b46aca57 100644 --- a/src/documents/to-do/Pager.md +++ b/src/documents/to-do/Pager.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the -[Pager](http://wiki.fluidproject.org/display/docs/Pager) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +[Pager](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079626/Pager) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/PagerAPI.md b/src/documents/to-do/PagerAPI.md index 81187408..37638907 100644 --- a/src/documents/to-do/PagerAPI.md +++ b/src/documents/to-do/PagerAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Pager -API](http://wiki.fluidproject.org/display/docs/Pager+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079506/Pager+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/Progress.md b/src/documents/to-do/Progress.md index e6b25e48..3d8ddf76 100644 --- a/src/documents/to-do/Progress.md +++ b/src/documents/to-do/Progress.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the -[Progress](http://wiki.fluidproject.org/display/docs/Progress) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +[Progress](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079598/Progress) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/ProgressAPI.md b/src/documents/to-do/ProgressAPI.md index 54024d8f..f67d1b40 100644 --- a/src/documents/to-do/ProgressAPI.md +++ b/src/documents/to-do/ProgressAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Progress -API](http://wiki.fluidproject.org/display/docs/Progress+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079517/Progress+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/Reorderer.md b/src/documents/to-do/Reorderer.md index 1c46cf8f..ed2fef2d 100644 --- a/src/documents/to-do/Reorderer.md +++ b/src/documents/to-do/Reorderer.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the -[Reorderer](http://wiki.fluidproject.org/display/docs/Reorderer) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +[Reorderer](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079319/Reorderer) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/ReordererAPI.md b/src/documents/to-do/ReordererAPI.md index ab7e08bd..beb8c745 100644 --- a/src/documents/to-do/ReordererAPI.md +++ b/src/documents/to-do/ReordererAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Reorderer -API](http://wiki.fluidproject.org/display/docs/Reorderer+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079505/Reorderer+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/TableOfContentsAPI.md b/src/documents/to-do/TableOfContentsAPI.md index 03484bf7..1e2ae36d 100644 --- a/src/documents/to-do/TableOfContentsAPI.md +++ b/src/documents/to-do/TableOfContentsAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Table of Contents -API](http://wiki.fluidproject.org/display/docs/Table+of+Contents+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7077980/Table+of+Contents+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/TalkingToTheServerUsingTheAfterMoveEvent.md b/src/documents/to-do/TalkingToTheServerUsingTheAfterMoveEvent.md index 92371c0f..33f65a5d 100644 --- a/src/documents/to-do/TalkingToTheServerUsingTheAfterMoveEvent.md +++ b/src/documents/to-do/TalkingToTheServerUsingTheAfterMoveEvent.md @@ -4,5 +4,5 @@ category: API --- _This page is still under construction. An archived version can be found on the -[Talking to the Server Using The afterMove Event](http://wiki.fluidproject.org/display/docs/Talking+to+the+Server+Using+The+afterMove+Event) -page of the [Infusion Documentation wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +[Talking to the Server Using The afterMove Event](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079589/Talking+to+the+Server+Using+The+afterMove+Event) +page of the [Infusion Documentation wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/UIEnhancer.md b/src/documents/to-do/UIEnhancer.md index f6b41bcf..69c2e0b7 100644 --- a/src/documents/to-do/UIEnhancer.md +++ b/src/documents/to-do/UIEnhancer.md @@ -4,5 +4,5 @@ category: Infusion --- _This page is still under construction. An archived version can be found on the [UI -Enhancer](http://wiki.fluidproject.org/display/docs/UI+Enhancer) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +Enhancer](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079679/UI+Enhancer) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/UndoAPI.md b/src/documents/to-do/UndoAPI.md index d74bd9d0..61316454 100644 --- a/src/documents/to-do/UndoAPI.md +++ b/src/documents/to-do/UndoAPI.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [Undo -API](http://wiki.fluidproject.org/display/docs/Undo+API) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +API](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079715/Undo+API) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/Uploader.md b/src/documents/to-do/Uploader.md index 65d78c32..7b15055e 100644 --- a/src/documents/to-do/Uploader.md +++ b/src/documents/to-do/Uploader.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the -[Uploader](http://wiki.fluidproject.org/display/docs/Uploader) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +[Uploader](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079472/Uploader) page of the [Infusion Documentation +wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/UserInterfaceOptions.md b/src/documents/to-do/UserInterfaceOptions.md index d9e2e35b..c6056a88 100644 --- a/src/documents/to-do/UserInterfaceOptions.md +++ b/src/documents/to-do/UserInterfaceOptions.md @@ -4,5 +4,5 @@ category: Components --- _This page is still under construction. An archived version can be found on the [User Interface -Options](http://wiki.fluidproject.org/display/docs/User+Interface+Options) page of the [Infusion Documentation -wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +Options](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079536/User+Interface+Options) page of the +[Infusion Documentation wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/to-do/WorkingWithPrefsEditorOnSite.md b/src/documents/to-do/WorkingWithPrefsEditorOnSite.md index 57b49142..693ab002 100644 --- a/src/documents/to-do/WorkingWithPrefsEditorOnSite.md +++ b/src/documents/to-do/WorkingWithPrefsEditorOnSite.md @@ -4,5 +4,5 @@ category: Tutorials --- _This page is still under construction. An archived version can be found on the -[Working With A Preferences Editor On Your Site](http://wiki.fluidproject.org/display/docs/Working+With+A+Preferences+Editor+On+Your+Site) -page of the [Infusion Documentation wiki](http://wiki.fluidproject.org/display/docs/Infusion+Documentation)._ +[Working With A Preferences Editor On Your Site](https://fluidproject.atlassian.net/wiki/spaces/docs/pages/7079549/Working+With+A+Preferences+Editor+On+Your+Site) +page of the [Infusion Documentation wiki](https://fluidproject.atlassian.net/wiki/spaces/docs/overview)._ diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Components.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Components.md index fe6b4694..3e699210 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Components.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Components.md @@ -29,7 +29,7 @@ A new Infusion component grade is defined using the `fluid.defaults` function an might look like this:
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/oBYvwx?editors=1111">Live Example of the code below on CodePen
``` javascript // The first argument is the name of the new component, the second is the diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ConcludingRemarks.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ConcludingRemarks.md index a6b7c256..26e839dc 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ConcludingRemarks.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ConcludingRemarks.md @@ -8,10 +8,13 @@ haven't covered, but with these foundational concepts, we hope you go on to furt We'll summarize what we've done below, then suggest some next steps. -
Note: If you have feedback about this tutorial, we'd be glad to hear it -via our IRC channels, mailing lists or the Infusion issue tracker.
+
+ Note: If you have feedback about this tutorial, we'd be glad to hear it via our + Matrix channels, + mailing lists + or the Infusion + issue tracker. +
## Summing Up @@ -57,6 +60,6 @@ href="https://issues.fluidproject.org/projects/FLUID/summary">issue tracker. * Read [further documentation on Infusion](../), including many advanced topics not covered here such as [using Infusion in node.js](../NodeAPI.md), [advanced features of model transformation](../ModelTransformationAPI.md) and [unit testing](../jqUnit.md). -* [Get involved](https://wiki.fluidproject.org/display/fluid/Get+Involved) in the [Fluid Project](http://fluidproject.org/), +* [Get involved](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11547481/Get+Involved) in the [Fluid Project](https://fluidproject.org/), the open-source software community that supports, works with and evolves the Infusion framework. -* See examples of software built with Infusion at projects like [FLOE](http://floeproject.org/) and the [GPII](http://gpii.net/). +* See examples of software built with Infusion at projects like [FLOE](https://floeproject.org/) and the [GPII](https://raisingthefloor.org/the-global-public-infrastructure/). diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-EventsAndInversionOfControl.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-EventsAndInversionOfControl.md index a750abca..75e4f4e6 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-EventsAndInversionOfControl.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-EventsAndInversionOfControl.md @@ -22,7 +22,7 @@ We can use a listener definition, the `onCreate` lifecycle event and IoC `{that} it's ready, rather than needing to be manually called:
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/LxbPQZ?editors=1111">Live Example of the code below on CodePen ``` javascript fluid.defaults("fluidTutorial.helloWorld", { diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ExtendingDesignsWithExistingComponents.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ExtendingDesignsWithExistingComponents.md index 137eb56f..8cd75f18 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ExtendingDesignsWithExistingComponents.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ExtendingDesignsWithExistingComponents.md @@ -21,7 +21,7 @@ We'll extend the code further using an existing Infusion [text to speech](../Tex work in a modern text to speech supporting browser:
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/vgyBbe?editors=1111">Live Example of the code below on CodePen ``` javascript fluid.defaults("fluidTutorial.helloWorld.sayHello", { diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Invokers.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Invokers.md index f45ac75b..c1d082ce 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Invokers.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-Invokers.md @@ -15,7 +15,7 @@ While there are [other styles of invokers possible](../Invokers.md#types-of-invo allows us to refer to a free function (one not attached to a specific object).
You can check out the [Live Example of the code below on -CodePen](http://codepen.io/waharnum/pen/MJbgEx?editors=1111)
+CodePen](https://codepen.io/waharnum/pen/MJbgEx?editors=1111) ``` javascript fluid.defaults("fluidTutorial.helloWorld", { diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ModelsAndModelComponents.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ModelsAndModelComponents.md index 3c1d24ef..a7f3cb31 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ModelsAndModelComponents.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ModelsAndModelComponents.md @@ -28,7 +28,7 @@ arguments, and refer to it from the `sayHello` invoker using IoC syntax. In the `fluid.component` to a `fluid.modelComponent`.
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/XpNrEr?editors=1111">Live Example of the code below on CodePen ``` javascript fluid.defaults("fluidTutorial.helloWorld", { @@ -68,7 +68,7 @@ invoking a function involving the changed model state. We'll implement this belo `sayHello` function with the message content each time it changes.
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/oBYvPB?editors=1111">Live Example of the code below on CodePen ``` javascript fluid.defaults("fluidTutorial.helloWorld", { diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OpeningRemarks.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OpeningRemarks.md index 60ffa028..b1971fcb 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OpeningRemarks.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OpeningRemarks.md @@ -13,13 +13,13 @@ time. The introduction assumes: * You are familiar with the basics of [JavaScript](https://developer.mozilla.org/en-US/docs/Learn/JavaScript). -* You know how to use a browser's [developer tools](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools) +* You know how to use a browser's [developer tools](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Tools_and_setup/What_are_browser_developer_tools) to access a console. * Ideally, you should also have some experience with the [jQuery](https://jquery.com/) JavaScript library that Infusion is built atop. We will build and evolve a ["Hello, World!"](https://en.wikipedia.org/wiki/%22Hello,_World!%22_program) implementation -to demonstrate the core concepts, with live examples throughout using the [CodePen](http://codepen.io/) service. +to demonstrate the core concepts, with live examples throughout using the [CodePen](https://codepen.io/) service. ## Infusion's Core Concepts diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OverridingInvokersAndRefactoring.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OverridingInvokersAndRefactoring.md index 2d8a6511..3ddf071f 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OverridingInvokersAndRefactoring.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-OverridingInvokersAndRefactoring.md @@ -16,7 +16,7 @@ Let's refactor to avoid duplication and create a base "say hello" component that can derive from:
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/bgBbOm?editors=1111">Live Example of the code below on CodePen ``` javascript fluid.defaults("fluidTutorial.helloWorld.sayHello", { diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-RestructuringComponents.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-RestructuringComponents.md index ac047f27..7705d9f8 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-RestructuringComponents.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-RestructuringComponents.md @@ -17,7 +17,7 @@ In the process, we'll be looking at some other important characteristics of Infu 2. Overriding default component configuration when building up applications from separate components.
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/egBObY?editors=1111">Live Example of the code below on CodePen ```javascript // The console hello functionality is now defined as a separate diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-SubcomponentsAndModelRelaying.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-SubcomponentsAndModelRelaying.md index 768bce52..20155f25 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-SubcomponentsAndModelRelaying.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-SubcomponentsAndModelRelaying.md @@ -13,7 +13,7 @@ subcomponents, and synchronizes the "hello" message through model relay. We'll a model listener to respond to model changes.
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/rjWBQN?editors=1111">Live Example of the code below on CodePen ```javascript fluid.defaults("fluidTutorial.helloWorld", { diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-TransformingModelRelays.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-TransformingModelRelays.md index 8c8885b3..56c88d5b 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-TransformingModelRelays.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-TransformingModelRelays.md @@ -17,7 +17,7 @@ a function that reverses a string, and our `reverseSpeakHello` subcomponent will `speakHello` subcomponent has spoken it.
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/gWGQyN?editors=1111">Live Example of the code below on CodePen ```javascript var helloWorld; diff --git a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ViewsAndViewComponents.md b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ViewsAndViewComponents.md index c73121a1..85c8c4e8 100644 --- a/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ViewsAndViewComponents.md +++ b/src/documents/tutorial-developerIntroduction/DeveloperIntroductionToInfusionFramework-ViewsAndViewComponents.md @@ -14,7 +14,7 @@ argument to the creator function: `var helloWorld = fluidTutorial.helloWorld(".helloWorld", {});`
Note: You can check out the Live Example of the code below on CodePen
+href="https://codepen.io/waharnum/pen/MJbgVR?editors=1111">Live Example of the code below on CodePen Let's turn the "Hello, World!" component into a view component that writes its initial message to the screen as well, assuming we have this HTML on the page: diff --git a/src/documents/tutorial-gettingStartedWithInfusion/SetUpYourEnvironment.md b/src/documents/tutorial-gettingStartedWithInfusion/SetUpYourEnvironment.md index 838ef38a..d2c3c337 100644 --- a/src/documents/tutorial-gettingStartedWithInfusion/SetUpYourEnvironment.md +++ b/src/documents/tutorial-gettingStartedWithInfusion/SetUpYourEnvironment.md @@ -12,7 +12,7 @@ Part of the [Getting Started with Infusion Component Design Tutorial](GettingSta For this tutorial we'll assume this component is being created for your own use, not as a contribution to Infusion. If you do want to contribute your component to Infusion, the directory set-up and requirements will be a little different -and is explained in [Contributing Code](http://wiki.fluidproject.org/display/fluid/Contributing+Code). +and is explained in [Contributing Code](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11585981/Contributing+Code). Let's suppose you're creating a component that will carry out currency conversion. You'll need to get a copy of Infusion: diff --git a/src/documents/tutorial-gettingStartedWithInfusion/ViewComponents.md b/src/documents/tutorial-gettingStartedWithInfusion/ViewComponents.md index 58ad8f59..ae85e46a 100644 --- a/src/documents/tutorial-gettingStartedWithInfusion/ViewComponents.md +++ b/src/documents/tutorial-gettingStartedWithInfusion/ViewComponents.md @@ -43,9 +43,9 @@ fluid.defaults("tutorials.viewBearingComponent", { ### Selectors The `selectors` property in your defaults is the list of DOM elements you want to work with in your interface. The -object is a list of named [CSS-based selectors](http://docs.jquery.com/Selectors). The names should be generic and refer -to the nature of the interface element, such as "saveButton" or "sliderHandle." By specifying your selectors on your -component's defaults, integrators can override the selectors without requiring any changes to your component. +object is a list of named [CSS-based selectors](https://api.jquery.com/category/selectors/). The names should be generic +and refer to the nature of the interface element, such as "saveButton" or "sliderHandle." By specifying your selectors +on your component's defaults, integrators can override the selectors without requiring any changes to your component. ## Example: Currency Converter diff --git a/src/documents/tutorial-iconFonts/HowToCreateAndUseFontIcons.md b/src/documents/tutorial-iconFonts/HowToCreateAndUseFontIcons.md index 26d14368..556922d4 100644 --- a/src/documents/tutorial-iconFonts/HowToCreateAndUseFontIcons.md +++ b/src/documents/tutorial-iconFonts/HowToCreateAndUseFontIcons.md @@ -29,7 +29,7 @@ However, there are some shortcomings to keep in mind: ## Procedure Summary * Create the icon and save it as an SVG graphic. -* Use [IcoMoon](http://icomoon.io/) to generate a font from an SVG graphic. +* Use [IcoMoon](https://icomoon.io/) to generate a font from an SVG graphic. * Add the font to your markup. Example: ```css @@ -68,8 +68,7 @@ Download Example SVG file: [pencil-icon-01.svg](/images//pencil-icon-01.svg) Steps: -1. Go to [IcoMoon](http://icomoon.io/app) (you can also run IcoMoon in "offline" mode in Chrome browser by installing - the [IcoMoon Chrome app](http://goo.gl/we6ra)) +1. Go to [IcoMoon](https://icomoon.io/app/#/select) 2. Import your SVG icon - select "Import Icons" and choose your SVG file. 3. Select your icon from the list (should appear under "Your Custom Icons" section, and select the "Font ->" button at the bottom of the screen. @@ -141,7 +140,7 @@ Finally, add the new icon into the BEFORE pseudo class and delete any references This is all that is needed to add the new icon to your markup. You will notice there is a line specific to IE8 - for more information on this, please see -[http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax](http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax). +[The New Bulletproof @Font-Face syntax](https://blog.fontspring.com/2011/02/the-new-bulletproof-font-face-syntax/). ## Unicode for font @@ -291,7 +290,7 @@ format('embedded-opentype')` to your CSS. For example: The IE8 fix needs to be the first URL in the list of sources otherwise the font will not appear. -Reference: [http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax](http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax) +Reference: [The New Bulletproof @Font-Face Syntax](https://blog.fontspring.com/2011/02/the-new-bulletproof-font-face-syntax/) ### Dealing with the TTF Unicode @@ -311,7 +310,7 @@ on Windows and Mac OS X 10.6+. #### Obtaining Unicode in Mac OS X 10.6 or Later 1. Enable Special Characters support as documented in this Apple Knowledge Base article: - [OS X Lion: Enter special characters and symbols](http://support.apple.com/kb/ph3871) + [OS X Lion: Enter special characters and symbols](https://support.apple.com/en-ca/guide/mac-help/mchlp1560/mac) 2. Install the custom TTF font to the OS (usually double-click, then "Install"). 3. Launch the Font Book application. 4. Also launch the Notes application. diff --git a/src/documents/tutorial-migratingToInfusion1.5/PagerMigration.md b/src/documents/tutorial-migratingToInfusion1.5/PagerMigration.md index 9b97f229..ac6ffa4d 100644 --- a/src/documents/tutorial-migratingToInfusion1.5/PagerMigration.md +++ b/src/documents/tutorial-migratingToInfusion1.5/PagerMigration.md @@ -187,6 +187,6 @@ must also be housed in the `components` block of the parent component, rather th |fluid.pager.rangeAnnotator|fluid.pagedTable.rangeAnnotator| Note that the Pager Component remains in "Sneak Peek" mode for the 1.5 release and its API is not expected to be stable. -Please get in touch with the Infusion team on IRC or the mailing lists (see -[http://wiki.fluidproject.org/display/fluid/Collaborate](http://wiki.fluidproject.org/display/fluid/Collaborate)) if you +Please get in touch with the Infusion team on Chat or the mailing lists (see +[Get Involved](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11547481/Get+Involved)) if you are contemplating any non-trivial usage. diff --git a/src/documents/tutorial-prefsFramework/CreatingANewAdjusterUI.md b/src/documents/tutorial-prefsFramework/CreatingANewAdjusterUI.md index 68329345..6d7ffb43 100644 --- a/src/documents/tutorial-prefsFramework/CreatingANewAdjusterUI.md +++ b/src/documents/tutorial-prefsFramework/CreatingANewAdjusterUI.md @@ -232,7 +232,7 @@ For the radio buttons: Currently the description label must be placed before the on/off toggle to prevent spacing issues from occurring. This will be addressed with a restyling of the on/off toggle with more details at the [FLUID-5708 -JIRA](https://issues.fluidproject.org/browse/FLUID-5708) +JIRA](https://fluidproject.atlassian.net/browse/FLUID-5708) ```html diff --git a/src/documents/tutorial-prefsFramework/CreatingAPrefsEditor.md b/src/documents/tutorial-prefsFramework/CreatingAPrefsEditor.md index 8f463971..77d99fc7 100644 --- a/src/documents/tutorial-prefsFramework/CreatingAPrefsEditor.md +++ b/src/documents/tutorial-prefsFramework/CreatingAPrefsEditor.md @@ -35,8 +35,8 @@ We recommend you download the Infusion library and load the example code into yo Your company, Awesome Cars, has created the world’s first flying car. The example code is a Preference Editor for the car. If you run a local webserver (for example using [this -approach](http://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python), or using -[MAMP](https://www.mamp.info/en/)) and navigate to the `index.html` file in a browser, you should see this interface: +approach](https://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python), or using +[MAMP](https://www.mamp.info/en/mac/)) and navigate to the `index.html` file in a browser, you should see this interface:
The screen of the example Preference Editor @@ -69,7 +69,7 @@ Let’s take a close look at the code. The [Primary Schema](../PrimarySchemaForPreferencesFramework.md) is a document that defines the preferences for the Editor. The Primary Schema for our example Editor is defined in the `schemas/primary.js` file using the JSON schema -format (you can learn about JSON schemas at [http://json-schema.org/](http://json-schema.org/)): +format (you can learn about JSON schemas at ): ```javascript /** diff --git a/src/documents/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.md b/src/documents/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.md index f4e6ec1d..389bf036 100644 --- a/src/documents/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.md +++ b/src/documents/tutorial-prefsFrameworkMinimalFootprint/MinimalFootprint.md @@ -11,12 +11,11 @@ optimizations. Below are some resources which discuss general website optimization strategies: -* [https://developers.google.com/speed/](https://developers.google.com/speed/) -* [https://developers.google.com/speed/docs/insights/rules](https://developers.google.com/speed/docs/insights/rules) -* [https://developers.google.com/web/fundamentals/performance](https://developers.google.com/web/fundamentals/performance) -* [https://www.maxcdn.com/blog/frontend-optimizations/](https://www.maxcdn.com/blog/frontend-optimizations/) -* [https://www.smashingmagazine.com/2014/09/improving-smashing-magazine-performance-case-study/](https://www.smashingmagazine.com/2014/09/improving-smashing-magazine-performance-case-study/) -* [https://hpbn.co](https://hpbn.co) +* [Analyze and optimize your website with PageSpeed tools](https://developers.google.com/speed/) +* [Get Started with the PageSpeed Insights API](https://developers.google.com/speed/docs/insights/v5/get-started) +* [Why does speed matter?](https://web.dev/learn/performance/why-speed-matters) +* [Improving Smashing Magazine’s Web Performance: A Case Study](https://www.smashingmagazine.com/2014/09/improving-smashing-magazine-performance-case-study/) +* [High Performance Browser Networking](https://hpbn.co) ## Optimization of the Preferences Framework @@ -25,7 +24,7 @@ Below are some resources which discuss general website optimization strategies: * [Lazy load](https://en.wikipedia.org/wiki/Lazy_loading) To see a live version of the example outlined below, open the [Minimal Footprint - Preferences -Framework](http://build.fluidproject.org/infusion/examples/framework/preferences/minimalFootprint/) example. +Framework](https://build-infusion.fluidproject.org/examples/framework/preferences/minimalFootprint/) example.
Note: The example outlined below uses individual JS files. However, these can be substituted by diff --git a/src/documents/tutorial-userInterfaceOptions/GettingUIOptions.md b/src/documents/tutorial-userInterfaceOptions/GettingUIOptions.md index c762e83a..f0778157 100644 --- a/src/documents/tutorial-userInterfaceOptions/GettingUIOptions.md +++ b/src/documents/tutorial-userInterfaceOptions/GettingUIOptions.md @@ -78,7 +78,7 @@ If using the latest development source, there may be some differences in documen does not yet exist.
-Requirements: [node](https://nodejs.org), [npm](https://www.npmjs.com/) +Requirements: [node](https://nodejs.org/), [npm](https://www.npmjs.com/) 1. Run `git clone https://github.com/fluid-project/infusion` to copy the Infusion GitHub repository to your local filesystem. This will create a directory `infusion` containing the Infusion source code. diff --git a/src/documents/tutorial-userInterfaceOptions/UserInterfaceOptions.md b/src/documents/tutorial-userInterfaceOptions/UserInterfaceOptions.md index 848d7f9b..698030c1 100644 --- a/src/documents/tutorial-userInterfaceOptions/UserInterfaceOptions.md +++ b/src/documents/tutorial-userInterfaceOptions/UserInterfaceOptions.md @@ -21,7 +21,7 @@ experience. ![Screen shot of the UI Options Component](/images//uio-showcase.png "Screen shot of the UI Options Component") -Try the [UI Options demo](https://build-infusion.fluidproject.org/demos/uioptions/). +Try the [UI Options demo](https://build-infusion.fluidproject.org/demos/uiOptions/). ## Overview @@ -165,7 +165,7 @@ adjust the paths to reflect where you've saved the Infusion package.
Note: While infusion-uio.js is minified, (i.e. all of the whitespace removed), you can still debug the code - using the provided source map. For more information, visit + using the provided source map. For more information, visit the Infusion Release Readme.
diff --git a/src/documents/tutorial-userInterfaceOptions/UsingImagesInContrastModes.md b/src/documents/tutorial-userInterfaceOptions/UsingImagesInContrastModes.md index 5f008d0e..18957112 100644 --- a/src/documents/tutorial-userInterfaceOptions/UsingImagesInContrastModes.md +++ b/src/documents/tutorial-userInterfaceOptions/UsingImagesInContrastModes.md @@ -94,7 +94,7 @@ The following example shows how CSS can be used to switch background images with HTML: ```html - ``` diff --git a/src/documents/tutorial-userInterfaceOptions/WorkingWithUserInterfaceOptions.md b/src/documents/tutorial-userInterfaceOptions/WorkingWithUserInterfaceOptions.md index 7dadab4f..c96e3895 100644 --- a/src/documents/tutorial-userInterfaceOptions/WorkingWithUserInterfaceOptions.md +++ b/src/documents/tutorial-userInterfaceOptions/WorkingWithUserInterfaceOptions.md @@ -163,7 +163,7 @@ Open the UI Options interface and use the "Text Size" control to enlarge the fon * is the layout of the entire page still reasonable? To help make your webpage respond better with UI Options, see the suggestions in this article: ["How to make your page -more responsive"](https://wiki.fluidproject.org/display/fluid/How+to+make+your+page+more+responsive). +more responsive"](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11542033/How+to+make+your+page+more+responsive). ### Increase the line spacing @@ -178,7 +178,7 @@ on line-height](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height). If you find that the layout of your website does not lay out properly, or does not scale according to the text size, you may need to [switch to using `rem` or `em` values -instead](https://wiki.fluidproject.org/display/fluid/How+to+make+your+page+more+responsive#Howtomakeyourpagemoreresponsive-Useremoremforcontainersizes). +instead](https://fluidproject.atlassian.net/wiki/spaces/fluid/pages/11542033/How+to+make+your+page+more+responsive#Howtomakeyourpagemoreresponsive-Useremoremforcontainersizes). ### Try each of the themes diff --git a/src/documents/tutorial-usingStringTemplates/UsingStringTemplates.md b/src/documents/tutorial-usingStringTemplates/UsingStringTemplates.md index 0df2016a..d3b722f8 100644 --- a/src/documents/tutorial-usingStringTemplates/UsingStringTemplates.md +++ b/src/documents/tutorial-usingStringTemplates/UsingStringTemplates.md @@ -4,7 +4,7 @@ category: Tutorials --- In the Infusion [Preference Framework](../PreferencesFramework.md), a "string template" is a mechanism for [resolving -(interpolating)](http://en.wikipedia.org/wiki/String_interpolation) variables within a string. +(interpolating)](https://en.wikipedia.org/wiki/String_interpolation) variables within a string. This tutorial covers why you might use string templates, and gives a basic example of how to use string templates to: diff --git a/src/sitemap.njk b/src/sitemap.njk index 03d9ce92..c8f9757d 100644 --- a/src/sitemap.njk +++ b/src/sitemap.njk @@ -3,7 +3,7 @@ permalink: /sitemap.xml eleventyExcludeFromCollections: true --- - + {% for page in collections.all %} {%- if page.url -%} diff --git a/src/static/css/fluid-docs.css b/src/static/css/fluid-docs.css index 526c29cb..ddf39d17 100644 --- a/src/static/css/fluid-docs.css +++ b/src/static/css/fluid-docs.css @@ -1,5 +1,5 @@ -@import url(http://fonts.googleapis.com/css?family=Open+Sans); -@import url(http://fonts.googleapis.com/css?family=Roboto+Slab); +@import url(https: //fonts.googleapis.com/css?family=Open+Sans); +@import url(https: //fonts.googleapis.com/css?family=Roboto+Slab); body { background-color: #f2f2f2; diff --git a/tests/link-checker-fixtures/test-link-checker-alternate.html b/tests/link-checker-fixtures/test-link-checker-alternate.html index e5fb182a..10d0316b 100644 --- a/tests/link-checker-fixtures/test-link-checker-alternate.html +++ b/tests/link-checker-fixtures/test-link-checker-alternate.html @@ -4,7 +4,7 @@

External Links

-Google +Google

In-site Links

diff --git a/tests/link-checker-fixtures/test-link-checker.html b/tests/link-checker-fixtures/test-link-checker.html index c6b49f61..96ebac74 100644 --- a/tests/link-checker-fixtures/test-link-checker.html +++ b/tests/link-checker-fixtures/test-link-checker.html @@ -4,7 +4,7 @@

External Links

-Google +Google

In-site Links