CONL: "Markdown" for your config files

(cirw.in)

23 points | by Timothee 17 hours ago

6 comments

  • eichin 11 hours ago
    As a python and markdown user, the triple-quoted strings never ending bugs me, or am I misreading the examples?
  • mubou 16 hours ago
    > types are deferred until parse time; the app knows what it wants.

    Thank you! Types have no business in a configuration format when the app already has a defined schema. Most formats try to convey all of the information needed to reconstruct an object, but that's totally unnecessary and only serves to complicate the syntax and introduce unnecessary errors/mishandlings.

    Are there any other config syntaxes that do this? Besides ad-hoc INI, that is.

    • darccio 12 hours ago
      Confetti [0] was shared recently here at HN. It's described as "simple, typeless, and localization-friendly configuration language designed for human-editable configuration files".

      0: https://news.ycombinator.com/item?id=43534240

    • bvrmn 10 hours ago
      Strict YAML has only strings, lists and maps. TBH it has much more nicer syntax as well.
  • epage 10 hours ago
    Looking at some of the examples, I don't feel like I can interpret how some of the strings are suppose to work. I feel like this is a flaw with over-emphasizing Postel's Law.

    Also, while indentation "works" for Python, the ratio of different levels per line is low while YAML it is high and I'm not a fan. I'd want to see a more complex example to have a real feel for this.

  • 3eb7988a1663 12 hours ago

      ; Quoting is rarely required. Keys and values can contain pretty
      ; much any character except ; (and = for keys).
      spaced out key = value with = signs and "quotes"!
    
    That one makes my spider sense tingle, but it does seem elegant at making it easier to write.
    • tcpiplab 11 hours ago
      As a developer I'm totally hoping this format becomes widely adopted. As a pentester I'm looking forward to exploring what the security implications may or may not be.

      Also, I wonder if the syntax is intuitive enough that you could just, for example write a bunch of rules and preferences and such, then attach the file along with your prompt to an LLM and just tell it to follow the rules and logic of the attached config file which is in a new format that the LLM must figure out how to understand. I'll try this.

      • tcpiplab 10 hours ago
        FWIW Anthropic Claude understood the CONL format just fine.

        "I was able to understand your configuration file without any difficulty."

        I dunno what this tells us but I've been wanting to find a simpler syntax for LLM rules. Not a serious project of mine but I have noticed that LLM guardrails of various types are written in many different ways.

        Some are Markdown-ish or unstructured text strings. Others are somewhat like yaml but contain enough additional complex functionality that you must learn the new language in order to understand the rules you want to write to protect your LLM. For example the syntax used for Nvidia's Nemo Guardrails rules.

  • edoceo 12 hours ago
    Would have like # or // as the comment. The issues raised about them (URLs) are solved in other tooling by rules like first chars on their own line to comment.