Skip to content

Commit

Permalink
optimize for size by really generating the table
Browse files Browse the repository at this point in the history
  • Loading branch information
tardyp committed Aug 19, 2016
1 parent 1883ca9 commit 470a934
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 46 deletions.
2 changes: 1 addition & 1 deletion www/base/src/app/builders/log/logviewer/logviewer.tpl.jade
Expand Up @@ -7,7 +7,7 @@
i.fa(ng-class="loadAll && isLoading ? 'fa-spin fa-spinner': 'fa-search'")
pre.row.log(ng-show="log.type!='h'", scroll-viewport)
span(ng-if="log.type=='s' || log.type=='t'")
div(scroll="line in lines", scroll-position="log.num_lines", load-all="loadAll", is-loading="isLoading", total-size="log.num_lines", style="height:20px")
div(scroll="line in lines", scroll-position="log.num_lines", load-all="loadAll", is-loading="isLoading", total-size="log.num_lines", style="height:18px")
span.linenumber {{::$index}}
span.no-wrap(class="{{::line.class}}") {{::line.content}}
div.panel(ng-if="log.type=='h'", ng-class="log.name=='err.html' && 'panel-danger' || 'panel-default'")
Expand Down
60 changes: 17 additions & 43 deletions www/base/src/app/common/services/ansicodes/ansicodes.service.coffee
Expand Up @@ -93,51 +93,25 @@ class ansicodesService extends Factory('common')

generateStyle: ->
ret = ""
# first there are the standard 16 colors
colors = [
# hardcoded color data from http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
'000000','800000','008000','808000','000080','800080','008080','c0c0c0',
'808080','ff0000','00ff00','ffff00','0000ff','ff00ff','00ffff','ffffff',
'000000','00005f','000087','0000af','0000d7','0000ff',
'005f00','005f5f','005f87','005faf','005fd7','005fff',
'008700','00875f','008787','0087af','0087d7','0087ff',
'00af00','00af5f','00af87','00afaf','00afd7','00afff',
'00d700','00d75f','00d787','00d7af','00d7d7','00d7ff',
'00ff00','00ff5f','00ff87','00ffaf','00ffd7','00ffff',
'5f0000','5f005f','5f0087','5f00af','5f00d7','5f00ff',
'5f5f00','5f5f5f','5f5f87','5f5faf','5f5fd7','5f5fff',
'5f8700','5f875f','5f8787','5f87af','5f87d7','5f87ff',
'5faf00','5faf5f','5faf87','5fafaf','5fafd7','5fafff',
'5fd700','5fd75f','5fd787','5fd7af','5fd7d7','5fd7ff',
'5fff00','5fff5f','5fff87','5fffaf','5fffd7','5fffff',
'870000','87005f','870087','8700af','8700d7','8700ff',
'875f00','875f5f','875f87','875faf','875fd7','875fff',
'878700','87875f','878787','8787af','8787d7','8787ff',
'87af00','87af5f','87af87','87afaf','87afd7','87afff',
'87d700','87d75f','87d787','87d7af','87d7d7','87d7ff',
'87ff00','87ff5f','87ff87','87ffaf','87ffd7','87ffff',
'af0000','af005f','af0087','af00af','af00d7','af00ff',
'af5f00','af5f5f','af5f87','af5faf','af5fd7','af5fff',
'af8700','af875f','af8787','af87af','af87d7','af87ff',
'afaf00','afaf5f','afaf87','afafaf','afafd7','afafff',
'afd700','afd75f','afd787','afd7af','afd7d7','afd7ff',
'afff00','afff5f','afff87','afffaf','afffd7','afffff',
'd70000','d7005f','d70087','d700af','d700d7','d700ff',
'd75f00','d75f5f','d75f87','d75faf','d75fd7','d75fff',
'd78700','d7875f','d78787','d787af','d787d7','d787ff',
'd7af00','d7af5f','d7af87','d7afaf','d7afd7','d7afff',
'd7d700','d7d75f','d7d787','d7d7af','d7d7d7','d7d7ff',
'd7ff00','d7ff5f','d7ff87','d7ffaf','d7ffd7','d7ffff',
'ff0000','ff005f','ff0087','ff00af','ff00d7','ff00ff',
'ff5f00','ff5f5f','ff5f87','ff5faf','ff5fd7','ff5fff',
'ff8700','ff875f','ff8787','ff87af','ff87d7','ff87ff',
'ffaf00','ffaf5f','ffaf87','ffafaf','ffafd7','ffafff',
'ffd700','ffd75f','ffd787','ffd7af','ffd7d7','ffd7ff',
'ffff00','ffff5f','ffff87','ffffaf','ffffd7','ffffff',
'080808','121212','1c1c1c','262626','303030','3a3a3a',
'444444','4e4e4e','585858','606060','666666','767676',
'808080','8a8a8a','949494','9e9e9e','a8a8a8','b2b2b2',
'bcbcbc','c6c6c6','d0d0d0','dadada','e4e4e4','eeeeee'
'000','800','080','880','008','808','088','ccc',
'888','f00','0f0','ff0','00f','f0f','0ff','fff'
]
# 6x6x6 color cube encoded in 3 digits hex form
# note the non-linearity is based on this table
# http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html
clr = ['0', '6', '9', 'a', 'd', 'f']
for red in [0..5]
for green in [0..5]
for blue in [0..5]
colors.push(clr[red] + clr[green] + clr[blue])
# greyscale ramp encoded in 6 digits hex form
for i in [1..24]
c = Math.floor(i*256/26).toString(16)
if c.length == 1
c = "0" + c
colors.push(c + c + c)
for color, i in colors
ret += "pre.log .ansifg-#{i} { color: ##{color}; }\n"
ret += "pre.log .ansibg-#{i} { background-color: ##{color}; }\n"
Expand Down
Expand Up @@ -71,8 +71,9 @@ describe 'ansicode service', ->

it 'should provide correct color cube generator', ->
ret = ansicodesService.generateStyle()
expect(ret).toContain('pre.log .ansibg-241 { background-color: #606060; }')
expect(ret).toContain('pre.log .ansifg-209 { color: #ff875f; }')
expect(ret).toContain('pre.log .ansibg-232 { background-color: #090909; }')
expect(ret).toContain('pre.log .ansibg-241 { background-color: #626262; }')
expect(ret).toContain('pre.log .ansifg-209 { color: #f96; }')


it 'should inject generated style only once', ->
Expand Down

0 comments on commit 470a934

Please sign in to comment.