更好的红宝石终端着色库
有很多着色库:彩色,term-ansicolor。 但是有什么能做到这一点:更好的红宝石终端着色库
puts "#{'hello'.red} world!".bold
而且world!
应该大胆。
为了明确这一点,我想这一点:
"\e[1m\e[31mhello\e[0m\e[1m world!\e[0m"
或更好即使是这样(只是短):
"\e[1;31mhello\e[0;1m world!\e[0m"
,而不是这样的:
"\e[1m\e[31mhello\e[0m world!\e[0m"
至于有没有,我写我自己,
二十一点和妓女
聪明的 - smart_colored
gem install smart_colored
和运行
require 'smart_colored/extend'
# without extend you'll need to use 'string'.colored.red
puts "#{'hello'.red} world!".bold
看起来不错。干得好! – Evolve 2011-03-02 11:45:59
的lib被称为Highline 它有一个color
方法:say("This should be <%= color('bold', BOLD) %>!")
它可以很容易地用来实现String#bold
。
请再次阅读问题 – tig 2010-12-14 23:12:22
@tig,再次阅读答案。你要求的是一个String#粗体方法。丹尼尔为你提供了一个方法来制作一个。这也适用于String#红色等。 – 2011-01-18 13:44:01
@Mark:我告诉我的问题,我不需要简单的着色库(有这样的问题谷歌会高兴地帮助我),因为他们都做同样的错误 - 他们不理解嵌套。调整Daniel的代码给了我相同的颜色结果('HighLine.new.color(“#{HighLine.new.color('hello',HighLine :: RED)} world!”,HighLine :: BOLD)'):'world !'不是粗体 – tig 2011-01-18 18:08:19
如果你正在使用的Highline我做了一个宝石延长颜色并提供助手,如:
say_bold 'this is bold text'
您提出的API没有意义。图书馆如何知道何时重置颜色/样式? – cam 2011-01-18 18:24:56
@cam:这当然是有道理的。你对html有什么期望?你好世界!'?我想在bash中做同样的事情,我只是想知道是否已经有这样的库,如果没有,我会写我自己的。 – tig 2011-01-18 20:05:09
你的HTML例子是不相同的。 ''red#{“green”.green} red“.red'的预期输出是什么? – cam 2011-01-18 21:32:22