diff --git a/.github/workflows/markdown.yml b/.github/workflows/markdown.yml new file mode 100644 index 000000000000..1f74dac813e4 --- /dev/null +++ b/.github/workflows/markdown.yml @@ -0,0 +1,20 @@ +name: Markdown + +on: [push, pull_request] + +jobs: + remark: + runs-on: ubuntu-latest + steps: + - name: Checking out files from GitHub + uses: actions/checkout@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Installing dependencies + run: npm install + env: + CI: true + - name: Running remark lint + run: npm run markdown:lint diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000000..40e6bd96a68d --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +12.1 diff --git a/.remarkrc.js b/.remarkrc.js new file mode 100644 index 000000000000..1d48d2121eb3 --- /dev/null +++ b/.remarkrc.js @@ -0,0 +1,17 @@ +var remarkrc = { + settings: { + bullet: '-', + commonmark: true, + emphasis: '_', + fence: '`', + incrementListMarker: true, + listItemIndent: 1, + strong: '*' + }, + plugins: [ + ["frontmatter"], + ["lint-fenced-code-flag"] + ] +}; + +module.exports = remarkrc; \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md index 6981c7b8898a..11eaa38bf5e5 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -170,7 +170,7 @@ c. No term or condition of this Public License will be waived and no failure to d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. -``` +```txt Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at [creativecommons.org/policies](http://creativecommons.org/policies), Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses. Creative Commons may be contacted at creativecommons.org diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000000..f06572d1de58 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1191 @@ +{ + "name": "home-assistant.io", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/unist": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", + "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", + "dev": true + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.3.tgz", + "integrity": "sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "bail": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz", + "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "ccount": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz", + "integrity": "sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "character-entities": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", + "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==", + "dev": true + }, + "character-entities-html4": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz", + "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==", + "dev": true + }, + "character-entities-legacy": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz", + "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==", + "dev": true + }, + "character-reference-invalid": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz", + "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==", + "dev": true + }, + "chokidar": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz", + "integrity": "sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==", + "dev": true, + "requires": { + "anymatch": "^3.0.1", + "braces": "^3.0.2", + "fsevents": "^2.0.6", + "glob-parent": "^5.0.0", + "is-binary-path": "^2.1.0", + "is-glob": "^4.0.1", + "normalize-path": "^3.0.0", + "readdirp": "^3.1.1" + } + }, + "co": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz", + "integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=", + "dev": true + }, + "collapse-white-space": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz", + "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "fault": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.3.tgz", + "integrity": "sha512-sfFuP4X0hzrbGKjAUNXYvNqsZ5F6ohx/dZ9I0KQud/aiZNwg263r5L9yGB0clvXHCkzXh5W3t7RSHchggYIFmA==", + "dev": true, + "requires": { + "format": "^0.2.2" + } + }, + "figures": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz", + "integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fn-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", + "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", + "dev": true + }, + "format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz", + "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", + "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "ignore": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.2.tgz", + "integrity": "sha512-vdqWBp7MyzdmHkkRWV5nY+PfGRbYbahfuvsBCh277tq+w9zyNi7h5CYJCK0kmzti9kU+O/cB7sE8HvKv6aXAKQ==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "is-alphabetical": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz", + "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==", + "dev": true + }, + "is-alphanumeric": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", + "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", + "dev": true + }, + "is-alphanumerical": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz", + "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==", + "dev": true, + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==", + "dev": true + }, + "is-decimal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz", + "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==", + "dev": true + }, + "is-empty": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz", + "integrity": "sha1-3pu1snhzigWgsJpX4ftNSjQan2s=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz", + "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==", + "dev": true + }, + "is-hidden": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-hidden/-/is-hidden-1.1.2.tgz", + "integrity": "sha512-kytBeNVW2QTIqZdJBDKIjP+EkUTzDT07rsc111w/gxqR6wK3ODkOswcpxgED6HU6t7fEhOxqojVZ2a2kU9rj+A==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-plain-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.0.0.tgz", + "integrity": "sha512-EYisGhpgSCwspmIuRHGjROWTon2Xp8Z7U03Wubk/bTL5TTRC5R1rGVgyjzBrk9+ULdH6cRD06KRcw/xfqhVYKQ==", + "dev": true + }, + "is-whitespace-character": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz", + "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==", + "dev": true + }, + "is-word-character": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz", + "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "load-plugin": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-2.3.1.tgz", + "integrity": "sha512-dYB1lbwqHgPTrruy9glukCu8Ya9vzj6TMfouCtj2H/GuJ+8syioisgKTBPxnCi6m8K8jINKfTOxOHngFkUYqHw==", + "dev": true, + "requires": { + "npm-prefix": "^1.2.0", + "resolve-from": "^5.0.0" + } + }, + "longest-streak": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.3.tgz", + "integrity": "sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw==", + "dev": true + }, + "markdown-escapes": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz", + "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==", + "dev": true + }, + "markdown-extensions": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-1.1.1.tgz", + "integrity": "sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q==", + "dev": true + }, + "markdown-table": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", + "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==", + "dev": true + }, + "mdast-comment-marker": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/mdast-comment-marker/-/mdast-comment-marker-1.1.1.tgz", + "integrity": "sha512-TWZDaUtPLwKX1pzDIY48MkSUQRDwX/HqbTB4m3iYdL/zosi/Z6Xqfdv0C0hNVKvzrPjZENrpWDt4p4odeVO0Iw==", + "dev": true + }, + "mdast-util-compact": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz", + "integrity": "sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w==", + "dev": true, + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-prefix": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/npm-prefix/-/npm-prefix-1.2.0.tgz", + "integrity": "sha1-5hlFX3B0ulTMZtbQ033Z8b5ry8A=", + "dev": true, + "requires": { + "rc": "^1.1.0", + "shellsubstitute": "^1.1.0", + "untildify": "^2.1.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "parse-entities": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", + "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", + "dev": true, + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "picomatch": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", + "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.1.tgz", + "integrity": "sha512-XXdSXZrQuvqoETj50+JAitxz1UPdt5dupjT6T5nVB+WvjMv2XKYj+s7hPeAVCXvmJrL36O4YYyWlIC3an2ePiQ==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "remark": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-11.0.0.tgz", + "integrity": "sha512-cxfoqvY1Tyz7n1KF2JpywPCKulF69XvGmFwykuRPnqFkc8aSNQOFvcI1L3jj5NOjm+fpDdwwnGmwabxni1X8oQ==", + "dev": true, + "requires": { + "remark-parse": "^7.0.0", + "remark-stringify": "^7.0.0", + "unified": "^8.2.0" + } + }, + "remark-cli": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/remark-cli/-/remark-cli-7.0.0.tgz", + "integrity": "sha512-gYomWviFnZsiRimG+Jdb4LQ9c8uSOcGmPTmzlvxImt0gvzabqlp1kaqndxTx4kYLsWGqwhQRO+M9iyqHDkoDlA==", + "dev": true, + "requires": { + "markdown-extensions": "^1.1.0", + "remark": "^11.0.0", + "unified-args": "^7.0.0" + } + }, + "remark-frontmatter": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-1.3.2.tgz", + "integrity": "sha512-2eayxITZ8rezsXdgcXnYB3iLivohm2V/ZT4Ne8uhua6A4pk6GdLE2ZzJnbnINtD1HRLaTdB7RwF9sgUbMptJZA==", + "dev": true, + "requires": { + "fault": "^1.0.1", + "xtend": "^4.0.1" + } + }, + "remark-lint": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-6.0.5.tgz", + "integrity": "sha512-o1I3ddm+KNsTxk60wWGI+p2yU1jB1gcm8jo2Sy6VhJ4ab2TrQIp1oQbp5xeLoFXYSh/NAqCpKjHkCM/BYpkFdQ==", + "dev": true, + "requires": { + "remark-message-control": "^4.0.0" + } + }, + "remark-lint-fenced-code-flag": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-1.0.3.tgz", + "integrity": "sha512-X8Oi6dhfqV9NI3cVg29myvT/NATDHVgRGCpnNz76w7VXwzhBvQtJr1MxZzuPxfWLox+ARCXF2rY9n9hbYFHYTg==", + "dev": true, + "requires": { + "unified-lint-rule": "^1.0.0", + "unist-util-generated": "^1.1.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^1.1.1" + } + }, + "remark-message-control": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-4.2.0.tgz", + "integrity": "sha512-WXH2t5ljTyhsXlK1zPBLF3iPHbXl58R94phPMreS1xcHWBZJt6Oiu8RtNjy1poZFb3PqKnbYLJeR/CWcZ1bTFw==", + "dev": true, + "requires": { + "mdast-comment-marker": "^1.0.0", + "unified-message-control": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "remark-parse": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.0.tgz", + "integrity": "sha512-UlfoqASKUnwSrzOcLSa7fwYdkpbeWwAs49YYdQmoYXK1TUJ2CvDBb3v8Lkt2GQzdPW9dWbjhteOsJJ27p1rNFg==", + "dev": true, + "requires": { + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^1.1.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^1.0.0", + "vfile-location": "^2.0.0", + "xtend": "^4.0.1" + } + }, + "remark-stringify": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-7.0.3.tgz", + "integrity": "sha512-+jgmjNjm2kR7y2Ns1BATXRlFr+iQ7sDcpSgytfU77nkw7UCd5yJNArSxB3MU3Uul7HuyYNTCjetoGfy8xLia1A==", + "dev": true, + "requires": { + "ccount": "^1.0.0", + "is-alphanumeric": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "longest-streak": "^2.0.1", + "markdown-escapes": "^1.0.0", + "markdown-table": "^1.1.0", + "mdast-util-compact": "^1.0.0", + "parse-entities": "^1.0.2", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "stringify-entities": "^2.0.0", + "unherit": "^1.0.4", + "xtend": "^4.0.1" + } + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "shellsubstitute": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shellsubstitute/-/shellsubstitute-1.2.0.tgz", + "integrity": "sha1-5PcCpQxRiw9v6YRRiQ1wWvKba3A=", + "dev": true + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "state-toggle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz", + "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==", + "dev": true + }, + "string-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.1.0.tgz", + "integrity": "sha512-NrX+1dVVh+6Y9dnQ19pR0pP4FiEIlUvdTGn8pw6CKTNq5sgib2nIhmUNT5TAmhWmvKr3WcxBcP3E8nWezuipuQ==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^5.2.0" + } + }, + "string_decoder": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.2.0.tgz", + "integrity": "sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "stringify-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz", + "integrity": "sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==", + "dev": true, + "requires": { + "character-entities-html4": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.2", + "is-hexadecimal": "^1.0.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "to-vfile": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.0.0.tgz", + "integrity": "sha512-i9fwXXSsHLu7mzgixc1WjgnqSe6pGpjnzCYoFmrASvEueLfyKf09QAe+XQYu8OAJ62aFqHpe2EKXojeRVvEzqA==", + "dev": true, + "requires": { + "is-buffer": "^2.0.0", + "vfile": "^4.0.0" + } + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true + }, + "trim-trailing-lines": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz", + "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==", + "dev": true + }, + "trough": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz", + "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "unherit": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", + "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "xtend": "^4.0.1" + } + }, + "unified": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-8.3.2.tgz", + "integrity": "sha512-NDtUAXcd4c+mKppCbsZHzmhkKEQuhveZNBrFYmNgMIMk2K9bc8hmG3mLEGVtRmSNodobwyMePAnvIGVWZfPdzQ==", + "dev": true, + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + }, + "unified-args": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/unified-args/-/unified-args-7.1.0.tgz", + "integrity": "sha512-soi9Rn7l5c1g0RfElSCHMwaxeiclSI0EsS3uZmMPUOfwMeeeZjLpNmHAowV9iSlQh59iiZhSMyQu9lB8WnIz5g==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "chalk": "^2.0.0", + "chokidar": "^3.0.0", + "fault": "^1.0.2", + "json5": "^2.0.0", + "minimist": "^1.2.0", + "text-table": "^0.2.0", + "unified-engine": "^7.0.0" + } + }, + "unified-engine": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-7.0.0.tgz", + "integrity": "sha512-zH/MvcISpWg3JZtCoY/GYBw1WnVHkhnPoMBWpmuvAifCPSS9mzT9EbtimesJp6t2nnr/ojI0mg3TmkO1CjIwVA==", + "dev": true, + "requires": { + "concat-stream": "^2.0.0", + "debug": "^4.0.0", + "fault": "^1.0.0", + "figures": "^3.0.0", + "fn-name": "^2.0.1", + "glob": "^7.0.3", + "ignore": "^5.0.0", + "is-empty": "^1.0.0", + "is-hidden": "^1.0.1", + "is-object": "^1.0.1", + "js-yaml": "^3.6.1", + "load-plugin": "^2.0.0", + "parse-json": "^4.0.0", + "to-vfile": "^6.0.0", + "trough": "^1.0.0", + "unist-util-inspect": "^4.1.2", + "vfile-reporter": "^6.0.0", + "vfile-statistics": "^1.1.0", + "x-is-string": "^0.1.0", + "xtend": "^4.0.1" + } + }, + "unified-lint-rule": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-1.0.4.tgz", + "integrity": "sha512-q9wY6S+d38xRAuWQVOMjBQYi7zGyKkY23ciNafB8JFVmDroyKjtytXHCg94JnhBCXrNqpfojo3+8D+gmF4zxJQ==", + "dev": true, + "requires": { + "wrapped": "^1.0.1" + } + }, + "unified-message-control": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unified-message-control/-/unified-message-control-1.0.4.tgz", + "integrity": "sha512-e1dEtN4Z/TvLn/qHm+xeZpzqhJTtfZusFErk336kkZVpqrJYiV9ptxq+SbRPFMlN0OkjDYHmVJ929KYjsMTo3g==", + "dev": true, + "requires": { + "trim": "0.0.1", + "unist-util-visit": "^1.0.0", + "vfile-location": "^2.0.0" + } + }, + "unist-util-generated": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.4.tgz", + "integrity": "sha512-SA7Sys3h3X4AlVnxHdvN/qYdr4R38HzihoEVY2Q2BZu8NHWDnw5OGcC/tXWjQfd4iG+M6qRFNIRGqJmp2ez4Ww==", + "dev": true + }, + "unist-util-inspect": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-4.1.4.tgz", + "integrity": "sha512-7xxyvKiZ1SC9vL5qrMqKub1T31gRHfau4242F69CcaOrXt//5PmRVOmDZ36UAEgiT+tZWzmQmbNZn+mVtnR9HQ==", + "dev": true, + "requires": { + "is-empty": "^1.0.0" + } + }, + "unist-util-is": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", + "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", + "dev": true + }, + "unist-util-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.0.3.tgz", + "integrity": "sha512-28EpCBYFvnMeq9y/4w6pbnFmCUfzlsc41NJui5c51hOFjBA1fejcwc+5W4z2+0ECVbScG3dURS3JTVqwenzqZw==", + "dev": true + }, + "unist-util-remove-position": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz", + "integrity": "sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA==", + "dev": true, + "requires": { + "unist-util-visit": "^1.1.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.1.tgz", + "integrity": "sha512-Zqlf6+FRI39Bah8Q6ZnNGrEHUhwJOkHde2MHVk96lLyftfJJckaPslKgzhVcviXj8KcE9UJM9F+a4JEiBUTYgA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.2" + } + }, + "unist-util-visit": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", + "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", + "dev": true, + "requires": { + "unist-util-visit-parents": "^2.0.0" + } + }, + "unist-util-visit-parents": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", + "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", + "dev": true, + "requires": { + "unist-util-is": "^3.0.0" + } + }, + "untildify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz", + "integrity": "sha1-F+soB5h/dpUunASF/DEdBqgmouA=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "vfile": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.1.tgz", + "integrity": "sha512-lRHFCuC4SQBFr7Uq91oJDJxlnftoTLQ7eKIpMdubhYcVMho4781a8MWXLy3qZrZ0/STD1kRiKc0cQOHm4OkPeA==", + "dev": true, + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "replace-ext": "1.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-location": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.5.tgz", + "integrity": "sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ==", + "dev": true + }, + "vfile-message": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.1.tgz", + "integrity": "sha512-KtasSV+uVU7RWhUn4Lw+wW1Zl/nW8JWx7JCPps10Y9JRRIDeDXf8wfBLoOSsJLyo27DqMyAi54C6Jf/d6Kr2Bw==", + "dev": true, + "requires": { + "@types/unist": "^2.0.2", + "unist-util-stringify-position": "^2.0.0" + } + }, + "vfile-reporter": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-6.0.0.tgz", + "integrity": "sha512-8Is0XxFxWJUhPJdOg3CyZTqd3ICCWg6r304PuBl818ZG91h4FMS3Q+lrOPS+cs5/DZK3H0+AkJdH0J8JEwKtDA==", + "dev": true, + "requires": { + "repeat-string": "^1.5.0", + "string-width": "^4.0.0", + "supports-color": "^6.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-sort": "^2.1.2", + "vfile-statistics": "^1.1.0" + }, + "dependencies": { + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "vfile-sort": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-2.2.1.tgz", + "integrity": "sha512-5dt7xEhC44h0uRQKhbM2JAe0z/naHphIZlMOygtMBM9Nn0pZdaX5fshhwWit9wvsuP8t/wp43nTDRRErO1WK8g==", + "dev": true + }, + "vfile-statistics": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-1.1.3.tgz", + "integrity": "sha512-CstaK/ebTz1W3Qp41Bt9Lj/2DmumFsCwC2sKahDNSPh0mPh7/UyMLCoU8ZBX34CRU0d61B4W41yIFsV0NKMZeA==", + "dev": true + }, + "wrapped": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz", + "integrity": "sha1-x4PZ2Aeyc+mwHoUWgKk4yHyQckI=", + "dev": true, + "requires": { + "co": "3.1.0", + "sliced": "^1.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "x-is-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", + "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000000..81fe9311c227 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "home-assistant.io", + "description": "Home Assistant Website & Documentation", + "version": "1.0.0", + "dependencies": {}, + "devDependencies": { + "remark-cli": "^7.0.0", + "remark-frontmatter": "^1.3.2", + "remark-lint": "^6.0.5", + "remark-lint-fenced-code-flag": "^1.0.3", + "remark-stringify": "^7.0.3" + }, + "scripts": { + "markdown:lint": "remark --quiet --frail ." + } +} \ No newline at end of file diff --git a/source/_addons/snips.markdown b/source/_addons/snips.markdown index cf74fa5e6dba..104b0ee19066 100644 --- a/source/_addons/snips.markdown +++ b/source/_addons/snips.markdown @@ -17,7 +17,7 @@ The Snips add-on by default comes with an assistant that allows you to turn on l If using a USB microphone and speakers plugged into the Raspberry Pi output, Snips will work without any change to the configuration. Trying saying things like: -``` +```txt Turn on kitchen light Open garage door What is on my shopping list diff --git a/source/_components/binary_sensor.mqtt.markdown b/source/_components/binary_sensor.mqtt.markdown index 2e66c2e97786..8b74577ab02f 100644 --- a/source/_components/binary_sensor.mqtt.markdown +++ b/source/_components/binary_sensor.mqtt.markdown @@ -179,7 +179,7 @@ Assuming that you have flashed your ESP8266 unit with [ESPEasy](https://github.c As soon as the unit is online, you will get the state of the attached button. -``` +```txt home/bathroom/status Connected ... home/bathroom/switch/button 1 diff --git a/source/_components/bom.markdown b/source/_components/bom.markdown index e8e86e3b8709..5eac47ead2c4 100644 --- a/source/_components/bom.markdown +++ b/source/_components/bom.markdown @@ -93,7 +93,7 @@ filename: ### Valid `location` values -``` +```txt Adelaide Albany AliceSprings Bairnsdale Bowen Brisbane Broome Cairns Canberra Carnarvon Ceduna Dampier Darwin Emerald Esperance diff --git a/source/_components/command_line.markdown b/source/_components/command_line.markdown index c22e5a513d17..c3aa19a45935 100644 --- a/source/_components/command_line.markdown +++ b/source/_components/command_line.markdown @@ -120,7 +120,7 @@ Consider to use the [`ping` sensor ](/components/binary_sensor.ping/) as an alte The services running is listed in `/etc/systemd/system` and can be checked with the `systemctl` command: -``` +```bash $ systemctl is-active home-assistant@rock64.service active $ sudo service home-assistant@rock64.service stop diff --git a/source/_components/envirophat.markdown b/source/_components/envirophat.markdown index 5b3664ee2f03..455ba13550b5 100644 --- a/source/_components/envirophat.markdown +++ b/source/_components/envirophat.markdown @@ -138,6 +138,6 @@ group: Since the Enviro pHAT communicates over I2C, you might also need to make sure that the I2C devices are enabled, by adding or uncommenting the following line in `/boot/config.txt` (see the [DT Parameters section](https://www.raspberrypi.org/documentation/configuration/device-tree.md) in the Raspberry Pi documentation): -``` +```txt dtparam=i2c_arm=on ``` diff --git a/source/_components/fail2ban.markdown b/source/_components/fail2ban.markdown index 5d57383f163e..b0bd793231d8 100644 --- a/source/_components/fail2ban.markdown +++ b/source/_components/fail2ban.markdown @@ -79,7 +79,7 @@ Next, we need to edit the `jail.local` file that is included with the Let's Encr Edit `/mnt/user/appdata/letsencrypt/fail2ban/jail.local` and append the following to the end of the file: -``` +```txt [hass-iptables] enabled = true filter = hass @@ -92,7 +92,7 @@ maxretry = 5 Now we need to create a filter for `fail2ban` so that it can properly parse the log. This is done with a `failregex`. Create a file called `hass.local` within the `filter.d` directory in `/mnt/user/appdata/letsencrypt/fail2ban` and add the following: -``` +```txt [INCLUDES] before = common.conf @@ -109,7 +109,7 @@ datepattern = ^%%Y-%%m-%%d %%H:%%M:%%S First, we need to make sure that fail2ban log can be passed to Home Assistant and that the Home Assistant log can be passed to fail2ban. When starting the Let's Encrypt docker, you need to add the following argument (adjust paths based on your setup): -``` +```txt /mnt/user/appdata/home-assistant:/hass ``` @@ -117,7 +117,7 @@ This will map the Home Assistant configuration directory to the Let's Encrypt do Now do the same for the Home Assistant docker, but this time we'll be mapping the `fail2ban` log directory to Home Assistant so that the fail2ban sensor is able to read that log: -``` +```txt /mnt/user/appdata/letsencrypt/log/fail2ban:/fail2ban ``` @@ -191,7 +191,7 @@ If, after following these steps, you're unable to get the `fail2ban` sensor work - Add `logencoding = utf-8` to the `[hass-iptables]` entry - Ensure the `failregex` you added to `filter.d/hass.local` matches the output within `home-assistant.log` - Try changing the datepattern in `filter.d/hass/local` by adding the following entry (change the datepattern to fit your needs). [source](https://github.com/fail2ban/fail2ban/issues/174) - ``` + ```txt [Init] datepattern = ^%%Y-%%m-%%d %%H:%%M:%%S ``` diff --git a/source/_components/ffmpeg.markdown b/source/_components/ffmpeg.markdown index 0e7dc2173ab6..c36ed17b9bc9 100644 --- a/source/_components/ffmpeg.markdown +++ b/source/_components/ffmpeg.markdown @@ -48,7 +48,7 @@ $ sudo apt-get -t jessie-backports install ffmpeg We can use now following in the configuration: -``` +```yaml ffmpeg: ffmpeg_bin: /usr/bin/ffmpeg ``` @@ -59,7 +59,7 @@ In most cases, `ffmpeg` automatically detects all needed options to read a video First, check that your stream is playable by `ffmpeg` outside of Home Assistant with (use option `-an` or `-vn` to disable video or audio stream): -``` +```bash $ ffmpeg -i INPUT -an -f null - ``` diff --git a/source/_components/foursquare.markdown b/source/_components/foursquare.markdown index 307324cbc747..b008784e041a 100644 --- a/source/_components/foursquare.markdown +++ b/source/_components/foursquare.markdown @@ -34,7 +34,7 @@ After you have registered your APP on your [My Apps Page](https://foursquare.com `REDIRECT_URL` which can be any URL you like, but since it will get your access token via an HTTP GET request, it should be a URL which will ignore the `access_token` HTTP GET variable. A good idea is to choose the URL of your Home Assistant. Visit the following URL in your browser: -``` +```txt https://foursquare.com/oauth2/authenticate?client_id=CLIENT_ID&response_type=token&redirect_uri=YOUR_REGISTERED_REDIRECT_URI ``` diff --git a/source/_components/habitica.markdown b/source/_components/habitica.markdown index 1bfa73e545fd..490f3fc21590 100644 --- a/source/_components/habitica.markdown +++ b/source/_components/habitica.markdown @@ -94,7 +94,7 @@ So let's call the API on `habitica.api_call`. Combining all together: call `habitica.api_call` with data -``` +```json { "name": "xxxNotAValidNickxxx", "path": ["tasks", "user", "post"], @@ -108,7 +108,7 @@ This call will create a new todo on `xxxNotAValidNickxxx`'s account with text `U Also an event `habitica_api_call_success` will be fired with the following data: -``` +```json { "name": "xxxNotAValidNickxxx", "path": ["tasks", "user", "post"], diff --git a/source/_components/hyperion.markdown b/source/_components/hyperion.markdown index 52e545ed3755..f7554f51cee0 100644 --- a/source/_components/hyperion.markdown +++ b/source/_components/hyperion.markdown @@ -80,7 +80,7 @@ automation: To have the lights playing a effect when pausing, idle or turn off a media player like plex you can use this example: -``` +```yaml - alias: Set hyperion effect after playback trigger: - platform: state @@ -101,7 +101,7 @@ To have the lights playing a effect when pausing, idle or turn off a media playe To capture the screen when playing something of a media_player you can use this example: -``` +```yaml - alias: Set hyperion when playback starts trigger: - platform: state diff --git a/source/_components/knx.markdown b/source/_components/knx.markdown index 131ac8dcb8f9..af2231d57b8d 100644 --- a/source/_components/knx.markdown +++ b/source/_components/knx.markdown @@ -120,7 +120,7 @@ state_updater: In order to directly interact with the KNX bus, you can use the following service: -``` +```txt Domain: knx Service: send Service Data: {"address": "1/0/15", "payload": 0} diff --git a/source/_components/lcn.markdown b/source/_components/lcn.markdown index 146ae5852a04..d19a5c07f411 100644 --- a/source/_components/lcn.markdown +++ b/source/_components/lcn.markdown @@ -339,7 +339,7 @@ Whenever the address of a module or a group has to be specified, it can be addre Example for modules: -``` +```txt connid.s000.m007 connid.s0.m7 s0.m7 @@ -348,7 +348,7 @@ s0.m7 Example for groups: -``` +```txt connid.s000.g007 connid.s0.g7 s0.g7 diff --git a/source/_components/meteoalarm.markdown b/source/_components/meteoalarm.markdown index 4ccac08c28dc..af0ac9d08951 100644 --- a/source/_components/meteoalarm.markdown +++ b/source/_components/meteoalarm.markdown @@ -48,7 +48,7 @@ Example output You will find an example below when the state is "on". -``` +```yaml attribution: Information provided by MeteoAlarm language: en-GB category: Met diff --git a/source/_components/mystrom.markdown b/source/_components/mystrom.markdown index e6a642c0857c..56a790e5d8ae 100644 --- a/source/_components/mystrom.markdown +++ b/source/_components/mystrom.markdown @@ -110,7 +110,7 @@ The endpoint that is receiving the data is `http://[IP address Home Assistant]:8 With `api_password:` -``` +```bash $ curl -d "[action]=get://[IP address Home Assistant]:8123/api/mystrom?api_password%3D[api_password]%26[action]%3D[ID of the button]" \ http://[IP address of the button]/api/v1/device/[MAC address of the button] ``` diff --git a/source/_components/orangepi_gpio.markdown b/source/_components/orangepi_gpio.markdown index 0bc5b8130283..582f43ab44e5 100644 --- a/source/_components/orangepi_gpio.markdown +++ b/source/_components/orangepi_gpio.markdown @@ -72,7 +72,7 @@ Normally the `/sys/class/gpio` path is owned by root, so Home Assistant does not Create a new file in `/etc/udev/rules.d/` named `10-gpio.rules` with the following contents: -``` +```txt SUBSYSTEM=="gpio*", PROGRAM="/bin/sh -c 'find -L /sys/class/gpio/ -maxdepth 2 -exec chown root:gpio {} \; -exec chmod 770 {} \; || true'" ``` diff --git a/source/_components/plex.markdown b/source/_components/plex.markdown index 369da4713fa7..d1a9661c8122 100644 --- a/source/_components/plex.markdown +++ b/source/_components/plex.markdown @@ -163,7 +163,7 @@ Plays a song, playlist, TV episode, or video on a connected client. * At this moment, the Plex platform only supports one Plex Media Server. * It is possible to get errors that look like the following. - ``` + ```txt ERROR:plexapi:http://192.168.1.10:32400: ('Connection aborted.', BadStatusLine("''",)) INFO:homeassistant.components.media_player.plex:No server found at: http://192.168.1.10:32400 ``` diff --git a/source/_components/recorder.markdown b/source/_components/recorder.markdown index c33a1c2017fd..a4e41f5d550f 100644 --- a/source/_components/recorder.markdown +++ b/source/_components/recorder.markdown @@ -174,7 +174,7 @@ $ sudo nano /etc/systemd/system/home-assistant@homeassistant.service and add the service for the database, for example, PostgreSQL: -``` +```txt [Unit] Description=Home Assistant After=network.target postgresql.service diff --git a/source/_components/roku.markdown b/source/_components/roku.markdown index 2b48e436ea85..bbeba388fd79 100644 --- a/source/_components/roku.markdown +++ b/source/_components/roku.markdown @@ -95,7 +95,7 @@ When the Home Assistant Roku integration is enabled and has found a Roku device, The api calls are like this: -``` +```txt GET http:// ROKU_IP:8060/query/apps POST http://ROKU_IP:8060/launch/APP_ID ``` @@ -104,10 +104,10 @@ More details can be found on the [Roku dev pages](https://developer.roku.com/doc To use this in Home Assistant, for instance in an automation, the format is as follows. Note that ```source: ``` is the appID you discovered in the API call: -``` - action: - - data: - entity_id: media_player.roku - source: 20197 - service: media_player.select_source +```yaml +action: +- data: + entity_id: media_player.roku + source: 20197 + service: media_player.select_source ``` diff --git a/source/_components/route53.markdown b/source/_components/route53.markdown index 805ba63fa7f6..b682f582fa1a 100644 --- a/source/_components/route53.markdown +++ b/source/_components/route53.markdown @@ -29,7 +29,7 @@ On the AWS side, you need to do the following; Here is an IAM Policy sample, don't forget to update your Zone ID on the Resource line. -``` +```json { "Version": "2012-10-17", "Statement": [ diff --git a/source/_components/tikteck.markdown b/source/_components/tikteck.markdown index e237c4315387..8b832c887752 100644 --- a/source/_components/tikteck.markdown +++ b/source/_components/tikteck.markdown @@ -43,7 +43,7 @@ devices: The password can be obtained from an Android device using an app like [aLogcat](https://play.google.com/store/apps/details?id=rs.pedjaapps.alogcatroot.app&hl=en) or the `adb logcat` command for phones in developer mode. Look for a line like: -``` +```txt E LedoBleSDK: login =skName=======[Smart Light]=======skPw==[password] ``` diff --git a/source/_components/ubus.markdown b/source/_components/ubus.markdown index 2e7c30c7c080..05e27f9c36c7 100644 --- a/source/_components/ubus.markdown +++ b/source/_components/ubus.markdown @@ -103,11 +103,11 @@ logger: homeassistant.components.device_tracker: debug ``` 3. In another window, tail the logfile in the configuration directory: -``` +```bash $ tail -f home-assistant.log | grep device_tracker ``` 4. If you see a python stack trace like the following, check your configuration for correct username/password. -``` +```txt 17-04-28 10:43:30 INFO (MainThread) [homeassistant.loader] Loaded device_tracker from homeassistant.components.device_tracker 17-04-28 10:43:30 INFO (MainThread) [homeassistant.loader] Loaded device_tracker.ubus from homeassistant.components.device_tracker.ubus 17-04-28 10:43:30 INFO (MainThread) [homeassistant.setup] Setting up device_tracker @@ -122,7 +122,7 @@ $ tail -f home-assistant.log | grep device_tracker 17-04-28 10:43:31 INFO (MainThread) [homeassistant.core] Bus:Handling ``` 5. If you see lines like the following repeated at intervals that correspond to the check interval from the config (12 seconds by default), then Home Assistant is correctly polling the router, and you'll need to look at what the router is sending back. -``` +```txt 17-04-28 10:50:34 INFO (Thread-7) [homeassistant.components.device_tracker.ubus] Checking ARP ``` @@ -140,7 +140,7 @@ $ sudo tcpdump -nnvXSs 0 -w /var/tmp/dt.out 'host and port 80' 6. Transfer `/var/tmp/dt.out` to the machine where you're running Wireshark and either drag/drop it onto the Wireshark window or use File/Open to open the capture file. 7. In the window that opens, look for the first line that reads `POST /ubus`. Right click on this line, choose Follow and then HTTP Stream to view just the HTTP stream for this connection. 8. The first `POST` will show Home Assistant logging into ubus and receiving a session identifier back. It will look something like this: -``` +```txt POST /ubus HTTP/1.1 Host: 10.68.0.1 Accept: */* @@ -160,7 +160,7 @@ Connection: keep-alive ``` 9. In the response above, the portion that reads `"result":[0,` indicates that ubus accepted the login without issue. If this is not `0`, search online for what ubus status corresponds to the number you're receiving and address any issues that it brings to light. 10. Otherwise, back in the main Wireshark window click the `x` in the right side of the filter bar where it reads `tcp.stream eq 0`. Scroll down until you find the next `POST /ubus` line and view the HTTP stream again. This request is Home Assistant actually requesting information and will look something like the following: -``` +```txt POST /ubus HTTP/1.1 Host: 10.68.0.1 Accept: */* diff --git a/source/_components/vacuum.mqtt.markdown b/source/_components/vacuum.mqtt.markdown index bf80d589eb4e..3d6b54f915fc 100644 --- a/source/_components/vacuum.mqtt.markdown +++ b/source/_components/vacuum.mqtt.markdown @@ -419,7 +419,7 @@ Vacuum send_command allows three parameters: If params are not provided it sends command as payload to MQTT send_command topic. If params are provided service sends json as payload with such structure: -``` +```json { 'command': 'command', 'param1-key': 'param1-value' @@ -428,7 +428,7 @@ If params are provided service sends json as payload with such structure: Service trigger example: -``` +```yaml - alias: Push command based on sensor trigger: - platform: state @@ -494,7 +494,7 @@ Vacuum send_command allows three parameters: If params are not provided it sends command as payload to MQTT send_command topic. If params are provided service sends json as payload with such structure: -``` +```json { 'command': 'command', 'param1-key': 'param1-value' @@ -503,7 +503,7 @@ If params are provided service sends json as payload with such structure: Service trigger example: -``` +```yaml - alias: Push command based on sensor trigger: - platform: state diff --git a/source/_components/vizio.markdown b/source/_components/vizio.markdown index 1189ef7198c3..8f62cede0b88 100644 --- a/source/_components/vizio.markdown +++ b/source/_components/vizio.markdown @@ -33,7 +33,7 @@ $ pip3 install -I . ``` Find your device using the following command: -``` +```txt pyvizio --ip=0 discover ``` diff --git a/source/_cookbook/sonos_say.markdown b/source/_cookbook/sonos_say.markdown index 41b1486ad453..e08301637d97 100644 --- a/source/_cookbook/sonos_say.markdown +++ b/source/_cookbook/sonos_say.markdown @@ -50,12 +50,12 @@ automation: ``` Note that this example uses the `voicerss` text-to-speech platform. There are many platforms that can be used. The one installed by default with Home Assistant is Google TTS. This appears in your `configuration.yaml` file as: -``` - tts: - - platform: google +```yaml +tts: + - platform: google ``` If you want to use this TTS engine, change the line in the example provided to: -``` +```txt - service: tts.google_translate_say ``` diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index 85bf56dd89df..8ac65d78d0a1 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -165,7 +165,7 @@ homeassistant: When `meta: true` is set in the auth provider's configuration, your command can write some variables to standard output to populate the user account created in Home Assistant with additional data. These variables have to be printed in the form: -``` +```txt name = John Doe ``` diff --git a/source/_docs/configuration/packages.markdown b/source/_docs/configuration/packages.markdown index 44bdad8a3c5f..880dce51a88a 100644 --- a/source/_docs/configuration/packages.markdown +++ b/source/_docs/configuration/packages.markdown @@ -46,7 +46,7 @@ homeassistant: The file `my_package.yaml` contains the "top-level" configuration: -``` +```yaml switch: - platform: rest ... diff --git a/source/_docs/configuration/yaml.markdown b/source/_docs/configuration/yaml.markdown index f3d871994889..57f838788e66 100644 --- a/source/_docs/configuration/yaml.markdown +++ b/source/_docs/configuration/yaml.markdown @@ -96,7 +96,7 @@ More information about this feature can also be found at [splitting configuratio If you see the following message: -``` +```txt found character '\t' that cannot start any token ``` diff --git a/source/_docs/ecosystem/appdaemon/running.markdown b/source/_docs/ecosystem/appdaemon/running.markdown index a15e404d6e7f..1599c8e81dfc 100755 --- a/source/_docs/ecosystem/appdaemon/running.markdown +++ b/source/_docs/ecosystem/appdaemon/running.markdown @@ -45,7 +45,7 @@ $ appdaemon -c conf/appdaemon.cfg If all is well, you should see something like the following: -``` +```bash $ appdaemon -c conf/appdaemon.cfg 2016-08-22 10:08:16,575 INFO Got initial state 2016-08-22 10:08:16,576 INFO Loading Module: /export/hass/appdaemon_test/conf/apps/hello.py @@ -56,7 +56,7 @@ $ appdaemon -c conf/appdaemon.cfg ## AppDaemon arguments -``` +```txt usage: appdaemon [-h] [-c CONFIG] [-p PIDFILE] [-t TICK] [-s STARTTIME] [-e ENDTIME] [-i INTERVAL] [-D {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-v] [-d] diff --git a/source/_docs/ecosystem/backup/backup_dropbox.markdown b/source/_docs/ecosystem/backup/backup_dropbox.markdown index 83124615336c..472f161a5a50 100644 --- a/source/_docs/ecosystem/backup/backup_dropbox.markdown +++ b/source/_docs/ecosystem/backup/backup_dropbox.markdown @@ -36,11 +36,11 @@ Go to the folder you have placed `dropbox.py`. - **Option B:** Edit `dropbox.py`: Change the following line: - ``` + ```txt uploader = "/home/homeassistant/.homeassistant/extraconfig/shell_code/dropbox_uploader.sh" ``` to where you placed your file: (for example): - ``` + ```txt uploader = "/home/homeassistant/MyFolder/dropbox_uploader.sh" ``` diff --git a/source/_docs/ecosystem/certificates/lets_encrypt.markdown b/source/_docs/ecosystem/certificates/lets_encrypt.markdown index 33acf4208681..c5053e68c902 100644 --- a/source/_docs/ecosystem/certificates/lets_encrypt.markdown +++ b/source/_docs/ecosystem/certificates/lets_encrypt.markdown @@ -304,7 +304,7 @@ Did all of that go without a hitch? Wahoo! Your Let's Encrypt certificate is now Following on from Step 4 your SSH will still be in the certbot folder. If you edit your configuration files over SSH you will need to change to our `homeassistant` folder: -``` +```bash cd ~/.homeassistant ``` diff --git a/source/_docs/ecosystem/ios/notifications/sounds.markdown b/source/_docs/ecosystem/ios/notifications/sounds.markdown index c4aec13c6b95..0668b16dc763 100644 --- a/source/_docs/ecosystem/ios/notifications/sounds.markdown +++ b/source/_docs/ecosystem/ios/notifications/sounds.markdown @@ -49,7 +49,7 @@ Notes: ### Preinstalled notification sounds -``` +```txt US-EN-Alexa-Back-Door-Opened.wav US-EN-Alexa-Back-Door-Unlocked.wav US-EN-Alexa-Basement-Door-Opened.wav diff --git a/source/_docs/installation/centos.markdown b/source/_docs/installation/centos.markdown index 4fa3d22b4a46..853fbd3b6c4e 100644 --- a/source/_docs/installation/centos.markdown +++ b/source/_docs/installation/centos.markdown @@ -54,7 +54,7 @@ You will need to enable the software collection each time you log on before you To autostart Home Assistant using systemd follow the main [instructions](/docs/autostart/systemd/) and adjust the template as follows: -``` +```txt [Unit] Description=Home Assistant After=network.target diff --git a/source/_docs/installation/virtualenv.markdown b/source/_docs/installation/virtualenv.markdown index f1766a13b7b1..3625dc139541 100644 --- a/source/_docs/installation/virtualenv.markdown +++ b/source/_docs/installation/virtualenv.markdown @@ -22,23 +22,23 @@ It should not contain any OS specific instructions. ### Install 1. Create a virtual environment in your current directory: - ``` + ```bash $ python3 -m venv homeassistant ``` 2. Open the virtual environment: - ``` + ```bash $ cd homeassistant ``` 3. Activate the virtual environment: - ``` + ```bash $ source bin/activate ``` 4. Install Home Assistant: - ``` + ```bash $ python3 -m pip install homeassistant ``` 5. Run Home Assistant: - ``` + ```bash $ hass --open-ui ``` 6. You can now reach the web interface on `http://ipaddress:8123/` - the first start may take a couple of minutes before the web interface is available. This can take longer if you're using lower-end hardware like a Raspberry Pi Zero. diff --git a/source/_docs/mqtt/broker.markdown b/source/_docs/mqtt/broker.markdown index cdb68d0c496f..1fa69fdd6b29 100644 --- a/source/_docs/mqtt/broker.markdown +++ b/source/_docs/mqtt/broker.markdown @@ -73,7 +73,7 @@ If you get this error `AttributeError: module 'ssl' has no attribute 'PROTOCOL_T If you are running a Mosquitto instance on the same server as Home Assistant then you must ensure that the Mosquitto service starts before Home Assistant. For a Linux instance running Systemd (Raspberry Pi, Debian, Ubuntu and others) then you should edit the file `/etc/systemd/system/home-assistant@homeassistant.service` as `root` (e.g., `sudo nano /etc/systemd/system/home-assistant@homeassistant.service`) and add the Mosquitto service: -``` +```txt [Unit] Description=Home Assistant After=network.target mosquitto.service diff --git a/source/_docs/mqtt/discovery.markdown b/source/_docs/mqtt/discovery.markdown index 0ed1c2f870cd..1bdcb10d7fdc 100644 --- a/source/_docs/mqtt/discovery.markdown +++ b/source/_docs/mqtt/discovery.markdown @@ -72,7 +72,7 @@ In the value of configuration variables ending with `_topic`, `~` will be replac Configuration variable names in the discovery payload may be abbreviated to conserve memory when sending a discovery message from memory constrained devices. Supported abbreviations: -``` +```txt 'aux_cmd_t': 'aux_command_topic', 'aux_stat_tpl': 'aux_state_template', 'aux_stat_t': 'aux_state_topic', @@ -207,7 +207,7 @@ Supported abbreviations: ``` Supported abbreviations for device registry configuration: -``` +```txt 'cns': 'connections', 'ids': 'identifiers', 'name': 'name', diff --git a/source/_docs/z-wave/installation.markdown b/source/_docs/z-wave/installation.markdown index 206d323582ad..93e31892ea0a 100644 --- a/source/_docs/z-wave/installation.markdown +++ b/source/_docs/z-wave/installation.markdown @@ -247,7 +247,7 @@ $ ls -l /dev/ttyAMA0 You should then see something like this: -``` +```txt crw-rw---- 1 root dialout 204, 64 Apr 1 12:34 /dev/ttyAMA0 ``` @@ -282,7 +282,7 @@ Then the problem is that you're missing `libudev-dev` (or the equivalent for you If you're having random failures of the mesh, devices going missing, things randomly not working, check your `OZW_Log.txt` for the following messages: -``` +```txt WARNING: 500ms passed without reading the rest of the frame...aborting frame read WARNING: Out of frame flow! (0xfe). Sending NAK WARNING: Checksum incorrect - sending NAK diff --git a/source/_posts/2017-02-04-babyphone.markdown b/source/_posts/2017-02-04-babyphone.markdown index a5cc6ef419e3..2ba7eeb2f16c 100644 --- a/source/_posts/2017-02-04-babyphone.markdown +++ b/source/_posts/2017-02-04-babyphone.markdown @@ -37,7 +37,7 @@ $ sudo apt-get install icecast2 We setup an icecast mount point for our babyphone and update `/etc/icecast2/icecast.xml`: -``` +```xml /babyphone.mp3 Babyphone diff --git a/source/_posts/2017-03-22-broken-dependencies.markdown b/source/_posts/2017-03-22-broken-dependencies.markdown index 1a8b2156ab46..e684e3d04610 100644 --- a/source/_posts/2017-03-22-broken-dependencies.markdown +++ b/source/_posts/2017-03-22-broken-dependencies.markdown @@ -12,7 +12,7 @@ TL; DR: We have just released version 0.40.2 that includes a fix related to the Some users in the last few days have been reporting that their Home Assistant installation fails to start with an error in the http component: -``` +```txt ImportError: No module named 'aiohttp.file_sender' ``` @@ -21,4 +21,4 @@ The problem is that Home Assistant did not handle the case where a dependency wo - AppleTV (0.38+) - Android IP Webcam (0.40+) -This issue has been resolved by 0.40.2. If you are on an impacted version and cannot upgrade to the latest version just yet, a temporary workaround will be to remove the `/deps` directory and stop using the above mentioned integrations. In the case of AppleTV, you will also have to disable the discovery component to prevent it from being auto-detected. \ No newline at end of file +This issue has been resolved by 0.40.2. If you are on an impacted version and cannot upgrade to the latest version just yet, a temporary workaround will be to remove the `/deps` directory and stop using the above mentioned integrations. In the case of AppleTV, you will also have to disable the discovery component to prevent it from being auto-detected. diff --git a/source/_posts/2017-04-25-influxdb-grafana-docker.markdown b/source/_posts/2017-04-25-influxdb-grafana-docker.markdown index 8f7d1fa4fa4d..b44b2aced01a 100644 --- a/source/_posts/2017-04-25-influxdb-grafana-docker.markdown +++ b/source/_posts/2017-04-25-influxdb-grafana-docker.markdown @@ -17,7 +17,7 @@ Instead of running [InfluxDB](https://www.influxdata.com/) and Grafana on a Rasp 2. Download the [docker-statsd-influxdb-grafana]( https://hub.docker.com/r/samuelebistoletti/docker-statsd-influxdb-grafana/) image using the command: `docker pull samuelebistoletti/docker-statsd-influxdb-grafana` 3. To start the container for the first-time launch: - ``` + ```bash docker run -d \ --name docker-statsd-influxdb-grafana \ -p 3003:3003 \ @@ -34,7 +34,7 @@ Instead of running [InfluxDB](https://www.influxdata.com/) and Grafana on a Rasp

7. Now, you need to configure Home Assistant to use InfluxDB. Since, we did not add any username/password to our database, we can simply add the following to our configuration.yaml (replace the IP address with that of the device running Docker) and restart Home Assistant to setup InfluxDB (you will have to fine tune it based on your preferences): - ``` + ```yaml influxdb: host: 192.168.2.113 ``` @@ -45,7 +45,7 @@ Instead of running [InfluxDB](https://www.influxdata.com/) and Grafana on a Rasp 9. You should see `Data source is working` if you have configured everything correctly. 10. With all that configured, you are now ready for the fun stuff. You can create as many dashboards as you want and then import the same in Home Assistant. 11. To add the Grafana dashboard in HA, use the following config: - ``` + ```yaml panel_iframe: router: title: 'Temperature' diff --git a/source/_posts/2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown b/source/_posts/2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown index 8f8931676161..a9fb1455cd9a 100644 --- a/source/_posts/2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown +++ b/source/_posts/2017-05-01-home-assistant-on-raspberry-pi-zero-in-30-minutes.markdown @@ -46,7 +46,7 @@ Right in there, not in any folders, create a file called `wpa_supplicant.conf`. The contents of the configuration file should be something like this: (You may have to adjust for your configuration, hints [here](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md) ) -``` +```txt network={ ssid="YOUR_WIFI_NETWORK_NAME_HERE" psk="YOUR_WIFI_PASSWORD_HERE" @@ -62,7 +62,7 @@ It's a good idea to change the password. To do so, use the `passwd` command. Next, type the following two commands into the SSH console: -``` +```bash $ sudo systemctl enable install_homeassistant.service $ sudo systemctl start install_homeassistant.service ``` diff --git a/source/_posts/2017-07-02-release-48.markdown b/source/_posts/2017-07-02-release-48.markdown index ac9cc2897b62..ea0454115970 100644 --- a/source/_posts/2017-07-02-release-48.markdown +++ b/source/_posts/2017-07-02-release-48.markdown @@ -87,7 +87,7 @@ homeassistant: - Vera battery levels will no longer have the percent sign appended ([@philhawthorne] - [#8069]) ([vera docs]) (breaking change) - Notify - SMTP: Added SMTP SSL/TLS support so now you should specify which encryption to use. ([@sn0oz] - [#7960]) ([notify.smtp docs]) (breaking change) -``` +```yaml notify: - name: mail platform: smtp diff --git a/source/_posts/2017-09-09-release-53.markdown b/source/_posts/2017-09-09-release-53.markdown index cba211cb236a..6980c2ed790e 100644 --- a/source/_posts/2017-09-09-release-53.markdown +++ b/source/_posts/2017-09-09-release-53.markdown @@ -92,7 +92,7 @@ Experiencing issues introduced by this release? Please report them in our [issue * `custom_ui_state_card` now specifies the exact element name and not a suffix after `state-card`. So if you had `state_card_custom_ui: custom-ui` in your config, you should change it to `state_card_custom_ui: state-card-custom-ui` * `custom_ui_state_card` no longer makes the html fetch, you should make it separately: -``` +```yaml frontend: extra_html_url: - /local/custom_ui/state-card-custom-ui.html diff --git a/source/_posts/2017-09-25-new-hassio-build-system.markdown b/source/_posts/2017-09-25-new-hassio-build-system.markdown index ae6b2e6597b8..c36f833953d7 100644 --- a/source/_posts/2017-09-25-new-hassio-build-system.markdown +++ b/source/_posts/2017-09-25-new-hassio-build-system.markdown @@ -29,13 +29,13 @@ As an add-on developer, you will only have to change one line in your template t Old: -``` +```dockerfile FROM %%BASE_IMAGE%% ``` New: -``` +```dockerfile ARG BUILD_FROM FROM $BUILD_FROM ``` diff --git a/source/_posts/2017-11-10-ttn-with-mqtt.markdown b/source/_posts/2017-11-10-ttn-with-mqtt.markdown index cb674c274fb0..d29426fa504b 100644 --- a/source/_posts/2017-11-10-ttn-with-mqtt.markdown +++ b/source/_posts/2017-11-10-ttn-with-mqtt.markdown @@ -186,7 +186,7 @@ Store it in `/custom_components/sensor/mqtt_ttn.py` and it will hand Now create the [`mqtt_ttn` sensor](/components/sensor.mqtt/) entry for your device. -``` +```yaml sensor: - platform: mqtt_ttn name: TTN Sensor diff --git a/source/_posts/2017-11-18-release-58.markdown b/source/_posts/2017-11-18-release-58.markdown index a530ab85fcfb..0086fe8bd23d 100644 --- a/source/_posts/2017-11-18-release-58.markdown +++ b/source/_posts/2017-11-18-release-58.markdown @@ -31,7 +31,7 @@ Thanks to [@Andrey-git] we now are able to serve the frontend in modern JavaScri To try it once, add `?latest` to your Home Assistant bookmark. To make it the default on your installation, update your config to look like this: -``` +```yaml frontend: javascript_version: latest ``` diff --git a/source/_posts/2018-01-14-release-61.markdown b/source/_posts/2018-01-14-release-61.markdown index 239b8baceebe..f8e78a990e48 100644 --- a/source/_posts/2018-01-14-release-61.markdown +++ b/source/_posts/2018-01-14-release-61.markdown @@ -144,7 +144,7 @@ Note however, that this feature was replaced by a new ignore_string config optio - The `climate.set_aux_heat` service is no longer available for the Sensibo climate platform. Now call `climate.turn_on` or `climate.turn_off`. ([@andrey-git] - [#11579]) ([climate.sensibo docs]) (breaking change) - Release 0.61.0 introduced a lazy service loading strategy that relied on all components and platforms following our naming convention. After the release we realized that not all services did, which have been addressed by this fix. This results in certain services changing names: - ``` + ```yaml todoist.new_task -> calendar.todoist_new_task snapcast.snapcast_snapshot -> media_player.snapcast_snapshot diff --git a/source/_posts/2019-05-16-release-93.markdown b/source/_posts/2019-05-16-release-93.markdown index e731240ee3ed..a46cff8fdf9d 100644 --- a/source/_posts/2019-05-16-release-93.markdown +++ b/source/_posts/2019-05-16-release-93.markdown @@ -159,7 +159,7 @@ Experiencing issues introduced by this release? Please report them in our [issue * The IQVIA component no longer provides historical data for allergen and asthma conditions. Tactically, this means all historical sensors – including "Yesterday" sensors – will no longer appear; users will need to update any automations that previously relied on these sensors. ([@bachya] - [#23258]) ([iqvia docs]) Example configuration: - ``` + ```yaml iqvia: zip_code: "12345" ``` @@ -177,7 +177,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - __Epson Workforce__ - This change adds the option to add photo black cartridge as a setting. It also corrects the spelling of "Inklevel" to "Ink level"([@ThaStealth] - [#23433]) ([epsonworkforce docs]) Example configuration: - ``` + ```yaml - platform: epsonworkforce host: IP_ADDRESS monitored_conditions: @@ -196,7 +196,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - __Sesame Smart Lock__ - The Sesame smart lock's 1.0 API uses a username/password pair to authenticate, and may be deprecated in the future. The V3 API uses an API key, so it will require users to update their HA config. ([@zanglang] - [#23621]) ([sesame docs]) Example configuration: - ``` + ```yaml lock: - platform: sesame api_key: !secret sesame_api_key diff --git a/source/_posts/2019-06-05-release-94.markdown b/source/_posts/2019-06-05-release-94.markdown index 4c7c3349697b..8c56f3ac6520 100644 --- a/source/_posts/2019-06-05-release-94.markdown +++ b/source/_posts/2019-06-05-release-94.markdown @@ -189,7 +189,7 @@ Experiencing issues introduced by this release? Please report them in our [issue - __Doorbird__ -_Refactored_- This change cleans up the code for the component quite a bit. Schedule manipulation has been removed and HTTP views have been consolidated. The configuration changes should result in an overall easier experience for setting up a Doorbird in HA and allow for new Doorbird events to be utilized without having to update the component as often. No changes for switches or camera integrations of this component. ([@oblogic7] - [#23892]) ([doorbird docs]) Example configuration: - ``` + ```yaml doorbird: devices: - host: 10.10.10.10 diff --git a/source/developers/cla.markdown b/source/developers/cla.markdown index c1312f75ea89..b703da1baced 100644 --- a/source/developers/cla.markdown +++ b/source/developers/cla.markdown @@ -5,7 +5,7 @@ description: "The Code of Conduct for Home Assistant projects." # Contributor License Agreement -``` +```txt By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I diff --git a/source/developers/license.markdown b/source/developers/license.markdown index f1e91f90f221..2caf13dadd71 100644 --- a/source/developers/license.markdown +++ b/source/developers/license.markdown @@ -5,7 +5,7 @@ description: "The License that all Home Assistant projects are licensed under" The Home Assistant source code is released under the following license. -``` +```txt Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ diff --git a/source/hassio/enable_i2c.markdown b/source/hassio/enable_i2c.markdown index 664fc86022f2..88508d0d0c5a 100644 --- a/source/hassio/enable_i2c.markdown +++ b/source/hassio/enable_i2c.markdown @@ -25,12 +25,12 @@ Format a USB stick with FAT32/EXT4/NTFS and name the drive `CONFIG` (uppercase). - In the root of the USB drive add a folder called `/modules`. - Inside that folder add a text file called `rpi-i2c.conf` with the following contents: - ``` + ```txt i2c-bcm2708 i2c-dev ``` - In the root of the USB drive add a file called `config.txt` with the following contents: - ``` + ```txt dtparam=i2c1=on dtparam=i2c_arm=on ``` diff --git a/source/hassio/zwave.markdown b/source/hassio/zwave.markdown index 40313b381bce..23dd5da322d8 100644 --- a/source/hassio/zwave.markdown +++ b/source/hassio/zwave.markdown @@ -14,7 +14,7 @@ zwave: If you need GPIO on Raspberry Pi 3 for your Z-Wave module, add the following line into `config.txt` (you have to access that on the SD card directly. Simply plug it into your PC and edit it there. The `config.txt` is not accessible from your Hass.io system, you may need to open the SD card on a Windows or Linux system.): -``` +```txt dtoverlay=pi3-miniuart-bt ```