mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-25 05:15:59 +08:00
151 lines
4.5 KiB
HTML
151 lines
4.5 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html ng-app="webconfig">
|
|
<head>
|
|
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
|
<title>fish shell configuration</title>
|
|
<link rel="stylesheet" type="text/css" href="webconfig.css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="angular.js"></script>
|
|
<script type="text/javascript" src="webconfig.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
|
|
/*
|
|
Need to find what to do with these functions
|
|
*/
|
|
function rgb_to_hsl(r, g, b){
|
|
r /= 255, g /= 255, b /= 255;
|
|
var max = Math.max(r, g, b), min = Math.min(r, g, b);
|
|
var h, s, l = (max + min) / 2;
|
|
|
|
if(max == min){
|
|
h = s = 0; // achromatic
|
|
}else{
|
|
var d = max - min;
|
|
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
switch(max){
|
|
case r: h = (g - b) / d + (g < b ? 6 : 0); break;
|
|
case g: h = (b - r) / d + 2; break;
|
|
case b: h = (r - g) / d + 4; break;
|
|
}
|
|
h /= 6;
|
|
}
|
|
|
|
return [h, s, l];
|
|
}
|
|
|
|
function hsl_to_rgb(h, s, l){
|
|
var r, g, b;
|
|
|
|
if(s == 0){
|
|
r = g = b = l; // achromatic
|
|
}else{
|
|
function hue2rgb(p, q, t){
|
|
if(t < 0) t += 1;
|
|
if(t > 1) t -= 1;
|
|
if(t < 1/6) return p + (q - p) * 6 * t;
|
|
if(t < 1/2) return q;
|
|
if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
|
|
return p;
|
|
}
|
|
|
|
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
var p = 2 * l - q;
|
|
r = hue2rgb(p, q, h + 1.0/3);
|
|
g = hue2rgb(p, q, h);
|
|
b = hue2rgb(p, q, h - 1.0/3);
|
|
}
|
|
|
|
return [r * 255, g * 255, b * 255]
|
|
}
|
|
|
|
/* Given an RGB color as a hex string, like FF0033, convert to HSL, apply the function to adjust its lightness, then return the new color as an RGB string */
|
|
function adjust_lightness(color_str, func) {
|
|
/* Hack to handle for example F00 */
|
|
if (color_str.length == 3) {
|
|
color_str = color_str[0] + color_str[0] + color_str[1] + color_str[1] + color_str[2] + color_str[2]
|
|
}
|
|
|
|
rgb = parseInt(color_str, 16)
|
|
r = (rgb >> 16) & 0xFF
|
|
g = (rgb >> 8) & 0xFF
|
|
b = (rgb >> 0) & 0xFF
|
|
|
|
hsl = rgb_to_hsl(r, g, b)
|
|
new_lightness = func(hsl[2])
|
|
function to_int_str(val) {
|
|
str = Math.round(val).toString(16)
|
|
while (str.length < 2)
|
|
str = '0' + str
|
|
return str
|
|
}
|
|
|
|
new_rgb = hsl_to_rgb(hsl[0], hsl[1], new_lightness)
|
|
return to_int_str(new_rgb[0]) + to_int_str(new_rgb[1]) + to_int_str(new_rgb[2])
|
|
}
|
|
|
|
/* Given a color, compute the master text color for it, by giving it a minimum brightness */
|
|
function master_color_for_color(color_str) {
|
|
return adjust_lightness(color_str, function(lightness){
|
|
if (lightness < .33) {
|
|
lightness = .33
|
|
}
|
|
return lightness
|
|
})
|
|
}
|
|
|
|
function post_style_to_server() {
|
|
style = current_style()
|
|
if (! style)
|
|
return
|
|
|
|
run_post_request('/set_color/', {
|
|
what: current_master_element_name(),
|
|
color: style.color,
|
|
background_color: style.background_color,
|
|
bold: style.bold,
|
|
underline: style.underline
|
|
}, function(contents){
|
|
|
|
})
|
|
}
|
|
|
|
/* Given a color name, like 'normal' or 'red' or 'FF00F0', return an RGB color string (or empty string) */
|
|
function interpret_color(str) {
|
|
str = str.toLowerCase()
|
|
if (str == 'black') return '000000'
|
|
if (str == 'red') return 'FF0000'
|
|
if (str == 'green') return '00FF00'
|
|
if (str == 'brown') return '725000'
|
|
if (str == 'yellow') return 'FFFF00'
|
|
if (str == 'blue') return '0000FF'
|
|
if (str == 'magenta') return 'FF00FF'
|
|
if (str == 'purple') return 'FF00FF'
|
|
if (str == 'cyan') return '00FFFF'
|
|
if (str == 'white') return 'FFFFFF'
|
|
if (str == 'normal') return ''
|
|
return str
|
|
}
|
|
|
|
</script>
|
|
|
|
</head>
|
|
<body>
|
|
|
|
<div id="ancestor">
|
|
<span style="font-size: 30pt">fish</span><p id="global_error" class="error_msg"></p>
|
|
<div id="parent">
|
|
<div id="tab_parent" ng-controller="main">
|
|
<div ng-class="tabCssClass('colors')" id="tab_colors" ng-click="changeView('colors')">colors</div>
|
|
<div ng-class="tabCssClass('prompt')" id="tab_prompt" ng-click="changeView('prompt')">prompt</div>
|
|
<div ng-class="tabCssClass('functions')" id="tab_functions" ng-click="changeView('functions')">functions</div>
|
|
<div ng-class="tabCssClass('variables')" id="tab_variables" ng-click="changeView('variables')">variables</div>
|
|
<div ng-class="tabCssClass('history')" id="tab_history" ng-click="changeView('history')">history</div>
|
|
</div>
|
|
<div id="tab_contents">
|
|
<ng-view></ng-view>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body></html>
|