doc-red
Version:
A plugin for Node-RED which helps to documentate and enhance your workspace.
770 lines • 19.3 kB
JSON
[
{
"id": "88ccbc5be73df02c",
"type": "tab",
"label": "Flow 1",
"disabled": false,
"info": "# TODO important things\r\n\r\nthis flow needs some work\r\n\r\n- [ ] add more useful nodes\r\n- [ ] add some useless nodes for fun\r\n- [ ] delete the useless nodes to have a clean workspace\r\n- always keep the workspace clean\r\n\r\n# other things\r\nhello world",
"env": []
},
{
"id": "7af78f3eb7943a0c",
"type": "tab",
"label": "Flow 2",
"disabled": false,
"info": "# TODO\r\n- [ ] create a useful flow here",
"env": []
},
{
"id": "5bd9a15cdb92542d",
"type": "tab",
"label": "Flow 3",
"disabled": false,
"info": "",
"env": []
},
{
"id": "4168ecac79119914",
"type": "subflow",
"name": "Subflow 1",
"info": "# TODO\r\ndo subflow stuff xx",
"category": "",
"in": [],
"out": [],
"env": [],
"meta": {},
"color": "#DDAA99"
},
{
"id": "9ecf897c9f95a858",
"type": "subflow",
"name": "Subflow 2",
"info": "# TODO\r\nimplement subflow 2\r\n\r\n# Documentation\r\nthis is a subflow\r\n\r\n# Outputs\r\nThis is an additional output text\r\n- with list element\r\n\r\n# Inputs\r\nThis is an additional input text\r\n1. with num list",
"category": "",
"in": [
{
"x": 50,
"y": 30,
"wires": []
}
],
"out": [
{
"x": 810,
"y": 160,
"wires": []
},
{
"x": 810,
"y": 240,
"wires": []
},
{
"x": 740,
"y": 320,
"wires": []
}
],
"env": [],
"meta": {},
"color": "#DDAA99",
"outputLabels": [
"templateOutput 1",
"templateOutput 2",
""
]
},
{
"id": "d6a193d8f5a00b21",
"type": "subflow",
"name": "Subflow 3",
"info": "# Docu\r\nSubflow 3 should have a Docu\r\n\r\n# TODO\r\n- [ ] add a Docu\r\n\r\n# Outputs",
"category": "",
"in": [],
"out": [
{
"x": 650,
"y": 120,
"wires": [
{
"id": "34e65f5feba5c24f",
"port": 0
}
]
},
{
"x": 690,
"y": 180,
"wires": [
{
"id": "34e65f5feba5c24f",
"port": 1
}
]
}
],
"env": [],
"meta": {},
"color": "#DDAA99",
"outputLabels": [
"default",
"my second output"
]
},
{
"id": "435c7258d0d57116",
"type": "group",
"z": "88ccbc5be73df02c",
"name": "my group",
"style": {
"label": true
},
"nodes": [
"dc88e356249f5130",
"f0669c80e99966f8"
],
"x": 74,
"y": 179,
"w": 612,
"h": 82,
"info": "# Todo\r\ninsert useful stuff\r\n\r\n# Docu\r\nGroup docu"
},
{
"id": "900e9aebd26f2c84",
"type": "inject",
"z": "4168ecac79119914",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 200,
"y": 80,
"wires": [
[
"addcf838a0109da5"
]
]
},
{
"id": "addcf838a0109da5",
"type": "function",
"z": "4168ecac79119914",
"name": "function 1",
"func": "\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 400,
"y": 80,
"wires": [
[
"97cba97f51e5d2d1"
]
]
},
{
"id": "97cba97f51e5d2d1",
"type": "debug",
"z": "4168ecac79119914",
"name": "debug 3",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 620,
"y": 80,
"wires": []
},
{
"id": "450290bf3b1057c9",
"type": "inject",
"z": "9ecf897c9f95a858",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 140,
"y": 120,
"wires": [
[
"a5e8524e45b32ce6"
]
]
},
{
"id": "abdd382a93e8ecd5",
"type": "debug",
"z": "9ecf897c9f95a858",
"name": "debug 4",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 640,
"y": 120,
"wires": []
},
{
"id": "a5e8524e45b32ce6",
"type": "change",
"z": "9ecf897c9f95a858",
"name": "node in sf2",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 370,
"y": 120,
"wires": [
[
"abdd382a93e8ecd5"
]
],
"info": "# Doc\r\n\r\nYour advertisment could stay here!\r\n\r\n# TODO"
},
{
"id": "2f5766c12aff4a32",
"type": "inject",
"z": "d6a193d8f5a00b21",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 180,
"y": 140,
"wires": [
[
"34e65f5feba5c24f"
]
]
},
{
"id": "34e65f5feba5c24f",
"type": "switch",
"z": "d6a193d8f5a00b21",
"name": "node in sf3",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 2,
"x": 410,
"y": 140,
"wires": [
[],
[]
],
"info": "# TODO implement logic\r\n\r\n# Hello World"
},
{
"id": "830a24bb23f2264f",
"type": "inject",
"z": "88ccbc5be73df02c",
"name": "start",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 130,
"y": 120,
"wires": [
[
"68f68ee73978dd82"
]
],
"info": "# Input\r\n\r\n# Output\r\n"
},
{
"id": "e54779751f55f485",
"type": "debug",
"z": "88ccbc5be73df02c",
"name": "debug 1",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 960,
"y": 100,
"wires": [],
"info": "# Outputs"
},
{
"id": "0f61bb8bf562134e",
"type": "function",
"z": "88ccbc5be73df02c",
"name": "does something important",
"func": "\nreturn msg;",
"outputs": 3,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 630,
"y": 120,
"wires": [
[
"e54779751f55f485"
],
[],
[]
],
"outputLabels": [
"default",
"special",
"error"
],
"info": "# Documentation\r\n\r\nThis is a _very detailed_ documentation written in a **markdown** editor.\r\n\r\n## It is very long and has too much text.\r\n\r\nTherefore it should not be able to see all in the popover.\r\n\r\n## But don't worry, you can scroll downwards.\r\n\r\nAt the end there will be the edit button....\r\n\r\n## You don't have to read all this\r\n\r\n## This is only to make the documentation very long...\r\n\r\n## For real...\r\n\r\nMaybe this Button should have a absolute position.\r\n\r\nBut not for now...\r\n\r\nYou have to scroll...\r\n\r\n# Input\r\n\r\n# Output\r\n\r\nThis is a docu to the three outputs, but only the special and the error output are documentated...\r\n\r\n## special\r\n\r\nThis special output would be much more important if the flow would go on!\r\n\r\n## error\r\n\r\nWell, this is unfortunate...\r\n\r\n\r\n# TODO\r\n\r\n- [x] todo is in tooltip on top\r\n- [x] output is second\r\n- [x] rest is documentation \r\n"
},
{
"id": "68f68ee73978dd82",
"type": "function",
"z": "88ccbc5be73df02c",
"name": "not yet implemented",
"func": "\nreturn msg;",
"outputs": 1,
"timeout": "",
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 340,
"y": 120,
"wires": [
[
"0f61bb8bf562134e"
]
],
"outputLabels": [
"the only one"
],
"info": "# Todo short but important info!\r\n\r\n## a useful list\r\n\r\n- [x] thinking what should the node do\r\n- [ ] writing code\r\n- [ ] enjoy\r\n- [ ] buy milk\r\n\r\n## other things to reconsider\r\n\r\nthere is nothing to reconsider\r\n\r\n# some additional text (documentation)\r\nthis node does some things\r\n\r\n# Outputs\r\n"
},
{
"id": "dc88e356249f5130",
"type": "inject",
"z": "88ccbc5be73df02c",
"g": "435c7258d0d57116",
"name": "node in a group",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 200,
"y": 220,
"wires": [
[
"f0669c80e99966f8"
]
],
"info": "# Todo\r\na todo in a group"
},
{
"id": "f0669c80e99966f8",
"type": "debug",
"z": "88ccbc5be73df02c",
"g": "435c7258d0d57116",
"name": "debug 2",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 580,
"y": 220,
"wires": []
},
{
"id": "e6e2162222bf6267",
"type": "subflow:4168ecac79119914",
"z": "88ccbc5be73df02c",
"name": "Subflow 1 node (no own Todo and Documentation)",
"x": 264,
"y": 320,
"wires": []
},
{
"id": "c920ee5e47536231",
"type": "subflow:9ecf897c9f95a858",
"z": "88ccbc5be73df02c",
"name": "Subflow 2 (own documentation)",
"x": 204,
"y": 380,
"wires": [
[],
[],
[]
],
"outputLabels": [
"Node output 1",
"",
""
],
"info": "This documentation overwrites the subflow documentation...\r\n\r\nBut not the Todo... only if a Todo header is set here"
},
{
"id": "2780dd2ee5f4686d",
"type": "subflow:d6a193d8f5a00b21",
"z": "88ccbc5be73df02c",
"name": "Subflow 3 node (own todo)",
"x": 184,
"y": 440,
"wires": [
[],
[]
],
"icon": "node-red/light.svg",
"info": "# TODO \r\n- this overwrites the todo docu from sf3"
},
{
"id": "e5a74e06a1d43956",
"type": "comment",
"z": "88ccbc5be73df02c",
"name": "completed tasks",
"info": "# TODO\n\n- [x] done\n- [x] also done\n- [x] somehow done\n- [x] really done\n",
"x": 154,
"y": 60,
"wires": []
},
{
"id": "e8d8ea7d30247e26",
"type": "switch",
"z": "88ccbc5be73df02c",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "btwn",
"v": "1",
"vt": "num",
"v2": "5",
"v2t": "num"
},
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 4,
"x": 930,
"y": 220,
"wires": [
[],
[],
[],
[]
],
"info": "# Outputs"
},
{
"id": "652aa3c0f951179f",
"type": "switch",
"z": "88ccbc5be73df02c",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 4,
"x": 790,
"y": 220,
"wires": [
[],
[],
[],
[]
],
"inputLabels": [
"incoming data"
],
"outputLabels": [
"default",
"special 1",
"another special",
"error"
],
"info": "# Outputs\r\n\r\nThis is a generell hint to the outputs\r\n\r\n## special 1\r\nThis is a hint for the special 1 output.\r\n- Why does it exists?\r\n- Does special 2 exists?\r\n\r\n# Inputs"
},
{
"id": "dfbba731a8565242",
"type": "switch",
"z": "88ccbc5be73df02c",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
},
{
"t": "eq",
"v": "",
"vt": "str"
}
],
"checkall": "true",
"repair": false,
"outputs": 5,
"x": 890,
"y": 360,
"wires": [
[],
[],
[],
[],
[]
],
"info": "# Input\r\n\r\n# Output"
},
{
"id": "deb69ff56b4186a2",
"type": "debug",
"z": "88ccbc5be73df02c",
"name": "debug 7",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 580,
"y": 440,
"wires": []
},
{
"id": "7a1c3d8d36ad7079",
"type": "function",
"z": "88ccbc5be73df02c",
"name": "function 2",
"func": "\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 420,
"y": 600,
"wires": [
[]
],
"info": "# Input\r\n\r\n # Output"
},
{
"id": "0ee4a7e83f482b8c",
"type": "inject",
"z": "7af78f3eb7943a0c",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 160,
"y": 100,
"wires": [
[
"f15c700167abeacd"
]
]
},
{
"id": "f33bb44d267b43e3",
"type": "debug",
"z": "7af78f3eb7943a0c",
"name": "debug 6",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 560,
"y": 100,
"wires": []
},
{
"id": "f15c700167abeacd",
"type": "function",
"z": "7af78f3eb7943a0c",
"name": "node in workspace 2",
"func": "\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 360,
"y": 100,
"wires": [
[
"f33bb44d267b43e3"
]
],
"info": "# TODO\r\n- [ ] create a function"
}
]