From 353d0ffad7c1810d2c5a87d73f6649bcbc55aad4 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Sun, 5 Feb 2023 03:21:30 +0100 Subject: feat: add plugin to customize css for individual websites... and how to enable it. Also tweak README.mds --- plugins/style/README.md | 34 ++++++++++++++++++++++++++++++++++ plugins/style/recompute_STYLE_N.sh | 8 ++++++++ plugins/style/style.c | 29 +++++++++++++++++++++++++++++ plugins/style/style.h | 8 ++++++++ plugins/style/style.js | 26 ++++++++++++++++++++++++++ 5 files changed, 105 insertions(+) create mode 100644 plugins/style/README.md create mode 100755 plugins/style/recompute_STYLE_N.sh create mode 100644 plugins/style/style.c create mode 100644 plugins/style/style.h create mode 100644 plugins/style/style.js (limited to 'plugins/style') 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: . +- 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 +#include +#include +#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: + +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" -- cgit v1.2.3