Project Documentation Generation

Is there any software available that takes a node-red project and extracts flows and descriptions and puts them together as a document (e.g a pdf)

Cheers
gary

I know of no software that will do that but you could always export your flow and have a file that you could interrogate. You could write a flow to read the exported file and grab the information you want...but...where are the descriptions you want to grab? Do you add comment nodes with an explanation or are you putting your descriptions elsewhere?

  1. When you say 'extract flows' you can grab an export from your device and play with it using a file node.

For example I created a small flow (inject->change->debugwith acomment` node) and here is what the export looks like:

[
    {
        "id": "e4b43d8ce7073555",
        "type": "inject",
        "z": "95081a450cecb535",
        "name": "inject 'cat'",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "cat",
        "payloadType": "str",
        "x": 340,
        "y": 160,
        "wires": [
            [
                "41dc7adf239d693d"
            ]
        ]
    },
    {
        "id": "4dbd232e68afb32e",
        "type": "debug",
        "z": "95081a450cecb535",
        "name": "display msg.payload",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": true,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "payload",
        "statusType": "auto",
        "x": 800,
        "y": 160,
        "wires": []
    },
    {
        "id": "41dc7adf239d693d",
        "type": "change",
        "z": "95081a450cecb535",
        "name": "change payload to 'dog'",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "dog",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 550,
        "y": 160,
        "wires": [
            [
                "4dbd232e68afb32e"
            ]
        ]
    },
    {
        "id": "d1327b9c3081d25e",
        "type": "comment",
        "z": "95081a450cecb535",
        "name": "always output 'dog'",
        "info": "in this flow the change node will always set msg.payload to the word 'dog'",
        "x": 550,
        "y": 100,
        "wires": []
    }
]
  1. When you say extracts flows and descriptions and puts them together as a document do you mean you want the json or screen prints of each page of the flow? Like this that I just did a screen print of:

Yes, all the description fields in each of the flows and any comment nodes (and any other comment/info fields available). Ideally I would like a picture of the flow, but a flow screen print is a interesting compromise.

Thanks for your thoughts. I have some more thing to do myself!