Initial docs rewrite using Vuepress

This commit is contained in:
Ske 2020-06-10 18:11:28 +02:00
parent e7191def02
commit 2b259869a0
47 changed files with 8276 additions and 1397 deletions

View file

@ -0,0 +1,47 @@
<template>
<div class="command-argument-parent">
<div class="command-argument">
<slot />
</div>
<div v-if="false" class="argument-details">
{{ name }}
<span v-if="optional !== undefined">(optional)</span>
</div>
</div>
</template>
<style lang="stylus">
.command-argument-parent {
display: inline-flex;
flex-direction: column;
text-align: center;
}
.command-argument {
padding: 0 0.5rem;
background-color: lighten($exampleBgColor, 15%);
border-radius: 4px;
}
.argument-details {
font-size: 0.75em;
font-style: italic;
}
.arg-input {
/*font-size: 0.9rem;*/
color: $exampleTextColor;
background-color: transparent;
text-align: center;
border: none;
}
</style>
<script>
export default {
props: ["optional", "name", "edit", "value"],
}
</script>

View file

@ -0,0 +1,23 @@
<template>
<p class="command-example">
<span class="bot-prefix">pk;</span><slot></slot>
</p>
</template>
<style lang="stylus">
.command-example {
font-size: $exampleFontSize;
font-family: $exampleFontFamily;
color: $exampleTextColor;
background-color: $exampleBgColor;
border-radius: 6px;
margin: 0.5rem 0;
padding: 0.75rem 1.25rem;
}
.bot-prefix {
color: $examplePrefixColor;
}
</style>

View file

@ -0,0 +1,23 @@
<template>
<div class="command-example-group">
<slot />
</div>
</template>
<style lang="stylus">
.command-example-group {
background-color: $exampleBgColor;
border-radius: 6px;
padding: 0.75rem 1.25rem;
}
.command-example-group .command-example {
margin: 0;
padding: 0;
}
.command-example-group .command-example:not(:last-child) {
margin-bottom: 0.5rem;
}
</style>

View file

@ -0,0 +1,19 @@
<template>
<span class="example-inline"><span class="inline-bot-prefix">pk;</span><slot /></span>
</template>
<style lang="stylus">
.example-inline {
font-size: $exampleFontSize;
font-family: $exampleFontFamily;
background-color: $exampleBgColor;
color: $exampleTextColor;
padding: 0.2rem 0.4rem;
border-radius: 3px;
}
.inline-bot-prefix {
color: $examplePrefixColor;
}
</style>

View file

@ -0,0 +1,54 @@
module.exports = {
title: "PluralKit",
base: "/",
head: [
["link", { rel: "icon", type: "image/png", href: "/favicon.png" }],
],
evergreen: true,
theme: "@vuepress/theme-default",
plugins: [
"vuepress-plugin-clean-urls",
],
markdown: {
extendMarkdown: md => {
md.use(require("markdown-it-custom-header-link"));
md.use(require("markdown-it-imsize"));
}
},
themeConfig: {
nav: [
{ text: "Support server", link: "https://discord.gg/PczBt78" },
{ text: "Invite bot", link: "https://discordapp.com/oauth2/authorize?client_id=466378653216014359&scope=bot&permissions=536995904" }
],
sidebar: [
["/", "Home"],
{
title: "User Guide",
collapsable: false,
children: [
"/guide/quick-start",
"/guide/systems",
"/guide/members",
"/guide/proxying",
"/guide/moderation",
"/guide/privacy",
"/guide/commands",
]
},
"/faq",
"/api",
"/privacy-policy",
"/support-server",
],
lastUpdated: "Last Updated",
repo: "xSke/PluralKit",
repoLabel: "Contribute!",
docsDir: "docs/content",
editLinks: true,
editLinkText: "Help us improve this page!"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 KiB

View file

@ -0,0 +1,6 @@
// CUSTOM
$exampleBgColor = $codeBgColor;
$exampleTextColor = #ffffff;
$examplePrefixColor = #a3a6a9;
$exampleFontSize = 0.9rem;
$exampleFontFamily = source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;

8
docs/content/api.md Normal file
View file

@ -0,0 +1,8 @@
# API documentation
PluralKit has a REST API for third-party app integration.
The API is documented using [OpenAPI v3](https://swagger.io/specification/), and the schema file can be found [on the repository](https://github.com/xSke/PluralKit/blob/master/PluralKit.API/openapi.yaml).
An online rendered version of the schema can be seen on Swagger using the link below:
[**https://app.swaggerhub.com/apis-docs/xSke/PluralKit/1.0**](https://app.swaggerhub.com/apis-docs/xSke/PluralKit/1.0)

53
docs/content/faq.md Normal file
View file

@ -0,0 +1,53 @@
---
sidebarDepth: 2
---
# Frequently asked questions
## How does PluralKit proxying work? <!-- how-it-works -->
Proxying works using [Discord webhooks](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks). Every time PluralKit sees a message, it'll:
1. Look for a pair of [proxy tags](./guide/proxying.md#proxy-tags) in the message. If it finds any, it'll determine which member they correspond to. If not, it'll check your [autoproxy] settings and proceed with those.
2. Create a webhook in the relevant channel (if one doesn't already exist).
3. Send a message through that webhook with the correct username, avatar, and message content.
4. Delete the original message.
The result is that the proxied message is sent using the webhook. This has a few implications:
### Why can't I change my name color? <!-- color -->
Webhooks aren't real Discord users, and can't have roles attached, or otherwise have their name color changed.
### Why does the name/avatar show up wrong when I click on a profile? <!-- profile-error -->
Since all webhook messages have the same ID, Discord shows a random name/avatar pair - it'll be whatever it happens to have cached.
### How can I determine who sent a message? <!-- lookup -->
If you react with the :question: emoji, PluralKit will DM you information about the message and its sender.
### How can I ping a webhook? <!-- ping -->
If you react with the :exclamation: emoji, PluralKit will send a "ping" message in the channel, pinging the original sender account on your behalf.
### How can I delete my own message? <!-- deleting -->
If you react with the :x: emoji, you can delete a proxied message if it was originally sent from your own account.
### Why can't I block webhook messages? <!-- blocking -->
Discord does not support blocking webhooks. Unfortunately, there's no workaround for this at the moment :slightly_frowning_face:
## Who can use this bot? <!-- gatekeeping -->
*or: "Can I use this bot for kin/roleplay/other non-plurality uses? Can I use it if Im not plural myself? Is that appropriating?"*
Although this bot is designed with plural systems and their use cases in mind, the bots feature set is still useful for many other types of communities, including role-playing and otherkin. By all means go ahead and use it for those communities, too. **We dont gatekeep, and neither should you.**
## Who's the mascot? <!-- mascot -->
[Our lovely bot mascot](https://imgur.com/a/LTqQHHL)'s name is **Myriad**! They were drawn by [Layl](https://twitter.com/braindemons). *(and yes, there are fictives.)*
### Why does the bot avatar occasionally change? <!-- bot-avatar -->
Every month, we accept requests for fanart of Myriad and pick out one to change the bot's avatar to. This gets us lots of variety :)
We accept submissions in the [#myriad-mythology](https://discordapp.com/channels/466707357099884544/569526847667175444) channel in the [support server](./support-server.md).
#### Bot avatar history
| Month | Artist | Avatar |
| ----: | ------ | ------ |
| *(n/a)* | [@Layl#8888](https://twitter.com/braindemons) | ![Original Myriad avatar](./files/avatars/original.png =64x64) |
| **June 2020** | @detective zikachu#8899 | ![June 2020 avatar](./files/avatars/2020-06.png =64x64) |

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

View file

@ -0,0 +1 @@
# Command list

View file

@ -0,0 +1,2 @@
# User Guide
guide go nyoom, or something

View file

@ -0,0 +1,7 @@
# Members
## The member card
## Creating members
## Editing members

View file

@ -0,0 +1,7 @@
# Moderation
## Message querying
## Channel blacklist
## Log channel
### Logging blacklist
## Moderation bots
### Log cleanup

View file

@ -0,0 +1 @@
# Privacy

View file

@ -0,0 +1,13 @@
# Proxying
## Proxy tags
## Handling names
### System tags
### Display names
### Server names
## Querying and pinging
## Autoproxy

View file

@ -0,0 +1,62 @@
---
defaultMember: Craig
---
# Quick start
This page will get you started :zap: lightning-fast :zap: with the bot. You'll need to follow these steps:
## Create a system
First, **create a system** with the following command:
<Cmd>system new</Cmd>
You can also specify a system name if you want:
<Cmd>system new <Arg>My System Name</Arg></Cmd>
## Create a member
Second, **create a member** with the following command, inserting the member name:
<Cmd>member new <Arg>{{ $page.frontmatter.defaultMember }}</Arg></Cmd>
::: tip
You can include spaces, punctuation, or symbols in the member name. However, you'll need to write them `"in quotes"` every time you refer to the member elsewhere.
Instead, you can give your member a simple, easy to type name, then set the member's [display name](./proxying.md#handling-names) to a more complex version. That'll get displayed when proxying, and then you can keep the following commands simple.
:::
## Set some proxy tags
Now, you'll need to tell PluralKit how you want to trigger the proxy using **proxy tags**. Often, these will be a pair of brackets, an emoji prefix, or something similar.
To set a member's proxy tags, you'll need to "pretend" you're proxying the word `text` - just the word itself, all-lowercase. This often gets a bit confusing, so here are a couple of examples with various patterns:
<CmdGroup>
<Cmd>member <Arg>{{ $page.frontmatter.defaultMember }}</Arg> proxy <Arg>J:text</Arg></Cmd>
<Cmd>member <Arg>{{ $page.frontmatter.defaultMember }}</Arg> proxy <Arg>[text]</Arg></Cmd>
<Cmd>member <Arg>{{ $page.frontmatter.defaultMember }}</Arg> proxy <Arg>🌸text</Arg></Cmd>
<Cmd>member <Arg>{{ $page.frontmatter.defaultMember }}</Arg> proxy <Arg>text -Q</Arg></Cmd>
</CmdGroup>
::: tip
You're not limited to the types of proxy tags shown above. You can put anything you'd like around the word `text` (before, after, or both), and PluralKit will look for that. Be creative!
:::
## Set an avatar (optional)
If you want an avatar displayed, use the following command:
<Cmd>member <Arg>{{ $page.frontmatter.defaultMember }}</Arg> avatar <Arg>https://link.to.your/avatar.png</Arg></Cmd>
::: tip
If you don't have a link, you can leave that out entirely, and then **attach** the image to the command message itself. PluralKit will pick up on the attachment, and use that instead.
:::
::: warning
Avatars have some restrictions:
- The image must be in **.jpg**, **.png**, or **.webp** format
- The image must be under **1024 KB** in size
- The image must be below **1024 x 1024 pixels** in resolution (along the smallest axis).
- Animated GIFs are **not** supported (even if you have Nitro).
:::
## More information
(TODO)

View file

@ -0,0 +1,44 @@
---
systemName: My System Name
---
# Systems
A *system* is equivalent to an account. Every user of PluralKit must have a system registered to use the bot.
## System IDs
Each system has a **system ID** - a randomly generated string of 5 letters. You can use this ID to unambiguously refer to a system in commands.
You can see your system ID by running <Cmd-inline>system</Cmd-inline> and looking at the embed footer (at the bottom of the response).
## Creating a system
To create a system, use the <Cmd-inline>system new</Cmd-inline> command with an optional system name:
<CmdGroup>
<Cmd>system new</Cmd>
<Cmd>system new <Arg>My System Name</Arg></Cmd>
</CmdGroup>
## Editing your system
### System description
You can set your system description using the following command:
<Cmd>system description <Arg>My cool system description goes here.</Arg></Cmd>
## Linking accounts
A system isn't necessarily tied to a single account. A system can be **linked** to another account, and all linked accounts can run commands on behalf of the system.
To link your system to another account, use the following command:
<Cmd>link <Arg>@NameOfAccount#1234</Arg></Cmd>
The other account will need to confirm the link by pressing a reaction within five minutes.
Should you want to unlink an account, use the equivalent unlink account:
<Cmd>unlink <Arg>@NameOfAccount#1234</Arg></Cmd>
You can unlink your own account too (both by mentioning, or using <Cmd-inline>unlink</Cmd-inline> with no account). While you can't unlink the only linked account, be careful not to lock yourself out of your system by other means :slightly_smiling_face:
::: tip
On both of these commands, you can also supply a user ID. This is useful when you want to unlink an already-deleted account, for example.
:::

2
docs/content/index.md Normal file
View file

@ -0,0 +1,2 @@
# PluralKit
Front page goes here. Unfinished.

View file

@ -0,0 +1,40 @@
# Privacy policy
::: tip
The bot is open-source (under the [Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0)), and the source can be seen [on GitHub](https://github.com/xSke/PluralKit).
:::
Im not a lawyer. I dont want to write a 50 page document no one wants to (or can) read. In short:
## What we store (and don't store)
This is the data PluralKit stores indefinitely:
* The information *you give the bot* (eg. system/member profiles, switch history, linked accounts)
* Metadata about proxied messages (sender account ID, message IDs, sender system and member)
* Anonymous aggregate usage metrics (eg. amount of gateway events, message proxies, executed commands per second)
* All of this is visible on [the public stats page](https://stats.pluralkit.me/)
* Nightly database backups of the above information
* High-level logs of actions taken on the bot (systems created, switches logged, etc)
* In practice, this is stored for 30 days, but this may change in the future.
This is the data PluralKit does **not** collect:
* Anything not listed above, including...
* Proxied message *contents*
* Metadata about deleted messages, members, switches, or systems
* Information added *and deleted* between nightly backups
* Any information about messages that *aren't* proxied through PluralKit.
## Managing your information
System and member information (names, member lists, descriptions, etc) is **public by default**, and can be looked up by anyone given a system/member ID or an account ID.
This can be changed using [the available privacy settings](./guide/privacy.md).
### Exporting information
You can **export your system information** using the `pk;export` command. This does not include message metadata, as the file would be huge. If there's demand for a command to export that, [let me know](https://github.com/xSke/PlualKit/issues).
### Deleting information
You can **delete your information** by deleting your system (with the `pk;system delete`) command. This will delete:
- Information about your system
- Information about all system members
- Information about all switchees
- Information about all messages
This will *not* delete information from the database backups; [contact me](./support-server.md) if you want those wiped (or for that matter, need a data restore).

View file

@ -0,0 +1,5 @@
# Support server
We have an official support server for questions, feedback, suggestions, bug reports, and anything else related to the bot. The invite link is below:
[**https://discord.gg/PczBt78**](https://discord.gg/PczBt78)