CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Fri, 05 Sep 2025 08:01:21 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20091005125245
location: https://web.archive.org/web/20091005125245/https://github.com/cloudhead/mutter/tree/master
server-timing: captures_list;dur=0.647619, exclusion.robots;dur=0.019632, exclusion.robots.policy;dur=0.009306, esindex;dur=0.016216, cdx.remote;dur=27.896371, LoadShardBlock;dur=254.456159, PetaboxLoader3.datanode;dur=73.454048, PetaboxLoader3.resolve;dur=90.856120
x-app-server: wwwb-app223
x-ts: 302
x-tr: 305
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app223; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 301
server: nginx
date: Fri, 05 Sep 2025 08:01:22 GMT
content-type: text/html; charset=utf-8
content-length: 100
x-archive-orig-server: nginx/0.7.61
x-archive-orig-date: Mon, 05 Oct 2009 12:52:45 GMT
x-archive-orig-connection: close
x-archive-orig-status: 301 Moved Permanently
location: https://web.archive.org/web/20091005125245/https://github.com/cloudhead/mutter
x-archive-orig-x-runtime: 6ms
x-archive-orig-content-length: 100
x-archive-orig-cache-control: no-cache
cache-control: max-age=1800
memento-datetime: Mon, 05 Oct 2009 12:52:45 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 02 Aug 2009 14:25:17 GMT", ; rel="prev memento"; datetime="Thu, 03 Sep 2009 07:58:59 GMT", ; rel="memento"; datetime="Mon, 05 Oct 2009 12:52:45 GMT", ; rel="next memento"; datetime="Sat, 17 Aug 2024 06:59:36 GMT", ; rel="last memento"; datetime="Sat, 17 Aug 2024 06:59:37 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 51_12_20091005035138_crawl103-c/51_12_20091005123642_crawl101.arc.gz
server-timing: captures_list;dur=1.109816, exclusion.robots;dur=0.016764, exclusion.robots.policy;dur=0.007659, esindex;dur=0.012774, cdx.remote;dur=57.194684, LoadShardBlock;dur=203.468233, PetaboxLoader3.datanode;dur=215.041365, PetaboxLoader3.resolve;dur=507.568866, load_resource;dur=598.144725
x-app-server: wwwb-app223
x-ts: 301
x-tr: 887
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Fri, 05 Sep 2025 08:01:22 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.7.61
x-archive-orig-date: Mon, 05 Oct 2009 12:52:45 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-etag: "8a818e5f724453bc1bb77304aa1dcf88"
x-archive-orig-x-runtime: 57ms
x-archive-orig-content-length: 26711
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Mon, 05 Oct 2009 12:52:45 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sat, 19 Sep 2009 16:05:06 GMT", ; rel="prev memento"; datetime="Fri, 25 Sep 2009 00:33:35 GMT", ; rel="memento"; datetime="Mon, 05 Oct 2009 12:52:45 GMT", ; rel="next memento"; datetime="Wed, 06 Jan 2010 14:53:16 GMT", ; rel="last memento"; datetime="Thu, 12 Oct 2023 21:19:00 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 51_12_20091005035138_crawl103-c/51_12_20091005123642_crawl101.arc.gz
server-timing: captures_list;dur=0.519611, exclusion.robots;dur=0.018921, exclusion.robots.policy;dur=0.008252, esindex;dur=0.010997, cdx.remote;dur=12.059983, LoadShardBlock;dur=113.555603, PetaboxLoader3.datanode;dur=91.175932, PetaboxLoader3.resolve;dur=92.357088, load_resource;dur=79.925716
x-app-server: wwwb-app223
x-ts: 200
x-tr: 286
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
cloudhead's mutter at master - GitHub
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Description: | the tiny command-line interface library with lots of style~ edit |
Homepage: | edit |
Public Clone URL: |
git://github.com/cloudhead/mutter.git
Give this clone URL to anyone.
git clone git://github.com/cloudhead/mutter.git
|
Your Clone URL: |
Use this clone URL yourself.
git clone git@github.com:cloudhead/mutter.git
|
mutter /
name | age | message | |
---|---|---|---|
![]() |
.document | Tue Jul 28 19:20:14 -0700 2009 | Initial commit to mumbler. [cloudhead] |
![]() |
.gitignore | Mon Aug 03 06:22:24 -0700 2009 | added .document [cloudhead] |
![]() |
LICENSE | Tue Jul 28 19:20:14 -0700 2009 | Initial commit to mumbler. [cloudhead] |
![]() |
README.md | Tue Aug 11 12:24:38 -0700 2009 | [cloudhead] |
![]() |
Rakefile | Wed Sep 02 08:45:51 -0700 2009 | rubyforge setup [cloudhead] |
![]() |
VERSION | Mon Sep 07 12:28:44 -0700 2009 | Version bump to 0.3.5 [cloudhead] |
![]() |
lib/ | Sun Sep 06 22:48:18 -0700 2009 | #styles is now a method, @defaults & @styles ha... [cloudhead] |
![]() |
mutter.gemspec | Mon Sep 07 12:28:48 -0700 2009 | Regenerated gemspec for version 0.3.5 [cloudhead] |
![]() |
spec/ | Sun Sep 06 22:48:55 -0700 2009 | reorganized the specs a bit. Added specs for #c... [cloudhead] |
README.md
mutter
$ my words come out,
in color and
style
mutter takes the concepts of separation of style & content to the command-line!
synopsis
require 'mutter'
mut = Mutter.new # creates a new 'Mutterer', who talks in command-line language
mut.say "hello _world_" # underlines 'world'
mut.say "hello world", :bold # bolds the whole string
mut.say "hello [world]", :cyan # inverts 'world', and colors the string cyan
mut.print "bonjour!" # alias of `say`
mut["_hola_"] # return the stylized string without printing
styles
mutter supports these styles:
:bold, :underline, :inverse, :blink
and these colors:
:red, :green, :blue, :yellow, :cyan, :purple, :white, :black
customization
styles = {
:warning => { # an alias you can use anywhere in mutter
:match => ['*!', '!*'], # will match *!mutter!*
:style => ['yellow', 'bold'] # these styles will be applied to the match
},
:error => {
:match => '!!', # will match !!mutter!!
:style => ['red', 'underline']
}
}
mut = Mutter.new(styles)
mut.say "warning, the dogs have escaped!", :warning # These two are
mut.warning "warning, the dogs have escaped!" # equivalent
mut.say "gosh, we have an !!error!!"
YAML
The previous example could have (and should really have) been written in a separate .yml file, like so:
warning:
match:
- '*!'
- '!*
style:
- yellow
- bold
error:
match: '!!'
style:
- red
- underline
and then loaded like this:
Mutter.new("styles.yml")
quick styles
mut = Mutter.new :yellow => '~'
mut.say "~[black on yellow!]~"
add/remove styles from an instance
mut = Mutter.new(:blink)
mut >> :blink # remove :blink
mut << :bold << :underline # add :bold and :underline
mut.say "hello mutter." # bold and underlined
installation
$ sudo gem install cloudhead-mutter
That's it!
have fun
Footnote
This code is highly experimental, don't try this at home!
This feature is coming soon. Sit tight!