tools: Add svglib to view svg files.
This commit is contained in:
parent
aa3c497124
commit
a2bea77cd2
3 changed files with 35 additions and 17 deletions
|
|
@ -23,7 +23,7 @@ then to run:
|
||||||
|
|
||||||
### Tools
|
### Tools
|
||||||
|
|
||||||
Extensions(93) | Tools(54)
|
Extensions(96) | Tools(57)
|
||||||
----------:| -----
|
----------:| -----
|
||||||
.* | [contents](http://pygments.org/) • metadata • [git_blame](https://git-scm.com/docs/git-blame) • [git_log](https://git-scm.com/docs/git-log)
|
.* | [contents](http://pygments.org/) • metadata • [git_blame](https://git-scm.com/docs/git-blame) • [git_log](https://git-scm.com/docs/git-log)
|
||||||
.py | [python_syntax](https://en.wikipedia.org/wiki/Python_syntax_and_semantics) • [python_unittests](https://docs.python.org/3/library/unittest.html) • [pydoc](https://docs.python.org/3/library/pydoc.html) • [mypy](http://mypy-lang.org/) • [python_coverage](https://coverage.readthedocs.io/) • [pycodestyle](http://pycodestyle.pycqa.org/en/latest/) • [pydocstyle](http://www.pydocstyle.org/en/2.1.1/usage.html) • [pyflakes](https://pypi.org/project/pyflakes/) • [pylint](https://www.pylint.org/) • [python_gut](https://github.com/ahamilton/eris/blob/master/gut.py) • [python_modulefinder](https://docs.python.org/3/library/modulefinder.html) • [dis](https://docs.python.org/3/library/dis.html) • [python_mccabe](https://pypi.org/project/mccabe/) • [bandit](https://pypi.org/project/bandit/)
|
.py | [python_syntax](https://en.wikipedia.org/wiki/Python_syntax_and_semantics) • [python_unittests](https://docs.python.org/3/library/unittest.html) • [pydoc](https://docs.python.org/3/library/pydoc.html) • [mypy](http://mypy-lang.org/) • [python_coverage](https://coverage.readthedocs.io/) • [pycodestyle](http://pycodestyle.pycqa.org/en/latest/) • [pydocstyle](http://www.pydocstyle.org/en/2.1.1/usage.html) • [pyflakes](https://pypi.org/project/pyflakes/) • [pylint](https://www.pylint.org/) • [python_gut](https://github.com/ahamilton/eris/blob/master/gut.py) • [python_modulefinder](https://docs.python.org/3/library/modulefinder.html) • [dis](https://docs.python.org/3/library/dis.html) • [python_mccabe](https://pypi.org/project/mccabe/) • [bandit](https://pypi.org/project/bandit/)
|
||||||
|
|
@ -35,8 +35,9 @@ Extensions(93) | Tools(54)
|
||||||
.lua | [lua_syntax](http://www.lua.org) • [lua_check](https://github.com/mpeterv/luacheck)
|
.lua | [lua_syntax](http://www.lua.org) • [lua_check](https://github.com/mpeterv/luacheck)
|
||||||
.js | [js_syntax](http://nodejs.org/)
|
.js | [js_syntax](http://nodejs.org/)
|
||||||
.php | [php7_syntax](https://en.wikipedia.org/wiki/PHP)
|
.php | [php7_syntax](https://en.wikipedia.org/wiki/PHP)
|
||||||
.go | [go_vet](https://golang.org) • [golint](https://github.com/golang/lint) • [godoc](http://golang.org/x/tools)
|
.go | [go_vet](https://github.com/golang/go) • [golint](https://github.com/golang/lint) • [godoc](https://github.com/golang/go)
|
||||||
.bash .sh .dash .ksh | [shellcheck](https://www.shellcheck.net/)
|
.bash .sh .dash .ksh | [shellcheck](https://www.shellcheck.net/)
|
||||||
|
.wasm | [wasm-validate](https://github.com/WebAssembly/wabt) • [wasm-objdump](https://github.com/WebAssembly/wabt)
|
||||||
.pdf | [pdf2txt](https://github.com/pdfminer/pdfminer.six)
|
.pdf | [pdf2txt](https://github.com/pdfminer/pdfminer.six)
|
||||||
.html .htm | [html_syntax](http://www.html-tidy.org/) • [html2text](http://www.mbayer.de/html2text/) • [pandoc](https://pandoc.org/)
|
.html .htm | [html_syntax](http://www.html-tidy.org/) • [html2text](http://www.mbayer.de/html2text/) • [pandoc](https://pandoc.org/)
|
||||||
.yaml .yml | [yamllint](https://github.com/adrienverge/yamllint)
|
.yaml .yml | [yamllint](https://github.com/adrienverge/yamllint)
|
||||||
|
|
@ -46,12 +47,13 @@ Extensions(93) | Tools(54)
|
||||||
.tar.bz2 | [tar_bz2](http://www.gnu.org/software/tar/manual/tar.html)
|
.tar.bz2 | [tar_bz2](http://www.gnu.org/software/tar/manual/tar.html)
|
||||||
.rar | [unrar](http://www.rarlabs.com/)
|
.rar | [unrar](http://www.rarlabs.com/)
|
||||||
.7z | [7z](http://p7zip.sourceforge.net/)
|
.7z | [7z](http://p7zip.sourceforge.net/)
|
||||||
.xz | [unxz](http://tukaani.org/xz/)
|
.xz | [unxz](https://tukaani.org/xz/)
|
||||||
.a | [ar](https://en.wikipedia.org/wiki/Ar_(Unix)) • [nm](https://linux.die.net/man/1/nm)
|
.a | [ar](https://en.wikipedia.org/wiki/Ar_(Unix)) • [nm](https://linux.die.net/man/1/nm)
|
||||||
.o | [objdump_headers](https://en.wikipedia.org/wiki/Objdump) • [objdump_disassemble](https://en.wikipedia.org/wiki/Objdump) • [readelf](https://en.wikipedia.org/wiki/Objdump)
|
.o | [objdump_headers](https://en.wikipedia.org/wiki/Objdump) • [objdump_disassemble](https://en.wikipedia.org/wiki/Objdump) • [readelf](https://en.wikipedia.org/wiki/Objdump)
|
||||||
.so | [nm](https://linux.die.net/man/1/nm)
|
.so | [nm](https://linux.die.net/man/1/nm)
|
||||||
.deb | [dpkg_contents](https://wiki.debian.org/Teams/Dpkg) • [dpkg_info](https://wiki.debian.org/Teams/Dpkg)
|
.deb | [dpkg_contents](https://wiki.debian.org/Teams/Dpkg) • [dpkg_info](https://wiki.debian.org/Teams/Dpkg)
|
||||||
.rpm | [rpm](http://rpm.org/)
|
.rpm | [rpm](http://rpm.org/)
|
||||||
.png .jpg .gif .bmp .tif .tiff .tga | [mediainfo](https://mediaarea.net/MediaInfo) • [pil](http://python-pillow.github.io/)
|
.png .jpg .gif .bmp .tif .tiff .tga | [mediainfo](https://mediaarea.net/MediaInfo) • [pil](http://python-pillow.github.io/)
|
||||||
|
.svg .svgz | [svglib](https://github.com/deeplook/svglib)
|
||||||
.mkv .mka .mks .ogg .ogm .avi .wav .mpeg .mpg .vob .mp4 .mpgv .mpv .m1v .m2v .mp2 .mp3 .asf .wma .wmv .qt .mov .rm .rmvb .ra .ifo .ac3 .dts .aac .flac .aiff .aifc .au .iff .flv .srt .ssa .ass .sami | [mediainfo](https://mediaarea.net/MediaInfo)
|
.mkv .mka .mks .ogg .ogm .avi .wav .mpeg .mpg .vob .mp4 .mpgv .mpv .m1v .m2v .mp2 .mp3 .asf .wma .wmv .qt .mov .rm .rmvb .ra .ifo .ac3 .dts .aac .flac .aiff .aifc .au .iff .flv .srt .ssa .ass .sami | [mediainfo](https://mediaarea.net/MediaInfo)
|
||||||
.iso | [isoinfo](https://manpages.debian.org/jessie/genisoimage/isoinfo.1.en.html)
|
.iso | [isoinfo](https://manpages.debian.org/jessie/genisoimage/isoinfo.1.en.html)
|
||||||
|
|
|
||||||
|
|
@ -434,6 +434,22 @@ def _resize_image(image, new_width):
|
||||||
PIL.Image.ANTIALIAS)
|
PIL.Image.ANTIALIAS)
|
||||||
|
|
||||||
|
|
||||||
|
def _image_to_text(image):
|
||||||
|
text = "▀" * image.width
|
||||||
|
data = list(image.getdata())
|
||||||
|
width = image.width
|
||||||
|
rows = [data[row_index*width:(row_index+1)*width]
|
||||||
|
for row_index in range(image.height)]
|
||||||
|
if image.height % 2 == 1:
|
||||||
|
rows.append([None] * image.width)
|
||||||
|
return fill3.Fixed([
|
||||||
|
termstr.TermStr(text, tuple(termstr.CharStyle(
|
||||||
|
fg_color=top_pixel, bg_color=bottom_pixel)
|
||||||
|
for top_pixel, bottom_pixel in zip(rows[index],
|
||||||
|
rows[index+1])))
|
||||||
|
for index in range(0, image.height, 2)])
|
||||||
|
|
||||||
|
|
||||||
@deps(deps={"pip/pillow"}, url="python3-pil")
|
@deps(deps={"pip/pillow"}, url="python3-pil")
|
||||||
def pil(path):
|
def pil(path):
|
||||||
import PIL.Image
|
import PIL.Image
|
||||||
|
|
@ -441,20 +457,16 @@ def pil(path):
|
||||||
with PIL.Image.open(image_file).convert("RGB") as image:
|
with PIL.Image.open(image_file).convert("RGB") as image:
|
||||||
if image.width > MAX_IMAGE_SIZE:
|
if image.width > MAX_IMAGE_SIZE:
|
||||||
image = _resize_image(image, MAX_IMAGE_SIZE)
|
image = _resize_image(image, MAX_IMAGE_SIZE)
|
||||||
text = "▀" * image.width
|
return Status.normal, _image_to_text(image)
|
||||||
data = list(image.getdata())
|
|
||||||
width = image.width
|
|
||||||
rows = [data[row_index*width:(row_index+1)*width]
|
@deps(deps={"pip/svglib"}, url="https://github.com/deeplook/svglib")
|
||||||
for row_index in range(image.height)]
|
def svglib(path):
|
||||||
if image.height % 2 == 1:
|
import svglib.svglib
|
||||||
rows.append([None] * image.width)
|
import reportlab.graphics.renderPM
|
||||||
result = fill3.Fixed([
|
drawing = svglib.svglib.svg2rlg(path)
|
||||||
termstr.TermStr(text, tuple(termstr.CharStyle(
|
image = reportlab.graphics.renderPM.drawToPIL(drawing)
|
||||||
fg_color=top_pixel, bg_color=bottom_pixel)
|
return Status.normal, _image_to_text(image)
|
||||||
for top_pixel, bottom_pixel in zip(rows[index],
|
|
||||||
rows[index+1])))
|
|
||||||
for index in range(0, image.height, 2)])
|
|
||||||
return Status.normal, result
|
|
||||||
|
|
||||||
|
|
||||||
@deps(deps={"go/github.com/golang/go/src/cmd/godoc" },
|
@deps(deps={"go/github.com/golang/go/src/cmd/godoc" },
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ tools_for_extensions = [
|
||||||
[["deb"], ["dpkg_contents", "dpkg_info"]],
|
[["deb"], ["dpkg_contents", "dpkg_info"]],
|
||||||
[["rpm"], ["rpm"]],
|
[["rpm"], ["rpm"]],
|
||||||
[["png", "jpg", "gif", "bmp", "tif", "tiff", "tga"], ["mediainfo", "pil"]],
|
[["png", "jpg", "gif", "bmp", "tif", "tiff", "tga"], ["mediainfo", "pil"]],
|
||||||
|
[["svg", "svgz"], ["svglib"]],
|
||||||
[["mkv", "mka", "mks", "ogg", "ogm", "avi", "wav", "mpeg", "mpg", "vob",
|
[["mkv", "mka", "mks", "ogg", "ogm", "avi", "wav", "mpeg", "mpg", "vob",
|
||||||
"mp4", "mpgv", "mpv", "m1v", "m2v", "mp2", "mp3", "asf", "wma", "wmv",
|
"mp4", "mpgv", "mpv", "m1v", "m2v", "mp2", "mp3", "asf", "wma", "wmv",
|
||||||
"qt", "mov", "rm", "rmvb", "ra", "ifo", "ac3", "dts", "aac", "flac",
|
"qt", "mov", "rm", "rmvb", "ra", "ifo", "ac3", "dts", "aac", "flac",
|
||||||
|
|
@ -227,6 +228,7 @@ tools_for_extensions = [
|
||||||
|
|
||||||
[lua_check]
|
[lua_check]
|
||||||
dependencies = ["luarocks/luacheck"]
|
dependencies = ["luarocks/luacheck"]
|
||||||
|
url = "https://github.com/mpeterv/luacheck"
|
||||||
command = "luacheck"
|
command = "luacheck"
|
||||||
|
|
||||||
[go_vet]
|
[go_vet]
|
||||||
|
|
@ -241,10 +243,12 @@ tools_for_extensions = [
|
||||||
|
|
||||||
[wasm-validate]
|
[wasm-validate]
|
||||||
dependencies = ["git/github.com/WebAssembly/wabt"]
|
dependencies = ["git/github.com/WebAssembly/wabt"]
|
||||||
|
url = "https://github.com/WebAssembly/wabt"
|
||||||
command = "wasm-validate"
|
command = "wasm-validate"
|
||||||
|
|
||||||
[wasm-objdump]
|
[wasm-objdump]
|
||||||
dependencies = ["git/github.com/WebAssembly/wabt"]
|
dependencies = ["git/github.com/WebAssembly/wabt"]
|
||||||
|
url = "https://github.com/WebAssembly/wabt"
|
||||||
command = "wasm-objdump --disassemble"
|
command = "wasm-objdump --disassemble"
|
||||||
success_status = "normal"
|
success_status = "normal"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue