mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 21:32:15 +01:00
feat(imageio): dropping host parent as it is redundant
This commit is contained in:
parent
0389453749
commit
7b1acfd60d
2 changed files with 370 additions and 388 deletions
|
|
@ -1,131 +1,122 @@
|
|||
{
|
||||
"hosts": {
|
||||
"hiero": {
|
||||
"workfile": {
|
||||
"ocioConfigName": "nuke-default",
|
||||
"ocioconfigpath": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"workingSpace": "linear",
|
||||
"sixteenBitLut": "sRGB",
|
||||
"eightBitLut": "sRGB",
|
||||
"floatLut": "linear",
|
||||
"logLut": "Cineon",
|
||||
"viewerLut": "sRGB",
|
||||
"thumbnailLut": "sRGB"
|
||||
},
|
||||
"regexInputs": {
|
||||
"inputs": [
|
||||
{
|
||||
"regex": "[^-a-zA-Z0-9](plateRef).*(?=mp4)",
|
||||
"colorspace": "sRGB"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"nuke": {
|
||||
"workfile": {
|
||||
"colorManagement": "Nuke",
|
||||
"OCIO_config": "nuke-default",
|
||||
"customOCIOConfigPath": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"workingSpaceLUT": "linear",
|
||||
"monitorLut": "sRGB",
|
||||
"int8Lut": "sRGB",
|
||||
"int16Lut": "sRGB",
|
||||
"logLut": "Cineon",
|
||||
"floatLut": "linear"
|
||||
},
|
||||
"nodes": {
|
||||
"requiredNodes": [
|
||||
{
|
||||
"plugins": [
|
||||
"CreateWriteRender"
|
||||
],
|
||||
"nukeNodeClass": "Write",
|
||||
"knobs": [
|
||||
{
|
||||
"name": "file_type",
|
||||
"value": "exr"
|
||||
},
|
||||
{
|
||||
"name": "datatype",
|
||||
"value": "16 bit half"
|
||||
},
|
||||
{
|
||||
"name": "compression",
|
||||
"value": "Zip (1 scanline)"
|
||||
},
|
||||
{
|
||||
"name": "autocrop",
|
||||
"value": "True"
|
||||
},
|
||||
{
|
||||
"name": "tile_color",
|
||||
"value": "0xff0000ff"
|
||||
},
|
||||
{
|
||||
"name": "channels",
|
||||
"value": "rgb"
|
||||
},
|
||||
{
|
||||
"name": "colorspace",
|
||||
"value": "linear"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"plugins": [
|
||||
"CreateWritePrerender"
|
||||
],
|
||||
"nukeNodeClass": "Write",
|
||||
"knobs": [
|
||||
{
|
||||
"name": "file_type",
|
||||
"value": "exr"
|
||||
},
|
||||
{
|
||||
"name": "datatype",
|
||||
"value": "16 bit half"
|
||||
},
|
||||
{
|
||||
"name": "compression",
|
||||
"value": "Zip (1 scanline)"
|
||||
},
|
||||
{
|
||||
"name": "autocrop",
|
||||
"value": "False"
|
||||
},
|
||||
{
|
||||
"name": "tile_color",
|
||||
"value": "0xff0000ff"
|
||||
},
|
||||
{
|
||||
"name": "channels",
|
||||
"value": "rgb"
|
||||
},
|
||||
{
|
||||
"name": "colorspace",
|
||||
"value": "linear"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"customNodes": []
|
||||
},
|
||||
"regexInputs": {
|
||||
"inputs": [
|
||||
{
|
||||
"regex": "[^-a-zA-Z0-9]beauty[^-a-zA-Z0-9]",
|
||||
"colorspace": "linear"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
"hiero": {
|
||||
"workfile": {
|
||||
"ocioConfigName": "nuke-default",
|
||||
"ocioconfigpath": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"workingSpace": "linear",
|
||||
"sixteenBitLut": "sRGB",
|
||||
"eightBitLut": "sRGB",
|
||||
"floatLut": "linear",
|
||||
"logLut": "Cineon",
|
||||
"viewerLut": "sRGB",
|
||||
"thumbnailLut": "sRGB"
|
||||
},
|
||||
"regexInputs": {
|
||||
"inputs": [{
|
||||
"regex": "[^-a-zA-Z0-9](plateRef).*(?=mp4)",
|
||||
"colorspace": "sRGB"
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
"nuke": {
|
||||
"workfile": {
|
||||
"colorManagement": "Nuke",
|
||||
"OCIO_config": "nuke-default",
|
||||
"customOCIOConfigPath": {
|
||||
"windows": [],
|
||||
"darwin": [],
|
||||
"linux": []
|
||||
},
|
||||
"workingSpaceLUT": "linear",
|
||||
"monitorLut": "sRGB",
|
||||
"int8Lut": "sRGB",
|
||||
"int16Lut": "sRGB",
|
||||
"logLut": "Cineon",
|
||||
"floatLut": "linear"
|
||||
},
|
||||
"nodes": {
|
||||
"requiredNodes": [{
|
||||
"plugins": [
|
||||
"CreateWriteRender"
|
||||
],
|
||||
"nukeNodeClass": "Write",
|
||||
"knobs": [{
|
||||
"name": "file_type",
|
||||
"value": "exr"
|
||||
},
|
||||
{
|
||||
"name": "datatype",
|
||||
"value": "16 bit half"
|
||||
},
|
||||
{
|
||||
"name": "compression",
|
||||
"value": "Zip (1 scanline)"
|
||||
},
|
||||
{
|
||||
"name": "autocrop",
|
||||
"value": "True"
|
||||
},
|
||||
{
|
||||
"name": "tile_color",
|
||||
"value": "0xff0000ff"
|
||||
},
|
||||
{
|
||||
"name": "channels",
|
||||
"value": "rgb"
|
||||
},
|
||||
{
|
||||
"name": "colorspace",
|
||||
"value": "linear"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"plugins": [
|
||||
"CreateWritePrerender"
|
||||
],
|
||||
"nukeNodeClass": "Write",
|
||||
"knobs": [{
|
||||
"name": "file_type",
|
||||
"value": "exr"
|
||||
},
|
||||
{
|
||||
"name": "datatype",
|
||||
"value": "16 bit half"
|
||||
},
|
||||
{
|
||||
"name": "compression",
|
||||
"value": "Zip (1 scanline)"
|
||||
},
|
||||
{
|
||||
"name": "autocrop",
|
||||
"value": "False"
|
||||
},
|
||||
{
|
||||
"name": "tile_color",
|
||||
"value": "0xff0000ff"
|
||||
},
|
||||
{
|
||||
"name": "channels",
|
||||
"value": "rgb"
|
||||
},
|
||||
{
|
||||
"name": "colorspace",
|
||||
"value": "linear"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"customNodes": []
|
||||
},
|
||||
"regexInputs": {
|
||||
"inputs": [{
|
||||
"regex": "[^-a-zA-Z0-9]beauty[^-a-zA-Z0-9]",
|
||||
"colorspace": "linear"
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,294 +4,285 @@
|
|||
"label": "Color Management (Image i/o)",
|
||||
"is_file": true,
|
||||
"children": [{
|
||||
"key": "hosts",
|
||||
"key": "hiero",
|
||||
"type": "dict",
|
||||
"label": "Hosts",
|
||||
"collapsed": false,
|
||||
"collapsable": true,
|
||||
"label": "Hiero",
|
||||
"children": [{
|
||||
"key": "hiero",
|
||||
"key": "workfile",
|
||||
"type": "dict",
|
||||
"label": "Hiero",
|
||||
"label": "Workfile",
|
||||
"collapsable": false,
|
||||
"children": [{
|
||||
"key": "workfile",
|
||||
"type": "dict",
|
||||
"label": "Workfile",
|
||||
"collapsable": false,
|
||||
"type": "form",
|
||||
"children": [{
|
||||
"type": "form",
|
||||
"children": [{
|
||||
"type": "enum",
|
||||
"key": "ocioConfigName",
|
||||
"label": "OpenColorIO Config",
|
||||
"enum_items": [{
|
||||
"nuke-default": "nuke-default"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_1.0.3"
|
||||
},
|
||||
{
|
||||
"aces_1.1": "aces_1.1"
|
||||
},
|
||||
{
|
||||
"custom": "custom"
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "path-widget",
|
||||
"key": "ocioconfigpath",
|
||||
"label": "Custom OCIO path",
|
||||
"multiplatform": true,
|
||||
"multipath": true
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "workingSpace",
|
||||
"label": "Working Space"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "sixteenBitLut",
|
||||
"label": "16 Bit Files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "eightBitLut",
|
||||
"label": "8 Bit Files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "floatLut",
|
||||
"label": "Floating Point Files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "logLut",
|
||||
"label": "Log Files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "viewerLut",
|
||||
"label": "Viewer"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "thumbnailLut",
|
||||
"label": "Thumbnails"
|
||||
}]
|
||||
}]
|
||||
}, {
|
||||
"key": "regexInputs",
|
||||
"type": "dict",
|
||||
"label": "Colorspace on Inputs by regex detection",
|
||||
"collapsable": true,
|
||||
"children": [{
|
||||
"type": "list",
|
||||
"key": "inputs",
|
||||
"label": "",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "text",
|
||||
"key": "regex",
|
||||
"label": "Regex"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "colorspace",
|
||||
"label": "Colorspace"
|
||||
}]
|
||||
}
|
||||
"type": "enum",
|
||||
"key": "ocioConfigName",
|
||||
"label": "OpenColorIO Config",
|
||||
"enum_items": [{
|
||||
"nuke-default": "nuke-default"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_1.0.3"
|
||||
},
|
||||
{
|
||||
"aces_1.1": "aces_1.1"
|
||||
},
|
||||
{
|
||||
"custom": "custom"
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "path-widget",
|
||||
"key": "ocioconfigpath",
|
||||
"label": "Custom OCIO path",
|
||||
"multiplatform": true,
|
||||
"multipath": true
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "workingSpace",
|
||||
"label": "Working Space"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "sixteenBitLut",
|
||||
"label": "16 Bit Files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "eightBitLut",
|
||||
"label": "8 Bit Files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "floatLut",
|
||||
"label": "Floating Point Files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "logLut",
|
||||
"label": "Log Files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "viewerLut",
|
||||
"label": "Viewer"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "thumbnailLut",
|
||||
"label": "Thumbnails"
|
||||
}]
|
||||
}]
|
||||
}, {
|
||||
"key": "nuke",
|
||||
"key": "regexInputs",
|
||||
"type": "dict",
|
||||
"label": "Nuke",
|
||||
"label": "Colorspace on Inputs by regex detection",
|
||||
"collapsable": true,
|
||||
"children": [{
|
||||
"key": "workfile",
|
||||
"type": "dict",
|
||||
"label": "Workfile",
|
||||
"collapsable": false,
|
||||
"is_group": true,
|
||||
"children": [{
|
||||
"type": "form",
|
||||
"type": "list",
|
||||
"key": "inputs",
|
||||
"label": "",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "enum",
|
||||
"key": "colorManagement",
|
||||
"label": "color management",
|
||||
"enum_items": [{
|
||||
"Nuke": "Nuke"
|
||||
},
|
||||
{
|
||||
"OCIO": "OCIO"
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "enum",
|
||||
"key": "OCIO_config",
|
||||
"label": "OpenColorIO Config",
|
||||
"enum_items": [{
|
||||
"nuke-default": "nuke-default"
|
||||
},
|
||||
{
|
||||
"spi-vfx": "spi-vfx"
|
||||
},
|
||||
{
|
||||
"spi-anim": "spi-anim"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_0.1.1"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_0.7.1"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_1.0.1"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_1.0.3"
|
||||
},
|
||||
{
|
||||
"aces_1.1": "aces_1.1"
|
||||
},
|
||||
{
|
||||
"custom": "custom"
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "path-widget",
|
||||
"key": "customOCIOConfigPath",
|
||||
"label": "Custom OCIO config path",
|
||||
"multiplatform": true,
|
||||
"multipath": true
|
||||
"type": "text",
|
||||
"key": "regex",
|
||||
"label": "Regex"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "workingSpaceLUT",
|
||||
"label": "Working Space"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "monitorLut",
|
||||
"label": "monitor"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "int8Lut",
|
||||
"label": "8-bit files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "int16Lut",
|
||||
"label": "16-bit files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "logLut",
|
||||
"label": "log files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "floatLut",
|
||||
"label": "float files"
|
||||
"key": "colorspace",
|
||||
"label": "Colorspace"
|
||||
}]
|
||||
}
|
||||
}]
|
||||
}]
|
||||
}, {
|
||||
"key": "nuke",
|
||||
"type": "dict",
|
||||
"label": "Nuke",
|
||||
"children": [{
|
||||
"key": "workfile",
|
||||
"type": "dict",
|
||||
"label": "Workfile",
|
||||
"collapsable": false,
|
||||
"is_group": true,
|
||||
"children": [{
|
||||
"type": "form",
|
||||
"children": [{
|
||||
"type": "enum",
|
||||
"key": "colorManagement",
|
||||
"label": "color management",
|
||||
"enum_items": [{
|
||||
"Nuke": "Nuke"
|
||||
},
|
||||
{
|
||||
"OCIO": "OCIO"
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "enum",
|
||||
"key": "OCIO_config",
|
||||
"label": "OpenColorIO Config",
|
||||
"enum_items": [{
|
||||
"nuke-default": "nuke-default"
|
||||
},
|
||||
{
|
||||
"spi-vfx": "spi-vfx"
|
||||
},
|
||||
{
|
||||
"spi-anim": "spi-anim"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_0.1.1"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_0.7.1"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_1.0.1"
|
||||
},
|
||||
{
|
||||
"aces_1.0.3": "aces_1.0.3"
|
||||
},
|
||||
{
|
||||
"aces_1.1": "aces_1.1"
|
||||
},
|
||||
{
|
||||
"custom": "custom"
|
||||
}
|
||||
]
|
||||
}, {
|
||||
"type": "path-widget",
|
||||
"key": "customOCIOConfigPath",
|
||||
"label": "Custom OCIO config path",
|
||||
"multiplatform": true,
|
||||
"multipath": true
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "workingSpaceLUT",
|
||||
"label": "Working Space"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "monitorLut",
|
||||
"label": "monitor"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "int8Lut",
|
||||
"label": "8-bit files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "int16Lut",
|
||||
"label": "16-bit files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "logLut",
|
||||
"label": "log files"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "floatLut",
|
||||
"label": "float files"
|
||||
}]
|
||||
}, {
|
||||
"key": "nodes",
|
||||
"type": "dict",
|
||||
"label": "Nodes",
|
||||
"collapsable": true,
|
||||
"is_group": true,
|
||||
"children": [
|
||||
{
|
||||
"key": "requiredNodes",
|
||||
}]
|
||||
}, {
|
||||
"key": "nodes",
|
||||
"type": "dict",
|
||||
"label": "Nodes",
|
||||
"collapsable": true,
|
||||
"is_group": true,
|
||||
"children": [{
|
||||
"key": "requiredNodes",
|
||||
"type": "list",
|
||||
"label": "Required Nodes",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "list",
|
||||
"label": "Required Nodes",
|
||||
"key": "plugins",
|
||||
"label": "Used in plugins",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "list",
|
||||
"key": "plugins",
|
||||
"label": "Used in plugins",
|
||||
"object_type": {
|
||||
"type": "text",
|
||||
"key": "pluginClass",
|
||||
"label": "Plugin Class"
|
||||
}
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "nukeNodeClass",
|
||||
"label": "Nuke Node Class"
|
||||
}, {
|
||||
"type": "splitter"
|
||||
}, {
|
||||
"key": "knobs",
|
||||
"label": "Knobs",
|
||||
"type": "list",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "text",
|
||||
"key": "name",
|
||||
"label": "Name"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "value",
|
||||
"label": "Value"
|
||||
}]
|
||||
}
|
||||
}]
|
||||
"type": "text",
|
||||
"key": "pluginClass",
|
||||
"label": "Plugin Class"
|
||||
}
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "nukeNodeClass",
|
||||
"label": "Nuke Node Class"
|
||||
}, {
|
||||
"type": "splitter"
|
||||
}, {
|
||||
"key": "knobs",
|
||||
"label": "Knobs",
|
||||
"type": "list",
|
||||
"key": "customNodes",
|
||||
"label": "Custom Nodes",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "list",
|
||||
"key": "plugins",
|
||||
"label": "Used in plugins",
|
||||
"object_type": {
|
||||
"type": "text",
|
||||
"key": "pluginClass",
|
||||
"label": "Plugin Class"
|
||||
}
|
||||
"type": "text",
|
||||
"key": "name",
|
||||
"label": "Name"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "nukeNodeClass",
|
||||
"label": "Nuke Node Class"
|
||||
}, {
|
||||
"type": "splitter"
|
||||
}, {
|
||||
"key": "knobs",
|
||||
"label": "Knobs",
|
||||
"type": "list",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "text",
|
||||
"key": "name",
|
||||
"label": "Name"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "value",
|
||||
"label": "Value"
|
||||
}]
|
||||
}
|
||||
"key": "value",
|
||||
"label": "Value"
|
||||
}]
|
||||
}
|
||||
}
|
||||
]
|
||||
}]
|
||||
}
|
||||
}, {
|
||||
"key": "regexInputs",
|
||||
"type": "dict",
|
||||
"label": "Colorspace on Inputs by regex detection",
|
||||
"collapsable": true,
|
||||
"children": [{
|
||||
"type": "list",
|
||||
"key": "inputs",
|
||||
"label": "",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "list",
|
||||
"key": "customNodes",
|
||||
"label": "Custom Nodes",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "list",
|
||||
"key": "plugins",
|
||||
"label": "Used in plugins",
|
||||
"object_type": {
|
||||
"type": "text",
|
||||
"key": "regex",
|
||||
"label": "Regex"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "colorspace",
|
||||
"label": "Colorspace"
|
||||
}]
|
||||
}
|
||||
}]
|
||||
"key": "pluginClass",
|
||||
"label": "Plugin Class"
|
||||
}
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "nukeNodeClass",
|
||||
"label": "Nuke Node Class"
|
||||
}, {
|
||||
"type": "splitter"
|
||||
}, {
|
||||
"key": "knobs",
|
||||
"label": "Knobs",
|
||||
"type": "list",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "text",
|
||||
"key": "name",
|
||||
"label": "Name"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "value",
|
||||
"label": "Value"
|
||||
}]
|
||||
}
|
||||
}]
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"key": "regexInputs",
|
||||
"type": "dict",
|
||||
"label": "Colorspace on Inputs by regex detection",
|
||||
"collapsable": true,
|
||||
"children": [{
|
||||
"type": "list",
|
||||
"key": "inputs",
|
||||
"label": "",
|
||||
"object_type": {
|
||||
"type": "dict",
|
||||
"children": [{
|
||||
"type": "text",
|
||||
"key": "regex",
|
||||
"label": "Regex"
|
||||
}, {
|
||||
"type": "text",
|
||||
"key": "colorspace",
|
||||
"label": "Colorspace"
|
||||
}]
|
||||
}
|
||||
}]
|
||||
}]
|
||||
}]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue