Browse Source

fix(lint): Markdown auto fixes

Owen Diffey 1 year ago
parent
commit
f04ae7e9ac
9 changed files with 202 additions and 146 deletions
  1. 3 0
      .wiki/Backend_Commands.md
  2. 2 2
      .wiki/Configuration.md
  3. 14 13
      .wiki/Installation.md
  4. 0 1
      .wiki/Technical_Overview.md
  5. 5 0
      .wiki/Upgrading.md
  6. 5 0
      .wiki/Utility_Script.md
  7. 55 55
      .wiki/Value_Formats.md
  8. 61 21
      CHANGELOG.md
  9. 57 54
      README.md

+ 3 - 0
.wiki/Backend_Commands.md

@@ -1,7 +1,9 @@
 # Backend Commands
+
 Backend commands are inputted via STDIN or if using the Utility Script by using `./musare.sh attach backend`.
 
 ## Commands
+
 | Command | Parameters | Description |
 | --- | --- | --- |
 | `rs` | | Restart backend. |
@@ -17,6 +19,7 @@ Backend commands are inputted via STDIN or if using the Utility Script by using
 | `stats` | `module` | Returns job statistics for a specified module. |
 
 ## Modules
+
 When specifying a module please use all lowercase. The available modules are as follows:
 
 - Cache

+ 2 - 2
.wiki/Configuration.md

@@ -44,8 +44,8 @@ Location: `backend/config/default.json`
 | `cookie.domain`                                    | The ip or address you use to access the site, without protocols (http/https), so for example `localhost`.                                                                                                            |
 | `cookie.secure`                                    | Should be `true` for SSL connections, and `false` for normal http connections.                                                                                                                                       |
 | `cookie.SIDname`                                   | Name of the cookie stored for sessions.                                                                                                                                                                              |
-| `blacklistedCommunityStationNames `                | Array of blacklisted community station names.                                                                                                                                                                        |
-| `featuredPlaylists `                               | Array of featured playlist id's. Playlist privacy must be public.                                                                                                                                                    |
+| `blacklistedCommunityStationNames`                | Array of blacklisted community station names.                                                                                                                                                                        |
+| `featuredPlaylists`                               | Array of featured playlist id's. Playlist privacy must be public.                                                                                                                                                    |
 | `skipConfigVersionCheck`                           | Skips checking if the config version is outdated or not. Should almost always be set to false.                                                                                                                       |
 | `skipDbDocumentsVersionCheck`                      | Skips checking if there are any DB documents outdated or not. Should almost always be set to false.                                                                                                                  |
 | `debug.stationIssue`                               | If set to `true` it will enable the `/debug_station` API endpoint on the backend, which provides information useful to debugging stations not skipping, as well as capure all jobs specified in `debug.captureJobs`. |

+ 14 - 13
.wiki/Installation.md

@@ -8,9 +8,9 @@ To update an existing installation please see [Upgrading](./Upgrading.md).
 
 ### Dependencies
 
--   [Git](https://github.com/git-guides/install-git)
--   [Docker](https://docs.docker.com/get-docker/)
--   [docker-compose](https://docs.docker.com/compose/install/)
+- [Git](https://github.com/git-guides/install-git)
+- [Docker](https://docs.docker.com/get-docker/)
+- [docker-compose](https://docs.docker.com/compose/install/)
 
 ### Instructions
 
@@ -39,12 +39,12 @@ Run this command in your shell. You will have to do this command for every shell
 
 ### Dependencies
 
--   [Git](https://github.com/git-guides/install-git)
--   [Redis](http://redis.io/download)
--   [MongoDB](https://www.mongodb.com/try/download/community)
--   [NodeJS](https://nodejs.org/en/download/)
-    -   [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
-    -   [nodemon](https://github.com/remy/nodemon#installation)
+- [Git](https://github.com/git-guides/install-git)
+- [Redis](http://redis.io/download)
+- [MongoDB](https://www.mongodb.com/try/download/community)
+- [NodeJS](https://nodejs.org/en/download/)
+  - [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
+  - [nodemon](https://github.com/remy/nodemon#installation)
 
 ### Instructions
 
@@ -66,6 +66,7 @@ Run this command in your shell. You will have to do this command for every shell
             1. Run `startRedis.cmd` and `startMongo.cmd` to start Redis and Mongo.
             2. Execute `cd frontend && npm run dev` and `cd backend && npm run dev` separately.
 10. **(optional)** Register a new user on the website and grant the admin role by running the following in the mongodb shell.
+
     ```bash
     use musare
     db.auth("MUSAREDBUSER","MUSAREDBPASSWORD")
@@ -74,7 +75,7 @@ Run this command in your shell. You will have to do this command for every shell
 
 ### Setting up MongoDB
 
--   **Windows Only**
+- **Windows Only**
 
     1. In the root directory, create a folder called `.database`
     2. Create a file called `startMongo.cmd` in the root directory with the contents:
@@ -85,7 +86,7 @@ Run this command in your shell. You will have to do this command for every shell
 
     3. Start the database by executing the script `startMongo.cmd` you just made
 
--   Set up the MongoDB database itself
+- Set up the MongoDB database itself
 
     1. Start MongoDB
         - **Linux** Execute `systemctl start mongod`
@@ -120,7 +121,7 @@ Run this command in your shell. You will have to do this command for every shell
 
 ### Setting up Redis
 
--   **Windows**
+- **Windows**
 
     1. In the folder where you installed Redis, edit the `redis.windows.conf` file
 
@@ -135,7 +136,7 @@ Run this command in your shell. You will have to do this command for every shell
 
         And again, make sure that the paths lead to the proper config and executable. Replace `PASSWORD` with your Redis password.
 
--   **Linux**
+- **Linux**
     1. In `/etc/redis/redis.conf`
         1. Uncomment `notify-keyspace-events` and set its value to `Ex`.
         2. Uncomment `requirepass foobared` and replace foobared with your Redis password.

+ 0 - 1
.wiki/Technical_Overview.md

@@ -17,4 +17,3 @@ The frontend is a [vue-cli](https://github.com/vuejs/vue-cli) generated, [vue-lo
 The backend is a scalable NodeJS / Redis / MongoDB app. User sessions are stored in a central Redis server. All data is stored in a central MongoDB server. The Redis and MongoDB servers are replicated to several secondary nodes, which can become the primary node if the current primary node goes down.
 
 We currently only utilize 1 backend, 1 MongoDB server and 1 Redis server running for production, though it is relatively easy to expand.
-

+ 5 - 0
.wiki/Upgrading.md

@@ -1,4 +1,5 @@
 # Upgrading
+
 Musare upgrade process.
 
 To install a new instance please see [Installation](./Installation.md).
@@ -6,6 +7,7 @@ To install a new instance please see [Installation](./Installation.md).
 ## Docker
 
 ### Instructions
+
 1. Make a backup! `./musare.sh backup`
 2. Execute `./musare.sh update`. If an update requires any configuration changes or database migrations, you will be notified.
     - To update configuration compare example configs against your own and add/update/remove any properties as needed. For more information on properties see [Configuration](./Configuration.md). Frontend and backend configuration updates always update the `configVersion` property.
@@ -26,6 +28,7 @@ To install a new instance please see [Installation](./Installation.md).
 ## Non-Docker
 
 ### Instructions
+
 1. Make a backup!
 2. Stop all services
 3. `git pull`
@@ -50,6 +53,7 @@ Make sure to always look at the upgrade/downgrade instructions in the [MongoDB r
 ## Docker
 
 ### Instructions
+
 1. Stop the backend (`./musare.sh stop backend`)
 2. Make a backup of MongoDB (`./musare.sh backup`)
 3. Stop and reset the mongo container and delete the database folder (`./musare.sh reset mongo`)
@@ -62,6 +66,7 @@ Make sure to always look at the upgrade/downgrade instructions in the [MongoDB r
 ## Non-Docker
 
 ### Instructions
+
 1. Stop your backend
 2. Make a backup of MongoDB
 3. Stop and reset MongoDB

+ 5 - 0
.wiki/Utility_Script.md

@@ -1,15 +1,19 @@
 # Utility Script
+
 The utility script is a tool that allows for the simple management of a Musare Docker instance.
 
 Please follow the [Docker Installation Guide](./Installation.md#Docker) before using this script.
 
 ## Usage
+
 Linux (Bash):
+
 ```bash
 ./musare.sh command [parameters]
 ```
 
 ## Commands
+
 | Command | Parameters | Description |
 | --- | --- | --- |
 | `start` | `[frontend backend redis mongo]` | Start service(s). |
@@ -27,4 +31,5 @@ Linux (Bash):
 | `admin` | `<add,remove> [username]` | Assign/unassign admin role to/from user. If the username is not specified you will be prompted. |
 
 ### Services
+
 There are currently 4 services; frontend, backend, redis and mongo. Where services is a parameter you can specify any of these, or multiple seperated by spaces, for example `./musare.sh restart frontend backend` to restart the frontend and backend. If no services are specified all will be selected.

+ 55 - 55
.wiki/Value_Formats.md

@@ -3,61 +3,61 @@
 Every input needs validation, below is the required formatting of each value.
 
 - **User**
-    - Username
-        - Description: Any letter from a-z in any case, numbers, underscores and dashes. Must contain at least 1 letter or number.
-        - Length: From 2 to 32 characters.
-        - Regex: ```/^[A-Za-z0-9_]+$/```
-    - Name
-        - Description: Any letter from any language in any case, numbers, underscores, dashes, periods, apostrophes and spaces. Must contain at least 1 letter or number.
-        - Length: From 2 to 64 characters.
-        - Regex: ```/^[\p{L}0-9 .'_-]+$/u```
-    - Email
-        - Description: Standard email address.
-        - Length: From 3 to 254 characters.
-        - Regex: ```/^[\x00-\x7F]+@[a-z0-9]+\.[a-z0-9]+(\.[a-z0-9]+)?$/```
-    - Password
-        - Description: Must include at least one lowercase letter, one uppercase letter, one number and one special character.
-        - Length: From 6 to 200 characters.
-        - Regex: ```/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~])[A-Za-z\d!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]/```
-    - Ban Reason
-        - Description: Any ASCII character.
-        - Length: From 1 to 64 characters.
-        - Regex: ```/^[\x00-\x7F]+$/```
+  - Username
+    - Description: Any letter from a-z in any case, numbers, underscores and dashes. Must contain at least 1 letter or number.
+    - Length: From 2 to 32 characters.
+    - Regex: ```/^[A-Za-z0-9_]+$/```
+  - Name
+    - Description: Any letter from any language in any case, numbers, underscores, dashes, periods, apostrophes and spaces. Must contain at least 1 letter or number.
+    - Length: From 2 to 64 characters.
+    - Regex: ```/^[\p{L}0-9 .'_-]+$/u```
+  - Email
+    - Description: Standard email address.
+    - Length: From 3 to 254 characters.
+    - Regex: ```/^[\x00-\x7F]+@[a-z0-9]+\.[a-z0-9]+(\.[a-z0-9]+)?$/```
+  - Password
+    - Description: Must include at least one lowercase letter, one uppercase letter, one number and one special character.
+    - Length: From 6 to 200 characters.
+    - Regex: ```/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~])[A-Za-z\d!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]/```
+  - Ban Reason
+    - Description: Any ASCII character.
+    - Length: From 1 to 64 characters.
+    - Regex: ```/^[\x00-\x7F]+$/```
 - **Station**
-    - Name
-        - Description: Any letter from a-z lowercase, numbers and underscores.
-        - Length: From 2 to 16 characters.
-        - Regex: ```/^[a-z0-9_]+$/```
-    - Display Name
-        - Description: Any ASCII character.
-        - Length: From 2 to 32 characters.
-        - Regex: ```/^[\x00-\x7F]+$/```
-    - Description
-        - Description: Any character.
-        - Length: From 2 to 200 characters.
+  - Name
+    - Description: Any letter from a-z lowercase, numbers and underscores.
+    - Length: From 2 to 16 characters.
+    - Regex: ```/^[a-z0-9_]+$/```
+  - Display Name
+    - Description: Any ASCII character.
+    - Length: From 2 to 32 characters.
+    - Regex: ```/^[\x00-\x7F]+$/```
+  - Description
+    - Description: Any character.
+    - Length: From 2 to 200 characters.
 - **Playlist**
-    - Display Name
-        - Description: Any ASCII character.
-        - Length: From 1 to 32 characters.
-        - Regex: ```/^[\x00-\x7F]+$/```
+  - Display Name
+    - Description: Any ASCII character.
+    - Length: From 1 to 32 characters.
+    - Regex: ```/^[\x00-\x7F]+$/```
 - **Song**
-    - Title
-        - Description: Any ASCII character.
-        - Length: From 1 to 32 characters.
-        - Regex: ```/^[\x00-\x7F]+$/```
-    - Artists
-        - Description: Any character and not NONE.
-        - Length: From 1 to 64 characters.
-        - Quantity: Min 1, max 10.
-    - Genres
-        - Description: Any ASCII character.
-        - Length: From 1 to 32 characters.
-        - Quantity: Min 1, max 16.
-        - Regex: ```/^[\x00-\x7F]+$/```
-    - Tags
-        - Description: Any letter, numbers and underscores. Can be with out without data in square brackets. The base tag and data between brackets follow the same styling. If there's no data in between square brackets, there are no square brackets.
-        - Length: From 1 to 64 characters for the base part, 1 to 64 characters for data in square brackets.
-        - Regex: ```/^[a-zA-Z0-9_]{1,64}$|^[a-zA-Z0-9_]{1,64}\[[a-zA-Z0-9_]{1,64}\]$/```
-    - Thumbnail
-        - Description: Valid url. If site is secure only https prepended urls are valid.
-        - Length: From 1 to 256 characters.
+  - Title
+    - Description: Any ASCII character.
+    - Length: From 1 to 32 characters.
+    - Regex: ```/^[\x00-\x7F]+$/```
+  - Artists
+    - Description: Any character and not NONE.
+    - Length: From 1 to 64 characters.
+    - Quantity: Min 1, max 10.
+  - Genres
+    - Description: Any ASCII character.
+    - Length: From 1 to 32 characters.
+    - Quantity: Min 1, max 16.
+    - Regex: ```/^[\x00-\x7F]+$/```
+  - Tags
+    - Description: Any letter, numbers and underscores. Can be with out without data in square brackets. The base tag and data between brackets follow the same styling. If there's no data in between square brackets, there are no square brackets.
+    - Length: From 1 to 64 characters for the base part, 1 to 64 characters for data in square brackets.
+    - Regex: ```/^[a-zA-Z0-9_]{1,64}$|^[a-zA-Z0-9_]{1,64}\[[a-zA-Z0-9_]{1,64}\]$/```
+  - Thumbnail
+    - Description: Valid url. If site is secure only https prepended urls are valid.
+    - Length: From 1 to 256 characters.

+ 61 - 21
CHANGELOG.md

@@ -5,6 +5,7 @@
 This release includes all changes from v3.6.0-rc1, in addition to the following. Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 
 ### Fixed
+
 - fix: Removed tag="transition-group" from draggable components
 
 ## [v3.6.0-rc1] - 2022-06-05
@@ -12,6 +13,7 @@ This release includes all changes from v3.6.0-rc1, in addition to the following.
 Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 
 ### Added
+
 - feat: Added tab-completion to backend commands
 - feat: Added YouTube quota usage tracking
 - feat: Added YouTube API requests tracking, caching and management
@@ -26,6 +28,7 @@ Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 - feat: Added long jobs handling and monitoring
 
 ### Changed
+
 - refactor: Display user display names instead of usernames in links and station user list
 - refactor: Use YouTube thumbnail as a fallback to song thumbnails
 - refactor: Use song thumbnail component in Edit Song modal, with fallback disabled
@@ -44,6 +47,7 @@ Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 - refactor: Import Album can now use a selection of songs or YouTube videos in addition to YouTube playlist importing.
 
 ### Fixed
+
 - fix: musare.sh attach not working with podman-compose
 - fix: Station autofill not run after removal from queue
 - fix: AdvancedTable multi-row select with left ctrl/shift doesnt work
@@ -54,6 +58,7 @@ Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 
 ### Fixed
+
 - fix: Assert package.json import as json
 - fix: Limited NodeJS version to v16.15
 - fix: Temporarily disabled eslint for moduleManager import
@@ -63,6 +68,7 @@ Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 
 ### Fixed
+
 - fix: Songs requestSet could return null songs
 - fix: Prevent adding duplicate items with bulk actions
 - fix: Throw error if unknown job is called
@@ -81,9 +87,11 @@ Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 This release includes all changes from v3.5.0-rc1 and v3.5.0-rc2, in addition to the following. Upgrade instructions can be found at [.wiki/Upgrading](.wiki/Upgrading.md).
 
 ### Changed
+
 - refactor: close all modals upon route change
 
 ### Fixed
+
 - fix: Autofilling station queue would reset requestedAt
 - fix: Station time elapsed would show false if 0
 
@@ -92,9 +100,11 @@ This release includes all changes from v3.5.0-rc1 and v3.5.0-rc2, in addition to
 This release includes all changes from v3.5.0-rc1, in addition to the following.
 
 ### Added
+
 - chore: Added docker-compose.override.yml documentation
 
 ### Fixed
+
 - fix: Unable to compile frontend in production mode
 - fix: Homepage admin filter keyboard shortcut not always registering
 - fix: Docker will create folders if default.json files do not exist
@@ -107,6 +117,7 @@ This release includes all changes from v3.5.0-rc1, in addition to the following.
 ## [v3.5.0-rc1] - 2022-04-14
 
 ### Added
+
 - feat: Station autofill configurable limit
 - feat: Station requests configurable access level
 - feat: Station requests configurable per user request limit
@@ -116,14 +127,15 @@ This release includes all changes from v3.5.0-rc1, in addition to the following.
 - feat: Added info icon component
 
 ### Changed
+
 - refactor: No longer showing unlisted stations on homepage if not owned by user unless toggled by admin
 - refactor: Renamed station excludedPlaylists to blacklist
 - refactor: Unified station update functions and events
 - refactor: Replaced Manage Station settings dropdowns with select elements
 - refactor: Use a local object to edit stations before saving
 - refactor: Replace station modes with 2 modules which are independently toggleable and configurable on every station
-    - Requests: Replaces party mode, users can request songs or auto request from playlists
-    - Autofill: Replaces playlist mode, owners select songs to autofill queue. Also includes old playMode and includedPlaylist functionality
+  - Requests: Replaces party mode, users can request songs or auto request from playlists
+  - Autofill: Replaces playlist mode, owners select songs to autofill queue. Also includes old playMode and includedPlaylist functionality
 - refactor: Update active team
 - refactor: Separate docker container modes
 - refactor: Improve musare.sh exit code usage and other tweaks
@@ -137,19 +149,23 @@ This release includes all changes from v3.5.0-rc1, in addition to the following.
 - refactor: Made station info box a component for Station and Manage Station
 
 ### Fixed
+
 - fix: Changing station privacy does not kick out newly-unauthorized users
 
 ### Removed
+
 - refactor: Removed station queue lock
 
 ## [v3.4.0] - 2022-03-27
 
 ### **Breaking Changes**
+
 This release makes the MongoDB version configurable in the .env file. Prior to this release, the MongoDB version was 4.0. We recommend upgrading to 5.0 or 4.4. Upgrade instructions can be found in [.wiki/Upgrading](.wiki/Upgrading.md#Upgrade/downgradeMongoDB).
 
 Please run the Update All Songs job after upgrading to ensure playlist and station song data accuracy.
 
 ### Added
+
 - feat: Scroll to next song item in Edit Songs queue
 - feat: Reset Advanced Table bulk actions popup position on screen resize if in initial position
 - feat: Global LESS variables
@@ -174,6 +190,7 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - feat: Configurable MongoDB container image version
 
 ### Changed
+
 - refactor: Replaced night mode toggle slider in Main Header with day/night icons
 - refactor: Replaced SASS/SCCS with LESS
 - refactor: Hide registration buttons and prevent opening register modal if registration is disabled
@@ -197,6 +214,7 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - refactor: Delete user sessions when account is deleted
 
 ### Fixed
+
 - fix: Relative homepage header height causing overlay of content on non-standard resolutions
 - fix: Unable to toggle nightmode on mobile logged out on homepage
 - fix: Station card top row should not wrap
@@ -231,18 +249,22 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - fix: Add To Playlist Dropdown create playlist button not full width
 
 ### Removed
+
 - refactor: Removed skip to last 10s button from Edit Song player
 - refactor: Removed Request Song modal
 
 ## [v3.4.0-rc2] - 2022-03-19
 
 ### Added
+
 - feat: Re-added ability to hard stop player in Edit Song
 
 ### Changed
+
 - refactor: Delete user sessions when account is deleted
 
 ### Fixed
+
 - fix: Changing password in Settings does not create success toast
 - fix: Invalid user sessions could sometimes break actions
 - fix: Add To Playlist Dropdown create playlist button not full width
@@ -250,11 +272,13 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 ## [v3.4.0-rc1] - 2022-03-06
 
 ### **Breaking Changes**
+
 This release makes the MongoDB version configurable in the .env file. Prior to this release, the MongoDB version was 4.0. We recommend upgrading to 5.0 or 4.4. Upgrade instructions can be found in [.wiki/Upgrading](.wiki/Upgrading.md#Upgrade/downgradeMongoDB).
 
 Please run the Update All Songs job after upgrading to ensure playlist and station song data accuracy.
 
 ### Added
+
 - feat: Scroll to next song item in Edit Songs queue
 - feat: Reset Advanced Table bulk actions popup position on screen resize if in initial position
 - feat: Global LESS variables
@@ -279,6 +303,7 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - feat: Configurable MongoDB container image version
 
 ### Changed
+
 - refactor: Replaced night mode toggle slider in Main Header with day/night icons
 - refactor: Replaced SASS/SCCS with LESS
 - refactor: Hide registration buttons and prevent opening register modal if registration is disabled
@@ -301,6 +326,7 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - refactor: Pull images in musare.sh build command
 
 ### Fixed
+
 - fix: Relative homepage header height causing overlay of content on non-standard resolutions
 - fix: Unable to toggle nightmode on mobile logged out on homepage
 - fix: Station card top row should not wrap
@@ -332,17 +358,20 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - fix: Edit Song seekTo does not apply if video is stopped
 
 ### Removed
+
 - refactor: Removed skip to last 10s button from Edit Song player
 - refactor: Removed Request Song modal
 
 ## [v3.3.1] - 2022-02-03
 
 ### Fixes
+
 - fix: migration18 doesnt migrate playlist and queue songs
 
 ## [v3.3.0] - 2022-01-22
 
 ### Added
+
 - feat: Admin ability to edit another users playlist
 - feat: Admin/Users ability to delete user, resend verify email and resend reset password email
 - feat: Bulk Actions modal for admin/songs bulk editing tags, genres and artists.
@@ -354,18 +383,18 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - feat: Import Album styling improvements and prefill Discogs data option
 - feat: MediaSession controls (experimental)
 - feat: New admin area advanced table
-    - Advanced filter/search functionality with autocomplete for certain attributes
-    - Bulk update actions popup for songs. Ability to bulk edit, verify, unverify, delete, update tags, genres and artists.
-    - Hide columns
-    - Keyboard shortcuts
-    - Local and query storage of table configuration
-    - Manage columns dropdown
-    - Pagination and configurable page size
-    - Reorder columns
-    - Resize columns
-    - Row update and removed event handling
-    - Select rows with checkboxes
-    - Sort by column
+  - Advanced filter/search functionality with autocomplete for certain attributes
+  - Bulk update actions popup for songs. Ability to bulk edit, verify, unverify, delete, update tags, genres and artists.
+  - Hide columns
+  - Keyboard shortcuts
+  - Local and query storage of table configuration
+  - Manage columns dropdown
+  - Pagination and configurable page size
+  - Reorder columns
+  - Resize columns
+  - Row update and removed event handling
+  - Select rows with checkboxes
+  - Sort by column
 - feat: Open Manage Station from homepage
 - feat: Open Station Queue from homepage
 - feat: Redirect /admin to tab route
@@ -376,6 +405,7 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - chore: Security.md file
 
 ### Changed
+
 - refactor: Auto suggest component
 - refactor: Renamed confirm component to quick confirm
 - refactor: Song status is now a verified boolean, with hidden songs migrated to unverified with a hidden tag
@@ -386,6 +416,7 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 - chore: Use npm for can-autoplay and lofig packages
 
 ### Fixed
+
 - fix: Any logged in user can perform certain actions on any playlist
 - fix: Changing your username does not update your username stored locally
 - fix: Clicking outside of the edit song modal whilst its loading, or attempt to close in any other way, will prevent you from closing the modal
@@ -409,11 +440,13 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 ## [v3.2.2] - 2021-12-11
 
 ### Changed
+
 - refactor: Self host santa seeker icon
 
 ## [v3.2.1] - 2021-12-01
 
 ### Fixed
+
 - fix: Jumpy candy cane seeker bar
 - fix: Christmas lights on home header when logged out and on mobile aren't on bottom of element
 - fix: Christmas lights hover just below main header
@@ -422,38 +455,45 @@ Please run the Update All Songs job after upgrading to ensure playlist and stati
 ## [v3.2.0] - 2021-11-20
 
 ### Added
+
 - feat: Added christmas theme
-    - Enable with frontend config option
-    - Red primary color
-    - Candycane station seekerbar
-    - Santa on sleigh seeker icon
-    - Christmas lights below main and modal header
-    - Snow falling in the background
+  - Enable with frontend config option
+  - Red primary color
+  - Candycane station seekerbar
+  - Santa on sleigh seeker icon
+  - Christmas lights below main and modal header
+  - Snow falling in the background
 - feat: Added new featured playlist feature to manage station, specify with backend config option
 - feat: Added red station theme
 
 ### Changed
+
 - refactor: Replaced standard red with darker red, except for christmas and red station themes.
 
 ## [v3.1.1] - 2021-11-15
 
 ### Fixed
+
 - fix: Not logging in other open tabs automatically
 - fix: blacklistedCommunityStationNames issues
 
 ## [v3.1.0] - 2021-11-14
 
 ### Added
+
 - feat: New config option for blacklisted station names
 
 ### Changed
+
 - refactor: Removed bulma dependency
 - refactor: Patched missing styling after removing bulma
 - refactor: Refactored createStation modal to allow for official station creation from admin area
 - refactor: Refactored login and register modals to open on top of homepage from route
 
 ### Fixed
+
 - Various bug fixes
 
 ## [v3.0.0] - 2021-10-31
-Major update including feature changes, improvements and bug fixes. Changelog not completed for this release.
+
+Major update including feature changes, improvements and bug fixes. Changelog not completed for this release.

+ 57 - 54
README.md

@@ -9,6 +9,7 @@ A production demonstration instance of Musare can be found at [demo.musare.com](
 ---
 
 ## Documentation
+
 - [Installation](./.wiki/Installation.md)
 - [Upgrading](./.wiki/Upgrading.md)
 - [Configuration](./.wiki/Configuration.md)
@@ -20,69 +21,71 @@ A production demonstration instance of Musare can be found at [demo.musare.com](
 ---
 
 ## Features
+
 - **Playlists**
-    - User created playlists
-    - Automatically generated playlists for genres
-    - Privacy configuration
-    - Liked and Disliked songs playlists per user
-    - Bulk import videos from YouTube playlist
-    - Add songs from verified catalogue or YouTube videos
-    - Ability to download in JSON format
+  - User created playlists
+  - Automatically generated playlists for genres
+  - Privacy configuration
+  - Liked and Disliked songs playlists per user
+  - Bulk import videos from YouTube playlist
+  - Add songs from verified catalogue or YouTube videos
+  - Ability to download in JSON format
 - **Stations**
-    - Requests - Toggleable module to allow users to add songs to the queue
-        - Configurable access level and per user request limit
-        - Automatically request songs from selected playlists
-        - Ability to search for songs from verified catalogue or YouTube videos
-    - Autofill - Toggleable module to allow owners to configure automatic filling of the queue from selected playlists
-        - Configurable song limit
-        - Play mode option to randomly play many playlists, or sequentially play one playlist
-        - Ability to search for playlists on Musare
-    - Ability to blacklist playlists to prevent songs within from playing
-    - Themes
-    - Privacy configuration
-    - Favoriting
-    - Official stations controlled by admins
-    - User created and controlled stations
-    - Pause playback just in local session
-    - Station-wide pausing by admins or owners
-    - Vote to skip songs
-    - Force skipping song by admins or owners
+  - Requests - Toggleable module to allow users to add songs to the queue
+    - Configurable access level and per user request limit
+    - Automatically request songs from selected playlists
+    - Ability to search for songs from verified catalogue or YouTube videos
+  - Autofill - Toggleable module to allow owners to configure automatic filling of the queue from selected playlists
+    - Configurable song limit
+    - Play mode option to randomly play many playlists, or sequentially play one playlist
+    - Ability to search for playlists on Musare
+  - Ability to blacklist playlists to prevent songs within from playing
+  - Themes
+  - Privacy configuration
+  - Favoriting
+  - Official stations controlled by admins
+  - User created and controlled stations
+  - Pause playback just in local session
+  - Station-wide pausing by admins or owners
+  - Vote to skip songs
+  - Force skipping song by admins or owners
 - **Song Management**
-    - Verify songs to allow them to be searched for and added to automatically generated genre playlists
-    - Discogs integration to import metadata
-    - Ability for users to report issues with songs and admins to resolve
-    - Configurable skip duration and song duration to cut intros and outros
-    - Import YouTube playlists or channels from admin area
-    - Import Album to associate Discogs album data with media in bulk
-    - Bulk admin management of songs
-    - Create songs from scratch or from YouTube videos
+  - Verify songs to allow them to be searched for and added to automatically generated genre playlists
+  - Discogs integration to import metadata
+  - Ability for users to report issues with songs and admins to resolve
+  - Configurable skip duration and song duration to cut intros and outros
+  - Import YouTube playlists or channels from admin area
+  - Import Album to associate Discogs album data with media in bulk
+  - Bulk admin management of songs
+  - Create songs from scratch or from YouTube videos
 - **YouTube**
-    - Monitor and manage API requests and quota usage
-    - Configure API quota limits
-    - YouTube video management
+  - Monitor and manage API requests and quota usage
+  - Configure API quota limits
+  - YouTube video management
 - **Users**
-    - Activity logs
-    - Profile page showing public playlists and activity logs
-    - Text or gravatar profile pictures
-    - Email or Github login/registration
-    - Preferences to tailor site usage
-    - Password reset
-    - Data deletion management
-    - ActivityWatch integration
+  - Activity logs
+  - Profile page showing public playlists and activity logs
+  - Text or gravatar profile pictures
+  - Email or Github login/registration
+  - Preferences to tailor site usage
+  - Password reset
+  - Data deletion management
+  - ActivityWatch integration
 - **Punishments**
-    - Ban users
-    - Ban IPs
+  - Ban users
+  - Ban IPs
 - **News**
-    - Admins can add/edit/remove news items
-    - Markdown editor
+  - Admins can add/edit/remove news items
+  - Markdown editor
 - **Night Mode**
 - **Administration**
-    - Admin area to manage instance
-    - Configurable data tables
-        - Reorder, resize, sort by and toggle visibilty of columns
-        - Advanced queries
-    - Bulk management
-    - View backend statistics
+  - Admin area to manage instance
+  - Configurable data tables
+    - Reorder, resize, sort by and toggle visibilty of columns
+    - Advanced queries
+  - Bulk management
+  - View backend statistics
+
 ---
 
 ## Contact