From 0f9a612c5548a5a123b65597dea839085aee0d62 Mon Sep 17 00:00:00 2001 From: Mm2PL Date: Sat, 4 Jul 2020 13:40:13 +0200 Subject: [PATCH] Move over wiki documentation to repo in Markdown format (#1760) * Change in-client regex help link to point to the github repository --- docs/Commands.md | 20 +++++++++++ docs/README.md | 20 +++++++++++ docs/Regex.md | 45 ++++++++++++++++++++++++ src/widgets/helper/EditableModelView.cpp | 7 ++-- 4 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 docs/Commands.md create mode 100644 docs/Regex.md diff --git a/docs/Commands.md b/docs/Commands.md new file mode 100644 index 000000000..ceaebb831 --- /dev/null +++ b/docs/Commands.md @@ -0,0 +1,20 @@ +Commands are used as shortcuts for long messages. If a message starts with the "trigger" then the message will be replaced with the Command. + +#### Example +Add Command `Hello chat :)` with the trigger `/hello`. Now typing `/hello` in chat will send `Hello chat :)` instead of `/hello`. + +## Advanced + +- The trigger has to be matched at the **start** of the message but there is a setting to also match them at the **end**. +- Triggers don't need to start with `/` + +#### Using placeholders +- `{1}`, `{2}`, `{3}` and so on can be used to insert the 1st, 2nd, 3rd, ... word after the trigger. + + Example: Add Command `/timeout {1} 1` with trigger `/warn`. Now typing `/warn user123` will send `/timeout user123 1` + +- Similarly `{1+}` and so on can be used to insert all words starting with the 1st, ... word. + + Example: Add Command `Have a {1+} day!` with trigger `/day`. Now typing `/day very super nice` will send `Have a very super nice day!` + +- You can use `{{1}` if you want to send `{1}` literally. \ No newline at end of file diff --git a/docs/README.md b/docs/README.md index 57a48fe0f..5ae4760f8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1 +1,21 @@ # Documents + +Welcome to the Chatterino2 documentation! + +Table of contents: + - [Environment variables](ENV.md) + - [Commands](Commands.md) + - [Regex](Regex.md) + - [Notes](notes/README.md) + - [TCaccountmanager](notes/TCaccountmanager.md) + - [TCappearanceSettings.md](notes/TCappearanceSettings.md) + - [TCchannelNavigation.md](notes/TCchannelNavigation.md) + - [TCchatterinoFeatures.md](notes/TCchatterinoFeatures.md) + - [TCchatting.md](notes/TCchatting.md) + - [TCchatWindowNavigation.md](notes/TCchatWindowNavigation.md) + - [TCemotes.md](notes/TCemotes.md) + - [TCgeneral.md](notes/TCgeneral.md) + - [TChighlighting.md](notes/TChighlighting.md) + - [TCtabsAndSplits.md](notes/TCtabsAndSplits.md) + - [TCusernameTabbing.md](notes/TCusernameTabbing.md) + diff --git a/docs/Regex.md b/docs/Regex.md new file mode 100644 index 000000000..9ef784a5c --- /dev/null +++ b/docs/Regex.md @@ -0,0 +1,45 @@ +_Regular expressions_ (or short _regexes_) are often used to check if a text matches a certain pattern. For example the regex `ab?c` would match `abc` or `ac`, but not `abbc` or `123`. In Chatterino, you can use them to highlight messages (and more) based on complex conditions. + +Basic patterns: + +|Pattern |Matches| +|-|-| +|`x?` |nothing or `x`| +|`x*` |`x`, repeated any number of times| +|`x+` |`x`, repeated any number of times but at least 1| +|`^` |The start of the text| +|`$` |The end of the text| +|`x\|y` |`x` or `y`| + +You can group multiple statements with `()`: + +|Pattern |Matches| +|-|-| +|`asd?` |`asd` or `as`| +|`(asd)?` |`asd` or nothing| +|`\(asd\)` |`(asd)`, literally| + +You can also group multiple characters with `[]`: + +|Pattern |Matches| +|-|-| +|`[xyz]` |`x`, `y` or `z`| +|`[1-5a-f]` |`1`,`2`,`3`,`4`,`5`,`a`,`b`,`c`,`d`,`e`,`f`| +|`[^abc]` |Anything, **except** `a`, `b` and `c`| +|`[\-]` |`-`, literally (escaped with `\`)| +|`\[xyz\]` |`[xyz]`, literally| + +Special patterns: + +|Pattern |Matches| +|-|-| +|`\d` |Digit characters (0-9)| +|`\D` |Non-digit characters| +|`\w` |Word characters (a-zA-Z0-9_)| +|`\W` |Non-word characters| +|`\s` |Spaces, tabs, etc.| +|`\S` |Not spaces, tabs, etc.| +|`\b` |Word boundaries (between \w and \W)| +|`\B` |Non-word boundaries| + +You can try out your regex pattern on websites like [https://regex101.com/](regex101.com). \ No newline at end of file diff --git a/src/widgets/helper/EditableModelView.cpp b/src/widgets/helper/EditableModelView.cpp index 62f1e4dcc..0a2d0dbcb 100644 --- a/src/widgets/helper/EditableModelView.cpp +++ b/src/widgets/helper/EditableModelView.cpp @@ -95,9 +95,10 @@ void EditableModelView::addCustomButton(QWidget *widget) void EditableModelView::addRegexHelpLink() { - auto regexHelpLabel = - new QLabel("regex info"); + auto regexHelpLabel = new QLabel( + "" + "regex info"); regexHelpLabel->setOpenExternalLinks(true); this->addCustomButton(regexHelpLabel); }