Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: SHML (shell markup language) (maxcdn.github.io)
71 points by jdorfman on Nov 6, 2015 | hide | past | favorite | 12 comments



Nice! I am using some of the funny characters!

Some remarks:

I doubt if it is needed to launch a sub-process for each markup directive. This is fine for small output, but will slow down processing of larger chunks of text. I would be interested in a bash solution based on associative arrays.

As an example, one might want to look at the zsh implementation of the colors script in the main distribution[0], which makes colors available as an associative array:

    # Set once in shell init script:
    autoload -U colors && colors
    # And use it anywhere:
    print $fg[blue]hello colorful world!$fg[reset]
[0]: http://sourceforge.net/p/zsh/code/ci/master/tree/Functions/M...


I'm a little surprised something like "$(fgcolor red hello)" requires a $(fgcolor end) - if you include arguments shouldn't it be self-closing? Then you get nice things like "$(fgcolor red " $(hr)")"

$(title "header") could be cool, outputting " header$(br)------"

An alias for \r could be nice, to go with $(br).


But if you've done: "$(fgcolor red)red text$(fgcolor green "green text") what color is this?"... then it would have to model a stack on top of the actual underlying implementation, which does not have any concept of "closing" a sequence to pop the colour back to the previous colour. It could automatically emit the \x1b[0m, but it would be making assumptions about nesting.


I really like the idea of this, great work!

Unrelated, I'm pretty sad that there hasn't been further work in packaging shell extensions like this. Most of it is adhoc, and people usually tend to stick to `curl | bash` (I'm guilty of this as well with dokku and other OS projects).


Well, I like it. Thanks. I shall try using it for the MOTD on the HPC cluster I manage.


Thank you. Please reach out if you have any questions or general feedback.


Making tty formatting very close to dom/css semantics, interesting.


This is awesome, just a shame there isn't anything like this for MS PowerShell.


   function color ($name) { $Host.UI.RawUI.ForegroundColor = $name }
   function sayhello { 'pardon me do you have any grey poupon?' }
   echo $(color yellow) $(sayhello)
The other stuff (bold, pictures) requires host support (more than regular powershell.exe provides).


> The other stuff (bold, pictures) requires host support (more than regular powershell.exe provides).

PoshConsole made a nice stab at it. Sadly it is no longer developed, I think.

Simple unicode characters (the smilies etc as used in OP) does work in powershell ISE.

[1] https://poshconsole.codeplex.com/


At first I got dyslexic and was excited to try the Shaking My Head Language (SMHL).


I like it! It even works in MobaXTerm. Although two tests failed.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: