Sanity checking an idea for editing yaml without wanting to throw my laptop out the window

3 years ago by flashgnash to c/technology

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

load all comments
wisplike_sustainer 0 points 3 years ago

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"
    }
}
path: 0 9110355, hotness: undefined, score: 0, children: 10
girsaysdoom 0 points 3 years ago

I think the difference is that it sounds they are just looking for something JSON-like, just enough to edit and save a change. It might not need to be valid.

path: 0 9110355 9111048, hotness: undefined, score: 0, children: 7
wisplike_sustainer 3 points 3 years ago

So, a new not-a-markup-language, only human readable and editable, and objectively better than its predecessor? Well, it's all according to tradition. I believe YAML got its start the same way.

path: 0 9110355 9111048 9111262, hotness: undefined, score: 3, children: 1
girsaysdoom 0 points 3 years ago

That's hilarious. I didn't know that

path: 0 9110355 9111048 9111262 9111291, hotness: undefined, score: 0, children: 0
technology
technology

@lemmy.world

login for more options
88739
22213
14627

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

Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related news or articles.
  3. Be excellent to each other!
  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, this includes using AI responses and summaries. To ask if your bot can be added please contact a mod.
  9. Check for duplicates before posting, duplicates may be removed
  10. Accounts 7 days and younger will have their posts automatically removed.

Approved Bots


go to feed...