VB-P Shortcuts
Beschreibung:
Ermöglicht Tastenkombinationen bei allen Textareas auf VB-Paradise.de, um den Schreibfluss zu vereinfachen und effizienter posten zu können. Es handelt sich dabei um eine Chrome-Extension/ein Greasemonkey Script.
Fork!
Das Projekt ist Open Source. Der komplette Quelltext ist auf Codeplex verfügbar. Da ich Git verwende, seid Ihr herzlich zum Forken eingeladen! Das Publish-Skript zum automatischen Packen der Browserplugins funktioniert bestimmt nur bei mir, von daher müsst Ihr Euch wohl selber eins basteln oder es manuell machen.
Theoretisch würde dieses Skript nicht nur auf VB-P funktionieren, sondern bei allen Foren, die Textareas verwenden. Die Umgebungsvariablen (siehe unten) sind aber auf ein Standard-WBB ausgelegt. Außerdem sorgen die includes (im
Screenshot:
Die Standard-Shortcuts:
Da das Projekt objektorientiert ist, könnt Ihr Euch auch eigene Shortcuts machen. Das ist natürlich nicht auf BBCodes begrenzt. Es ist theoretisch alles möglich, was man mit JavaScript machen kann.
Die default Config sieht momentan so aus (ja, sie ist eine Klasse):
Default Config
Skript/Config ändern und die API
Um die Config zu verändern, müsst Ihr entweder das Skript direkt editieren oder den Quelltext herunterladen, ändern und compilen (bevorzuge ich). Zum Kompilieren benötigt Ihr den TypeScript Compiler. Den kann man sich hier oder per Node Package Manager herunterladen.
Innerhalb von Strings können Umgebungsvariablen wie
Es gibt eine API, die hilft, mit dem Dokument zu interagieren. Diese befindet sich im API-Module (und somit im Unterordner API). Da könnt Ihr zum Beispiel die Hotkey-Klasse einsehen, damit ihr wisst, welche Parameter Ihr übergeben müsst.
Dort gibt es auch einen
Um Keycodes zu erhalten, könnt Ihr diese Seite verwenden (immer die which-Werte des keyUp-Events verwenden!).
Verwendete Programmiersprache und IDE:
TypeScript 0.8.3 in Visual Studio 2012 mit Git Source Control Provider und der Git Bash
Systemanforderungen:
Chrome oder Firefox mit Greasemonkey-Addon
Installation:
Download:
Extensions:
vb-paradise.de/index.php/Attac…e51f25b2259042ca691004c07 (3,05 kB)
vb-paradise.de/index.php/Attac…e51f25b2259042ca691004c07 (2,27 kB)
Code:
Sourcecode: vbpshortcuts.codeplex.com/SourceControl/BrowseLatest (meist aktueller als die Downloads hier im Thread)
Git Clone-Url: git01.codeplex.com/vbpshortcuts (mit Git aufrufen)
Lizenz/Weitergabe:
OpenSource, GNU General Public License version 2 (GPLv2)
Beschreibung:
Ermöglicht Tastenkombinationen bei allen Textareas auf VB-Paradise.de, um den Schreibfluss zu vereinfachen und effizienter posten zu können. Es handelt sich dabei um eine Chrome-Extension/ein Greasemonkey Script.
Fork!
Das Projekt ist Open Source. Der komplette Quelltext ist auf Codeplex verfügbar. Da ich Git verwende, seid Ihr herzlich zum Forken eingeladen! Das Publish-Skript zum automatischen Packen der Browserplugins funktioniert bestimmt nur bei mir, von daher müsst Ihr Euch wohl selber eins basteln oder es manuell machen.
Theoretisch würde dieses Skript nicht nur auf VB-P funktionieren, sondern bei allen Foren, die Textareas verwenden. Die Umgebungsvariablen (siehe unten) sind aber auf ein Standard-WBB ausgelegt. Außerdem sorgen die includes (im
publish.ps1
-Skript definiert), dass das Skript nur auf VB-P inkludiert wird. Das könnt Ihr auch ändern (siehe unten Skript/Config ändern und die API).Screenshot:
Die Standard-Shortcuts:
Strg+Q
->Expander
Strg+<
->Inline-Code
Strg+B
-> FettschriftStrg+I
-> ItalicTab
-> Zeile einrücken
Da das Projekt objektorientiert ist, könnt Ihr Euch auch eigene Shortcuts machen. Das ist natürlich nicht auf BBCodes begrenzt. Es ist theoretisch alles möglich, was man mit JavaScript machen kann.
Die default Config sieht momentan so aus (ja, sie ist eine Klasse):
C-Quellcode
- "use strict";
- class Config
- {
- public static apply()
- {
- // be aware!
- // use the key codes of the KeyboardEvent.which-field!
- // the key codes are different for Chrome and Firefox. Don't ask why. I don't know either.
- // use like this:
- // new CustomHotkey.WrapSelection(Ctrl, Shift, Keycode, "left side", "right side")
- // use the tab key for indentation in textarea-elements
- Config.tabToIndet = true;
- if (API.Helpers.isChrome())
- {
- // these key codes only work in Chrome.
- Config.hotkeys.push(new CustomHotkey.WrapSelection(true, false, 226, "[tt]", "[/tt]"));
- }
- else if (API.Helpers.isFirefox())
- {
- // ...and these only work in Firefox.
- Config.hotkeys.push(new CustomHotkey.WrapSelection(true, false, 60, "[tt]", "[/tt]"));
- }
- else
- console.log("Warning: No browser-specific hotkeys set!");
- Config.hotkeys.push(new CustomHotkey.WrapSelection(true, false, 81, "[spoiler]", "[/spoiler]"));
- Config.hotkeys.push(new CustomHotkey.WrapSelection(true, false, 66, "[b]", "[/b]"));
- Config.hotkeys.push(new CustomHotkey.WrapSelection(true, false, 73, "[i]", "[/i]"));
- if(Config.tabToIndet)
- Config.earlyHotkeys.push(new CustomHotkey.InsertChar(false, false, 9, '\t', true)); // add indentation hotkey (at keydown-time)
- // new feature... text replacements:
- API.WrappingTextReplacement.wrappingChar = ":"; // set the wrapping char to ':'
- Config.textReplacements.push(new API.MultiKeywordTextReplacement(["zum Beispiel", "zum Beispiel", "zum Beispiel","zum Beispiel"], "zum Beispiel"));
- Config.textReplacements.push(new API.WrappingTextReplacement("vg", "viele Grüße,%newline%%username%"));
- Config.textReplacements.push(new API.WrappingTextReplacement("mfg", "Mit freundlichen Grüßen,%newline%%username%"));
- }
- public static hotkeys: API.Hotkey[] = [];
- public static earlyHotkeys: API.Hotkey[] = [];
- public static textReplacements: API.ITextReplacement[] = [];
- public static blockMultipleHotKeysAtOnce: bool = true;
- public static tabToIndet: bool = true;
- }
Um die Config zu verändern, müsst Ihr entweder das Skript direkt editieren oder den Quelltext herunterladen, ändern und compilen (bevorzuge ich). Zum Kompilieren benötigt Ihr den TypeScript Compiler. Den kann man sich hier oder per Node Package Manager herunterladen.
Innerhalb von Strings können Umgebungsvariablen wie
%username%
(das ist momentan noch die einzige) verwendet werden. Da sind keine geplant, Ihr dürft aber gerne selber ran oder Vorschläge machen.Es gibt eine API, die hilft, mit dem Dokument zu interagieren. Diese befindet sich im API-Module (und somit im Unterordner API). Da könnt Ihr zum Beispiel die Hotkey-Klasse einsehen, damit ihr wisst, welche Parameter Ihr übergeben müsst.
Dort gibt es auch einen
CallbackHotkey
, den ich in der Standardkonfiguration nirgends benutze. Dieser callt einfach nur einen Callback, wenn er getriggert wird. Habe ich oft um Testen verwendet.Um Keycodes zu erhalten, könnt Ihr diese Seite verwenden (immer die which-Werte des keyUp-Events verwenden!).
Verwendete Programmiersprache und IDE:
TypeScript 0.8.3 in Visual Studio 2012 mit Git Source Control Provider und der Git Bash
Systemanforderungen:
Chrome oder Firefox mit Greasemonkey-Addon
Installation:
- Chrome:
- Entpacken
- Entwicklermodus auf der Seite der Erweiterungen einschalten.
-*.crx
-Datei in die gleiche Seite mit der Maus droppen. Fertig. - Firefox:
- Entpacken
- Wie ein normales Greasemonkey Skript installieren und glücklich sein
Download:
Extensions:
vb-paradise.de/index.php/Attac…e51f25b2259042ca691004c07 (3,05 kB)
vb-paradise.de/index.php/Attac…e51f25b2259042ca691004c07 (2,27 kB)
Code:
Sourcecode: vbpshortcuts.codeplex.com/SourceControl/BrowseLatest (meist aktueller als die Downloads hier im Thread)
Git Clone-Url: git01.codeplex.com/vbpshortcuts (mit Git aufrufen)
Lizenz/Weitergabe:
OpenSource, GNU General Public License version 2 (GPLv2)
Von meinem iPhone gesendet
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „nikeee13“ ()