From f19eac342e63f0407fe2401e712d7a7f429beb9b Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Mon, 7 Jun 2021 00:43:04 +0100 Subject: [PATCH 1/6] Adds auto-generated docs for config schema --- docs/config-schema/README.md | 35 +++ ...ties-appconfig-properties-backgroundimg.md | 15 + ...es-appconfig-properties-cssthemes-items.md | 15 + ...operties-appconfig-properties-cssthemes.md | 15 + ...operties-appconfig-properties-customcss.md | 15 + ...-appconfig-properties-enablefontawesome.md | 23 ++ ...fig-properties-externalstylesheet-items.md | 15 + ...appconfig-properties-externalstylesheet.md | 15 + ...ies-appconfig-properties-fontawesomekey.md | 25 ++ ...g-properties-appconfig-properties-theme.md | 23 ++ .../dashy-config-properties-appconfig.md | 179 ++++++++++++ ...perties-pageinfo-properties-description.md | 15 + ...operties-pageinfo-properties-footertext.md | 15 + ...operties-navlinks-items-properties-path.md | 15 + ...perties-navlinks-items-properties-title.md | 15 + ...ties-pageinfo-properties-navlinks-items.md | 58 ++++ ...properties-pageinfo-properties-navlinks.md | 19 ++ ...ig-properties-pageinfo-properties-title.md | 15 + .../dashy-config-properties-pageinfo.md | 100 +++++++ ...erties-displaydata-properties-collapsed.md | 15 + ...properties-displaydata-properties-color.md | 15 + ...-properties-displaydata-properties-cols.md | 29 ++ ...ies-displaydata-properties-customstyles.md | 15 + ...rties-displaydata-properties-itemcountx.md | 21 ++ ...rties-displaydata-properties-itemcounty.md | 21 ++ ...perties-displaydata-properties-itemsize.md | 33 +++ ...roperties-displaydata-properties-layout.md | 32 +++ ...-properties-displaydata-properties-rows.md | 29 ++ ...s-sections-items-properties-displaydata.md | 266 ++++++++++++++++++ ...operties-sections-items-properties-icon.md | 15 + ...properties-items-items-properties-color.md | 15 + ...ties-items-items-properties-description.md | 15 + ...-properties-items-items-properties-icon.md | 15 + ...perties-items-items-properties-provider.md | 15 + ...roperties-items-items-properties-target.md | 33 +++ ...properties-items-items-properties-title.md | 15 + ...s-properties-items-items-properties-url.md | 15 + ...s-sections-items-properties-items-items.md | 171 +++++++++++ ...perties-sections-items-properties-items.md | 15 + ...operties-sections-items-properties-name.md | 15 + .../dashy-config-properties-sections-items.md | 96 +++++++ .../dashy-config-properties-sections.md | 15 + docs/config-schema/dashy-config.md | 77 +++++ 43 files changed, 1630 insertions(+) create mode 100644 docs/config-schema/README.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-backgroundimg.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-cssthemes-items.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-cssthemes.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-customcss.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-enablefontawesome.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-externalstylesheet-items.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-externalstylesheet.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-fontawesomekey.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig-properties-theme.md create mode 100644 docs/config-schema/dashy-config-properties-appconfig.md create mode 100644 docs/config-schema/dashy-config-properties-pageinfo-properties-description.md create mode 100644 docs/config-schema/dashy-config-properties-pageinfo-properties-footertext.md create mode 100644 docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items-properties-path.md create mode 100644 docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items-properties-title.md create mode 100644 docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items.md create mode 100644 docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks.md create mode 100644 docs/config-schema/dashy-config-properties-pageinfo-properties-title.md create mode 100644 docs/config-schema/dashy-config-properties-pageinfo.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-collapsed.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-color.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-cols.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-customstyles.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemcountx.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemcounty.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemsize.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-layout.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-rows.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-displaydata.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-icon.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-color.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-description.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-icon.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-provider.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-target.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-title.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-url.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items-items.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-items.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items-properties-name.md create mode 100644 docs/config-schema/dashy-config-properties-sections-items.md create mode 100644 docs/config-schema/dashy-config-properties-sections.md create mode 100644 docs/config-schema/dashy-config.md diff --git a/docs/config-schema/README.md b/docs/config-schema/README.md new file mode 100644 index 00000000..6e16ab8d --- /dev/null +++ b/docs/config-schema/README.md @@ -0,0 +1,35 @@ +# README + +## Top-level Schemas + +* [Dashy Config Schema](./dashy-config.md) – `https://example.com/schemas/abstract` + +## Other Schemas + +### Objects + +* [Untitled object in Dashy Config Schema](./dashy-config-properties-pageinfo.md) – `https://example.com/schemas/abstract#/properties/pageInfo` + +* [Untitled object in Dashy Config Schema](./dashy-config-properties-pageinfo-properties-navlinks-items.md) – `https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks/items` + +* [Untitled object in Dashy Config Schema](./dashy-config-properties-appconfig.md "Application configuration") – `https://example.com/schemas/abstract#/properties/appConfig` + +* [Untitled object in Dashy Config Schema](./dashy-config-properties-sections-items.md) – `https://example.com/schemas/abstract#/properties/sections/items` + +* [Untitled object in Dashy Config Schema](./dashy-config-properties-sections-items-properties-displaydata.md "Optional meta data for customizing a section") – `https://example.com/schemas/abstract#/properties/sections/items/properties/displayData` + +* [Untitled object in Dashy Config Schema](./dashy-config-properties-sections-items-properties-items-items.md) – `https://example.com/schemas/abstract#/properties/sections/items/properties/items/items` + +### Arrays + +* [Untitled array in Dashy Config Schema](./dashy-config-properties-pageinfo-properties-navlinks.md "Quick access links, displayed in header") – `https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks` + +* [Untitled array in Dashy Config Schema](./dashy-config-properties-appconfig-properties-cssthemes.md "Theme names to be added to the dropdown") – `https://example.com/schemas/abstract#/properties/appConfig/properties/cssThemes` + +* [Untitled array in Dashy Config Schema](./dashy-config-properties-sections.md "Array of sections, containing items") – `https://example.com/schemas/abstract#/properties/sections` + +* [Untitled array in Dashy Config Schema](./dashy-config-properties-sections-items-properties-items.md "Array of items to display with a section") – `https://example.com/schemas/abstract#/properties/sections/items/properties/items` + +## Version Note + +The schemas linked above follow the JSON Schema Spec version: `http://json-schema.org/draft-06/schema#` diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-backgroundimg.md b/docs/config-schema/dashy-config-properties-appconfig-properties-backgroundimg.md new file mode 100644 index 00000000..3a377562 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-backgroundimg.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/backgroundImg +``` + +A URL to an image asset to be displayed as background + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## backgroundImg Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-cssthemes-items.md b/docs/config-schema/dashy-config-properties-appconfig-properties-cssthemes-items.md new file mode 100644 index 00000000..15e80729 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-cssthemes-items.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/cssThemes/items +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## items Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-cssthemes.md b/docs/config-schema/dashy-config-properties-appconfig-properties-cssthemes.md new file mode 100644 index 00000000..f09a4390 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-cssthemes.md @@ -0,0 +1,15 @@ +# Untitled array in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/cssThemes +``` + +Theme names to be added to the dropdown + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## cssThemes Type + +`string[]` diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-customcss.md b/docs/config-schema/dashy-config-properties-appconfig-properties-customcss.md new file mode 100644 index 00000000..a8833b10 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-customcss.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/customCss +``` + +Any custom CSS overides, must be minified + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## customCss Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-enablefontawesome.md b/docs/config-schema/dashy-config-properties-appconfig-properties-enablefontawesome.md new file mode 100644 index 00000000..706468b4 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-enablefontawesome.md @@ -0,0 +1,23 @@ +# Untitled boolean in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/enableFontAwesome +``` + +Should load font-awesome assets + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## enableFontAwesome Type + +`boolean` + +## enableFontAwesome Default Value + +The default value is: + +```json +true +``` diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-externalstylesheet-items.md b/docs/config-schema/dashy-config-properties-appconfig-properties-externalstylesheet-items.md new file mode 100644 index 00000000..43937852 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-externalstylesheet-items.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/externalStyleSheet/items +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## items Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-externalstylesheet.md b/docs/config-schema/dashy-config-properties-appconfig-properties-externalstylesheet.md new file mode 100644 index 00000000..583aaf06 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-externalstylesheet.md @@ -0,0 +1,15 @@ +# Untitled undefined type in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/externalStyleSheet +``` + +URL or URLs of external stylesheets to add to dropdown/ load + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## externalStyleSheet Type + +any of the folllowing: `string` or `array` ([Details](dashy-config-properties-appconfig-properties-externalstylesheet.md)) diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-fontawesomekey.md b/docs/config-schema/dashy-config-properties-appconfig-properties-fontawesomekey.md new file mode 100644 index 00000000..dfb982a0 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-fontawesomekey.md @@ -0,0 +1,25 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/fontAwesomeKey +``` + +API key for font-awesome + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## fontAwesomeKey Type + +`string` + +## fontAwesomeKey Constraints + +**pattern**: the string must match the following regular expression: + +```regexp +^[a-z0-9]{10}$ +``` + +[try pattern](https://regexr.com/?expression=%5E%5Ba-z0-9%5D%7B10%7D%24 "try regular expression with regexr.com") diff --git a/docs/config-schema/dashy-config-properties-appconfig-properties-theme.md b/docs/config-schema/dashy-config-properties-appconfig-properties-theme.md new file mode 100644 index 00000000..bc090a99 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig-properties-theme.md @@ -0,0 +1,23 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig/properties/theme +``` + +A theme to be applied by default on first load + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## theme Type + +`string` + +## theme Default Value + +The default value is: + +```json +"Callisto" +``` diff --git a/docs/config-schema/dashy-config-properties-appconfig.md b/docs/config-schema/dashy-config-properties-appconfig.md new file mode 100644 index 00000000..af63de7c --- /dev/null +++ b/docs/config-schema/dashy-config-properties-appconfig.md @@ -0,0 +1,179 @@ +# Untitled object in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/appConfig +``` + +Application configuration + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## appConfig Type + +`object` ([Details](dashy-config-properties-appconfig.md)) + +# appConfig Properties + +| Property | Type | Required | Nullable | Defined by | +| :---------------------------------------- | :-------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [backgroundImg](#backgroundimg) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-appconfig-properties-backgroundimg.md "https://example.com/schemas/abstract#/properties/appConfig/properties/backgroundImg") | +| [theme](#theme) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-appconfig-properties-theme.md "https://example.com/schemas/abstract#/properties/appConfig/properties/theme") | +| [enableFontAwesome](#enablefontawesome) | `boolean` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-appconfig-properties-enablefontawesome.md "https://example.com/schemas/abstract#/properties/appConfig/properties/enableFontAwesome") | +| [fontAwesomeKey](#fontawesomekey) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-appconfig-properties-fontawesomekey.md "https://example.com/schemas/abstract#/properties/appConfig/properties/fontAwesomeKey") | +| [cssThemes](#cssthemes) | `array` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-appconfig-properties-cssthemes.md "https://example.com/schemas/abstract#/properties/appConfig/properties/cssThemes") | +| [externalStyleSheet](#externalstylesheet) | Multiple | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-appconfig-properties-externalstylesheet.md "https://example.com/schemas/abstract#/properties/appConfig/properties/externalStyleSheet") | +| [customCss](#customcss) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-appconfig-properties-customcss.md "https://example.com/schemas/abstract#/properties/appConfig/properties/customCss") | + +## backgroundImg + +A URL to an image asset to be displayed as background + +`backgroundImg` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-appconfig-properties-backgroundimg.md "https://example.com/schemas/abstract#/properties/appConfig/properties/backgroundImg") + +### backgroundImg Type + +`string` + +## theme + +A theme to be applied by default on first load + +`theme` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-appconfig-properties-theme.md "https://example.com/schemas/abstract#/properties/appConfig/properties/theme") + +### theme Type + +`string` + +### theme Default Value + +The default value is: + +```json +"Callisto" +``` + +## enableFontAwesome + +Should load font-awesome assets + +`enableFontAwesome` + +* is optional + +* Type: `boolean` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-appconfig-properties-enablefontawesome.md "https://example.com/schemas/abstract#/properties/appConfig/properties/enableFontAwesome") + +### enableFontAwesome Type + +`boolean` + +### enableFontAwesome Default Value + +The default value is: + +```json +true +``` + +## fontAwesomeKey + +API key for font-awesome + +`fontAwesomeKey` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-appconfig-properties-fontawesomekey.md "https://example.com/schemas/abstract#/properties/appConfig/properties/fontAwesomeKey") + +### fontAwesomeKey Type + +`string` + +### fontAwesomeKey Constraints + +**pattern**: the string must match the following regular expression: + +```regexp +^[a-z0-9]{10}$ +``` + +[try pattern](https://regexr.com/?expression=%5E%5Ba-z0-9%5D%7B10%7D%24 "try regular expression with regexr.com") + +## cssThemes + +Theme names to be added to the dropdown + +`cssThemes` + +* is optional + +* Type: `string[]` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-appconfig-properties-cssthemes.md "https://example.com/schemas/abstract#/properties/appConfig/properties/cssThemes") + +### cssThemes Type + +`string[]` + +## externalStyleSheet + +URL or URLs of external stylesheets to add to dropdown/ load + +`externalStyleSheet` + +* is optional + +* Type: any of the folllowing: `string` or `array` ([Details](dashy-config-properties-appconfig-properties-externalstylesheet.md)) + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-appconfig-properties-externalstylesheet.md "https://example.com/schemas/abstract#/properties/appConfig/properties/externalStyleSheet") + +### externalStyleSheet Type + +any of the folllowing: `string` or `array` ([Details](dashy-config-properties-appconfig-properties-externalstylesheet.md)) + +## customCss + +Any custom CSS overides, must be minified + +`customCss` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-appconfig-properties-customcss.md "https://example.com/schemas/abstract#/properties/appConfig/properties/customCss") + +### customCss Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-pageinfo-properties-description.md b/docs/config-schema/dashy-config-properties-pageinfo-properties-description.md new file mode 100644 index 00000000..b2636bdc --- /dev/null +++ b/docs/config-schema/dashy-config-properties-pageinfo-properties-description.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/pageInfo/properties/description +``` + +Sub-title, displayed in header + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## description Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-pageinfo-properties-footertext.md b/docs/config-schema/dashy-config-properties-pageinfo-properties-footertext.md new file mode 100644 index 00000000..9d75c2e8 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-pageinfo-properties-footertext.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/pageInfo/properties/footerText +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## footerText Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items-properties-path.md b/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items-properties-path.md new file mode 100644 index 00000000..79fc5bf7 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items-properties-path.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks/items/properties/path +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## path Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items-properties-title.md b/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items-properties-title.md new file mode 100644 index 00000000..6c891714 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items-properties-title.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks/items/properties/title +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## title Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items.md b/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items.md new file mode 100644 index 00000000..48a7abb4 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks-items.md @@ -0,0 +1,58 @@ +# Untitled object in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks/items +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## items Type + +`object` ([Details](dashy-config-properties-pageinfo-properties-navlinks-items.md)) + +# items Properties + +| Property | Type | Required | Nullable | Defined by | +| :-------------- | :------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [title](#title) | `string` | Required | cannot be null | [Dashy Config Schema](dashy-config-properties-pageinfo-properties-navlinks-items-properties-title.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks/items/properties/title") | +| [path](#path) | `string` | Required | cannot be null | [Dashy Config Schema](dashy-config-properties-pageinfo-properties-navlinks-items-properties-path.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks/items/properties/path") | + +## title + + + +`title` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-pageinfo-properties-navlinks-items-properties-title.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks/items/properties/title") + +### title Type + +`string` + +## path + + + +`path` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-pageinfo-properties-navlinks-items-properties-path.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks/items/properties/path") + +### path Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks.md b/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks.md new file mode 100644 index 00000000..2e4a9768 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-pageinfo-properties-navlinks.md @@ -0,0 +1,19 @@ +# Untitled array in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks +``` + +Quick access links, displayed in header + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## navLinks Type + +`object[]` ([Details](dashy-config-properties-pageinfo-properties-navlinks-items.md)) + +## navLinks Constraints + +**maximum number of items**: the maximum number of items for this array is: `6` diff --git a/docs/config-schema/dashy-config-properties-pageinfo-properties-title.md b/docs/config-schema/dashy-config-properties-pageinfo-properties-title.md new file mode 100644 index 00000000..25f1ad49 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-pageinfo-properties-title.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/pageInfo/properties/title +``` + +Title and heading for the app + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## title Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-pageinfo.md b/docs/config-schema/dashy-config-properties-pageinfo.md new file mode 100644 index 00000000..d9494696 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-pageinfo.md @@ -0,0 +1,100 @@ +# Untitled object in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/pageInfo +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## pageInfo Type + +`object` ([Details](dashy-config-properties-pageinfo.md)) + +# pageInfo Properties + +| Property | Type | Required | Nullable | Defined by | +| :-------------------------- | :------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [title](#title) | `string` | Required | cannot be null | [Dashy Config Schema](dashy-config-properties-pageinfo-properties-title.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/title") | +| [description](#description) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-pageinfo-properties-description.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/description") | +| [navLinks](#navlinks) | `array` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-pageinfo-properties-navlinks.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks") | +| [footerText](#footertext) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-pageinfo-properties-footertext.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/footerText") | + +## title + +Title and heading for the app + +`title` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-pageinfo-properties-title.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/title") + +### title Type + +`string` + +## description + +Sub-title, displayed in header + +`description` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-pageinfo-properties-description.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/description") + +### description Type + +`string` + +## navLinks + +Quick access links, displayed in header + +`navLinks` + +* is optional + +* Type: `object[]` ([Details](dashy-config-properties-pageinfo-properties-navlinks-items.md)) + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-pageinfo-properties-navlinks.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/navLinks") + +### navLinks Type + +`object[]` ([Details](dashy-config-properties-pageinfo-properties-navlinks-items.md)) + +### navLinks Constraints + +**maximum number of items**: the maximum number of items for this array is: `6` + +## footerText + + + +`footerText` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-pageinfo-properties-footertext.md "https://example.com/schemas/abstract#/properties/pageInfo/properties/footerText") + +### footerText Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-collapsed.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-collapsed.md new file mode 100644 index 00000000..1bed4095 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-collapsed.md @@ -0,0 +1,15 @@ +# Untitled boolean in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/collapsed +``` + +If true, section needs to be clicked to open + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## collapsed Type + +`boolean` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-color.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-color.md new file mode 100644 index 00000000..32035b0b --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-color.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/color +``` + +Hex code, or HTML color for section fill + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## color Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-cols.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-cols.md new file mode 100644 index 00000000..ea688ea1 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-cols.md @@ -0,0 +1,29 @@ +# Untitled number in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/cols +``` + +The amount of space that the section spans horizontally + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## cols Type + +`number` + +## cols Constraints + +**maximum**: the value of this number must smaller than or equal to: `5` + +**minimum**: the value of this number must greater than or equal to: `1` + +## cols Default Value + +The default value is: + +```json +1 +``` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-customstyles.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-customstyles.md new file mode 100644 index 00000000..7e5ece63 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-customstyles.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/customStyles +``` + +CSS overides for section container + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## customStyles Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemcountx.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemcountx.md new file mode 100644 index 00000000..9cb308ce --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemcountx.md @@ -0,0 +1,21 @@ +# Untitled number in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemCountX +``` + +Number of items per column + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## itemCountX Type + +`number` + +## itemCountX Constraints + +**maximum**: the value of this number must smaller than or equal to: `12` + +**minimum**: the value of this number must greater than or equal to: `1` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemcounty.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemcounty.md new file mode 100644 index 00000000..995ba7c1 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemcounty.md @@ -0,0 +1,21 @@ +# Untitled number in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemCountY +``` + +Number of items per row + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## itemCountY Type + +`number` + +## itemCountY Constraints + +**maximum**: the value of this number must smaller than or equal to: `12` + +**minimum**: the value of this number must greater than or equal to: `1` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemsize.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemsize.md new file mode 100644 index 00000000..a76d28dc --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-itemsize.md @@ -0,0 +1,33 @@ +# Untitled undefined type in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemSize +``` + +Size of items within the section + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## itemSize Type + +unknown + +## itemSize Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :--------- | :---------- | +| `"small"` | | +| `"medium"` | | +| `"large"` | | + +## itemSize Default Value + +The default value is: + +```json +"medium" +``` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-layout.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-layout.md new file mode 100644 index 00000000..edd259a1 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-layout.md @@ -0,0 +1,32 @@ +# Untitled undefined type in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/layout +``` + +If set to grid, items have uniform width, and itemCount can be set + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## layout Type + +unknown + +## layout Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :------- | :---------- | +| `"grid"` | | +| `"auto"` | | + +## layout Default Value + +The default value is: + +```json +"auto" +``` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-rows.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-rows.md new file mode 100644 index 00000000..a4ae3938 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata-properties-rows.md @@ -0,0 +1,29 @@ +# Untitled number in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/rows +``` + +The amount of space that the section spans vertically + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## rows Type + +`number` + +## rows Constraints + +**maximum**: the value of this number must smaller than or equal to: `5` + +**minimum**: the value of this number must greater than or equal to: `1` + +## rows Default Value + +The default value is: + +```json +1 +``` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata.md b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata.md new file mode 100644 index 00000000..9a671c19 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-displaydata.md @@ -0,0 +1,266 @@ +# Untitled object in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/displayData +``` + +Optional meta data for customizing a section + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## displayData Type + +`object` ([Details](dashy-config-properties-sections-items-properties-displaydata.md)) + +# displayData Properties + +| Property | Type | Required | Nullable | Defined by | +| :---------------------------- | :------------ | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [collapsed](#collapsed) | `boolean` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-collapsed.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/collapsed") | +| [color](#color) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-color.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/color") | +| [customStyles](#customstyles) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-customstyles.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/customStyles") | +| [itemSize](#itemsize) | Not specified | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-itemsize.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemSize") | +| [rows](#rows) | `number` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-rows.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/rows") | +| [cols](#cols) | `number` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-cols.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/cols") | +| [layout](#layout) | Not specified | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-layout.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/layout") | +| [itemCountX](#itemcountx) | `number` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-itemcountx.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemCountX") | +| [itemCountY](#itemcounty) | `number` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-itemcounty.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemCountY") | + +## collapsed + +If true, section needs to be clicked to open + +`collapsed` + +* is optional + +* Type: `boolean` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-collapsed.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/collapsed") + +### collapsed Type + +`boolean` + +## color + +Hex code, or HTML color for section fill + +`color` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-color.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/color") + +### color Type + +`string` + +## customStyles + +CSS overides for section container + +`customStyles` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-customstyles.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/customStyles") + +### customStyles Type + +`string` + +## itemSize + +Size of items within the section + +`itemSize` + +* is optional + +* Type: unknown + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-itemsize.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemSize") + +### itemSize Type + +unknown + +### itemSize Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :--------- | :---------- | +| `"small"` | | +| `"medium"` | | +| `"large"` | | + +### itemSize Default Value + +The default value is: + +```json +"medium" +``` + +## rows + +The amount of space that the section spans vertically + +`rows` + +* is optional + +* Type: `number` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-rows.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/rows") + +### rows Type + +`number` + +### rows Constraints + +**maximum**: the value of this number must smaller than or equal to: `5` + +**minimum**: the value of this number must greater than or equal to: `1` + +### rows Default Value + +The default value is: + +```json +1 +``` + +## cols + +The amount of space that the section spans horizontally + +`cols` + +* is optional + +* Type: `number` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-cols.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/cols") + +### cols Type + +`number` + +### cols Constraints + +**maximum**: the value of this number must smaller than or equal to: `5` + +**minimum**: the value of this number must greater than or equal to: `1` + +### cols Default Value + +The default value is: + +```json +1 +``` + +## layout + +If set to grid, items have uniform width, and itemCount can be set + +`layout` + +* is optional + +* Type: unknown + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-layout.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/layout") + +### layout Type + +unknown + +### layout Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :------- | :---------- | +| `"grid"` | | +| `"auto"` | | + +### layout Default Value + +The default value is: + +```json +"auto" +``` + +## itemCountX + +Number of items per column + +`itemCountX` + +* is optional + +* Type: `number` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-itemcountx.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemCountX") + +### itemCountX Type + +`number` + +### itemCountX Constraints + +**maximum**: the value of this number must smaller than or equal to: `12` + +**minimum**: the value of this number must greater than or equal to: `1` + +## itemCountY + +Number of items per row + +`itemCountY` + +* is optional + +* Type: `number` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata-properties-itemcounty.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData/properties/itemCountY") + +### itemCountY Type + +`number` + +### itemCountY Constraints + +**maximum**: the value of this number must smaller than or equal to: `12` + +**minimum**: the value of this number must greater than or equal to: `1` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-icon.md b/docs/config-schema/dashy-config-properties-sections-items-properties-icon.md new file mode 100644 index 00000000..d148087e --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-icon.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/icon +``` + +Icon will be displayed next to title + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## icon Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-color.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-color.md new file mode 100644 index 00000000..fb6ef980 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-color.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/color +``` + +A custom fill color of the item + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## color Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-description.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-description.md new file mode 100644 index 00000000..38bbcc65 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-description.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/description +``` + +Short description, shown on hover or in a tooltip + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## description Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-icon.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-icon.md new file mode 100644 index 00000000..47297239 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-icon.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/icon +``` + +An icon, either as a font-awesome identifier, local or remote URL, or auto-fetched favicon + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## icon Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-provider.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-provider.md new file mode 100644 index 00000000..f6f1ea1c --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-provider.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/provider +``` + +Provider name, e.g. Microsoft + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## provider Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-target.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-target.md new file mode 100644 index 00000000..9374264e --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-target.md @@ -0,0 +1,33 @@ +# Untitled undefined type in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/target +``` + +Opening method, when item is clicked + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## target Type + +unknown + +## target Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :---------- | :---------- | +| `"newtab"` | | +| `"sametab"` | | +| `"iframe"` | | + +## target Default Value + +The default value is: + +```json +"newtab" +``` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-title.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-title.md new file mode 100644 index 00000000..b9553290 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-title.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/title +``` + +Text shown on the item + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## title Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-url.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-url.md new file mode 100644 index 00000000..b3c69915 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items-properties-url.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/url +``` + +The destination to navigate to when item is clicked + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## url Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items-items.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items.md new file mode 100644 index 00000000..b51f451d --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items-items.md @@ -0,0 +1,171 @@ +# Untitled object in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items/items +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## items Type + +`object` ([Details](dashy-config-properties-sections-items-properties-items-items.md)) + +# items Properties + +| Property | Type | Required | Nullable | Defined by | +| :-------------------------- | :------------ | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [title](#title) | `string` | Required | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-title.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/title") | +| [description](#description) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-description.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/description") | +| [icon](#icon) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-icon.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/icon") | +| [url](#url) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-url.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/url") | +| [target](#target) | Not specified | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-target.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/target") | +| [color](#color) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-color.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/color") | +| [provider](#provider) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-provider.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/provider") | + +## title + +Text shown on the item + +`title` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-title.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/title") + +### title Type + +`string` + +## description + +Short description, shown on hover or in a tooltip + +`description` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-description.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/description") + +### description Type + +`string` + +## icon + +An icon, either as a font-awesome identifier, local or remote URL, or auto-fetched favicon + +`icon` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-icon.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/icon") + +### icon Type + +`string` + +## url + +The destination to navigate to when item is clicked + +`url` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-url.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/url") + +### url Type + +`string` + +## target + +Opening method, when item is clicked + +`target` + +* is optional + +* Type: unknown + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-target.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/target") + +### target Type + +unknown + +### target Constraints + +**enum**: the value of this property must be equal to one of the following values: + +| Value | Explanation | +| :---------- | :---------- | +| `"newtab"` | | +| `"sametab"` | | +| `"iframe"` | | + +### target Default Value + +The default value is: + +```json +"newtab" +``` + +## color + +A custom fill color of the item + +`color` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-color.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/color") + +### color Type + +`string` + +## provider + +Provider name, e.g. Microsoft + +`provider` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-items-items-properties-provider.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items/items/properties/provider") + +### provider Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-items.md b/docs/config-schema/dashy-config-properties-sections-items-properties-items.md new file mode 100644 index 00000000..d74bbcde --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-items.md @@ -0,0 +1,15 @@ +# Untitled array in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/items +``` + +Array of items to display with a section + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## items Type + +`object[]` ([Details](dashy-config-properties-sections-items-properties-items-items.md)) diff --git a/docs/config-schema/dashy-config-properties-sections-items-properties-name.md b/docs/config-schema/dashy-config-properties-sections-items-properties-name.md new file mode 100644 index 00000000..735db51a --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items-properties-name.md @@ -0,0 +1,15 @@ +# Untitled string in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items/properties/name +``` + +Title/ heading for a section + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## name Type + +`string` diff --git a/docs/config-schema/dashy-config-properties-sections-items.md b/docs/config-schema/dashy-config-properties-sections-items.md new file mode 100644 index 00000000..81f56829 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections-items.md @@ -0,0 +1,96 @@ +# Untitled object in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections/items +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## items Type + +`object` ([Details](dashy-config-properties-sections-items.md)) + +# items Properties + +| Property | Type | Required | Nullable | Defined by | +| :-------------------------- | :------- | :------- | :------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [name](#name) | `string` | Required | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-name.md "https://example.com/schemas/abstract#/properties/sections/items/properties/name") | +| [icon](#icon) | `string` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-icon.md "https://example.com/schemas/abstract#/properties/sections/items/properties/icon") | +| [displayData](#displaydata) | `object` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData") | +| [items](#items) | `array` | Required | cannot be null | [Dashy Config Schema](dashy-config-properties-sections-items-properties-items.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items") | + +## name + +Title/ heading for a section + +`name` + +* is required + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-name.md "https://example.com/schemas/abstract#/properties/sections/items/properties/name") + +### name Type + +`string` + +## icon + +Icon will be displayed next to title + +`icon` + +* is optional + +* Type: `string` + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-icon.md "https://example.com/schemas/abstract#/properties/sections/items/properties/icon") + +### icon Type + +`string` + +## displayData + +Optional meta data for customizing a section + +`displayData` + +* is optional + +* Type: `object` ([Details](dashy-config-properties-sections-items-properties-displaydata.md)) + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-displaydata.md "https://example.com/schemas/abstract#/properties/sections/items/properties/displayData") + +### displayData Type + +`object` ([Details](dashy-config-properties-sections-items-properties-displaydata.md)) + +## items + +Array of items to display with a section + +`items` + +* is required + +* Type: `object[]` ([Details](dashy-config-properties-sections-items-properties-items-items.md)) + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections-items-properties-items.md "https://example.com/schemas/abstract#/properties/sections/items/properties/items") + +### items Type + +`object[]` ([Details](dashy-config-properties-sections-items-properties-items-items.md)) diff --git a/docs/config-schema/dashy-config-properties-sections.md b/docs/config-schema/dashy-config-properties-sections.md new file mode 100644 index 00000000..54262fd9 --- /dev/null +++ b/docs/config-schema/dashy-config-properties-sections.md @@ -0,0 +1,15 @@ +# Untitled array in Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract#/properties/sections +``` + +Array of sections, containing items + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :---------------------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------- | +| Can be instantiated | No | Unknown status | Unknown identifiability | Forbidden | Allowed | none | [dashy-config.schema.json*](../../out/dashy-config.schema.json "open original schema") | + +## sections Type + +`object[]` ([Details](dashy-config-properties-sections-items.md)) diff --git a/docs/config-schema/dashy-config.md b/docs/config-schema/dashy-config.md new file mode 100644 index 00000000..ea600c88 --- /dev/null +++ b/docs/config-schema/dashy-config.md @@ -0,0 +1,77 @@ +# Dashy Config Schema Schema + +```txt +https://example.com/schemas/abstract +``` + + + +| Abstract | Extensible | Status | Identifiable | Custom Properties | Additional Properties | Access Restrictions | Defined In | +| :------------------ | :--------- | :------------- | :----------- | :---------------- | :-------------------- | :------------------ | :------------------------------------------------------------------------------------ | +| Can be instantiated | No | Unknown status | No | Forbidden | Forbidden | none | [dashy-config.schema.json](../../out/dashy-config.schema.json "open original schema") | + +## Dashy Config Schema Type + +`object` ([Dashy Config Schema](dashy-config.md)) + +# Dashy Config Schema Properties + +| Property | Type | Required | Nullable | Defined by | +| :---------------------- | :------- | :------- | :------------- | :----------------------------------------------------------------------------------------------------------------------- | +| [pageInfo](#pageinfo) | `object` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-pageinfo.md "https://example.com/schemas/abstract#/properties/pageInfo") | +| [appConfig](#appconfig) | `object` | Optional | cannot be null | [Dashy Config Schema](dashy-config-properties-appconfig.md "https://example.com/schemas/abstract#/properties/appConfig") | +| [sections](#sections) | `array` | Required | cannot be null | [Dashy Config Schema](dashy-config-properties-sections.md "https://example.com/schemas/abstract#/properties/sections") | + +## pageInfo + + + +`pageInfo` + +* is optional + +* Type: `object` ([Details](dashy-config-properties-pageinfo.md)) + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-pageinfo.md "https://example.com/schemas/abstract#/properties/pageInfo") + +### pageInfo Type + +`object` ([Details](dashy-config-properties-pageinfo.md)) + +## appConfig + +Application configuration + +`appConfig` + +* is optional + +* Type: `object` ([Details](dashy-config-properties-appconfig.md)) + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-appconfig.md "https://example.com/schemas/abstract#/properties/appConfig") + +### appConfig Type + +`object` ([Details](dashy-config-properties-appconfig.md)) + +## sections + +Array of sections, containing items + +`sections` + +* is required + +* Type: `object[]` ([Details](dashy-config-properties-sections-items.md)) + +* cannot be null + +* defined in: [Dashy Config Schema](dashy-config-properties-sections.md "https://example.com/schemas/abstract#/properties/sections") + +### sections Type + +`object[]` ([Details](dashy-config-properties-sections-items.md)) From 0a6f619f55685f610cfcefecc957ec0b23a6a4c4 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Mon, 7 Jun 2021 02:32:18 +0100 Subject: [PATCH 2/6] Wronte documentation for conf.ylm file --- docs/configuring.md | 126 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 docs/configuring.md diff --git a/docs/configuring.md b/docs/configuring.md new file mode 100644 index 00000000..fbfa0b6b --- /dev/null +++ b/docs/configuring.md @@ -0,0 +1,126 @@ +## Configuring + +All app configuration is specified in [`/public/conf.yml`](https://github.com/Lissy93/dashy/blob/master/public/conf.yml) which is in [YAML Format](https://yaml.org/) format. + +If you're new to YAML, it's pretty straight-forward. The format is exactly the same as that of JSON, but instead of using curley braces, structure is denoted using whitespace. This [quick guide](https://linuxhandbook.com/yaml-basics/) should get you up to speed in a few minutes, for more advanced topics take a look at this [Wikipedia article](https://en.wikipedia.org/wiki/YAML) and for some practicle examples, the [Azure pipelines schema](https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema%2Cparameter-schema) may be useful. + +You may find it helpful to look at some sample config files to get you started, a collection of which can be found [here](https://gist.github.com/Lissy93/000f712a5ce98f212817d20bc16bab10). + +There's a couple of things to remember, before getting started: +- After modifying your config, you will need to run `yarn build` to recompile the application +- You can check that your config file fits the schema, by running `yarn validate-config` +- Any changes made locally through the UI need to be exported into this file, in order for them to persist across devices + +All fields are optional, unless otherwise stated. + + +#### Top-Level Fields + +**Field** | **Type** | **Required**| **Description** +--- | --- | --- | --- +**`pageInfo`** | `object` | Required | Basic meta data like title, description, nav bar links, footer text. See [`pageInfo`](#pageinfo) +**`appConfig`** | `object` | _Optional_ | Settings related to how the app functions, including API keys and global styles. See [`appConfig`](#appconfig-optional) +**`sections`** | `array` | Required | An array of sections, each containing an array of items, which will be displayed as links. See [`section`](#section) + +#### `PageInfo` + +**Field** | **Type** | **Required**| **Description** +--- | --- | --- | --- +**`title`** | `string` | Required | Your dashboard title, displayed in the header and browser tab +**`description`** | `string` | _Optional_ | Description of your dashboard, also displayed as a subtitle +**`navLinks`** | `array` | _Optional_ | Optional list of a maximum of 6 links, which will be displayed in the navigation bar. See [`navLinks`](#pageinfonavlinks-optional) +**`footerText`** | `string` | _Optional_ | Text to display in the footer (note that this will override the default footer content) + +#### `pageInfo.navLinks` _(optional)_ + +**Field** | **Type** | **Required**| **Description** +--- | --- | --- | --- +**`title`** | `string` | Required | The text to display on the link button +**`path`** | `string` | Required | The URL to navigate to when clicked. Can be relative (e.g. `/about`) or absolute (e.g. `https://example.com` or `http://192.168.1.1`) + +#### `appConfig` _(optional)_ + +**Field** | **Type** | **Required**| **Description** +--- | --- | --- | --- +**`backgroundImg`** | `string` | _Optional_ | Path to an optional full-screen app background image. This can be either remote (http) or local (/). Note that this will slow down initial load +**`enableFontAwesome`** | `boolean` | _Optional_ | Where `true` is enabled, if left blank font-awesome will be enabled only if required by 1 or more icons +**`fontAwesomeKey`** | `string` | _Optional_ | If you have a font-awesome key, then you can use it here and make use of premium icons. It is a 10-digit alpha-numeric string from you're FA kit URL (e.g. `13014ae648`) +**`theme`** | `string` | _Optional_ | The default theme for first load (you can change this later from the UI) +**`cssThemes`** | `string[]` | _Optional_ | An array of custom theme names which can be used in the theme switcher dropdown +**`externalStyleSheet`** | `string` or `string[]` | _Optional_ | Either a URL to an external stylesheet or an array or URLs, which can be applied as themes within the UI +**`customCss`** | `string` | _Optional_ | Raw CSS that will be applied to the page. This can also be set from the UI. Please minify it first. + +#### `section` + +**Field** | **Type** | **Required**| **Description** +--- | --- | --- | --- +**`name`** | `string` | Required | The title for the section +**`icon`** | `string` | _Optional_ | An single icon to be displayed next to the title. See [`section.icon`](#sectionicon-and-sectionitemicon) +**`items`** | `array` | Required | An array of items to be displayed within the section. See [`item`](#sectionitem) +**`displayData`** | `object` | _Optional_ | Meta-data to optionally overide display settings for a given section. See [`displayData`](#sectiondisplaydata-optional) + +#### `section.item` + +**Field** | **Type** | **Required**| **Description** +--- | --- | --- | --- +**`title`** | `string` | Required | The text to display/ title of a given item. Max length `18` +**`description`** | `string` | _Optional_ | Additional info about an item, which is shown in the tooltip on hover, or visible on large tiles +**`url`** | `string` | Required | The URL / location of web address for when the item is clicked +**`icon`** | `string` | _Optional_ | The icon for a given item. Can be a font-awesome icon, favicon, remote URL or local URL. See [`item.icon`](#sectionicon-and-sectionitemicon) +**`target`** | `string` | _Optional_ | The opening method for when the item is clicked, either `newtab`, `sametab` or `iframe`. Where `newtab` will open the link in a new tab, `sametab` will open it in the current tab, and `iframe` will open a pop-up modal with the content displayed within that iframe. Note that for the iframe to load, you must have set the CORS headers to either allow `*` ot allow the domain that you are hosting Dashy on, for some websites and self-hosted services, this is already set. +**`color`** | `string` | _Optional_ | An optional color for the text and font-awesome icon to be displayed in. Note that this will override the current theme and so may not display well +**`backgroundColor`** | `string` | _Optional_ | An optional background fill color for the that given item. Again, this will override the current theme and so might not display well against the background + +#### `section.displayData` _(optional)_ + +**Field** | **Type** | **Required**| **Description** +--- | --- | --- | --- +**`collapsed`** | `boolean` | _Optional_ | If true, the section will be collapsed initially, and will need to be clicked to open. Useful for less regularly used, or very long sections. Defaults to `false` +**`color`** | `string` | _Optional_ | A custom accent color for the section, as a hex code or HTML color (e.g. `#fff`) +**`customStyles`** | `string` | _Optional_ | Custom CSS properties that should be applied to that section, e.g. `border: 2px dashed #ff0000;` +**`itemSize`** | `string` | _Optional_ | Specify the size for items within this group, either `small`, `medium` or `large`. Note that this will overide any settings specified through the UI +**`rows`** | `number` | _Optional_ | Height of the section, specified as the number of rows it should span vertically, e.g. `2`. Defaults to `1`. Max is `5`. +**`cols`** | `number` | _Optional_ | Width of the section, specified as the number of columns the section should span horizontally, e.g. `2`. Defaults to `1`. Max is `5`. +**`layout`** | `string` | _Optional_ | Specify which CSS layout will be used to responsivley place items. Can be either `auto` (which uses flex layout), or `grid`. If `grid` is selected, then `itemCountX` and `itemCountY` may also be set. Defaults to `auto` +**`itemCountX`** | `number` | _Optional_ | The number of items to display per row / horizontally. If not set, it will be calculated automatically based on available space. Can only be set if `layout` is set to `grid`. Must be a whole number between `1` and `12` +**`itemCountY`** | `number` | _Optional_ | The number of items to display per column / vertically. If not set, it will be calculated automatically based on available space. If `itemCountX` is set, then `itemCountY` can be calculated automatically. Can only be set if `layout` is set to `grid`. Must be a whole number between `1` and `12` + +#### `section.icon` and `section.item.icon` + +**Field** | **Type** | **Required**| **Description** +--- | --- | --- | --- +**`icon`** | `string` | _Optional_ | The icon for a given item or section. Can be a font-awesome icon, favicon, remote URL or local URL. If set to `favicon`, the icon will be automatically fetched from the items website URL. To use font-awesome, specify the category, followed by the icon name, e.g. `fas fa-rocket`, `fab fa-monero` or `fal fa-duck` - note that to use pro icons, you mut specify `appConfig.fontAwesomeKey`. You can also use hosted any by specifying it's URL, e.g. `https://i.ibb.co/710B3Yc/space-invader-x256.png`. To use a local image, first store it in `./public/item-icons/` (or `-v /app/public/item-icons/` in Docker) , and reference it by name and extension - e.g. set `image.png` to use `./public/item-icon/image.png`, you can also use sub-folders if you have a lot of icons, to keep them organised. + + +#### Example + +```yaml +--- +pageInfo: + title: Home Lab +sections: # An array of sections +- name: Section 1 - Getting Started + items: # An array of items + - title: GitHub + description: Source code and documentation on GitHub + icon: fab fa-github + url: https://github.com/Lissy93/dashy + - title: Issues + description: View currently open issues, or raise a new one + icon: fas fa-bug + url: https://github.com/Lissy93/dashy/issues + - title: Demo + description: A live demo + icon: far fa-rocket + url: https://dashy-demo-1.netlify.app +- name: Section 2 - Local Services + items: + - title: Firewall + icon: favicon + url: http://192.168.1.1/ + - title: Game Server + icon: https://i.ibb.co/710B3Yc/space-invader-x256.png + url: http://192.168.130.1/ +``` + +For more example config files, see: [this gist](https://gist.github.com/Lissy93/000f712a5ce98f212817d20bc16bab10) From 91566286722c6d7cedfd36f536dc97e3a41a212e Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Mon, 7 Jun 2021 12:43:34 +0100 Subject: [PATCH 3/6] Wrote docs on CSS and custom themeing --- docs/theming.md | 137 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 docs/theming.md diff --git a/docs/theming.md b/docs/theming.md new file mode 100644 index 00000000..edf90508 --- /dev/null +++ b/docs/theming.md @@ -0,0 +1,137 @@ +## Theming + +By default Dashy comes with 20 built in themes, which can be applied from the dropwodwn menu in the UI + +![Built-in Themes](https://i.ibb.co/GV3wRss/Dashy-Themes.png) + +You can also add your own themes, apply custom CSS, and modify colors. + +The following content requires that you have a basic understanding of CSS. If you're just beginning, you may find [this article](https://developer.mozilla.org/en-US/docs/Learn/CSS/First_steps) helpful. + + +### How Theme-Switching Works + +The theme switching is done by simply changing the `data-theme` attribute on the root DOM element, which can then be targeted by CSS. First off, in order for the theme to show up in the theme switcher, it needs to be added to the config file, under `appConfig.cssThemes`, either as a string, or an array of strings for multiple themes. For example: + +```yaml +appConfig: + cssThemes: ['tiger', 'another-theme'] +``` + +You can now create a block to target you're theme with `html[data-theme='my-theme']{}` and set some styles. The easiest method is by setting CSS variables, but you can also directly override elements by their selector. As an example, see the [built-in CSS themes](https://github.com/Lissy93/dashy/blob/master/src/styles/color-themes.scss). + +```css +html[data-theme='tiger'] { + --primary: #f58233; + --item-group-background: #0b1021; +} +``` + +Finally, from the UI use the theme dropdown menu to select your new theme, and your styles will be applied. + +You can also set `appConfig.theme` to pre-select a default theme, which will be applied immediately after deployment. + +### Setting Custom CSS from the UI or Config file + +Custom CSS can be developed, tested and applied directly through the UI. Although you will need to make note of your changes to apply them across instances. + +This can be done from the Config menu (spanner icon in the top-right), under the Custom Styles tab. This is then associated with `appConfig.customCss` in local storage. Any styles set this way can be synced across instances using the cloud backup and sync feature. + +It's also possible to set CSS in the config file under `appConfig.customCss`. However this approach is not very neat, and if you do do it, first minify / compress your CSS and wrap in quotes, to ensure it does not cause any validation errors. + +### Loading External Stylesheets + +The URI of a stylesheet, either local or hosted on a remote CDN can be passed into the config file. The attribute `appConfig.externalStyleSheet` accepts either a string, or an array of strings. This is handled in [`ThemeHelper.js`](https://github.com/Lissy93/dashy/blob/master/src/utils/ThemeHelper.js). + +For example: + +```yaml +appConfig: + externalStyleSheet: 'https://example.com/my-stylesheet.css' +``` + +```yaml +appConfig: + externalStyleSheet: ['/themes/my-theme-1.css', '/themes/my-theme-2.css'] +``` +### Hard-Coding Section or Item Colors + +Some UI components have a color option, that can be set in the config file, to force the color of a given item or section no matter what theme is selected. These colors should be expressed as hex codes (e.g. `#fff`) or HTML colors (e.g. `red`). The following attributes are supported: +- `section.color` - Custom color for a given section +- `item.color` - Font and icon color for a given item +- `item.backgroundColor` - Background color for a given icon + +### CSS Variables + +All colors as well as other variable values (such as borders, border-radius, shadows) are specified as CSS variables. This makes theming the application easy, as you only need to change a given color or value in one place. You can find all variables in [`color-palette.scss`](https://github.com/Lissy93/dashy/blob/master/src/styles/color-palette.scss) and the themes which make use of these color variables are specified in [`color-themes.scss`](https://github.com/Lissy93/dashy/blob/master/src/styles/color-themes.scss) + +CSS variables are simple to use. You define them like: `--background: #fff;` and use them like: `body { background-color: var(--background); }`. For more information, see this guide on using [CSS Variables](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties). + +You can determine the variable used by any given element, and visualize changes using the browser developer tools (Usually opened with `F12`, or Options --> More --> Developer Tools). Under the elements tab, click the Element Selector icon (usually top-left corner), you will then be able to select any DOM element on the page by hovering and clicking it. In the CSS panel you will see all styles assigned to that given element, including CSS variables. Click a variable to see it's parent value, and for color attributes, click the color square to modify the color. For more information, see this [getting started guide](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_are_browser_developer_tools), and these articles on [selecting elements](https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Select_an_element) and [inspecting and modifying colors](https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector/How_to/Inspect_and_select_colors). + +#### Top-Level Variables +These are all that are required to create a theme. All other variables inherit their values from these variables. + +- `--primary` - Application primary color. Used for title, text, accents, and other features +- `--background` - Application background color +- `--background-darker` - Secondary background color (usually darker), used for navigation bar, section fill, footer etc +- `--curve-factor` - The border radius used globally throughout the application. Specified in `px`, defaults to `5px` +- `--dimming-factor` - Inactive elements have slight transparency. This can be between `0` (invisible) and `1` (normal), defaults to `0.7` + + +#### Targeted Color Variables +You can target specific elements on the UI with these variables. All are optional, since by default, they inherit their values from above + +- `--heading-text-color` - Text color for web page heading and sub-heading. Defaults to `--primary` +- `--nav-link-text-color` - The text color for links displayed in the navigation bar. Defaults to `--primary` +- `--nav-link-background-color` - The background color for links displayed in the navigation bar +- `--nav-link-text-color-hover` - The text color when a navigation bar link is hovered over. Defaults to `--primary` +- `--nav-link-background-color-hover` - The background color for nav bar links when hovered over +- `--nav-link-border-color` - The border color for nav bar links. Defaults to `transparent` +- `--nav-link-border-color-hover` - The border color for nav bar links when hovered over. Defaults to `--primary` +- `--search-container-background` - Background for the container containing the search bar. Defaults to `--background-darker` +- `--search-field-background` - Fill color for the search bar. Defaults to `--background` +- `--settings-background` - The background for the quick settings. Defaults to `--background` +- `--settings-text-color` - The text and icon color for quick settings. Defaults to `--primary` +- `--footer-text-color` - Color for text within the footer. Defaults to `--medium-grey` +- `--footer-text-color-link` - Color for any hyperlinks within the footer. Defaults to `--primary` +- `--item-text-color` - The text and icon color for items. Defaults to `--primary` +- `--item-group-outer-background` - The background color for the outer part of a section (including section head). Defaults to `--primary` +- `--item-group-background` - The background color for the inner part of item groups. Defaults to `#0b1021cc` (semi-transparent black) +- `--item-group-heading-text-color` - The text color for section headings. Defaults to `--item-group-background`; +- `--item-group-heading-text-color-hover` - The text color for section headings, when hovered. Defaults to `--background` +- `--config-code-background` - Background color for the JSON editor in the config menu. Defaults to `#fff` (white) +- `--config-code-color` - Text color for the non-highlighted code within the JSON editor. Defaults to `--background` +- `--config-settings-color` - The background for the config/ settings pop-up modal. Defaults to `--primary` +- `--config-settings-background` - The text color for text within the settings container. Defaults to `--background-darker` +- `--scroll-bar-color` - Color of the scroll bar thumb. Defaults to `--primary` +- `--scroll-bar-background` Color of the scroll bar blank space. Defaults to `--background-darker` +- `--toast-background` - Background color for the toast info popup. Defaults to `--primary` +- `--toast-color` - Text, icon and border color in the toast info popup. Defaults to `--background` +- `--welcome-popup-background` - Background for the info pop-up shown on first load. Defaults to `--background-darker` +- `--welcome-popup-text-color` - Text color for the welcome pop-up. Defaults to `--primary` + +#### Non-Color Variables +- `--outline-color` - Used to outline focused or selected elements +- `--curve-factor-navbar` - The border radius of the navbar. Usually this is greater than `--curve-factor` +- `--scroll-bar-width` - Width of horizontal and vertical scroll bars. E.g. `8px` +- `--item-group-padding` - Inner padding of sections, determines the width of outline. E.g. `5px` +- `--item-shadow` - Shadow for items. E.g. `1px 1px 2px #130f23` +- `--item-hover-shadow` - Shadow for items when hovered over. E.g. `1px 2px 4px #373737` +- `--item-icon-transform` - A [transform](https://developer.mozilla.org/en-US/docs/Web/CSS/transform) property, to modify item icons. E.g. `drop-shadow(2px 4px 6px var(--transparent-50)) saturate(0.65)` +- `--item-icon-transform-hover` - Same as above, but applied when an item is hovered over. E.g. `drop-shadow(4px 8px 3px var(--transparent-50)) saturate(2)` +- `--item-group-shadow` - The shadow for an item group/ section. Defaults to `--item-shadow` +- `--settings-container-shadow` - A shadow property for the settings container. E.g. `none` + +#### Action Colors +These colors represent intent, and so are not often changed, but you can do so if you wish + +- `--info` - Information color, usually blue / `#04e4f4` +- `--success` - Success color, usually green / `#20e253` +- `--warning` - Warning color, usually yellow / `#f6f000` +- `--danger` - Error/ danger color, usually red / `#f80363` +- `--neutral` - Neutral color, usually grey / `#272f4d` +- `--white` - Just white / `#fff` +- `--black` - Just black / `#000` + + From b6870359a0f44773e347490143cf8548d6812dbe Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Mon, 7 Jun 2021 15:57:29 +0100 Subject: [PATCH 4/6] Adds docs relating the developing --- docs/developing.md | 181 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 docs/developing.md diff --git a/docs/developing.md b/docs/developing.md new file mode 100644 index 00000000..4c33274a --- /dev/null +++ b/docs/developing.md @@ -0,0 +1,181 @@ + +## Developing + +This article outlines how to get Dashy running in a development environment, and outlines the basics of the architecture. + +- [Setting up the Development Environment]() +- [Resources for Beginners]() +- [Style Guide]() +- [Frontend Components]() +- [Project Structure]() + +### Setting up the Dev Environment + +#### Prerequisites +You will need either the latest or LTS version of **[Node.js](https://nodejs.org/)** to build and serve the application and **[Git](https://git-scm.com/downloads)** to easily fetch the code, and push any changes. If you plan on running or deploying the container, you'll also need **[Docker](https://docs.docker.com/get-docker/)**. To avoid any unexpected issues, ensure you've got at least **[NPM](https://www.npmjs.com/get-npm)** V 7.5 or **[Yarn](https://classic.yarnpkg.com/en/docs/install/#windows-stable)** 1.22 (you may find [NVM](https://github.com/nvm-sh/nvm) helpful for switching/ managing versions). + +#### Running the Project + +1. Get Code: `git clone git@github.com:Lissy93/dashy.git` +2. Navigate into the directory: `cd dashy` +3. Install dependencies: `yarn` +4. Start dev server: `yarn dev` + +Dashy should now be being served on http://localhost:8080/. Hot reload is enabled, so making changes to any of the files will trigger them to be rebuilt and the page refreshed. + +#### Project Commands + +- `yarn dev` - Starts the development server with hot reloading +- `yarn build` - Builds the project for production, and outputs it into `./dist` +- `yarn start` - Starts a web server, and serves up the production site from `./dist` +- `yarn validate-config` - Parses and validates your `conf.yml` against Dashy's schema +- `yarn lint` - Lints code to ensure it follows a consistent, neat style +- `yarn test` - Runs tests, and outputs results + +There is also: +- `yarn build-and-start` will run `yarn build` and `yarn start` +- `yarn build-watch` will output contents to `./dist` and recompile when anything in `./src` is modified, you can then use either `yarn start` or your own server, to have a production environment that watches for changes. + +Note: +- If you are using NPM, replace `yarn` with `npm run` +- If you are using Docker, precede each command with `docker exec -it [container-id]`. Container ID can be found by running `docker ps` + +### Resources for Beginners +New to Web Development? Glad you're here! Dashy is a pretty simple app, so it should make a good candidate for your first PR. Presuming that you already have a basic knowledge of JavaScript, the following articles should point you in the right direction for getting up to speed with the technologies used in this project: +- [Introduction to Vue.js](https://v3.vuejs.org/guide/introduction.html) +- [Vue.js Walkthrough](https://www.taniarascia.com/getting-started-with-vue/) +- [Definitive guide to SCSS](https://blog.logrocket.com/the-definitive-guide-to-scss/) +- [Complete beginners guide to Docker](https://docker-curriculum.com/) +- [Docker Classroom - Interactive Tutorials](https://training.play-with-docker.com/) +- [Quick start TypeScript guide](https://www.freecodecamp.org/news/learn-typescript-in-5-minutes-13eda868daeb/) +- [Complete TypeScript tutorial series](https://www.typescripttutorial.net/) +- [Using TypeScript with Vue.js](https://blog.logrocket.com/vue-typescript-tutorial-examples/) +- [Git cheat sheet](http://git-cheatsheet.com/) +- [Basics of using NPM](https://www.freecodecamp.org/news/what-is-npm-a-node-package-manager-tutorial-for-beginners/) + +As well as Node, Git and Docker- you'll also need an IDE (e.g. [VS Code](https://code.visualstudio.com/) or [Vim](https://www.vim.org/)) and a terminal (Windows users may find [WSL](https://docs.microsoft.com/en-us/windows/wsl/) more convenient). + +### Style Guide + +Linting is done using [ESLint](https://eslint.org/), and using the [Vue.js Styleguide](https://github.com/vuejs/eslint-config-standard), which is very similar to the [AirBnB Stylguide](https://github.com/airbnb/javascript). You can run `yarn lint` to report and fix issues. While the dev server is running, issues will be reported to the console automatically. Any lint errors will trigger the build to fail. Note that all lint checks must pass before any PR can be merged. + +The most significant things to note are: +- Indentation should be done with two spaces +- Strings should use single quotes +- All statements must end in a semi-colon +- The final element in all objects must be preceded with a comma +- Maximum line length is 100 +- There must be exactly one blank line between sections, before function names, and at the end of the file +- With conditionals, put else on the same line as your if block’s closing brace +- All multiline blocks must use braces +- Avoid console statements in the frontend + +For the full styleguide, see: [github.com/airbnb/javascript](https://github.com/airbnb/javascript) + + +### Frontend Components + +All frontend code is located in the `./src` directory, which is split into 5 sub-folders: +- Components - All frontend web components are located here. Each component should have a distinct, well defined and simple task, and ideally should not be too long. The components directory is organised into a series of sub-directories, representing a specific area of the application + - PageStrcture - Components relating to overall page structure (nav, footer, etc) + - FormElements - Reusable form elements (button, input field, etc) + - LinkItems - Components relating to Dashy's sections and items (item group, item, item icon, etc) + - Configuration - Components relating to Dashy's configuration forms (cloud backup, JSON editor, etc) +- Views - Each view directly corresponds to a route (defined in the router), and in effectively a page. They should have minimal logic, and just contain a few components +- Utils - These are helper functions, or logic that is used within the app does not include an UI elements +- Styles - Any SCSS that is used globally throughout that app, and is not specific to a single component goes here. This includes variables, color themes, typography settings, CSS reset and media queries +- Assets - Static assets that need to be bundled into the application, but do not require any manipulation go here. This includes interface icons and fonts + +The structure of the components directory is similar to that of the frontend application layout + +

+ +### Common Tasks + +#### Creating a new theme + +See [Theming](./theming.md) + +#### Adding a new option in the config file + +All application config is specified in `./public/conf.yml` - see [Configuring Docs](./configuring.md) for info. Before adding a new option in the config file, first ensure that there is nothing similar available, that is is definitely necessary, it will not conflict with any other options and most importantly that it will not cause any breaking changes. Ensure that you choose an appropriate and relevant section to place it under. + +Checklist: +- Update the [Schema](https://github.com/Lissy93/dashy/blob/master/src/utils/ConfigSchema.js) with the parameters for your new option +- Set a default value (if required) within [`defaults.js`](https://github.com/Lissy93/dashy/blob/master/src/utils/defaults.js) +- Document the new value in [`configuring.md`](./configuring.md) +- Test that the reading of the new attribute is properly handled, and will not cause any errors when it is missing or populated with an unexpected value + +### Directory Structure + +#### Files in the Root: `./` +``` +╮ +├── package.json # Project meta-data, dependencies and paths to scripts +├── src/ # Project front-end source code +├── server.js # A Node.js server to serve up the /dist directory +├── vue.config.js # Vue.js configuration +├── Dockerfile # The blueprint for building the Docker container +├── docker-compose.yml # A Docker run command +├── .env # Location for any environmental variables +├── yarn.lock # Auto-generated list of current packages and version numbers +├── docs/ # Markdown documentation +├── README.md # Readme, basic info for getting started +├── LICENSE.md # License for use +╯ +``` + +#### Frontend Source: `./src/` + +``` +./src +├── App.vue # Vue.js starting file +├── assets # Static non-compiled assets +│ ├── fonts # .ttf font files +│ ╰── interface-icons # SVG icons used in the app +├── components # All front-end Vue web components +│ ├── Configuration # Components relating to the user config pop-up +│ │ ├── CloudBackupRestore.vue # Form where the user manages cloud sync options +│ │ ├── ConfigContainer.vue # Main container, wrapping all other config components +│ │ ├── CustomCss.vue # Form where the user can input custom CSS +│ │ ├── EditSiteMeta.vue # Form where the user can edit site meta data +│ │ ╰── JsonEditor.vue # JSON editor, where the user can modify the main config file +│ ├── FormElements # Basic form elements used throughout the app +│ │ ├── Button.vue # Standard button component +│ │ └── Input.vue # Standard text field input component +│ ├── LinkItems # Components for Sections and Link Items +│ │ ├── Collapsable.vue # The collapsible functionality of sections +│ │ ├── IframeModal.vue # Pop-up iframe modal, for viewing websites within the app +│ │ ├── Item.vue # Main link item, which is displayed within an item group +│ │ ├── ItemGroup.vue # Item group is a section containing icons +│ │ ├── ItemIcon.vue # The icon used by both items and sections +│ │ ╰── ItemOpenMethodIcon.vue # A small icon, visible on hover, indicating opening method +│ ├── PageStrcture # Components relating the main structure of the page +│ │ ├── Footer.vue # Footer, visible at the bottom of all pages +│ │ ├── Header.vue # Header, visible at the top of pages, and includes title and nav +│ │ ├── Nav.vue # Navigation bar, includes a list of links +│ │ ╰── PageTitle.vue # Page title and sub-title, visible within the Header +│ ╰── Settings # Components relating to the quick-settings, in the top-right +│ ├── ConfigLauncher.vue # Icon that when clicked will launch the Configuration component +│ ├── ItemSizeSelector.vue # Set of buttons used to set and save item size +│ ├── KeyboardShortcutInfo.vue# Small pop-up displaying the available keyboard shortcuts +│ ├── LayoutSelector.vue # Set of buttons, letting the user select their desired layout +│ ├── SearchBar.vue # The input field in the header, used for searching the app +│ ├── SettingsContainer.vue # Container that wraps all the quick-settings components +│ ╰── ThemeSelector.vue # Drop-down menu enabling the user to select and change themes +├── main.js # Main front-end entry point +├── registerServiceWorker.js # Registers and manages service workers, for PWA apps +├── router.js # Defines all available application routes +├── styles # Directory of all globally used common SCSS styles +├── utils # Directory of re-used helper functions +│ ├── ArrowKeyNavigation.js # Functionality for arrow-key navigation +│ ├── CloudBackup.js # Functionality for encrypting, processing and network calls +│ ├── ConfigSchema.json # The schema, used to validate the users conf.yml file +│ ├── ConfigValidator.js # A helper script that validates the config file against schema +│ ├── defaults.js # Global constants and their default values +│ ├── ErrorHandler.js # Helper function called when an error is returned +│ ├── JsonToYaml.js # Function that parses and converts raw JSON into valid YAML +│ ╰── ThemeHelper.js # Function that handles the fetching and setting of user themes +╰── views # Directory of available pages, corresponding to available routes + ╰── Home.vue # The home page container +``` From 9bdc960799c5d3f699160f96ee36a79eb7c80956 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Mon, 7 Jun 2021 16:00:24 +0100 Subject: [PATCH 5/6] Added index and updated docws --- docs/getting-started.md | 56 +++++++++++++++++++++++++++++++++++++++++ docs/readme.md | 9 +++++++ docs/theming.md | 4 ++- 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 docs/getting-started.md create mode 100644 docs/readme.md diff --git a/docs/getting-started.md b/docs/getting-started.md new file mode 100644 index 00000000..bc26e2bd --- /dev/null +++ b/docs/getting-started.md @@ -0,0 +1,56 @@ +## Getting Started + +### Deploy with Docker + +The quickest way to get started on any system is with Docker, and Dashy is available though [Docker Hub](https://hub.docker.com/r/lissy93/dashy). You will need [Docker](https://docs.docker.com/get-docker/) installed on your system. + +To test it out, just run: `docker run -p 8080:80 lissy93/dashy`, then open your browser and visit `http://localhost:8080`. + +To configure Dashy with your own services, and customize it to your liking, you will need to write a config file, and pass it to the Docker container as a volume. + +```docker +docker run -d \ + -p 8080:80 \ + -v /root/my-local-conf.yml:/app/public/conf.yml \ + --name my-dashboard \ + --restart=always \ + lissy93/dashy:latest +``` + +Explanation of the above options: +- `-d` Detached mode (not running in the foreground of your terminal) +- `-p` The port that should be exposed, and the port it should be mapped to in your host system `[host-port][container-port]` +- `-v` Specify volumes, to pass data from your host system to the container, in the format of `[host-path]:[container-path]` +- `--name` Give your container a human-readable name +- `--restart=always` Spin up the container when the daemon starts, or after it has been stopped +- `lissy93/dashy:latest` This last option is the image the container should be built from + +For all available options, and to learn more, see the [Docker Run Docs](https://docs.docker.com/engine/reference/commandline/run/) + +### Deploy from Source +If you do not want to use Docker, you can run Dashy directly on your host system. For this, you will need both [git](https://git-scm.com/downloads) and the latest or LTS version of [Node.js](https://nodejs.org/) installed. + +1. Get Code: `git clone git@github.com:Lissy93/dashy.git` and `cd dashy` +2. Configuration: Fill in you're settings in `./public/conf.yml` +3. Install dependencies: `yarn` +4. Build: `yarn build` +5. Run: `yarn start` + +### Providing Assets +Although not essential, you will most likely want to provide several assets to Dashy. All web assets can be found in the `/public` directory. + +- `./public/conf.yml` - As mentioned, this is your main application config file +- `./public/item-icons` - If you're using your own icons, you can choose to store them locally for better load time, and this is the directory to put them in. You can also use sub-folders here to keep things organized. You then reference these assets relative this the direcroties path, for example: to use `./public/item-icons/networking/netdata.png` as an icon for one of your links, you would set `icon: networking/netdata.png` +- Also within `./public` you'll find standard website assets, including `favicon.ico`, `manifest.json`, `robots.txt`, etc. There's no need to modify these, but you can do so if you wish. + +### Basic Commands + +Now that you've got Dashy running, there are a few commands that you need to know. + +The following commands are defined in the [`package.json`](https://github.com/Lissy93/dashy/blob/master/package.json#L5) file, and are run with `yarn`. If you prefer, you can use NPM, just replace instances of `yarn` with `npm run`. If you are using Docker, then you will need to precede each command with `docker exec -it [container-id]`, where container ID can be found by running `docker ps`. For example `docker exec -it 26c156c467b4 yarn build` + +#### `yarn build` +In the interest of speed, the application is pre-compiled, this means that the config file is read during build-time, and therefore the app needs to rebuilt for any new changes to take effect. Luckily this is very straight forward. Just run `yarn build` or `docker exec -it [container-id] yarn build`. + +#### `yarn validate-config` +If you have quite a long configuration file, you may wish to check that it's all good to go, before deploying the app. This can be done with `yarn validate-config` or `docker exec -it [container-id] yarn validate-config`. Your config file needs to be in `/public/conf.yml` (or within your Docker container at `/app/public/conf.yml`). This will first check that your YAML is valid, and then validates it against Dashy's [schema](https://github.com/Lissy93/dashy/blob/master/src/utils/ConfigSchema.js). diff --git a/docs/readme.md b/docs/readme.md new file mode 100644 index 00000000..13007485 --- /dev/null +++ b/docs/readme.md @@ -0,0 +1,9 @@ + + +## Contents + +- [Getting Started](./getting-started.md) +- [Configuring](./backup-restore.md) +- [Backup & Restore](./backup-restore.md) +- [Theming](./backup-restore.md) +- [Developing](./developing.md) diff --git a/docs/theming.md b/docs/theming.md index edf90508..aebce0c2 100644 --- a/docs/theming.md +++ b/docs/theming.md @@ -6,6 +6,8 @@ By default Dashy comes with 20 built in themes, which can be applied from the dr You can also add your own themes, apply custom CSS, and modify colors. +You can customize Dashy by writing your own CSS, which can be loaded either as an external stylesheet, set directly through the UI, or specified in the config file. Most styling options can be set through CSS variables, which are outlined below. + The following content requires that you have a basic understanding of CSS. If you're just beginning, you may find [this article](https://developer.mozilla.org/en-US/docs/Learn/CSS/First_steps) helpful. @@ -31,7 +33,7 @@ Finally, from the UI use the theme dropdown menu to select your new theme, and y You can also set `appConfig.theme` to pre-select a default theme, which will be applied immediately after deployment. -### Setting Custom CSS from the UI or Config file +### Setting Custom CSS Custom CSS can be developed, tested and applied directly through the UI. Although you will need to make note of your changes to apply them across instances. From 0e86d0dbfb60f804a8fa32031ebf4a0f793cb129 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Mon, 7 Jun 2021 16:01:11 +0100 Subject: [PATCH 6/6] Converted schema from JavaScript into JSON --- src/components/Configuration/JsonEditor.vue | 2 +- src/data/conf.backup.yml | 158 -------------- src/styles/color-palette.scss | 1 - src/utils/ConfigSchema.js | 217 ------------------ src/utils/ConfigSchema.json | 230 ++++++++++++++++++++ src/utils/ConfigValidator.js | 2 +- 6 files changed, 232 insertions(+), 378 deletions(-) delete mode 100644 src/data/conf.backup.yml delete mode 100644 src/utils/ConfigSchema.js create mode 100644 src/utils/ConfigSchema.json diff --git a/src/components/Configuration/JsonEditor.vue b/src/components/Configuration/JsonEditor.vue index 58ca138b..d2b6015a 100644 --- a/src/components/Configuration/JsonEditor.vue +++ b/src/components/Configuration/JsonEditor.vue @@ -29,7 +29,7 @@ import VJsoneditor from 'v-jsoneditor'; import { localStorageKeys } from '@/utils/defaults'; -import configSchema from '@/utils/ConfigSchema'; +import configSchema from '@/utils/ConfigSchema.json'; import Ajv from 'ajv7'; export default { diff --git a/src/data/conf.backup.yml b/src/data/conf.backup.yml deleted file mode 100644 index f91da606..00000000 --- a/src/data/conf.backup.yml +++ /dev/null @@ -1,158 +0,0 @@ ---- -pageInfo: - title: Hello World - description: 'This is a demo' -sections: -- name: Firewall - items: - - title: OPNsense - description: Firewall Central Management - icon: networking/opnsense.png - target: iframe - url: https://192.168.1.1 - - title: NetData - description: System resource usage on firewall - icon: networking/netdata.png - url: http://192.168.1.1:19999/ - - title: MalTrail - description: Malicious traffic detection system - icon: networking/maltrail.png - url: http://192.168.1.1:8338 - - title: Ntopng - description: Network traffic probe and network use monitor - icon: networking/ntop.png - url: http://192.168.1.1:3001 - - title: Sensei - description: Additional data features - icon: networking/sensei.png - url: https://192.168.1.1/ui/sensei/ - - title: Monit - description: Status of firewall system alerts - icon: networking/monit.png - url: https://192.168.1.1/ui/monit/status - - title: Firewall Logs - description: Real-time view of firewall data and logs - icon: networking/logs.png - url: https://192.168.1.1/ui/diagnostics/firewall/log - - title: WireGuard - description: Manage WireGuard client and server on firewall - icon: networking/wireguard.png - url: https://192.168.1.1/ui/wireguard/general -- name: DNS Device - displayData: - collapsed: false - rows: 2 - items: - - title: Pi-Hole - description: DNS settings for ad & tracker blocking - icon: networking/pihole.png - url: http://192.168.130.2/admin - - title: PiAlert - description: Presence monitoring and ARP scanning - icon: networking/pialert.png - url: http://192.168.130.2/pialert/ - - title: SmokePing - description: Network latency monitoring - icon: networking/smokeping.png - url: http://192.168.130.2:8086/ - - title: StatPing - description: Up-time monitoring for local service - icon: networking/statping.png - url: http://192.168.130.2:8083/ - - title: LibreSpeed - description: Local network speed and latency test - icon: networking/librespeed.png - url: http://192.168.130.2:49154/ - - title: NetData - description: Real-time system resource usage - icon: networking/netdata.png - url: http://192.168.130.2:19999 - - title: Portainer - description: Docker container management - icon: networking/portainer.png - url: http://192.168.130.2:9000/ - - title: cAdvisor - description: Container monitoring - icon: networking/cadvisor.png - url: http://192.168.130.2:8084/ - - title: Glances - description: Simple resource usage - icon: networking/glances.png - url: http://192.168.130.2:61208 - - title: Dozzle - description: Docker container web log viewer - icon: networking/dozzle.png - url: http://192.168.130.2:8093 - - title: Prometheus - description: System Statistics Aggregation with PromQL - icon: networking/prometheus.png - url: http://192.168.130.2:8090/ - - title: Grafana - description: Data visualised on dashboards - icon: networking/grafana.png - url: http://192.168.130.2:8091/ -- name: External Services - items: - - title: DuckDNS - description: Dynamic DNS for fixed public IP - icon: networking/duckdns.png - url: https://www.duckdns.org/ - - title: BorgBase - description: Off-site system Borg backups - icon: networking/borgbase.png - url: https://www.borgbase.com/repositories - - title: Mullvad - description: Hosted VPN provider - icon: networking/mullvad.png - url: https://mullvad.net/en/account/ - - title: ZeroTier - description: Secure networks between devices - icon: networking/zeroteir.png - url: https://my.zerotier.com/ - - title: HealthChecks - description: Cron Job Monitoring - icon: networking/healthchecks.png - url: https://healthchecks.io/checks/ - - title: ISP - Vodafone - description: Broadband internet provider - icon: networking/vodafone.png - url: https://myaccount.vodafone.co.uk/ -- name: Other Devices - items: - - title: Modem - description: ISP Router Modem Combo - icon: '' - url: http://192.168.1.5 - - title: Wireless Access Point - description: View clients connected to WiFi - icon: '' - url: http://192.168.1.109/info.php - - title: Fing - description: Monitor connectivity issues, ISP quality, health checks and troubleshooting - provider: Fing - icon: '' - url: https://app.fing.com/ - - title: Switch - description: Manage VLANs on Ubiquity Ethernet switch - icon: '' - url: "#" -- name: External Utilities - displayData: - collapsed: true - items: - - title: Public IP - description: Check public IP and associated data - icon: '' - url: https://www.whatismyip.com/ - - title: Who Is Lookup - description: Check ICAN info for a given IP address or domain - icon: '' - url: https://whois.domaintools.com/ - - title: Speed Test - description: Upload + download speeds and latency - icon: '' - url: https://speed.cloudflare.com/ - - title: Mullvad Check - description: Confirms a secure connection to Mullvad's WireGuard servers - icon: '' - url: https://mullvad.net/check diff --git a/src/styles/color-palette.scss b/src/styles/color-palette.scss index 740b41a1..baa2856e 100644 --- a/src/styles/color-palette.scss +++ b/src/styles/color-palette.scss @@ -12,7 +12,6 @@ --warning: #f6f000; --danger: #f80363; --neutral: #272f4d; - --white: #fff; --black: #000; diff --git a/src/utils/ConfigSchema.js b/src/utils/ConfigSchema.js deleted file mode 100644 index ad03a318..00000000 --- a/src/utils/ConfigSchema.js +++ /dev/null @@ -1,217 +0,0 @@ -/** - * This is the schema for the main app configuration (usually ./public/conf.yml) - * It enables the users data to be validated when making changes, - * and detailed warnings shown, to avoid any unexpected errors or issues - */ -module.exports = { - type: 'object', - required: ['sections'], - additionalProperties: false, - properties: { - - /* Page Info */ - pageInfo: { - type: 'object', - properties: { - title: { - type: 'string', - description: 'Title and heading for the app', - }, - description: { - type: 'string', - description: 'Sub-title, displayed in header', - }, - navLinks: { - type: 'array', - maxItems: 6, - description: 'Quick access links, displayed in header', - items: { - type: 'object', - additionalProperties: false, - required: ['title', 'path'], - properties: { - title: { - type: 'string', - }, - path: { - type: 'string', - }, - }, - }, - }, - footerText: { type: 'string' }, - }, - required: ['title'], - additionalProperties: false, - }, - - /* App Config */ - appConfig: { - type: 'object', - description: 'Application configuration', - properties: { - backgroundImg: { - type: 'string', - description: 'A URL to an image asset to be displayed as background', - }, - theme: { - type: 'string', - default: 'Callisto', - description: 'A theme to be applied by default on first load', - }, - enableFontAwesome: { - type: 'boolean', - default: true, - description: 'Should load font-awesome assets', - }, - fontAwesomeKey: { - type: 'string', - pattern: '^[a-z0-9]{10}$', - description: 'API key for font-awesome', - }, - cssThemes: { - type: 'array', - description: 'Theme names to be added to the dropdown', - items: { - type: 'string', - }, - }, - externalStyleSheet: { - description: 'URL or URLs of external stylesheets to add to dropdown/ load', - type: [ - 'string', 'array', - ], - items: { - type: 'string', - }, - }, - customCss: { - type: 'string', - description: 'Any custom CSS overides, must be minified', - }, - }, - additionalProperties: false, - }, - - /* Sections */ - sections: { - type: 'array', - description: 'Array of sections, containing items', - items: { - type: 'object', - required: ['name', 'items'], - additionalProperties: false, - properties: { - name: { - type: 'string', - description: 'Title/ heading for a section', - }, - icon: { - type: 'string', - description: 'Icon will be displayed next to title', - }, - /* Section Display Data */ - displayData: { - type: 'object', - additionalProperties: false, - description: 'Optional meta data for customizing a section', - properties: { - collapsed: { - type: 'boolean', - default: false, - description: 'If true, section needs to be clicked to open', - }, - color: { - type: 'string', - description: 'Hex code, or HTML color for section fill', - }, - customStyles: { - type: 'string', - description: 'CSS overides for section container', - }, - itemSize: { - enum: ['small', 'medium', 'large'], - default: 'medium', - description: 'Size of items within the section', - }, - rows: { - type: 'number', - minimum: 1, - maximum: 5, - default: 1, - description: 'The amount of space that the section spans vertically', - }, - cols: { - type: 'number', - minimum: 1, - maximum: 5, - default: 1, - description: 'The amount of space that the section spans horizontally', - }, - layout: { - enum: ['grid', 'auto'], - default: 'auto', - description: 'If set to grid, items have uniform width, and itemCount can be set', - }, - itemCountX: { - type: 'number', - minimum: 1, - maximum: 12, - description: 'Number of items per column', - }, - itemCountY: { - type: 'number', - minimum: 1, - maximum: 12, - description: 'Number of items per row', - }, - }, - }, - /* Items within a section */ - items: { - type: 'array', - description: 'Array of items to display with a section', - items: { - type: 'object', - additionalProperties: false, - required: ['title'], - properties: { - title: { - type: 'string', - description: 'Text shown on the item', - }, - description: { - type: 'string', - nullable: true, - description: 'Short description, shown on hover or in a tooltip', - }, - icon: { - type: 'string', - nullable: true, - description: 'An icon, either as a font-awesome identifier, local or remote URL, or auto-fetched favicon', - }, - url: { - type: 'string', - description: 'The destination to navigate to when item is clicked', - }, - target: { - enum: ['newtab', 'sametab', 'iframe'], - default: 'newtab', - description: 'Opening method, when item is clicked', - }, - color: { - type: 'string', - description: 'A custom fill color of the item', - }, - provider: { - type: 'string', - description: 'Provider name, e.g. Microsoft', - }, - }, - }, - }, - }, - }, - }, - }, -}; diff --git a/src/utils/ConfigSchema.json b/src/utils/ConfigSchema.json new file mode 100644 index 00000000..61ad319b --- /dev/null +++ b/src/utils/ConfigSchema.json @@ -0,0 +1,230 @@ +{ + "type": "object", + "required": [ + "sections" + ], + "additionalProperties": false, + "properties": { + "pageInfo": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Title and heading for the app" + }, + "description": { + "type": "string", + "description": "Sub-title, displayed in header" + }, + "navLinks": { + "type": "array", + "maxItems": 6, + "description": "Quick access links, displayed in header", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "title", + "path" + ], + "properties": { + "title": { + "type": "string" + }, + "path": { + "type": "string" + } + } + } + }, + "footerText": { + "type": "string" + } + }, + "required": [ + "title" + ], + "additionalProperties": false + }, + "appConfig": { + "type": "object", + "description": "Application configuration", + "properties": { + "backgroundImg": { + "type": "string", + "description": "A URL to an image asset to be displayed as background" + }, + "theme": { + "type": "string", + "default": "Callisto", + "description": "A theme to be applied by default on first load" + }, + "enableFontAwesome": { + "type": "boolean", + "default": true, + "description": "Should load font-awesome assets" + }, + "fontAwesomeKey": { + "type": "string", + "pattern": "^[a-z0-9]{10}$", + "description": "API key for font-awesome" + }, + "cssThemes": { + "type": "array", + "description": "Theme names to be added to the dropdown", + "items": { + "type": "string" + } + }, + "externalStyleSheet": { + "description": "URL or URLs of external stylesheets to add to dropdown/ load", + "type": [ + "string", + "array" + ], + "items": { + "type": "string" + } + }, + "customCss": { + "type": "string", + "description": "Any custom CSS overides, must be minified" + } + }, + "additionalProperties": false + }, + "sections": { + "type": "array", + "description": "Array of sections, containing items", + "items": { + "type": "object", + "required": [ + "name", + "items" + ], + "additionalProperties": false, + "properties": { + "name": { + "type": "string", + "description": "Title/ heading for a section" + }, + "icon": { + "type": "string", + "description": "Icon will be displayed next to title" + }, + "displayData": { + "type": "object", + "additionalProperties": false, + "description": "Optional meta data for customizing a section", + "properties": { + "collapsed": { + "type": "boolean", + "default": false, + "description": "If true, section needs to be clicked to open" + }, + "color": { + "type": "string", + "description": "Hex code, or HTML color for section fill" + }, + "customStyles": { + "type": "string", + "description": "CSS overides for section container" + }, + "itemSize": { + "enum": [ + "small", + "medium", + "large" + ], + "default": "medium", + "description": "Size of items within the section" + }, + "rows": { + "type": "number", + "minimum": 1, + "maximum": 5, + "default": 1, + "description": "The amount of space that the section spans vertically" + }, + "cols": { + "type": "number", + "minimum": 1, + "maximum": 5, + "default": 1, + "description": "The amount of space that the section spans horizontally" + }, + "layout": { + "enum": [ + "grid", + "auto" + ], + "default": "auto", + "description": "If set to grid, items have uniform width, and itemCount can be set" + }, + "itemCountX": { + "type": "number", + "minimum": 1, + "maximum": 12, + "description": "Number of items per column" + }, + "itemCountY": { + "type": "number", + "minimum": 1, + "maximum": 12, + "description": "Number of items per row" + } + } + }, + "items": { + "type": "array", + "description": "Array of items to display with a section", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "title" + ], + "properties": { + "title": { + "type": "string", + "description": "Text shown on the item" + }, + "description": { + "type": "string", + "nullable": true, + "description": "Short description, shown on hover or in a tooltip" + }, + "icon": { + "type": "string", + "nullable": true, + "description": "An icon, either as a font-awesome identifier, local or remote URL, or auto-fetched favicon" + }, + "url": { + "type": "string", + "description": "The destination to navigate to when item is clicked" + }, + "target": { + "enum": [ + "newtab", + "sametab", + "iframe" + ], + "default": "newtab", + "description": "Opening method, when item is clicked" + }, + "color": { + "type": "string", + "description": "A custom fill color of the item" + }, + "provider": { + "type": "string", + "description": "Provider name, e.g. Microsoft" + } + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/utils/ConfigValidator.js b/src/utils/ConfigValidator.js index 9d824944..c0c84554 100644 --- a/src/utils/ConfigValidator.js +++ b/src/utils/ConfigValidator.js @@ -2,7 +2,7 @@ const Ajv = require('ajv'); const yaml = require('js-yaml'); const fs = require('fs'); -const schema = require('./ConfigSchema'); +const schema = require('./ConfigSchema.json'); const validatorOptions = { strict: true,