summaryrefslogtreecommitdiff
path: root/source/features/html-preview-link.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'source/features/html-preview-link.tsx')
-rw-r--r--source/features/html-preview-link.tsx34
1 files changed, 34 insertions, 0 deletions
diff --git a/source/features/html-preview-link.tsx b/source/features/html-preview-link.tsx
new file mode 100644
index 00000000..968cefb6
--- /dev/null
+++ b/source/features/html-preview-link.tsx
@@ -0,0 +1,34 @@
+import React from 'dom-chef';
+import select from 'select-dom';
+import features from '../libs/features';
+import {isSingleHTMLFile} from '../libs/utils';
+
+function init(): void {
+ const rawButton = select<HTMLAnchorElement>('#raw-url')!;
+ const link = rawButton.pathname.split('/');
+ // Remove /raw/
+ link.splice(3, 1);
+ rawButton
+ .parentElement! // `BtnGroup`
+ .prepend(
+ <a
+ className="btn btn-sm BtnGroup-item"
+ href={`https://cdn.statically.io/gh${link.join('/')}`}>
+ Preview
+ </a>
+ );
+}
+
+features.add({
+ id: __featureName__,
+ description: 'Adds a link to preview HTML files.',
+ screenshot: 'https://user-images.githubusercontent.com/44045911/67634792-48995980-f8fb-11e9-8b6a-7b57d5b12a2f.png',
+ include: [
+ isSingleHTMLFile
+ ],
+ exclude: [
+ features.isEnterprise
+ ],
+ load: features.onAjaxedPages,
+ init
+});