mirror of
https://github.com/gpujs/gpu.js.git
synced 2026-01-25 16:08:02 +00:00
remove demo folder
This commit is contained in:
parent
755f718d73
commit
6166a8571e
@ -1,69 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="gpu.js - playground. Run and benchmark demos for gpu.js - is a single-file JavaScript library for GPGPU in the browser. gpu.js will automatically compile specially written JavaScript functions into shader language and run them on the GPU using the WebGL API. In the case where WebGL is not available, the functions will still run in regular JavaScript." />
|
||||
|
||||
<meta property="og:title" content="gpu.js - playground : GPU Accelerated JavaScript" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://gpu.rocks/" />
|
||||
<meta property="og:image" content="http://gpu.rocks/img/ogimage.png" />
|
||||
|
||||
<title>gpu.js - playground : GPU Accelerated JavaScript</title>
|
||||
<link rel="icon" href="img/jelly.png">
|
||||
|
||||
<!-- jquery + bootstrap -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script>
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
|
||||
|
||||
<!-- code mirror -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.13.4/codemirror.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.13.4/codemirror.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.13.4/mode/javascript/javascript.js"></script>
|
||||
|
||||
<!-- seed random : https://github.com/davidbau/seedrandom -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/2.4.0/lib/xor4096.min.js"></script>
|
||||
|
||||
<!-- chartist -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.9.7/chartist.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.9.7/chartist.js"></script>
|
||||
|
||||
<!-- gpu.js scripts -->
|
||||
<script src="../../bin/gpu.js"></script>
|
||||
<script src="md5-demo.js"></script>
|
||||
<link rel="stylesheet" href="md5-demo.css">
|
||||
</head>
|
||||
<body>
|
||||
<a href="https://github.com/gpujs/gpu.js" class="github-corner"><svg width="80" height="80" viewBox="0 0 250 250" style="fill: rgba(21, 21, 19, 0.53); color:#fff; position: absolute; top: 0; border: 0; right: 0;"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1>GPU.js - MD5 : <small style="display:inline-block">GPU Accelerated JavaScript</small></h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<blockquote>
|
||||
This page here, is a quick MD5 demo<br/>
|
||||
<br/>
|
||||
[SECURITY WARNING] : This playground here does an "evil" eval on the input funcitons. So obviously do not carlessly copy and paste things here.
|
||||
<br/><br/>
|
||||
<a href="https://gpu.rocks">Our main site is found at https://gpu.rocks</a>
|
||||
<br/><br/>
|
||||
Enjoy =)
|
||||
<br/><br/>
|
||||
~ GPU.JS team
|
||||
</blockquote>
|
||||
</div>
|
||||
|
||||
<div class="container chartContainer">
|
||||
<button id="bench_btn" type="button" class="btn btn-primary btn-lg btn-block bench_btn">Run the benchmark!</button>
|
||||
<h4>Average Time taken</h4>
|
||||
<div id="chart_time" class="chart_time bench_chart"></div>
|
||||
<h4>GPU Performance improvement</h4>
|
||||
<div id="chart_gain" class="chart_gain bench_chart"></div>
|
||||
</div>
|
||||
<br/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,44 +0,0 @@
|
||||
.paramContainer {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.sampleSet {
|
||||
background: rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.sampleSet .sampleSetInner {
|
||||
padding-top:10px;
|
||||
}
|
||||
|
||||
.sampleSet .sampleSetInner input,
|
||||
.sampleSet .sampleSetInner textarea {
|
||||
min-width: 100%;
|
||||
max-width: 100%;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.sampleSet .sampleSetInner textarea {
|
||||
min-height:150px;
|
||||
}
|
||||
|
||||
.sampleSet .sample_output {
|
||||
min-height:40px;
|
||||
}
|
||||
|
||||
.kernelGroupInner textarea,
|
||||
.kernel_function {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.kernel_sample, .param_sample {
|
||||
min-height:40px;
|
||||
}
|
||||
|
||||
.chartContainer {
|
||||
padding-top:20px;
|
||||
}
|
||||
|
||||
.bench_chart {
|
||||
margin-top:20px;
|
||||
height: 400px;
|
||||
}
|
||||
@ -1,651 +0,0 @@
|
||||
$(function() {
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Common UI elements setup
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Setup the various input +/- buttons increments
|
||||
function setupInputNumbers() {
|
||||
//plugin bootstrap minus and plus
|
||||
//http://jsfiddle.net/laelitenetwork/puJ6G/
|
||||
$('.btn-number').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
fieldName = $(this).attr('data-field');
|
||||
type = $(this).attr('data-type');
|
||||
var input = $("input[name='"+fieldName+"']");
|
||||
var currentVal = parseInt(input.val());
|
||||
if (!isNaN(currentVal)) {
|
||||
if(type == 'minus') {
|
||||
|
||||
if(currentVal > input.attr('min')) {
|
||||
input.val(currentVal - 1).change();
|
||||
}
|
||||
if(parseInt(input.val()) == input.attr('min')) {
|
||||
$(this).attr('disabled', true);
|
||||
}
|
||||
|
||||
} else if(type == 'plus') {
|
||||
|
||||
if(currentVal < input.attr('max')) {
|
||||
input.val(currentVal + 1).change();
|
||||
}
|
||||
if(parseInt(input.val()) == input.attr('max')) {
|
||||
$(this).attr('disabled', true);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
input.val(0);
|
||||
}
|
||||
});
|
||||
$('.input-number').focusin(function(){
|
||||
$(this).data('oldValue', $(this).val());
|
||||
});
|
||||
$('.input-number').change(function() {
|
||||
|
||||
minValue = parseInt($(this).attr('min'));
|
||||
maxValue = parseInt($(this).attr('max'));
|
||||
valueCurrent = parseInt($(this).val());
|
||||
|
||||
name = $(this).attr('name');
|
||||
if(valueCurrent >= minValue) {
|
||||
$(".btn-number[data-type='minus'][data-field='"+name+"']").removeAttr('disabled')
|
||||
} else {
|
||||
alert('Sorry, the minimum value was reached');
|
||||
$(this).val($(this).data('oldValue'));
|
||||
}
|
||||
if(valueCurrent <= maxValue) {
|
||||
$(".btn-number[data-type='plus'][data-field='"+name+"']").removeAttr('disabled')
|
||||
} else {
|
||||
alert('Sorry, the maximum value was reached');
|
||||
$(this).val($(this).data('oldValue'));
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
$(".input-number").keydown(function (e) {
|
||||
// Allow: backspace, delete, tab, escape, enter and .
|
||||
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 ||
|
||||
// Allow: Ctrl+A
|
||||
(e.keyCode == 65 && e.ctrlKey === true) ||
|
||||
// Allow: home, end, left, right
|
||||
(e.keyCode >= 35 && e.keyCode <= 39)) {
|
||||
// let it happen, don't do anything
|
||||
return;
|
||||
}
|
||||
// Ensure that it is a number and stop the keypress
|
||||
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Utility functions
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
// Used to indicate to the CM_blockFirstAndLastLine to ignore cancel step
|
||||
var CM_doNotCancelOrigin = "do-not-cancel";
|
||||
|
||||
// Blocks the first and last line inside the code mirror from being editted
|
||||
function CM_blockFirstAndLastLine(cm,change) {
|
||||
|
||||
// If origin is set to "not-cancel" ignore
|
||||
if( change.origin == CM_doNotCancelOrigin ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( change.from.line <= 0 || cm.lineCount() - 1 <= change.to.line) {
|
||||
change.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
var CM_defaultConfig = {
|
||||
lineNumbers: true,
|
||||
mode: {name: "javascript", json: true},
|
||||
indentUnit: 3,
|
||||
tabSize: 3
|
||||
};
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Code mirror parameters generator setup
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Default parameter names : alphabectical
|
||||
var paramDefaultNames = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split('');
|
||||
|
||||
/// Default parameter function
|
||||
var paramDefaultFunction = ""+
|
||||
"function(size,rand) {\n"+
|
||||
" var ret = [];\n"+
|
||||
" for(var i=0; i<size; ++i){\n"+
|
||||
" ret[i] = parseInt(rand()*100);\n"+
|
||||
" }\n"+
|
||||
" return ret;\n"+
|
||||
"}";
|
||||
|
||||
/// Parameter code mirror objects
|
||||
var CM_parameters = [];
|
||||
var paramNameInputs = [];
|
||||
var paramSampleOutputs = [];
|
||||
|
||||
/// Get the parameter count
|
||||
function getParamCount() {
|
||||
return parseInt( $("#arg_count").val() );
|
||||
}
|
||||
|
||||
/// Update the parameter display list, to match the number of parameters
|
||||
function updateParamsList() {
|
||||
|
||||
// Get the main parameter container to update
|
||||
var pContainer = $("#paramGroupContainer");
|
||||
var template = pContainer.find("#paramGroupTemplate")
|
||||
|
||||
// Hide everything : handle the case for reduced parameters
|
||||
pContainer.find(".paramGroup").hide();
|
||||
|
||||
// Get desired parameter count
|
||||
var pCount = getParamCount();
|
||||
|
||||
// Time to iterate, and create/reveal those paramGroups
|
||||
for(var p=0; p<pCount; ++p) {
|
||||
var pNode = $("#paramGroup_"+p);
|
||||
|
||||
if( pNode == null || pNode.length == 0 ) {
|
||||
pNode = template.clone();
|
||||
|
||||
pNode.attr("id", "#paramGroup_"+p);
|
||||
pNode.find(".param_name").val( paramDefaultNames[p] );
|
||||
|
||||
// Setup code mirror
|
||||
CM_parameters[p] = CodeMirror.fromTextArea(pNode.find(".param_function")[0], CM_defaultConfig);
|
||||
|
||||
// Setup default value
|
||||
CM_parameters[p].setValue(paramDefaultFunction);
|
||||
|
||||
// Block edits for first and last line
|
||||
CM_parameters[p].on('beforeChange', CM_blockFirstAndLastLine);
|
||||
|
||||
// Add param name, and sample output nodes to array (for easy refence)
|
||||
paramNameInputs[p] = pNode.find(".param_name");
|
||||
paramSampleOutputs[p] = pNode.find(".param_sample");
|
||||
|
||||
pContainer.append(pNode);
|
||||
}
|
||||
|
||||
pNode.show();
|
||||
CM_parameters[p].refresh();
|
||||
}
|
||||
|
||||
// Update parameter names
|
||||
updateKernelParamNames();
|
||||
}
|
||||
|
||||
/// Get the configured parameter functions
|
||||
function getParameterFunctions() {
|
||||
var ret = [];
|
||||
var pCount = getParamCount();
|
||||
|
||||
for( var p=0; p<pCount; ++p ) {
|
||||
try {
|
||||
eval("ret[p] = "+CM_parameters[p].getValue());
|
||||
} catch(e) {
|
||||
paramSampleOutputs[p].html(e.toString());
|
||||
console.error("Failed to process parameter "+p, e);
|
||||
alert("Failed to process parameter "+p+" : "+e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// The random seed dom
|
||||
var rand_seed_jqDom = $("#rand_seed");
|
||||
|
||||
/// Get the pesudo random number generator for the sample size / parameter count
|
||||
function getRandom(parameterCount, sampleSize, rand_seed) {
|
||||
if(rand_seed == null) {
|
||||
rand_seed = rand_seed_jqDom.val();
|
||||
}
|
||||
|
||||
return new xor4096(parameterCount+"-"+rand_seed+"-"+sampleSize);
|
||||
}
|
||||
|
||||
/// Update the parameter samples
|
||||
function updateParameterSamples() {
|
||||
// Get the param functions
|
||||
var paramFunctions = getParameterFunctions();
|
||||
|
||||
// Invalid parameter function
|
||||
if(paramFunctions == null) {
|
||||
$("#paramGroupContainer .param_sample").html("");
|
||||
return;
|
||||
}
|
||||
|
||||
// Get demo sample size
|
||||
var sample_size = parseInt($("#sample_size").val());
|
||||
|
||||
// Iterate, execute
|
||||
var pCount = paramFunctions.length;
|
||||
for(var p=0; p<pCount; ++p) {
|
||||
var rand = getRandom(p, sample_size);
|
||||
var sample = paramFunctions[p](sample_size, rand);
|
||||
|
||||
paramSampleOutputs[p].html( JSON.stringify(sample) );
|
||||
}
|
||||
|
||||
// Update parameter names
|
||||
updateKernelParamNames();
|
||||
}
|
||||
|
||||
/// Get the parameter names, after NORMALIZING them (just in case)
|
||||
function getParameterNames() {
|
||||
var ret = [];
|
||||
|
||||
// Get desired parameter count
|
||||
var pCount = getParamCount();
|
||||
|
||||
// Iterate through
|
||||
for( var p = 0; p < pCount; ++p ) {
|
||||
var name = paramNameInputs[p].val();
|
||||
name = name.replace(/\W/g, '');
|
||||
|
||||
if( name == null || name.length <= 0 ) {
|
||||
name = paramDefaultNames[p];
|
||||
}
|
||||
paramNameInputs[p].val(name);
|
||||
ret[p] = name;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Updates the kernel first line, with the parameter names
|
||||
function updateKernelParamNames() {
|
||||
// Out of order initialzing =(
|
||||
if(CM_kernel == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
var paramNames = getParameterNames();
|
||||
|
||||
var kernelHeader = "function kernel("+paramNames.toString()+") {";
|
||||
var originalHeader = CM_kernel.getLine(0);
|
||||
|
||||
if( kernelHeader != originalHeader ) {
|
||||
CM_kernel.replaceRange(kernelHeader, CodeMirror.Pos(0,0), CodeMirror.Pos(0, originalHeader.length), CM_doNotCancelOrigin);
|
||||
//CM_kernel.refresh();
|
||||
}
|
||||
}
|
||||
|
||||
/// Setup the parameter generators
|
||||
function setupParameterGenerator() {
|
||||
updateParamsList();
|
||||
$("#arg_count").change(updateParamsList);
|
||||
$("#paramset_btn").click(updateParameterSamples);
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Code mirror dimensions setup
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Default parameter function
|
||||
var dimensionsDefaultFunction = ""+
|
||||
"function(size) {\n"+
|
||||
" return [size];\n"+
|
||||
"}";
|
||||
|
||||
/// The dimension generator code mirror
|
||||
var CM_dimension = null;
|
||||
|
||||
/// Get the configured dim functions
|
||||
function getDimensionFunction() {
|
||||
var ret = null;
|
||||
try {
|
||||
eval("ret = "+CM_dimension.getValue());
|
||||
} catch(e) {
|
||||
$("#dim_sample").html(e.toString());
|
||||
console.error("Failed to process dimension function", e);
|
||||
alert("Failed to process dimension function : "+e);
|
||||
return null;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Update the dim sample
|
||||
function updateDimensionSample() {
|
||||
// Get the dim function
|
||||
var dimFunc = getDimensionFunction();
|
||||
|
||||
if( dimFunc == null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Get demo sample size
|
||||
var sample_size = parseInt($("#sample_size").val());
|
||||
var res = dimFunc(sample_size);
|
||||
|
||||
$("#dim_sample").html(JSON.stringify(res));
|
||||
}
|
||||
|
||||
/// Setup the dimensions generator
|
||||
function setupDimensionGenerator() {
|
||||
CM_dimension = CodeMirror.fromTextArea( document.getElementById("dim_function"), CM_defaultConfig);
|
||||
|
||||
// Reset the value
|
||||
CM_dimension.setValue(dimensionsDefaultFunction);
|
||||
|
||||
// Block edits for first and last line
|
||||
CM_dimension.on('beforeChange', CM_blockFirstAndLastLine);
|
||||
|
||||
// Dimension samples
|
||||
$("#paramset_btn").click(updateDimensionSample);
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Code mirror kernel setup
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Kernel code mirror object
|
||||
var CM_kernel = null;
|
||||
|
||||
/// Default parameter function
|
||||
var kernelDefaultFunction = ""+
|
||||
"function kernel(A,B) {\n"+
|
||||
" var sum = 0;\n"+
|
||||
" for (var i=0; i<512; i++) {\n"+
|
||||
" sum = Math.pow((A[this.thread.x]-sum)/B[this.thread.x],2);\n"+
|
||||
" }\n"+
|
||||
" return sum;\n"+
|
||||
"}";
|
||||
|
||||
/// One time setup of the kernel editor
|
||||
function setupKernelEditor() {
|
||||
|
||||
// Setup the kernel code mirror
|
||||
var kernel_textArea = document.getElementById("kernel_function");
|
||||
CM_kernel = CodeMirror.fromTextArea(kernel_textArea, CM_defaultConfig);
|
||||
|
||||
// Reset the value
|
||||
CM_kernel.setValue(kernelDefaultFunction);
|
||||
|
||||
// Block edits for first and last line
|
||||
CM_kernel.on('beforeChange', CM_blockFirstAndLastLine);
|
||||
|
||||
// Setup the kernel sample click call
|
||||
$("#kernel_sample_btn").click(updateKernelSampleDisplay);
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Kernel arguments / sample preperation
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Get the kernel raw JS function
|
||||
function getKernelRawFunction() {
|
||||
var ret = null;
|
||||
try {
|
||||
eval("ret = "+CM_kernel.getValue());
|
||||
} catch(e) {
|
||||
$("#kernel_sample").html(e.toString());
|
||||
console.error("Failed to process kernel function", e);
|
||||
alert("Failed to process kernel function : "+e);
|
||||
return null;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Generate the paramater set
|
||||
function getKernelParameters(sampleSize, paramFunctions) {
|
||||
if(paramFunctions == null) {
|
||||
paramFunctions = getParameterFunctions();
|
||||
}
|
||||
var ret = [];
|
||||
if(paramFunctions == null) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
var rand_seed = rand_seed_jqDom.val();
|
||||
var pCount = paramFunctions.length;
|
||||
for(var p=0; p<pCount; ++p) {
|
||||
ret[p] = paramFunctions[p](sampleSize, getRandom(p, sampleSize, rand_seed));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Generate the kernel sample result
|
||||
function getKernelSampleResult(sampleSize) {
|
||||
var rawFunction = getKernelRawFunction();
|
||||
var dimFunction = getDimensionFunction();
|
||||
var paramFunctions = getParameterFunctions();
|
||||
|
||||
var gpu = new GPU();
|
||||
var ker = gpu.createKernel(rawFunction,{
|
||||
dimensions : dimFunction(sampleSize)
|
||||
});
|
||||
|
||||
var args = getKernelParameters(sampleSize, paramFunctions);
|
||||
return ker.apply(ker, args);
|
||||
}
|
||||
|
||||
/// Update the kernel sample results
|
||||
function updateKernelSampleDisplay() {
|
||||
// Forces the paramset button to update the param samples
|
||||
$("#paramset_btn").click();
|
||||
|
||||
// Get demo sample size
|
||||
var sample_size = parseInt($("#sample_size").val());
|
||||
|
||||
// Get kernel sample result
|
||||
var res = getKernelSampleResult(sample_size);
|
||||
//console.log("Kernel code sample result : ", res);
|
||||
$("#kernel_sample").html( JSON.stringify(res) );
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Bench marking logic code
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Run a single benchmark, for the sample size, in a single mode
|
||||
function singleBenchmark(sampleSize, mode) {
|
||||
var rawFunction = getKernelRawFunction();
|
||||
var dimFunction = getDimensionFunction();
|
||||
var paramFunctions = getParameterFunctions();
|
||||
|
||||
var gpu = new GPU();
|
||||
var kernel = gpu.createKernel(rawFunction,{
|
||||
dimensions : dimFunction(sampleSize),
|
||||
mode : mode
|
||||
});
|
||||
|
||||
var args = getKernelParameters(sampleSize, paramFunctions);
|
||||
var warmup_size = parseInt( $("#warmup_size").val() );
|
||||
var bench_size = parseInt( $("#bench_size").val() );
|
||||
|
||||
// Warmup iteration used to "ignore" optimizers?
|
||||
for(var w=0; w<warmup_size; ++w) {
|
||||
kernel.apply(kernel, args);
|
||||
}
|
||||
|
||||
// Benchmark it
|
||||
var prefObj = window.performance || Date;
|
||||
var start = prefObj.now();
|
||||
for(var b=0; b<bench_size; ++b) {
|
||||
kernel.apply(kernel, args);
|
||||
}
|
||||
var end = prefObj.now();
|
||||
var time = end - start;
|
||||
return time / parseFloat(bench_size);
|
||||
}
|
||||
|
||||
/// The benchmark charting data, resets on new run
|
||||
var bench_time_dataSet = {};
|
||||
var bench_gain_dataSet = {};
|
||||
|
||||
/// The various dataset specific arrays
|
||||
var bench_labels = [];
|
||||
var bench_gpu_time = [];
|
||||
var bench_cpu_time = [];
|
||||
var bench_gain_dif = [];
|
||||
|
||||
/// The benchmark charting config,
|
||||
/// Prettymuch never changing
|
||||
var bench_time_config = {
|
||||
referenceValue : 0
|
||||
}
|
||||
var bench_gain_config = {
|
||||
referenceValue : 0
|
||||
}
|
||||
|
||||
/// The chartist object
|
||||
var bench_time_chartist = null;
|
||||
var bench_gain_chartist = null;
|
||||
|
||||
/// Does a full reset of the benchmark
|
||||
function resetBenchmarkDataset() {
|
||||
bench_labels = [];
|
||||
bench_gpu_time = [];
|
||||
bench_cpu_time = [];
|
||||
bench_gain_dif = [];
|
||||
|
||||
bench_time_dataSet = {
|
||||
labels: bench_labels,
|
||||
series: [
|
||||
bench_cpu_time,
|
||||
bench_gpu_time
|
||||
]
|
||||
}
|
||||
bench_gain_dataSet = {
|
||||
labels: bench_labels,
|
||||
series: [bench_gain_dif]
|
||||
}
|
||||
}
|
||||
|
||||
/// Does a dataupdate for the chartist display
|
||||
function updateBenchmarkDisplay() {
|
||||
bench_time_chartist.update(bench_time_dataSet);
|
||||
bench_gain_chartist.update(bench_gain_dataSet);
|
||||
}
|
||||
|
||||
function runCompleteBenchmark() {
|
||||
var lower_bound = parseInt($("#bench_lower").val());
|
||||
var upper_bound = parseInt($("#bench_upper").val());
|
||||
var increment = parseInt($("#bench_increment").val());
|
||||
|
||||
var prefObj = window.performance || Date;
|
||||
var start = prefObj.now();
|
||||
|
||||
console.log("Benchmark started! (Lower, Upper, Incre) : ", lower_bound, upper_bound, increment);
|
||||
resetBenchmarkDataset();
|
||||
updateBenchmarkDisplay();
|
||||
|
||||
function doOneSampleBenchmark(sampleSize, completeCallback) {
|
||||
var cpu_time = singleBenchmark(sampleSize, "cpu");
|
||||
var gpu_time = singleBenchmark(sampleSize, "gpu");
|
||||
var gain_per = 0;
|
||||
|
||||
if( cpu_time == gpu_time ) {
|
||||
gain_per = 0;
|
||||
} else if( gpu_time < cpu_time ) {
|
||||
gain_per = cpu_time / gpu_time * 100.0 - 100.0;
|
||||
} else {
|
||||
gain_per = -(gpu_time / cpu_time * 100.0) + 100.0;
|
||||
}
|
||||
|
||||
bench_labels.push( sampleSize );
|
||||
bench_cpu_time.push( cpu_time );
|
||||
bench_gpu_time.push( gpu_time );
|
||||
bench_gain_dif.push( gain_per );
|
||||
|
||||
bench_time_dataSet.labels = bench_labels;
|
||||
bench_gain_dataSet.labels = bench_labels;
|
||||
|
||||
//console.log( bench_time_dataSet, bench_gain_dataSet );
|
||||
updateBenchmarkDisplay();
|
||||
|
||||
if(completeCallback) {
|
||||
completeCallback();
|
||||
}
|
||||
}
|
||||
|
||||
var sampleSize = lower_bound;
|
||||
|
||||
function sampleSizeLooper() {
|
||||
sampleSize += increment;
|
||||
if(sampleSize < upper_bound) {
|
||||
// Call after UI update
|
||||
setTimeout(function(){
|
||||
doOneSampleBenchmark(sampleSize, sampleSizeLooper);
|
||||
}, 0);
|
||||
} else {
|
||||
updateBenchmarkDisplay();
|
||||
$("#bench_btn").prop('disabled', false);
|
||||
|
||||
var end = prefObj.now();
|
||||
var time = end - start;
|
||||
console.log("Benchmark ended! (total time)", time);
|
||||
console.log("Iteration labels : ", bench_labels);
|
||||
console.log("Final result for CPU : ", bench_cpu_time);
|
||||
console.log("Final result for GPU : ", bench_gpu_time);
|
||||
console.log("Final result for performance gain : ", bench_gain_dif);
|
||||
|
||||
window.bench_totalTime = time;
|
||||
window.bench_labels = bench_labels;
|
||||
window.bench_cpu_time = bench_cpu_time;
|
||||
window.bench_gpu_time = bench_gpu_time;
|
||||
window.bench_gain_dif = bench_gain_dif;
|
||||
window.bench_time_dataSet = bench_time_dataSet;
|
||||
window.bench_gain_dataSet = bench_gain_dataSet;
|
||||
}
|
||||
}
|
||||
|
||||
$("#bench_btn").prop('disabled', true);
|
||||
doOneSampleBenchmark(sampleSize, sampleSizeLooper);
|
||||
//updateBenchmarkDisplay();
|
||||
}
|
||||
|
||||
function setupBenchmarking() {
|
||||
bench_time_chartist = new Chartist.Line('#chart_time', bench_time_dataSet, bench_time_config);
|
||||
bench_gain_chartist = new Chartist.Line('#chart_gain', bench_gain_dataSet, bench_gain_config);
|
||||
$("#bench_btn").click(function() {
|
||||
runCompleteBenchmark();
|
||||
});
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Time to actually do setup calls
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
// The various setup actual call
|
||||
setupInputNumbers();
|
||||
setupParameterGenerator();
|
||||
setupDimensionGenerator();
|
||||
setupKernelEditor();
|
||||
setupBenchmarking();
|
||||
|
||||
window.CM_kernel = CM_kernel;
|
||||
window.updateKernelSampleDisplay = updateKernelSampleDisplay;
|
||||
window.singleBenchmark = singleBenchmark;
|
||||
window.updateBenchmarkDisplay = updateBenchmarkDisplay;
|
||||
|
||||
window.bench_time_chartist = bench_time_chartist;
|
||||
window.bench_gain_chartist = bench_gain_chartist;
|
||||
});
|
||||
@ -1,267 +0,0 @@
|
||||
/*
|
||||
* JavaScript MD5
|
||||
* https://github.com/blueimp/JavaScript-MD5
|
||||
*
|
||||
* Copyright 2011, Sebastian Tschan
|
||||
* https://blueimp.net
|
||||
*
|
||||
* Licensed under the MIT license:
|
||||
* http://www.opensource.org/licenses/MIT
|
||||
*
|
||||
* Based on
|
||||
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
|
||||
* Digest Algorithm, as defined in RFC 1321.
|
||||
* Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
|
||||
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
|
||||
* Distributed under the BSD License
|
||||
* See http://pajhome.org.uk/crypt/md5 for more info.
|
||||
*/
|
||||
|
||||
/* global define */
|
||||
|
||||
/*
|
||||
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
|
||||
* to work around bugs in some JS interpreters.
|
||||
*/
|
||||
function safeAdd (x, y) {
|
||||
var lsw = (x & 0xFFFF) + (y & 0xFFFF)
|
||||
var msw = (x >> 16) + (y >> 16) + (lsw >> 16)
|
||||
return (msw << 16) | (lsw & 0xFFFF)
|
||||
}
|
||||
|
||||
/*
|
||||
* Bitwise rotate a 32-bit number to the left.
|
||||
*/
|
||||
function bitRotateLeft (num, cnt) {
|
||||
return (num << cnt) | (num >>> (32 - cnt))
|
||||
}
|
||||
|
||||
/*
|
||||
* These functions implement the four basic operations the algorithm uses.
|
||||
*/
|
||||
function md5cmn (q, a, b, x, s, t) {
|
||||
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b)
|
||||
}
|
||||
function md5ff (a, b, c, d, x, s, t) {
|
||||
return md5cmn((b & c) | ((~b) & d), a, b, x, s, t)
|
||||
}
|
||||
function md5gg (a, b, c, d, x, s, t) {
|
||||
return md5cmn((b & d) | (c & (~d)), a, b, x, s, t)
|
||||
}
|
||||
function md5hh (a, b, c, d, x, s, t) {
|
||||
return md5cmn(b ^ c ^ d, a, b, x, s, t)
|
||||
}
|
||||
function md5ii (a, b, c, d, x, s, t) {
|
||||
return md5cmn(c ^ (b | (~d)), a, b, x, s, t)
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the MD5 of an array of little-endian words, and a bit length.
|
||||
*/
|
||||
function binlMD5 (x, len) {
|
||||
/* append padding */
|
||||
x[len >> 5] |= 0x80 << (len % 32)
|
||||
x[(((len + 64) >>> 9) << 4) + 14] = len
|
||||
|
||||
var i
|
||||
var olda
|
||||
var oldb
|
||||
var oldc
|
||||
var oldd
|
||||
var a = 1732584193
|
||||
var b = -271733879
|
||||
var c = -1732584194
|
||||
var d = 271733878
|
||||
|
||||
for (i = 0; i < x.length; i += 16) {
|
||||
olda = a
|
||||
oldb = b
|
||||
oldc = c
|
||||
oldd = d
|
||||
|
||||
a = md5ff(a, b, c, d, x[i], 7, -680876936)
|
||||
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586)
|
||||
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819)
|
||||
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330)
|
||||
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897)
|
||||
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426)
|
||||
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341)
|
||||
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983)
|
||||
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416)
|
||||
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417)
|
||||
c = md5ff(c, d, a, b, x[i + 10], 17, -42063)
|
||||
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162)
|
||||
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682)
|
||||
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101)
|
||||
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290)
|
||||
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329)
|
||||
|
||||
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510)
|
||||
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632)
|
||||
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713)
|
||||
b = md5gg(b, c, d, a, x[i], 20, -373897302)
|
||||
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691)
|
||||
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083)
|
||||
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335)
|
||||
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848)
|
||||
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438)
|
||||
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690)
|
||||
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961)
|
||||
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501)
|
||||
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467)
|
||||
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784)
|
||||
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473)
|
||||
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734)
|
||||
|
||||
a = md5hh(a, b, c, d, x[i + 5], 4, -378558)
|
||||
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463)
|
||||
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562)
|
||||
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556)
|
||||
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060)
|
||||
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353)
|
||||
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632)
|
||||
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640)
|
||||
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174)
|
||||
d = md5hh(d, a, b, c, x[i], 11, -358537222)
|
||||
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979)
|
||||
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189)
|
||||
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487)
|
||||
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835)
|
||||
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520)
|
||||
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651)
|
||||
|
||||
a = md5ii(a, b, c, d, x[i], 6, -198630844)
|
||||
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415)
|
||||
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905)
|
||||
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055)
|
||||
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571)
|
||||
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606)
|
||||
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523)
|
||||
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799)
|
||||
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359)
|
||||
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744)
|
||||
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380)
|
||||
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649)
|
||||
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070)
|
||||
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379)
|
||||
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259)
|
||||
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551)
|
||||
|
||||
a = safeAdd(a, olda)
|
||||
b = safeAdd(b, oldb)
|
||||
c = safeAdd(c, oldc)
|
||||
d = safeAdd(d, oldd)
|
||||
}
|
||||
return [a, b, c, d]
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert an array of little-endian words to a string
|
||||
*/
|
||||
function binl2rstr (input) {
|
||||
var i
|
||||
var output = ''
|
||||
var length32 = input.length * 32
|
||||
for (i = 0; i < length32; i += 8) {
|
||||
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF)
|
||||
}
|
||||
return output
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert a raw string to an array of little-endian words
|
||||
* Characters >255 have their high-byte silently ignored.
|
||||
*/
|
||||
function rstr2binl (input) {
|
||||
var i
|
||||
var output = []
|
||||
output[(input.length >> 2) - 1] = undefined
|
||||
for (i = 0; i < output.length; i += 1) {
|
||||
output[i] = 0
|
||||
}
|
||||
var length8 = input.length * 8
|
||||
for (i = 0; i < length8; i += 8) {
|
||||
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32)
|
||||
}
|
||||
return output
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the MD5 of a raw string
|
||||
*/
|
||||
function rstrMD5 (s) {
|
||||
return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate the HMAC-MD5, of a key and some data (raw strings)
|
||||
*/
|
||||
function rstrHMACMD5 (key, data) {
|
||||
var i
|
||||
var bkey = rstr2binl(key)
|
||||
var ipad = []
|
||||
var opad = []
|
||||
var hash
|
||||
ipad[15] = opad[15] = undefined
|
||||
if (bkey.length > 16) {
|
||||
bkey = binlMD5(bkey, key.length * 8)
|
||||
}
|
||||
for (i = 0; i < 16; i += 1) {
|
||||
ipad[i] = bkey[i] ^ 0x36363636
|
||||
opad[i] = bkey[i] ^ 0x5C5C5C5C
|
||||
}
|
||||
hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8)
|
||||
return binl2rstr(binlMD5(opad.concat(hash), 512 + 128))
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert a raw string to a hex string
|
||||
*/
|
||||
function rstr2hex (input) {
|
||||
var hexTab = '0123456789abcdef'
|
||||
var output = ''
|
||||
var x
|
||||
var i
|
||||
for (i = 0; i < input.length; i += 1) {
|
||||
x = input.charCodeAt(i)
|
||||
output += hexTab.charAt((x >>> 4) & 0x0F) +
|
||||
hexTab.charAt(x & 0x0F)
|
||||
}
|
||||
return output
|
||||
}
|
||||
|
||||
/*
|
||||
* Encode a string as utf-8
|
||||
*/
|
||||
function str2rstrUTF8 (input) {
|
||||
return unescape(encodeURIComponent(input))
|
||||
}
|
||||
|
||||
/*
|
||||
* Take string arguments and return either raw or hex encoded strings
|
||||
*/
|
||||
function rawMD5 (s) {
|
||||
return rstrMD5(str2rstrUTF8(s))
|
||||
}
|
||||
function hexMD5 (s) {
|
||||
return rstr2hex(rawMD5(s))
|
||||
}
|
||||
function rawHMACMD5 (k, d) {
|
||||
return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
|
||||
}
|
||||
function hexHMACMD5 (k, d) {
|
||||
return rstr2hex(rawHMACMD5(k, d))
|
||||
}
|
||||
|
||||
function md5 (string, key, raw) {
|
||||
if (!key) {
|
||||
if (!raw) {
|
||||
return hexMD5(string)
|
||||
}
|
||||
return rawMD5(string)
|
||||
}
|
||||
if (!raw) {
|
||||
return hexHMACMD5(key, string)
|
||||
}
|
||||
return rawHMACMD5(key, string)
|
||||
}
|
||||
@ -1,21 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>GPU.JS : MD5 test</title>
|
||||
<link rel="stylesheet" href="../../test/lib/qunit-1.20.0.css">
|
||||
|
||||
<!-- gpu.js scripts -->
|
||||
<script src="../../bin/gpu.js"></script>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="qunit"></div>
|
||||
<div id="qunit-fixture"></div>
|
||||
<script src="../../test/lib/qunit-1.20.0.js"></script>
|
||||
|
||||
<script src="md5.js"></script>
|
||||
<script src="test.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,62 +0,0 @@
|
||||
|
||||
/// Basic MD5 testing
|
||||
QUnit.test( "MD5: sanity test", function( assert ) {
|
||||
assert.equal(md5("hello world"), "5eb63bbbe01eeed093cb22bb8f5acdc3");
|
||||
assert.equal(hexMD5("hello world"), "5eb63bbbe01eeed093cb22bb8f5acdc3");
|
||||
});
|
||||
|
||||
|
||||
/// MD5 short circuting
|
||||
QUnit.test( "MD5: short circuting in JS", function(assert) {
|
||||
|
||||
// - For refence
|
||||
// function hexMD5 (s) {
|
||||
// return rstr2hex(rawMD5(s))
|
||||
// }
|
||||
// function rawMD5 (s) {
|
||||
// return rstrMD5(str2rstrUTF8(s))
|
||||
// }
|
||||
// function rstrMD5 (s) {
|
||||
// return binl2rstr(binlMD5(rstr2binl(s), s.length * 8))
|
||||
// }
|
||||
|
||||
// function rawHMACMD5 (k, d) {
|
||||
// return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d))
|
||||
// }
|
||||
// function hexHMACMD5 (k, d) {
|
||||
// return rstr2hex(rawHMACMD5(k, d))
|
||||
// }
|
||||
|
||||
var testText = "hello world";
|
||||
var testTextBits = testText.length * 8;
|
||||
|
||||
// UTF8 friendly string?
|
||||
assert.equal(str2rstrUTF8(testText), "hello world");
|
||||
|
||||
// Convert the string into a numerical array representation - usable in GPU.js
|
||||
assert.deepEqual(rstr2binl("hello world"), [ 1819043176, 1870078063, 6581362 ]);
|
||||
var testBins = rstr2binl("hello world");
|
||||
|
||||
// Hashes the binary representation
|
||||
assert.deepEqual(binlMD5(testBins, testTextBits), [ -1153714594, -789700896, -1155347565, -1009952113 ]);
|
||||
var resultBins = binlMD5(testBins, testTextBits);
|
||||
|
||||
// Result to hash conversion
|
||||
assert.equal(rstr2hex(binl2rstr(resultBins)), "5eb63bbbe01eeed093cb22bb8f5acdc3");
|
||||
});
|
||||
|
||||
/// MD5 short circuting
|
||||
QUnit.test( "MD5: via GPU", function(assert) {
|
||||
var gpu = new GPU();
|
||||
assert.ok(gpu);
|
||||
|
||||
gpu.addFunction( binlMD5, ["float", "float"], "float" );
|
||||
|
||||
var func = gpu.createKernel(function( inBin, inBinLen, targetBin ) {
|
||||
var binHash = binlMD5(inBin, inBinLen);
|
||||
return 1;
|
||||
}).dimensions([1]);
|
||||
|
||||
assert.ok(func);
|
||||
assert.equal(func( [ 1819043176, 1870078063, 6581362 ], 88, [ -1153714594, -789700896, -1155347565, -1009952113 ] ), 1);
|
||||
});
|
||||
6
demo/bootstrap.min.css
vendored
6
demo/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
7
demo/bootstrap.min.js
vendored
7
demo/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
110
demo/gpu-demo.js
110
demo/gpu-demo.js
@ -1,110 +0,0 @@
|
||||
var gpu = new GPU();
|
||||
|
||||
/**
|
||||
* Figure out how long it takes for a method to execute.
|
||||
*
|
||||
* @param {Function} method to test
|
||||
* @param {number} iterations number of executions.
|
||||
* @param {Array} args to pass in.
|
||||
* @param {T} context the context to call the method in.
|
||||
* @return {number} the time it took, in milliseconds to execute.
|
||||
*/
|
||||
var bench = function (method, iterations, args, context) {
|
||||
|
||||
var time = 0;
|
||||
var timer = function (action) {
|
||||
var d = Date.now();
|
||||
if (time < 1 || action === 'start') {
|
||||
time = d;
|
||||
return 0;
|
||||
} else if (action === 'stop') {
|
||||
var t = d - time;
|
||||
time = 0;
|
||||
return t;
|
||||
} else {
|
||||
return d - time;
|
||||
}
|
||||
};
|
||||
|
||||
var result = [];
|
||||
var i = 0;
|
||||
timer('start');
|
||||
while (i < iterations) {
|
||||
result.push(method.apply(context, args));
|
||||
i++;
|
||||
}
|
||||
|
||||
var execTime = timer('stop');
|
||||
|
||||
if ( typeof console === "object") {
|
||||
console.log("Mean execution time was: ", execTime / iterations);
|
||||
console.log("Sum execution time was: ", execTime);
|
||||
console.log("Result of the method call was:", result[0]);
|
||||
}
|
||||
|
||||
return execTime / iterations;
|
||||
};
|
||||
|
||||
//
|
||||
// Startup code
|
||||
//
|
||||
var _length = 2048;
|
||||
var set_a = [];
|
||||
var set_b = [];
|
||||
for(var n = 0; n < _length; n++) {
|
||||
var randA = Math.random()*100.0;
|
||||
var randB = Math.random()*100.0;
|
||||
set_a.push(randA);
|
||||
set_b.push(randB);
|
||||
}
|
||||
console.log("startup code", [set_a, set_b]);
|
||||
|
||||
//
|
||||
// GPU.JS setup code
|
||||
//
|
||||
function benchmarkCode(mode) {
|
||||
var runFunction = gpu.createKernel(function(a, b) {
|
||||
var res = 0.0;
|
||||
|
||||
for(var i = 0.0; i < 500000; i++) {
|
||||
res += Math.sqrt( a[this.thread.x] * b[this.thread.x] );
|
||||
}
|
||||
|
||||
return res;
|
||||
}, {
|
||||
dimensions : [2048],
|
||||
mode : mode
|
||||
});
|
||||
|
||||
c = runFunction(set_a, set_b);
|
||||
}
|
||||
|
||||
function runBenchmark() {
|
||||
$('.run_btn').prop('disabled', true);
|
||||
|
||||
$(".cpu_result_ovl").removeClass("alert-success").addClass("alert-warning").html("Percentage Gain: Running ...");
|
||||
$(".cpu_result_gpu").removeClass("alert-success").addClass("alert-warning").html("GPU: Running ... ");
|
||||
var gpuTime = bench(function(){
|
||||
benchmarkCode('gpu');
|
||||
}, 10, [], this);
|
||||
$(".cpu_result_gpu").removeClass("alert-warning").addClass("alert-success").html("GPU: "+gpuTime+" ms");
|
||||
|
||||
$(".cpu_result_cpu").removeClass("alert-success").addClass("alert-warning").html("CPU: Running ... ");
|
||||
cpuTime = bench(function(){
|
||||
benchmarkCode('cpu');
|
||||
}, 10, [], this);
|
||||
$(".cpu_result_cpu").removeClass("alert-warning").addClass("alert-success").html("CPU: "+cpuTime+" ms");
|
||||
|
||||
$(".cpu_result_ovl").removeClass("alert-warning").addClass("alert-success").html("Percentage Gain: "+Math.round(cpuTime/gpuTime*100)+"%");
|
||||
$('.run_btn').prop('disabled', false);
|
||||
}
|
||||
|
||||
/*
|
||||
bench(function(){
|
||||
setupBenchCode('gpu');
|
||||
}, 100, [], this);
|
||||
|
||||
bench(function(){
|
||||
setupBenchCode('cpu');
|
||||
}, 100, [], this);
|
||||
*/
|
||||
@ -1,88 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>GPU.JS! : CUDA for the browser, in JS</title>
|
||||
<link href="bootstrap.min.css" rel="stylesheet">
|
||||
<script src="jquery.js"></script>
|
||||
<script src="bootstrap.min.js"></script>
|
||||
|
||||
<!-- gpu.js scripts -->
|
||||
<script src="../bin/gpu.js"></script>
|
||||
<script src="gpu-demo.js"></script>
|
||||
|
||||
<!-- JS Highlight code -->
|
||||
<link rel="stylesheet" href="./highlight/styles/default.css">
|
||||
<script src="./highlight//highlight.pack.js"></script>
|
||||
<script>$(function() { hljs.initHighlightingOnLoad(); } );</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1>GPU.js! <small>CUDA for the Browser</small></h1>
|
||||
</div>
|
||||
|
||||
<h2>Argument startup Initialiser</h2>
|
||||
<pre><code class="javascript">//
|
||||
// Argument Startup code
|
||||
//
|
||||
var _length = 2048;
|
||||
var set_a = [];
|
||||
var set_b = [];
|
||||
for(var n = 0; n < _length; n++) {
|
||||
var randA = Math.random()*100.0;
|
||||
var randB = Math.random()*100.0;
|
||||
set_a.push(randA);
|
||||
set_b.push(randB);
|
||||
}</code></pre>
|
||||
|
||||
<h2>GPU.JS benchmarkCode</h2>
|
||||
<pre><code class="javascript">//
|
||||
// GPU.JS setup code
|
||||
//
|
||||
// mode = "auto" / "gpu" / "cpu".
|
||||
// For automatic detection, GPU only mode, or CPU only mode
|
||||
//
|
||||
function benchmarkCode(mode) {
|
||||
var runFunction = GPU(function(a, b) {
|
||||
var res = 0.0;
|
||||
var i = 0.0;
|
||||
for(i = 0.0; i < 500000; ++i) {
|
||||
res += Math.sqrt( a[this.thread.x] * b[this.thread.x] );
|
||||
}
|
||||
|
||||
return res;
|
||||
}, {
|
||||
dimensions : [2048],
|
||||
mode : mode
|
||||
});
|
||||
|
||||
// Execute the compiled GPU.JS script
|
||||
c = runFunction(set_a, set_b);
|
||||
}</code></pre>
|
||||
|
||||
<h2>GPU.JS benchmark run</h2>
|
||||
<pre><code class="javascript">bench(function(){
|
||||
setupBenchCode('gpu');
|
||||
}, 10, [], this);</code></pre>
|
||||
<div class="result">
|
||||
<div class="cpu_result_gpu alert alert-warning" role="alert">GPU: Click Run!</div>
|
||||
</div>
|
||||
|
||||
<h2>GPU.JS (CPU fallback) benchmark run</h2>
|
||||
<pre><code class="javascript">bench(function(){
|
||||
setupBenchCode('cpu');
|
||||
}, 10, [], this);</code></pre>
|
||||
<div class="result">
|
||||
<div class="cpu_result_cpu alert alert-warning" role="alert">CPU: Click Run!</div>
|
||||
</div>
|
||||
<div class="result">
|
||||
<div class="cpu_result_ovl alert alert-warning" role="alert">Percentage Gain: Click Run!</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
</script>
|
||||
<button class="run_btn btn btn-default" onclick="runBenchmark();">Run!</button>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,24 +0,0 @@
|
||||
Copyright (c) 2006, Ivan Sagalaev
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of highlight.js nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
|
||||
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@ -1,134 +0,0 @@
|
||||
# Highlight.js
|
||||
|
||||
[](https://travis-ci.org/isagalaev/highlight.js)
|
||||
|
||||
Highlight.js is a syntax highlighter written in JavaScript. It works in
|
||||
the browser as well as on the server. It works with pretty much any
|
||||
markup, doesn’t depend on any framework and has automatic language
|
||||
detection.
|
||||
|
||||
## Getting Started
|
||||
|
||||
The bare minimum for using highlight.js on a web page is linking to the
|
||||
library along with one of the styles and calling
|
||||
[`initHighlightingOnLoad`][1]:
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="/path/to/styles/default.css">
|
||||
<script src="/path/to/highlight.pack.js"></script>
|
||||
<script>hljs.initHighlightingOnLoad();</script>
|
||||
```
|
||||
|
||||
This will find and highlight code inside of `<pre><code>` tags; it tries
|
||||
to detect the language automatically. If automatic detection doesn’t
|
||||
work for you, you can specify the language in the `class` attribute:
|
||||
|
||||
```html
|
||||
<pre><code class="html">...</code></pre>
|
||||
```
|
||||
|
||||
The list of supported language classes is available in the [class
|
||||
reference][2]. Classes can also be prefixed with either `language-` or
|
||||
`lang-`.
|
||||
|
||||
To disable highlighting altogether use the `nohighlight` class:
|
||||
|
||||
```html
|
||||
<pre><code class="nohighlight">...</code></pre>
|
||||
```
|
||||
|
||||
## Custom Initialization
|
||||
|
||||
When you need a bit more control over the initialization of
|
||||
highlight.js, you can use the [`highlightBlock`][3] and [`configure`][4]
|
||||
functions. This allows you to control *what* to highlight and *when*.
|
||||
|
||||
Here’s an equivalent way to calling [`initHighlightingOnLoad`][1] using
|
||||
jQuery:
|
||||
|
||||
```javascript
|
||||
$(document).ready(function() {
|
||||
$('pre code').each(function(i, block) {
|
||||
hljs.highlightBlock(block);
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
You can use any tags instead of `<pre><code>` to mark up your code. If
|
||||
you don't use a container that preserve line breaks you will need to
|
||||
configure highlight.js to use the `<br>` tag:
|
||||
|
||||
```javascript
|
||||
hljs.configure({useBR: true});
|
||||
|
||||
$('div.code').each(function(i, block) {
|
||||
hljs.highlightBlock(block);
|
||||
});
|
||||
```
|
||||
|
||||
For other options refer to the documentation for [`configure`][4].
|
||||
|
||||
|
||||
## Web Workers
|
||||
|
||||
You can run highlighting inside a web worker to avoid freezing the browser
|
||||
window while dealing with very big chunks of code.
|
||||
|
||||
In your main script:
|
||||
|
||||
```javascript
|
||||
addEventListener('load', function() {
|
||||
var code = document.querySelector('#code');
|
||||
var worker = new Worker('worker.js');
|
||||
worker.onmessage = function(event) { code.innerHTML = event.data; }
|
||||
worker.postMessage(code.textContent);
|
||||
})
|
||||
```
|
||||
|
||||
In worker.js:
|
||||
|
||||
```javascript
|
||||
onmessage = function(event) {
|
||||
importScripts('<path>/highlight.pack.js');
|
||||
var result = self.hljs.highlightAuto(event.data);
|
||||
postMessage(result.value);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Getting the Library
|
||||
|
||||
You can get highlight.js as a hosted, or custom-build, browser script or
|
||||
as a server module. Right out of the box the browser script supports
|
||||
both AMD and CommonJS, so if you wish you can use RequireJS or
|
||||
Browserify without having to build from source. The server module also
|
||||
works perfectly fine with Browserify, but there is the option to use a
|
||||
build specific to browsers rather than something meant for a server.
|
||||
Head over to the [download page][5] for all the options.
|
||||
|
||||
**Note:** the library is not supposed to work straight from the source
|
||||
on GitHub; it requires building. If none of the pre-packaged options
|
||||
work for you refer to the [building documentation][6].
|
||||
|
||||
## License
|
||||
|
||||
Highlight.js is released under the BSD License. See [LICENSE][7] file
|
||||
for details.
|
||||
|
||||
## Links
|
||||
|
||||
The official site for the library is at <https://highlightjs.org/>.
|
||||
|
||||
Further in-depth documentation for the API and other topics is at
|
||||
<http://highlightjs.readthedocs.org/>.
|
||||
|
||||
Authors and contributors are listed in the [AUTHORS.en.txt][8] file.
|
||||
|
||||
[1]: http://highlightjs.readthedocs.org/en/latest/api.html#inithighlightingonload
|
||||
[2]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html
|
||||
[3]: http://highlightjs.readthedocs.org/en/latest/api.html#highlightblock-block
|
||||
[4]: http://highlightjs.readthedocs.org/en/latest/api.html#configure-options
|
||||
[5]: https://highlightjs.org/download/
|
||||
[6]: http://highlightjs.readthedocs.org/en/latest/building-testing.html
|
||||
[7]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE
|
||||
[8]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.en.txt
|
||||
@ -1,128 +0,0 @@
|
||||
# Highlight.js
|
||||
|
||||
Highlight.js — это подсветчик синтаксиса, написанный на JavaScript. Он работает
|
||||
и в браузере, и на сервере. Он работает с практически любой HTML разметкой, не
|
||||
зависит от каких-либо фреймворков и умеет автоматически определять язык.
|
||||
|
||||
|
||||
## Начало работы
|
||||
|
||||
Минимум, что нужно сделать для использования highlight.js на веб-странице — это
|
||||
подключить библиотеку, CSS-стили и вызывать [`initHighlightingOnLoad`][1]:
|
||||
|
||||
```html
|
||||
<link rel="stylesheet" href="/path/to/styles/default.css">
|
||||
<script src="/path/to/highlight.pack.js"></script>
|
||||
<script>hljs.initHighlightingOnLoad();</script>
|
||||
```
|
||||
|
||||
Библиотека найдёт и раскрасит код внутри тегов `<pre><code>`, попытавшись
|
||||
автоматически определить язык. Когда автоопределение не срабатывает, можно явно
|
||||
указать язык в атрибуте class:
|
||||
|
||||
```html
|
||||
<pre><code class="html">...</code></pre>
|
||||
```
|
||||
|
||||
Список поддерживаемых классов языков доступен в [справочнике по классам][8].
|
||||
Класс также можно предваоить префиксами `language-` или `lang-`.
|
||||
|
||||
Чтобы отключить подсветку для какого-то блока, используйте класс `nohighlight`:
|
||||
|
||||
```html
|
||||
<pre><code class="nohighlight">...</code></pre>
|
||||
```
|
||||
|
||||
## Инициализация вручную
|
||||
|
||||
Чтобы иметь чуть больше контроля за инициализацией подсветки, вы можете
|
||||
использовать функции [`highlightBlock`][2] и [`configure`][3]. Таким образом
|
||||
можно управлять тем, *что* подсвечивать и *когда*.
|
||||
|
||||
Вот пример инициализация, эквивалентной вызову [`initHighlightingOnLoad`][1], но
|
||||
с использованием jQuery:
|
||||
|
||||
```javascript
|
||||
$(document).ready(function() {
|
||||
$('pre code').each(function(i, block) {
|
||||
hljs.highlightBlock(block);
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
Вы можете использовать любые теги разметки вместо `<pre><code>`. Если
|
||||
используете контейнер, не сохраняющий переводы строк, вам нужно сказать
|
||||
highlight.js использовать для них тег `<br>`:
|
||||
|
||||
```javascript
|
||||
hljs.configure({useBR: true});
|
||||
|
||||
$('div.code').each(function(i, block) {
|
||||
hljs.highlightBlock(block);
|
||||
});
|
||||
```
|
||||
|
||||
Другие опции можно найти в документации функции [`configure`][3].
|
||||
|
||||
|
||||
## Web Workers
|
||||
|
||||
Подсветку можно запустить внутри web worker'а, чтобы не подвешивать окно
|
||||
браузера при работе с большими кусками кода.
|
||||
|
||||
В основном скрипте:
|
||||
|
||||
```javascript
|
||||
addEventListener('load', function() {
|
||||
var code = document.querySelector('#code');
|
||||
var worker = new Worker('worker.js');
|
||||
worker.onmessage = function(event) { code.innerHTML = event.data; }
|
||||
worker.postMessage(code.textContent);
|
||||
})
|
||||
```
|
||||
|
||||
В worker.js:
|
||||
|
||||
```javascript
|
||||
onmessage = function(event) {
|
||||
importScripts('<path>/highlight.pack.js');
|
||||
var result = self.hljs.highlightAuto(event.data);
|
||||
postMessage(result.value);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Установка библиотеки
|
||||
|
||||
Highlight.js можно использовать в браузере прямо с CDN хостинга или скачать
|
||||
индивидуальную сборку, а также установив модуль на сервере. На
|
||||
[страница загрузки][4] подробно описаны все варианты.
|
||||
|
||||
Обратите внимание, что библиотека не предназначена для использования в виде
|
||||
исходного кода на GitHub, а требует отдельной сборки. Если вам не подходит ни
|
||||
один из готовых вариантов, читайте [документацию по сборке][5].
|
||||
|
||||
|
||||
## Лицензия
|
||||
|
||||
Highlight.js распространяется под лицензией BSD. Подробнее читайте файл
|
||||
[LICENSE][10].
|
||||
|
||||
|
||||
## Ссылки
|
||||
|
||||
Официальный сайт билиотеки расположен по адресу <https://highlightjs.org/>.
|
||||
|
||||
Более подробная документация по API и другим темам расположена на
|
||||
<http://highlightjs.readthedocs.org/>.
|
||||
|
||||
Авторы и контрибьютора перечислена в файле [AUTHORS.ru.txt][9] file.
|
||||
|
||||
[1]: http://highlightjs.readthedocs.org/en/latest/api.html#inithighlightingonload
|
||||
[2]: http://highlightjs.readthedocs.org/en/latest/api.html#highlightblock-block
|
||||
[3]: http://highlightjs.readthedocs.org/en/latest/api.html#configure-options
|
||||
[4]: https://highlightjs.org/download/
|
||||
[5]: http://highlightjs.readthedocs.org/en/latest/building-testing.html
|
||||
[8]: http://highlightjs.readthedocs.org/en/latest/css-classes-reference.html
|
||||
[9]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.ru.txt
|
||||
[10]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE
|
||||
File diff suppressed because one or more lines are too long
@ -1,108 +0,0 @@
|
||||
/*!
|
||||
* Agate by Taufik Nurrohman <https://github.com/tovic>
|
||||
* ----------------------------------------------------
|
||||
*
|
||||
* #ade5fc
|
||||
* #a2fca2
|
||||
* #c6b4f0
|
||||
* #d36363
|
||||
* #fcc28c
|
||||
* #fc9b9b
|
||||
* #ffa
|
||||
* #fff
|
||||
* #333
|
||||
* #62c8f3
|
||||
* #888
|
||||
*
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #333;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-code,
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-tag {
|
||||
color: #62c8f3;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #ade5fc;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-bullet {
|
||||
color: #a2fca2;
|
||||
}
|
||||
|
||||
.hljs-type,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-attribute,
|
||||
.hljs-quote,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name {
|
||||
color: #ffa;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #d36363;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal {
|
||||
color: #fcc28c;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-deletion,
|
||||
.hljs-code {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
color: #c6b4f0;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #fc9b9b;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #fc9b9b;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #a2fca2;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.hljs a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.hljs a:focus,
|
||||
.hljs a:hover {
|
||||
color: inherit;
|
||||
text-decoration: underline;
|
||||
}
|
||||
@ -1,66 +0,0 @@
|
||||
/*
|
||||
Date: 24 Fev 2015
|
||||
Author: Pedro Oliveira <kanytu@gmail . com>
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
color: #a9b7c6;
|
||||
background: #282b2e;
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-literal,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #6897BB;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-deletion {
|
||||
color: #cc7832;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-link {
|
||||
color: #629755;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #bbb529;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-attribute,
|
||||
.hljs-addition {
|
||||
color: #6A8759;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-title,
|
||||
.hljs-type {
|
||||
color: #ffc66d;
|
||||
}
|
||||
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #e8bf6a;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,88 +0,0 @@
|
||||
/*
|
||||
|
||||
Arduino® Light Theme - Stefania Mellai <s.mellai@arduino.cc>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #FFFFFF;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #434f54;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-attribute,
|
||||
.hljs-selector-tag,
|
||||
.hljs-doctag,
|
||||
.hljs-name {
|
||||
color: #00979D;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-literal,
|
||||
.hljs-bullet,
|
||||
.hljs-code,
|
||||
.hljs-addition {
|
||||
color: #D35400;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-symbol,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-link,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo {
|
||||
color: #00979D;
|
||||
}
|
||||
|
||||
.hljs-type,
|
||||
.hljs-string,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-quote,
|
||||
.hljs-template-tag,
|
||||
.hljs-deletion {
|
||||
color: #005C5F;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #880000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-comment {
|
||||
color: rgba(149,165,166,.8);
|
||||
}
|
||||
|
||||
.hljs-meta-keyword {
|
||||
color: #728E00;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #728E00;
|
||||
color: #434f54;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-function {
|
||||
color: #728E00;
|
||||
}
|
||||
|
||||
.hljs-number {
|
||||
color: #8A7B52;
|
||||
}
|
||||
@ -1,73 +0,0 @@
|
||||
/*
|
||||
Date: 17.V.2011
|
||||
Author: pumbur <pumbur@pumbur.net>
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #222;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.hljs-section {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-meta {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-regexp {
|
||||
color: #ffcc33;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-addition {
|
||||
color: #00cc66;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-link {
|
||||
color: #32aaee;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #6644aa;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-variable,
|
||||
.hljs-deletion,
|
||||
.hljs-template-tag {
|
||||
color: #bb1166;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-doctag,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
@ -1,45 +0,0 @@
|
||||
/*
|
||||
|
||||
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-section,
|
||||
.hljs-addition,
|
||||
.hljs-attribute,
|
||||
.hljs-link {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-meta,
|
||||
.hljs-deletion {
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-type,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
@ -1,83 +0,0 @@
|
||||
/* Base16 Atelier Cave Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Cave Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #7e7887;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #be4678;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #aa573c;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #2a9292;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #576ddb;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #955ae7;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-addition {
|
||||
color: #19171c;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #be4678;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #2a9292;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #19171c;
|
||||
color: #8b8792;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,85 +0,0 @@
|
||||
/* Base16 Atelier Cave Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Cave Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #655f6d;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #be4678;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #aa573c;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #2a9292;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #576ddb;
|
||||
}
|
||||
|
||||
/* Atelier-Cave Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #955ae7;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-addition {
|
||||
color: #19171c;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #be4678;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #2a9292;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #efecf4;
|
||||
color: #585260;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Dune Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Dune Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #999580;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #d73737;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #b65611;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #60ac39;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #6684e1;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #b854d4;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #20201d;
|
||||
color: #a6a28c;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Dune Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Dune Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #7d7a68;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #d73737;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #b65611;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #60ac39;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #6684e1;
|
||||
}
|
||||
|
||||
/* Atelier-Dune Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #b854d4;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #fefbec;
|
||||
color: #6e6b5e;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Estuary Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Estuary Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #878573;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #ba6236;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #ae7313;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #7d9726;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #36a166;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #5f9182;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-addition {
|
||||
color: #22221b;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #ba6236;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #7d9726;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #22221b;
|
||||
color: #929181;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Estuary Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Estuary Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #6c6b5a;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #ba6236;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #ae7313;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #7d9726;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #36a166;
|
||||
}
|
||||
|
||||
/* Atelier-Estuary Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #5f9182;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-addition {
|
||||
color: #22221b;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #ba6236;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #7d9726;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #f4f3ec;
|
||||
color: #5f5e4e;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Forest Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Forest Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #9c9491;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #f22c40;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #df5320;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #7b9726;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #407ee7;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #6666ea;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #1b1918;
|
||||
color: #a8a19f;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Forest Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Forest Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #766e6b;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #f22c40;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #df5320;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #7b9726;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #407ee7;
|
||||
}
|
||||
|
||||
/* Atelier-Forest Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #6666ea;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #f1efee;
|
||||
color: #68615e;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Heath Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Heath Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #9e8f9e;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #ca402b;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #a65926;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #918b3b;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #516aec;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #7b59c0;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #1b181b;
|
||||
color: #ab9bab;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Heath Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Heath Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #776977;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #ca402b;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #a65926;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #918b3b;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #516aec;
|
||||
}
|
||||
|
||||
/* Atelier-Heath Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #7b59c0;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #f7f3f7;
|
||||
color: #695d69;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Lakeside Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Lakeside Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #7195a8;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #d22d72;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #935c25;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #568c3b;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #257fad;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #6b6bb8;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #161b1d;
|
||||
color: #7ea2b4;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Lakeside Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Lakeside Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #5a7b8c;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #d22d72;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #935c25;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #568c3b;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #257fad;
|
||||
}
|
||||
|
||||
/* Atelier-Lakeside Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #6b6bb8;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #ebf8ff;
|
||||
color: #516d7b;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Plateau Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Plateau Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #7e7777;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #ca4949;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #b45a3c;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #4b8b8b;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #7272ca;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #8464c4;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-addition {
|
||||
color: #1b1818;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #ca4949;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #4b8b8b;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #1b1818;
|
||||
color: #8a8585;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Plateau Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Plateau Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #655d5d;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #ca4949;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #b45a3c;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #4b8b8b;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #7272ca;
|
||||
}
|
||||
|
||||
/* Atelier-Plateau Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #8464c4;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-addition {
|
||||
color: #1b1818;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #ca4949;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #4b8b8b;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #f4ecec;
|
||||
color: #585050;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Savanna Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Savanna Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #78877d;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #b16139;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #9f713c;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #489963;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #478c90;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #55859b;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-addition {
|
||||
color: #171c19;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #b16139;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #489963;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #171c19;
|
||||
color: #87928a;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/* Base16 Atelier Savanna Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Savanna Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #5f6d64;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #b16139;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #9f713c;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #489963;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #478c90;
|
||||
}
|
||||
|
||||
/* Atelier-Savanna Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #55859b;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-addition {
|
||||
color: #171c19;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #b16139;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #489963;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #ecf4ee;
|
||||
color: #526057;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Seaside Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Seaside Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #809980;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #e6193c;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #87711d;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #29a329;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #3d62f5;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #ad2bee;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #131513;
|
||||
color: #8ca68c;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Seaside Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Seaside Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #687d68;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #e6193c;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #87711d;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #29a329;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #3d62f5;
|
||||
}
|
||||
|
||||
/* Atelier-Seaside Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #ad2bee;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #f4fbf4;
|
||||
color: #5e6e5e;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Sulphurpool Dark - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Sulphurpool Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #898ea4;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #c94922;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #c76b29;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #ac9739;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #3d8fd1;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #6679cc;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #202746;
|
||||
color: #979db4;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
/* Base16 Atelier Sulphurpool Light - Theme */
|
||||
/* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */
|
||||
/* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
|
||||
|
||||
/* Atelier-Sulphurpool Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #6b7394;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #c94922;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Orange */
|
||||
.hljs-number,
|
||||
.hljs-meta,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #c76b29;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #ac9739;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #3d8fd1;
|
||||
}
|
||||
|
||||
/* Atelier-Sulphurpool Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #6679cc;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #f5f7ff;
|
||||
color: #5e6687;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,64 +0,0 @@
|
||||
/*
|
||||
|
||||
Brown Paper style from goldblog.com.ua (c) Zaripov Yura <yur4ik7@ukr.net>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background:#b7a68e url(./brown-papersq.png);
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal {
|
||||
color:#005599;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #363c69;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-type,
|
||||
.hljs-attribute,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-built_in,
|
||||
.hljs-addition,
|
||||
.hljs-variable,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-link,
|
||||
.hljs-name {
|
||||
color: #2c009f;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-meta,
|
||||
.hljs-deletion {
|
||||
color: #802022;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-doctag,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-type,
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB |
@ -1,60 +0,0 @@
|
||||
/*
|
||||
codepen.io Embed Theme
|
||||
Author: Justin Perry <http://github.com/ourmaninamsterdam>
|
||||
Original theme - https://github.com/chriskempson/tomorrow-theme
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #222;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-regexp,
|
||||
.hljs-meta,
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-params,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-link,
|
||||
.hljs-deletion {
|
||||
color: #ab875d;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-title,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-type,
|
||||
.hljs-attribute {
|
||||
color: #9b869b;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-addition {
|
||||
color: #8f9c6c;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,71 +0,0 @@
|
||||
/*
|
||||
|
||||
Colorbrewer theme
|
||||
Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock <mike@ocks.org>
|
||||
Ported by Fabrício Tavares de Oliveira
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-meta,
|
||||
.hljs-symbol,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-addition {
|
||||
color: #756bb1;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #636363;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-literal,
|
||||
.hljs-bullet,
|
||||
.hljs-link {
|
||||
color: #31a354;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-variable {
|
||||
color: #88f;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-built_in,
|
||||
.hljs-doctag,
|
||||
.hljs-type,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-strong {
|
||||
color: #3182bd;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-attribute {
|
||||
color: #e6550d;
|
||||
}
|
||||
@ -1,63 +0,0 @@
|
||||
/*
|
||||
|
||||
Dark style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #444;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-section,
|
||||
.hljs-link {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-title,
|
||||
.hljs-name,
|
||||
.hljs-type,
|
||||
.hljs-attribute,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-built_in,
|
||||
.hljs-addition,
|
||||
.hljs-variable,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable {
|
||||
color: #d88;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-deletion,
|
||||
.hljs-meta {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-doctag,
|
||||
.hljs-type,
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
/*
|
||||
|
||||
Darkula color scheme from the JetBrains family of IDEs
|
||||
|
||||
*/
|
||||
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #2b2b2b;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
color: #bababa;
|
||||
}
|
||||
|
||||
.hljs-strong,
|
||||
.hljs-emphasis {
|
||||
color: #a8a8a2;
|
||||
}
|
||||
|
||||
.hljs-bullet,
|
||||
.hljs-quote,
|
||||
.hljs-link,
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-literal {
|
||||
color: #6896ba;
|
||||
}
|
||||
|
||||
.hljs-code,
|
||||
.hljs-selector-class {
|
||||
color: #a6e22e;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-section,
|
||||
.hljs-attribute,
|
||||
.hljs-name,
|
||||
.hljs-variable {
|
||||
color: #cb7832;
|
||||
}
|
||||
|
||||
.hljs-params {
|
||||
color: #b9b9b9;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-subst,
|
||||
.hljs-type,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-symbol,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-addition {
|
||||
color: #e0c46c;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-deletion,
|
||||
.hljs-meta {
|
||||
color: #7f7f7f;
|
||||
}
|
||||
@ -1,77 +0,0 @@
|
||||
/*
|
||||
|
||||
Original highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #F0F0F0;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-attribute,
|
||||
.hljs-selector-tag,
|
||||
.hljs-meta-keyword,
|
||||
.hljs-doctag,
|
||||
.hljs-name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-literal,
|
||||
.hljs-bullet,
|
||||
.hljs-code,
|
||||
.hljs-addition {
|
||||
color: #1F811F;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-symbol,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-link,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo {
|
||||
color: #BC6060;
|
||||
}
|
||||
|
||||
.hljs-type,
|
||||
.hljs-string,
|
||||
.hljs-number,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-quote,
|
||||
.hljs-template-tag,
|
||||
.hljs-deletion {
|
||||
color: #880000;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #880000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-comment {
|
||||
color: #888888;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #2B6EA1;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,97 +0,0 @@
|
||||
/*
|
||||
Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars)
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
color: #000;
|
||||
background: #f8f8ff;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #408080;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-subst {
|
||||
color: #954121;
|
||||
}
|
||||
|
||||
.hljs-number {
|
||||
color: #40a070;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-doctag {
|
||||
color: #219161;
|
||||
}
|
||||
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-section,
|
||||
.hljs-type {
|
||||
color: #19469d;
|
||||
}
|
||||
|
||||
.hljs-params {
|
||||
color: #00f;
|
||||
}
|
||||
|
||||
.hljs-title {
|
||||
color: #458;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-attribute {
|
||||
color: #000080;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #008080;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
color: #b68;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #990073;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name {
|
||||
color: #0086b3;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #999;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background: #fdd;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background: #dfd;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,71 +0,0 @@
|
||||
/*
|
||||
|
||||
FAR Style (c) MajestiC <majestic2k@gmail.com>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #000080;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #0ff;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-attribute,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-addition {
|
||||
color: #ff0;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-section,
|
||||
.hljs-type,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-variable {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-doctag,
|
||||
.hljs-deletion {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-literal,
|
||||
.hljs-link {
|
||||
color: #0f0;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #008080;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
88
demo/highlight/styles/foundation.css
vendored
88
demo/highlight/styles/foundation.css
vendored
@ -1,88 +0,0 @@
|
||||
/*
|
||||
Description: Foundation 4 docs style for highlight.js
|
||||
Author: Dan Allen <dan.j.allen@gmail.com>
|
||||
Website: http://foundation.zurb.com/docs/
|
||||
Version: 1.0
|
||||
Date: 2013-04-02
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #eee; color: black;
|
||||
}
|
||||
|
||||
.hljs-link,
|
||||
.hljs-emphasis,
|
||||
.hljs-attribute,
|
||||
.hljs-addition {
|
||||
color: #070;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong,
|
||||
.hljs-string,
|
||||
.hljs-deletion {
|
||||
color: #d14;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-quote,
|
||||
.hljs-comment {
|
||||
color: #998;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-title {
|
||||
color: #900;
|
||||
}
|
||||
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-type {
|
||||
color: #458;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #336699;
|
||||
}
|
||||
|
||||
.hljs-bullet {
|
||||
color: #997700;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #3344bb;
|
||||
}
|
||||
|
||||
.hljs-code,
|
||||
.hljs-number,
|
||||
.hljs-literal,
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #099;
|
||||
}
|
||||
|
||||
.hljs-regexp {
|
||||
background-color: #fff0ff;
|
||||
color: #880088;
|
||||
}
|
||||
|
||||
.hljs-symbol {
|
||||
color: #990073;
|
||||
}
|
||||
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #007700;
|
||||
}
|
||||
@ -1,71 +0,0 @@
|
||||
/**
|
||||
* GitHub Gist Theme
|
||||
* Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
background: white;
|
||||
padding: 0.5em;
|
||||
color: #333333;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-meta {
|
||||
color: #969896;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-strong,
|
||||
.hljs-emphasis,
|
||||
.hljs-quote {
|
||||
color: #df5000;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-type {
|
||||
color: #a71d5d;
|
||||
}
|
||||
|
||||
.hljs-literal,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-attribute {
|
||||
color: #0086b3;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-name {
|
||||
color: #63a35c;
|
||||
}
|
||||
|
||||
.hljs-tag {
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-attr,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo {
|
||||
color: #795da3;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
color: #55a532;
|
||||
background-color: #eaffea;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
color: #bd2c00;
|
||||
background-color: #ffecec;
|
||||
}
|
||||
|
||||
.hljs-link {
|
||||
text-decoration: underline;
|
||||
}
|
||||
@ -1,99 +0,0 @@
|
||||
/*
|
||||
|
||||
github.com style (c) Vasily Polovnyov <vast@whiteants.net>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
color: #333;
|
||||
background: #f8f8f8;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #998;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-subst {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-literal,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag .hljs-attr {
|
||||
color: #008080;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-doctag {
|
||||
color: #d14;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-selector-id {
|
||||
color: #900;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-subst {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.hljs-type,
|
||||
.hljs-class .hljs-title {
|
||||
color: #458;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-attribute {
|
||||
color: #000080;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
color: #009926;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet {
|
||||
color: #990073;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name {
|
||||
color: #0086b3;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #999;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background: #fdd;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background: #dfd;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,89 +0,0 @@
|
||||
/*
|
||||
|
||||
Google Code style (c) Aahan Krish <geekpanth3r@gmail.com>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #800;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-section,
|
||||
.hljs-title,
|
||||
.hljs-name {
|
||||
color: #008;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #660;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-regexp {
|
||||
color: #080;
|
||||
}
|
||||
|
||||
.hljs-literal,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-meta,
|
||||
.hljs-number,
|
||||
.hljs-link {
|
||||
color: #066;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-doctag,
|
||||
.hljs-type,
|
||||
.hljs-attr,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-params {
|
||||
color: #606;
|
||||
}
|
||||
|
||||
.hljs-attribute,
|
||||
.hljs-subst {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.hljs-formula {
|
||||
background-color: #eee;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #9B703F
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #baeeba;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #ffc8bd;
|
||||
}
|
||||
|
||||
.hljs-doctag,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
@ -1,101 +0,0 @@
|
||||
/*
|
||||
|
||||
grayscale style (c) MY Sun <simonmysun@gmail.com>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
color: #333;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #777;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-subst {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-literal {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-doctag,
|
||||
.hljs-formula {
|
||||
color: #333;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-selector-id {
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-subst {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-type,
|
||||
.hljs-name {
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-tag {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.hljs-regexp {
|
||||
color: #333;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-link {
|
||||
color: #000;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat;
|
||||
}
|
||||
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name {
|
||||
color: #000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #999;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
color: #fff;
|
||||
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
color: #000;
|
||||
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,83 +0,0 @@
|
||||
/*
|
||||
* Hopscotch
|
||||
* by Jan T. Sott
|
||||
* https://github.com/idleberg/Hopscotch
|
||||
*
|
||||
* This work is licensed under the Creative Commons CC0 1.0 Universal License
|
||||
*/
|
||||
|
||||
/* Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #989498;
|
||||
}
|
||||
|
||||
/* Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-deletion {
|
||||
color: #dd464c;
|
||||
}
|
||||
|
||||
/* Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params {
|
||||
color: #fd8b19;
|
||||
}
|
||||
|
||||
/* Yellow */
|
||||
.hljs-class .hljs-title {
|
||||
color: #fdcc59;
|
||||
}
|
||||
|
||||
/* Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #8fc13e;
|
||||
}
|
||||
|
||||
/* Aqua */
|
||||
.hljs-meta {
|
||||
color: #149b93;
|
||||
}
|
||||
|
||||
/* Blue */
|
||||
.hljs-function,
|
||||
.hljs-section,
|
||||
.hljs-title {
|
||||
color: #1290bf;
|
||||
}
|
||||
|
||||
/* Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #c85e7c;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
background: #322931;
|
||||
color: #b9b5b8;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,102 +0,0 @@
|
||||
/*
|
||||
|
||||
vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid)
|
||||
|
||||
*/
|
||||
|
||||
/*background color*/
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #1d1f21;
|
||||
}
|
||||
|
||||
/*selection color*/
|
||||
.hljs::selection,
|
||||
.hljs span::selection {
|
||||
background: #373b41;
|
||||
}
|
||||
|
||||
.hljs::-moz-selection,
|
||||
.hljs span::-moz-selection {
|
||||
background: #373b41;
|
||||
}
|
||||
|
||||
/*foreground color*/
|
||||
.hljs {
|
||||
color: #c5c8c6;
|
||||
}
|
||||
|
||||
/*color: fg_yellow*/
|
||||
.hljs-title,
|
||||
.hljs-name {
|
||||
color: #f0c674;
|
||||
}
|
||||
|
||||
/*color: fg_comment*/
|
||||
.hljs-comment,
|
||||
.hljs-meta,
|
||||
.hljs-meta .hljs-keyword {
|
||||
color: #707880;
|
||||
}
|
||||
|
||||
/*color: fg_red*/
|
||||
.hljs-number,
|
||||
.hljs-symbol,
|
||||
.hljs-literal,
|
||||
.hljs-deletion,
|
||||
.hljs-link {
|
||||
color: #cc6666
|
||||
}
|
||||
|
||||
/*color: fg_green*/
|
||||
.hljs-string,
|
||||
.hljs-doctag,
|
||||
.hljs-addition,
|
||||
.hljs-regexp,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo {
|
||||
color: #b5bd68;
|
||||
}
|
||||
|
||||
/*color: fg_purple*/
|
||||
.hljs-attribute,
|
||||
.hljs-code,
|
||||
.hljs-selector-id {
|
||||
color: #b294bb;
|
||||
}
|
||||
|
||||
/*color: fg_blue*/
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-bullet,
|
||||
.hljs-tag {
|
||||
color: #81a2be;
|
||||
}
|
||||
|
||||
/*color: fg_aqua*/
|
||||
.hljs-subst,
|
||||
.hljs-variable,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable {
|
||||
color: #8abeb7;
|
||||
}
|
||||
|
||||
/*color: fg_orange*/
|
||||
.hljs-type,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-quote,
|
||||
.hljs-section,
|
||||
.hljs-selector-class {
|
||||
color: #de935f;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,97 +0,0 @@
|
||||
/*
|
||||
|
||||
Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
color: #000;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.hljs-subst,
|
||||
.hljs-title {
|
||||
font-weight: normal;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #808080;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #808000;
|
||||
}
|
||||
|
||||
.hljs-tag {
|
||||
background: #efefef;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-literal,
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-type,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
font-weight: bold;
|
||||
color: #000080;
|
||||
}
|
||||
|
||||
.hljs-attribute,
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
font-weight: bold;
|
||||
color: #0000ff;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.hljs-string {
|
||||
color: #008000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-formula {
|
||||
color: #000;
|
||||
background: #d0eded;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-doctag {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #660e7a;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background: #baeeba;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background: #ffc8bd;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,73 +0,0 @@
|
||||
/*
|
||||
IR_Black style (c) Vasily Mikhailitchenko <vaskas@programica.ru>
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #000;
|
||||
color: #f8f8f8;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-meta {
|
||||
color: #7c7c7c;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-tag,
|
||||
.hljs-name {
|
||||
color: #96cbfe;
|
||||
}
|
||||
|
||||
.hljs-attribute,
|
||||
.hljs-selector-id {
|
||||
color: #ffffb6;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-addition {
|
||||
color: #a8ff60;
|
||||
}
|
||||
|
||||
.hljs-subst {
|
||||
color: #daefa3;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
color: #e9c062;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-type,
|
||||
.hljs-doctag {
|
||||
color: #ffffb6;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-literal {
|
||||
color: #c6c5fe;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-deletion {
|
||||
color:#ff73fd;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
/*
|
||||
Name: Kimbie (dark)
|
||||
Author: Jan T. Sott
|
||||
License: Creative Commons Attribution-ShareAlike 4.0 Unported License
|
||||
URL: https://github.com/idleberg/Kimbie-highlight.js
|
||||
*/
|
||||
|
||||
/* Kimbie Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #d6baad;
|
||||
}
|
||||
|
||||
/* Kimbie Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-meta {
|
||||
color: #dc3958;
|
||||
}
|
||||
|
||||
/* Kimbie Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-deletion,
|
||||
.hljs-link {
|
||||
color: #f79a32;
|
||||
}
|
||||
|
||||
/* Kimbie Yellow */
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-attribute {
|
||||
color: #f06431;
|
||||
}
|
||||
|
||||
/* Kimbie Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #889b4a;
|
||||
}
|
||||
|
||||
/* Kimbie Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-function {
|
||||
color: #98676a;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #221a0f;
|
||||
color: #d3af86;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
/*
|
||||
Name: Kimbie (light)
|
||||
Author: Jan T. Sott
|
||||
License: Creative Commons Attribution-ShareAlike 4.0 Unported License
|
||||
URL: https://github.com/idleberg/Kimbie-highlight.js
|
||||
*/
|
||||
|
||||
/* Kimbie Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #a57a4c;
|
||||
}
|
||||
|
||||
/* Kimbie Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-meta {
|
||||
color: #dc3958;
|
||||
}
|
||||
|
||||
/* Kimbie Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-deletion,
|
||||
.hljs-link {
|
||||
color: #f79a32;
|
||||
}
|
||||
|
||||
/* Kimbie Yellow */
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-attribute {
|
||||
color: #f06431;
|
||||
}
|
||||
|
||||
/* Kimbie Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #889b4a;
|
||||
}
|
||||
|
||||
/* Kimbie Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-function {
|
||||
color: #98676a;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #fbebd4;
|
||||
color: #84613d;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,70 +0,0 @@
|
||||
/*
|
||||
Description: Magula style for highligh.js
|
||||
Author: Ruslan Keba <rukeba@gmail.com>
|
||||
Website: http://rukeba.com/
|
||||
Version: 1.0
|
||||
Date: 2009-01-03
|
||||
Music: Aphex Twin / Xtal
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-title,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-attribute,
|
||||
.hljs-addition,
|
||||
.hljs-variable,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable {
|
||||
color: #050;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-link {
|
||||
color: #800;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-meta {
|
||||
color: #00e;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-doctag,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-built_in,
|
||||
.hljs-tag,
|
||||
.hljs-name {
|
||||
font-weight: bold;
|
||||
color: navy;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,59 +0,0 @@
|
||||
/*
|
||||
Five-color theme from a single blue hue.
|
||||
*/
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #eaeef3;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
color: #00193a;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-doctag,
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-comment {
|
||||
color: #738191;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-built_in,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-addition,
|
||||
.hljs-tag,
|
||||
.hljs-quote,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #0048ab;
|
||||
}
|
||||
|
||||
.hljs-meta,
|
||||
.hljs-subst,
|
||||
.hljs-symbol,
|
||||
.hljs-regexp,
|
||||
.hljs-attribute,
|
||||
.hljs-deletion,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-link,
|
||||
.hljs-bullet {
|
||||
color: #4c81c9;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
@ -1,83 +0,0 @@
|
||||
/*
|
||||
|
||||
Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #23241f;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-tag,
|
||||
.hljs-subst {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
.hljs-strong,
|
||||
.hljs-emphasis {
|
||||
color: #a8a8a2;
|
||||
}
|
||||
|
||||
.hljs-bullet,
|
||||
.hljs-quote,
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-literal,
|
||||
.hljs-link {
|
||||
color: #ae81ff;
|
||||
}
|
||||
|
||||
.hljs-code,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-selector-class {
|
||||
color: #a6e22e;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-name,
|
||||
.hljs-attr {
|
||||
color: #f92672;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-attribute {
|
||||
color: #66d9ef;
|
||||
}
|
||||
|
||||
.hljs-params,
|
||||
.hljs-class .hljs-title {
|
||||
color: #f8f8f2;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-type,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-addition,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #e6db74;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-deletion,
|
||||
.hljs-meta {
|
||||
color: #75715e;
|
||||
}
|
||||
@ -1,70 +0,0 @@
|
||||
/*
|
||||
Monokai style - ported by Luigi Maselli - http://grigio.org
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #272822; color: #ddd;
|
||||
}
|
||||
|
||||
.hljs-tag,
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-strong,
|
||||
.hljs-name {
|
||||
color: #f92672;
|
||||
}
|
||||
|
||||
.hljs-code {
|
||||
color: #66d9ef;
|
||||
}
|
||||
|
||||
.hljs-class .hljs-title {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.hljs-attribute,
|
||||
.hljs-symbol,
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
color: #bf79db;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-bullet,
|
||||
.hljs-subst,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-emphasis,
|
||||
.hljs-type,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-addition,
|
||||
.hljs-variable,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable {
|
||||
color: #a6e22e;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-deletion,
|
||||
.hljs-meta {
|
||||
color: #75715e;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-doctag,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-type,
|
||||
.hljs-selector-id {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,88 +0,0 @@
|
||||
/**
|
||||
* Obsidian style
|
||||
* ported by Alexander Marenin (http://github.com/ioncreature)
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #282b2e;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-selector-id {
|
||||
color: #93c763;
|
||||
}
|
||||
|
||||
.hljs-number {
|
||||
color: #ffcd22;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
color: #e0e2e4;
|
||||
}
|
||||
|
||||
.hljs-attribute {
|
||||
color: #668bb0;
|
||||
}
|
||||
|
||||
.hljs-code,
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-section {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
color: #d39745;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #557182;
|
||||
}
|
||||
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-bullet,
|
||||
.hljs-subst,
|
||||
.hljs-emphasis,
|
||||
.hljs-type,
|
||||
.hljs-built_in,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-addition,
|
||||
.hljs-variable,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable {
|
||||
color: #8cbbad;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-symbol {
|
||||
color: #ec7600;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-deletion {
|
||||
color: #818e96;
|
||||
}
|
||||
|
||||
.hljs-selector-class {
|
||||
color: #A082BD
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-doctag,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-type,
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,72 +0,0 @@
|
||||
/*
|
||||
Paraíso (dark)
|
||||
Created by Jan T. Sott (http://github.com/idleberg)
|
||||
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
|
||||
*/
|
||||
|
||||
/* Paraíso Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #8d8687;
|
||||
}
|
||||
|
||||
/* Paraíso Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-meta {
|
||||
color: #ef6155;
|
||||
}
|
||||
|
||||
/* Paraíso Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-deletion {
|
||||
color: #f99b15;
|
||||
}
|
||||
|
||||
/* Paraíso Yellow */
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-attribute {
|
||||
color: #fec418;
|
||||
}
|
||||
|
||||
/* Paraíso Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #48b685;
|
||||
}
|
||||
|
||||
/* Paraíso Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #815ba4;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #2f1e2e;
|
||||
color: #a39e9b;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,72 +0,0 @@
|
||||
/*
|
||||
Paraíso (light)
|
||||
Created by Jan T. Sott (http://github.com/idleberg)
|
||||
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
|
||||
*/
|
||||
|
||||
/* Paraíso Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #776e71;
|
||||
}
|
||||
|
||||
/* Paraíso Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-link,
|
||||
.hljs-meta {
|
||||
color: #ef6155;
|
||||
}
|
||||
|
||||
/* Paraíso Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-deletion {
|
||||
color: #f99b15;
|
||||
}
|
||||
|
||||
/* Paraíso Yellow */
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-attribute {
|
||||
color: #fec418;
|
||||
}
|
||||
|
||||
/* Paraíso Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #48b685;
|
||||
}
|
||||
|
||||
/* Paraíso Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #815ba4;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #e7e9db;
|
||||
color: #4f424c;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,83 +0,0 @@
|
||||
/*
|
||||
|
||||
Pojoaque Style by Jason Tate
|
||||
http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html
|
||||
Based on Solarized Style from http://ethanschoonover.com/solarized
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
color: #dccf8f;
|
||||
background: url(./pojoaque.jpg) repeat scroll left top #181914;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #586e75;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-addition {
|
||||
color: #b64926;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-string,
|
||||
.hljs-doctag,
|
||||
.hljs-regexp {
|
||||
color: #468966;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-built_in,
|
||||
.hljs-name {
|
||||
color: #ffb03b;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-type,
|
||||
.hljs-tag {
|
||||
color: #b58900;
|
||||
}
|
||||
|
||||
.hljs-attribute {
|
||||
color: #b89859;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-link,
|
||||
.hljs-subst,
|
||||
.hljs-meta {
|
||||
color: #cb4b16;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
color: #dc322f;
|
||||
}
|
||||
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #d3a60c;
|
||||
}
|
||||
|
||||
.hljs-formula {
|
||||
background: #073642;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.2 KiB |
@ -1,106 +0,0 @@
|
||||
/*
|
||||
|
||||
Railscasts-like style (c) Visoft, Inc. (Damien White)
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #232323;
|
||||
color: #e6e1dc;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #bc9458;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #c26230;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-number,
|
||||
.hljs-regexp,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #a5c261;
|
||||
}
|
||||
|
||||
.hljs-subst {
|
||||
color: #519f50;
|
||||
}
|
||||
|
||||
.hljs-tag,
|
||||
.hljs-name {
|
||||
color: #e8bf6a;
|
||||
}
|
||||
|
||||
.hljs-type {
|
||||
color: #da4939;
|
||||
}
|
||||
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-attr,
|
||||
.hljs-link {
|
||||
color: #6d9cbe;
|
||||
}
|
||||
|
||||
.hljs-params {
|
||||
color: #d0d0ff;
|
||||
}
|
||||
|
||||
.hljs-attribute {
|
||||
color: #cda869;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #9b859d;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #ffc66d;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #144212;
|
||||
color: #e6e1dc;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #600;
|
||||
color: #e6e1dc;
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.hljs-selector-class {
|
||||
color: #9b703f;
|
||||
}
|
||||
|
||||
.hljs-selector-id {
|
||||
color: #8b98ab;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-link {
|
||||
text-decoration: underline;
|
||||
}
|
||||
@ -1,85 +0,0 @@
|
||||
/*
|
||||
|
||||
Style with support for rainbow parens
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #474949;
|
||||
color: #d1d9e1;
|
||||
}
|
||||
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #969896;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-addition {
|
||||
color: #cc99cc;
|
||||
}
|
||||
|
||||
.hljs-number,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo {
|
||||
color: #f99157;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-doctag,
|
||||
.hljs-regexp {
|
||||
color: #8abeb7;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-name,
|
||||
.hljs-section,
|
||||
.hljs-built_in {
|
||||
color: #b5bd68;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-selector-id,
|
||||
.hljs-class .hljs-title {
|
||||
color: #ffcc66;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-subst,
|
||||
.hljs-meta,
|
||||
.hljs-link {
|
||||
color: #f99157;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
color: #dc322f;
|
||||
}
|
||||
|
||||
.hljs-formula {
|
||||
background: #eee8d5;
|
||||
}
|
||||
|
||||
.hljs-attr,
|
||||
.hljs-attribute {
|
||||
color: #81a2be;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
@ -1,72 +0,0 @@
|
||||
/*
|
||||
|
||||
School Book style from goldblog.com.ua (c) Zaripov Yura <yur4ik7@ukr.net>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 15px 0.5em 0.5em 30px;
|
||||
font-size: 11px;
|
||||
line-height:16px;
|
||||
}
|
||||
|
||||
pre{
|
||||
background:#f6f6ae url(./school-book.png);
|
||||
border-top: solid 2px #d2e8b9;
|
||||
border-bottom: solid 1px #d2e8b9;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal {
|
||||
color:#005599;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.hljs,
|
||||
.hljs-subst {
|
||||
color: #3e5915;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-type,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-attribute,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-addition,
|
||||
.hljs-variable,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-link {
|
||||
color: #2c009f;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-deletion,
|
||||
.hljs-meta {
|
||||
color: #e60415;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-doctag,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-type,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 486 B |
@ -1,84 +0,0 @@
|
||||
/*
|
||||
|
||||
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #002b36;
|
||||
color: #839496;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #586e75;
|
||||
}
|
||||
|
||||
/* Solarized Green */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-addition {
|
||||
color: #859900;
|
||||
}
|
||||
|
||||
/* Solarized Cyan */
|
||||
.hljs-number,
|
||||
.hljs-string,
|
||||
.hljs-meta .hljs-meta-string,
|
||||
.hljs-literal,
|
||||
.hljs-doctag,
|
||||
.hljs-regexp {
|
||||
color: #2aa198;
|
||||
}
|
||||
|
||||
/* Solarized Blue */
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #268bd2;
|
||||
}
|
||||
|
||||
/* Solarized Yellow */
|
||||
.hljs-attribute,
|
||||
.hljs-attr,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-type {
|
||||
color: #b58900;
|
||||
}
|
||||
|
||||
/* Solarized Orange */
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-subst,
|
||||
.hljs-meta,
|
||||
.hljs-meta .hljs-keyword,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-link {
|
||||
color: #cb4b16;
|
||||
}
|
||||
|
||||
/* Solarized Red */
|
||||
.hljs-built_in,
|
||||
.hljs-deletion {
|
||||
color: #dc322f;
|
||||
}
|
||||
|
||||
.hljs-formula {
|
||||
background: #073642;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,84 +0,0 @@
|
||||
/*
|
||||
|
||||
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #fdf6e3;
|
||||
color: #657b83;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #93a1a1;
|
||||
}
|
||||
|
||||
/* Solarized Green */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-addition {
|
||||
color: #859900;
|
||||
}
|
||||
|
||||
/* Solarized Cyan */
|
||||
.hljs-number,
|
||||
.hljs-string,
|
||||
.hljs-meta .hljs-meta-string,
|
||||
.hljs-literal,
|
||||
.hljs-doctag,
|
||||
.hljs-regexp {
|
||||
color: #2aa198;
|
||||
}
|
||||
|
||||
/* Solarized Blue */
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #268bd2;
|
||||
}
|
||||
|
||||
/* Solarized Yellow */
|
||||
.hljs-attribute,
|
||||
.hljs-attr,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-type {
|
||||
color: #b58900;
|
||||
}
|
||||
|
||||
/* Solarized Orange */
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-subst,
|
||||
.hljs-meta,
|
||||
.hljs-meta .hljs-keyword,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-link {
|
||||
color: #cb4b16;
|
||||
}
|
||||
|
||||
/* Solarized Red */
|
||||
.hljs-built_in,
|
||||
.hljs-deletion {
|
||||
color: #dc322f;
|
||||
}
|
||||
|
||||
.hljs-formula {
|
||||
background: #eee8d5;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,102 +0,0 @@
|
||||
/*
|
||||
|
||||
Sunburst-like style (c) Vasily Polovnyov <vast@whiteants.net>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #000;
|
||||
color: #f8f8f8;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #aeaeae;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-type {
|
||||
color: #e28964;
|
||||
}
|
||||
|
||||
.hljs-string {
|
||||
color: #65b042;
|
||||
}
|
||||
|
||||
.hljs-subst {
|
||||
color: #daefa3;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
color: #e9c062;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-tag,
|
||||
.hljs-name {
|
||||
color: #89bdff;
|
||||
}
|
||||
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-doctag {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-number {
|
||||
color: #3387cc;
|
||||
}
|
||||
|
||||
.hljs-params,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #3e87e3;
|
||||
}
|
||||
|
||||
.hljs-attribute {
|
||||
color: #cda869;
|
||||
}
|
||||
|
||||
.hljs-meta {
|
||||
color: #8996a8;
|
||||
}
|
||||
|
||||
.hljs-formula {
|
||||
background-color: #0e2231;
|
||||
color: #f8f8f8;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #253b22;
|
||||
color: #f8f8f8;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #420e09;
|
||||
color: #f8f8f8;
|
||||
}
|
||||
|
||||
.hljs-selector-class {
|
||||
color: #9b703f;
|
||||
}
|
||||
|
||||
.hljs-selector-id {
|
||||
color: #8b98ab;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,75 +0,0 @@
|
||||
/* Tomorrow Night Blue Theme */
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
|
||||
/* Tomorrow Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #7285b7;
|
||||
}
|
||||
|
||||
/* Tomorrow Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-deletion {
|
||||
color: #ff9da4;
|
||||
}
|
||||
|
||||
/* Tomorrow Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-meta,
|
||||
.hljs-link {
|
||||
color: #ffc58f;
|
||||
}
|
||||
|
||||
/* Tomorrow Yellow */
|
||||
.hljs-attribute {
|
||||
color: #ffeead;
|
||||
}
|
||||
|
||||
/* Tomorrow Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #d1f1a9;
|
||||
}
|
||||
|
||||
/* Tomorrow Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #bbdaff;
|
||||
}
|
||||
|
||||
/* Tomorrow Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #ebbbff;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #002451;
|
||||
color: white;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
/* Tomorrow Night Bright Theme */
|
||||
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
|
||||
/* Tomorrow Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #969896;
|
||||
}
|
||||
|
||||
/* Tomorrow Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-deletion {
|
||||
color: #d54e53;
|
||||
}
|
||||
|
||||
/* Tomorrow Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-meta,
|
||||
.hljs-link {
|
||||
color: #e78c45;
|
||||
}
|
||||
|
||||
/* Tomorrow Yellow */
|
||||
.hljs-attribute {
|
||||
color: #e7c547;
|
||||
}
|
||||
|
||||
/* Tomorrow Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #b9ca4a;
|
||||
}
|
||||
|
||||
/* Tomorrow Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #7aa6da;
|
||||
}
|
||||
|
||||
/* Tomorrow Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #c397d8;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: black;
|
||||
color: #eaeaea;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
/* Tomorrow Night Eighties Theme */
|
||||
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
|
||||
/* Tomorrow Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
/* Tomorrow Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-deletion {
|
||||
color: #f2777a;
|
||||
}
|
||||
|
||||
/* Tomorrow Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-meta,
|
||||
.hljs-link {
|
||||
color: #f99157;
|
||||
}
|
||||
|
||||
/* Tomorrow Yellow */
|
||||
.hljs-attribute {
|
||||
color: #ffcc66;
|
||||
}
|
||||
|
||||
/* Tomorrow Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #99cc99;
|
||||
}
|
||||
|
||||
/* Tomorrow Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #6699cc;
|
||||
}
|
||||
|
||||
/* Tomorrow Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #cc99cc;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #2d2d2d;
|
||||
color: #cccccc;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,75 +0,0 @@
|
||||
/* Tomorrow Night Theme */
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
|
||||
/* Tomorrow Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #969896;
|
||||
}
|
||||
|
||||
/* Tomorrow Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-deletion {
|
||||
color: #cc6666;
|
||||
}
|
||||
|
||||
/* Tomorrow Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-meta,
|
||||
.hljs-link {
|
||||
color: #de935f;
|
||||
}
|
||||
|
||||
/* Tomorrow Yellow */
|
||||
.hljs-attribute {
|
||||
color: #f0c674;
|
||||
}
|
||||
|
||||
/* Tomorrow Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #b5bd68;
|
||||
}
|
||||
|
||||
/* Tomorrow Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #81a2be;
|
||||
}
|
||||
|
||||
/* Tomorrow Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #b294bb;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: #1d1f21;
|
||||
color: #c5c8c6;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,72 +0,0 @@
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
|
||||
/* Tomorrow Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #8e908c;
|
||||
}
|
||||
|
||||
/* Tomorrow Red */
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-tag,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-regexp,
|
||||
.hljs-deletion {
|
||||
color: #c82829;
|
||||
}
|
||||
|
||||
/* Tomorrow Orange */
|
||||
.hljs-number,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-literal,
|
||||
.hljs-type,
|
||||
.hljs-params,
|
||||
.hljs-meta,
|
||||
.hljs-link {
|
||||
color: #f5871f;
|
||||
}
|
||||
|
||||
/* Tomorrow Yellow */
|
||||
.hljs-attribute {
|
||||
color: #eab700;
|
||||
}
|
||||
|
||||
/* Tomorrow Green */
|
||||
.hljs-string,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition {
|
||||
color: #718c00;
|
||||
}
|
||||
|
||||
/* Tomorrow Blue */
|
||||
.hljs-title,
|
||||
.hljs-section {
|
||||
color: #4271ae;
|
||||
}
|
||||
|
||||
/* Tomorrow Purple */
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag {
|
||||
color: #8959a8;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
background: white;
|
||||
color: #4d4d4c;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,68 +0,0 @@
|
||||
/*
|
||||
|
||||
Visual Studio-like style based on original C# coloring by Jason Diamond <jason@diamond.name>
|
||||
|
||||
*/
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: white;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-variable {
|
||||
color: #008000;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-built_in,
|
||||
.hljs-name,
|
||||
.hljs-tag {
|
||||
color: #00f;
|
||||
}
|
||||
|
||||
.hljs-string,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-attribute,
|
||||
.hljs-literal,
|
||||
.hljs-template-tag,
|
||||
.hljs-template-variable,
|
||||
.hljs-type,
|
||||
.hljs-addition {
|
||||
color: #a31515;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-selector-attr,
|
||||
.hljs-selector-pseudo,
|
||||
.hljs-meta {
|
||||
color: #2b91af;
|
||||
}
|
||||
|
||||
.hljs-doctag {
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.hljs-attr {
|
||||
color: #f00;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-link {
|
||||
color: #00b0e8;
|
||||
}
|
||||
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,93 +0,0 @@
|
||||
/*
|
||||
|
||||
XCode style (c) Angel Garcia <angelgarcia.mail@gmail.com>
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #fff;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.hljs-comment,
|
||||
.hljs-quote {
|
||||
color: #006a00;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal {
|
||||
color: #aa0d91;
|
||||
}
|
||||
|
||||
.hljs-name {
|
||||
color: #008;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: #660;
|
||||
}
|
||||
|
||||
.hljs-string {
|
||||
color: #c41a16;
|
||||
}
|
||||
|
||||
.hljs-regexp,
|
||||
.hljs-link {
|
||||
color: #080;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-tag,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-number,
|
||||
.hljs-meta {
|
||||
color: #1c00cf;
|
||||
}
|
||||
|
||||
.hljs-section,
|
||||
.hljs-class .hljs-title,
|
||||
.hljs-type,
|
||||
.hljs-attr,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name,
|
||||
.hljs-params {
|
||||
color: #5c2699;
|
||||
}
|
||||
|
||||
.hljs-attribute,
|
||||
.hljs-subst {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.hljs-formula {
|
||||
background-color: #eee;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-addition {
|
||||
background-color: #baeeba;
|
||||
}
|
||||
|
||||
.hljs-deletion {
|
||||
background-color: #ffc8bd;
|
||||
}
|
||||
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class {
|
||||
color: #9b703f;
|
||||
}
|
||||
|
||||
.hljs-doctag,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
@ -1,80 +0,0 @@
|
||||
/*
|
||||
|
||||
Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
|
||||
based on dark.css by Ivan Sagalaev
|
||||
|
||||
*/
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: #3f3f3f;
|
||||
color: #dcdcdc;
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-tag {
|
||||
color: #e3ceab;
|
||||
}
|
||||
|
||||
.hljs-template-tag {
|
||||
color: #dcdcdc;
|
||||
}
|
||||
|
||||
.hljs-number {
|
||||
color: #8cd0d3;
|
||||
}
|
||||
|
||||
.hljs-variable,
|
||||
.hljs-template-variable,
|
||||
.hljs-attribute {
|
||||
color: #efdcbc;
|
||||
}
|
||||
|
||||
.hljs-literal {
|
||||
color: #efefaf;
|
||||
}
|
||||
|
||||
.hljs-subst {
|
||||
color: #8f8f8f;
|
||||
}
|
||||
|
||||
.hljs-title,
|
||||
.hljs-name,
|
||||
.hljs-selector-id,
|
||||
.hljs-selector-class,
|
||||
.hljs-section,
|
||||
.hljs-type {
|
||||
color: #efef8f;
|
||||
}
|
||||
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-link {
|
||||
color: #dca3a3;
|
||||
}
|
||||
|
||||
.hljs-deletion,
|
||||
.hljs-string,
|
||||
.hljs-built_in,
|
||||
.hljs-builtin-name {
|
||||
color: #cc9393;
|
||||
}
|
||||
|
||||
.hljs-addition,
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-meta {
|
||||
color: #7f9f7f;
|
||||
}
|
||||
|
||||
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
@ -1,27 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Basic JISON conversion test</title>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Jquery minified lib -->
|
||||
<!--<script src="../lib/jquery-1.12.0.min.js"></script>-->
|
||||
|
||||
<!-- backward compatibility shit -->
|
||||
<!--
|
||||
<script src="../lib/webtoolkit.js"></script>
|
||||
<script src="../lib/es5.js"></script>
|
||||
<script src="../lib/json2.js"></script>
|
||||
-->
|
||||
|
||||
<!-- jison -->
|
||||
<script src="../lib/jison.js"></script>
|
||||
|
||||
<!-- myscript -->
|
||||
<script src="../src/js-to-webclgl.js"></script>
|
||||
<script>
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
9976
demo/jquery.js
vendored
9976
demo/jquery.js
vendored
File diff suppressed because it is too large
Load Diff
@ -1,44 +0,0 @@
|
||||
.paramContainer {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.sampleSet {
|
||||
background: rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.sampleSet .sampleSetInner {
|
||||
padding-top:10px;
|
||||
}
|
||||
|
||||
.sampleSet .sampleSetInner input,
|
||||
.sampleSet .sampleSetInner textarea {
|
||||
min-width: 100%;
|
||||
max-width: 100%;
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.sampleSet .sampleSetInner textarea {
|
||||
min-height:150px;
|
||||
}
|
||||
|
||||
.sampleSet .sample_output {
|
||||
min-height:40px;
|
||||
}
|
||||
|
||||
.kernelGroupInner textarea,
|
||||
.kernel_function {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
.kernel_sample, .param_sample {
|
||||
min-height:40px;
|
||||
}
|
||||
|
||||
.chartContainer {
|
||||
padding-top:20px;
|
||||
}
|
||||
|
||||
.bench_chart {
|
||||
margin-top:20px;
|
||||
height: 400px;
|
||||
}
|
||||
@ -1,263 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="gpu.js - playground. Run and benchmark demos for gpu.js - is a single-file JavaScript library for GPGPU in the browser. gpu.js will automatically compile specially written JavaScript functions into shader language and run them on the GPU using the WebGL API. In the case where WebGL is not available, the functions will still run in regular JavaScript." />
|
||||
|
||||
<meta property="og:title" content="gpu.js - playground : GPU Accelerated JavaScript" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="http://gpu.rocks/" />
|
||||
<meta property="og:image" content="http://gpu.rocks/img/ogimage.png" />
|
||||
|
||||
<title>gpu.js - playground : GPU Accelerated JavaScript</title>
|
||||
<link rel="icon" href="img/jelly.png">
|
||||
|
||||
<!-- jquery + bootstrap -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script>
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
|
||||
|
||||
<!-- code mirror -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.13.4/codemirror.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.13.4/codemirror.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.13.4/mode/javascript/javascript.js"></script>
|
||||
|
||||
<!-- seed random : https://github.com/davidbau/seedrandom -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/seedrandom/2.4.0/lib/xor4096.min.js"></script>
|
||||
|
||||
<!-- chartist -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.9.7/chartist.min.css">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.9.7/chartist.js"></script>
|
||||
|
||||
<!-- gpu.js scripts -->
|
||||
<script src="../bin/gpu.js"></script>
|
||||
<script src="playground.js"></script>
|
||||
<link rel="stylesheet" href="playground.css">
|
||||
</head>
|
||||
<body>
|
||||
<a href="https://github.com/gpujs/gpu.js" class="github-corner"><svg width="80" height="80" viewBox="0 0 250 250" style="fill: rgba(21, 21, 19, 0.53); color:#fff; position: absolute; top: 0; border: 0; right: 0;"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1>GPU.js - playground : <small style="display:inline-block">GPU Accelerated JavaScript</small></h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<blockquote>
|
||||
This page here, is meant to help "play" with various algorithms, random data sets, etc.<br/>
|
||||
And benchmark their performance on your computer (CPU vs GPU) respective to the datasize.<br/>
|
||||
<br/>
|
||||
[SECURITY WARNING] : This playground here does an "evil" eval on the input functions. So obviously do not carlessly copy and paste things here.
|
||||
<br/><br/>
|
||||
<a href="https://gpu.rocks">Our main site is found at https://gpu.rocks</a>
|
||||
<br/><br/>
|
||||
Enjoy =)
|
||||
<br/><br/>
|
||||
~ GPU.JS team
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="container">
|
||||
<h3>Step 1) Setup your input parameters generator</h3>
|
||||
<blockquote>
|
||||
Setup your various argument generator settings here.<br/>
|
||||
<br/>
|
||||
- Number of parameters : To pass to the final GPU.js function<br/>
|
||||
- Sample size : Size for the sample display<br/>
|
||||
- Random seed : Seed value, used by the random function<br/>
|
||||
(Pesudo random is choosen to make testing and debugging the parameter function generator easier and consistent)<br/>
|
||||
<br/>
|
||||
Each parameter function are passed in 2 attributes<br/>
|
||||
<br/>
|
||||
- size : The sample size used for this iteration<br/>
|
||||
- rand : The 0-1 floating value, pesudo random generator used for this sample size, and parameter count.<br/>
|
||||
<br/>
|
||||
Additionally a dimension generator function, is required to declare the dimensions used<br/>
|
||||
<br/>
|
||||
- size : The sample size used for this iteration<br/>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="col-sm-4">
|
||||
<label class="control-label" for="arg_count">Number of parameters</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="minus" data-field="arg_count">
|
||||
<span class="glyphicon glyphicon-minus"></span>
|
||||
</button>
|
||||
</span>
|
||||
<input type="text" name="arg_count" id="arg_count" class="form-control input-number" value="2" min="0" max="10">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="arg_count">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<label class="control-label" for="sample_size">Sample size</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="minus" data-field="sample_size">
|
||||
<span class="glyphicon glyphicon-minus"></span>
|
||||
</button>
|
||||
</span>
|
||||
<input type="text" name="sample_size" id="sample_size" class="form-control input-number" value="10" min="0" max="1000">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="sample_size">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<label class="control-label" for="rand_seed">Seed for Random</label>
|
||||
<div class="form-group">
|
||||
<input type="text" name="rand_seed" id="rand_seed" class="form-control" value="random">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container paramContainer">
|
||||
<div class="paramGroupContainer" id="paramGroupContainer">
|
||||
<div class="col-sm-6 paramGroup sampleSet" id="paramGroupTemplate" style="display:none;">
|
||||
<div class="paramGroupInner sampleSetInner form-group">
|
||||
<label class="control-label" for="param_name">Parameter Name</label>
|
||||
<input type="text" name="param_name" class="param_name form-control" value="A">
|
||||
<label class="control-label" for="param_function">Parameter Function</label>
|
||||
<textarea name="param_function" class="param_function"></textarea>
|
||||
<label class="control-label" for="param_sample">Sample Output</label>
|
||||
<pre class="param_sample"></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12 dim_group sampleSet" id="dim_group">
|
||||
<div class="sampleSetInner form-group">
|
||||
<label class="control-label" for="dim_function">Dimension Function</label>
|
||||
<textarea name="dim_function" class="dim_function" id="dim_function"></textarea>
|
||||
<label class="control-label" for="dim_sample">Sample Dimensions</label>
|
||||
<pre class="dim_sample sample_output" id="dim_sample"></pre>
|
||||
</div>
|
||||
</div>
|
||||
<button id="paramset_btn" type="button" class="btn btn-primary btn-lg btn-block paramset_btn">Generate parameter samples</button>
|
||||
</div>
|
||||
<div class="container">
|
||||
<h3>Step 2) Program your kernel function</h3>
|
||||
<blockquote>
|
||||
Code out the kernel, do note the following tips.
|
||||
<br/>
|
||||
<br/>
|
||||
- Parameter functions is automatically called to provide args<br/>
|
||||
- if/else is expensive in GPU, if/else in loops is even more expensive
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="container kernelContainer">
|
||||
<div class="kernelGroupInner form-group">
|
||||
<label class="control-label" for="param_function">Kernel Function</label><br/>
|
||||
<textarea name="kernel_function" class="kernel_function" id="kernel_function"></textarea>
|
||||
<button id="kernel_sample_btn" type="button" class="btn btn-primary btn-lg btn-block kernel_sample_btn">Generate kernel sample</button>
|
||||
<label class="control-label" for="kernel_sample">Sample Output</label>
|
||||
<pre id="kernel_sample" name="kernel_sample" class="kernel_sample"></pre>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<h3>Step 3) BENCH! CPU vs GPU</h3>
|
||||
<blockquote>
|
||||
Setup your sample size upper, lower bounds. Its increment size. Benchmark iterations. And bench it!<br/><br/>
|
||||
Generally speaking however, these are common learning notes.<br/><br/>
|
||||
- Due to the non-negligable overhead of running the webgl engine, small data sample sizes (such as <= 250) tends to be slower on GPU. Cut off point varies between kernel and machines<br/>
|
||||
<br/>
|
||||
- There is a small data transfer cost, to move from JS to GPU, paid by the CPU. Which is propotional to the data size. As such extremely simple kernel (such as A+B) will always be slower in GPU<br/>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="col-sm-4">
|
||||
<label class="control-label" for="bench_lower">Lower bounds</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="minus" data-field="bench_lower">
|
||||
<span class="glyphicon glyphicon-minus"></span>
|
||||
</button>
|
||||
</span>
|
||||
<input type="text" name="bench_lower" id="bench_lower" class="form-control input-number" value="50" min="0" max="4294967295">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="bench_lower">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<label class="control-label" for="bench_upper">Upper bounds</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="minus" data-field="bench_upper">
|
||||
<span class="glyphicon glyphicon-minus"></span>
|
||||
</button>
|
||||
</span>
|
||||
<input type="text" name="bench_upper" id="bench_upper" class="form-control input-number" value="1500" min="0" max="4294967295">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="bench_upper">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<label class="control-label" for="bench_increment">Increment size</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="minus" data-field="bench_increment">
|
||||
<span class="glyphicon glyphicon-minus"></span>
|
||||
</button>
|
||||
</span>
|
||||
<input type="text" name="bench_increment" id="bench_increment" class="form-control input-number" value="50" min="0" max="4294967295">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="bench_increment">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<label class="control-label" for="arg_count">Bench Size</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="minus" data-field="bench_size">
|
||||
<span class="glyphicon glyphicon-minus"></span>
|
||||
</button>
|
||||
</span>
|
||||
<input type="text" name="bench_size" id="bench_size" class="form-control input-number" value="25" min="0" max="4294967295">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="bench_size">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<label class="control-label" for="arg_count">Warmup Size</label>
|
||||
<div class="input-group">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="minus" data-field="warmup_size">
|
||||
<span class="glyphicon glyphicon-minus"></span>
|
||||
</button>
|
||||
</span>
|
||||
<input type="text" name="bench_size" id="warmup_size" class="form-control input-number" value="5" min="0" max="4294967295">
|
||||
<span class="input-group-btn">
|
||||
<button type="button" class="btn btn-default btn-number" data-type="plus" data-field="warmup_size">
|
||||
<span class="glyphicon glyphicon-plus"></span>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container chartContainer">
|
||||
<button id="bench_btn" type="button" class="btn btn-primary btn-lg btn-block bench_btn">Run the benchmark!</button>
|
||||
<h4>Average Time taken</h4>
|
||||
<div id="chart_time" class="chart_time bench_chart"></div>
|
||||
<h4>GPU Performance improvement</h4>
|
||||
<div id="chart_gain" class="chart_gain bench_chart"></div>
|
||||
</div>
|
||||
<br/>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,651 +0,0 @@
|
||||
$(function() {
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Common UI elements setup
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Setup the various input +/- buttons increments
|
||||
function setupInputNumbers() {
|
||||
//plugin bootstrap minus and plus
|
||||
//http://jsfiddle.net/laelitenetwork/puJ6G/
|
||||
$('.btn-number').click(function(e){
|
||||
e.preventDefault();
|
||||
|
||||
fieldName = $(this).attr('data-field');
|
||||
type = $(this).attr('data-type');
|
||||
var input = $("input[name='"+fieldName+"']");
|
||||
var currentVal = parseInt(input.val());
|
||||
if (!isNaN(currentVal)) {
|
||||
if(type == 'minus') {
|
||||
|
||||
if(currentVal > input.attr('min')) {
|
||||
input.val(currentVal - 1).change();
|
||||
}
|
||||
if(parseInt(input.val()) == input.attr('min')) {
|
||||
$(this).attr('disabled', true);
|
||||
}
|
||||
|
||||
} else if(type == 'plus') {
|
||||
|
||||
if(currentVal < input.attr('max')) {
|
||||
input.val(currentVal + 1).change();
|
||||
}
|
||||
if(parseInt(input.val()) == input.attr('max')) {
|
||||
$(this).attr('disabled', true);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
input.val(0);
|
||||
}
|
||||
});
|
||||
$('.input-number').focusin(function(){
|
||||
$(this).data('oldValue', $(this).val());
|
||||
});
|
||||
$('.input-number').change(function() {
|
||||
|
||||
minValue = parseInt($(this).attr('min'));
|
||||
maxValue = parseInt($(this).attr('max'));
|
||||
valueCurrent = parseInt($(this).val());
|
||||
|
||||
name = $(this).attr('name');
|
||||
if(valueCurrent >= minValue) {
|
||||
$(".btn-number[data-type='minus'][data-field='"+name+"']").removeAttr('disabled')
|
||||
} else {
|
||||
alert('Sorry, the minimum value was reached');
|
||||
$(this).val($(this).data('oldValue'));
|
||||
}
|
||||
if(valueCurrent <= maxValue) {
|
||||
$(".btn-number[data-type='plus'][data-field='"+name+"']").removeAttr('disabled')
|
||||
} else {
|
||||
alert('Sorry, the maximum value was reached');
|
||||
$(this).val($(this).data('oldValue'));
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
$(".input-number").keydown(function (e) {
|
||||
// Allow: backspace, delete, tab, escape, enter and .
|
||||
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 190]) !== -1 ||
|
||||
// Allow: Ctrl+A
|
||||
(e.keyCode == 65 && e.ctrlKey === true) ||
|
||||
// Allow: home, end, left, right
|
||||
(e.keyCode >= 35 && e.keyCode <= 39)) {
|
||||
// let it happen, don't do anything
|
||||
return;
|
||||
}
|
||||
// Ensure that it is a number and stop the keypress
|
||||
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Utility functions
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
// Used to indicate to the CM_blockFirstAndLastLine to ignore cancel step
|
||||
var CM_doNotCancelOrigin = "do-not-cancel";
|
||||
|
||||
// Blocks the first and last line inside the code mirror from being editted
|
||||
function CM_blockFirstAndLastLine(cm,change) {
|
||||
|
||||
// If origin is set to "not-cancel" ignore
|
||||
if( change.origin == CM_doNotCancelOrigin ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if( change.from.line <= 0 || cm.lineCount() - 1 <= change.to.line) {
|
||||
change.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
var CM_defaultConfig = {
|
||||
lineNumbers: true,
|
||||
mode: {name: "javascript", json: true},
|
||||
indentUnit: 3,
|
||||
tabSize: 3
|
||||
};
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Code mirror parameters generator setup
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Default parameter names : alphabectical
|
||||
var paramDefaultNames = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split('');
|
||||
|
||||
/// Default parameter function
|
||||
var paramDefaultFunction = ""+
|
||||
"function(size,rand) {\n"+
|
||||
" var ret = [];\n"+
|
||||
" for(var i=0; i<size; ++i){\n"+
|
||||
" ret[i] = parseInt(rand()*100);\n"+
|
||||
" }\n"+
|
||||
" return ret;\n"+
|
||||
"}";
|
||||
|
||||
/// Parameter code mirror objects
|
||||
var CM_parameters = [];
|
||||
var paramNameInputs = [];
|
||||
var paramSampleOutputs = [];
|
||||
|
||||
/// Get the parameter count
|
||||
function getParamCount() {
|
||||
return parseInt( $("#arg_count").val() );
|
||||
}
|
||||
|
||||
/// Update the parameter display list, to match the number of parameters
|
||||
function updateParamsList() {
|
||||
|
||||
// Get the main parameter container to update
|
||||
var pContainer = $("#paramGroupContainer");
|
||||
var template = pContainer.find("#paramGroupTemplate")
|
||||
|
||||
// Hide everything : handle the case for reduced parameters
|
||||
pContainer.find(".paramGroup").hide();
|
||||
|
||||
// Get desired parameter count
|
||||
var pCount = getParamCount();
|
||||
|
||||
// Time to iterate, and create/reveal those paramGroups
|
||||
for(var p=0; p<pCount; ++p) {
|
||||
var pNode = $("#paramGroup_"+p);
|
||||
|
||||
if( pNode == null || pNode.length == 0 ) {
|
||||
pNode = template.clone();
|
||||
|
||||
pNode.attr("id", "#paramGroup_"+p);
|
||||
pNode.find(".param_name").val( paramDefaultNames[p] );
|
||||
|
||||
// Setup code mirror
|
||||
CM_parameters[p] = CodeMirror.fromTextArea(pNode.find(".param_function")[0], CM_defaultConfig);
|
||||
|
||||
// Setup default value
|
||||
CM_parameters[p].setValue(paramDefaultFunction);
|
||||
|
||||
// Block edits for first and last line
|
||||
CM_parameters[p].on('beforeChange', CM_blockFirstAndLastLine);
|
||||
|
||||
// Add param name, and sample output nodes to array (for easy refence)
|
||||
paramNameInputs[p] = pNode.find(".param_name");
|
||||
paramSampleOutputs[p] = pNode.find(".param_sample");
|
||||
|
||||
pContainer.append(pNode);
|
||||
}
|
||||
|
||||
pNode.show();
|
||||
CM_parameters[p].refresh();
|
||||
}
|
||||
|
||||
// Update parameter names
|
||||
updateKernelParamNames();
|
||||
}
|
||||
|
||||
/// Get the configured parameter functions
|
||||
function getParameterFunctions() {
|
||||
var ret = [];
|
||||
var pCount = getParamCount();
|
||||
|
||||
for( var p=0; p<pCount; ++p ) {
|
||||
try {
|
||||
eval("ret[p] = "+CM_parameters[p].getValue());
|
||||
} catch(e) {
|
||||
paramSampleOutputs[p].html(e.toString());
|
||||
console.error("Failed to process parameter "+p, e);
|
||||
alert("Failed to process parameter "+p+" : "+e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// The random seed dom
|
||||
var rand_seed_jqDom = $("#rand_seed");
|
||||
|
||||
/// Get the pesudo random number generator for the sample size / parameter count
|
||||
function getRandom(parameterCount, sampleSize, rand_seed) {
|
||||
if(rand_seed == null) {
|
||||
rand_seed = rand_seed_jqDom.val();
|
||||
}
|
||||
|
||||
return new xor4096(parameterCount+"-"+rand_seed+"-"+sampleSize);
|
||||
}
|
||||
|
||||
/// Update the parameter samples
|
||||
function updateParameterSamples() {
|
||||
// Get the param functions
|
||||
var paramFunctions = getParameterFunctions();
|
||||
|
||||
// Invalid parameter function
|
||||
if(paramFunctions == null) {
|
||||
$("#paramGroupContainer .param_sample").html("");
|
||||
return;
|
||||
}
|
||||
|
||||
// Get demo sample size
|
||||
var sample_size = parseInt($("#sample_size").val());
|
||||
|
||||
// Iterate, execute
|
||||
var pCount = paramFunctions.length;
|
||||
for(var p=0; p<pCount; ++p) {
|
||||
var rand = getRandom(p, sample_size);
|
||||
var sample = paramFunctions[p](sample_size, rand);
|
||||
|
||||
paramSampleOutputs[p].html( JSON.stringify(sample) );
|
||||
}
|
||||
|
||||
// Update parameter names
|
||||
updateKernelParamNames();
|
||||
}
|
||||
|
||||
/// Get the parameter names, after NORMALIZING them (just in case)
|
||||
function getParameterNames() {
|
||||
var ret = [];
|
||||
|
||||
// Get desired parameter count
|
||||
var pCount = getParamCount();
|
||||
|
||||
// Iterate through
|
||||
for( var p = 0; p < pCount; ++p ) {
|
||||
var name = paramNameInputs[p].val();
|
||||
name = name.replace(/\W/g, '');
|
||||
|
||||
if( name == null || name.length <= 0 ) {
|
||||
name = paramDefaultNames[p];
|
||||
}
|
||||
paramNameInputs[p].val(name);
|
||||
ret[p] = name;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Updates the kernel first line, with the parameter names
|
||||
function updateKernelParamNames() {
|
||||
// Out of order initialzing =(
|
||||
if(CM_kernel == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
var paramNames = getParameterNames();
|
||||
|
||||
var kernelHeader = "function kernel("+paramNames.toString()+") {";
|
||||
var originalHeader = CM_kernel.getLine(0);
|
||||
|
||||
if( kernelHeader != originalHeader ) {
|
||||
CM_kernel.replaceRange(kernelHeader, CodeMirror.Pos(0,0), CodeMirror.Pos(0, originalHeader.length), CM_doNotCancelOrigin);
|
||||
//CM_kernel.refresh();
|
||||
}
|
||||
}
|
||||
|
||||
/// Setup the parameter generators
|
||||
function setupParameterGenerator() {
|
||||
updateParamsList();
|
||||
$("#arg_count").change(updateParamsList);
|
||||
$("#paramset_btn").click(updateParameterSamples);
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Code mirror dimensions setup
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Default parameter function
|
||||
var dimensionsDefaultFunction = ""+
|
||||
"function(size) {\n"+
|
||||
" return [size];\n"+
|
||||
"}";
|
||||
|
||||
/// The dimension generator code mirror
|
||||
var CM_dimension = null;
|
||||
|
||||
/// Get the configured dim functions
|
||||
function getDimensionFunction() {
|
||||
var ret = null;
|
||||
try {
|
||||
eval("ret = "+CM_dimension.getValue());
|
||||
} catch(e) {
|
||||
$("#dim_sample").html(e.toString());
|
||||
console.error("Failed to process dimension function", e);
|
||||
alert("Failed to process dimension function : "+e);
|
||||
return null;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Update the dim sample
|
||||
function updateDimensionSample() {
|
||||
// Get the dim function
|
||||
var dimFunc = getDimensionFunction();
|
||||
|
||||
if( dimFunc == null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Get demo sample size
|
||||
var sample_size = parseInt($("#sample_size").val());
|
||||
var res = dimFunc(sample_size);
|
||||
|
||||
$("#dim_sample").html(JSON.stringify(res));
|
||||
}
|
||||
|
||||
/// Setup the dimensions generator
|
||||
function setupDimensionGenerator() {
|
||||
CM_dimension = CodeMirror.fromTextArea( document.getElementById("dim_function"), CM_defaultConfig);
|
||||
|
||||
// Reset the value
|
||||
CM_dimension.setValue(dimensionsDefaultFunction);
|
||||
|
||||
// Block edits for first and last line
|
||||
CM_dimension.on('beforeChange', CM_blockFirstAndLastLine);
|
||||
|
||||
// Dimension samples
|
||||
$("#paramset_btn").click(updateDimensionSample);
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Code mirror kernel setup
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Kernel code mirror object
|
||||
var CM_kernel = null;
|
||||
|
||||
/// Default parameter function
|
||||
var kernelDefaultFunction = ""+
|
||||
"function kernel(A,B) {\n"+
|
||||
" var sum = 0;\n"+
|
||||
" for (var i=0; i<512; i++) {\n"+
|
||||
" sum = Math.pow((A[this.thread.x]-sum)/B[this.thread.x],2);\n"+
|
||||
" }\n"+
|
||||
" return sum;\n"+
|
||||
"}";
|
||||
|
||||
/// One time setup of the kernel editor
|
||||
function setupKernelEditor() {
|
||||
|
||||
// Setup the kernel code mirror
|
||||
var kernel_textArea = document.getElementById("kernel_function");
|
||||
CM_kernel = CodeMirror.fromTextArea(kernel_textArea, CM_defaultConfig);
|
||||
|
||||
// Reset the value
|
||||
CM_kernel.setValue(kernelDefaultFunction);
|
||||
|
||||
// Block edits for first and last line
|
||||
CM_kernel.on('beforeChange', CM_blockFirstAndLastLine);
|
||||
|
||||
// Setup the kernel sample click call
|
||||
$("#kernel_sample_btn").click(updateKernelSampleDisplay);
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Kernel arguments / sample preperation
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Get the kernel raw JS function
|
||||
function getKernelRawFunction() {
|
||||
var ret = null;
|
||||
try {
|
||||
eval("ret = "+CM_kernel.getValue());
|
||||
} catch(e) {
|
||||
$("#kernel_sample").html(e.toString());
|
||||
console.error("Failed to process kernel function", e);
|
||||
alert("Failed to process kernel function : "+e);
|
||||
return null;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Generate the paramater set
|
||||
function getKernelParameters(sampleSize, paramFunctions) {
|
||||
if(paramFunctions == null) {
|
||||
paramFunctions = getParameterFunctions();
|
||||
}
|
||||
var ret = [];
|
||||
if(paramFunctions == null) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
var rand_seed = rand_seed_jqDom.val();
|
||||
var pCount = paramFunctions.length;
|
||||
for(var p=0; p<pCount; ++p) {
|
||||
ret[p] = paramFunctions[p](sampleSize, getRandom(p, sampleSize, rand_seed));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// Generate the kernel sample result
|
||||
function getKernelSampleResult(sampleSize) {
|
||||
var rawFunction = getKernelRawFunction();
|
||||
var dimFunction = getDimensionFunction();
|
||||
var paramFunctions = getParameterFunctions();
|
||||
|
||||
var gpu = new GPU();
|
||||
var ker = gpu.createKernel(rawFunction,{
|
||||
dimensions : dimFunction(sampleSize)
|
||||
});
|
||||
|
||||
var args = getKernelParameters(sampleSize, paramFunctions);
|
||||
return ker.apply(ker, args);
|
||||
}
|
||||
|
||||
/// Update the kernel sample results
|
||||
function updateKernelSampleDisplay() {
|
||||
// Forces the paramset button to update the param samples
|
||||
$("#paramset_btn").click();
|
||||
|
||||
// Get demo sample size
|
||||
var sample_size = parseInt($("#sample_size").val());
|
||||
|
||||
// Get kernel sample result
|
||||
var res = getKernelSampleResult(sample_size);
|
||||
//console.log("Kernel code sample result : ", res);
|
||||
$("#kernel_sample").html( JSON.stringify(res) );
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Bench marking logic code
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
/// Run a single benchmark, for the sample size, in a single mode
|
||||
function singleBenchmark(sampleSize, mode) {
|
||||
var rawFunction = getKernelRawFunction();
|
||||
var dimFunction = getDimensionFunction();
|
||||
var paramFunctions = getParameterFunctions();
|
||||
|
||||
var gpu = new GPU();
|
||||
var kernel = gpu.createKernel(rawFunction,{
|
||||
dimensions : dimFunction(sampleSize),
|
||||
mode : mode
|
||||
});
|
||||
|
||||
var args = getKernelParameters(sampleSize, paramFunctions);
|
||||
var warmup_size = parseInt( $("#warmup_size").val() );
|
||||
var bench_size = parseInt( $("#bench_size").val() );
|
||||
|
||||
// Warmup iteration used to "ignore" optimizers?
|
||||
for(var w=0; w<warmup_size; ++w) {
|
||||
kernel.apply(kernel, args);
|
||||
}
|
||||
|
||||
// Benchmark it
|
||||
var prefObj = window.performance || Date;
|
||||
var start = prefObj.now();
|
||||
for(var b=0; b<bench_size; ++b) {
|
||||
kernel.apply(kernel, args);
|
||||
}
|
||||
var end = prefObj.now();
|
||||
var time = end - start;
|
||||
return time / parseFloat(bench_size);
|
||||
}
|
||||
|
||||
/// The benchmark charting data, resets on new run
|
||||
var bench_time_dataSet = {};
|
||||
var bench_gain_dataSet = {};
|
||||
|
||||
/// The various dataset specific arrays
|
||||
var bench_labels = [];
|
||||
var bench_gpu_time = [];
|
||||
var bench_cpu_time = [];
|
||||
var bench_gain_dif = [];
|
||||
|
||||
/// The benchmark charting config,
|
||||
/// Prettymuch never changing
|
||||
var bench_time_config = {
|
||||
referenceValue : 0
|
||||
}
|
||||
var bench_gain_config = {
|
||||
referenceValue : 0
|
||||
}
|
||||
|
||||
/// The chartist object
|
||||
var bench_time_chartist = null;
|
||||
var bench_gain_chartist = null;
|
||||
|
||||
/// Does a full reset of the benchmark
|
||||
function resetBenchmarkDataset() {
|
||||
bench_labels = [];
|
||||
bench_gpu_time = [];
|
||||
bench_cpu_time = [];
|
||||
bench_gain_dif = [];
|
||||
|
||||
bench_time_dataSet = {
|
||||
labels: bench_labels,
|
||||
series: [
|
||||
bench_cpu_time,
|
||||
bench_gpu_time
|
||||
]
|
||||
}
|
||||
bench_gain_dataSet = {
|
||||
labels: bench_labels,
|
||||
series: [bench_gain_dif]
|
||||
}
|
||||
}
|
||||
|
||||
/// Does a dataupdate for the chartist display
|
||||
function updateBenchmarkDisplay() {
|
||||
bench_time_chartist.update(bench_time_dataSet);
|
||||
bench_gain_chartist.update(bench_gain_dataSet);
|
||||
}
|
||||
|
||||
function runCompleteBenchmark() {
|
||||
var lower_bound = parseInt($("#bench_lower").val());
|
||||
var upper_bound = parseInt($("#bench_upper").val());
|
||||
var increment = parseInt($("#bench_increment").val());
|
||||
|
||||
var prefObj = window.performance || Date;
|
||||
var start = prefObj.now();
|
||||
|
||||
console.log("Benchmark started! (Lower, Upper, Incre) : ", lower_bound, upper_bound, increment);
|
||||
resetBenchmarkDataset();
|
||||
updateBenchmarkDisplay();
|
||||
|
||||
function doOneSampleBenchmark(sampleSize, completeCallback) {
|
||||
var cpu_time = singleBenchmark(sampleSize, "cpu");
|
||||
var gpu_time = singleBenchmark(sampleSize, "gpu");
|
||||
var gain_per = 0;
|
||||
|
||||
if( cpu_time == gpu_time ) {
|
||||
gain_per = 0;
|
||||
} else if( gpu_time < cpu_time ) {
|
||||
gain_per = cpu_time / gpu_time * 100.0 - 100.0;
|
||||
} else {
|
||||
gain_per = -(gpu_time / cpu_time * 100.0) + 100.0;
|
||||
}
|
||||
|
||||
bench_labels.push( sampleSize );
|
||||
bench_cpu_time.push( cpu_time );
|
||||
bench_gpu_time.push( gpu_time );
|
||||
bench_gain_dif.push( gain_per );
|
||||
|
||||
bench_time_dataSet.labels = bench_labels;
|
||||
bench_gain_dataSet.labels = bench_labels;
|
||||
|
||||
//console.log( bench_time_dataSet, bench_gain_dataSet );
|
||||
updateBenchmarkDisplay();
|
||||
|
||||
if(completeCallback) {
|
||||
completeCallback();
|
||||
}
|
||||
}
|
||||
|
||||
var sampleSize = lower_bound;
|
||||
|
||||
function sampleSizeLooper() {
|
||||
sampleSize += increment;
|
||||
if(sampleSize < upper_bound) {
|
||||
// Call after UI update
|
||||
setTimeout(function(){
|
||||
doOneSampleBenchmark(sampleSize, sampleSizeLooper);
|
||||
}, 0);
|
||||
} else {
|
||||
updateBenchmarkDisplay();
|
||||
$("#bench_btn").prop('disabled', false);
|
||||
|
||||
var end = prefObj.now();
|
||||
var time = end - start;
|
||||
console.log("Benchmark ended! (total time)", time);
|
||||
console.log("Iteration labels : ", bench_labels);
|
||||
console.log("Final result for CPU : ", bench_cpu_time);
|
||||
console.log("Final result for GPU : ", bench_gpu_time);
|
||||
console.log("Final result for performance gain : ", bench_gain_dif);
|
||||
|
||||
window.bench_totalTime = time;
|
||||
window.bench_labels = bench_labels;
|
||||
window.bench_cpu_time = bench_cpu_time;
|
||||
window.bench_gpu_time = bench_gpu_time;
|
||||
window.bench_gain_dif = bench_gain_dif;
|
||||
window.bench_time_dataSet = bench_time_dataSet;
|
||||
window.bench_gain_dataSet = bench_gain_dataSet;
|
||||
}
|
||||
}
|
||||
|
||||
$("#bench_btn").prop('disabled', true);
|
||||
doOneSampleBenchmark(sampleSize, sampleSizeLooper);
|
||||
//updateBenchmarkDisplay();
|
||||
}
|
||||
|
||||
function setupBenchmarking() {
|
||||
bench_time_chartist = new Chartist.Line('#chart_time', bench_time_dataSet, bench_time_config);
|
||||
bench_gain_chartist = new Chartist.Line('#chart_gain', bench_gain_dataSet, bench_gain_config);
|
||||
$("#bench_btn").click(function() {
|
||||
runCompleteBenchmark();
|
||||
});
|
||||
}
|
||||
|
||||
//-------------------------------------------
|
||||
//
|
||||
// Time to actually do setup calls
|
||||
//
|
||||
//-------------------------------------------
|
||||
|
||||
// The various setup actual call
|
||||
setupInputNumbers();
|
||||
setupParameterGenerator();
|
||||
setupDimensionGenerator();
|
||||
setupKernelEditor();
|
||||
setupBenchmarking();
|
||||
|
||||
window.CM_kernel = CM_kernel;
|
||||
window.updateKernelSampleDisplay = updateKernelSampleDisplay;
|
||||
window.singleBenchmark = singleBenchmark;
|
||||
window.updateBenchmarkDisplay = updateBenchmarkDisplay;
|
||||
|
||||
window.bench_time_chartist = bench_time_chartist;
|
||||
window.bench_gain_chartist = bench_gain_chartist;
|
||||
});
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 169 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 65 KiB |
Loading…
x
Reference in New Issue
Block a user