feat: use flags rather than uncommenting code
- Significantly simpler - Easier for me to keep up with upstream - Alternatives: - Comments as before - git patches, as in the suckless community: eventually leads to confusion about conflicting patches. - some other option
This commit is contained in:
		
							parent
							
								
									cbaa97a766
								
							
						
					
					
						commit
						b48c504871
					
				| 
						 | 
				
			
			@ -9,9 +9,6 @@
 | 
			
		|||
  - hackable without any knowledge
 | 
			
		||||
  - builtin rose-mklink script for in-shell static links
 | 
			
		||||
 | 
			
		||||
### 👐 Contribute
 | 
			
		||||
See [contributing.md](https://github.com/mini-rose/rose/.github/contributing.md).
 | 
			
		||||
 | 
			
		||||
### 📜 License
 | 
			
		||||
Rose is released under own license, which grants the following permissions:
 | 
			
		||||
-   Commercial use
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,7 +82,7 @@ static struct {
 | 
			
		|||
    { CTRL,	   KEY(n),      finder_next       },
 | 
			
		||||
    { CTRL | SFT,  KEY(N),      finder_prev	  },
 | 
			
		||||
    { CTRL,        KEY(t),      newtab            },
 | 
			
		||||
    //     { CTRL,        KEY(p),      prettify            },
 | 
			
		||||
    { CTRL,        KEY(p),      prettify            },
 | 
			
		||||
    { 0x0,         KEY(Escape), hidebar           }
 | 
			
		||||
};
 | 
			
		||||
/* For controls more akin to normal browsers, use:
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +102,9 @@ static struct {
 | 
			
		|||
    { CTRL,        KEY(l),          show_searchbar     },
 | 
			
		||||
    { CTRL,        KEY(f),          show_finder        },
 | 
			
		||||
    { CTRL,        KEY(n),          finder_next        },
 | 
			
		||||
    { CTRL | SFT,  KEY(N),          finder_prev        }
 | 
			
		||||
    { CTRL | SFT,  KEY(N),          finder_prev        },
 | 
			
		||||
    { CTRL,        KEY(p),          prettify            },
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
*/
 | 
			
		||||
/* Reference for the key shorthand:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,55 +1,3 @@
 | 
			
		|||
## About
 | 
			
		||||
 | 
			
		||||
This code automatically redirects webpage to their open-source frontends
 | 
			
		||||
 | 
			
		||||
To enable it:
 | 
			
		||||
 | 
			
		||||
## In build.sh
 | 
			
		||||
 | 
			
		||||
In `build.sh`, uncomment this line:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
REQS= #./plugins/*/*.c
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
or alternatively, write the full paths of `libre_redirect.c` and `str_replace_start.c`
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### In rose.c
 | 
			
		||||
 | 
			
		||||
Uncomment these lines:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
// #include "plugins/libre_redirect/libre_redirect.h"
 | 
			
		||||
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
void redirect_if_annoying(WebKitWebView *view, const char *uri){
 | 
			
		||||
        int l = LIBRE_N + strlen(uri) + 1;
 | 
			
		||||
        char uri_filtered[l];
 | 
			
		||||
        str_init(uri_filtered, l);
 | 
			
		||||
 | 
			
		||||
        int check = libre_redirect(uri, uri_filtered);
 | 
			
		||||
 | 
			
		||||
        if (check == 2){
 | 
			
		||||
                webkit_web_view_load_uri(view, uri_filtered);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
                case WEBKIT_LOAD_STARTED:
 | 
			
		||||
                                // redirect_if_annoying(self, webkit_web_view_get_uri(self));
 | 
			
		||||
                                break;
 | 
			
		||||
                case WEBKIT_LOAD_REDIRECTED:
 | 
			
		||||
                                // redirect_if_annoying(self, webkit_web_view_get_uri(self));
 | 
			
		||||
                                break;
 | 
			
		||||
                case WEBKIT_LOAD_COMMITTED:
 | 
			
		||||
                                // redirect_if_annoying(self, webkit_web_view_get_uri(self));
 | 
			
		||||
                                break;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
This code automatically redirects webpage to their open-source frontends. It is based on <https://libredirect.codeberg.page/>
 | 
			
		||||
| 
						 | 
				
			
			@ -1,68 +1,2 @@
 | 
			
		|||
## Readability
 | 
			
		||||
This code reimplements firefox readability mode. Code taken from <https://raw.githubusercontent.com/ushnisha/readability-reader-webextensions/master/content_scripts/tranquilize.js>
 | 
			
		||||
 | 
			
		||||
Taken from <https://raw.githubusercontent.com/ushnisha/readability-reader-webextensions/master/content_scripts/tranquilize.js>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## To enable it
 | 
			
		||||
 | 
			
		||||
In `build.sh`, uncomment this line:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
REQS= #./plugins/*/*.c
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In `rose.c` uncomment:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
// #include "plugins/readability/readability.h"
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  	case prettify:
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
      char* readability_js = malloc(READABILITY_N+1);
 | 
			
		||||
      read_readability_js(readability_js);
 | 
			
		||||
      webkit_web_view_run_javascript(notebook_get_webview(notebook), 
 | 
			
		||||
                  readability_js, 
 | 
			
		||||
                  NULL, NULL, NULL);
 | 
			
		||||
      free(readability_js);
 | 
			
		||||
                  
 | 
			
		||||
      break;
 | 
			
		||||
	  }
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
In config.h, uncomment:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
	goback,
 | 
			
		||||
	goforward,
 | 
			
		||||
	refresh,
 | 
			
		||||
	refresh_force,
 | 
			
		||||
	back_to_home,
 | 
			
		||||
	toggle_fullscreen,
 | 
			
		||||
	zoomin,
 | 
			
		||||
	zoomout,
 | 
			
		||||
	zoom_reset,
 | 
			
		||||
	next_tab,
 | 
			
		||||
	prev_tab,
 | 
			
		||||
	close_tab,
 | 
			
		||||
	show_searchbar,
 | 
			
		||||
	show_finder,
 | 
			
		||||
	finder_next,
 | 
			
		||||
	finder_prev,
 | 
			
		||||
	newtab,
 | 
			
		||||
  /*prettify,*/
 | 
			
		||||
	hidebar
 | 
			
		||||
} func;
 | 
			
		||||
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
    //     { CTRL,        KEY(p),      prettify            },
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,33 +2,4 @@
 | 
			
		|||
 | 
			
		||||
- 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.
 | 
			
		||||
- You will also want to customize the `style.c` file.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										61
									
								
								rose.c
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								rose.c
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -12,10 +12,22 @@
 | 
			
		|||
#include <webkit2/webkit2.h>
 | 
			
		||||
 | 
			
		||||
#include "config.h"
 | 
			
		||||
 | 
			
		||||
// #include "plugins/libre_redirect/libre_redirect.h"
 | 
			
		||||
// #include "plugins/readability/readability.h"
 | 
			
		||||
// #include "plugins/style/style.h"
 | 
			
		||||
 | 
			
		||||
int LIBRE_REDIRECT_ENABLED = false;
 | 
			
		||||
int READABILITY_ENABLED = false;
 | 
			
		||||
int CUSTOM_STYLE_ENABLED = false;
 | 
			
		||||
 | 
			
		||||
// to enable plugins, 
 | 
			
		||||
// 1. uncomment their #include statement
 | 
			
		||||
// 2. set their variable to true;
 | 
			
		||||
// 3. in build.sh, uncomment:
 | 
			
		||||
//    REQS= #./plugins/*/*.c
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define CACHE                               			\
 | 
			
		||||
	"base-cache-directory", CACHE_DIR,                   	\
 | 
			
		||||
	"base-data-directory", CACHE_DIR,                       \
 | 
			
		||||
| 
						 | 
				
			
			@ -80,7 +92,6 @@ void load_uri(WebKitWebView *view, const char *uri)
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
void redirect_if_annoying(WebKitWebView *view, const char *uri){
 | 
			
		||||
        int l = LIBRE_N + strlen(uri) + 1;
 | 
			
		||||
        char uri_filtered[l];
 | 
			
		||||
| 
						 | 
				
			
			@ -93,29 +104,33 @@ void redirect_if_annoying(WebKitWebView *view, const char *uri){
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
void load_changed(WebKitWebView *self, WebKitLoadEvent load_event, GtkNotebook *notebook)
 | 
			
		||||
{
 | 
			
		||||
        switch (load_event) {
 | 
			
		||||
        /* see <https://webkitgtk.org/reference/webkit2gtk/2.5.1/WebKitWebView.html> */
 | 
			
		||||
                case WEBKIT_LOAD_STARTED:
 | 
			
		||||
                                // redirect_if_annoying(self, webkit_web_view_get_uri(self));
 | 
			
		||||
                                if(LIBRE_REDIRECT_ENABLED){
 | 
			
		||||
                                    redirect_if_annoying(self, webkit_web_view_get_uri(self));
 | 
			
		||||
                                }
 | 
			
		||||
                                break;
 | 
			
		||||
                case WEBKIT_LOAD_REDIRECTED:
 | 
			
		||||
                                // redirect_if_annoying(self, webkit_web_view_get_uri(self));
 | 
			
		||||
                                if(LIBRE_REDIRECT_ENABLED){
 | 
			
		||||
                                    redirect_if_annoying(self, webkit_web_view_get_uri(self));
 | 
			
		||||
                                }
 | 
			
		||||
                                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);
 | 
			
		||||
                                */
 | 
			
		||||
                                if(LIBRE_REDIRECT_ENABLED){
 | 
			
		||||
                                    redirect_if_annoying(self, webkit_web_view_get_uri(self));
 | 
			
		||||
                                }
 | 
			
		||||
                                if(CUSTOM_STYLE_ENABLED){
 | 
			
		||||
                                    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:
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -320,20 +335,20 @@ int handle_key(func id, GtkNotebook *notebook)
 | 
			
		|||
      entry_mode = _HIDDEN;
 | 
			
		||||
      show_bar(notebook);
 | 
			
		||||
    break;
 | 
			
		||||
    /*
 | 
			
		||||
 | 
			
		||||
  	case prettify:
 | 
			
		||||
    {
 | 
			
		||||
      if(READABILITY_ENABLED){
 | 
			
		||||
          char* readability_js = malloc(READABILITY_N+1);
 | 
			
		||||
          read_readability_js(readability_js);
 | 
			
		||||
          webkit_web_view_run_javascript(notebook_get_webview(notebook), 
 | 
			
		||||
                      readability_js, 
 | 
			
		||||
                      NULL, NULL, NULL);
 | 
			
		||||
          free(readability_js);
 | 
			
		||||
 | 
			
		||||
      char* readability_js = malloc(READABILITY_N+1);
 | 
			
		||||
      read_readability_js(readability_js);
 | 
			
		||||
      webkit_web_view_run_javascript(notebook_get_webview(notebook), 
 | 
			
		||||
                  readability_js, 
 | 
			
		||||
                  NULL, NULL, NULL);
 | 
			
		||||
      free(readability_js);
 | 
			
		||||
                  
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
	  }
 | 
			
		||||
    */
 | 
			
		||||
	}
 | 
			
		||||
  
 | 
			
		||||
	return 1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user