├── .dockerignore
├── .github
└── workflows
│ └── build-docker.yml
├── .gitignore
├── .htaccess
├── CHANGELOG.md
├── LICENSE
├── README.md
├── SECURITY.md
├── api
├── base64.php
├── geturl.php
├── info.php
├── pastebin.php
└── upload.php
├── content-controllers
├── identicon
│ └── identicon.controller.php
├── image
│ ├── conversion.php
│ ├── filters.php
│ ├── image.controller.php
│ └── resize.php
├── placeholder
│ ├── fonts
│ │ └── RonysiswadiArchitect5-1GErv.ttf
│ ├── placeholder.controller.php
│ └── placeholdergenerator.php
├── text
│ └── text.controller.php
├── url
│ └── url.controller.php
└── video
│ └── video.controller.php
├── css
├── bootstrap.min.css
├── bootstrap.min.css.map
├── dropzone.css
├── gh-fork-ribbon.min.css
├── imgs
│ ├── bg.png
│ ├── hs_logo.png
│ ├── logo.png
│ └── logo
│ │ ├── horizontal.png
│ │ ├── horizontal2.png
│ │ ├── horizontal3.png
│ │ ├── logo.png
│ │ ├── logo.svg
│ │ ├── logo2.png
│ │ ├── monochrome.png
│ │ ├── monochrome2.png
│ │ ├── picthshare.ai
│ │ ├── picthshare.pdf
│ │ ├── picthshare.svg
│ │ ├── vertical.png
│ │ ├── vertical2.png
│ │ └── vertical3.png
└── pictshare.css
├── data
└── .gitignore
├── docker
├── Dockerfile
└── rootfs
│ ├── nginx.conf
│ └── start.sh
├── favicon.ico
├── fonts
├── glyphicons-halflings-regular.eot
├── glyphicons-halflings-regular.svg
├── glyphicons-halflings-regular.ttf
├── glyphicons-halflings-regular.woff
└── glyphicons-halflings-regular.woff2
├── inc
├── .gitignore
├── core.php
├── encryption.php
└── example.config.inc.php
├── index.php
├── interfaces
├── contentcontroller.interface.php
└── storagecontroller.interface.php
├── js
├── bootstrap.js
├── bootstrap.min.js
├── dropzone.js
├── highlight.pack.js
├── npm.js
├── pictshare.js
└── styles
│ ├── a11y-dark.css
│ ├── a11y-light.css
│ ├── agate.css
│ ├── an-old-hope.css
│ ├── androidstudio.css
│ ├── arduino-light.css
│ ├── arta.css
│ ├── ascetic.css
│ ├── atelier-cave-dark.css
│ ├── atelier-cave-light.css
│ ├── atelier-dune-dark.css
│ ├── atelier-dune-light.css
│ ├── atelier-estuary-dark.css
│ ├── atelier-estuary-light.css
│ ├── atelier-forest-dark.css
│ ├── atelier-forest-light.css
│ ├── atelier-heath-dark.css
│ ├── atelier-heath-light.css
│ ├── atelier-lakeside-dark.css
│ ├── atelier-lakeside-light.css
│ ├── atelier-plateau-dark.css
│ ├── atelier-plateau-light.css
│ ├── atelier-savanna-dark.css
│ ├── atelier-savanna-light.css
│ ├── atelier-seaside-dark.css
│ ├── atelier-seaside-light.css
│ ├── atelier-sulphurpool-dark.css
│ ├── atelier-sulphurpool-light.css
│ ├── atom-one-dark-reasonable.css
│ ├── atom-one-dark.css
│ ├── atom-one-light.css
│ ├── brown-paper.css
│ ├── brown-papersq.png
│ ├── codepen-embed.css
│ ├── color-brewer.css
│ ├── darcula.css
│ ├── dark.css
│ ├── darkula.css
│ ├── default.css
│ ├── docco.css
│ ├── dracula.css
│ ├── far.css
│ ├── foundation.css
│ ├── github-gist.css
│ ├── github.css
│ ├── gml.css
│ ├── googlecode.css
│ ├── grayscale.css
│ ├── gruvbox-dark.css
│ ├── gruvbox-light.css
│ ├── hopscotch.css
│ ├── hybrid.css
│ ├── idea.css
│ ├── ir-black.css
│ ├── isbl-editor-dark.css
│ ├── isbl-editor-light.css
│ ├── kimbie.dark.css
│ ├── kimbie.light.css
│ ├── lightfair.css
│ ├── magula.css
│ ├── mono-blue.css
│ ├── monokai-sublime.css
│ ├── monokai.css
│ ├── nord.css
│ ├── obsidian.css
│ ├── ocean.css
│ ├── paraiso-dark.css
│ ├── paraiso-light.css
│ ├── pojoaque.css
│ ├── pojoaque.jpg
│ ├── purebasic.css
│ ├── qtcreator_dark.css
│ ├── qtcreator_light.css
│ ├── railscasts.css
│ ├── rainbow.css
│ ├── routeros.css
│ ├── school-book.css
│ ├── school-book.png
│ ├── shades-of-purple.css
│ ├── solarized-dark.css
│ ├── solarized-light.css
│ ├── sunburst.css
│ ├── tomorrow-night-blue.css
│ ├── tomorrow-night-bright.css
│ ├── tomorrow-night-eighties.css
│ ├── tomorrow-night.css
│ ├── tomorrow.css
│ ├── vs.css
│ ├── vs2015.css
│ ├── xcode.css
│ ├── xt256.css
│ └── zenburn.css
├── lib
├── composer.json
└── composer.lock
├── rtfm
├── API.md
├── CONFIG.md
├── DOCKER.md
├── ENCRYPTION.md
├── IMAGEFILTERS.md
├── INSTALL.md
├── INTEGRATIONS.md
├── MODIFIERS.md
├── PASTEBINIT.md
└── SCALING.md
├── storage-controllers
├── altfolder.controller.php
├── ftp.controller.php
└── s3.controller.php
├── templates
├── main.html
├── text.html
└── video.html
├── tmp
└── .gitignore
└── tools
├── cron.php
├── ffmpeg_worker.php
├── re-encode_mp4.php
├── recreate_hashlist.php
├── render_webm_ogg.php
└── storagecontroller-sync.php
/.dockerignore:
--------------------------------------------------------------------------------
1 | tmp/*
2 | inc/config.inc.php
3 | data/*
4 | lib/vendor
5 | bin
6 | .git
7 | .github
--------------------------------------------------------------------------------
/.github/workflows/build-docker.yml:
--------------------------------------------------------------------------------
1 | name: ci
2 |
3 | on:
4 | push:
5 | tags:
6 | - "v*.*.*"
7 | pull_request:
8 | branches:
9 | - "master"
10 |
11 | jobs:
12 | docker:
13 | runs-on: ubuntu-latest
14 | steps:
15 | - name: Checkout
16 | uses: actions/checkout@v4
17 | - name: Docker meta
18 | id: meta
19 | uses: docker/metadata-action@v5
20 | with:
21 | # list of Docker images to use as base name for tags
22 | images: |
23 | hascheksolutions/pictshare
24 | ghcr.io/hascheksolutions/pictshare
25 | # generate Docker tags based on the following events/attributes
26 | tags: |
27 | type=schedule
28 | type=ref,event=branch
29 | type=ref,event=pr
30 | type=semver,pattern={{version}}
31 | type=semver,pattern={{major}}.{{minor}}
32 | type=semver,pattern={{major}}
33 | type=sha
34 | - name: Set up QEMU
35 | uses: docker/setup-qemu-action@v3
36 | - name: Set up Docker Buildx
37 | uses: docker/setup-buildx-action@v3
38 | - name: Login to Docker Hub
39 | if: github.event_name != 'pull_request'
40 | uses: docker/login-action@v3
41 | with:
42 | username: ${{ secrets.DOCKER_USERNAME }}
43 | password: ${{ secrets.DOCKER_PASSWORD }}
44 | - name: Login to GHCR
45 | if: github.event_name != 'pull_request'
46 | uses: docker/login-action@v3
47 | with:
48 | registry: ghcr.io
49 | username: ${{ github.repository_owner }}
50 | password: ${{ secrets.GITHUB_TOKEN }}
51 | - name: Build and push
52 | uses: docker/build-push-action@v5
53 | with:
54 | context: .
55 | file: docker/Dockerfile
56 | platforms: linux/amd64,linux/arm64
57 | push: ${{ github.event_name != 'pull_request' }}
58 | tags: ${{ steps.meta.outputs.tags }}
59 | labels: ${{ steps.meta.outputs.labels }}
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | test.php
2 | notice.txt
3 | lib/vendor
4 | .vscode
--------------------------------------------------------------------------------
/.htaccess:
--------------------------------------------------------------------------------
1 |
2 | RewriteEngine On
3 |
4 | RewriteCond %{REQUEST_FILENAME} !-f
5 | RewriteCond %{REQUEST_FILENAME} !-d
6 |
7 | RewriteRule ^(.*)$ index.php?url=$1 [QSA,PT,L]
8 |
9 |
10 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # V2.0.0 (Nov 2023)
2 | - Pushed current release to version 2.0
3 | - Updated CI to include versions
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 | PictShare uses rolling releases so the latest version is the only supported one.
6 |
7 | ## Reporting a Vulnerability
8 |
9 | Reports can be made as issues in this repo or in confidence via christian@haschek.at
10 |
11 | Pull requests welcome
12 |
--------------------------------------------------------------------------------
/api/base64.php:
--------------------------------------------------------------------------------
1 | 'err','reason'=>'Data directory not writable')));
26 | else if(!isFolderWritable(ROOT.DS.'tmp'))
27 | exit(json_encode(array('status'=>'err','reason'=>'Temp directory not writable')));
28 |
29 | $hash = sanatizeString(trim($_REQUEST['hash']))?sanatizeString(trim($_REQUEST['hash'])):false;
30 |
31 | // check for POSTed text
32 | if($_REQUEST['base64'])
33 | {
34 | $data = $_REQUEST['base64'];
35 | $format = $_REQUEST['format'];
36 |
37 | $tmpfile = ROOT.DS.'tmp'.DS.md5(rand(0,10000).time()).time();
38 |
39 | base64ToFile($data, $tmpfile);
40 |
41 |
42 | //get the file type
43 | $type = getTypeOfFile($tmpfile);
44 |
45 | //check for duplicates
46 | $sha1 = sha1_file($tmpfile);
47 | $ehash = sha1Exists($sha1);
48 | if($ehash && file_exists(getDataDir().DS.$ehash.DS.$ehash))
49 | exit(json_encode(array('status'=>'ok','hash'=>$ehash,'filetype'=>$type,'url'=>getURL().$ehash)));
50 |
51 |
52 |
53 | //cross check filetype for controllers
54 | //
55 | //image?
56 | if(in_array($type,(new ImageController)->getRegisteredExtensions()))
57 | {
58 | $answer = (new ImageController())->handleUpload($tmpfile,$hash);
59 | }
60 | //or, a text
61 | else if($type=='text')
62 | {
63 | $answer = (new TextController())->handleUpload($tmpfile,$hash);
64 | }
65 | //or, a video
66 | else if(in_array($type,(new VideoController)->getRegisteredExtensions()))
67 | {
68 | $answer = (new VideoController())->handleUpload($tmpfile,$hash);
69 | }
70 |
71 | if(!$answer)
72 | $answer = array('status'=>'err','reason'=>'Unsupported filetype','filetype'=>$type);
73 |
74 | if($answer['hash'] && $answer['status']=='ok')
75 | {
76 | $answer['filetype'] = $type;
77 | //add this sha1 to the list
78 | addSha1($answer['hash'],$sha1);
79 |
80 | if(getDeleteCodeOfHash($answer['hash']))
81 | {
82 | $answer['delete_code'] = getDeleteCodeOfHash($answer['hash']);
83 | $answer['delete_url'] = getURL().'delete_'.getDeleteCodeOfHash($answer['hash']).'/'.$answer['hash'];
84 | }
85 |
86 | storageControllerUpload($answer['hash']);
87 | }
88 |
89 | echo json_encode($answer);
90 | }
91 |
92 |
93 |
94 |
95 | function base64_to_type($base64_string)
96 | {
97 | $data = explode(',', $base64_string);
98 | $data = $data[1];
99 |
100 | $data = str_replace(' ','+',$data);
101 | $data = base64_decode($data);
102 |
103 | $info = getimagesizefromstring($data);
104 |
105 |
106 |
107 | trigger_error("########## FILETYPE: ".$info['mime']);
108 |
109 |
110 | $f = finfo_open();
111 | $type = finfo_buffer($f, $data, FILEINFO_MIME_TYPE);
112 |
113 | return $type;
114 | }
115 |
116 | function base64ToFile($base64_string, $output_file)
117 | {
118 | $data = explode(',', $base64_string);
119 | $data = $data[1];
120 | $data = str_replace(' ','+',$data);
121 | $data = base64_decode($data);
122 | $ifp = fopen( $output_file, 'wb' );
123 | fwrite( $ifp, $data );
124 | fclose( $ifp );
125 | }
--------------------------------------------------------------------------------
/api/info.php:
--------------------------------------------------------------------------------
1 | 'err','reason'=>'File not found')));
28 | }
29 | else
30 | {
31 | $answer = getInfoAboutHash($hash);
32 | $answer['status'] = 'ok';
33 | exit(json_encode($answer));
34 | }
35 |
36 |
37 | function getInfoAboutHash($hash)
38 | {
39 | $file = getDataDir().DS.$hash.DS.$hash;
40 | if(!file_exists($file))
41 | return array('status'=>'err','reason'=>'File not found');
42 | $size = filesize($file);
43 | $size_hr = renderSize($size);
44 | $content_type = exec("file -bi " . escapeshellarg($file));
45 | if($content_type && strpos($content_type,'/')!==false && strpos($content_type,';')!==false)
46 | {
47 | $type = $content_type;
48 | $c = explode(';',$type);
49 | $type = $c[0];
50 | }
51 |
52 | return array('hash'=>$hash,'size_bytes'=>$size,'size_interpreted'=>$size_hr,'type'=>$type,'type_interpreted'=>getTypeOfFile($file));
53 | }
--------------------------------------------------------------------------------
/api/pastebin.php:
--------------------------------------------------------------------------------
1 | 'err','reason'=>'Text controller not enabled')));
19 |
20 | // check if client has permission to upload
21 | executeUploadPermission();
22 |
23 | // check write permissions first
24 | if(!isFolderWritable(getDataDir()))
25 | exit(json_encode(array('status'=>'err','reason'=>'Data directory not writable')));
26 | else if(!isFolderWritable(ROOT.DS.'tmp'))
27 | exit(json_encode(array('status'=>'err','reason'=>'Temp directory not writable')));
28 |
29 | // check for POSTed text
30 | if($_REQUEST['api_paste_code'])
31 | {
32 | $hash = getNewHash('txt',$length=10);
33 | $tmpfile = ROOT.DS.'tmp'.DS.$hash;
34 | file_put_contents($tmpfile,$_REQUEST['api_paste_code']);
35 |
36 | //check if this exact paste already exists
37 | $sha1 = sha1_file($tmpfile);
38 | $sha_hash = sha1Exists($sha1);
39 | if($sha_hash)
40 | exit(getURL().$sha_hash);
41 |
42 | $answer = (new TextController())->handleUpload($tmpfile,$hash);
43 | if($answer['hash'] && $answer['status']=='ok')
44 | addSha1($answer['hash'],$sha1);
45 |
46 | echo getURL().$hash;
47 | }
--------------------------------------------------------------------------------
/api/upload.php:
--------------------------------------------------------------------------------
1 | 'err','reason'=>'Data directory not writable')));
23 | else if(!isFolderWritable(ROOT.DS.'tmp'))
24 | exit(json_encode(array('status'=>'err','reason'=>'Temp directory not writable')));
25 |
26 | // check if client has permission to upload
27 | executeUploadPermission();
28 |
29 | if(isset($_REQUEST['hash']))
30 | $hash = sanatizeString(trim($_REQUEST['hash']));
31 | else
32 | $hash = false;
33 |
34 | // check for POST upload
35 | if ($_FILES['file']["error"] == UPLOAD_ERR_OK)
36 | {
37 | //get the file type
38 | $type = getTypeOfFile($_FILES['file']["tmp_name"]);
39 |
40 | //check for duplicates
41 | $sha1 = sha1_file($_FILES['file']["tmp_name"]);
42 | $ehash = sha1Exists($sha1);
43 | if($ehash && file_exists(getDataDir().DS.$ehash.DS.$ehash))
44 | exit(json_encode(array('status'=>'ok','hash'=>$ehash,'filetype'=>$type,'url'=>getURL().$ehash)));
45 |
46 | //cross check filetype for controllers
47 | //
48 | //image?
49 |
50 | foreach($allowedcontentcontrollers as $cc)
51 | {
52 | if(in_array($type,(new $cc)->getRegisteredExtensions()))
53 | {
54 | $answer = (new $cc())->handleUpload($_FILES['file']['tmp_name'],$hash);
55 | break;
56 | }
57 | }
58 |
59 | /*
60 | if(in_array($type,(new ImageController)->getRegisteredExtensions()))
61 | {
62 | $answer = (new ImageController())->handleUpload($_FILES['file']['tmp_name'],$hash);
63 | }
64 |
65 | //or, a text
66 | else if($type=='text')
67 | {
68 | $answer = (new TextController())->handleUpload($_FILES['file']['tmp_name'],$hash);
69 | }
70 | //or, a video
71 | else if(in_array($type,(new VideoController)->getRegisteredExtensions()))
72 | {
73 | $answer = (new VideoController())->handleUpload($_FILES['file']['tmp_name'],$hash);
74 | }
75 | */
76 | if(!$answer)
77 | $answer = array('status'=>'err','reason'=>'Unsupported filetype: '.$type,'filetype'=>$type);
78 |
79 | if($answer['hash'] && $answer['status']=='ok')
80 | {
81 | $answer['filetype'] = $type;
82 | //add this sha1 to the list
83 | addSha1($answer['hash'],$sha1);
84 |
85 | if(getDeleteCodeOfHash($answer['hash']))
86 | {
87 | $answer['delete_code'] = getDeleteCodeOfHash($answer['hash']);
88 | $answer['delete_url'] = getURL().'delete_'.getDeleteCodeOfHash($answer['hash']).'/'.$answer['hash'];
89 | }
90 |
91 |
92 | storageControllerUpload($answer['hash']);
93 | }
94 |
95 | echo json_encode($answer);
96 | }
97 | else
98 | exit(json_encode(array('status'=>'err','reason'=>'Upload error')));
99 |
--------------------------------------------------------------------------------
/content-controllers/identicon/identicon.controller.php:
--------------------------------------------------------------------------------
1 | setBackgroundColor(Color::parseHex('#EEEEEE'));
23 |
24 | $identicon = new Identicon(new MD5Preprocessor(), $generator);
25 |
26 | $icon = $identicon->getIcon($url[0]);
27 |
28 | header('Content-type: image/svg+xml');
29 | echo $icon;
30 | }
31 |
32 | public function handleUpload($tmpfile,$hash=false)
33 | {
34 | return array('status'=>'err','hash'=>$hash,'reason'=>'Cannot upload to Identicons');
35 | }
36 |
37 |
38 | }
--------------------------------------------------------------------------------
/content-controllers/image/conversion.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/content-controllers/image/conversion.php
--------------------------------------------------------------------------------
/content-controllers/image/resize.php:
--------------------------------------------------------------------------------
1 | $width?$width:$maxwidth);
39 | $maxheight = ($maxheight>$height?$height:$maxheight);
40 |
41 |
42 | $dst_img = imagecreatetruecolor($maxwidth, $maxheight);
43 | $src_img = $img;
44 |
45 | $palsize = ImageColorsTotal($img);
46 | for ($i = 0; $i < $palsize; $i++)
47 | {
48 | $colors = ImageColorsForIndex($img, $i);
49 | ImageColorAllocate($dst_img, $colors['red'], $colors['green'], $colors['blue']);
50 | }
51 |
52 | imagefill($dst_img, 0, 0, IMG_COLOR_TRANSPARENT);
53 | imagesavealpha($dst_img,true);
54 | imagealphablending($dst_img, true);
55 |
56 | $width_new = $height * $maxwidth / $maxheight;
57 | $height_new = $width * $maxheight / $maxwidth;
58 | //if the new width is greater than the actual width of the image, then the height is too large and the rest cut off, or vice versa
59 | if($width_new > $width){
60 | //cut point by height
61 | $h_point = (($height - $height_new) / 2);
62 | //copy image
63 | imagecopyresampled($dst_img, $src_img, 0, 0, 0, $h_point, $maxwidth, $maxheight, $width, $height_new);
64 | }else{
65 | //cut point by width
66 | $w_point = (($width - $width_new) / 2);
67 | imagecopyresampled($dst_img, $src_img, 0, 0, $w_point, 0, $maxwidth, $maxheight, $width_new, $height);
68 | }
69 |
70 | $img = $dst_img;
71 | }
72 |
73 | /**
74 | * From: https://stackoverflow.com/questions/4590441/php-thumbnail-image-resizing-with-proportions
75 | */
76 | function resize(&$img,$size)
77 | {
78 | $sd = sizeStringToWidthHeight($size);
79 | $maxwidth = $sd['width'];
80 | $maxheight = $sd['height'];
81 |
82 | $width = imagesx($img);
83 | $height = imagesy($img);
84 |
85 | if(defined('ALLOW_BLOATING') && !ALLOW_BLOATING)
86 | {
87 | if($maxwidth>$width)$maxwidth = $width;
88 | if($maxheight>$height)$maxheight = $height;
89 | }
90 |
91 | if ($height > $width)
92 | {
93 | $ratio = $maxheight / $height;
94 | $newheight = intval($maxheight);
95 | $newwidth = intval($width * $ratio) ;
96 | }
97 | else
98 | {
99 | $ratio = $maxwidth / $width;
100 | $newwidth = intval($maxwidth) ;
101 | $newheight = intval($height * $ratio);
102 | }
103 |
104 | $newimg = imagecreatetruecolor($newwidth,$newheight);
105 |
106 | $palsize = ImageColorsTotal($img);
107 | for ($i = 0; $i < $palsize; $i++)
108 | {
109 | $colors = ImageColorsForIndex($img, $i);
110 | ImageColorAllocate($newimg, $colors['red'], $colors['green'], $colors['blue']);
111 | }
112 |
113 | imagefill($newimg, 0, 0, IMG_COLOR_TRANSPARENT);
114 | imagesavealpha($newimg,true);
115 | imagealphablending($newimg, true);
116 |
117 | imagecopyresampled($newimg, $img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
118 |
119 | $img = $newimg;
120 | }
--------------------------------------------------------------------------------
/content-controllers/placeholder/fonts/RonysiswadiArchitect5-1GErv.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/content-controllers/placeholder/fonts/RonysiswadiArchitect5-1GErv.ttf
--------------------------------------------------------------------------------
/content-controllers/placeholder/placeholder.controller.php:
--------------------------------------------------------------------------------
1 | 4)
30 | $modifiers['colors'] = array_slice($modifiers['colors'],0,4);
31 | }
32 | }
33 |
34 | $img = $pg->generateImage($modifiers);
35 |
36 | $img = $pg->gradient($img, $modifiers['colors']);
37 | $img = $pg->addSizeText($img,$modifiers);
38 |
39 | header ("Content-type: image/jpeg");
40 | header ("ETag: $hash");
41 | header('Cache-control: public, max-age=31536000');
42 |
43 | imagejpeg($img,null,(defined('JPEG_COMPRESSION')?JPEG_COMPRESSION:90));
44 | }
45 |
46 | public function handleUpload($tmpfile,$hash=false)
47 | {
48 | return array('status'=>'err','hash'=>$hash,'reason'=>'Cannot upload to placeholder image');
49 | }
50 |
51 |
52 | }
--------------------------------------------------------------------------------
/content-controllers/placeholder/placeholdergenerator.php:
--------------------------------------------------------------------------------
1 | imagesx($im) || $textheight > imagesy($im))
39 | return $im;
40 |
41 | $x = intval((imagesx($im) - $textwidth) / 2);
42 | $y = intval((imagesy($im) - $textheight) / 2 + $textheight);
43 | imagettftext($im, $fontsize, 0, $x, $y, $textcolor, $font, $text);
44 |
45 | return $im;
46 | }
47 |
48 | function gradient($im, $c) {
49 |
50 | $w = imagesx($im);
51 | $h = imagesy($im);
52 |
53 | if(!$c[0]) $c = ['ffffff','ffffff','ffffff','ffffff'];
54 | else if(!$c[1]) $c = [$c[0],$c[0],$c[0],$c[0]];
55 | else if(!$c[2]) $c = [$c[0],$c[0],$c[1],$c[1]];
56 | else if(!$c[3]) $c = [$c[0],$c[1],$c[2],$c[0]];
57 |
58 | for($i=0;$i<=3;$i++) {
59 | $c[$i]=$this->hex2rgb($c[$i]);
60 | }
61 |
62 | $rgb=$c[0]; // start with top left color
63 | for($x=0;$x<=$w;$x++) { // loop columns
64 | for($y=0;$y<=$h;$y++) { // loop rows
65 | // set pixel color
66 | $col=imagecolorallocate($im,intval($rgb[0]),intval($rgb[1]),intval($rgb[2]));
67 | imagesetpixel($im,$x-1,$y-1,$col);
68 | // calculate new color
69 | for($i=0;$i<=2;$i++) {
70 | $rgb[$i]=
71 | $c[0][$i]*(($w-$x)*($h-$y)/($w*$h)) +
72 | $c[1][$i]*($x *($h-$y)/($w*$h)) +
73 | $c[2][$i]*(($w-$x)*$y /($w*$h)) +
74 | $c[3][$i]*($x *$y /($w*$h));
75 | }
76 | }
77 | }
78 | return $im;
79 | }
80 |
81 | function hex2rgb($hex)
82 | {
83 | $rgb[0]=hexdec(substr($hex,0,2));
84 | $rgb[1]=hexdec(substr($hex,2,2));
85 | $rgb[2]=hexdec(substr($hex,4,2));
86 | return($rgb);
87 | }
88 | }
--------------------------------------------------------------------------------
/content-controllers/text/text.controller.php:
--------------------------------------------------------------------------------
1 | $hash,'content'=>htmlentities(file_get_contents($path))));
35 | }
36 |
37 | public function handleUpload($tmpfile,$hash=false)
38 | {
39 | if($hash===false)
40 | {
41 | $hash = getNewHash('txt',6);
42 | }
43 | else
44 | {
45 | if(!endswith($hash,'.txt'))
46 | $hash.='.txt';
47 | if(isExistingHash($hash))
48 | return array('status'=>'err','hash'=>$hash,'reason'=>'Custom hash already exists');
49 | }
50 |
51 | storeFile($tmpfile,$hash,true);
52 |
53 | return array('status'=>'ok','hash'=>$hash,'url'=>getURL().$hash);
54 | }
55 |
56 | function getTypeOfText($hash)
57 | {
58 | return file_get_contents(getDataDir().DS.$hash.DS.'type');
59 | }
60 | }
--------------------------------------------------------------------------------
/content-controllers/url/url.controller.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/css/imgs/logo/logo2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/css/imgs/logo/logo2.png
--------------------------------------------------------------------------------
/css/imgs/logo/monochrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/css/imgs/logo/monochrome.png
--------------------------------------------------------------------------------
/css/imgs/logo/monochrome2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/css/imgs/logo/monochrome2.png
--------------------------------------------------------------------------------
/css/imgs/logo/picthshare.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/css/imgs/logo/picthshare.ai
--------------------------------------------------------------------------------
/css/imgs/logo/picthshare.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/css/imgs/logo/picthshare.pdf
--------------------------------------------------------------------------------
/css/imgs/logo/vertical.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/css/imgs/logo/vertical.png
--------------------------------------------------------------------------------
/css/imgs/logo/vertical2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/css/imgs/logo/vertical2.png
--------------------------------------------------------------------------------
/css/imgs/logo/vertical3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/css/imgs/logo/vertical3.png
--------------------------------------------------------------------------------
/css/pictshare.css:
--------------------------------------------------------------------------------
1 | body {
2 | font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
3 | font-size: 14px;
4 | line-height: 1.42857143;
5 | color: #333;
6 | background-image: url('imgs/bg.png');
7 | background-repeat: no-repeat;
8 | background-color: #fff;
9 | }
10 |
11 | #headcontainer
12 | {
13 | padding-top:20px;
14 | margin-left:100px;
15 | }
16 |
17 | .well {
18 | min-height: 20px;
19 | padding: 19px;
20 | margin-bottom: 20px;
21 | border: 1px solid #e3e3e3;
22 | border-radius: 4px;
23 |
24 | background: rgb(245, 245, 245); /* Fall-back for browsers that don't support rgba */
25 | background: rgba(245, 245, 245, .8);
26 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.05);
27 | box-shadow: inset 0 1px 1px rgba(0,0,0,.05);
28 | }
29 |
30 | .box__dragndrop,
31 | .box__uploading,
32 | .box__success,
33 | .box__error {
34 | display: none;
35 | }
--------------------------------------------------------------------------------
/data/.gitignore:
--------------------------------------------------------------------------------
1 | # Ignore everything in this directory
2 | *
3 | # Except this file
4 | !.gitignore
--------------------------------------------------------------------------------
/docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM alpine:3.18
2 |
3 | RUN apk add --no-cache bash socat wget curl nginx file ffmpeg unzip zlib redis \
4 | php82-fileinfo \
5 | php82-session \
6 | php \
7 | php-curl \
8 | php-openssl \
9 | php-mbstring \
10 | php-json \
11 | php-gd \
12 | php-dom \
13 | php-fpm \
14 | php82 \
15 | php82-pdo \
16 | php82-exif \
17 | php82-curl \
18 | php82-gd \
19 | php82-json \
20 | php82-phar \
21 | php82-fpm \
22 | php82-openssl \
23 | php82-ctype \
24 | php82-opcache \
25 | php82-mbstring \
26 | php82-sodium \
27 | php82-xml \
28 | php82-ftp \
29 | php82-simplexml \
30 | php82-session \
31 | php82-fileinfo \
32 | php82-pcntl \
33 | php82-pecl-redis
34 |
35 | RUN ln -s /usr/bin/php82 /usr/bin/php
36 |
37 | RUN curl -sS https://getcomposer.org/installer | /usr/bin/php -- --install-dir=/usr/bin --filename=composer
38 | RUN mkdir -p /var/www
39 | WORKDIR /var/www
40 |
41 | ADD . /var/www/.
42 |
43 | ADD docker/rootfs/start.sh /etc/start.sh
44 | RUN chmod +x /etc/start.sh
45 |
46 | # Composer intall
47 | WORKDIR /var/www/lib
48 | RUN composer install --no-dev --no-interaction --no-progress --optimize-autoloader
49 |
50 | # nginx stuff
51 | WORKDIR /var/www
52 | ADD docker/rootfs/nginx.conf /etc/nginx/http.d/default.conf
53 | RUN mkdir -p /run/nginx
54 | RUN mkdir -p /var/log/nginx
55 | RUN sed -i 's/nobody/nginx/g' /etc/php82/php-fpm.d/www.conf
56 |
57 | # Since requests can trigger conversion, let's give the server enough time to respond
58 | RUN sed -i "/max_execution_time/c\max_execution_time=3600" /etc/php82/php.ini
59 | RUN sed -i "/max_input_time/c\max_input_time=3600" /etc/php82/php.ini
60 |
61 | WORKDIR /var/www/
62 |
63 | # Volumes to mount
64 | #VOLUME /var/lib/influxdb
65 | VOLUME /var/www/data
66 |
67 | EXPOSE 80
68 |
69 | ENTRYPOINT ["/etc/start.sh"]
--------------------------------------------------------------------------------
/docker/rootfs/nginx.conf:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80 default_server;
3 |
4 | set $base /var/www;
5 | root /var/www/;
6 |
7 | index index.php;
8 |
9 | client_max_body_size 50M;
10 |
11 | location / {
12 | try_files $uri $uri/ /index.php?url=$request_uri;
13 | }
14 |
15 | location ~ /(data|tmp|bin|content-controllers|inc|interfaces|storage-controllers|templates|tools|docker) {
16 | deny all;
17 | return 404;
18 | }
19 |
20 | # logging
21 | access_log /var/log/nginx/pictshare/access.log;
22 | error_log /var/log/nginx/pictshare/error.log warn;
23 |
24 | location ~ \.php$ {
25 | # 404
26 | try_files $fastcgi_script_name =404;
27 |
28 | # default fastcgi_params
29 | include fastcgi_params;
30 |
31 | # fastcgi settings
32 | fastcgi_pass 127.0.0.1:9000;
33 | fastcgi_index index.php;
34 | fastcgi_buffers 8 16k;
35 | fastcgi_buffer_size 32k;
36 | fastcgi_max_temp_file_size 0; # caching files to disk while uploading. this will help low-memory devices
37 | fastcgi_read_timeout 1d; # we set the timeout to 1 day so big uploads and have enough time to be delivered
38 | fastcgi_send_timeout 1d; # it's especially important if you want to use storage controllers like S3 or FTP
39 | fastcgi_request_buffering off; # disabbling buffering which will send the uploaded data right to PHP
40 |
41 | # fastcgi params
42 | fastcgi_param DOCUMENT_ROOT $realpath_root;
43 | fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
44 | fastcgi_param PHP_ADMIN_VALUE "open_basedir=$base/:/usr/lib/php/:/tmp/";
45 | }
46 |
47 | location /favicon.ico {
48 | log_not_found off;
49 | }
50 |
51 | # security headers
52 | add_header X-Frame-Options "SAMEORIGIN" always;
53 | add_header X-XSS-Protection "1; mode=block" always;
54 | add_header X-Content-Type-Options "nosniff" always;
55 | add_header Referrer-Policy "no-referrer-when-downgrade" always;
56 | add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'" always;
57 | add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
58 |
59 | # svg, fonts
60 | location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
61 | add_header Access-Control-Allow-Origin "*";
62 | expires 7d;
63 | access_log off;
64 | }
65 |
66 | # gzip
67 | gzip on;
68 | gzip_vary on;
69 | gzip_proxied any;
70 | gzip_comp_level 6;
71 | gzip_types text/plain text/css text/xml application/json application/javascript application/xml+rss application/atom+xml image/svg+xml;
72 |
73 | }
--------------------------------------------------------------------------------
/docker/rootfs/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ######### functions
4 |
5 | _maxUploadSize() {
6 | echo "[i] Setting uploadsize to ${MAX_UPLOAD_SIZE}M"
7 |
8 | sed -i "/post_max_size/c\post_max_size=${MAX_UPLOAD_SIZE}M" /etc/php82/php.ini
9 | sed -i "/upload_max_filesize/c\upload_max_filesize=${MAX_UPLOAD_SIZE}M" /etc/php82/php.ini
10 |
11 | # set error reporting no notices, no warnings
12 | sed -i "/^error_reporting/c\error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_WARNING & ~E_NOTICE" /etc/php82/php.ini
13 |
14 | sed -i -e "s/50M/${MAX_UPLOAD_SIZE}M/g" /etc/nginx/http.d/default.conf
15 |
16 | MAX_RAM=$((MAX_UPLOAD_SIZE + 30)) # 30megs more than the upload size
17 | echo "[i] Also changing memory limit of PHP to ${MAX_RAM}M"
18 | sed -i -e "s/128M/${MAX_RAM}M/g" /etc/php82/php.ini
19 | sed -i "/memory_limit/c\memory_limit=${MAX_RAM}M" /etc/php82/php.ini
20 | }
21 |
22 | _filePermissions() {
23 | chown -R nginx:nginx /var/www
24 | touch data/sha1.csv
25 | chown nginx:nginx data/sha1.csv
26 | }
27 |
28 | _buildConfig() {
29 | echo " inc/config.inc.php
87 |
88 | echo ' [+] Starting nginx'
89 |
90 | mkdir -p /var/log/nginx/pictshare
91 | touch /var/log/nginx/pictshare/access.log
92 | touch /var/log/nginx/pictshare/error.log
93 |
94 | nginx
95 |
96 | tail -f /var/log/nginx/pictshare/*.log
97 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/favicon.ico
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/inc/.gitignore:
--------------------------------------------------------------------------------
1 | config.inc.php
--------------------------------------------------------------------------------
/inc/encryption.php:
--------------------------------------------------------------------------------
1 | Error uploading " + file.name + "
Reason is unknown :(")
20 | else {
21 | var o = response;
22 | if (o.status == 'ok')
23 | $("#uploadinfo").append("
")
24 | else if (o.status == 'err')
25 | $("#uploadinfo").append("Error uploading " + file.name + "
Reason: " + o.reason + "
")
26 | console.log(o)
27 | }
28 | });
29 |
30 | document.onpaste = function (event) {
31 | var items = (event.clipboardData || event.originalEvent.clipboardData).items;
32 | for (index in items) {
33 | var item = items[index];
34 | if (item.kind === 'file') {
35 | // adds the file to your dropzone instance
36 | myDropzone.addFile(item.getAsFile())
37 | }
38 | }
39 | }
40 | })
--------------------------------------------------------------------------------
/js/styles/a11y-dark.css:
--------------------------------------------------------------------------------
1 | /* a11y-dark theme */
2 | /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */
3 | /* @author: ericwbailey */
4 |
5 | /* Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #d4d0ab;
9 | }
10 |
11 | /* Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-tag,
15 | .hljs-name,
16 | .hljs-selector-id,
17 | .hljs-selector-class,
18 | .hljs-regexp,
19 | .hljs-deletion {
20 | color: #ffa07a;
21 | }
22 |
23 | /* Orange */
24 | .hljs-number,
25 | .hljs-built_in,
26 | .hljs-builtin-name,
27 | .hljs-literal,
28 | .hljs-type,
29 | .hljs-params,
30 | .hljs-meta,
31 | .hljs-link {
32 | color: #f5ab35;
33 | }
34 |
35 | /* Yellow */
36 | .hljs-attribute {
37 | color: #ffd700;
38 | }
39 |
40 | /* Green */
41 | .hljs-string,
42 | .hljs-symbol,
43 | .hljs-bullet,
44 | .hljs-addition {
45 | color: #abe338;
46 | }
47 |
48 | /* Blue */
49 | .hljs-title,
50 | .hljs-section {
51 | color: #00e0e0;
52 | }
53 |
54 | /* Purple */
55 | .hljs-keyword,
56 | .hljs-selector-tag {
57 | color: #dcc6e0;
58 | }
59 |
60 | .hljs {
61 | display: block;
62 | overflow-x: auto;
63 | background: #2b2b2b;
64 | color: #f8f8f2;
65 | padding: 0.5em;
66 | }
67 |
68 | .hljs-emphasis {
69 | font-style: italic;
70 | }
71 |
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 |
76 | @media screen and (-ms-high-contrast: active) {
77 | .hljs-addition,
78 | .hljs-attribute,
79 | .hljs-built_in,
80 | .hljs-builtin-name,
81 | .hljs-bullet,
82 | .hljs-comment,
83 | .hljs-link,
84 | .hljs-literal,
85 | .hljs-meta,
86 | .hljs-number,
87 | .hljs-params,
88 | .hljs-string,
89 | .hljs-symbol,
90 | .hljs-type,
91 | .hljs-quote {
92 | color: highlight;
93 | }
94 |
95 | .hljs-keyword,
96 | .hljs-selector-tag {
97 | font-weight: bold;
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/js/styles/a11y-light.css:
--------------------------------------------------------------------------------
1 | /* a11y-light theme */
2 | /* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */
3 | /* @author: ericwbailey */
4 |
5 | /* Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #696969;
9 | }
10 |
11 | /* Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-tag,
15 | .hljs-name,
16 | .hljs-selector-id,
17 | .hljs-selector-class,
18 | .hljs-regexp,
19 | .hljs-deletion {
20 | color: #d91e18;
21 | }
22 |
23 | /* Orange */
24 | .hljs-number,
25 | .hljs-built_in,
26 | .hljs-builtin-name,
27 | .hljs-literal,
28 | .hljs-type,
29 | .hljs-params,
30 | .hljs-meta,
31 | .hljs-link {
32 | color: #aa5d00;
33 | }
34 |
35 | /* Yellow */
36 | .hljs-attribute {
37 | color: #aa5d00;
38 | }
39 |
40 | /* Green */
41 | .hljs-string,
42 | .hljs-symbol,
43 | .hljs-bullet,
44 | .hljs-addition {
45 | color: #008000;
46 | }
47 |
48 | /* Blue */
49 | .hljs-title,
50 | .hljs-section {
51 | color: #007faa;
52 | }
53 |
54 | /* Purple */
55 | .hljs-keyword,
56 | .hljs-selector-tag {
57 | color: #7928a1;
58 | }
59 |
60 | .hljs {
61 | display: block;
62 | overflow-x: auto;
63 | background: #fefefe;
64 | color: #545454;
65 | padding: 0.5em;
66 | }
67 |
68 | .hljs-emphasis {
69 | font-style: italic;
70 | }
71 |
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 |
76 | @media screen and (-ms-high-contrast: active) {
77 | .hljs-addition,
78 | .hljs-attribute,
79 | .hljs-built_in,
80 | .hljs-builtin-name,
81 | .hljs-bullet,
82 | .hljs-comment,
83 | .hljs-link,
84 | .hljs-literal,
85 | .hljs-meta,
86 | .hljs-number,
87 | .hljs-params,
88 | .hljs-string,
89 | .hljs-symbol,
90 | .hljs-type,
91 | .hljs-quote {
92 | color: highlight;
93 | }
94 |
95 | .hljs-keyword,
96 | .hljs-selector-tag {
97 | font-weight: bold;
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/js/styles/agate.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Agate by Taufik Nurrohman
3 | * ----------------------------------------------------
4 | *
5 | * #ade5fc
6 | * #a2fca2
7 | * #c6b4f0
8 | * #d36363
9 | * #fcc28c
10 | * #fc9b9b
11 | * #ffa
12 | * #fff
13 | * #333
14 | * #62c8f3
15 | * #888
16 | *
17 | */
18 |
19 | .hljs {
20 | display: block;
21 | overflow-x: auto;
22 | padding: 0.5em;
23 | background: #333;
24 | color: white;
25 | }
26 |
27 | .hljs-name,
28 | .hljs-strong {
29 | font-weight: bold;
30 | }
31 |
32 | .hljs-code,
33 | .hljs-emphasis {
34 | font-style: italic;
35 | }
36 |
37 | .hljs-tag {
38 | color: #62c8f3;
39 | }
40 |
41 | .hljs-variable,
42 | .hljs-template-variable,
43 | .hljs-selector-id,
44 | .hljs-selector-class {
45 | color: #ade5fc;
46 | }
47 |
48 | .hljs-string,
49 | .hljs-bullet {
50 | color: #a2fca2;
51 | }
52 |
53 | .hljs-type,
54 | .hljs-title,
55 | .hljs-section,
56 | .hljs-attribute,
57 | .hljs-quote,
58 | .hljs-built_in,
59 | .hljs-builtin-name {
60 | color: #ffa;
61 | }
62 |
63 | .hljs-number,
64 | .hljs-symbol,
65 | .hljs-bullet {
66 | color: #d36363;
67 | }
68 |
69 | .hljs-keyword,
70 | .hljs-selector-tag,
71 | .hljs-literal {
72 | color: #fcc28c;
73 | }
74 |
75 | .hljs-comment,
76 | .hljs-deletion,
77 | .hljs-code {
78 | color: #888;
79 | }
80 |
81 | .hljs-regexp,
82 | .hljs-link {
83 | color: #c6b4f0;
84 | }
85 |
86 | .hljs-meta {
87 | color: #fc9b9b;
88 | }
89 |
90 | .hljs-deletion {
91 | background-color: #fc9b9b;
92 | color: #333;
93 | }
94 |
95 | .hljs-addition {
96 | background-color: #a2fca2;
97 | color: #333;
98 | }
99 |
100 | .hljs a {
101 | color: inherit;
102 | }
103 |
104 | .hljs a:focus,
105 | .hljs a:hover {
106 | color: inherit;
107 | text-decoration: underline;
108 | }
109 |
--------------------------------------------------------------------------------
/js/styles/an-old-hope.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | An Old Hope – Star Wars Syntax (c) Gustavo Costa
4 | Original theme - Ocean Dark Theme – by https://github.com/gavsiu
5 | Based on Jesse Leite's Atom syntax theme 'An Old Hope' – https://github.com/JesseLeite/an-old-hope-syntax-atom
6 |
7 | */
8 |
9 | /* Death Star Comment */
10 | .hljs-comment,
11 | .hljs-quote
12 | {
13 | color: #B6B18B;
14 | }
15 |
16 | /* Darth Vader */
17 | .hljs-variable,
18 | .hljs-template-variable,
19 | .hljs-tag,
20 | .hljs-name,
21 | .hljs-selector-id,
22 | .hljs-selector-class,
23 | .hljs-regexp,
24 | .hljs-deletion
25 | {
26 | color: #EB3C54;
27 | }
28 |
29 | /* Threepio */
30 | .hljs-number,
31 | .hljs-built_in,
32 | .hljs-builtin-name,
33 | .hljs-literal,
34 | .hljs-type,
35 | .hljs-params,
36 | .hljs-meta,
37 | .hljs-link
38 | {
39 | color: #E7CE56;
40 | }
41 |
42 | /* Luke Skywalker */
43 | .hljs-attribute
44 | {
45 | color: #EE7C2B;
46 | }
47 |
48 | /* Obi Wan Kenobi */
49 | .hljs-string,
50 | .hljs-symbol,
51 | .hljs-bullet,
52 | .hljs-addition
53 | {
54 | color: #4FB4D7;
55 | }
56 |
57 | /* Yoda */
58 | .hljs-title,
59 | .hljs-section
60 | {
61 | color: #78BB65;
62 | }
63 |
64 | /* Mace Windu */
65 | .hljs-keyword,
66 | .hljs-selector-tag
67 | {
68 | color: #B45EA4;
69 | }
70 |
71 | /* Millenium Falcon */
72 | .hljs
73 | {
74 | display: block;
75 | overflow-x: auto;
76 | background: #1C1D21;
77 | color: #c0c5ce;
78 | padding: 0.5em;
79 | }
80 |
81 | .hljs-emphasis
82 | {
83 | font-style: italic;
84 | }
85 |
86 | .hljs-strong
87 | {
88 | font-weight: bold;
89 | }
90 |
--------------------------------------------------------------------------------
/js/styles/androidstudio.css:
--------------------------------------------------------------------------------
1 | /*
2 | Date: 24 Fev 2015
3 | Author: Pedro Oliveira
4 | */
5 |
6 | .hljs {
7 | color: #a9b7c6;
8 | background: #282b2e;
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | }
13 |
14 | .hljs-number,
15 | .hljs-literal,
16 | .hljs-symbol,
17 | .hljs-bullet {
18 | color: #6897BB;
19 | }
20 |
21 | .hljs-keyword,
22 | .hljs-selector-tag,
23 | .hljs-deletion {
24 | color: #cc7832;
25 | }
26 |
27 | .hljs-variable,
28 | .hljs-template-variable,
29 | .hljs-link {
30 | color: #629755;
31 | }
32 |
33 | .hljs-comment,
34 | .hljs-quote {
35 | color: #808080;
36 | }
37 |
38 | .hljs-meta {
39 | color: #bbb529;
40 | }
41 |
42 | .hljs-string,
43 | .hljs-attribute,
44 | .hljs-addition {
45 | color: #6A8759;
46 | }
47 |
48 | .hljs-section,
49 | .hljs-title,
50 | .hljs-type {
51 | color: #ffc66d;
52 | }
53 |
54 | .hljs-name,
55 | .hljs-selector-id,
56 | .hljs-selector-class {
57 | color: #e8bf6a;
58 | }
59 |
60 | .hljs-emphasis {
61 | font-style: italic;
62 | }
63 |
64 | .hljs-strong {
65 | font-weight: bold;
66 | }
67 |
--------------------------------------------------------------------------------
/js/styles/arduino-light.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Arduino® Light Theme - Stefania Mellai
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #FFFFFF;
12 | }
13 |
14 | .hljs,
15 | .hljs-subst {
16 | color: #434f54;
17 | }
18 |
19 | .hljs-keyword,
20 | .hljs-attribute,
21 | .hljs-selector-tag,
22 | .hljs-doctag,
23 | .hljs-name {
24 | color: #00979D;
25 | }
26 |
27 | .hljs-built_in,
28 | .hljs-literal,
29 | .hljs-bullet,
30 | .hljs-code,
31 | .hljs-addition {
32 | color: #D35400;
33 | }
34 |
35 | .hljs-regexp,
36 | .hljs-symbol,
37 | .hljs-variable,
38 | .hljs-template-variable,
39 | .hljs-link,
40 | .hljs-selector-attr,
41 | .hljs-selector-pseudo {
42 | color: #00979D;
43 | }
44 |
45 | .hljs-type,
46 | .hljs-string,
47 | .hljs-selector-id,
48 | .hljs-selector-class,
49 | .hljs-quote,
50 | .hljs-template-tag,
51 | .hljs-deletion {
52 | color: #005C5F;
53 | }
54 |
55 | .hljs-title,
56 | .hljs-section {
57 | color: #880000;
58 | font-weight: bold;
59 | }
60 |
61 | .hljs-comment {
62 | color: rgba(149,165,166,.8);
63 | }
64 |
65 | .hljs-meta-keyword {
66 | color: #728E00;
67 | }
68 |
69 | .hljs-meta {
70 | color: #728E00;
71 | color: #434f54;
72 | }
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
82 | .hljs-function {
83 | color: #728E00;
84 | }
85 |
86 | .hljs-number {
87 | color: #8A7B52;
88 | }
89 |
--------------------------------------------------------------------------------
/js/styles/arta.css:
--------------------------------------------------------------------------------
1 | /*
2 | Date: 17.V.2011
3 | Author: pumbur
4 | */
5 |
6 | .hljs {
7 | display: block;
8 | overflow-x: auto;
9 | padding: 0.5em;
10 | background: #222;
11 | }
12 |
13 | .hljs,
14 | .hljs-subst {
15 | color: #aaa;
16 | }
17 |
18 | .hljs-section {
19 | color: #fff;
20 | }
21 |
22 | .hljs-comment,
23 | .hljs-quote,
24 | .hljs-meta {
25 | color: #444;
26 | }
27 |
28 | .hljs-string,
29 | .hljs-symbol,
30 | .hljs-bullet,
31 | .hljs-regexp {
32 | color: #ffcc33;
33 | }
34 |
35 | .hljs-number,
36 | .hljs-addition {
37 | color: #00cc66;
38 | }
39 |
40 | .hljs-built_in,
41 | .hljs-builtin-name,
42 | .hljs-literal,
43 | .hljs-type,
44 | .hljs-template-variable,
45 | .hljs-attribute,
46 | .hljs-link {
47 | color: #32aaee;
48 | }
49 |
50 | .hljs-keyword,
51 | .hljs-selector-tag,
52 | .hljs-name,
53 | .hljs-selector-id,
54 | .hljs-selector-class {
55 | color: #6644aa;
56 | }
57 |
58 | .hljs-title,
59 | .hljs-variable,
60 | .hljs-deletion,
61 | .hljs-template-tag {
62 | color: #bb1166;
63 | }
64 |
65 | .hljs-section,
66 | .hljs-doctag,
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
71 | .hljs-emphasis {
72 | font-style: italic;
73 | }
74 |
--------------------------------------------------------------------------------
/js/styles/ascetic.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Original style from softwaremaniacs.org (c) Ivan Sagalaev
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: white;
12 | color: black;
13 | }
14 |
15 | .hljs-string,
16 | .hljs-variable,
17 | .hljs-template-variable,
18 | .hljs-symbol,
19 | .hljs-bullet,
20 | .hljs-section,
21 | .hljs-addition,
22 | .hljs-attribute,
23 | .hljs-link {
24 | color: #888;
25 | }
26 |
27 | .hljs-comment,
28 | .hljs-quote,
29 | .hljs-meta,
30 | .hljs-deletion {
31 | color: #ccc;
32 | }
33 |
34 | .hljs-keyword,
35 | .hljs-selector-tag,
36 | .hljs-section,
37 | .hljs-name,
38 | .hljs-type,
39 | .hljs-strong {
40 | font-weight: bold;
41 | }
42 |
43 | .hljs-emphasis {
44 | font-style: italic;
45 | }
46 |
--------------------------------------------------------------------------------
/js/styles/atelier-cave-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Cave Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Cave Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #7e7887;
9 | }
10 |
11 | /* Atelier-Cave Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-regexp,
16 | .hljs-link,
17 | .hljs-tag,
18 | .hljs-name,
19 | .hljs-selector-id,
20 | .hljs-selector-class {
21 | color: #be4678;
22 | }
23 |
24 | /* Atelier-Cave Orange */
25 | .hljs-number,
26 | .hljs-meta,
27 | .hljs-built_in,
28 | .hljs-builtin-name,
29 | .hljs-literal,
30 | .hljs-type,
31 | .hljs-params {
32 | color: #aa573c;
33 | }
34 |
35 | /* Atelier-Cave Green */
36 | .hljs-string,
37 | .hljs-symbol,
38 | .hljs-bullet {
39 | color: #2a9292;
40 | }
41 |
42 | /* Atelier-Cave Blue */
43 | .hljs-title,
44 | .hljs-section {
45 | color: #576ddb;
46 | }
47 |
48 | /* Atelier-Cave Purple */
49 | .hljs-keyword,
50 | .hljs-selector-tag {
51 | color: #955ae7;
52 | }
53 |
54 | .hljs-deletion,
55 | .hljs-addition {
56 | color: #19171c;
57 | display: inline-block;
58 | width: 100%;
59 | }
60 |
61 | .hljs-deletion {
62 | background-color: #be4678;
63 | }
64 |
65 | .hljs-addition {
66 | background-color: #2a9292;
67 | }
68 |
69 | .hljs {
70 | display: block;
71 | overflow-x: auto;
72 | background: #19171c;
73 | color: #8b8792;
74 | padding: 0.5em;
75 | }
76 |
77 | .hljs-emphasis {
78 | font-style: italic;
79 | }
80 |
81 | .hljs-strong {
82 | font-weight: bold;
83 | }
84 |
--------------------------------------------------------------------------------
/js/styles/atelier-cave-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Cave Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Cave Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #655f6d;
9 | }
10 |
11 | /* Atelier-Cave Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-name,
21 | .hljs-selector-id,
22 | .hljs-selector-class {
23 | color: #be4678;
24 | }
25 |
26 | /* Atelier-Cave Orange */
27 | .hljs-number,
28 | .hljs-meta,
29 | .hljs-built_in,
30 | .hljs-builtin-name,
31 | .hljs-literal,
32 | .hljs-type,
33 | .hljs-params {
34 | color: #aa573c;
35 | }
36 |
37 | /* Atelier-Cave Green */
38 | .hljs-string,
39 | .hljs-symbol,
40 | .hljs-bullet {
41 | color: #2a9292;
42 | }
43 |
44 | /* Atelier-Cave Blue */
45 | .hljs-title,
46 | .hljs-section {
47 | color: #576ddb;
48 | }
49 |
50 | /* Atelier-Cave Purple */
51 | .hljs-keyword,
52 | .hljs-selector-tag {
53 | color: #955ae7;
54 | }
55 |
56 | .hljs-deletion,
57 | .hljs-addition {
58 | color: #19171c;
59 | display: inline-block;
60 | width: 100%;
61 | }
62 |
63 | .hljs-deletion {
64 | background-color: #be4678;
65 | }
66 |
67 | .hljs-addition {
68 | background-color: #2a9292;
69 | }
70 |
71 | .hljs {
72 | display: block;
73 | overflow-x: auto;
74 | background: #efecf4;
75 | color: #585260;
76 | padding: 0.5em;
77 | }
78 |
79 | .hljs-emphasis {
80 | font-style: italic;
81 | }
82 |
83 | .hljs-strong {
84 | font-weight: bold;
85 | }
86 |
--------------------------------------------------------------------------------
/js/styles/atelier-dune-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Dune Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Dune Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #999580;
9 | }
10 |
11 | /* Atelier-Dune Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #d73737;
23 | }
24 |
25 | /* Atelier-Dune Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #b65611;
34 | }
35 |
36 | /* Atelier-Dune Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #60ac39;
41 | }
42 |
43 | /* Atelier-Dune Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #6684e1;
47 | }
48 |
49 | /* Atelier-Dune Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #b854d4;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #20201d;
59 | color: #a6a28c;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-dune-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Dune Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Dune Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #7d7a68;
9 | }
10 |
11 | /* Atelier-Dune Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #d73737;
23 | }
24 |
25 | /* Atelier-Dune Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #b65611;
34 | }
35 |
36 | /* Atelier-Dune Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #60ac39;
41 | }
42 |
43 | /* Atelier-Dune Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #6684e1;
47 | }
48 |
49 | /* Atelier-Dune Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #b854d4;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #fefbec;
59 | color: #6e6b5e;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-estuary-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Estuary Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Estuary Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #878573;
9 | }
10 |
11 | /* Atelier-Estuary Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #ba6236;
23 | }
24 |
25 | /* Atelier-Estuary Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #ae7313;
34 | }
35 |
36 | /* Atelier-Estuary Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #7d9726;
41 | }
42 |
43 | /* Atelier-Estuary Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #36a166;
47 | }
48 |
49 | /* Atelier-Estuary Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #5f9182;
53 | }
54 |
55 | .hljs-deletion,
56 | .hljs-addition {
57 | color: #22221b;
58 | display: inline-block;
59 | width: 100%;
60 | }
61 |
62 | .hljs-deletion {
63 | background-color: #ba6236;
64 | }
65 |
66 | .hljs-addition {
67 | background-color: #7d9726;
68 | }
69 |
70 | .hljs {
71 | display: block;
72 | overflow-x: auto;
73 | background: #22221b;
74 | color: #929181;
75 | padding: 0.5em;
76 | }
77 |
78 | .hljs-emphasis {
79 | font-style: italic;
80 | }
81 |
82 | .hljs-strong {
83 | font-weight: bold;
84 | }
85 |
--------------------------------------------------------------------------------
/js/styles/atelier-estuary-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Estuary Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Estuary Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #6c6b5a;
9 | }
10 |
11 | /* Atelier-Estuary Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #ba6236;
23 | }
24 |
25 | /* Atelier-Estuary Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #ae7313;
34 | }
35 |
36 | /* Atelier-Estuary Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #7d9726;
41 | }
42 |
43 | /* Atelier-Estuary Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #36a166;
47 | }
48 |
49 | /* Atelier-Estuary Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #5f9182;
53 | }
54 |
55 | .hljs-deletion,
56 | .hljs-addition {
57 | color: #22221b;
58 | display: inline-block;
59 | width: 100%;
60 | }
61 |
62 | .hljs-deletion {
63 | background-color: #ba6236;
64 | }
65 |
66 | .hljs-addition {
67 | background-color: #7d9726;
68 | }
69 |
70 | .hljs {
71 | display: block;
72 | overflow-x: auto;
73 | background: #f4f3ec;
74 | color: #5f5e4e;
75 | padding: 0.5em;
76 | }
77 |
78 | .hljs-emphasis {
79 | font-style: italic;
80 | }
81 |
82 | .hljs-strong {
83 | font-weight: bold;
84 | }
85 |
--------------------------------------------------------------------------------
/js/styles/atelier-forest-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Forest Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Forest Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #9c9491;
9 | }
10 |
11 | /* Atelier-Forest Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #f22c40;
23 | }
24 |
25 | /* Atelier-Forest Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #df5320;
34 | }
35 |
36 | /* Atelier-Forest Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #7b9726;
41 | }
42 |
43 | /* Atelier-Forest Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #407ee7;
47 | }
48 |
49 | /* Atelier-Forest Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #6666ea;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #1b1918;
59 | color: #a8a19f;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-forest-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Forest Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Forest Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #766e6b;
9 | }
10 |
11 | /* Atelier-Forest Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #f22c40;
23 | }
24 |
25 | /* Atelier-Forest Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #df5320;
34 | }
35 |
36 | /* Atelier-Forest Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #7b9726;
41 | }
42 |
43 | /* Atelier-Forest Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #407ee7;
47 | }
48 |
49 | /* Atelier-Forest Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #6666ea;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #f1efee;
59 | color: #68615e;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-heath-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Heath Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Heath Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #9e8f9e;
9 | }
10 |
11 | /* Atelier-Heath Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #ca402b;
23 | }
24 |
25 | /* Atelier-Heath Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #a65926;
34 | }
35 |
36 | /* Atelier-Heath Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #918b3b;
41 | }
42 |
43 | /* Atelier-Heath Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #516aec;
47 | }
48 |
49 | /* Atelier-Heath Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #7b59c0;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #1b181b;
59 | color: #ab9bab;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-heath-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Heath Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Heath Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #776977;
9 | }
10 |
11 | /* Atelier-Heath Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #ca402b;
23 | }
24 |
25 | /* Atelier-Heath Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #a65926;
34 | }
35 |
36 | /* Atelier-Heath Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #918b3b;
41 | }
42 |
43 | /* Atelier-Heath Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #516aec;
47 | }
48 |
49 | /* Atelier-Heath Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #7b59c0;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #f7f3f7;
59 | color: #695d69;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-lakeside-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Lakeside Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Lakeside Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #7195a8;
9 | }
10 |
11 | /* Atelier-Lakeside Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #d22d72;
23 | }
24 |
25 | /* Atelier-Lakeside Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #935c25;
34 | }
35 |
36 | /* Atelier-Lakeside Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #568c3b;
41 | }
42 |
43 | /* Atelier-Lakeside Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #257fad;
47 | }
48 |
49 | /* Atelier-Lakeside Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #6b6bb8;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #161b1d;
59 | color: #7ea2b4;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-lakeside-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Lakeside Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Lakeside Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #5a7b8c;
9 | }
10 |
11 | /* Atelier-Lakeside Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #d22d72;
23 | }
24 |
25 | /* Atelier-Lakeside Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #935c25;
34 | }
35 |
36 | /* Atelier-Lakeside Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #568c3b;
41 | }
42 |
43 | /* Atelier-Lakeside Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #257fad;
47 | }
48 |
49 | /* Atelier-Lakeside Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #6b6bb8;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #ebf8ff;
59 | color: #516d7b;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-plateau-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Plateau Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Plateau Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #7e7777;
9 | }
10 |
11 | /* Atelier-Plateau Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #ca4949;
23 | }
24 |
25 | /* Atelier-Plateau Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #b45a3c;
34 | }
35 |
36 | /* Atelier-Plateau Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #4b8b8b;
41 | }
42 |
43 | /* Atelier-Plateau Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #7272ca;
47 | }
48 |
49 | /* Atelier-Plateau Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #8464c4;
53 | }
54 |
55 | .hljs-deletion,
56 | .hljs-addition {
57 | color: #1b1818;
58 | display: inline-block;
59 | width: 100%;
60 | }
61 |
62 | .hljs-deletion {
63 | background-color: #ca4949;
64 | }
65 |
66 | .hljs-addition {
67 | background-color: #4b8b8b;
68 | }
69 |
70 | .hljs {
71 | display: block;
72 | overflow-x: auto;
73 | background: #1b1818;
74 | color: #8a8585;
75 | padding: 0.5em;
76 | }
77 |
78 | .hljs-emphasis {
79 | font-style: italic;
80 | }
81 |
82 | .hljs-strong {
83 | font-weight: bold;
84 | }
85 |
--------------------------------------------------------------------------------
/js/styles/atelier-plateau-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Plateau Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Plateau Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #655d5d;
9 | }
10 |
11 | /* Atelier-Plateau Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #ca4949;
23 | }
24 |
25 | /* Atelier-Plateau Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #b45a3c;
34 | }
35 |
36 | /* Atelier-Plateau Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #4b8b8b;
41 | }
42 |
43 | /* Atelier-Plateau Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #7272ca;
47 | }
48 |
49 | /* Atelier-Plateau Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #8464c4;
53 | }
54 |
55 | .hljs-deletion,
56 | .hljs-addition {
57 | color: #1b1818;
58 | display: inline-block;
59 | width: 100%;
60 | }
61 |
62 | .hljs-deletion {
63 | background-color: #ca4949;
64 | }
65 |
66 | .hljs-addition {
67 | background-color: #4b8b8b;
68 | }
69 |
70 | .hljs {
71 | display: block;
72 | overflow-x: auto;
73 | background: #f4ecec;
74 | color: #585050;
75 | padding: 0.5em;
76 | }
77 |
78 | .hljs-emphasis {
79 | font-style: italic;
80 | }
81 |
82 | .hljs-strong {
83 | font-weight: bold;
84 | }
85 |
--------------------------------------------------------------------------------
/js/styles/atelier-savanna-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Savanna Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Savanna Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #78877d;
9 | }
10 |
11 | /* Atelier-Savanna Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #b16139;
23 | }
24 |
25 | /* Atelier-Savanna Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #9f713c;
34 | }
35 |
36 | /* Atelier-Savanna Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #489963;
41 | }
42 |
43 | /* Atelier-Savanna Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #478c90;
47 | }
48 |
49 | /* Atelier-Savanna Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #55859b;
53 | }
54 |
55 | .hljs-deletion,
56 | .hljs-addition {
57 | color: #171c19;
58 | display: inline-block;
59 | width: 100%;
60 | }
61 |
62 | .hljs-deletion {
63 | background-color: #b16139;
64 | }
65 |
66 | .hljs-addition {
67 | background-color: #489963;
68 | }
69 |
70 | .hljs {
71 | display: block;
72 | overflow-x: auto;
73 | background: #171c19;
74 | color: #87928a;
75 | padding: 0.5em;
76 | }
77 |
78 | .hljs-emphasis {
79 | font-style: italic;
80 | }
81 |
82 | .hljs-strong {
83 | font-weight: bold;
84 | }
85 |
--------------------------------------------------------------------------------
/js/styles/atelier-savanna-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Savanna Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Savanna Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #5f6d64;
9 | }
10 |
11 | /* Atelier-Savanna Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #b16139;
23 | }
24 |
25 | /* Atelier-Savanna Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #9f713c;
34 | }
35 |
36 | /* Atelier-Savanna Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #489963;
41 | }
42 |
43 | /* Atelier-Savanna Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #478c90;
47 | }
48 |
49 | /* Atelier-Savanna Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #55859b;
53 | }
54 |
55 | .hljs-deletion,
56 | .hljs-addition {
57 | color: #171c19;
58 | display: inline-block;
59 | width: 100%;
60 | }
61 |
62 | .hljs-deletion {
63 | background-color: #b16139;
64 | }
65 |
66 | .hljs-addition {
67 | background-color: #489963;
68 | }
69 |
70 | .hljs {
71 | display: block;
72 | overflow-x: auto;
73 | background: #ecf4ee;
74 | color: #526057;
75 | padding: 0.5em;
76 | }
77 |
78 | .hljs-emphasis {
79 | font-style: italic;
80 | }
81 |
82 | .hljs-strong {
83 | font-weight: bold;
84 | }
85 |
--------------------------------------------------------------------------------
/js/styles/atelier-seaside-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Seaside Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Seaside Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #809980;
9 | }
10 |
11 | /* Atelier-Seaside Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #e6193c;
23 | }
24 |
25 | /* Atelier-Seaside Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #87711d;
34 | }
35 |
36 | /* Atelier-Seaside Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #29a329;
41 | }
42 |
43 | /* Atelier-Seaside Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #3d62f5;
47 | }
48 |
49 | /* Atelier-Seaside Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #ad2bee;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #131513;
59 | color: #8ca68c;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-seaside-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Seaside Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Seaside Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #687d68;
9 | }
10 |
11 | /* Atelier-Seaside Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #e6193c;
23 | }
24 |
25 | /* Atelier-Seaside Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #87711d;
34 | }
35 |
36 | /* Atelier-Seaside Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #29a329;
41 | }
42 |
43 | /* Atelier-Seaside Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #3d62f5;
47 | }
48 |
49 | /* Atelier-Seaside Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #ad2bee;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #f4fbf4;
59 | color: #5e6e5e;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-sulphurpool-dark.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Sulphurpool Dark - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Sulphurpool Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #898ea4;
9 | }
10 |
11 | /* Atelier-Sulphurpool Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #c94922;
23 | }
24 |
25 | /* Atelier-Sulphurpool Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #c76b29;
34 | }
35 |
36 | /* Atelier-Sulphurpool Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #ac9739;
41 | }
42 |
43 | /* Atelier-Sulphurpool Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #3d8fd1;
47 | }
48 |
49 | /* Atelier-Sulphurpool Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #6679cc;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #202746;
59 | color: #979db4;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atelier-sulphurpool-light.css:
--------------------------------------------------------------------------------
1 | /* Base16 Atelier Sulphurpool Light - Theme */
2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */
3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */
4 |
5 | /* Atelier-Sulphurpool Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #6b7394;
9 | }
10 |
11 | /* Atelier-Sulphurpool Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-attribute,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-regexp,
18 | .hljs-link,
19 | .hljs-name,
20 | .hljs-selector-id,
21 | .hljs-selector-class {
22 | color: #c94922;
23 | }
24 |
25 | /* Atelier-Sulphurpool Orange */
26 | .hljs-number,
27 | .hljs-meta,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params {
33 | color: #c76b29;
34 | }
35 |
36 | /* Atelier-Sulphurpool Green */
37 | .hljs-string,
38 | .hljs-symbol,
39 | .hljs-bullet {
40 | color: #ac9739;
41 | }
42 |
43 | /* Atelier-Sulphurpool Blue */
44 | .hljs-title,
45 | .hljs-section {
46 | color: #3d8fd1;
47 | }
48 |
49 | /* Atelier-Sulphurpool Purple */
50 | .hljs-keyword,
51 | .hljs-selector-tag {
52 | color: #6679cc;
53 | }
54 |
55 | .hljs {
56 | display: block;
57 | overflow-x: auto;
58 | background: #f5f7ff;
59 | color: #5e6687;
60 | padding: 0.5em;
61 | }
62 |
63 | .hljs-emphasis {
64 | font-style: italic;
65 | }
66 |
67 | .hljs-strong {
68 | font-weight: bold;
69 | }
70 |
--------------------------------------------------------------------------------
/js/styles/atom-one-dark-reasonable.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Atom One Dark With support for ReasonML by Gidi Morris, based off work by Daniel Gamage
4 |
5 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
6 |
7 | */
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | line-height: 1.3em;
13 | color: #abb2bf;
14 | background: #282c34;
15 | border-radius: 5px;
16 | }
17 | .hljs-keyword, .hljs-operator {
18 | color: #F92672;
19 | }
20 | .hljs-pattern-match {
21 | color: #F92672;
22 | }
23 | .hljs-pattern-match .hljs-constructor {
24 | color: #61aeee;
25 | }
26 | .hljs-function {
27 | color: #61aeee;
28 | }
29 | .hljs-function .hljs-params {
30 | color: #A6E22E;
31 | }
32 | .hljs-function .hljs-params .hljs-typing {
33 | color: #FD971F;
34 | }
35 | .hljs-module-access .hljs-module {
36 | color: #7e57c2;
37 | }
38 | .hljs-constructor {
39 | color: #e2b93d;
40 | }
41 | .hljs-constructor .hljs-string {
42 | color: #9CCC65;
43 | }
44 | .hljs-comment, .hljs-quote {
45 | color: #b18eb1;
46 | font-style: italic;
47 | }
48 | .hljs-doctag, .hljs-formula {
49 | color: #c678dd;
50 | }
51 | .hljs-section, .hljs-name, .hljs-selector-tag, .hljs-deletion, .hljs-subst {
52 | color: #e06c75;
53 | }
54 | .hljs-literal {
55 | color: #56b6c2;
56 | }
57 | .hljs-string, .hljs-regexp, .hljs-addition, .hljs-attribute, .hljs-meta-string {
58 | color: #98c379;
59 | }
60 | .hljs-built_in, .hljs-class .hljs-title {
61 | color: #e6c07b;
62 | }
63 | .hljs-attr, .hljs-variable, .hljs-template-variable, .hljs-type, .hljs-selector-class, .hljs-selector-attr, .hljs-selector-pseudo, .hljs-number {
64 | color: #d19a66;
65 | }
66 | .hljs-symbol, .hljs-bullet, .hljs-link, .hljs-meta, .hljs-selector-id, .hljs-title {
67 | color: #61aeee;
68 | }
69 | .hljs-emphasis {
70 | font-style: italic;
71 | }
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 | .hljs-link {
76 | text-decoration: underline;
77 | }
78 |
--------------------------------------------------------------------------------
/js/styles/atom-one-dark.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Atom One Dark by Daniel Gamage
4 | Original One Dark Syntax theme from https://github.com/atom/one-dark-syntax
5 |
6 | base: #282c34
7 | mono-1: #abb2bf
8 | mono-2: #818896
9 | mono-3: #5c6370
10 | hue-1: #56b6c2
11 | hue-2: #61aeee
12 | hue-3: #c678dd
13 | hue-4: #98c379
14 | hue-5: #e06c75
15 | hue-5-2: #be5046
16 | hue-6: #d19a66
17 | hue-6-2: #e6c07b
18 |
19 | */
20 |
21 | .hljs {
22 | display: block;
23 | overflow-x: auto;
24 | padding: 0.5em;
25 | color: #abb2bf;
26 | background: #282c34;
27 | }
28 |
29 | .hljs-comment,
30 | .hljs-quote {
31 | color: #5c6370;
32 | font-style: italic;
33 | }
34 |
35 | .hljs-doctag,
36 | .hljs-keyword,
37 | .hljs-formula {
38 | color: #c678dd;
39 | }
40 |
41 | .hljs-section,
42 | .hljs-name,
43 | .hljs-selector-tag,
44 | .hljs-deletion,
45 | .hljs-subst {
46 | color: #e06c75;
47 | }
48 |
49 | .hljs-literal {
50 | color: #56b6c2;
51 | }
52 |
53 | .hljs-string,
54 | .hljs-regexp,
55 | .hljs-addition,
56 | .hljs-attribute,
57 | .hljs-meta-string {
58 | color: #98c379;
59 | }
60 |
61 | .hljs-built_in,
62 | .hljs-class .hljs-title {
63 | color: #e6c07b;
64 | }
65 |
66 | .hljs-attr,
67 | .hljs-variable,
68 | .hljs-template-variable,
69 | .hljs-type,
70 | .hljs-selector-class,
71 | .hljs-selector-attr,
72 | .hljs-selector-pseudo,
73 | .hljs-number {
74 | color: #d19a66;
75 | }
76 |
77 | .hljs-symbol,
78 | .hljs-bullet,
79 | .hljs-link,
80 | .hljs-meta,
81 | .hljs-selector-id,
82 | .hljs-title {
83 | color: #61aeee;
84 | }
85 |
86 | .hljs-emphasis {
87 | font-style: italic;
88 | }
89 |
90 | .hljs-strong {
91 | font-weight: bold;
92 | }
93 |
94 | .hljs-link {
95 | text-decoration: underline;
96 | }
97 |
--------------------------------------------------------------------------------
/js/styles/atom-one-light.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Atom One Light by Daniel Gamage
4 | Original One Light Syntax theme from https://github.com/atom/one-light-syntax
5 |
6 | base: #fafafa
7 | mono-1: #383a42
8 | mono-2: #686b77
9 | mono-3: #a0a1a7
10 | hue-1: #0184bb
11 | hue-2: #4078f2
12 | hue-3: #a626a4
13 | hue-4: #50a14f
14 | hue-5: #e45649
15 | hue-5-2: #c91243
16 | hue-6: #986801
17 | hue-6-2: #c18401
18 |
19 | */
20 |
21 | .hljs {
22 | display: block;
23 | overflow-x: auto;
24 | padding: 0.5em;
25 | color: #383a42;
26 | background: #fafafa;
27 | }
28 |
29 | .hljs-comment,
30 | .hljs-quote {
31 | color: #a0a1a7;
32 | font-style: italic;
33 | }
34 |
35 | .hljs-doctag,
36 | .hljs-keyword,
37 | .hljs-formula {
38 | color: #a626a4;
39 | }
40 |
41 | .hljs-section,
42 | .hljs-name,
43 | .hljs-selector-tag,
44 | .hljs-deletion,
45 | .hljs-subst {
46 | color: #e45649;
47 | }
48 |
49 | .hljs-literal {
50 | color: #0184bb;
51 | }
52 |
53 | .hljs-string,
54 | .hljs-regexp,
55 | .hljs-addition,
56 | .hljs-attribute,
57 | .hljs-meta-string {
58 | color: #50a14f;
59 | }
60 |
61 | .hljs-built_in,
62 | .hljs-class .hljs-title {
63 | color: #c18401;
64 | }
65 |
66 | .hljs-attr,
67 | .hljs-variable,
68 | .hljs-template-variable,
69 | .hljs-type,
70 | .hljs-selector-class,
71 | .hljs-selector-attr,
72 | .hljs-selector-pseudo,
73 | .hljs-number {
74 | color: #986801;
75 | }
76 |
77 | .hljs-symbol,
78 | .hljs-bullet,
79 | .hljs-link,
80 | .hljs-meta,
81 | .hljs-selector-id,
82 | .hljs-title {
83 | color: #4078f2;
84 | }
85 |
86 | .hljs-emphasis {
87 | font-style: italic;
88 | }
89 |
90 | .hljs-strong {
91 | font-weight: bold;
92 | }
93 |
94 | .hljs-link {
95 | text-decoration: underline;
96 | }
97 |
--------------------------------------------------------------------------------
/js/styles/brown-paper.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Brown Paper style from goldblog.com.ua (c) Zaripov Yura
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background:#b7a68e url(./brown-papersq.png);
12 | }
13 |
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal {
17 | color:#005599;
18 | font-weight:bold;
19 | }
20 |
21 | .hljs,
22 | .hljs-subst {
23 | color: #363c69;
24 | }
25 |
26 | .hljs-string,
27 | .hljs-title,
28 | .hljs-section,
29 | .hljs-type,
30 | .hljs-attribute,
31 | .hljs-symbol,
32 | .hljs-bullet,
33 | .hljs-built_in,
34 | .hljs-addition,
35 | .hljs-variable,
36 | .hljs-template-tag,
37 | .hljs-template-variable,
38 | .hljs-link,
39 | .hljs-name {
40 | color: #2c009f;
41 | }
42 |
43 | .hljs-comment,
44 | .hljs-quote,
45 | .hljs-meta,
46 | .hljs-deletion {
47 | color: #802022;
48 | }
49 |
50 | .hljs-keyword,
51 | .hljs-selector-tag,
52 | .hljs-literal,
53 | .hljs-doctag,
54 | .hljs-title,
55 | .hljs-section,
56 | .hljs-type,
57 | .hljs-name,
58 | .hljs-strong {
59 | font-weight: bold;
60 | }
61 |
62 | .hljs-emphasis {
63 | font-style: italic;
64 | }
65 |
--------------------------------------------------------------------------------
/js/styles/brown-papersq.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/js/styles/brown-papersq.png
--------------------------------------------------------------------------------
/js/styles/codepen-embed.css:
--------------------------------------------------------------------------------
1 | /*
2 | codepen.io Embed Theme
3 | Author: Justin Perry
4 | Original theme - https://github.com/chriskempson/tomorrow-theme
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #222;
12 | color: #fff;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #777;
18 | }
19 |
20 | .hljs-variable,
21 | .hljs-template-variable,
22 | .hljs-tag,
23 | .hljs-regexp,
24 | .hljs-meta,
25 | .hljs-number,
26 | .hljs-built_in,
27 | .hljs-builtin-name,
28 | .hljs-literal,
29 | .hljs-params,
30 | .hljs-symbol,
31 | .hljs-bullet,
32 | .hljs-link,
33 | .hljs-deletion {
34 | color: #ab875d;
35 | }
36 |
37 | .hljs-section,
38 | .hljs-title,
39 | .hljs-name,
40 | .hljs-selector-id,
41 | .hljs-selector-class,
42 | .hljs-type,
43 | .hljs-attribute {
44 | color: #9b869b;
45 | }
46 |
47 | .hljs-string,
48 | .hljs-keyword,
49 | .hljs-selector-tag,
50 | .hljs-addition {
51 | color: #8f9c6c;
52 | }
53 |
54 | .hljs-emphasis {
55 | font-style: italic;
56 | }
57 |
58 | .hljs-strong {
59 | font-weight: bold;
60 | }
61 |
--------------------------------------------------------------------------------
/js/styles/color-brewer.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Colorbrewer theme
4 | Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock
5 | Ported by Fabrício Tavares de Oliveira
6 |
7 | */
8 |
9 | .hljs {
10 | display: block;
11 | overflow-x: auto;
12 | padding: 0.5em;
13 | background: #fff;
14 | }
15 |
16 | .hljs,
17 | .hljs-subst {
18 | color: #000;
19 | }
20 |
21 | .hljs-string,
22 | .hljs-meta,
23 | .hljs-symbol,
24 | .hljs-template-tag,
25 | .hljs-template-variable,
26 | .hljs-addition {
27 | color: #756bb1;
28 | }
29 |
30 | .hljs-comment,
31 | .hljs-quote {
32 | color: #636363;
33 | }
34 |
35 | .hljs-number,
36 | .hljs-regexp,
37 | .hljs-literal,
38 | .hljs-bullet,
39 | .hljs-link {
40 | color: #31a354;
41 | }
42 |
43 | .hljs-deletion,
44 | .hljs-variable {
45 | color: #88f;
46 | }
47 |
48 |
49 |
50 | .hljs-keyword,
51 | .hljs-selector-tag,
52 | .hljs-title,
53 | .hljs-section,
54 | .hljs-built_in,
55 | .hljs-doctag,
56 | .hljs-type,
57 | .hljs-tag,
58 | .hljs-name,
59 | .hljs-selector-id,
60 | .hljs-selector-class,
61 | .hljs-strong {
62 | color: #3182bd;
63 | }
64 |
65 | .hljs-emphasis {
66 | font-style: italic;
67 | }
68 |
69 | .hljs-attribute {
70 | color: #e6550d;
71 | }
72 |
--------------------------------------------------------------------------------
/js/styles/darcula.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Darcula color scheme from the JetBrains family of IDEs
4 |
5 | */
6 |
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #2b2b2b;
13 | }
14 |
15 | .hljs {
16 | color: #bababa;
17 | }
18 |
19 | .hljs-strong,
20 | .hljs-emphasis {
21 | color: #a8a8a2;
22 | }
23 |
24 | .hljs-bullet,
25 | .hljs-quote,
26 | .hljs-link,
27 | .hljs-number,
28 | .hljs-regexp,
29 | .hljs-literal {
30 | color: #6896ba;
31 | }
32 |
33 | .hljs-code,
34 | .hljs-selector-class {
35 | color: #a6e22e;
36 | }
37 |
38 | .hljs-emphasis {
39 | font-style: italic;
40 | }
41 |
42 | .hljs-keyword,
43 | .hljs-selector-tag,
44 | .hljs-section,
45 | .hljs-attribute,
46 | .hljs-name,
47 | .hljs-variable {
48 | color: #cb7832;
49 | }
50 |
51 | .hljs-params {
52 | color: #b9b9b9;
53 | }
54 |
55 | .hljs-string {
56 | color: #6a8759;
57 | }
58 |
59 | .hljs-subst,
60 | .hljs-type,
61 | .hljs-built_in,
62 | .hljs-builtin-name,
63 | .hljs-symbol,
64 | .hljs-selector-id,
65 | .hljs-selector-attr,
66 | .hljs-selector-pseudo,
67 | .hljs-template-tag,
68 | .hljs-template-variable,
69 | .hljs-addition {
70 | color: #e0c46c;
71 | }
72 |
73 | .hljs-comment,
74 | .hljs-deletion,
75 | .hljs-meta {
76 | color: #7f7f7f;
77 | }
78 |
--------------------------------------------------------------------------------
/js/styles/dark.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Dark style from softwaremaniacs.org (c) Ivan Sagalaev
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #444;
12 | }
13 |
14 | .hljs-keyword,
15 | .hljs-selector-tag,
16 | .hljs-literal,
17 | .hljs-section,
18 | .hljs-link {
19 | color: white;
20 | }
21 |
22 | .hljs,
23 | .hljs-subst {
24 | color: #ddd;
25 | }
26 |
27 | .hljs-string,
28 | .hljs-title,
29 | .hljs-name,
30 | .hljs-type,
31 | .hljs-attribute,
32 | .hljs-symbol,
33 | .hljs-bullet,
34 | .hljs-built_in,
35 | .hljs-addition,
36 | .hljs-variable,
37 | .hljs-template-tag,
38 | .hljs-template-variable {
39 | color: #d88;
40 | }
41 |
42 | .hljs-comment,
43 | .hljs-quote,
44 | .hljs-deletion,
45 | .hljs-meta {
46 | color: #777;
47 | }
48 |
49 | .hljs-keyword,
50 | .hljs-selector-tag,
51 | .hljs-literal,
52 | .hljs-title,
53 | .hljs-section,
54 | .hljs-doctag,
55 | .hljs-type,
56 | .hljs-name,
57 | .hljs-strong {
58 | font-weight: bold;
59 | }
60 |
61 | .hljs-emphasis {
62 | font-style: italic;
63 | }
64 |
--------------------------------------------------------------------------------
/js/styles/darkula.css:
--------------------------------------------------------------------------------
1 | /*
2 | Deprecated due to a typo in the name and left here for compatibility purpose only.
3 | Please use darcula.css instead.
4 | */
5 |
6 | @import url('darcula.css');
7 |
--------------------------------------------------------------------------------
/js/styles/default.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Original highlight.js style (c) Ivan Sagalaev
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #F0F0F0;
12 | }
13 |
14 |
15 | /* Base color: saturation 0; */
16 |
17 | .hljs,
18 | .hljs-subst {
19 | color: #444;
20 | }
21 |
22 | .hljs-comment {
23 | color: #888888;
24 | }
25 |
26 | .hljs-keyword,
27 | .hljs-attribute,
28 | .hljs-selector-tag,
29 | .hljs-meta-keyword,
30 | .hljs-doctag,
31 | .hljs-name {
32 | font-weight: bold;
33 | }
34 |
35 |
36 | /* User color: hue: 0 */
37 |
38 | .hljs-type,
39 | .hljs-string,
40 | .hljs-number,
41 | .hljs-selector-id,
42 | .hljs-selector-class,
43 | .hljs-quote,
44 | .hljs-template-tag,
45 | .hljs-deletion {
46 | color: #880000;
47 | }
48 |
49 | .hljs-title,
50 | .hljs-section {
51 | color: #880000;
52 | font-weight: bold;
53 | }
54 |
55 | .hljs-regexp,
56 | .hljs-symbol,
57 | .hljs-variable,
58 | .hljs-template-variable,
59 | .hljs-link,
60 | .hljs-selector-attr,
61 | .hljs-selector-pseudo {
62 | color: #BC6060;
63 | }
64 |
65 |
66 | /* Language color: hue: 90; */
67 |
68 | .hljs-literal {
69 | color: #78A960;
70 | }
71 |
72 | .hljs-built_in,
73 | .hljs-bullet,
74 | .hljs-code,
75 | .hljs-addition {
76 | color: #397300;
77 | }
78 |
79 |
80 | /* Meta color: hue: 200 */
81 |
82 | .hljs-meta {
83 | color: #1f7199;
84 | }
85 |
86 | .hljs-meta-string {
87 | color: #4d99bf;
88 | }
89 |
90 |
91 | /* Misc effects */
92 |
93 | .hljs-emphasis {
94 | font-style: italic;
95 | }
96 |
97 | .hljs-strong {
98 | font-weight: bold;
99 | }
100 |
--------------------------------------------------------------------------------
/js/styles/docco.css:
--------------------------------------------------------------------------------
1 | /*
2 | Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars)
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | color: #000;
10 | background: #f8f8ff;
11 | }
12 |
13 | .hljs-comment,
14 | .hljs-quote {
15 | color: #408080;
16 | font-style: italic;
17 | }
18 |
19 | .hljs-keyword,
20 | .hljs-selector-tag,
21 | .hljs-literal,
22 | .hljs-subst {
23 | color: #954121;
24 | }
25 |
26 | .hljs-number {
27 | color: #40a070;
28 | }
29 |
30 | .hljs-string,
31 | .hljs-doctag {
32 | color: #219161;
33 | }
34 |
35 | .hljs-selector-id,
36 | .hljs-selector-class,
37 | .hljs-section,
38 | .hljs-type {
39 | color: #19469d;
40 | }
41 |
42 | .hljs-params {
43 | color: #00f;
44 | }
45 |
46 | .hljs-title {
47 | color: #458;
48 | font-weight: bold;
49 | }
50 |
51 | .hljs-tag,
52 | .hljs-name,
53 | .hljs-attribute {
54 | color: #000080;
55 | font-weight: normal;
56 | }
57 |
58 | .hljs-variable,
59 | .hljs-template-variable {
60 | color: #008080;
61 | }
62 |
63 | .hljs-regexp,
64 | .hljs-link {
65 | color: #b68;
66 | }
67 |
68 | .hljs-symbol,
69 | .hljs-bullet {
70 | color: #990073;
71 | }
72 |
73 | .hljs-built_in,
74 | .hljs-builtin-name {
75 | color: #0086b3;
76 | }
77 |
78 | .hljs-meta {
79 | color: #999;
80 | font-weight: bold;
81 | }
82 |
83 | .hljs-deletion {
84 | background: #fdd;
85 | }
86 |
87 | .hljs-addition {
88 | background: #dfd;
89 | }
90 |
91 | .hljs-emphasis {
92 | font-style: italic;
93 | }
94 |
95 | .hljs-strong {
96 | font-weight: bold;
97 | }
98 |
--------------------------------------------------------------------------------
/js/styles/dracula.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Dracula Theme v1.2.0
4 |
5 | https://github.com/zenorocha/dracula-theme
6 |
7 | Copyright 2015, All rights reserved
8 |
9 | Code licensed under the MIT license
10 | http://zenorocha.mit-license.org
11 |
12 | @author Éverton Ribeiro
13 | @author Zeno Rocha
14 |
15 | */
16 |
17 | .hljs {
18 | display: block;
19 | overflow-x: auto;
20 | padding: 0.5em;
21 | background: #282a36;
22 | }
23 |
24 | .hljs-keyword,
25 | .hljs-selector-tag,
26 | .hljs-literal,
27 | .hljs-section,
28 | .hljs-link {
29 | color: #8be9fd;
30 | }
31 |
32 | .hljs-function .hljs-keyword {
33 | color: #ff79c6;
34 | }
35 |
36 | .hljs,
37 | .hljs-subst {
38 | color: #f8f8f2;
39 | }
40 |
41 | .hljs-string,
42 | .hljs-title,
43 | .hljs-name,
44 | .hljs-type,
45 | .hljs-attribute,
46 | .hljs-symbol,
47 | .hljs-bullet,
48 | .hljs-addition,
49 | .hljs-variable,
50 | .hljs-template-tag,
51 | .hljs-template-variable {
52 | color: #f1fa8c;
53 | }
54 |
55 | .hljs-comment,
56 | .hljs-quote,
57 | .hljs-deletion,
58 | .hljs-meta {
59 | color: #6272a4;
60 | }
61 |
62 | .hljs-keyword,
63 | .hljs-selector-tag,
64 | .hljs-literal,
65 | .hljs-title,
66 | .hljs-section,
67 | .hljs-doctag,
68 | .hljs-type,
69 | .hljs-name,
70 | .hljs-strong {
71 | font-weight: bold;
72 | }
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
--------------------------------------------------------------------------------
/js/styles/far.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | FAR Style (c) MajestiC
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #000080;
12 | }
13 |
14 | .hljs,
15 | .hljs-subst {
16 | color: #0ff;
17 | }
18 |
19 | .hljs-string,
20 | .hljs-attribute,
21 | .hljs-symbol,
22 | .hljs-bullet,
23 | .hljs-built_in,
24 | .hljs-builtin-name,
25 | .hljs-template-tag,
26 | .hljs-template-variable,
27 | .hljs-addition {
28 | color: #ff0;
29 | }
30 |
31 | .hljs-keyword,
32 | .hljs-selector-tag,
33 | .hljs-section,
34 | .hljs-type,
35 | .hljs-name,
36 | .hljs-selector-id,
37 | .hljs-selector-class,
38 | .hljs-variable {
39 | color: #fff;
40 | }
41 |
42 | .hljs-comment,
43 | .hljs-quote,
44 | .hljs-doctag,
45 | .hljs-deletion {
46 | color: #888;
47 | }
48 |
49 | .hljs-number,
50 | .hljs-regexp,
51 | .hljs-literal,
52 | .hljs-link {
53 | color: #0f0;
54 | }
55 |
56 | .hljs-meta {
57 | color: #008080;
58 | }
59 |
60 | .hljs-keyword,
61 | .hljs-selector-tag,
62 | .hljs-title,
63 | .hljs-section,
64 | .hljs-name,
65 | .hljs-strong {
66 | font-weight: bold;
67 | }
68 |
69 | .hljs-emphasis {
70 | font-style: italic;
71 | }
72 |
--------------------------------------------------------------------------------
/js/styles/foundation.css:
--------------------------------------------------------------------------------
1 | /*
2 | Description: Foundation 4 docs style for highlight.js
3 | Author: Dan Allen
4 | Website: http://foundation.zurb.com/docs/
5 | Version: 1.0
6 | Date: 2013-04-02
7 | */
8 |
9 | .hljs {
10 | display: block;
11 | overflow-x: auto;
12 | padding: 0.5em;
13 | background: #eee; color: black;
14 | }
15 |
16 | .hljs-link,
17 | .hljs-emphasis,
18 | .hljs-attribute,
19 | .hljs-addition {
20 | color: #070;
21 | }
22 |
23 | .hljs-emphasis {
24 | font-style: italic;
25 | }
26 |
27 | .hljs-strong,
28 | .hljs-string,
29 | .hljs-deletion {
30 | color: #d14;
31 | }
32 |
33 | .hljs-strong {
34 | font-weight: bold;
35 | }
36 |
37 | .hljs-quote,
38 | .hljs-comment {
39 | color: #998;
40 | font-style: italic;
41 | }
42 |
43 | .hljs-section,
44 | .hljs-title {
45 | color: #900;
46 | }
47 |
48 | .hljs-class .hljs-title,
49 | .hljs-type {
50 | color: #458;
51 | }
52 |
53 | .hljs-variable,
54 | .hljs-template-variable {
55 | color: #336699;
56 | }
57 |
58 | .hljs-bullet {
59 | color: #997700;
60 | }
61 |
62 | .hljs-meta {
63 | color: #3344bb;
64 | }
65 |
66 | .hljs-code,
67 | .hljs-number,
68 | .hljs-literal,
69 | .hljs-keyword,
70 | .hljs-selector-tag {
71 | color: #099;
72 | }
73 |
74 | .hljs-regexp {
75 | background-color: #fff0ff;
76 | color: #880088;
77 | }
78 |
79 | .hljs-symbol {
80 | color: #990073;
81 | }
82 |
83 | .hljs-tag,
84 | .hljs-name,
85 | .hljs-selector-id,
86 | .hljs-selector-class {
87 | color: #007700;
88 | }
89 |
--------------------------------------------------------------------------------
/js/styles/github-gist.css:
--------------------------------------------------------------------------------
1 | /**
2 | * GitHub Gist Theme
3 | * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro
4 | */
5 |
6 | .hljs {
7 | display: block;
8 | background: white;
9 | padding: 0.5em;
10 | color: #333333;
11 | overflow-x: auto;
12 | }
13 |
14 | .hljs-comment,
15 | .hljs-meta {
16 | color: #969896;
17 | }
18 |
19 | .hljs-string,
20 | .hljs-variable,
21 | .hljs-template-variable,
22 | .hljs-strong,
23 | .hljs-emphasis,
24 | .hljs-quote {
25 | color: #df5000;
26 | }
27 |
28 | .hljs-keyword,
29 | .hljs-selector-tag,
30 | .hljs-type {
31 | color: #a71d5d;
32 | }
33 |
34 | .hljs-literal,
35 | .hljs-symbol,
36 | .hljs-bullet,
37 | .hljs-attribute {
38 | color: #0086b3;
39 | }
40 |
41 | .hljs-section,
42 | .hljs-name {
43 | color: #63a35c;
44 | }
45 |
46 | .hljs-tag {
47 | color: #333333;
48 | }
49 |
50 | .hljs-title,
51 | .hljs-attr,
52 | .hljs-selector-id,
53 | .hljs-selector-class,
54 | .hljs-selector-attr,
55 | .hljs-selector-pseudo {
56 | color: #795da3;
57 | }
58 |
59 | .hljs-addition {
60 | color: #55a532;
61 | background-color: #eaffea;
62 | }
63 |
64 | .hljs-deletion {
65 | color: #bd2c00;
66 | background-color: #ffecec;
67 | }
68 |
69 | .hljs-link {
70 | text-decoration: underline;
71 | }
72 |
--------------------------------------------------------------------------------
/js/styles/github.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | github.com style (c) Vasily Polovnyov
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | color: #333;
12 | background: #f8f8f8;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #998;
18 | font-style: italic;
19 | }
20 |
21 | .hljs-keyword,
22 | .hljs-selector-tag,
23 | .hljs-subst {
24 | color: #333;
25 | font-weight: bold;
26 | }
27 |
28 | .hljs-number,
29 | .hljs-literal,
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-tag .hljs-attr {
33 | color: #008080;
34 | }
35 |
36 | .hljs-string,
37 | .hljs-doctag {
38 | color: #d14;
39 | }
40 |
41 | .hljs-title,
42 | .hljs-section,
43 | .hljs-selector-id {
44 | color: #900;
45 | font-weight: bold;
46 | }
47 |
48 | .hljs-subst {
49 | font-weight: normal;
50 | }
51 |
52 | .hljs-type,
53 | .hljs-class .hljs-title {
54 | color: #458;
55 | font-weight: bold;
56 | }
57 |
58 | .hljs-tag,
59 | .hljs-name,
60 | .hljs-attribute {
61 | color: #000080;
62 | font-weight: normal;
63 | }
64 |
65 | .hljs-regexp,
66 | .hljs-link {
67 | color: #009926;
68 | }
69 |
70 | .hljs-symbol,
71 | .hljs-bullet {
72 | color: #990073;
73 | }
74 |
75 | .hljs-built_in,
76 | .hljs-builtin-name {
77 | color: #0086b3;
78 | }
79 |
80 | .hljs-meta {
81 | color: #999;
82 | font-weight: bold;
83 | }
84 |
85 | .hljs-deletion {
86 | background: #fdd;
87 | }
88 |
89 | .hljs-addition {
90 | background: #dfd;
91 | }
92 |
93 | .hljs-emphasis {
94 | font-style: italic;
95 | }
96 |
97 | .hljs-strong {
98 | font-weight: bold;
99 | }
100 |
--------------------------------------------------------------------------------
/js/styles/gml.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | GML Theme - Meseta
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #222222;
12 | color: #C0C0C0;
13 | }
14 |
15 | .hljs-keywords {
16 | color: #FFB871;
17 | font-weight: bold;
18 | }
19 |
20 | .hljs-built_in {
21 | color: #FFB871;
22 | }
23 |
24 | .hljs-literal {
25 | color: #FF8080;
26 | }
27 |
28 | .hljs-symbol {
29 | color: #58E55A;
30 | }
31 |
32 | .hljs-comment {
33 | color: #5B995B;
34 | }
35 |
36 | .hljs-string {
37 | color: #FFFF00;
38 | }
39 |
40 | .hljs-number {
41 | color: #FF8080;
42 | }
43 |
44 | .hljs-attribute,
45 | .hljs-selector-tag,
46 | .hljs-doctag,
47 | .hljs-name,
48 | .hljs-bullet,
49 | .hljs-code,
50 | .hljs-addition,
51 | .hljs-regexp,
52 | .hljs-variable,
53 | .hljs-template-variable,
54 | .hljs-link,
55 | .hljs-selector-attr,
56 | .hljs-selector-pseudo,
57 | .hljs-type,
58 | .hljs-selector-id,
59 | .hljs-selector-class,
60 | .hljs-quote,
61 | .hljs-template-tag,
62 | .hljs-deletion,
63 | .hljs-title,
64 | .hljs-section,
65 | .hljs-function,
66 | .hljs-meta-keyword,
67 | .hljs-meta,
68 | .hljs-subst {
69 | color: #C0C0C0;
70 | }
71 |
72 | .hljs-emphasis {
73 | font-style: italic;
74 | }
75 |
76 | .hljs-strong {
77 | font-weight: bold;
78 | }
79 |
--------------------------------------------------------------------------------
/js/styles/googlecode.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Google Code style (c) Aahan Krish
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: white;
12 | color: black;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #800;
18 | }
19 |
20 | .hljs-keyword,
21 | .hljs-selector-tag,
22 | .hljs-section,
23 | .hljs-title,
24 | .hljs-name {
25 | color: #008;
26 | }
27 |
28 | .hljs-variable,
29 | .hljs-template-variable {
30 | color: #660;
31 | }
32 |
33 | .hljs-string,
34 | .hljs-selector-attr,
35 | .hljs-selector-pseudo,
36 | .hljs-regexp {
37 | color: #080;
38 | }
39 |
40 | .hljs-literal,
41 | .hljs-symbol,
42 | .hljs-bullet,
43 | .hljs-meta,
44 | .hljs-number,
45 | .hljs-link {
46 | color: #066;
47 | }
48 |
49 | .hljs-title,
50 | .hljs-doctag,
51 | .hljs-type,
52 | .hljs-attr,
53 | .hljs-built_in,
54 | .hljs-builtin-name,
55 | .hljs-params {
56 | color: #606;
57 | }
58 |
59 | .hljs-attribute,
60 | .hljs-subst {
61 | color: #000;
62 | }
63 |
64 | .hljs-formula {
65 | background-color: #eee;
66 | font-style: italic;
67 | }
68 |
69 | .hljs-selector-id,
70 | .hljs-selector-class {
71 | color: #9B703F
72 | }
73 |
74 | .hljs-addition {
75 | background-color: #baeeba;
76 | }
77 |
78 | .hljs-deletion {
79 | background-color: #ffc8bd;
80 | }
81 |
82 | .hljs-doctag,
83 | .hljs-strong {
84 | font-weight: bold;
85 | }
86 |
87 | .hljs-emphasis {
88 | font-style: italic;
89 | }
90 |
--------------------------------------------------------------------------------
/js/styles/grayscale.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | grayscale style (c) MY Sun
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | color: #333;
12 | background: #fff;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #777;
18 | font-style: italic;
19 | }
20 |
21 | .hljs-keyword,
22 | .hljs-selector-tag,
23 | .hljs-subst {
24 | color: #333;
25 | font-weight: bold;
26 | }
27 |
28 | .hljs-number,
29 | .hljs-literal {
30 | color: #777;
31 | }
32 |
33 | .hljs-string,
34 | .hljs-doctag,
35 | .hljs-formula {
36 | color: #333;
37 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat;
38 | }
39 |
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-selector-id {
43 | color: #000;
44 | font-weight: bold;
45 | }
46 |
47 | .hljs-subst {
48 | font-weight: normal;
49 | }
50 |
51 | .hljs-class .hljs-title,
52 | .hljs-type,
53 | .hljs-name {
54 | color: #333;
55 | font-weight: bold;
56 | }
57 |
58 | .hljs-tag {
59 | color: #333;
60 | }
61 |
62 | .hljs-regexp {
63 | color: #333;
64 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat;
65 | }
66 |
67 | .hljs-symbol,
68 | .hljs-bullet,
69 | .hljs-link {
70 | color: #000;
71 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat;
72 | }
73 |
74 | .hljs-built_in,
75 | .hljs-builtin-name {
76 | color: #000;
77 | text-decoration: underline;
78 | }
79 |
80 | .hljs-meta {
81 | color: #999;
82 | font-weight: bold;
83 | }
84 |
85 | .hljs-deletion {
86 | color: #fff;
87 | background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat;
88 | }
89 |
90 | .hljs-addition {
91 | color: #000;
92 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat;
93 | }
94 |
95 | .hljs-emphasis {
96 | font-style: italic;
97 | }
98 |
99 | .hljs-strong {
100 | font-weight: bold;
101 | }
102 |
--------------------------------------------------------------------------------
/js/styles/gruvbox-dark.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox)
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #282828;
12 | }
13 |
14 | .hljs,
15 | .hljs-subst {
16 | color: #ebdbb2;
17 | }
18 |
19 | /* Gruvbox Red */
20 | .hljs-deletion,
21 | .hljs-formula,
22 | .hljs-keyword,
23 | .hljs-link,
24 | .hljs-selector-tag {
25 | color: #fb4934;
26 | }
27 |
28 | /* Gruvbox Blue */
29 | .hljs-built_in,
30 | .hljs-emphasis,
31 | .hljs-name,
32 | .hljs-quote,
33 | .hljs-strong,
34 | .hljs-title,
35 | .hljs-variable {
36 | color: #83a598;
37 | }
38 |
39 | /* Gruvbox Yellow */
40 | .hljs-attr,
41 | .hljs-params,
42 | .hljs-template-tag,
43 | .hljs-type {
44 | color: #fabd2f;
45 | }
46 |
47 | /* Gruvbox Purple */
48 | .hljs-builtin-name,
49 | .hljs-doctag,
50 | .hljs-literal,
51 | .hljs-number {
52 | color: #8f3f71;
53 | }
54 |
55 | /* Gruvbox Orange */
56 | .hljs-code,
57 | .hljs-meta,
58 | .hljs-regexp,
59 | .hljs-selector-id,
60 | .hljs-template-variable {
61 | color: #fe8019;
62 | }
63 |
64 | /* Gruvbox Green */
65 | .hljs-addition,
66 | .hljs-meta-string,
67 | .hljs-section,
68 | .hljs-selector-attr,
69 | .hljs-selector-class,
70 | .hljs-string,
71 | .hljs-symbol {
72 | color: #b8bb26;
73 | }
74 |
75 | /* Gruvbox Aqua */
76 | .hljs-attribute,
77 | .hljs-bullet,
78 | .hljs-class,
79 | .hljs-function,
80 | .hljs-function .hljs-keyword,
81 | .hljs-meta-keyword,
82 | .hljs-selector-pseudo,
83 | .hljs-tag {
84 | color: #8ec07c;
85 | }
86 |
87 | /* Gruvbox Gray */
88 | .hljs-comment {
89 | color: #928374;
90 | }
91 |
92 | /* Gruvbox Purple */
93 | .hljs-link_label,
94 | .hljs-literal,
95 | .hljs-number {
96 | color: #d3869b;
97 | }
98 |
99 | .hljs-comment,
100 | .hljs-emphasis {
101 | font-style: italic;
102 | }
103 |
104 | .hljs-section,
105 | .hljs-strong,
106 | .hljs-tag {
107 | font-weight: bold;
108 | }
109 |
--------------------------------------------------------------------------------
/js/styles/gruvbox-light.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox)
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #fbf1c7;
12 | }
13 |
14 | .hljs,
15 | .hljs-subst {
16 | color: #3c3836;
17 | }
18 |
19 | /* Gruvbox Red */
20 | .hljs-deletion,
21 | .hljs-formula,
22 | .hljs-keyword,
23 | .hljs-link,
24 | .hljs-selector-tag {
25 | color: #9d0006;
26 | }
27 |
28 | /* Gruvbox Blue */
29 | .hljs-built_in,
30 | .hljs-emphasis,
31 | .hljs-name,
32 | .hljs-quote,
33 | .hljs-strong,
34 | .hljs-title,
35 | .hljs-variable {
36 | color: #076678;
37 | }
38 |
39 | /* Gruvbox Yellow */
40 | .hljs-attr,
41 | .hljs-params,
42 | .hljs-template-tag,
43 | .hljs-type {
44 | color: #b57614;
45 | }
46 |
47 | /* Gruvbox Purple */
48 | .hljs-builtin-name,
49 | .hljs-doctag,
50 | .hljs-literal,
51 | .hljs-number {
52 | color: #8f3f71;
53 | }
54 |
55 | /* Gruvbox Orange */
56 | .hljs-code,
57 | .hljs-meta,
58 | .hljs-regexp,
59 | .hljs-selector-id,
60 | .hljs-template-variable {
61 | color: #af3a03;
62 | }
63 |
64 | /* Gruvbox Green */
65 | .hljs-addition,
66 | .hljs-meta-string,
67 | .hljs-section,
68 | .hljs-selector-attr,
69 | .hljs-selector-class,
70 | .hljs-string,
71 | .hljs-symbol {
72 | color: #79740e;
73 | }
74 |
75 | /* Gruvbox Aqua */
76 | .hljs-attribute,
77 | .hljs-bullet,
78 | .hljs-class,
79 | .hljs-function,
80 | .hljs-function .hljs-keyword,
81 | .hljs-meta-keyword,
82 | .hljs-selector-pseudo,
83 | .hljs-tag {
84 | color: #427b58;
85 | }
86 |
87 | /* Gruvbox Gray */
88 | .hljs-comment {
89 | color: #928374;
90 | }
91 |
92 | /* Gruvbox Purple */
93 | .hljs-link_label,
94 | .hljs-literal,
95 | .hljs-number {
96 | color: #8f3f71;
97 | }
98 |
99 | .hljs-comment,
100 | .hljs-emphasis {
101 | font-style: italic;
102 | }
103 |
104 | .hljs-section,
105 | .hljs-strong,
106 | .hljs-tag {
107 | font-weight: bold;
108 | }
109 |
--------------------------------------------------------------------------------
/js/styles/hopscotch.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Hopscotch
3 | * by Jan T. Sott
4 | * https://github.com/idleberg/Hopscotch
5 | *
6 | * This work is licensed under the Creative Commons CC0 1.0 Universal License
7 | */
8 |
9 | /* Comment */
10 | .hljs-comment,
11 | .hljs-quote {
12 | color: #989498;
13 | }
14 |
15 | /* Red */
16 | .hljs-variable,
17 | .hljs-template-variable,
18 | .hljs-attribute,
19 | .hljs-tag,
20 | .hljs-name,
21 | .hljs-selector-id,
22 | .hljs-selector-class,
23 | .hljs-regexp,
24 | .hljs-link,
25 | .hljs-deletion {
26 | color: #dd464c;
27 | }
28 |
29 | /* Orange */
30 | .hljs-number,
31 | .hljs-built_in,
32 | .hljs-builtin-name,
33 | .hljs-literal,
34 | .hljs-type,
35 | .hljs-params {
36 | color: #fd8b19;
37 | }
38 |
39 | /* Yellow */
40 | .hljs-class .hljs-title {
41 | color: #fdcc59;
42 | }
43 |
44 | /* Green */
45 | .hljs-string,
46 | .hljs-symbol,
47 | .hljs-bullet,
48 | .hljs-addition {
49 | color: #8fc13e;
50 | }
51 |
52 | /* Aqua */
53 | .hljs-meta {
54 | color: #149b93;
55 | }
56 |
57 | /* Blue */
58 | .hljs-function,
59 | .hljs-section,
60 | .hljs-title {
61 | color: #1290bf;
62 | }
63 |
64 | /* Purple */
65 | .hljs-keyword,
66 | .hljs-selector-tag {
67 | color: #c85e7c;
68 | }
69 |
70 | .hljs {
71 | display: block;
72 | background: #322931;
73 | color: #b9b5b8;
74 | padding: 0.5em;
75 | }
76 |
77 | .hljs-emphasis {
78 | font-style: italic;
79 | }
80 |
81 | .hljs-strong {
82 | font-weight: bold;
83 | }
84 |
--------------------------------------------------------------------------------
/js/styles/hybrid.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid)
4 |
5 | */
6 |
7 | /*background color*/
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #1d1f21;
13 | }
14 |
15 | /*selection color*/
16 | .hljs::selection,
17 | .hljs span::selection {
18 | background: #373b41;
19 | }
20 |
21 | .hljs::-moz-selection,
22 | .hljs span::-moz-selection {
23 | background: #373b41;
24 | }
25 |
26 | /*foreground color*/
27 | .hljs {
28 | color: #c5c8c6;
29 | }
30 |
31 | /*color: fg_yellow*/
32 | .hljs-title,
33 | .hljs-name {
34 | color: #f0c674;
35 | }
36 |
37 | /*color: fg_comment*/
38 | .hljs-comment,
39 | .hljs-meta,
40 | .hljs-meta .hljs-keyword {
41 | color: #707880;
42 | }
43 |
44 | /*color: fg_red*/
45 | .hljs-number,
46 | .hljs-symbol,
47 | .hljs-literal,
48 | .hljs-deletion,
49 | .hljs-link {
50 | color: #cc6666
51 | }
52 |
53 | /*color: fg_green*/
54 | .hljs-string,
55 | .hljs-doctag,
56 | .hljs-addition,
57 | .hljs-regexp,
58 | .hljs-selector-attr,
59 | .hljs-selector-pseudo {
60 | color: #b5bd68;
61 | }
62 |
63 | /*color: fg_purple*/
64 | .hljs-attribute,
65 | .hljs-code,
66 | .hljs-selector-id {
67 | color: #b294bb;
68 | }
69 |
70 | /*color: fg_blue*/
71 | .hljs-keyword,
72 | .hljs-selector-tag,
73 | .hljs-bullet,
74 | .hljs-tag {
75 | color: #81a2be;
76 | }
77 |
78 | /*color: fg_aqua*/
79 | .hljs-subst,
80 | .hljs-variable,
81 | .hljs-template-tag,
82 | .hljs-template-variable {
83 | color: #8abeb7;
84 | }
85 |
86 | /*color: fg_orange*/
87 | .hljs-type,
88 | .hljs-built_in,
89 | .hljs-builtin-name,
90 | .hljs-quote,
91 | .hljs-section,
92 | .hljs-selector-class {
93 | color: #de935f;
94 | }
95 |
96 | .hljs-emphasis {
97 | font-style: italic;
98 | }
99 |
100 | .hljs-strong {
101 | font-weight: bold;
102 | }
103 |
--------------------------------------------------------------------------------
/js/styles/idea.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Intellij Idea-like styling (c) Vasily Polovnyov
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | color: #000;
12 | background: #fff;
13 | }
14 |
15 | .hljs-subst,
16 | .hljs-title {
17 | font-weight: normal;
18 | color: #000;
19 | }
20 |
21 | .hljs-comment,
22 | .hljs-quote {
23 | color: #808080;
24 | font-style: italic;
25 | }
26 |
27 | .hljs-meta {
28 | color: #808000;
29 | }
30 |
31 | .hljs-tag {
32 | background: #efefef;
33 | }
34 |
35 | .hljs-section,
36 | .hljs-name,
37 | .hljs-literal,
38 | .hljs-keyword,
39 | .hljs-selector-tag,
40 | .hljs-type,
41 | .hljs-selector-id,
42 | .hljs-selector-class {
43 | font-weight: bold;
44 | color: #000080;
45 | }
46 |
47 | .hljs-attribute,
48 | .hljs-number,
49 | .hljs-regexp,
50 | .hljs-link {
51 | font-weight: bold;
52 | color: #0000ff;
53 | }
54 |
55 | .hljs-number,
56 | .hljs-regexp,
57 | .hljs-link {
58 | font-weight: normal;
59 | }
60 |
61 | .hljs-string {
62 | color: #008000;
63 | font-weight: bold;
64 | }
65 |
66 | .hljs-symbol,
67 | .hljs-bullet,
68 | .hljs-formula {
69 | color: #000;
70 | background: #d0eded;
71 | font-style: italic;
72 | }
73 |
74 | .hljs-doctag {
75 | text-decoration: underline;
76 | }
77 |
78 | .hljs-variable,
79 | .hljs-template-variable {
80 | color: #660e7a;
81 | }
82 |
83 | .hljs-addition {
84 | background: #baeeba;
85 | }
86 |
87 | .hljs-deletion {
88 | background: #ffc8bd;
89 | }
90 |
91 | .hljs-emphasis {
92 | font-style: italic;
93 | }
94 |
95 | .hljs-strong {
96 | font-weight: bold;
97 | }
98 |
--------------------------------------------------------------------------------
/js/styles/ir-black.css:
--------------------------------------------------------------------------------
1 | /*
2 | IR_Black style (c) Vasily Mikhailitchenko
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #000;
10 | color: #f8f8f8;
11 | }
12 |
13 | .hljs-comment,
14 | .hljs-quote,
15 | .hljs-meta {
16 | color: #7c7c7c;
17 | }
18 |
19 | .hljs-keyword,
20 | .hljs-selector-tag,
21 | .hljs-tag,
22 | .hljs-name {
23 | color: #96cbfe;
24 | }
25 |
26 | .hljs-attribute,
27 | .hljs-selector-id {
28 | color: #ffffb6;
29 | }
30 |
31 | .hljs-string,
32 | .hljs-selector-attr,
33 | .hljs-selector-pseudo,
34 | .hljs-addition {
35 | color: #a8ff60;
36 | }
37 |
38 | .hljs-subst {
39 | color: #daefa3;
40 | }
41 |
42 | .hljs-regexp,
43 | .hljs-link {
44 | color: #e9c062;
45 | }
46 |
47 | .hljs-title,
48 | .hljs-section,
49 | .hljs-type,
50 | .hljs-doctag {
51 | color: #ffffb6;
52 | }
53 |
54 | .hljs-symbol,
55 | .hljs-bullet,
56 | .hljs-variable,
57 | .hljs-template-variable,
58 | .hljs-literal {
59 | color: #c6c5fe;
60 | }
61 |
62 | .hljs-number,
63 | .hljs-deletion {
64 | color:#ff73fd;
65 | }
66 |
67 | .hljs-emphasis {
68 | font-style: italic;
69 | }
70 |
71 | .hljs-strong {
72 | font-weight: bold;
73 | }
74 |
--------------------------------------------------------------------------------
/js/styles/isbl-editor-dark.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | ISBL Editor style dark color scheme (c) Dmitriy Tarasov
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #404040;
12 | color: #f0f0f0;
13 | }
14 |
15 | /* Base color: saturation 0; */
16 |
17 | .hljs,
18 | .hljs-subst {
19 | color: #f0f0f0;
20 | }
21 |
22 | .hljs-comment {
23 | color: #b5b5b5;
24 | font-style: italic;
25 | }
26 |
27 | .hljs-keyword,
28 | .hljs-attribute,
29 | .hljs-selector-tag,
30 | .hljs-meta-keyword,
31 | .hljs-doctag,
32 | .hljs-name {
33 | color: #f0f0f0;
34 | font-weight: bold;
35 | }
36 |
37 |
38 | /* User color: hue: 0 */
39 |
40 | .hljs-string {
41 | color: #97bf0d;
42 | }
43 |
44 | .hljs-type,
45 | .hljs-number,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-quote,
49 | .hljs-template-tag,
50 | .hljs-deletion {
51 | color: #f0f0f0;
52 | }
53 |
54 | .hljs-title,
55 | .hljs-section {
56 | color: #df471e;
57 | }
58 |
59 | .hljs-title>.hljs-built_in {
60 | color: #81bce9;
61 | font-weight: normal;
62 | }
63 |
64 | .hljs-regexp,
65 | .hljs-symbol,
66 | .hljs-variable,
67 | .hljs-template-variable,
68 | .hljs-link,
69 | .hljs-selector-attr,
70 | .hljs-selector-pseudo {
71 | color: #e2c696;
72 | }
73 |
74 | /* Language color: hue: 90; */
75 |
76 | .hljs-built_in,
77 | .hljs-literal {
78 | color: #97bf0d;
79 | font-weight: bold;
80 | }
81 |
82 | .hljs-bullet,
83 | .hljs-code,
84 | .hljs-addition {
85 | color: #397300;
86 | }
87 |
88 | .hljs-class {
89 | color: #ce9d4d;
90 | font-weight: bold;
91 | }
92 |
93 | /* Meta color: hue: 200 */
94 |
95 | .hljs-meta {
96 | color: #1f7199;
97 | }
98 |
99 | .hljs-meta-string {
100 | color: #4d99bf;
101 | }
102 |
103 |
104 | /* Misc effects */
105 |
106 | .hljs-emphasis {
107 | font-style: italic;
108 | }
109 |
110 | .hljs-strong {
111 | font-weight: bold;
112 | }
113 |
--------------------------------------------------------------------------------
/js/styles/isbl-editor-light.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | ISBL Editor style light color schemec (c) Dmitriy Tarasov
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: white;
12 | color: black;
13 | }
14 |
15 | /* Base color: saturation 0; */
16 |
17 | .hljs,
18 | .hljs-subst {
19 | color: #000000;
20 | }
21 |
22 | .hljs-comment {
23 | color: #555555;
24 | font-style: italic;
25 | }
26 |
27 | .hljs-keyword,
28 | .hljs-attribute,
29 | .hljs-selector-tag,
30 | .hljs-meta-keyword,
31 | .hljs-doctag,
32 | .hljs-name {
33 | color: #000000;
34 | font-weight: bold;
35 | }
36 |
37 |
38 | /* User color: hue: 0 */
39 |
40 | .hljs-string {
41 | color: #000080;
42 | }
43 |
44 | .hljs-type,
45 | .hljs-number,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-quote,
49 | .hljs-template-tag,
50 | .hljs-deletion {
51 | color: #000000;
52 | }
53 |
54 | .hljs-title,
55 | .hljs-section {
56 | color: #fb2c00;
57 | }
58 |
59 | .hljs-title>.hljs-built_in {
60 | color: #008080;
61 | font-weight: normal;
62 | }
63 |
64 | .hljs-regexp,
65 | .hljs-symbol,
66 | .hljs-variable,
67 | .hljs-template-variable,
68 | .hljs-link,
69 | .hljs-selector-attr,
70 | .hljs-selector-pseudo {
71 | color: #5e1700;
72 | }
73 |
74 | /* Language color: hue: 90; */
75 |
76 | .hljs-built_in,
77 | .hljs-literal {
78 | color: #000080;
79 | font-weight: bold;
80 | }
81 |
82 | .hljs-bullet,
83 | .hljs-code,
84 | .hljs-addition {
85 | color: #397300;
86 | }
87 |
88 | .hljs-class {
89 | color: #6f1C00;
90 | font-weight: bold;
91 | }
92 |
93 | /* Meta color: hue: 200 */
94 |
95 | .hljs-meta {
96 | color: #1f7199;
97 | }
98 |
99 | .hljs-meta-string {
100 | color: #4d99bf;
101 | }
102 |
103 |
104 | /* Misc effects */
105 |
106 | .hljs-emphasis {
107 | font-style: italic;
108 | }
109 |
110 | .hljs-strong {
111 | font-weight: bold;
112 | }
113 |
--------------------------------------------------------------------------------
/js/styles/kimbie.dark.css:
--------------------------------------------------------------------------------
1 | /*
2 | Name: Kimbie (dark)
3 | Author: Jan T. Sott
4 | License: Creative Commons Attribution-ShareAlike 4.0 Unported License
5 | URL: https://github.com/idleberg/Kimbie-highlight.js
6 | */
7 |
8 | /* Kimbie Comment */
9 | .hljs-comment,
10 | .hljs-quote {
11 | color: #d6baad;
12 | }
13 |
14 | /* Kimbie Red */
15 | .hljs-variable,
16 | .hljs-template-variable,
17 | .hljs-tag,
18 | .hljs-name,
19 | .hljs-selector-id,
20 | .hljs-selector-class,
21 | .hljs-regexp,
22 | .hljs-meta {
23 | color: #dc3958;
24 | }
25 |
26 | /* Kimbie Orange */
27 | .hljs-number,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params,
33 | .hljs-deletion,
34 | .hljs-link {
35 | color: #f79a32;
36 | }
37 |
38 | /* Kimbie Yellow */
39 | .hljs-title,
40 | .hljs-section,
41 | .hljs-attribute {
42 | color: #f06431;
43 | }
44 |
45 | /* Kimbie Green */
46 | .hljs-string,
47 | .hljs-symbol,
48 | .hljs-bullet,
49 | .hljs-addition {
50 | color: #889b4a;
51 | }
52 |
53 | /* Kimbie Purple */
54 | .hljs-keyword,
55 | .hljs-selector-tag,
56 | .hljs-function {
57 | color: #98676a;
58 | }
59 |
60 | .hljs {
61 | display: block;
62 | overflow-x: auto;
63 | background: #221a0f;
64 | color: #d3af86;
65 | padding: 0.5em;
66 | }
67 |
68 | .hljs-emphasis {
69 | font-style: italic;
70 | }
71 |
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 |
--------------------------------------------------------------------------------
/js/styles/kimbie.light.css:
--------------------------------------------------------------------------------
1 | /*
2 | Name: Kimbie (light)
3 | Author: Jan T. Sott
4 | License: Creative Commons Attribution-ShareAlike 4.0 Unported License
5 | URL: https://github.com/idleberg/Kimbie-highlight.js
6 | */
7 |
8 | /* Kimbie Comment */
9 | .hljs-comment,
10 | .hljs-quote {
11 | color: #a57a4c;
12 | }
13 |
14 | /* Kimbie Red */
15 | .hljs-variable,
16 | .hljs-template-variable,
17 | .hljs-tag,
18 | .hljs-name,
19 | .hljs-selector-id,
20 | .hljs-selector-class,
21 | .hljs-regexp,
22 | .hljs-meta {
23 | color: #dc3958;
24 | }
25 |
26 | /* Kimbie Orange */
27 | .hljs-number,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params,
33 | .hljs-deletion,
34 | .hljs-link {
35 | color: #f79a32;
36 | }
37 |
38 | /* Kimbie Yellow */
39 | .hljs-title,
40 | .hljs-section,
41 | .hljs-attribute {
42 | color: #f06431;
43 | }
44 |
45 | /* Kimbie Green */
46 | .hljs-string,
47 | .hljs-symbol,
48 | .hljs-bullet,
49 | .hljs-addition {
50 | color: #889b4a;
51 | }
52 |
53 | /* Kimbie Purple */
54 | .hljs-keyword,
55 | .hljs-selector-tag,
56 | .hljs-function {
57 | color: #98676a;
58 | }
59 |
60 | .hljs {
61 | display: block;
62 | overflow-x: auto;
63 | background: #fbebd4;
64 | color: #84613d;
65 | padding: 0.5em;
66 | }
67 |
68 | .hljs-emphasis {
69 | font-style: italic;
70 | }
71 |
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 |
--------------------------------------------------------------------------------
/js/styles/lightfair.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Lightfair style (c) Tristian Kelly
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | }
12 |
13 | .hljs-name {
14 | color:#01a3a3;
15 | }
16 |
17 | .hljs-tag,.hljs-meta {
18 | color:#778899;
19 | }
20 |
21 | .hljs,
22 | .hljs-subst {
23 | color: #444
24 | }
25 |
26 | .hljs-comment {
27 | color: #888888
28 | }
29 |
30 | .hljs-keyword,
31 | .hljs-attribute,
32 | .hljs-selector-tag,
33 | .hljs-meta-keyword,
34 | .hljs-doctag,
35 | .hljs-name {
36 | font-weight: bold
37 | }
38 |
39 | .hljs-type,
40 | .hljs-string,
41 | .hljs-number,
42 | .hljs-selector-id,
43 | .hljs-selector-class,
44 | .hljs-quote,
45 | .hljs-template-tag,
46 | .hljs-deletion {
47 | color: #4286f4
48 | }
49 |
50 | .hljs-title,
51 | .hljs-section {
52 | color: #4286f4;
53 | font-weight: bold
54 | }
55 |
56 | .hljs-regexp,
57 | .hljs-symbol,
58 | .hljs-variable,
59 | .hljs-template-variable,
60 | .hljs-link,
61 | .hljs-selector-attr,
62 | .hljs-selector-pseudo {
63 | color: #BC6060
64 | }
65 |
66 | .hljs-literal {
67 | color: #62bcbc
68 | }
69 |
70 | .hljs-built_in,
71 | .hljs-bullet,
72 | .hljs-code,
73 | .hljs-addition {
74 | color: #25c6c6
75 | }
76 |
77 | .hljs-meta-string {
78 | color: #4d99bf
79 | }
80 |
81 | .hljs-emphasis {
82 | font-style: italic
83 | }
84 |
85 | .hljs-strong {
86 | font-weight: bold
87 | }
88 |
--------------------------------------------------------------------------------
/js/styles/magula.css:
--------------------------------------------------------------------------------
1 | /*
2 | Description: Magula style for highligh.js
3 | Author: Ruslan Keba
4 | Website: http://rukeba.com/
5 | Version: 1.0
6 | Date: 2009-01-03
7 | Music: Aphex Twin / Xtal
8 | */
9 |
10 | .hljs {
11 | display: block;
12 | overflow-x: auto;
13 | padding: 0.5em;
14 | background-color: #f4f4f4;
15 | }
16 |
17 | .hljs,
18 | .hljs-subst {
19 | color: black;
20 | }
21 |
22 | .hljs-string,
23 | .hljs-title,
24 | .hljs-symbol,
25 | .hljs-bullet,
26 | .hljs-attribute,
27 | .hljs-addition,
28 | .hljs-variable,
29 | .hljs-template-tag,
30 | .hljs-template-variable {
31 | color: #050;
32 | }
33 |
34 | .hljs-comment,
35 | .hljs-quote {
36 | color: #777;
37 | }
38 |
39 | .hljs-number,
40 | .hljs-regexp,
41 | .hljs-literal,
42 | .hljs-type,
43 | .hljs-link {
44 | color: #800;
45 | }
46 |
47 | .hljs-deletion,
48 | .hljs-meta {
49 | color: #00e;
50 | }
51 |
52 | .hljs-keyword,
53 | .hljs-selector-tag,
54 | .hljs-doctag,
55 | .hljs-title,
56 | .hljs-section,
57 | .hljs-built_in,
58 | .hljs-tag,
59 | .hljs-name {
60 | font-weight: bold;
61 | color: navy;
62 | }
63 |
64 | .hljs-emphasis {
65 | font-style: italic;
66 | }
67 |
68 | .hljs-strong {
69 | font-weight: bold;
70 | }
71 |
--------------------------------------------------------------------------------
/js/styles/mono-blue.css:
--------------------------------------------------------------------------------
1 | /*
2 | Five-color theme from a single blue hue.
3 | */
4 | .hljs {
5 | display: block;
6 | overflow-x: auto;
7 | padding: 0.5em;
8 | background: #eaeef3;
9 | }
10 |
11 | .hljs {
12 | color: #00193a;
13 | }
14 |
15 | .hljs-keyword,
16 | .hljs-selector-tag,
17 | .hljs-title,
18 | .hljs-section,
19 | .hljs-doctag,
20 | .hljs-name,
21 | .hljs-strong {
22 | font-weight: bold;
23 | }
24 |
25 | .hljs-comment {
26 | color: #738191;
27 | }
28 |
29 | .hljs-string,
30 | .hljs-title,
31 | .hljs-section,
32 | .hljs-built_in,
33 | .hljs-literal,
34 | .hljs-type,
35 | .hljs-addition,
36 | .hljs-tag,
37 | .hljs-quote,
38 | .hljs-name,
39 | .hljs-selector-id,
40 | .hljs-selector-class {
41 | color: #0048ab;
42 | }
43 |
44 | .hljs-meta,
45 | .hljs-subst,
46 | .hljs-symbol,
47 | .hljs-regexp,
48 | .hljs-attribute,
49 | .hljs-deletion,
50 | .hljs-variable,
51 | .hljs-template-variable,
52 | .hljs-link,
53 | .hljs-bullet {
54 | color: #4c81c9;
55 | }
56 |
57 | .hljs-emphasis {
58 | font-style: italic;
59 | }
60 |
--------------------------------------------------------------------------------
/js/styles/monokai-sublime.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #23241f;
12 | }
13 |
14 | .hljs,
15 | .hljs-tag,
16 | .hljs-subst {
17 | color: #f8f8f2;
18 | }
19 |
20 | .hljs-strong,
21 | .hljs-emphasis {
22 | color: #a8a8a2;
23 | }
24 |
25 | .hljs-bullet,
26 | .hljs-quote,
27 | .hljs-number,
28 | .hljs-regexp,
29 | .hljs-literal,
30 | .hljs-link {
31 | color: #ae81ff;
32 | }
33 |
34 | .hljs-code,
35 | .hljs-title,
36 | .hljs-section,
37 | .hljs-selector-class {
38 | color: #a6e22e;
39 | }
40 |
41 | .hljs-strong {
42 | font-weight: bold;
43 | }
44 |
45 | .hljs-emphasis {
46 | font-style: italic;
47 | }
48 |
49 | .hljs-keyword,
50 | .hljs-selector-tag,
51 | .hljs-name,
52 | .hljs-attr {
53 | color: #f92672;
54 | }
55 |
56 | .hljs-symbol,
57 | .hljs-attribute {
58 | color: #66d9ef;
59 | }
60 |
61 | .hljs-params,
62 | .hljs-class .hljs-title {
63 | color: #f8f8f2;
64 | }
65 |
66 | .hljs-string,
67 | .hljs-type,
68 | .hljs-built_in,
69 | .hljs-builtin-name,
70 | .hljs-selector-id,
71 | .hljs-selector-attr,
72 | .hljs-selector-pseudo,
73 | .hljs-addition,
74 | .hljs-variable,
75 | .hljs-template-variable {
76 | color: #e6db74;
77 | }
78 |
79 | .hljs-comment,
80 | .hljs-deletion,
81 | .hljs-meta {
82 | color: #75715e;
83 | }
84 |
--------------------------------------------------------------------------------
/js/styles/monokai.css:
--------------------------------------------------------------------------------
1 | /*
2 | Monokai style - ported by Luigi Maselli - http://grigio.org
3 | */
4 |
5 | .hljs {
6 | display: block;
7 | overflow-x: auto;
8 | padding: 0.5em;
9 | background: #272822; color: #ddd;
10 | }
11 |
12 | .hljs-tag,
13 | .hljs-keyword,
14 | .hljs-selector-tag,
15 | .hljs-literal,
16 | .hljs-strong,
17 | .hljs-name {
18 | color: #f92672;
19 | }
20 |
21 | .hljs-code {
22 | color: #66d9ef;
23 | }
24 |
25 | .hljs-class .hljs-title {
26 | color: white;
27 | }
28 |
29 | .hljs-attribute,
30 | .hljs-symbol,
31 | .hljs-regexp,
32 | .hljs-link {
33 | color: #bf79db;
34 | }
35 |
36 | .hljs-string,
37 | .hljs-bullet,
38 | .hljs-subst,
39 | .hljs-title,
40 | .hljs-section,
41 | .hljs-emphasis,
42 | .hljs-type,
43 | .hljs-built_in,
44 | .hljs-builtin-name,
45 | .hljs-selector-attr,
46 | .hljs-selector-pseudo,
47 | .hljs-addition,
48 | .hljs-variable,
49 | .hljs-template-tag,
50 | .hljs-template-variable {
51 | color: #a6e22e;
52 | }
53 |
54 | .hljs-comment,
55 | .hljs-quote,
56 | .hljs-deletion,
57 | .hljs-meta {
58 | color: #75715e;
59 | }
60 |
61 | .hljs-keyword,
62 | .hljs-selector-tag,
63 | .hljs-literal,
64 | .hljs-doctag,
65 | .hljs-title,
66 | .hljs-section,
67 | .hljs-type,
68 | .hljs-selector-id {
69 | font-weight: bold;
70 | }
71 |
--------------------------------------------------------------------------------
/js/styles/obsidian.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Obsidian style
3 | * ported by Alexander Marenin (http://github.com/ioncreature)
4 | */
5 |
6 | .hljs {
7 | display: block;
8 | overflow-x: auto;
9 | padding: 0.5em;
10 | background: #282b2e;
11 | }
12 |
13 | .hljs-keyword,
14 | .hljs-selector-tag,
15 | .hljs-literal,
16 | .hljs-selector-id {
17 | color: #93c763;
18 | }
19 |
20 | .hljs-number {
21 | color: #ffcd22;
22 | }
23 |
24 | .hljs {
25 | color: #e0e2e4;
26 | }
27 |
28 | .hljs-attribute {
29 | color: #668bb0;
30 | }
31 |
32 | .hljs-code,
33 | .hljs-class .hljs-title,
34 | .hljs-section {
35 | color: white;
36 | }
37 |
38 | .hljs-regexp,
39 | .hljs-link {
40 | color: #d39745;
41 | }
42 |
43 | .hljs-meta {
44 | color: #557182;
45 | }
46 |
47 | .hljs-tag,
48 | .hljs-name,
49 | .hljs-bullet,
50 | .hljs-subst,
51 | .hljs-emphasis,
52 | .hljs-type,
53 | .hljs-built_in,
54 | .hljs-selector-attr,
55 | .hljs-selector-pseudo,
56 | .hljs-addition,
57 | .hljs-variable,
58 | .hljs-template-tag,
59 | .hljs-template-variable {
60 | color: #8cbbad;
61 | }
62 |
63 | .hljs-string,
64 | .hljs-symbol {
65 | color: #ec7600;
66 | }
67 |
68 | .hljs-comment,
69 | .hljs-quote,
70 | .hljs-deletion {
71 | color: #818e96;
72 | }
73 |
74 | .hljs-selector-class {
75 | color: #A082BD
76 | }
77 |
78 | .hljs-keyword,
79 | .hljs-selector-tag,
80 | .hljs-literal,
81 | .hljs-doctag,
82 | .hljs-title,
83 | .hljs-section,
84 | .hljs-type,
85 | .hljs-name,
86 | .hljs-strong {
87 | font-weight: bold;
88 | }
89 |
--------------------------------------------------------------------------------
/js/styles/ocean.css:
--------------------------------------------------------------------------------
1 | /* Ocean Dark Theme */
2 | /* https://github.com/gavsiu */
3 | /* Original theme - https://github.com/chriskempson/base16 */
4 |
5 | /* Ocean Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #65737e;
9 | }
10 |
11 | /* Ocean Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-tag,
15 | .hljs-name,
16 | .hljs-selector-id,
17 | .hljs-selector-class,
18 | .hljs-regexp,
19 | .hljs-deletion {
20 | color: #bf616a;
21 | }
22 |
23 | /* Ocean Orange */
24 | .hljs-number,
25 | .hljs-built_in,
26 | .hljs-builtin-name,
27 | .hljs-literal,
28 | .hljs-type,
29 | .hljs-params,
30 | .hljs-meta,
31 | .hljs-link {
32 | color: #d08770;
33 | }
34 |
35 | /* Ocean Yellow */
36 | .hljs-attribute {
37 | color: #ebcb8b;
38 | }
39 |
40 | /* Ocean Green */
41 | .hljs-string,
42 | .hljs-symbol,
43 | .hljs-bullet,
44 | .hljs-addition {
45 | color: #a3be8c;
46 | }
47 |
48 | /* Ocean Blue */
49 | .hljs-title,
50 | .hljs-section {
51 | color: #8fa1b3;
52 | }
53 |
54 | /* Ocean Purple */
55 | .hljs-keyword,
56 | .hljs-selector-tag {
57 | color: #b48ead;
58 | }
59 |
60 | .hljs {
61 | display: block;
62 | overflow-x: auto;
63 | background: #2b303b;
64 | color: #c0c5ce;
65 | padding: 0.5em;
66 | }
67 |
68 | .hljs-emphasis {
69 | font-style: italic;
70 | }
71 |
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 |
--------------------------------------------------------------------------------
/js/styles/paraiso-dark.css:
--------------------------------------------------------------------------------
1 | /*
2 | Paraíso (dark)
3 | Created by Jan T. Sott (http://github.com/idleberg)
4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
5 | */
6 |
7 | /* Paraíso Comment */
8 | .hljs-comment,
9 | .hljs-quote {
10 | color: #8d8687;
11 | }
12 |
13 | /* Paraíso Red */
14 | .hljs-variable,
15 | .hljs-template-variable,
16 | .hljs-tag,
17 | .hljs-name,
18 | .hljs-selector-id,
19 | .hljs-selector-class,
20 | .hljs-regexp,
21 | .hljs-link,
22 | .hljs-meta {
23 | color: #ef6155;
24 | }
25 |
26 | /* Paraíso Orange */
27 | .hljs-number,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params,
33 | .hljs-deletion {
34 | color: #f99b15;
35 | }
36 |
37 | /* Paraíso Yellow */
38 | .hljs-title,
39 | .hljs-section,
40 | .hljs-attribute {
41 | color: #fec418;
42 | }
43 |
44 | /* Paraíso Green */
45 | .hljs-string,
46 | .hljs-symbol,
47 | .hljs-bullet,
48 | .hljs-addition {
49 | color: #48b685;
50 | }
51 |
52 | /* Paraíso Purple */
53 | .hljs-keyword,
54 | .hljs-selector-tag {
55 | color: #815ba4;
56 | }
57 |
58 | .hljs {
59 | display: block;
60 | overflow-x: auto;
61 | background: #2f1e2e;
62 | color: #a39e9b;
63 | padding: 0.5em;
64 | }
65 |
66 | .hljs-emphasis {
67 | font-style: italic;
68 | }
69 |
70 | .hljs-strong {
71 | font-weight: bold;
72 | }
73 |
--------------------------------------------------------------------------------
/js/styles/paraiso-light.css:
--------------------------------------------------------------------------------
1 | /*
2 | Paraíso (light)
3 | Created by Jan T. Sott (http://github.com/idleberg)
4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
5 | */
6 |
7 | /* Paraíso Comment */
8 | .hljs-comment,
9 | .hljs-quote {
10 | color: #776e71;
11 | }
12 |
13 | /* Paraíso Red */
14 | .hljs-variable,
15 | .hljs-template-variable,
16 | .hljs-tag,
17 | .hljs-name,
18 | .hljs-selector-id,
19 | .hljs-selector-class,
20 | .hljs-regexp,
21 | .hljs-link,
22 | .hljs-meta {
23 | color: #ef6155;
24 | }
25 |
26 | /* Paraíso Orange */
27 | .hljs-number,
28 | .hljs-built_in,
29 | .hljs-builtin-name,
30 | .hljs-literal,
31 | .hljs-type,
32 | .hljs-params,
33 | .hljs-deletion {
34 | color: #f99b15;
35 | }
36 |
37 | /* Paraíso Yellow */
38 | .hljs-title,
39 | .hljs-section,
40 | .hljs-attribute {
41 | color: #fec418;
42 | }
43 |
44 | /* Paraíso Green */
45 | .hljs-string,
46 | .hljs-symbol,
47 | .hljs-bullet,
48 | .hljs-addition {
49 | color: #48b685;
50 | }
51 |
52 | /* Paraíso Purple */
53 | .hljs-keyword,
54 | .hljs-selector-tag {
55 | color: #815ba4;
56 | }
57 |
58 | .hljs {
59 | display: block;
60 | overflow-x: auto;
61 | background: #e7e9db;
62 | color: #4f424c;
63 | padding: 0.5em;
64 | }
65 |
66 | .hljs-emphasis {
67 | font-style: italic;
68 | }
69 |
70 | .hljs-strong {
71 | font-weight: bold;
72 | }
73 |
--------------------------------------------------------------------------------
/js/styles/pojoaque.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Pojoaque Style by Jason Tate
4 | http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html
5 | Based on Solarized Style from http://ethanschoonover.com/solarized
6 |
7 | */
8 |
9 | .hljs {
10 | display: block;
11 | overflow-x: auto;
12 | padding: 0.5em;
13 | color: #dccf8f;
14 | background: url(./pojoaque.jpg) repeat scroll left top #181914;
15 | }
16 |
17 | .hljs-comment,
18 | .hljs-quote {
19 | color: #586e75;
20 | font-style: italic;
21 | }
22 |
23 | .hljs-keyword,
24 | .hljs-selector-tag,
25 | .hljs-literal,
26 | .hljs-addition {
27 | color: #b64926;
28 | }
29 |
30 | .hljs-number,
31 | .hljs-string,
32 | .hljs-doctag,
33 | .hljs-regexp {
34 | color: #468966;
35 | }
36 |
37 | .hljs-title,
38 | .hljs-section,
39 | .hljs-built_in,
40 | .hljs-name {
41 | color: #ffb03b;
42 | }
43 |
44 | .hljs-variable,
45 | .hljs-template-variable,
46 | .hljs-class .hljs-title,
47 | .hljs-type,
48 | .hljs-tag {
49 | color: #b58900;
50 | }
51 |
52 | .hljs-attribute {
53 | color: #b89859;
54 | }
55 |
56 | .hljs-symbol,
57 | .hljs-bullet,
58 | .hljs-link,
59 | .hljs-subst,
60 | .hljs-meta {
61 | color: #cb4b16;
62 | }
63 |
64 | .hljs-deletion {
65 | color: #dc322f;
66 | }
67 |
68 | .hljs-selector-id,
69 | .hljs-selector-class {
70 | color: #d3a60c;
71 | }
72 |
73 | .hljs-formula {
74 | background: #073642;
75 | }
76 |
77 | .hljs-emphasis {
78 | font-style: italic;
79 | }
80 |
81 | .hljs-strong {
82 | font-weight: bold;
83 | }
84 |
--------------------------------------------------------------------------------
/js/styles/pojoaque.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/js/styles/pojoaque.jpg
--------------------------------------------------------------------------------
/js/styles/purebasic.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | PureBASIC native IDE style ( version 1.0 - April 2016 )
4 |
5 | by Tristano Ajmone
6 |
7 | Public Domain
8 |
9 | NOTE_1: PureBASIC code syntax highlighting only applies the following classes:
10 | .hljs-comment
11 | .hljs-function
12 | .hljs-keywords
13 | .hljs-string
14 | .hljs-symbol
15 |
16 | Other classes are added here for the benefit of styling other languages with the look and feel of PureBASIC native IDE style.
17 | If you need to customize a stylesheet for PureBASIC only, remove all non-relevant classes -- PureBASIC-related classes are followed by
18 | a "--- used for PureBASIC ... ---" comment on same line.
19 |
20 | NOTE_2: Color names provided in comments were derived using "Name that Color" online tool:
21 | http://chir.ag/projects/name-that-color
22 | */
23 |
24 | .hljs { /* Common set of rules required by highlight.js (don'r remove!) */
25 | display: block;
26 | overflow-x: auto;
27 | padding: 0.5em;
28 | background: #FFFFDF; /* Half and Half (approx.) */
29 | /* --- Uncomment to add PureBASIC native IDE styled font!
30 | font-family: Consolas;
31 | */
32 | }
33 |
34 | .hljs, /* --- used for PureBASIC base color --- */
35 | .hljs-type, /* --- used for PureBASIC Procedures return type --- */
36 | .hljs-function, /* --- used for wrapping PureBASIC Procedures definitions --- */
37 | .hljs-name,
38 | .hljs-number,
39 | .hljs-attr,
40 | .hljs-params,
41 | .hljs-subst {
42 | color: #000000; /* Black */
43 | }
44 |
45 | .hljs-comment, /* --- used for PureBASIC Comments --- */
46 | .hljs-regexp,
47 | .hljs-section,
48 | .hljs-selector-pseudo,
49 | .hljs-addition {
50 | color: #00AAAA; /* Persian Green (approx.) */
51 | }
52 |
53 | .hljs-title, /* --- used for PureBASIC Procedures Names --- */
54 | .hljs-tag,
55 | .hljs-variable,
56 | .hljs-code {
57 | color: #006666; /* Blue Stone (approx.) */
58 | }
59 |
60 | .hljs-keyword, /* --- used for PureBASIC Keywords --- */
61 | .hljs-class,
62 | .hljs-meta-keyword,
63 | .hljs-selector-class,
64 | .hljs-built_in,
65 | .hljs-builtin-name {
66 | color: #006666; /* Blue Stone (approx.) */
67 | font-weight: bold;
68 | }
69 |
70 | .hljs-string, /* --- used for PureBASIC Strings --- */
71 | .hljs-selector-attr {
72 | color: #0080FF; /* Azure Radiance (approx.) */
73 | }
74 |
75 | .hljs-symbol, /* --- used for PureBASIC Constants --- */
76 | .hljs-link,
77 | .hljs-deletion,
78 | .hljs-attribute {
79 | color: #924B72; /* Cannon Pink (approx.) */
80 | }
81 |
82 | .hljs-meta,
83 | .hljs-literal,
84 | .hljs-selector-id {
85 | color: #924B72; /* Cannon Pink (approx.) */
86 | font-weight: bold;
87 | }
88 |
89 | .hljs-strong,
90 | .hljs-name {
91 | font-weight: bold;
92 | }
93 |
94 | .hljs-emphasis {
95 | font-style: italic;
96 | }
97 |
--------------------------------------------------------------------------------
/js/styles/qtcreator_dark.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Qt Creator dark color scheme
4 |
5 | */
6 |
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #000000;
13 | }
14 |
15 | .hljs,
16 | .hljs-subst,
17 | .hljs-tag,
18 | .hljs-title {
19 | color: #aaaaaa;
20 | }
21 |
22 | .hljs-strong,
23 | .hljs-emphasis {
24 | color: #a8a8a2;
25 | }
26 |
27 | .hljs-bullet,
28 | .hljs-quote,
29 | .hljs-number,
30 | .hljs-regexp,
31 | .hljs-literal {
32 | color: #ff55ff;
33 | }
34 |
35 | .hljs-code
36 | .hljs-selector-class {
37 | color: #aaaaff;
38 | }
39 |
40 | .hljs-emphasis,
41 | .hljs-stronge,
42 | .hljs-type {
43 | font-style: italic;
44 | }
45 |
46 | .hljs-keyword,
47 | .hljs-selector-tag,
48 | .hljs-function,
49 | .hljs-section,
50 | .hljs-symbol,
51 | .hljs-name {
52 | color: #ffff55;
53 | }
54 |
55 | .hljs-attribute {
56 | color: #ff5555;
57 | }
58 |
59 | .hljs-variable,
60 | .hljs-params,
61 | .hljs-class .hljs-title {
62 | color: #8888ff;
63 | }
64 |
65 | .hljs-string,
66 | .hljs-selector-id,
67 | .hljs-selector-attr,
68 | .hljs-selector-pseudo,
69 | .hljs-type,
70 | .hljs-built_in,
71 | .hljs-builtin-name,
72 | .hljs-template-tag,
73 | .hljs-template-variable,
74 | .hljs-addition,
75 | .hljs-link {
76 | color: #ff55ff;
77 | }
78 |
79 | .hljs-comment,
80 | .hljs-meta,
81 | .hljs-deletion {
82 | color: #55ffff;
83 | }
84 |
--------------------------------------------------------------------------------
/js/styles/qtcreator_light.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Qt Creator light color scheme
4 |
5 | */
6 |
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #ffffff;
13 | }
14 |
15 | .hljs,
16 | .hljs-subst,
17 | .hljs-tag,
18 | .hljs-title {
19 | color: #000000;
20 | }
21 |
22 | .hljs-strong,
23 | .hljs-emphasis {
24 | color: #000000;
25 | }
26 |
27 | .hljs-bullet,
28 | .hljs-quote,
29 | .hljs-number,
30 | .hljs-regexp,
31 | .hljs-literal {
32 | color: #000080;
33 | }
34 |
35 | .hljs-code
36 | .hljs-selector-class {
37 | color: #800080;
38 | }
39 |
40 | .hljs-emphasis,
41 | .hljs-stronge,
42 | .hljs-type {
43 | font-style: italic;
44 | }
45 |
46 | .hljs-keyword,
47 | .hljs-selector-tag,
48 | .hljs-function,
49 | .hljs-section,
50 | .hljs-symbol,
51 | .hljs-name {
52 | color: #808000;
53 | }
54 |
55 | .hljs-attribute {
56 | color: #800000;
57 | }
58 |
59 | .hljs-variable,
60 | .hljs-params,
61 | .hljs-class .hljs-title {
62 | color: #0055AF;
63 | }
64 |
65 | .hljs-string,
66 | .hljs-selector-id,
67 | .hljs-selector-attr,
68 | .hljs-selector-pseudo,
69 | .hljs-type,
70 | .hljs-built_in,
71 | .hljs-builtin-name,
72 | .hljs-template-tag,
73 | .hljs-template-variable,
74 | .hljs-addition,
75 | .hljs-link {
76 | color: #008000;
77 | }
78 |
79 | .hljs-comment,
80 | .hljs-meta,
81 | .hljs-deletion {
82 | color: #008000;
83 | }
84 |
--------------------------------------------------------------------------------
/js/styles/railscasts.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Railscasts-like style (c) Visoft, Inc. (Damien White)
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #232323;
12 | color: #e6e1dc;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #bc9458;
18 | font-style: italic;
19 | }
20 |
21 | .hljs-keyword,
22 | .hljs-selector-tag {
23 | color: #c26230;
24 | }
25 |
26 | .hljs-string,
27 | .hljs-number,
28 | .hljs-regexp,
29 | .hljs-variable,
30 | .hljs-template-variable {
31 | color: #a5c261;
32 | }
33 |
34 | .hljs-subst {
35 | color: #519f50;
36 | }
37 |
38 | .hljs-tag,
39 | .hljs-name {
40 | color: #e8bf6a;
41 | }
42 |
43 | .hljs-type {
44 | color: #da4939;
45 | }
46 |
47 |
48 | .hljs-symbol,
49 | .hljs-bullet,
50 | .hljs-built_in,
51 | .hljs-builtin-name,
52 | .hljs-attr,
53 | .hljs-link {
54 | color: #6d9cbe;
55 | }
56 |
57 | .hljs-params {
58 | color: #d0d0ff;
59 | }
60 |
61 | .hljs-attribute {
62 | color: #cda869;
63 | }
64 |
65 | .hljs-meta {
66 | color: #9b859d;
67 | }
68 |
69 | .hljs-title,
70 | .hljs-section {
71 | color: #ffc66d;
72 | }
73 |
74 | .hljs-addition {
75 | background-color: #144212;
76 | color: #e6e1dc;
77 | display: inline-block;
78 | width: 100%;
79 | }
80 |
81 | .hljs-deletion {
82 | background-color: #600;
83 | color: #e6e1dc;
84 | display: inline-block;
85 | width: 100%;
86 | }
87 |
88 | .hljs-selector-class {
89 | color: #9b703f;
90 | }
91 |
92 | .hljs-selector-id {
93 | color: #8b98ab;
94 | }
95 |
96 | .hljs-emphasis {
97 | font-style: italic;
98 | }
99 |
100 | .hljs-strong {
101 | font-weight: bold;
102 | }
103 |
104 | .hljs-link {
105 | text-decoration: underline;
106 | }
107 |
--------------------------------------------------------------------------------
/js/styles/rainbow.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Style with support for rainbow parens
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #474949;
12 | color: #d1d9e1;
13 | }
14 |
15 |
16 | .hljs-comment,
17 | .hljs-quote {
18 | color: #969896;
19 | font-style: italic;
20 | }
21 |
22 | .hljs-keyword,
23 | .hljs-selector-tag,
24 | .hljs-literal,
25 | .hljs-type,
26 | .hljs-addition {
27 | color: #cc99cc;
28 | }
29 |
30 | .hljs-number,
31 | .hljs-selector-attr,
32 | .hljs-selector-pseudo {
33 | color: #f99157;
34 | }
35 |
36 | .hljs-string,
37 | .hljs-doctag,
38 | .hljs-regexp {
39 | color: #8abeb7;
40 | }
41 |
42 | .hljs-title,
43 | .hljs-name,
44 | .hljs-section,
45 | .hljs-built_in {
46 | color: #b5bd68;
47 | }
48 |
49 | .hljs-variable,
50 | .hljs-template-variable,
51 | .hljs-selector-id,
52 | .hljs-class .hljs-title {
53 | color: #ffcc66;
54 | }
55 |
56 | .hljs-section,
57 | .hljs-name,
58 | .hljs-strong {
59 | font-weight: bold;
60 | }
61 |
62 | .hljs-symbol,
63 | .hljs-bullet,
64 | .hljs-subst,
65 | .hljs-meta,
66 | .hljs-link {
67 | color: #f99157;
68 | }
69 |
70 | .hljs-deletion {
71 | color: #dc322f;
72 | }
73 |
74 | .hljs-formula {
75 | background: #eee8d5;
76 | }
77 |
78 | .hljs-attr,
79 | .hljs-attribute {
80 | color: #81a2be;
81 | }
82 |
83 | .hljs-emphasis {
84 | font-style: italic;
85 | }
86 |
--------------------------------------------------------------------------------
/js/styles/routeros.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | highlight.js style for Microtik RouterOS script
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #F0F0F0;
12 | }
13 |
14 | /* Base color: saturation 0; */
15 |
16 | .hljs,
17 | .hljs-subst {
18 | color: #444;
19 | }
20 |
21 | .hljs-comment {
22 | color: #888888;
23 | }
24 |
25 | .hljs-keyword,
26 | .hljs-selector-tag,
27 | .hljs-meta-keyword,
28 | .hljs-doctag,
29 | .hljs-name {
30 | font-weight: bold;
31 | }
32 |
33 | .hljs-attribute {
34 | color: #0E9A00;
35 | }
36 |
37 | .hljs-function {
38 | color: #99069A;
39 | }
40 |
41 | .hljs-builtin-name {
42 | color: #99069A;
43 | }
44 |
45 | /* User color: hue: 0 */
46 |
47 | .hljs-type,
48 | .hljs-string,
49 | .hljs-number,
50 | .hljs-selector-id,
51 | .hljs-selector-class,
52 | .hljs-quote,
53 | .hljs-template-tag,
54 | .hljs-deletion {
55 | color: #880000;
56 | }
57 |
58 | .hljs-title,
59 | .hljs-section {
60 | color: #880000;
61 | font-weight: bold;
62 | }
63 |
64 | .hljs-regexp,
65 | .hljs-symbol,
66 | .hljs-variable,
67 | .hljs-template-variable,
68 | .hljs-link,
69 | .hljs-selector-attr,
70 | .hljs-selector-pseudo {
71 | color: #BC6060;
72 | }
73 |
74 |
75 | /* Language color: hue: 90; */
76 |
77 | .hljs-literal {
78 | color: #78A960;
79 | }
80 |
81 | .hljs-built_in,
82 | .hljs-bullet,
83 | .hljs-code,
84 | .hljs-addition {
85 | color: #0C9A9A;
86 | }
87 |
88 |
89 | /* Meta color: hue: 200 */
90 |
91 | .hljs-meta {
92 | color: #1f7199;
93 | }
94 |
95 | .hljs-meta-string {
96 | color: #4d99bf;
97 | }
98 |
99 |
100 | /* Misc effects */
101 |
102 | .hljs-emphasis {
103 | font-style: italic;
104 | }
105 |
106 | .hljs-strong {
107 | font-weight: bold;
108 | }
109 |
--------------------------------------------------------------------------------
/js/styles/school-book.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | School Book style from goldblog.com.ua (c) Zaripov Yura
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 15px 0.5em 0.5em 30px;
11 | font-size: 11px;
12 | line-height:16px;
13 | }
14 |
15 | pre{
16 | background:#f6f6ae url(./school-book.png);
17 | border-top: solid 2px #d2e8b9;
18 | border-bottom: solid 1px #d2e8b9;
19 | }
20 |
21 | .hljs-keyword,
22 | .hljs-selector-tag,
23 | .hljs-literal {
24 | color:#005599;
25 | font-weight:bold;
26 | }
27 |
28 | .hljs,
29 | .hljs-subst {
30 | color: #3e5915;
31 | }
32 |
33 | .hljs-string,
34 | .hljs-title,
35 | .hljs-section,
36 | .hljs-type,
37 | .hljs-symbol,
38 | .hljs-bullet,
39 | .hljs-attribute,
40 | .hljs-built_in,
41 | .hljs-builtin-name,
42 | .hljs-addition,
43 | .hljs-variable,
44 | .hljs-template-tag,
45 | .hljs-template-variable,
46 | .hljs-link {
47 | color: #2c009f;
48 | }
49 |
50 | .hljs-comment,
51 | .hljs-quote,
52 | .hljs-deletion,
53 | .hljs-meta {
54 | color: #e60415;
55 | }
56 |
57 | .hljs-keyword,
58 | .hljs-selector-tag,
59 | .hljs-literal,
60 | .hljs-doctag,
61 | .hljs-title,
62 | .hljs-section,
63 | .hljs-type,
64 | .hljs-name,
65 | .hljs-selector-id,
66 | .hljs-strong {
67 | font-weight: bold;
68 | }
69 |
70 | .hljs-emphasis {
71 | font-style: italic;
72 | }
73 |
--------------------------------------------------------------------------------
/js/styles/school-book.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/HaschekSolutions/pictshare/815895a52446a4a06f1f5be4c436759435310781/js/styles/school-book.png
--------------------------------------------------------------------------------
/js/styles/shades-of-purple.css:
--------------------------------------------------------------------------------
1 | /**
2 | * Shades of Purple Theme — for Highlightjs.
3 | *
4 | * @author (c) Ahmad Awais
5 | * @link GitHub Repo → https://github.com/ahmadawais/Shades-of-Purple-HighlightJS
6 | * @version 1.5.0
7 | */
8 |
9 | .hljs {
10 | display: block;
11 | overflow-x: auto;
12 | /* Custom font is optional */
13 | /* font-family: 'Operator Mono', 'Fira Code', 'Menlo', 'Monaco', 'Courier New', 'monospace'; */
14 | line-height: 1.45;
15 | padding: 2rem;
16 | background: #2d2b57;
17 | font-weight: normal;
18 | }
19 |
20 | .hljs-title {
21 | color: #fad000;
22 | font-weight: normal;
23 | }
24 |
25 | .hljs-name {
26 | color: #a1feff;
27 | }
28 |
29 | .hljs-tag {
30 | color: #ffffff;
31 | }
32 |
33 | .hljs-attr {
34 | color: #f8d000;
35 | font-style: italic;
36 | }
37 |
38 | .hljs-built_in,
39 | .hljs-selector-tag,
40 | .hljs-section {
41 | color: #fb9e00;
42 | }
43 |
44 | .hljs-keyword {
45 | color: #fb9e00;
46 | }
47 |
48 | .hljs,
49 | .hljs-subst {
50 | color: #e3dfff;
51 | }
52 |
53 | .hljs-string,
54 | .hljs-attribute,
55 | .hljs-symbol,
56 | .hljs-bullet,
57 | .hljs-addition,
58 | .hljs-code,
59 | .hljs-regexp,
60 | .hljs-selector-class,
61 | .hljs-selector-attr,
62 | .hljs-selector-pseudo,
63 | .hljs-template-tag,
64 | .hljs-quote,
65 | .hljs-deletion {
66 | color: #4cd213;
67 | }
68 |
69 | .hljs-meta,
70 | .hljs-meta-string {
71 | color: #fb9e00;
72 | }
73 |
74 | .hljs-comment {
75 | color: #ac65ff;
76 | }
77 |
78 | .hljs-keyword,
79 | .hljs-selector-tag,
80 | .hljs-literal,
81 | .hljs-name,
82 | .hljs-strong {
83 | font-weight: normal;
84 | }
85 |
86 | .hljs-literal,
87 | .hljs-number {
88 | color: #fa658d;
89 | }
90 |
91 | .hljs-emphasis {
92 | font-style: italic;
93 | }
94 |
95 | .hljs-strong {
96 | font-weight: bold;
97 | }
98 |
--------------------------------------------------------------------------------
/js/styles/solarized-dark.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #002b36;
12 | color: #839496;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #586e75;
18 | }
19 |
20 | /* Solarized Green */
21 | .hljs-keyword,
22 | .hljs-selector-tag,
23 | .hljs-addition {
24 | color: #859900;
25 | }
26 |
27 | /* Solarized Cyan */
28 | .hljs-number,
29 | .hljs-string,
30 | .hljs-meta .hljs-meta-string,
31 | .hljs-literal,
32 | .hljs-doctag,
33 | .hljs-regexp {
34 | color: #2aa198;
35 | }
36 |
37 | /* Solarized Blue */
38 | .hljs-title,
39 | .hljs-section,
40 | .hljs-name,
41 | .hljs-selector-id,
42 | .hljs-selector-class {
43 | color: #268bd2;
44 | }
45 |
46 | /* Solarized Yellow */
47 | .hljs-attribute,
48 | .hljs-attr,
49 | .hljs-variable,
50 | .hljs-template-variable,
51 | .hljs-class .hljs-title,
52 | .hljs-type {
53 | color: #b58900;
54 | }
55 |
56 | /* Solarized Orange */
57 | .hljs-symbol,
58 | .hljs-bullet,
59 | .hljs-subst,
60 | .hljs-meta,
61 | .hljs-meta .hljs-keyword,
62 | .hljs-selector-attr,
63 | .hljs-selector-pseudo,
64 | .hljs-link {
65 | color: #cb4b16;
66 | }
67 |
68 | /* Solarized Red */
69 | .hljs-built_in,
70 | .hljs-deletion {
71 | color: #dc322f;
72 | }
73 |
74 | .hljs-formula {
75 | background: #073642;
76 | }
77 |
78 | .hljs-emphasis {
79 | font-style: italic;
80 | }
81 |
82 | .hljs-strong {
83 | font-weight: bold;
84 | }
85 |
--------------------------------------------------------------------------------
/js/styles/solarized-light.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #fdf6e3;
12 | color: #657b83;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #93a1a1;
18 | }
19 |
20 | /* Solarized Green */
21 | .hljs-keyword,
22 | .hljs-selector-tag,
23 | .hljs-addition {
24 | color: #859900;
25 | }
26 |
27 | /* Solarized Cyan */
28 | .hljs-number,
29 | .hljs-string,
30 | .hljs-meta .hljs-meta-string,
31 | .hljs-literal,
32 | .hljs-doctag,
33 | .hljs-regexp {
34 | color: #2aa198;
35 | }
36 |
37 | /* Solarized Blue */
38 | .hljs-title,
39 | .hljs-section,
40 | .hljs-name,
41 | .hljs-selector-id,
42 | .hljs-selector-class {
43 | color: #268bd2;
44 | }
45 |
46 | /* Solarized Yellow */
47 | .hljs-attribute,
48 | .hljs-attr,
49 | .hljs-variable,
50 | .hljs-template-variable,
51 | .hljs-class .hljs-title,
52 | .hljs-type {
53 | color: #b58900;
54 | }
55 |
56 | /* Solarized Orange */
57 | .hljs-symbol,
58 | .hljs-bullet,
59 | .hljs-subst,
60 | .hljs-meta,
61 | .hljs-meta .hljs-keyword,
62 | .hljs-selector-attr,
63 | .hljs-selector-pseudo,
64 | .hljs-link {
65 | color: #cb4b16;
66 | }
67 |
68 | /* Solarized Red */
69 | .hljs-built_in,
70 | .hljs-deletion {
71 | color: #dc322f;
72 | }
73 |
74 | .hljs-formula {
75 | background: #eee8d5;
76 | }
77 |
78 | .hljs-emphasis {
79 | font-style: italic;
80 | }
81 |
82 | .hljs-strong {
83 | font-weight: bold;
84 | }
85 |
--------------------------------------------------------------------------------
/js/styles/sunburst.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Sunburst-like style (c) Vasily Polovnyov
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #000;
12 | color: #f8f8f8;
13 | }
14 |
15 | .hljs-comment,
16 | .hljs-quote {
17 | color: #aeaeae;
18 | font-style: italic;
19 | }
20 |
21 | .hljs-keyword,
22 | .hljs-selector-tag,
23 | .hljs-type {
24 | color: #e28964;
25 | }
26 |
27 | .hljs-string {
28 | color: #65b042;
29 | }
30 |
31 | .hljs-subst {
32 | color: #daefa3;
33 | }
34 |
35 | .hljs-regexp,
36 | .hljs-link {
37 | color: #e9c062;
38 | }
39 |
40 | .hljs-title,
41 | .hljs-section,
42 | .hljs-tag,
43 | .hljs-name {
44 | color: #89bdff;
45 | }
46 |
47 | .hljs-class .hljs-title,
48 | .hljs-doctag {
49 | text-decoration: underline;
50 | }
51 |
52 | .hljs-symbol,
53 | .hljs-bullet,
54 | .hljs-number {
55 | color: #3387cc;
56 | }
57 |
58 | .hljs-params,
59 | .hljs-variable,
60 | .hljs-template-variable {
61 | color: #3e87e3;
62 | }
63 |
64 | .hljs-attribute {
65 | color: #cda869;
66 | }
67 |
68 | .hljs-meta {
69 | color: #8996a8;
70 | }
71 |
72 | .hljs-formula {
73 | background-color: #0e2231;
74 | color: #f8f8f8;
75 | font-style: italic;
76 | }
77 |
78 | .hljs-addition {
79 | background-color: #253b22;
80 | color: #f8f8f8;
81 | }
82 |
83 | .hljs-deletion {
84 | background-color: #420e09;
85 | color: #f8f8f8;
86 | }
87 |
88 | .hljs-selector-class {
89 | color: #9b703f;
90 | }
91 |
92 | .hljs-selector-id {
93 | color: #8b98ab;
94 | }
95 |
96 | .hljs-emphasis {
97 | font-style: italic;
98 | }
99 |
100 | .hljs-strong {
101 | font-weight: bold;
102 | }
103 |
--------------------------------------------------------------------------------
/js/styles/tomorrow-night-blue.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Night Blue Theme */
2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
5 |
6 | /* Tomorrow Comment */
7 | .hljs-comment,
8 | .hljs-quote {
9 | color: #7285b7;
10 | }
11 |
12 | /* Tomorrow Red */
13 | .hljs-variable,
14 | .hljs-template-variable,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-selector-id,
18 | .hljs-selector-class,
19 | .hljs-regexp,
20 | .hljs-deletion {
21 | color: #ff9da4;
22 | }
23 |
24 | /* Tomorrow Orange */
25 | .hljs-number,
26 | .hljs-built_in,
27 | .hljs-builtin-name,
28 | .hljs-literal,
29 | .hljs-type,
30 | .hljs-params,
31 | .hljs-meta,
32 | .hljs-link {
33 | color: #ffc58f;
34 | }
35 |
36 | /* Tomorrow Yellow */
37 | .hljs-attribute {
38 | color: #ffeead;
39 | }
40 |
41 | /* Tomorrow Green */
42 | .hljs-string,
43 | .hljs-symbol,
44 | .hljs-bullet,
45 | .hljs-addition {
46 | color: #d1f1a9;
47 | }
48 |
49 | /* Tomorrow Blue */
50 | .hljs-title,
51 | .hljs-section {
52 | color: #bbdaff;
53 | }
54 |
55 | /* Tomorrow Purple */
56 | .hljs-keyword,
57 | .hljs-selector-tag {
58 | color: #ebbbff;
59 | }
60 |
61 | .hljs {
62 | display: block;
63 | overflow-x: auto;
64 | background: #002451;
65 | color: white;
66 | padding: 0.5em;
67 | }
68 |
69 | .hljs-emphasis {
70 | font-style: italic;
71 | }
72 |
73 | .hljs-strong {
74 | font-weight: bold;
75 | }
76 |
--------------------------------------------------------------------------------
/js/styles/tomorrow-night-bright.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Night Bright Theme */
2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
4 |
5 | /* Tomorrow Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #969896;
9 | }
10 |
11 | /* Tomorrow Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-tag,
15 | .hljs-name,
16 | .hljs-selector-id,
17 | .hljs-selector-class,
18 | .hljs-regexp,
19 | .hljs-deletion {
20 | color: #d54e53;
21 | }
22 |
23 | /* Tomorrow Orange */
24 | .hljs-number,
25 | .hljs-built_in,
26 | .hljs-builtin-name,
27 | .hljs-literal,
28 | .hljs-type,
29 | .hljs-params,
30 | .hljs-meta,
31 | .hljs-link {
32 | color: #e78c45;
33 | }
34 |
35 | /* Tomorrow Yellow */
36 | .hljs-attribute {
37 | color: #e7c547;
38 | }
39 |
40 | /* Tomorrow Green */
41 | .hljs-string,
42 | .hljs-symbol,
43 | .hljs-bullet,
44 | .hljs-addition {
45 | color: #b9ca4a;
46 | }
47 |
48 | /* Tomorrow Blue */
49 | .hljs-title,
50 | .hljs-section {
51 | color: #7aa6da;
52 | }
53 |
54 | /* Tomorrow Purple */
55 | .hljs-keyword,
56 | .hljs-selector-tag {
57 | color: #c397d8;
58 | }
59 |
60 | .hljs {
61 | display: block;
62 | overflow-x: auto;
63 | background: black;
64 | color: #eaeaea;
65 | padding: 0.5em;
66 | }
67 |
68 | .hljs-emphasis {
69 | font-style: italic;
70 | }
71 |
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 |
--------------------------------------------------------------------------------
/js/styles/tomorrow-night-eighties.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Night Eighties Theme */
2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
4 |
5 | /* Tomorrow Comment */
6 | .hljs-comment,
7 | .hljs-quote {
8 | color: #999999;
9 | }
10 |
11 | /* Tomorrow Red */
12 | .hljs-variable,
13 | .hljs-template-variable,
14 | .hljs-tag,
15 | .hljs-name,
16 | .hljs-selector-id,
17 | .hljs-selector-class,
18 | .hljs-regexp,
19 | .hljs-deletion {
20 | color: #f2777a;
21 | }
22 |
23 | /* Tomorrow Orange */
24 | .hljs-number,
25 | .hljs-built_in,
26 | .hljs-builtin-name,
27 | .hljs-literal,
28 | .hljs-type,
29 | .hljs-params,
30 | .hljs-meta,
31 | .hljs-link {
32 | color: #f99157;
33 | }
34 |
35 | /* Tomorrow Yellow */
36 | .hljs-attribute {
37 | color: #ffcc66;
38 | }
39 |
40 | /* Tomorrow Green */
41 | .hljs-string,
42 | .hljs-symbol,
43 | .hljs-bullet,
44 | .hljs-addition {
45 | color: #99cc99;
46 | }
47 |
48 | /* Tomorrow Blue */
49 | .hljs-title,
50 | .hljs-section {
51 | color: #6699cc;
52 | }
53 |
54 | /* Tomorrow Purple */
55 | .hljs-keyword,
56 | .hljs-selector-tag {
57 | color: #cc99cc;
58 | }
59 |
60 | .hljs {
61 | display: block;
62 | overflow-x: auto;
63 | background: #2d2d2d;
64 | color: #cccccc;
65 | padding: 0.5em;
66 | }
67 |
68 | .hljs-emphasis {
69 | font-style: italic;
70 | }
71 |
72 | .hljs-strong {
73 | font-weight: bold;
74 | }
75 |
--------------------------------------------------------------------------------
/js/styles/tomorrow-night.css:
--------------------------------------------------------------------------------
1 | /* Tomorrow Night Theme */
2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */
4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
5 |
6 | /* Tomorrow Comment */
7 | .hljs-comment,
8 | .hljs-quote {
9 | color: #969896;
10 | }
11 |
12 | /* Tomorrow Red */
13 | .hljs-variable,
14 | .hljs-template-variable,
15 | .hljs-tag,
16 | .hljs-name,
17 | .hljs-selector-id,
18 | .hljs-selector-class,
19 | .hljs-regexp,
20 | .hljs-deletion {
21 | color: #cc6666;
22 | }
23 |
24 | /* Tomorrow Orange */
25 | .hljs-number,
26 | .hljs-built_in,
27 | .hljs-builtin-name,
28 | .hljs-literal,
29 | .hljs-type,
30 | .hljs-params,
31 | .hljs-meta,
32 | .hljs-link {
33 | color: #de935f;
34 | }
35 |
36 | /* Tomorrow Yellow */
37 | .hljs-attribute {
38 | color: #f0c674;
39 | }
40 |
41 | /* Tomorrow Green */
42 | .hljs-string,
43 | .hljs-symbol,
44 | .hljs-bullet,
45 | .hljs-addition {
46 | color: #b5bd68;
47 | }
48 |
49 | /* Tomorrow Blue */
50 | .hljs-title,
51 | .hljs-section {
52 | color: #81a2be;
53 | }
54 |
55 | /* Tomorrow Purple */
56 | .hljs-keyword,
57 | .hljs-selector-tag {
58 | color: #b294bb;
59 | }
60 |
61 | .hljs {
62 | display: block;
63 | overflow-x: auto;
64 | background: #1d1f21;
65 | color: #c5c8c6;
66 | padding: 0.5em;
67 | }
68 |
69 | .hljs-emphasis {
70 | font-style: italic;
71 | }
72 |
73 | .hljs-strong {
74 | font-weight: bold;
75 | }
76 |
--------------------------------------------------------------------------------
/js/styles/tomorrow.css:
--------------------------------------------------------------------------------
1 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
2 |
3 | /* Tomorrow Comment */
4 | .hljs-comment,
5 | .hljs-quote {
6 | color: #8e908c;
7 | }
8 |
9 | /* Tomorrow Red */
10 | .hljs-variable,
11 | .hljs-template-variable,
12 | .hljs-tag,
13 | .hljs-name,
14 | .hljs-selector-id,
15 | .hljs-selector-class,
16 | .hljs-regexp,
17 | .hljs-deletion {
18 | color: #c82829;
19 | }
20 |
21 | /* Tomorrow Orange */
22 | .hljs-number,
23 | .hljs-built_in,
24 | .hljs-builtin-name,
25 | .hljs-literal,
26 | .hljs-type,
27 | .hljs-params,
28 | .hljs-meta,
29 | .hljs-link {
30 | color: #f5871f;
31 | }
32 |
33 | /* Tomorrow Yellow */
34 | .hljs-attribute {
35 | color: #eab700;
36 | }
37 |
38 | /* Tomorrow Green */
39 | .hljs-string,
40 | .hljs-symbol,
41 | .hljs-bullet,
42 | .hljs-addition {
43 | color: #718c00;
44 | }
45 |
46 | /* Tomorrow Blue */
47 | .hljs-title,
48 | .hljs-section {
49 | color: #4271ae;
50 | }
51 |
52 | /* Tomorrow Purple */
53 | .hljs-keyword,
54 | .hljs-selector-tag {
55 | color: #8959a8;
56 | }
57 |
58 | .hljs {
59 | display: block;
60 | overflow-x: auto;
61 | background: white;
62 | color: #4d4d4c;
63 | padding: 0.5em;
64 | }
65 |
66 | .hljs-emphasis {
67 | font-style: italic;
68 | }
69 |
70 | .hljs-strong {
71 | font-weight: bold;
72 | }
73 |
--------------------------------------------------------------------------------
/js/styles/vs.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Visual Studio-like style based on original C# coloring by Jason Diamond
4 |
5 | */
6 | .hljs {
7 | display: block;
8 | overflow-x: auto;
9 | padding: 0.5em;
10 | background: white;
11 | color: black;
12 | }
13 |
14 | .hljs-comment,
15 | .hljs-quote,
16 | .hljs-variable {
17 | color: #008000;
18 | }
19 |
20 | .hljs-keyword,
21 | .hljs-selector-tag,
22 | .hljs-built_in,
23 | .hljs-name,
24 | .hljs-tag {
25 | color: #00f;
26 | }
27 |
28 | .hljs-string,
29 | .hljs-title,
30 | .hljs-section,
31 | .hljs-attribute,
32 | .hljs-literal,
33 | .hljs-template-tag,
34 | .hljs-template-variable,
35 | .hljs-type,
36 | .hljs-addition {
37 | color: #a31515;
38 | }
39 |
40 | .hljs-deletion,
41 | .hljs-selector-attr,
42 | .hljs-selector-pseudo,
43 | .hljs-meta {
44 | color: #2b91af;
45 | }
46 |
47 | .hljs-doctag {
48 | color: #808080;
49 | }
50 |
51 | .hljs-attr {
52 | color: #f00;
53 | }
54 |
55 | .hljs-symbol,
56 | .hljs-bullet,
57 | .hljs-link {
58 | color: #00b0e8;
59 | }
60 |
61 |
62 | .hljs-emphasis {
63 | font-style: italic;
64 | }
65 |
66 | .hljs-strong {
67 | font-weight: bold;
68 | }
69 |
--------------------------------------------------------------------------------
/js/styles/vs2015.css:
--------------------------------------------------------------------------------
1 | /*
2 | * Visual Studio 2015 dark style
3 | * Author: Nicolas LLOBERA
4 | */
5 |
6 | .hljs {
7 | display: block;
8 | overflow-x: auto;
9 | padding: 0.5em;
10 | background: #1E1E1E;
11 | color: #DCDCDC;
12 | }
13 |
14 | .hljs-keyword,
15 | .hljs-literal,
16 | .hljs-symbol,
17 | .hljs-name {
18 | color: #569CD6;
19 | }
20 | .hljs-link {
21 | color: #569CD6;
22 | text-decoration: underline;
23 | }
24 |
25 | .hljs-built_in,
26 | .hljs-type {
27 | color: #4EC9B0;
28 | }
29 |
30 | .hljs-number,
31 | .hljs-class {
32 | color: #B8D7A3;
33 | }
34 |
35 | .hljs-string,
36 | .hljs-meta-string {
37 | color: #D69D85;
38 | }
39 |
40 | .hljs-regexp,
41 | .hljs-template-tag {
42 | color: #9A5334;
43 | }
44 |
45 | .hljs-subst,
46 | .hljs-function,
47 | .hljs-title,
48 | .hljs-params,
49 | .hljs-formula {
50 | color: #DCDCDC;
51 | }
52 |
53 | .hljs-comment,
54 | .hljs-quote {
55 | color: #57A64A;
56 | font-style: italic;
57 | }
58 |
59 | .hljs-doctag {
60 | color: #608B4E;
61 | }
62 |
63 | .hljs-meta,
64 | .hljs-meta-keyword,
65 | .hljs-tag {
66 | color: #9B9B9B;
67 | }
68 |
69 | .hljs-variable,
70 | .hljs-template-variable {
71 | color: #BD63C5;
72 | }
73 |
74 | .hljs-attr,
75 | .hljs-attribute,
76 | .hljs-builtin-name {
77 | color: #9CDCFE;
78 | }
79 |
80 | .hljs-section {
81 | color: gold;
82 | }
83 |
84 | .hljs-emphasis {
85 | font-style: italic;
86 | }
87 |
88 | .hljs-strong {
89 | font-weight: bold;
90 | }
91 |
92 | /*.hljs-code {
93 | font-family:'Monospace';
94 | }*/
95 |
96 | .hljs-bullet,
97 | .hljs-selector-tag,
98 | .hljs-selector-id,
99 | .hljs-selector-class,
100 | .hljs-selector-attr,
101 | .hljs-selector-pseudo {
102 | color: #D7BA7D;
103 | }
104 |
105 | .hljs-addition {
106 | background-color: #144212;
107 | display: inline-block;
108 | width: 100%;
109 | }
110 |
111 | .hljs-deletion {
112 | background-color: #600;
113 | display: inline-block;
114 | width: 100%;
115 | }
116 |
--------------------------------------------------------------------------------
/js/styles/xcode.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | XCode style (c) Angel Garcia
4 |
5 | */
6 |
7 | .hljs {
8 | display: block;
9 | overflow-x: auto;
10 | padding: 0.5em;
11 | background: #fff;
12 | color: black;
13 | }
14 |
15 | /* Gray DOCTYPE selectors like WebKit */
16 | .xml .hljs-meta {
17 | color: #c0c0c0;
18 | }
19 |
20 | .hljs-comment,
21 | .hljs-quote {
22 | color: #007400;
23 | }
24 |
25 | .hljs-tag,
26 | .hljs-attribute,
27 | .hljs-keyword,
28 | .hljs-selector-tag,
29 | .hljs-literal,
30 | .hljs-name {
31 | color: #aa0d91;
32 | }
33 |
34 | .hljs-variable,
35 | .hljs-template-variable {
36 | color: #3F6E74;
37 | }
38 |
39 | .hljs-code,
40 | .hljs-string,
41 | .hljs-meta-string {
42 | color: #c41a16;
43 | }
44 |
45 | .hljs-regexp,
46 | .hljs-link {
47 | color: #0E0EFF;
48 | }
49 |
50 | .hljs-title,
51 | .hljs-symbol,
52 | .hljs-bullet,
53 | .hljs-number {
54 | color: #1c00cf;
55 | }
56 |
57 | .hljs-section,
58 | .hljs-meta {
59 | color: #643820;
60 | }
61 |
62 |
63 | .hljs-class .hljs-title,
64 | .hljs-type,
65 | .hljs-built_in,
66 | .hljs-builtin-name,
67 | .hljs-params {
68 | color: #5c2699;
69 | }
70 |
71 | .hljs-attr {
72 | color: #836C28;
73 | }
74 |
75 | .hljs-subst {
76 | color: #000;
77 | }
78 |
79 | .hljs-formula {
80 | background-color: #eee;
81 | font-style: italic;
82 | }
83 |
84 | .hljs-addition {
85 | background-color: #baeeba;
86 | }
87 |
88 | .hljs-deletion {
89 | background-color: #ffc8bd;
90 | }
91 |
92 | .hljs-selector-id,
93 | .hljs-selector-class {
94 | color: #9b703f;
95 | }
96 |
97 | .hljs-doctag,
98 | .hljs-strong {
99 | font-weight: bold;
100 | }
101 |
102 | .hljs-emphasis {
103 | font-style: italic;
104 | }
105 |
--------------------------------------------------------------------------------
/js/styles/xt256.css:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | xt256.css
4 |
5 | Contact: initbar [at] protonmail [dot] ch
6 | : github.com/initbar
7 | */
8 |
9 | .hljs {
10 | display: block;
11 | overflow-x: auto;
12 | color: #eaeaea;
13 | background: #000;
14 | padding: 0.5;
15 | }
16 |
17 | .hljs-subst {
18 | color: #eaeaea;
19 | }
20 |
21 | .hljs-emphasis {
22 | font-style: italic;
23 | }
24 |
25 | .hljs-strong {
26 | font-weight: bold;
27 | }
28 |
29 | .hljs-builtin-name,
30 | .hljs-type {
31 | color: #eaeaea;
32 | }
33 |
34 | .hljs-params {
35 | color: #da0000;
36 | }
37 |
38 | .hljs-literal,
39 | .hljs-number,
40 | .hljs-name {
41 | color: #ff0000;
42 | font-weight: bolder;
43 | }
44 |
45 | .hljs-comment {
46 | color: #969896;
47 | }
48 |
49 | .hljs-selector-id,
50 | .hljs-quote {
51 | color: #00ffff;
52 | }
53 |
54 | .hljs-template-variable,
55 | .hljs-variable,
56 | .hljs-title {
57 | color: #00ffff;
58 | font-weight: bold;
59 | }
60 |
61 | .hljs-selector-class,
62 | .hljs-keyword,
63 | .hljs-symbol {
64 | color: #fff000;
65 | }
66 |
67 | .hljs-string,
68 | .hljs-bullet {
69 | color: #00ff00;
70 | }
71 |
72 | .hljs-tag,
73 | .hljs-section {
74 | color: #000fff;
75 | }
76 |
77 | .hljs-selector-tag {
78 | color: #000fff;
79 | font-weight: bold;
80 | }
81 |
82 | .hljs-attribute,
83 | .hljs-built_in,
84 | .hljs-regexp,
85 | .hljs-link {
86 | color: #ff00ff;
87 | }
88 |
89 | .hljs-meta {
90 | color: #fff;
91 | font-weight: bolder;
92 | }
93 |
--------------------------------------------------------------------------------
/js/styles/zenburn.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov
4 | based on dark.css by Ivan Sagalaev
5 |
6 | */
7 |
8 | .hljs {
9 | display: block;
10 | overflow-x: auto;
11 | padding: 0.5em;
12 | background: #3f3f3f;
13 | color: #dcdcdc;
14 | }
15 |
16 | .hljs-keyword,
17 | .hljs-selector-tag,
18 | .hljs-tag {
19 | color: #e3ceab;
20 | }
21 |
22 | .hljs-template-tag {
23 | color: #dcdcdc;
24 | }
25 |
26 | .hljs-number {
27 | color: #8cd0d3;
28 | }
29 |
30 | .hljs-variable,
31 | .hljs-template-variable,
32 | .hljs-attribute {
33 | color: #efdcbc;
34 | }
35 |
36 | .hljs-literal {
37 | color: #efefaf;
38 | }
39 |
40 | .hljs-subst {
41 | color: #8f8f8f;
42 | }
43 |
44 | .hljs-title,
45 | .hljs-name,
46 | .hljs-selector-id,
47 | .hljs-selector-class,
48 | .hljs-section,
49 | .hljs-type {
50 | color: #efef8f;
51 | }
52 |
53 | .hljs-symbol,
54 | .hljs-bullet,
55 | .hljs-link {
56 | color: #dca3a3;
57 | }
58 |
59 | .hljs-deletion,
60 | .hljs-string,
61 | .hljs-built_in,
62 | .hljs-builtin-name {
63 | color: #cc9393;
64 | }
65 |
66 | .hljs-addition,
67 | .hljs-comment,
68 | .hljs-quote,
69 | .hljs-meta {
70 | color: #7f9f7f;
71 | }
72 |
73 |
74 | .hljs-emphasis {
75 | font-style: italic;
76 | }
77 |
78 | .hljs-strong {
79 | font-weight: bold;
80 | }
81 |
--------------------------------------------------------------------------------
/lib/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "require": {
3 | "aws/aws-sdk-php": "^3.33",
4 | "bitverse/identicon": "^1.1"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/rtfm/ENCRYPTION.md:
--------------------------------------------------------------------------------
1 | # Encryption
2 |
3 | As of Jan. 2020 you can set up an encryption key in your config which will encrypt all images stored on [external storage](/rtfm/CONFIG.md#storage-controllers)
4 |
5 | The files on the PictShare server are not encrypted, only the ones on external storage providers, eg if you want to use S3 as storage.
6 |
7 | ## Dependencies
8 |
9 | To be able to use encryption you'll need the following extensions:
10 |
11 | - mb-string (`apt-get install php-mbstring`)
12 | - libsodium (`apt-get install php-libsodium`)
13 |
14 | Since only files on [storage controllers](/rtfm/CONFIG.md#storage-controllers) are encrypted, you'll need to configure at least one.
15 |
16 | ## Preparation
17 |
18 | First you'll need to generate a key and encode it in base64.
19 | The easiest way to get it would be to run this command:
20 |
21 | `php -r "echo base64_encode(sodium_crypto_secretstream_xchacha20poly1305_keygen());"`
22 |
23 | This will output something like `SSdoJvp10ZvOY5v+vAcprxQKjNX1AzD52cAnFwr6yXc=`
24 |
25 | Now put this output in your /inc/config.inc.php like this:
26 |
27 | `define('ENCRYPTION_KEY','SSdoJvp10ZvOY5v+vAcprxQKjNX1AzD52cAnFwr6yXc=');`
28 |
29 | **Warning: If you change or lose the ENCRYPTION_KEY, all encrypted data will be unrecoverably lost**
30 |
31 | # How it works
32 |
33 | If you have everything running you can upload a new image and it will get encrypted and uploaded to your storage container(s). This means you could even host on untrusted servers/buckets since nobody without the key will be able to decrypt it.
34 |
35 | If you have uploaded a few files and see them on your storage container (eg S3) you'll notice the file has the '.enc' extension.
36 |
37 | When you now wipe your PictShare instances local data folder and request the file again via the URL, the storage controller will pull the encrypted file, decrypt it and save it locally (unencrypted)
--------------------------------------------------------------------------------
/rtfm/INSTALL.md:
--------------------------------------------------------------------------------
1 | # Install guide
2 |
3 | PictShare is written to be run on a linux server with PHP 7 and nginx. We tried to support Windows for some time but ever since we started integrating ffmpeg for MP4 hosting we ditched Windows.
4 |
5 | It's highly recommended t hat you use [the official Docker container](https://github.com/HaschekSolutions/pictshare/pkgs/container/pictshare) so you don't have to do any manual setup. But if you know what you're doing, you can set it up yourself.
6 |
7 | - Make sure you have all PHP7 libraries installed (note on some systems the packages are not called php7-* but just php-* also on some systems php7-mbstring is called php7-mb): ```apt-get install php7-exif php7-gd php7-json php7-openssl php7-fileinfo php7-mbstring php7-mcrypt```
8 | - Run `composer install` from the `/lib` directory
9 | - If you are not using windows, make sure your os have the ```file``` command working: ```apt-get install file```
10 | - Unpack the [PictShare zip](https://github.com/hascheksolutions/pictshare/archive/master.zip)
11 | - Rename /inc/example.config.inc.php to /inc/config.inc.php
12 | - If you want to be able to use mp4 uploads you need to supply your own FFMPEG binary or use the installed one on your distro useing the config var ```FFMPEG_BINARY```. For example it should point to `/usr/bin/ffmpeg` if you installed ffmpeg through your package manager
13 | - Since default upload sizes will be 2M in PHP you should edit your php.ini and change ```upload_max_filesize``` and ```post_max_size``` to a larger value
14 | - (optional) You can and should use [nginx](https://www.nginx.com/) as your web server. Check [/docker/rootfs/nginx.conf] for an example on how the nginx config should look like
15 | - (optional) To secure your traffic I'd highly recommend getting an [SSL Cert](https://letsencrypt.org/) for your server if you don't already have one.
16 |
17 |
18 | ## Upgrading
19 | - On docker just `docker pull hascheksolutions/pictshare:2` and run the newer image
20 | - Manual upgrade:
21 | - Just re-download the [PictShare zip](https://github.com/hascheksolutions/pictshare/archive/master.zip) file and extract and overwrite existing pictshare files. Uploads and config won't be affected.
22 | - Check if your ```/inc/config.inc.php``` file has all settings required by the ```/inc/example.config.inc.php``` since new options might get added in new versions
23 |
24 |
25 | ```bash
26 | # to be run from the directory where your pictshare directory sits in
27 | git clone https://github.com/hascheksolutions/pictshare.git temp
28 | cp -r temp/* pictshare/.
29 | rm -rf temp
30 | ```
31 |
32 | ## Configuring PictShare
33 | [Documentation of config settings here](/rtfm/CONFIG.md)
34 |
35 | ## Nginx configuration
36 | This is a simple config file that should make PictShare work on nginx
37 |
38 |
39 | ```
40 | server {
41 | listen 80;
42 | server_name your.awesome.domain.name;
43 |
44 | client_max_body_size 50M; # Set the max file upload size. This needs to be equal or larger than the size you specified in your php.ini
45 |
46 | root /var/www/pictshare; # or where ever you put it
47 | index index.php;
48 |
49 | location / {
50 | try_files $uri $uri/ /index.php?url=$request_uri;
51 | }
52 |
53 | location ~ \.php {
54 | fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; #may be slightly different depending on your php version
55 | fastcgi_index index.php;
56 | include fastcgi_params;
57 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
58 | fastcgi_param PATH_INFO $fastcgi_script_name;
59 | }
60 |
61 | location ~ /(data|tmp|bin|content-controllers|inc|interfaces|storage-controllers|templates|tools) {
62 | deny all;
63 | return 404;
64 | }
65 |
66 | }
67 | ```
68 |
--------------------------------------------------------------------------------
/rtfm/MODIFIERS.md:
--------------------------------------------------------------------------------
1 | ## Images
2 |
3 | ### Resize
4 | ```
5 | /800x600/d8c01b45a6.png
6 | ```
7 |
8 | width x height
9 |
10 | ### Rotate
11 | ```
12 | /upside|left|right/d8c01b45a6.png
13 | ```
14 |
15 | * `upside`: 180°
16 | * `left`: 90°
17 | * `right`: -90°
18 |
19 | ### WebP conversion
20 | ```
21 | /webp/d8c01b45a6.jpeg
22 | ```
23 |
24 | ### Gif to mp4
25 | ```
26 | /mp4/d8c01b45a6.gif
27 | ```
28 |
29 | ### Filters
30 | ```
31 | /filter/d8c01b45a6.png
32 | ```
33 |
34 | [See available filters](IMAGEFILTERS.md)
35 |
--------------------------------------------------------------------------------
/rtfm/PASTEBINIT.md:
--------------------------------------------------------------------------------
1 | # How to use Pictshare text upload with pastebinit
2 |
3 | 1. Install [pastebinit](https://help.ubuntu.com/community/Pastebinit)
4 | 2. Create a file in /usr/share/pastebinit.d/ called "pictshare.net.conf"
5 | 3. Paste the following lines in this new file:
6 |
7 | ```
8 | [pastebin]
9 | basename = pictshare.net
10 | regexp = https://pictshare.net
11 | https = true
12 |
13 | [format]
14 | content = api_paste_code
15 | page = page
16 | regexp = regexp
17 |
18 | [defaults]
19 | page = /api/pastebin.php
20 | regexp = (.*)
21 | ```
22 |
23 | Now you should be able to use pastebinit like this: ```echo "hello world" | pastebinit -b pictshare.net```
24 |
25 | If you want to use pictshare as your default you can either make an alias or edit ```/usr/bin/pastebinit``` and set ```defaultPB = "pictshare.net"```
--------------------------------------------------------------------------------
/rtfm/SCALING.md:
--------------------------------------------------------------------------------
1 | # How to scale PictShare
2 |
3 | If your library is huge then you might want to think about scaling your instances. Pictshare (v2+) was rebuilt with scaling in mind but instead of built-in scaling features we rely on OS level solutions.
4 |
5 | # The "ALT_FOLDER" setting
6 | You can set the config var ```ALT_FOLDER``` to point to a directory on the same server where pictshare will look for content and put new uploads.
7 |
8 | This allows you to have a shared or even a mounted ftp/nfs folder that will act as the "database" of images across multiple PictShare instances.
9 |
10 | The main site https://pictshare.net uses this technique to scale across many servers in multiple countries.
11 |
12 | Using this method you can have multiple servers for the same domain (with a reverse proxy)
13 |
14 | # Fast, read only instances
15 | PictShare needs strong hardware for video conversion but using smart Nginx configurations you can host an instance on a weak but fast server and relay all uploads to another server with stronger hardware running PictShare
16 |
17 | **Example Nginx config for a small VPS that relay all uploads to a faster but private server**
18 |
19 | ```
20 | server {
21 | listen 80;
22 | server_name your.awesome.domain.name;
23 |
24 | client_max_body_size 50M; # Set the max file upload size. This needs to be equal or larger than the size you specified in your php.ini
25 |
26 | root /var/www/pictshare; # or where ever you put it
27 | index index.php;
28 |
29 | location / {
30 | try_files $uri $uri/ /index.php?url=$request_uri;
31 | }
32 |
33 | # Magic begins here. Since all uploads have to be made via some script in the /api/ folder we can just redirect
34 | # these requests to another server that doesn't need to be public facing
35 | location ^~ /api/ {
36 | proxy_pass http://10.12.0.3/; #set to the hostname or ip or url of the powerful server
37 | include /etc/nginx/proxy_params;
38 | }
39 |
40 | location ~ \.php {
41 | fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; #may be slightly different depending on your php version
42 | fastcgi_index index.php;
43 | include fastcgi_params;
44 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
45 | fastcgi_param PATH_INFO $fastcgi_script_name;
46 | }
47 |
48 | location ~ /(data|tmp|bin|content-controllers|inc|interfaces|storage-controllers|templates|tools) {
49 | deny all;
50 | return 404;
51 | }
52 |
53 | }
54 | ```
55 |
--------------------------------------------------------------------------------
/storage-controllers/altfolder.controller.php:
--------------------------------------------------------------------------------
1 | isDir())
23 | continue;
24 | $files[] = $file->getFilename();
25 | }
26 |
27 | return $files;
28 | }
29 |
30 | function pullFile($hash,$location)
31 | {
32 | $altname=ALT_FOLDER.DS.$hash;
33 | if(file_exists($altname))
34 | {
35 | copy($altname,$location);
36 | }
37 | }
38 |
39 | function pushFile($source,$hash)
40 | {
41 | $altname=ALT_FOLDER.DS.$hash;
42 | if(!$this->hashExists($hash))
43 | {
44 | copy($source,$altname);
45 | return true;
46 | }
47 |
48 | return false;
49 | }
50 |
51 | function deleteFile($hash)
52 | {
53 | $altname=ALT_FOLDER.DS.$hash;
54 | if(file_exists($altname))
55 | {
56 | unlink($altname);
57 | }
58 | }
59 | }
--------------------------------------------------------------------------------
/storage-controllers/s3.controller.php:
--------------------------------------------------------------------------------
1 | s3 = new Aws\S3\S3Client([
18 | 'version' => 'latest',
19 | 'region' => (defined('S3_REGION') && S3_REGION ?S3_REGION:'us-east-1'),
20 | 'endpoint' => S3_ENDPOINT,
21 | 'use_path_style_endpoint' => true,
22 | 'credentials' => [
23 | 'key' => S3_ACCESS_KEY,
24 | 'secret' => S3_SECRET_KEY,
25 | ],
26 | ]);
27 | }
28 |
29 | function isEnabled()
30 | {
31 | return (defined('S3_BUCKET') && S3_BUCKET);
32 | }
33 |
34 | function hashExists($hash)
35 | {
36 | if(!$this->s3)$this->connect();
37 |
38 | return $this->s3->doesObjectExist(S3_BUCKET,$hash);
39 | }
40 |
41 | function getItems($dev=false)
42 | {
43 | if(!$this->s3)$this->connect();
44 |
45 | $KeyCount = 9999;
46 | $keys = 100; //the amount of keys we'll receive per request. 1000 max but that times out sometimes
47 | $lastkey = false;
48 | $count = 0;
49 | $items = array();
50 | while($KeyCount>=$keys)
51 | {
52 | $objects = $this->s3->listObjectsV2([
53 | 'Bucket' => S3_BUCKET,
54 | 'MaxKeys'=> $keys,
55 | 'StartAfter'=>($lastkey?$lastkey:'')
56 | ]);
57 |
58 | ++$count;
59 | foreach ($objects['Contents'] as $object){
60 | $lastkey = $object['Key'];
61 | $items[] = $lastkey;
62 | }
63 |
64 | if($dev===true) echo " Got ".($count*$keys)." files \r";
65 |
66 | $KeyCount = $objects['KeyCount'];
67 | }
68 |
69 | return $items;
70 | }
71 |
72 | function pullFile($hash,$location)
73 | {
74 | if(!$this->s3)$this->connect();
75 |
76 | if(!$this->hashExists($hash)) return false;
77 |
78 | $this->s3->getObject([
79 | 'Bucket' => S3_BUCKET,
80 | 'Key' => $hash,
81 | 'SaveAs' => $location
82 | ]);
83 | return true;
84 | }
85 |
86 | function pushFile($source,$hash)
87 | {
88 | if(!$this->s3)$this->connect();
89 |
90 | $this->s3->putObject([
91 | 'Bucket' => S3_BUCKET,
92 | 'Key' => $hash,
93 | 'SourceFile' => $source
94 | ]);
95 |
96 | return true;
97 | }
98 |
99 | function deleteFile($hash)
100 | {
101 | if(!$this->s3)$this->connect();
102 |
103 | $this->s3->deleteObject([
104 | 'Bucket' => S3_BUCKET,
105 | 'Key' => $hash
106 | ]);
107 | }
108 | }
109 |
--------------------------------------------------------------------------------
/templates/text.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |

38 |
39 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/tmp/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
--------------------------------------------------------------------------------
/tools/cron.php:
--------------------------------------------------------------------------------
1 | SUCCESS. Removing from queue':'FAILED. Will be re-added to queue')."\n";
40 | if(!$success)
41 | $newqueue[]=$hash;
42 | }
43 | }
44 |
45 | file_put_contents($queuefile,implode("\n",$newqueue));
46 | }
--------------------------------------------------------------------------------
/tools/ffmpeg_worker.php:
--------------------------------------------------------------------------------
1 | Won't render videos as OGG
12 | * nowebm => Won't render videos as webm
13 | * noskip => Won't skip existing videos (re-renders them)
14 | */
15 |
16 | if(php_sapi_name() !== 'cli') exit('This script can only be called via CLI');
17 | error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
18 | define('DS', DIRECTORY_SEPARATOR);
19 | define('ROOT', dirname(__FILE__).DS.'..');
20 | include_once(ROOT.DS.'inc/config.inc.php');
21 | include_once(ROOT.DS.'inc/core.php');
22 |
23 | $pm = new PictshareModel();
24 |
25 | $dir = getDataDir().DS;
26 | $dh = opendir($dir);
27 | $localfiles = array();
28 |
29 | if(in_array('noskip',$argv))
30 | {
31 | echo "Won't skip existing files\n\n";
32 | $allowskipping = false;
33 | }
34 | else
35 | $allowskipping = true;
36 |
37 | echo "[i] Finding local mp4 files ..";
38 | while (false !== ($filename = readdir($dh))) {
39 | $img = $dir.$filename.DS.$filename;
40 | if(!file_exists($img)) continue;
41 | $type = strtolower(pathinfo($img, PATHINFO_EXTENSION));
42 | $type = $pm->isTypeAllowed($type);
43 | if($type=='mp4')
44 | $localfiles[] = $filename;
45 | }
46 |
47 | if(count($localfiles)==0) exit(' No MP4 files found'."\n");
48 |
49 | echo " done. Got ".count($localfiles)." files\n";
50 |
51 | echo "[i] Starting to convert\n";
52 | foreach($localfiles as $hash)
53 | {
54 | $img = $dir.$hash.DS.$hash;
55 |
56 | if(!in_array('noogg',$argv))
57 | {
58 | $tmp = ROOT.DS.'tmp'.DS.$hash.'.ogg';
59 | $ogg = $dir.$hash.DS.'ogg_1.'.$hash;
60 | if(file_exists($ogg) && $allowskipping==true)
61 | echo "Skipping OGG of $hash\n";
62 | else
63 | {
64 | echo " [OGG] User wants OGG. Will do.. ";
65 | $cmd = FFMPEG_BINARY." -y -i $img -loglevel panic -vcodec libtheora -an $tmp && cp $tmp $ogg";
66 | system($cmd);
67 | echo "done\n";
68 | }
69 | }
70 |
71 | if(!in_array('nowebm',$argv))
72 | {
73 | $tmp = ROOT.DS.'tmp'.DS.$hash.'.webm';
74 | $webm = $dir.$hash.DS.'webm_1.'.$hash;
75 | if(file_exists($webm) && $allowskipping==true)
76 | echo "Skipping WEBM of $hash\n";
77 | else
78 | {
79 | echo " [WEBM] User wants WEBM. Will do.. ";
80 | $cmd = FFMPEG_BINARY." -y -i $img -loglevel panic -c:v libvpx -crf 10 -b:v 1M $tmp && cp $tmp $webm";
81 | system($cmd);
82 | echo "done\n";
83 | }
84 | }
85 |
86 |
87 | }
88 |
89 |
90 | function renderSize($bytes, $precision = 2) {
91 | $units = array('B', 'KB', 'MB', 'GB', 'TB');
92 |
93 | $bytes = max($bytes, 0);
94 | $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
95 | $pow = min($pow, count($units) - 1);
96 |
97 | // Uncomment one of the following alternatives
98 | $bytes /= pow(1024, $pow);
99 | // $bytes /= (1 << (10 * $pow));
100 |
101 | return round($bytes, $precision) . ' ' . $units[$pow];
102 | }
--------------------------------------------------------------------------------