From 47e5854f42ebe7ea49240be1b8398a16c3dd00f3 Mon Sep 17 00:00:00 2001 From: CasVT Date: Wed, 21 Jun 2023 00:19:49 +0200 Subject: [PATCH] Add documentation page --- .dockerignore | 6 + .github/workflows/deploy.yml | 20 +++ .gitignore | 3 + README.md | 52 ++++--- docs-requirements.txt | 6 + docs/api.md | 3 + docs/index.md | 34 +++++ docs/installation.md | 3 + docs/setup_after_installation.md | 3 + docs/stylesheets/extra.css | 226 +++++++++++++++++++++++++++++++ mkdocs.yml | 82 +++++++++++ 11 files changed, 409 insertions(+), 29 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 docs-requirements.txt create mode 100644 docs/api.md create mode 100644 docs/index.md create mode 100644 docs/installation.md create mode 100644 docs/setup_after_installation.md create mode 100644 docs/stylesheets/extra.css create mode 100644 mkdocs.yml diff --git a/.dockerignore b/.dockerignore index ea273f0..fd03066 100644 --- a/.dockerignore +++ b/.dockerignore @@ -151,3 +151,9 @@ LICENSE # Tests tests/ + +# Project management files +release.sh +docs/ +docs-requirements.txt +mkdocs.yml diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..29d8472 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,20 @@ +name: Build and deploy docs + +on: + push: + branches: + - Development + +jobs: + deploy: + name: Deploy docs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-python@v2 + with: + python-version: 3.x + - run: pip install -r docs-requirements.txt + - run: mkdocs gh-deploy --force diff --git a/.gitignore b/.gitignore index 585383e..53bf3f3 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,6 @@ dmypy.json # VS code *.code-workspace + +# Project management files +release.sh diff --git a/README.md b/README.md index 9e2d708..fc59d77 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,28 @@ -# MIND Reminders -A simple self hosted reminder platform that uses push to send notifications to your device. Set the reminder and forget about it! 📢 +# MIND + +[![Docker Pulls](https://img.shields.io/docker/pulls/mrcas/mind.svg)](https://hub.docker.com/r/mrcas/mind) +[![GitHub Downloads](https://img.shields.io/github/downloads/Casvt/MIND/total.svg)](https://github.com/Casvt/MIND/releases) + +__A simple self hosted reminder application that can send push notifications to your device. Set the reminder and forget about it!__ Mind is a simple self hosted application for creating reminders that get pushed to your device using the [Apprise](https://github.com/caronc/apprise) API. You can send messages to just about every platform, including scheduled emails! -## Screenshots -![mind-reminders-home](https://user-images.githubusercontent.com/57927413/213593220-495aeb86-2bf8-4c43-895d-c7cba38c3cee.png) +## Workings +MIND can be used for sending notifications at the desired time. This can be a set time, like a yearly reminder for a birthday, or at a button click, to easily send a predefined notification when you want to. -![mind-reminders-add-notification-services](https://user-images.githubusercontent.com/57927413/212755314-1104531e-7feb-4e59-af1d-927576e47152.png) +## Features +- Works cross-timezone +- Notifications are sent with second-precision +- Uses the [apprise library](https://github.com/caronc/apprise), giving you 80+ platforms to send notifications to +- Easily manage the reminders with sorting options, search ability and color coding +- Docker image available +- Mobile friendly web-interface +- API available -![mind-reminders-edit](https://user-images.githubusercontent.com/57927413/213594471-ecc99a72-cf0f-4570-8e78-92ffbf37e59d.png) +### Planned Features +You can see the planned features in the [Project board](https://github.com/users/Casvt/projects/3). -![mind-reminders-settings](https://user-images.githubusercontent.com/57927413/212755327-b45da53c-72f7-480c-9a77-eaad28803fbb.png) - -## Core Features -* Basic auth -* Utilizes Apprise -* Create, edit and delete reminders -* Schedule reminders -* Recurring reminders -* Docker image -* Mobile friendly - -## Planned Features -You can see our planned features in our [Project board](https://github.com/users/Casvt/projects/3). - -## Installation +## Getting started Replace the timezone value (`TZ=`) to the [TZ database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) of your timezone! ```bash docker run -d \ @@ -34,13 +32,9 @@ docker run -d \ -p 8080:8080 \ mrcas/mind:latest ``` -## Getting Started -- Create a new account -- Click the bell icon on the left side to add an Apprise push option and save it (Here is an example using Pushover) -![mind-reminders-notification-service](https://user-images.githubusercontent.com/57927413/213593832-6c62307c-cf7c-4d11-b6ce-dea33676d477.png) +More information about installing can be found [in the wiki](https://casvt.github.io/MIND/). - -- Click the home icon and create a reminder! - -You can see the [wiki](https://github.com/Casvt/MIND/wiki) for instructions on how to install MIND on other OS'es. +## Contact +- For support, a [discord server](https://discord.gg/nMNdgG7vsE) is available +- Alternatively, [make an issue](https://github.com/Casvt/MIND/issues) diff --git a/docs-requirements.txt b/docs-requirements.txt new file mode 100644 index 0000000..37c7ed3 --- /dev/null +++ b/docs-requirements.txt @@ -0,0 +1,6 @@ +wheel>=0.38.4 +mkdocs-material>=8.5.11 +mkdocs-redirects>=1.2.0 +mkdocs-git-revision-date-localized-plugin>=1.1.0 +Pygments>=2.13.0 +pymdown-extensions>=9.9 diff --git a/docs/api.md b/docs/api.md new file mode 100644 index 0000000..9f31430 --- /dev/null +++ b/docs/api.md @@ -0,0 +1,3 @@ +# API + +Coming soon \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..530e376 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,34 @@ +# MIND Docs + +[![Docker Pulls](https://img.shields.io/docker/pulls/mrcas/mind.svg)](https://hub.docker.com/r/mrcas/mind) +[![GitHub Downloads](https://img.shields.io/github/downloads/Casvt/MIND/total.svg)](https://github.com/Casvt/MIND/releases) + +__A simple self hosted reminder application that can send push notifications to your device. Set the reminder and forget about it!__ + +Getting started: + +- [Installation](./installation.md) +- [Setup After Installation](./setup_after_installation.md) + +General Information: + +- [API Docs](./api.md) + +## Workings +MIND can be used for sending notifications at the desired time. This can be a set time, like a yearly reminder for a birthday, or at a button click, to easily send a predefined notification when you want to. + +## Features +- Works cross-timezone +- Notifications are sent with second-precision +- Uses the [apprise library](https://github.com/caronc/apprise), giving you 80+ platforms to send notifications to +- Easily manage the reminders with sorting options, search ability and color coding +- Docker image available +- Mobile friendly web-interface +- API available + +### Planned Features +You can see the planned features in the [Project board](https://github.com/users/Casvt/projects/3). + +## Contact +- For support, a [discord server](https://discord.gg/nMNdgG7vsE) is available +- Alternatively, [make an issue](https://github.com/Casvt/MIND/issues) diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 0000000..782af53 --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,3 @@ +# Installation + +Coming soon \ No newline at end of file diff --git a/docs/setup_after_installation.md b/docs/setup_after_installation.md new file mode 100644 index 0000000..0d3eced --- /dev/null +++ b/docs/setup_after_installation.md @@ -0,0 +1,3 @@ +# Setup After Installation + +Coming Soon \ No newline at end of file diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 0000000..16ba9be --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,226 @@ +:root { + --color-light: #ffffff; + --color-dim-light: #b5b5b5; + --color-gray: #3c3c3c; + --color-dark: #1b1b1b; +} + +.md-typeset code { + border-radius: 6px; +} + +.md-clipboard { + color: var(--color-gray); +} + +:hover > .md-clipboard { + color: var(--color-dark); +} + +.md-clipboard:hover { + color: var(--color-light); +} + +/* */ +/* Light mode */ +/* */ +[data-md-color-scheme="MIND"] { + /* Background color of header */ + --md-primary-fg-color: var(--color-gray); + /* Header and code background color and clipboard color */ + --md-default-fg-color--light: var(--color-dim-light); + --md-primary-fg-color--lighter: #00000052; + --md-default-fg-color--lightest: var(--color-dim-light); + /* Color in header */ + --md-primary-bg-color: var(--color-light); + /* Color in placeholder of search and non-hover for nav */ + --md-primary-bg-color--light: var(--color-dim-light); + --md-primary-bg-color--lighter: #ffffff4d; + --md-primary-bg-color--lightest: #ffffff1f; + /* Background color */ + --md-default-bg-color: var(--color-light); + + /* Color in search */ + --md-default-fg-color: var(--color-dark); + + /* Hover color for mark and ToC */ + --md-accent-fg-color: var(--color-gray); + + /* Code color */ + --md-code-fg-color: var(--color-light); + /* Code background color */ + --md-code-bg-color: var(--color-gray); + --md-code-hl-color: #ffff0080; + --md-code-hl-number-color: #d52a2a; + --md-code-hl-special-color: #db1457; + --md-code-hl-function-color: #a846b9; + --md-code-hl-constant-color: #6e59d9; + --md-code-hl-keyword-color: #3f6ec6; + --md-code-hl-string-color: #1c7d4d; + + /* Slashes in code */ + --md-code-hl-name-color: var(--md-code-fg-color); + --md-code-hl-operator-color: var(--color-dim-light); + --md-code-hl-punctuation-color: var(--color-dim-light); + --md-code-hl-comment-color: var(--color-dim-light); + --md-code-hl-generic-color: var(--color-dim-light); + --md-code-hl-variable-color: var(--color-dim-light); + + /* Text color */ + --md-typeset-color: var(--color-dark); + /* Link color */ + --md-typeset-a-color: var(--color-dim-light); + --md-typeset-mark-color: #ffff0080; + --md-typeset-del-color: #f5503d26; + --md-typeset-ins-color: #0bd57026; + --md-typeset-kbd-color: #fafafa; + --md-typeset-kbd-accent-color: #fff; + --md-typeset-kbd-border-color: #b8b8b8; + --md-typeset-table-color: #0000001f; + --md-typeset-table-color--light: rgba(0,0,0,.035); + + --md-admonition-fg-color: var(--color-dark); + --md-admonition-bg-color: var(--color-light); + + --md-warning-fg-color: #000000de; + --md-warning-bg-color: #ff9; + + /* Footer color */ + --md-footer-fg-color: var(--color-light); + /* Footer background color */ + --md-footer-bg-color: var(--color-gray); + + --md-shadow-z1: 0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a; + --md-shadow-z2: 0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040; + --md-shadow-z3: 0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059; +} + +[data-md-color-scheme="MIND"] button[data-md-component="top"], +[data-md-color-scheme="MIND"] h1, +[data-md-color-scheme="MIND"] [data-md-component="search"] { + --md-default-fg-color--light: var(--color-dark); +} + +[data-md-color-scheme="MIND"] [data-md-component="toc"] { + color: var(--color-dark); +} + +[data-md-color-scheme="MIND"] [data-md-component="toc"] nav { + color: var(--color-gray); +} + +[data-md-color-scheme="MIND"] .tabbed-block { + --md-default-fg-color--light: var(--color-dark); +} + +[data-md-color-scheme="MIND"] details { + border-color: var(--color-gray); +} + +[data-md-color-scheme="MIND"] details > summary { + background-color: transparent; +} + +[data-md-color-scheme="MIND"] details > summary::before { + background-color: var(--color-dark); +} + +/* */ +/* Dark mode */ +/* */ +[data-md-color-scheme="MIND-dark"] { + /* Background color of header */ + --md-primary-fg-color: var(--color-gray); + /* Header and code background color and clipboard color */ + --md-default-fg-color--light: var(--color-gray); + --md-primary-fg-color--lighter: #00000052; + --md-default-fg-color--lightest: var(--color-gray); + /* Color in header */ + --md-primary-bg-color: var(--color-light); + /* Color in placeholder of search and non-hover for nav */ + --md-primary-bg-color--light: var(--color-dim-light); + --md-primary-bg-color--lighter: #ffffff4d; + --md-primary-bg-color--lightest: #ffffff1f; + /* Background color */ + --md-default-bg-color: var(--color-dark); + + /* Color in search */ + --md-default-fg-color: var(--color-light); + + /* Hover color for mark and ToC */ + --md-accent-fg-color: var(--color-dim-light); + + /* Code color */ + --md-code-fg-color: var(--color-light); + /* Code background color */ + --md-code-bg-color: var(--color-gray); + --md-code-hl-color: #ffff0080; + --md-code-hl-number-color: #d52a2a; + --md-code-hl-special-color: #db1457; + --md-code-hl-function-color: #a846b9; + --md-code-hl-constant-color: #6e59d9; + --md-code-hl-keyword-color: #3f6ec6; + --md-code-hl-string-color: #1c7d4d; + + /* Slashes in code */ + --md-code-hl-name-color: var(--md-code-fg-color); + --md-code-hl-operator-color: var(--color-dim-light); + --md-code-hl-punctuation-color: var(--color-dim-light); + --md-code-hl-comment-color: var(--color-dim-light); + --md-code-hl-generic-color: var(--color-dim-light); + --md-code-hl-variable-color: var(--color-dim-light); + + /* Text color */ + --md-typeset-color: var(--color-light); + /* Link color */ + --md-typeset-a-color: var(--color-dim-light); + --md-typeset-mark-color: #ffff0080; + --md-typeset-del-color: #f5503d26; + --md-typeset-ins-color: #0bd57026; + --md-typeset-kbd-color: #fafafa; + --md-typeset-kbd-accent-color: #fff; + --md-typeset-kbd-border-color: #b8b8b8; + --md-typeset-table-color: #0000001f; + --md-typeset-table-color--light: rgba(0,0,0,.035); + + --md-admonition-fg-color: var(--color-light); + --md-admonition-bg-color: var(--color-dark); + + --md-warning-fg-color: #000000de; + --md-warning-bg-color: #ff9; + + /* Footer color */ + --md-footer-fg-color: var(--color-light); + /* Footer background color */ + --md-footer-bg-color: var(--color-gray); + + --md-shadow-z1: 0 0.2rem 0.5rem #0000000d,0 0 0.05rem #0000001a; + --md-shadow-z2: 0 0.2rem 0.5rem #0000001a,0 0 0.05rem #00000040; + --md-shadow-z3: 0 0.2rem 0.5rem #0003,0 0 0.05rem #00000059; +} + +[data-md-color-scheme="MIND-dark"] button[data-md-component="top"], +[data-md-color-scheme="MIND-dark"] h1, +[data-md-color-scheme="MIND-dark"] [data-md-component="search"] { + --md-default-fg-color--light: var(--color-light); +} + +[data-md-color-scheme="MIND-dark"] [data-md-component="toc"] nav { + color: var(--color-dim-light); +} + +[data-md-color-scheme="MIND-dark"] .tabbed-block { + --md-default-fg-color--light: var(--color-dark); +} + +[data-md-color-scheme="MIND-dark"] details { + border-color: var(--color-gray); +} + +[data-md-color-scheme="MIND-dark"] details > summary { + background-color: transparent; +} + +[data-md-color-scheme="MIND-dark"] details > summary::before { + background-color: var(--color-dim-light); +} diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..a0fe6d8 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,82 @@ +# Site Details +site_name: MIND Docs +site_description: The official guide for MIND +site_author: MrCas +#edit_uri: https://github.com/?? +repo_url: https://github.com/Casvt/MIND +repo_name: Casvt/MIND + +extra_css: + - stylesheets/extra.css + +# Site appearance (logos, colours, icons) +theme: + name: material + language: en + code_wrap: true + features: + - content.tabs.link + - content.code.copy + - header.autohide + - navigation.expand + - navigation.indexes + - navigation.instant + - navigation.sections + - navigation.tabs + - navigation.tabs.sticky + - navigation.top + - navigation.tracking + #favicon: assets/logo/favicon.ico + #logo: assets/logo/kapowarr-logo.png? + palette: + # Light mode + - media: "(prefers-color-scheme: light)" + scheme: MIND + toggle: + icon: material/toggle-switch-off-outline + name: Switch to dark mode + # Dark mode + - media: "(prefers-color-scheme: dark)" + scheme: MIND-dark + toggle: + icon: material/toggle-switch + name: Switch to light mode + +# Markdown extensions +markdown_extensions: + - abbr + - attr_list + - meta + - pymdownx.details + - pymdownx.highlight: + guess_lang: true + anchor_linenums: true + - pymdownx.inlinehilite + - pymdownx.keys + - pymdownx.saneheaders + - pymdownx.smartsymbols + - pymdownx.snippets + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true + - sane_lists + - toc: + permalink: true + toc_depth: 5 + +# mkdocs function extensions +plugins: + - search + - git-revision-date-localized: + type: timeago + locale: en + fallback_to_build_date: false + +# Navigation Layout +nav: + - Home: index.md + - Getting Started: + - Installation: installation.md + - Setup After Installation: setup_after_installation.md + - Other Docs: + - API: api.md