Show HN: Box of Rain - Auto-Layouted ASCII Diagrams

(github.com)

21 points | by switz 3 days ago

4 comments

  • latchkey 3 days ago
    Neat, but you can just do this in mermaid too. Taking one of your examples:

      <mermaid>
      flowchart LR
    
      web([Frontend])
    
      subgraph platform [Cloud Platform]
        api([API Server])
        db[(Database)]
        api --> db
      end
    
      web -->|HTTPS| api
      </mermaid>
    
    If you install the latest https://oj-hn.com , you can see it rendered inline here.
    • switz 3 days ago
      Fair point. I added basic mermaid parsing to the library so you can do that here too.

          $ echo 'flowchart LR
              web([Frontend])
              subgraph platform [Cloud Platform]
                api([API Server])
                db[(Database)]
                api --> db
              end
              web -->|HTTPS| api' | npx box-of-rain --mermaid
      
                                 ╔══ Cloud Platform ════════════════════╗
                                 ║                                      ║
          ╭──────────╮           ║  ╭────────────╮      ╔════════════╗  ║
          │          │           ║  │            │      ║            ║  ║
          │ Frontend │ ─── HTTPS ──▶│ API Server │ ────▶║  Database  ║  ║
          │          │           ║  │            │      ║            ║  ║
          ╰──────────╯           ║  ╰────────────╯      ╚════════════╝  ║
                                 ╚══════════════════════════════════════╝
      • latchkey 6 hours ago
        Nice work! Love it.
  • Retr0id 10 hours ago
    On my system the "right arrow" glyph is 2 units wide and breaks all the layouts.
    • OhMeadhbh 8 hours ago
      First off, let me say it is awesome you're doing something like this.

      But... I'm encountering a similar issue on both Chrome and Firefox on Leenucks. I guess it's possible you don't see the problem on your Mac because both these browsers use the OS to do font rendering.

    • switz 10 hours ago
      TIL about ambiguous width unicode characters. Turns out some locales render these chars as double width. I'm attempting to work out a solution.

      Seems like maybe there are some universal half-width characters that can be used.

      https://www.unicode.org/reports/tr11/

      • exceptione 13 minutes ago
        Weird. Same issue with NL-locale @ firefox, while terminal is ok. So it is not confined to East-Asian locales if that is what you think.
      • Retr0id 5 hours ago
        Unfortunately even if you pick nominally-equal-width glyphs, on the web you can still get screwed over by font substitution/fallback done by the browser.
    • Surac 3 hours ago
      same in my Brave Browser, why not stick to nomal Ascii?
  • josefdlange 7 hours ago
    I'm just here for the Grateful Dead reference.
    • josefdlange 7 hours ago
      Holy moly -- you're behind Relisten, OP? I owe you a great debt of gratitude for the hours of musical joy Relisten has given me.
      • switz 7 hours ago
        Yup! We’re just one link in the chain (bands, tapers, archivists, & the listeners), but I appreciate the sentiment. Alec and I have been running Relisten for over a decade and we’ve put a lot of work into it these past few years.

        Had to give the Dead a little nod here

        • josefdlange 7 hours ago
          Too true! Feels extra nice to be able to spread the sentiment of gratitude so far and wide. Keep it up!