aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNunoSempere <nuno.sempere@protonmail.com>2023-02-05 03:21:30 +0100
committerNunoSempere <nuno.sempere@protonmail.com>2023-02-05 03:21:30 +0100
commit353d0ffad7c1810d2c5a87d73f6649bcbc55aad4 (patch)
tree5821596e151ae561c653a3ee5306651fbbf2c5d0
parentbe043958f056264788cb92445890337b2674510c (diff)
feat: add plugin to customize css for individual websites...
and how to enable it. Also tweak README.mds
-rw-r--r--README.md7
-rw-r--r--plugins/libre_redirect/README.md4
-rw-r--r--plugins/readability/README.md10
-rw-r--r--plugins/style/README.md34
-rwxr-xr-xplugins/style/recompute_STYLE_N.sh8
-rw-r--r--plugins/style/style.c29
-rw-r--r--plugins/style/style.h8
-rw-r--r--plugins/style/style.js26
-rw-r--r--rose.c10
9 files changed, 125 insertions, 11 deletions
diff --git a/README.md b/README.md
index 241effa..4359611 100644
--- a/README.md
+++ b/README.md
@@ -18,10 +18,3 @@ Rose is released under own license, which grants the following permissions:
- Distribution
- Modification
- Private use
-
-### To do
-
-- [x] Add open in new tab functionality
-- [x] Test open in new tab functionality
-- [x] Add styles tab
-- [ ] Isolate plugins so that they aren't active by default
diff --git a/plugins/libre_redirect/README.md b/plugins/libre_redirect/README.md
index 01add9c..7b32370 100644
--- a/plugins/libre_redirect/README.md
+++ b/plugins/libre_redirect/README.md
@@ -6,7 +6,7 @@ To enable it:
## In build.sh
-Uncomment this line:
+In `build.sh`, uncomment this line:
```
REQS= #./plugins/*/*.c
@@ -52,4 +52,4 @@ void redirect_if_annoying(WebKitWebView *view, const char *uri){
break;
-``` \ No newline at end of file
+```
diff --git a/plugins/readability/README.md b/plugins/readability/README.md
index dc9b217..d6c0fe2 100644
--- a/plugins/readability/README.md
+++ b/plugins/readability/README.md
@@ -5,7 +5,13 @@ Taken from <https://raw.githubusercontent.com/ushnisha/readability-reader-webext
## To enable it
-In rose.c uncomment:
+In `build.sh`, uncomment this line:
+
+```
+REQS= #./plugins/*/*.c
+```
+
+In `rose.c` uncomment:
```
@@ -59,4 +65,4 @@ typedef enum {
// { CTRL, KEY(p), prettify },
-``` \ No newline at end of file
+```
diff --git a/plugins/style/README.md b/plugins/style/README.md
new file mode 100644
index 0000000..0d11c54
--- /dev/null
+++ b/plugins/style/README.md
@@ -0,0 +1,34 @@
+## Customize css style for individual websites.
+
+- Replicates: <https://addons.mozilla.org/en-GB/firefox/addon/styl-us/>.
+- The template is similar to the readability folder.
+
+## To enable it
+
+In `build.sh`, uncomment this line:
+
+```
+REQS= #./plugins/*/*.c
+```
+
+In `rose.c`, uncomment:
+
+
+```
+// #include "plugins/style/style.h"
+
+...
+
+ // Add custom style
+ /*
+ char* style_js = malloc(STYLE_N+1);
+ read_style_js(style_js);
+ webkit_web_view_run_javascript(notebook_get_webview(notebook),
+ style_js,
+ NULL, NULL, NULL);
+ free(style_js);
+ */
+
+```
+
+You will also want to customize the `style.c` file.
diff --git a/plugins/style/recompute_STYLE_N.sh b/plugins/style/recompute_STYLE_N.sh
new file mode 100755
index 0000000..906aad8
--- /dev/null
+++ b/plugins/style/recompute_STYLE_N.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+function sedr(){
+ find ./ -type f -exec sed -i -e "$1" {} \;
+} ## e.g., sedr "s/target/replacement/g"
+
+STYLE_N=$(wc -c style.js | cut -d " " -f 1)
+sedr "s/^#define STYLE_N .*/#define STYLE_N $STYLE_N + 1/g"
+
diff --git a/plugins/style/style.c b/plugins/style/style.c
new file mode 100644
index 0000000..dc2da8a
--- /dev/null
+++ b/plugins/style/style.c
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#define STYLE_N 794 + 1
+
+void read_style_js(char* string){
+ FILE *fp=fopen("/home/loki/Documents/core/software/fresh/C/rose-browser/rose-bud-personal/plugins/style/style.js", "r");
+ if (!fp) { // fp is NULL, fopen failed
+ fprintf(stderr, "Failed to open file\n");
+ string=NULL;
+ return;
+ }
+ int i=0;
+ int c;
+ while ((c = fgetc(fp)) != EOF){
+ string[i++] = c;
+ }
+ string[i]='\0';
+ fclose(fp);
+}
+
+/*
+int main(){
+ char* readability_js = malloc(STYLE_N+1);
+ read_readability_js(readability_js);
+ printf("%s", readability_js);
+ free(readability_js);
+}
+*/
diff --git a/plugins/style/style.h b/plugins/style/style.h
new file mode 100644
index 0000000..20a684b
--- /dev/null
+++ b/plugins/style/style.h
@@ -0,0 +1,8 @@
+#ifndef STYLE
+#define STYLE
+
+#define STYLE_N 794 + 1
+
+void read_style_js(char* string);
+
+#endif
diff --git a/plugins/style/style.js b/plugins/style/style.js
new file mode 100644
index 0000000..01524d0
--- /dev/null
+++ b/plugins/style/style.js
@@ -0,0 +1,26 @@
+// Replicates the Stylus app: <https://addons.mozilla.org/en-GB/firefox/addon/styl-us/>
+
+if (document.domain == "forum.effectivealtruism.org"){
+ var styles = `
+ .Layout-main {
+ margin-left: 100px;
+ }
+ .SingleColumnSection-root {
+ width: 1000px !important;
+ max-width: 1400px !important;
+ padding-left: 100px !important;
+ }
+ .NavigationStandalone-sidebar {
+ display: none;
+ }
+ .intercom-lightweight-app{
+ display: none;
+ }
+ `
+ var styleSheet = document.createElement('style')
+ styleSheet.innerText = styles
+ document.head.appendChild(styleSheet)
+ console.log('Style changed')
+}
+
+document.body.style.visibility = "visible"
diff --git a/rose.c b/rose.c
index 4f551ae..fd9f67f 100644
--- a/rose.c
+++ b/rose.c
@@ -14,6 +14,7 @@
#include "config.h"
// #include "plugins/libre_redirect/libre_redirect.h"
// #include "plugins/readability/readability.h"
+// #include "plugins/style/style.h"
#define CACHE \
"base-cache-directory", CACHE_DIR, \
@@ -106,6 +107,15 @@ void load_changed(WebKitWebView *self, WebKitLoadEvent load_event, GtkNotebook *
break;
case WEBKIT_LOAD_COMMITTED:
// redirect_if_annoying(self, webkit_web_view_get_uri(self));
+ // Add custom style
+ /*
+ char* style_js = malloc(STYLE_N+1);
+ read_style_js(style_js);
+ webkit_web_view_run_javascript(notebook_get_webview(notebook),
+ style_js,
+ NULL, NULL, NULL);
+ free(style_js);
+ */
break;
case WEBKIT_LOAD_FINISHED:
{