this post was submitted on 05 Apr 2024
27 points (84.6% liked)

Technology

59627 readers
2807 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
 

Often find myself getting frustrated editing yaml, and it seems to be used everywhere for some reason I cannot fathom

I have an idea to write an editor plugin that will, when opening a yaml file, convert it to json (or some other less painful configuration language), then convert back on save. I don't know enough about yaml syntax to know if that's possible or if there's some quirk that makes them not completely cross compatible

Or alternatively if it exists a better CLI tool for editing yaml than just a normal text editor because I'm getting sick of pasting in a block of yaml and then having to fix the 8 indentation errors that somehow spawn from that

you are viewing a single comment's thread
view the rest of the comments
[โ€“] wisplike_sustainer@suppo.fi 0 points 7 months ago (10 children)

YAML to JSON is probably doable, JSON back to YAML not so much.

There are multiple ways to mark multiline strings in YAML. Then there are anchors, like bionicjoey mentioned. Also comments, YAML has them. You'd have to have some way to retain the extra information, if you want to make the full round trip.

Here's an example:

def-db: &def-db
    # here be dragons
    login: admin
    passwd: nimda
    
prod:
    db: *def-db
    desc: |
        I'm a teapot
        short and stout

dev:
    db: 
        <<: *def-db
        passwd: pass
    desc: "I'm a teapot\nshort and stout\n"

converted to JSON looks like this

{
    "def-db": {
        "login": "admin",
        "passwd": "nimda"
    },
    "prod": {
        "db": {
            "login": "admin",
            "passwd": "nimda"
        },
        "desc": "I'm a teapot\nshort and stout\n"
    },
    "dev": {
        "db": {
            "login": "admin",
            "passwd": "pass"
        },
        "desc": "I'm a teapot\nshort and stout\n"
    }
}
[โ€“] flashgnash@lemm.ee 0 points 7 months ago

Comments are an issue I'd have to think about. Would prebuilt libraries for importing/exporting data from/to these languages not handle the multiline strings for me?

What do anchors do in yaml I've never heard of them before

load more comments (9 replies)