+
+
+
diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js
new file mode 100644
index 00000000..f9c7b489
--- /dev/null
+++ b/docs/.vitepress/theme/index.js
@@ -0,0 +1,8 @@
+import Layout from './Layout.vue'
+
+export default {
+ Layout,
+ enhanceApp({ app, router, siteData }) {
+ // ...
+ }
+}
diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css
new file mode 100644
index 00000000..72d3adb0
--- /dev/null
+++ b/docs/.vitepress/theme/style.css
@@ -0,0 +1,156 @@
+.markdown-body {
+ p, blockquote, hr,
+ ul, ol, dl,
+ table,
+ pre,
+ details {
+ margin-top: 0;
+ margin-bottom: 1rem;
+ }
+}
+
+.markdown-body {
+ table {
+ display: block;
+ width: 100%;
+ overflow: auto;
+
+ th {
+ font-weight: 600;
+ }
+
+ th, td {
+ padding: 6px 13px;
+ border-width: 1px;
+ }
+
+ tr {
+ &:nth-child(2n) {
+ background-color: #f7fafc;
+ }
+ }
+ }
+}
+
+.markdown-body {
+ a {
+ color: #0366d6;
+ }
+
+ a:hover {
+ text-decoration: underline;
+ }
+
+ b, strong {
+ font-weight: 600;
+ }
+}
+
+.markdown-body {
+ ul {
+ list-style-type: disc;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+
+ ul, ol {
+ padding-left: 2rem;
+
+ &.no-list {
+ padding: 0;
+ list-style-type: none;
+ }
+ }
+
+ ul ul,
+ ul ol,
+ ol ol,
+ ol ul {
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+
+ li {
+ word-wrap: break-all;
+ }
+
+ li > p {
+ margin-top: 1rem;
+ }
+
+ li + li {
+ margin-top: 0.25rem;
+ }
+
+ dl {
+ padding: 0;
+
+ dt {
+ padding: 0;
+ margin-top: 1rem;
+ font-size: 1rem;
+ font-style: italic;
+ font-weight: bold;
+ }
+
+ dd {
+ padding: 0 1rem;
+ margin-bottom: 1rem;
+ }
+ }
+}
+
+.markdown-body {
+ h1, h2, h3, h4, h5, h6 {
+ margin-top: 1.5rem;
+ margin-bottom: 1rem;
+ font-weight: 600;
+ line-height: 1.25;
+ }
+
+ h3 {
+ font-size: 1.25rem;
+ }
+}
+
+.markdown-body {
+ code,
+ tt {
+ padding: 0.2em 0.4em;
+ margin: 0;
+ font-size: 0.85em;
+ background-color: #edf2f7;
+ border-radius: 0.25em;
+ color: #4a5568;
+ }
+
+ del code { text-decoration: inherit; }
+
+ [class^="language-"] {
+ .copy, .lang { display: none; }
+ }
+
+ pre {
+ margin-bottom: 1rem;
+ padding: 0.85em 0;
+ overflow: auto;
+ background-color: #edf2f7;
+ border-radius: 0.25rem;
+ word-break: normal;
+
+ code {
+ padding: 0;
+ display: flex;
+ flex-direction: column;
+ min-width: fit-content;
+ }
+
+ .line {
+ display: inline-block;
+ padding: 0 1em;
+ min-width: fit-content;
+ }
+ }
+}
diff --git a/docs/chat-commands.md b/docs/chat-commands.md
new file mode 100644
index 00000000..582b8215
--- /dev/null
+++ b/docs/chat-commands.md
@@ -0,0 +1,30 @@
+---
+title: Chat commands
+---
+
+Allows you to send arbitrary text to the chat.
+
+#### List of available commands ####
+[https://www.poewiki.net/wiki/Chat_console](https://www.poewiki.net/wiki/Chat_console)
+
+#### Special rules ####
+- Text that starts with `@last`, will be sent to the character of the last whisper received/sent.
+ ```
+ Last whisper received: @From UltraSkillPlayer: Thank you.
+ Command: @last Good luck!
+ Sent text: @UltraSkillPlayer Good luck!
+ ```
+- Text that ends with `@last`, `@last` will be replaced with the character name of the last whisper received/sent.
+ ```
+ Last whisper received: @From UltraSkillPlayer: Can I visit your Toucan hideout?
+ Command: /invite @last
+ Sent text: /invite UltraSkillPlayer
+ ```
+
+#### FAQ ####
+1. - Q: Something doesn't work, what text was sent to the game?
+ - A: Open chat with `Enter`, and then press `ArrowUp` key two times.
+2. - Q: How to leave party?
+ - A: Use `/kick MyCharacterName`, don't forget to update character name each time you create or change it.
+3. - Q: I want to chain commands and send them by one hotkey.
+ - A: This is not allowed by PoE ToS.
diff --git a/docs/download.md b/docs/download.md
new file mode 100644
index 00000000..7dfadb8e
--- /dev/null
+++ b/docs/download.md
@@ -0,0 +1,40 @@
+---
+title: Download
+---
+
+
+
+You can download Awakened Poe Trade here. Any other mirrors are not known
+to the developer, downloading from them may be unsafe.
+
+| Download | Automatic update | Startup time |
+|----------|------------------|--------------|
+| Windows 11 (installer) | ✔ | Fast |
+| Windows 11 (portable) | ❌ | Slow |
+| Ubuntu 20.04 | ✔ | Fast |
+
+Latest version is {{ theme.appVersion }}
+{:.text-sm}
+
+---
+
+### Requirements
+
+- PoE display mode
+ - ✔ Windowed
+ - ✔ Windowed Fullscreen
+ - ❌ Fullscreen
+- PoE language
+ - ✔ English
+ - ✔ Russian
+ - ❌ Portuguese, Thai, French, German, Spanish, Korean
+
+No Administrator rights required, but\
+⚠ **If you run PoE client as Admin, OS security boundaries take effect.
+In order for Awakened PoE Trade to have access to the PoE window, it must be started with Administrator rights.**
+
+❌ **Not compatible with "GeForce Now" or any other cloud gaming service that do not forward clipboard data.**
diff --git a/docs/faq.md b/docs/faq.md
new file mode 100644
index 00000000..0b6780ec
--- /dev/null
+++ b/docs/faq.md
@@ -0,0 +1,60 @@
+---
+title: FAQ
+---
+
+- **Where can I change settings, league?**
+
+ Open Path of Exile and press overlay key `Shift + Space`. Click on the button with cog icon there.
+ 
+
+- **Where can I find log file?**
+
+ Find app icon in the tray.
+ 
+
+- **Is this app approved by GGG? Can I get banned for using it?**
+
+ There are no approved apps created by community. If app complies with the [game ToS](https://www.pathofexile.com/legal/terms-of-use-and-privacy-policy), does one server action per button press
+ and doesn't interact with the game client itself (injecting into the process, changing the process memory aka cheats)
+ it can be considered safe.
+
+ If you get banned, the first action is to [Contact Support](https://www.pathofexile.com/support)
+
+- **I want to `Ctrl + Scroll` stash tabs without zooming my character.**
+
+ You can disable "Mousewheel Zoom" in PoE settings (Options -> UI -> 3-rd check mark starting from the bottom)
+ 
+
+ Don't worry, you still can use keys
+ 
+
+- **Will my language be supported?**
+
+ No plans to support other languages. Why is there Russian language?
+ Because:
+ 1 - this is the native language of developer;
+ 2 - helps to create cleaner abstractions in code and test it;
+ 3 - has the most active community, at least according to the numbers I can measure.
+
+ 09/21/2020
+
+ 
+
+- **I downloaded a zip with a bunch of files, but no .exe inside?**
+
+ You have downloaded the source code, download [here](/download)
+
+- **I can't price check items in Divination Card stash tab.**\
+ **I can't price check rewards in Curio Display room (Heist Blueprints).**\
+ **I can't check modifiers of the maps proposed by Kirac.**
+
+ Yes, you can't. The game doesn't copy anything to clipboard when pressing `Ctrl + C` in these places.
+ And as mentioned in the [Quick Start](/quick-start), the whole thing how
+ app works based on text of item in clipboard.
+
+ Regarding Divination Card stash tab, you can use another 3rd-party apps that
+ price check your stash tabs (e.g. [Exilence Next](https://github.com/viktorgullmark/exilence-next/#readme))
+
+- **What does the orange/red circle (next to the item's listed time) mean?**
+
+ It shows player's status: AFK/Offline respectively.
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 00000000..ad0b54fa
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,4 @@
+---
+---
+
+{:.rounded}
diff --git a/docs/issues.md b/docs/issues.md
new file mode 100644
index 00000000..3c0061f8
--- /dev/null
+++ b/docs/issues.md
@@ -0,0 +1,53 @@
+---
+title: Common issues
+---
+
+1. Read the [requirements](/download) again.
+
+ Please do it. Did you know that updating Geforce Experience can reset game
+ video settings to "optimized profile" and silently enable Fullscreen mode?
+
+2. [Check the log file](/faq).
+
+3. Are you playing with Vulkan renderer? Update GPU drivers.
+
+ If Awakened works for you with DirectX11 renderer,
+ then problem is old Vulkan drivers for sure.
+
+4. Delete `%appdata%\awakened-poe-trade`
+
+ If needed, backup `apt-data` folder with your configuration inside.\
+
+5. **Close all applications** that you can in tray and task manager.
+
+ Launch them later one at a time to identify **conflict**.
+
+6. Restart Awakened PoE Trade.
+
+ *(don't forget to quit first, otherwise launching second instance will do nothing).*
+
+7. Enable detailed logs (Settings>Debug), restart tool, try to price check item, open the log file again.
+
+8. As last resort, go to Discord. But if you don't describe something specific about
+ your problem, **you will most likely be directed to this page**.
+
+ If you've resolved your issue, feel free to share it on Discord and
+ I'll update these steps accordingly.
+
+---
+
+- [How to remove the stopwatch in center of screen?](https://github.com/SnosMe/awakened-poe-trade/issues/219)
+- [Sends a whisper when doing price-check](https://github.com/SnosMe/awakened-poe-trade/issues/178)
+
+## Windows
+
+- [Nothing happens when I try to price check](/nothing-happens)
+- [Can't open settings via tray icon when game is active](https://github.com/SnosMe/awakened-poe-trade/issues/265)
+- [Installation stuck at ~50%](https://github.com/SnosMe/awakened-poe-trade/issues/205)
+- [Says the update will be installed after restart, but never does](https://github.com/SnosMe/awakened-poe-trade/issues/278)
+- [Self-uninstalled after update](https://github.com/SnosMe/awakened-poe-trade/issues/36)
+
+## Linux
+
+- [Tray icon is not shown](https://github.com/SnosMe/awakened-poe-trade/issues/106)
+- [Screen is black](https://github.com/SnosMe/awakened-poe-trade/issues/185)
diff --git a/docs/nothing-happens.md b/docs/nothing-happens.md
new file mode 100644
index 00000000..8160a634
--- /dev/null
+++ b/docs/nothing-happens.md
@@ -0,0 +1,30 @@
+---
+title: Nothing happens
+---
+
+To understand why nothing is happening, you need to open the logs.
+Most problems are easy to fix once you read them. But there is one that doesn't have a quick fix:
+```
+warn [ClipboardPoller] No item text found.
+```
+
+The diagram below shows what APT does when the hotkey is pressed.
+
+
+
+As you may have noticed, compared to other third-party PoE tools APT uses "Advanced Descriptions" key.
+
+
+`Ctrl + Alt + C` is a frequent victim of global keyboard shortcuts. The sad part, if you are reading this, is that they used a dirty way to implement global shortcuts.
+
+**Your goal is to make PoE copy the item to the clipboard when you press** `Ctrl + Highlight + C` (if it's already working, ignore this article, your problem is somewhere else).
+
+
+
+As a starting point, common programs reported by players were:
+- ASUS GPU Tweak II
+- Radeon™ Software
+- Display Pilot (BenQ)
+- AHK scripts
diff --git a/docs/ocr-guide.md b/docs/ocr-guide.md
new file mode 100644
index 00000000..fe26b697
--- /dev/null
+++ b/docs/ocr-guide.md
@@ -0,0 +1,47 @@
+---
+title: OCR Guide
+---
+
+This guide will help you to setup and perform OCR using Awakened PoE Trade.
+
+### OCR Setup ###
+
+1. Download a 6MB archive with OCR files from [here](https://github.com/SnosMe/awakened-poe-trade/releases/download/v3.20.10007/cv-ocr.zip).
+
+2. Open the folder with configuration file.
+ 
+
+3. Extract "cv-ocr" folder, inside the archive, into it.\
+ You should have the following structure:
+
+ ```
+ apt-data/
+ ├── config.json
+ └── cv-ocr/
+ ├── eng.traineddata
+ ├── ... more files ...
+ └── tesseract-core-simd.wasm
+ ```
+
+4. Restart the application.
+
+### Widget configuration ###
+
+1. Open the widget by clicking near the Settings button.
+ 
+
+ I prefer to place it at the bottom.
+ 
+
+2. Edit the widget and assign a hotkey.
+ 
+
+### Rules to follow before pressing the hotkey ###
+
+1. Both icons should be fully visible.
+ 
+
+2. The text should not be occluded by health bar or other elements.
+ 
+
+Happy hunting!
diff --git a/docs/package.json b/docs/package.json
new file mode 100644
index 00000000..c6d88946
--- /dev/null
+++ b/docs/package.json
@@ -0,0 +1,24 @@
+{
+ "scripts": {
+ "dev": "vitepress dev"
+ },
+ "devDependencies": {
+ "postcss": "^8.2.14",
+ "tailwindcss": "3.x.x",
+ "vitepress": "^1.0.0-beta.1",
+ "vue": "^3.3.4"
+ },
+ "postcss": {
+ "plugins": {
+ "tailwindcss/nesting": {},
+ "tailwindcss": {
+ "config": {
+ "content": [
+ "./.vitepress/**/*.{js,vue}",
+ "./**/*.md"
+ ]
+ }
+ }
+ }
+ }
+}
diff --git a/docs/public/favicon.png b/docs/public/favicon.png
new file mode 100644
index 00000000..8bbb2d2b
Binary files /dev/null and b/docs/public/favicon.png differ
diff --git a/docs/quick-start.md b/docs/quick-start.md
new file mode 100644
index 00000000..1fd73185
--- /dev/null
+++ b/docs/quick-start.md
@@ -0,0 +1,29 @@
+---
+title: Quick Start
+---
+
+#### First of all, how does it work? {:style="margin-top: 0;"}
+
+When you press `Ctrl + C` Path of Exile copies the item's text (under cursor, if any) to the clipboard.
+All that remains is to parse text in Awakened PoE Trade and show to you in a fancy way.
+
+### Usage
+
+- Default hotkeys
+{:.no-list}
+ - Press `Ctrl + D` to check the price of the item\
+ *Hold CTRL if you do not want the window to close. As soon as the cursor is within the window, you can release CTRL.*{:.text-sm}
+ - Press `Ctrl + Alt + D` to check the price of the item\
+ *Opens a window, but does not hide it automatically when moving the mouse*{:.text-sm}
+ - `Alt + W` to open the item on Wiki
+ - `Shift + Space` to access overlay with widgets
+- Default chat commands
+ - Press `F5` to go to hideout
+ - Press `F9` to exit to Character selection screen
+- Other
+ - `Ctrl + MouseWheel` to scroll through stash tabs
+
+---
+
+Some functions don't have hotkeys assigned by default to avoid conflicts on your system.
+You can set them and change default hotkeys in the [Settings](/faq).
diff --git a/repo.code-workspace b/repo.code-workspace
index ffef8be8..381ab04b 100644
--- a/repo.code-workspace
+++ b/repo.code-workspace
@@ -8,6 +8,10 @@
"name": "main",
"path": "main"
},
+ {
+ "name": "docs",
+ "path": "docs"
+ },
{
"name": "root",
"path": "."
@@ -17,6 +21,7 @@
"files.exclude": {
"main/": true,
"renderer/": true,
+ "docs/": true,
"dist/": true
}
}