{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "\u914d\u7f6e",
    "type": "object",
    "properties": {
        "localFiles": {
            "title": "\u672c\u5730\u6587\u4ef6",
            "type": "object",
            "readonly": true,
            "collapsed": true,
            "properties": {
                "configurationPath": {
                    "type": "string",
                    "title": "\u914d\u7f6e\u6587\u4ef6\u8def\u5f84"
                },
                "historyPath": {
                    "type": "string",
                    "title": "\u5386\u53f2\u6587\u4ef6\u8def\u5f84"
                }
            },
            "required": [
                "configurationPath",
                "historyPath"
            ]
        },
        "sync": {
            "title": "\u540c\u6b65\u914d\u7f6e",
            "type": "object",
            "collapsed": true,
            "properties": {
                "willSync": {
                    "type": "boolean",
                    "title": "\u662f\u5426\u5f00\u542f\u540c\u6b65\uff0c\u5982\u679c\u4e0d\u5f00\u542f\u540c\u6b65\uff0c\u5386\u53f2\u7eaa\u5f55\u4f1a\u4fdd\u5b58\u5728\u672c\u5730",
                    "default": false,
                    "format": "checkbox",
                    "propertyOrder": 1
                },
                "serverUrl": {
                    "type": "string",
                    "title": "\u670d\u52a1\u5668\u5730\u5740",
                    "default": "",
                    "propertyOrder": 2,
                    "requiredWhen": [
                        "willSync",
                        "===",
                        true
                    ]
                },
                "key": {
                    "type": "string",
                    "title": "\u5bc6\u94a5",
                    "default": "",
                    "propertyOrder": 3,
                    "requiredWhen": [
                        "willSync",
                        "===",
                        true
                    ]
                }
            },
            "required": [
                "willSync"
            ]
        },
        "rawSources": {
            "type": "array",
            "title": "\u6570\u636e\u6e90\u914d\u7f6e",
            "format": "tabs",
            "_uniqueItems": true,
            "collapsed": true,
            "items": {
                "type": "object",
                "title": "Source",
                "collapsed": true,
                "properties": {
                    "name": {
                        "type": "string",
                        "title": "\u547d\u540d",
                        "default": "",
                        "propertyOrder": 1
                    },
                    "disabled": {
                        "type": "boolean",
                        "title": "\u662f\u5426\u7981\u7528",
                        "default": false,
                        "format": "checkbox",
                        "propertyOrder": 2
                    },
                    "url": {
                        "type": "string",
                        "title": "\u9875\u9762URL",
                        "default": "",
                        "propertyOrder": 3
                    },
                    "isMilestone": {
                        "type": "boolean",
                        "title": "\u662f\u5426github\u9879\u76ee\u7684milestone\u9875",
                        "default": false,
                        "propertyOrder": 4
                    },
                    "selector": {
                        "type": "string",
                        "title": "\u9009\u62e9\u5668",
                        "propertyOrder": 5,
                        "requiredWhen": [
                            "isMilestone",
                            "===",
                            false
                        ]
                    },
                    "getItem": {
                        "type": "string",
                        "title": "\u83b7\u53d6\u4fe1\u606f\u51fd\u6570",
                        "default": "(cheerio, $) => {\n    return {\n        href: \"\", \n        title: \"\"\n    };\n}",
                        "format": "code",
                        "propertyOrder": 6,
                        "requiredWhen": [
                            "isMilestone",
                            "===",
                            false
                        ]
                    },
                    "limit": {
                        "type": "number",
                        "title": "\u9650\u5236\u6570\u76ee",
                        "propertyOrder": 7,
                        "requiredWhen": [
                            "isMilestone",
                            "===",
                            false
                        ]
                    }
                },
                "required": [
                    "name",
                    "url",
                    "isMilestone",
                    "disabled"
                ]
            }
        }
    },
    "required": [
        "sync",
        "rawSources"
    ]
}