feat: add plugin to customize css for individual websites...
and how to enable it. Also tweak README.mds
This commit is contained in:
		
							parent
							
								
									be043958f0
								
							
						
					
					
						commit
						353d0ffad7
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,7 +6,7 @@ To enable it:
 | 
			
		|||
 | 
			
		||||
## In build.sh
 | 
			
		||||
 | 
			
		||||
Uncomment this line:
 | 
			
		||||
In `build.sh`, uncomment this line:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
REQS= #./plugins/*/*.c
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										34
									
								
								plugins/style/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								plugins/style/README.md
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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.
 | 
			
		||||
							
								
								
									
										8
									
								
								plugins/style/recompute_STYLE_N.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								plugins/style/recompute_STYLE_N.sh
									
									
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -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"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								plugins/style/style.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								plugins/style/style.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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);
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
							
								
								
									
										8
									
								
								plugins/style/style.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								plugins/style/style.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
#ifndef STYLE
 | 
			
		||||
#define STYLE
 | 
			
		||||
 | 
			
		||||
#define STYLE_N 794 + 1
 | 
			
		||||
 | 
			
		||||
void read_style_js(char* string);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										26
									
								
								plugins/style/style.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								plugins/style/style.js
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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"
 | 
			
		||||
							
								
								
									
										10
									
								
								rose.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								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:
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user