| 
				
			 | 
			
			
				@@ -43,62 +43,80 @@ 
			 | 
		
	
		
			
			| 
				43
			 | 
			
				43
			 | 
			
			
				 <h1>How to contribute<a class="headerlink" href="#how-to-contribute" title="Permalink to this headline">¶</a></h1> 
			 | 
		
	
		
			
			| 
				44
			 | 
			
				44
			 | 
			
			
				 <div class="section" id="prime-directives-privacy-hackability"> 
			 | 
		
	
		
			
			| 
				45
			 | 
			
				45
			 | 
			
			
				 <h2>Prime directives: Privacy, Hackability<a class="headerlink" href="#prime-directives-privacy-hackability" title="Permalink to this headline">¶</a></h2> 
			 | 
		
	
		
			
			| 
				46
			 | 
			
				
			 | 
			
			
				-<p>Searx has 2 prime directives, privacy-by-design and hackability. The 
			 | 
		
	
		
			
			| 
				47
			 | 
			
				
			 | 
			
			
				-hackability comes in at least 3 levels:</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				46
			 | 
			
			
				+<p>Searx has two prime directives, privacy-by-design and hackability. The 
			 | 
		
	
		
			
			| 
				
			 | 
			
				47
			 | 
			
			
				+hackability comes in three levels:</p> 
			 | 
		
	
		
			
			| 
				48
			 | 
			
				48
			 | 
			
			
				 <ul class="simple"> 
			 | 
		
	
		
			
			| 
				49
			 | 
			
				
			 | 
			
			
				-<li>support for search engines</li> 
			 | 
		
	
		
			
			| 
				50
			 | 
			
				
			 | 
			
			
				-<li>plugins for altering search behaviour</li> 
			 | 
		
	
		
			
			| 
				51
			 | 
			
				
			 | 
			
			
				-<li>hacking searx itself.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				49
			 | 
			
			
				+<li>support of search engines</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				50
			 | 
			
			
				+<li>plugins to alter search behaviour</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				51
			 | 
			
			
				+<li>hacking searx itself</li> 
			 | 
		
	
		
			
			| 
				52
			 | 
			
				52
			 | 
			
			
				 </ul> 
			 | 
		
	
		
			
			| 
				53
			 | 
			
				
			 | 
			
			
				-<p>Happy hacking. Observe the lack of “world domination” among the 
			 | 
		
	
		
			
			| 
				54
			 | 
			
				
			 | 
			
			
				-directives, searx has no intentions for wide mass-adoption, rounded 
			 | 
		
	
		
			
			| 
				55
			 | 
			
				
			 | 
			
			
				-corners, etc. The prime directive: “privacy” - deserves a seperate 
			 | 
		
	
		
			
			| 
				56
			 | 
			
				
			 | 
			
			
				-chapter, as it’s quite uncommon unfortunately, here it goes:</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				53
			 | 
			
			
				+<p>Note the lack of “world domination” among the directives. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				54
			 | 
			
			
				+Searx has no intention of wide mass-adoption, rounded 
			 | 
		
	
		
			
			| 
				
			 | 
			
				55
			 | 
			
			
				+corners, etc. The prime directive “privacy” deserves a separate 
			 | 
		
	
		
			
			| 
				
			 | 
			
				56
			 | 
			
			
				+chapter, as it’s quite uncommon unfortunately.</p> 
			 | 
		
	
		
			
			| 
				57
			 | 
			
				57
			 | 
			
			
				 <div class="section" id="privacy-by-design"> 
			 | 
		
	
		
			
			| 
				58
			 | 
			
				58
			 | 
			
			
				 <h3>Privacy-by-design<a class="headerlink" href="#privacy-by-design" title="Permalink to this headline">¶</a></h3> 
			 | 
		
	
		
			
			| 
				59
			 | 
			
				
			 | 
			
			
				-<p>Searx is a privacy-respecting, hackable meta-search engine. It was born 
			 | 
		
	
		
			
			| 
				60
			 | 
			
				
			 | 
			
			
				-out of the need for a privacy-respecing search facility that can be 
			 | 
		
	
		
			
			| 
				61
			 | 
			
				
			 | 
			
			
				-expanded easily to maximise both its search and it’s privacy protecting 
			 | 
		
	
		
			
			| 
				62
			 | 
			
				
			 | 
			
			
				-capabilities.</p> 
			 | 
		
	
		
			
			| 
				63
			 | 
			
				
			 | 
			
			
				-<p>Consequences of Privacy-by-design are that some widely used features 
			 | 
		
	
		
			
			| 
				64
			 | 
			
				
			 | 
			
			
				-work differently or not by default or at all. If some feature reduces 
			 | 
		
	
		
			
			| 
				65
			 | 
			
				
			 | 
			
			
				-the privacy perserving aspects of searx, it should by default be 
			 | 
		
	
		
			
			| 
				66
			 | 
			
				
			 | 
			
			
				-switched of, if implemented at all. There is enough search engines 
			 | 
		
	
		
			
			| 
				67
			 | 
			
				
			 | 
			
			
				-already out there providing such features. = Since privacy-preservation 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				
			 | 
			
			
				-is a prime goal, if some feature does reduce the protection of searx and 
			 | 
		
	
		
			
			| 
				69
			 | 
			
				
			 | 
			
			
				-is implemented, care should be taken to educate the user about the 
			 | 
		
	
		
			
			| 
				70
			 | 
			
				
			 | 
			
			
				-consequences of choosing to enable this. Further features which 
			 | 
		
	
		
			
			| 
				71
			 | 
			
				
			 | 
			
			
				-implement widely known features in a manner that protects privacy but 
			 | 
		
	
		
			
			| 
				72
			 | 
			
				
			 | 
			
			
				-thus deviate from the users expectations should also be explained to the 
			 | 
		
	
		
			
			| 
				73
			 | 
			
				
			 | 
			
			
				-user. Also if you think that something works weird with searx, maybe 
			 | 
		
	
		
			
			| 
				74
			 | 
			
				
			 | 
			
			
				-it’s because of the tool you use is designed in a way to interfere with 
			 | 
		
	
		
			
			| 
				75
			 | 
			
				
			 | 
			
			
				-privacy respect, submiting a bugreport to the vendor of the tool that 
			 | 
		
	
		
			
			| 
				76
			 | 
			
				
			 | 
			
			
				-misbehaves might be a good feedback for the vendor to reconsider his 
			 | 
		
	
		
			
			| 
				77
			 | 
			
				
			 | 
			
			
				-disrespect towards his customers (e.g. GET vs POST requests in various 
			 | 
		
	
		
			
			| 
				78
			 | 
			
				
			 | 
			
			
				-browsers).</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				59
			 | 
			
			
				+<p>Searx was born out of the need for a privacy-respecting search tool 
			 | 
		
	
		
			
			| 
				
			 | 
			
				60
			 | 
			
			
				+which can be extended easily to maximize both its search and its 
			 | 
		
	
		
			
			| 
				
			 | 
			
				61
			 | 
			
			
				+privacy protecting capabilities.</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				62
			 | 
			
			
				+<p>A few widely used features work differently or turned off by default or not implemented 
			 | 
		
	
		
			
			| 
				
			 | 
			
				63
			 | 
			
			
				+at all as a consequence of privacy-by-design.</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				64
			 | 
			
			
				+<p>If a feature reduces the privacy preserving aspects of searx, it 
			 | 
		
	
		
			
			| 
				
			 | 
			
				65
			 | 
			
			
				+should be switched off by default or should not implemented at all. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				66
			 | 
			
			
				+There are plenty of search engines already providing such features. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				67
			 | 
			
			
				+If a feature reduces the protection of searx, users must be 
			 | 
		
	
		
			
			| 
				
			 | 
			
				68
			 | 
			
			
				+informed about the effect of choosing to enable it. Features 
			 | 
		
	
		
			
			| 
				
			 | 
			
				69
			 | 
			
			
				+that protect privacy but differ from the expectations of the 
			 | 
		
	
		
			
			| 
				
			 | 
			
				70
			 | 
			
			
				+user should also be explained.</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				71
			 | 
			
			
				+<p>Also, if you think that something works weird with searx, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				72
			 | 
			
			
				+it’s might be because of the tool you use is designed in a way to interfere with 
			 | 
		
	
		
			
			| 
				
			 | 
			
				73
			 | 
			
			
				+the privacy respect. Submitting a bugreport to the vendor of the tool that 
			 | 
		
	
		
			
			| 
				
			 | 
			
				74
			 | 
			
			
				+misbehaves might be a good feedback to reconsider the disrespect to 
			 | 
		
	
		
			
			| 
				
			 | 
			
				75
			 | 
			
			
				+its customers (e.g. GET vs POST requests in various browsers).</p> 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				76
			 | 
			
			
				 <p>Remember the other prime directive of searx is to be hackable, so if the 
			 | 
		
	
		
			
			| 
				80
			 | 
			
				77
			 | 
			
			
				 above privacy concerns do not fancy you, simply fork it.</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				78
			 | 
			
			
				+<p>Happy hacking.</p> 
			 | 
		
	
		
			
			| 
				81
			 | 
			
				79
			 | 
			
			
				 </div> 
			 | 
		
	
		
			
			| 
				82
			 | 
			
				80
			 | 
			
			
				 </div> 
			 | 
		
	
		
			
			| 
				83
			 | 
			
				81
			 | 
			
			
				 <div class="section" id="code"> 
			 | 
		
	
		
			
			| 
				84
			 | 
			
				82
			 | 
			
			
				 <h2>Code<a class="headerlink" href="#code" title="Permalink to this headline">¶</a></h2> 
			 | 
		
	
		
			
			| 
				85
			 | 
			
				
			 | 
			
			
				-<p>Code modifications are accepted in pull requests, don’t forget to add 
			 | 
		
	
		
			
			| 
				86
			 | 
			
				
			 | 
			
			
				-yourself to the AUTHORS file.</p> 
			 | 
		
	
		
			
			| 
				87
			 | 
			
				
			 | 
			
			
				-<p>Python code follows all the pep8 standards except maximum line width 
			 | 
		
	
		
			
			| 
				88
			 | 
			
				
			 | 
			
			
				-which is 120 char.</p> 
			 | 
		
	
		
			
			| 
				89
			 | 
			
				
			 | 
			
			
				-<p>Please be sure that the submitted code doesn’t break existing tests and 
			 | 
		
	
		
			
			| 
				90
			 | 
			
				
			 | 
			
			
				-follows coding conventions.</p> 
			 | 
		
	
		
			
			| 
				91
			 | 
			
				
			 | 
			
			
				-<p>If new functionality implemented, tests are highly appreciated.</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				83
			 | 
			
			
				+<p>In order to submit a patch, please follow the steps below:</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				84
			 | 
			
			
				+<ul class="simple"> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				85
			 | 
			
			
				+<li>Follow coding conventions.<ul> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				86
			 | 
			
			
				+<li>PEP8 standards apply, except the convention of line length</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				87
			 | 
			
			
				+<li>Maximum line length is 120 characters</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				88
			 | 
			
			
				+</ul> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				89
			 | 
			
			
				+</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				90
			 | 
			
			
				+<li>Check if your code breaks existing tests. If so, update the tests or fix your code.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				91
			 | 
			
			
				+<li>If your code can be unit-tested, add unit tests.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				92
			 | 
			
			
				+<li>Add yourself to the AUTHORS file.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				93
			 | 
			
			
				+<li>Create a pull request.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				94
			 | 
			
			
				+</ul> 
			 | 
		
	
		
			
			| 
				92
			 | 
			
				95
			 | 
			
			
				 </div> 
			 | 
		
	
		
			
			| 
				93
			 | 
			
				96
			 | 
			
			
				 <div class="section" id="translation"> 
			 | 
		
	
		
			
			| 
				94
			 | 
			
				97
			 | 
			
			
				 <h2>Translation<a class="headerlink" href="#translation" title="Permalink to this headline">¶</a></h2> 
			 | 
		
	
		
			
			| 
				95
			 | 
			
				
			 | 
			
			
				-<p>Translation currently happens on 
			 | 
		
	
		
			
			| 
				96
			 | 
			
				
			 | 
			
			
				-<a class="reference external" href="https://transifex.com/projects/p/searx">transifex</a>. Please do not 
			 | 
		
	
		
			
			| 
				97
			 | 
			
				
			 | 
			
			
				-update translation files in the repo.</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				98
			 | 
			
			
				+<p>Translation currently takes place on 
			 | 
		
	
		
			
			| 
				
			 | 
			
				99
			 | 
			
			
				+<a class="reference external" href="https://transifex.com/projects/p/searx">transifex</a>.</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				100
			 | 
			
			
				+<p><strong>Please, do not update translation files in the repo.</strong></p> 
			 | 
		
	
		
			
			| 
				98
			 | 
			
				101
			 | 
			
			
				 </div> 
			 | 
		
	
		
			
			| 
				99
			 | 
			
				102
			 | 
			
			
				 <div class="section" id="documentation"> 
			 | 
		
	
		
			
			| 
				100
			 | 
			
				103
			 | 
			
			
				 <h2>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h2> 
			 | 
		
	
		
			
			| 
				101
			 | 
			
				
			 | 
			
			
				-<p>The main place of the documentation is this wiki, updates are welcome.</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				104
			 | 
			
			
				+<p>The documentation is built using Sphinx. So in order to be able to generate the required 
			 | 
		
	
		
			
			| 
				
			 | 
			
				105
			 | 
			
			
				+files, you have to install it on your system. (It can be installed easily using pip.)</p> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				106
			 | 
			
			
				+<ol class="arabic simple"> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				107
			 | 
			
			
				+<li>Checkout the gh-pages branch.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				108
			 | 
			
			
				+<li>Edit the rst file you wish to update. Or create a new rst file and place it under the appropriate folder.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				109
			 | 
			
			
				+<li>Build the documentation using Sphinx.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				110
			 | 
			
			
				+<li>Add the updated and created files of these extension:<ul> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				111
			 | 
			
			
				+<li>.rst</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				112
			 | 
			
			
				+<li>.html</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				113
			 | 
			
			
				+<li>.txt</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				114
			 | 
			
			
				+</ul> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				115
			 | 
			
			
				+</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				116
			 | 
			
			
				+</ol> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				117
			 | 
			
			
				+<ol class="arabic simple" start="6"> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				118
			 | 
			
			
				+<li>Create a pull request.</li> 
			 | 
		
	
		
			
			| 
				
			 | 
			
				119
			 | 
			
			
				+</ol> 
			 | 
		
	
		
			
			| 
				102
			 | 
			
				120
			 | 
			
			
				 </div> 
			 | 
		
	
		
			
			| 
				103
			 | 
			
				121
			 | 
			
			
				 </div> 
			 | 
		
	
		
			
			| 
				104
			 | 
			
				122
			 | 
			
			
				  
			 |