Hacker News new | past | comments | ask | show | jobs | submit login
mdp – A command-line based markdown presentation tool (github.com/visit1985)
157 points by tombenner on Sept 19, 2014 | hide | past | favorite | 42 comments



Much of the colour scheme and the grey/blue fading ramp behaviour appears to have been lifted from a similar tool I wrote, vtmc[1]. While it was nice to be credited in the "CREDITS" file, it would have been nicer to make it into README -- nicer still for the code not to have been taken from MIT to GPL!

But I suppose, as they say: imitation is the sincerest form of flattery.

[1]: https://github.com/jclulow/vtmc


Did you see the guy's blog post? http://blog.myjm.de/2014/09/mdp/ . You are admitted to be basically the reason he wrote this.


Yea, I wouldn't get too bent out of shape. The original idea is posted in multiple places, so if he didn't pick the one you particularly care about, you might just want to get down from the pedestal, because you're being attributed everywhere else.


Am I the only one who finds calling curses apps "command-line" to be a stretch? Nobody would have called turbo-pascal a "command-line" program, for example.


Indeed the (new) correct term would be "TUI": Text-based user interface: http://en.wikipedia.org/wiki/Text-based_user_interface .


I think the more important distinction between "command line" and not is wether it can be run without X.


I'd agree for "shell", "terminal", "console", something like that. But to me, the distinction is whether or not it has a text interface. That is, I interact via text, and it responds in kind.

What about a GUI program that uses text to control it? Many GUI programs do have command-line components in them (editors, ides). (not suggesting that makes them command line programs per se, but that the idea of "command-line"-ness transcends X)


Yes, you're the only one.


He's completely correct, though. Most screen-oriented programs, in power and flexibility, are closer to pull-down menus with predefined commands than to proper command lines. ncurses is "GUI without the G", not "CLI".

If you're calling a curses program "command line" just because its physical appearance is close to a shell in a terminal... that's like calling a Gtk application a Windows app.

If you're calling a curses program command line because you don't know the difference, the clue is in the name: command-driven and line-oriented - command line. As opposed to keyboard-driven and screen-oriented.

Among other disadvantages, screen-oriented things have this built-in model of forced interaction.

The technical advantages of being CLI don't matter to a powerpoint, but it's still incorrect call it as such.


I feel it's overly pedantic, regardless of the argument.


Maybe, I dunno. But I'd sooner conflate, say, C and Java (something that would never happen, but anyway) than willingly conflate command-line and screen-oriented - the former are different in degree, but the latter are different in kind, you know what I mean?


No, I'm calling it "command line" because it runs on and takes input from the command line.


I don't know what "runs on the command line" means, but as for taking filename arguments... so does Microsoft Word.


Well, it runs on the terminal. But not on the command line. These are different concepts.


By that logic, Windows up until 98 was also a command line application. Doesn't really add up.


Windows Me also used a DOS bootloader, but it was more discrete than it's predecessors.


The only major missing feature for the slide decks I tend to create is syntax highlighting. Still will probably give it a shot next time I don't have much code to present :)

For those who were curious what this was using for Markdown, it looks like it's home-rolled in C: https://github.com/visit1985/mdp/blob/master/viewer.c#L353


IMHO :

    $ cat markdown.md
also does pretty good job.

Anyway, cudos for choosing C as a language for this tool.


I'm not sure how that would be helpful for giving a presentation unless you only have one slide or you don't mind scrolling manually.


I really like this, but I wish it would have some kind of linewrapping support to avoid messages like this:

$ mdp README.md Error: Terminal size 120x41 too small. Need at least 355x97.


If that's actually an issue, couldn't you just wrap the output in par [1] ?

[1] http://en.wikipedia.org/wiki/Par_(command)


Nope.. It seems to use ncurses for terminal emulation. I did try, though:

  $ mdp README.md | par
  Error: Terminal size 211x55 too small. Need at least 355x97.


Sorry, that's my mistake. I meant inserting it in mdp itself, as I thought mdp was a shell script. As mdp is written in C my suggestion doesn't apply.


Am I the only one that sees a problem with the name? MPD (Music Player Daemon / http://www.musicpd.org/) has been around for eleven years, and is relatively well known.


At the recent PyOhio conference I saw a neat trick, with PostgreSQL event triggers advanced the web hosted slides. I think it was this one http://pyvideo.org/video/2842/pushy-postgres-and-python ... anyway, the presenter was able to just simply stay in his shell, and participants could watch the slides on their laptops, and he'd occasionally refer to them on the large screen as well.


Related: DeckSet http://www.decksetapp.com/

Can't make your own themes yet, but does a great job with everything it does.


There's also http://github.com/arnemart/slid.js (disclosure: I wrote this)

No fancy transitions, but does not need ncurses and supports syntax highlighting and images.


I wrote a similar tool that creates impress.js presentations instead: https://github.com/egonschiele/mdpress


This is nice. I rather present with the web-browser than a terminal window. Btw, I always wanted to find a markdown tool which creates images on the fly, through some commands (e.g. a python matplotlib script), anyone knows of a tool which can do this?


I got excited thinking someone was linking mpd and there was a discussion about it.

Not that this isn't awesome. I've actually been looking for markdown to shell presentation.



While I think this is very cool, I struggle to see where I would practically use this. Is the idea that you open a full screen terminal window with a very large font size in order to present?


My first thought is that it saves alot of screen switching/resizing while demoing or live coding from terminal. Fullscreen presentation until I need to show something, ^Z it into the background and run my demo or open up vim and do something, then pull it back up to where I left off without having to mess with windows or font sizes while the audience hangs on dead air. I don't know how much of a problem that is in reality though.


I've found alt-tab does the trick for me in those cases.


I don't see why not? I can easily see the appeal in creating slides in as minimal a format as Markdown. And it has a sort of geek cachet to it, depending on the audience. The only real downside I see is that you can't easily use visual aides such as graphs.


Xavier Noria did something like this a while ago. https://github.com/fxn/tkn


Oh, just realised it’s not Markdown but Ruby instead. Sorry for confusion. Great tool anyway.


Related (but primitive): https://github.com/mcrio/tiptip


A shocking great tool, though I tend to read man pages. May be useful for games based on ncurses. (you say visual novels?)


This is quite nifty. Transitions are nice as to not completely horrify the PowerPoint junkies with fixed-width fonts.


OOOO I like this.


this is great! ncurses never dies.




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

Search: