{
	"name": "Cite",
	"author": [
		"Ævar Arnfjörð Bjarmason",
		"Andrew Garrett",
		"Brion Vibber",
		"Ed Sanders",
		"Marius Hoch",
		"Steve Sanbeg",
		"Trevor Parscal",
		"..."
	],
	"url": "https://www.mediawiki.org/wiki/Extension:Cite",
	"descriptionmsg": "cite-desc",
	"license-name": "GPL-2.0-or-later",
	"type": "parserhook",
	"requires": {
		"MediaWiki": ">= 1.45"
	},
	"MessagesDirs": {
		"Cite": [
			"i18n",
			"modules/ve-cite/i18n"
		]
	},
	"Hooks": {
		"APIQuerySiteInfoGeneralInfo": "main",
		"CommunityConfigurationProvider_initList": "communityconfiguration",
		"ContentHandlerDefaultModelFor": "main",
		"GetPreferences": "referencepreviews",
		"ParserAfterParse": "parser",
		"ParserClearState": "parser",
		"ParserFirstCallInit": "parser",
		"EditPage::showEditForm:initial": "main",
		"MakeGlobalVariablesScript": "referencepreviews",
		"ResourceLoaderGetConfigVars": "main",
		"ResourceLoaderRegisterModules": "referencepreviews",
		"UserGetDefaultOptions": "referencepreviews"
	},
	"HookHandlers": {
		"communityconfiguration": {
			"class": "Cite\\Config\\CommunityConfigurationHooks"
		},
		"main": {
			"class": "Cite\\Hooks\\CiteHooks",
			"services": [
				"UserOptionsLookup"
			]
		},
		"parser": {
			"class": "Cite\\Hooks\\CiteParserHooks",
			"services": [
				"Cite.CiteFactory"
			]
		},
		"referencepreviews": {
			"class": "Cite\\Hooks\\ReferencePreviewsHooks",
			"services": [
				"ExtensionRegistry",
				"Cite.ReferencePreviewsContext",
				"Cite.GadgetsIntegration"
			]
		}
	},
	"ResourceModules": {
		"ext.cite.styles": {
			"styles": {
				"ext.cite.styles.less": {},
				"ext.cite.print.less": {
					"media": "print"
				}
			},
			"skinStyles": {
				"minerva": "ext.cite.styles.minerva.less",
				"vector-2022": "ext.cite.styles.vector2022.less"
			}
		},
		"ext.cite.parsoid.styles": {
			"localBasePath": "modules/parsoid-styles",
			"remoteExtPath": "Cite/modules/parsoid-styles",
			"class": "Cite\\ResourceLoader\\CiteCSSFileModule",
			"styles": "ext.cite.parsoid.styles.less",
			"skinStyles": {
				"minerva": "ext.cite.parsoid.styles.minerva.less"
			}
		},
		"ext.cite.ux-enhancements": {
			"localBasePath": "modules",
			"remoteExtPath": "Cite/modules",
			"scripts": [
				"ext.cite.a11y.js",
				"ext.cite.highlighting.js"
			],
			"styles": [
				"ext.cite.a11y.less",
				"ext.cite.highlighting.less"
			],
			"messages": [
				"cite_references_link_accessibility_label",
				"cite_references_link_many_accessibility_label",
				"cite_references_link_accessibility_back_label"
			]
		},
		"ext.cite.community-configuration": {
			"localBasePath": "modules/community-configuration",
			"remoteExtPath": "Cite/modules/community-configuration",
			"class": "MediaWiki\\ResourceLoader\\CodexModule",
			"dependencies": [
				"vue"
			],
			"messages": [
				"cite-configuration-title",
				"cite-configuration-submit",
				"cite-configuration-backlink-title",
				"cite-configuration-backlink-description",
				"cite-configuration-backlink-alpha-suggestion",
				"cite-configuration-backlink-marker-label",
				"cite-configuration-backlink-marker-description",
				"cite-configuration-backlink-marker-help"
			],
			"packageFiles": [
				"init.js",
				"components/BacklinkSettings.vue",
				"components/CommunityConfiguration.vue",
				{
					"name": "icons.json",
					"callback": "MediaWiki\\ResourceLoader\\CodexModule::getIcons",
					"callbackParam": [
						"cdxIconAdd",
						"cdxIconTrash"
					]
				}
			],
			"codexComponents": [
				"CdxButton",
				"CdxIcon",
				"CdxField",
				"CdxTextInput",
				"CdxLookup",
				"CdxToggleSwitch",
				"CdxLabel",
				"CdxTextArea",
				"CdxCard"
			]
		}
	},
	"ResourceFileModulePaths": {
		"localBasePath": "modules",
		"remoteExtPath": "Cite/modules"
	},
	"ServiceWiringFiles": [
		"src/ServiceWiring.php"
	],
	"QUnitTestModule": {
		"localBasePath": "tests/qunit",
		"remoteExtPath": "Cite/tests/qunit",
		"scripts": [
			"ext.cite.referencePreviews/createReferenceGateway.test.js",
			"ext.cite.referencePreviews/isReferencePreviewsEnabled.test.js",
			"ext.cite.referencePreviews/renderer.test.js",
			"ext.cite.highlighting.test.js"
		],
		"dependencies": [
			"ext.cite.ux-enhancements"
		],
		"optional": {
			"Popups": {
				"dependencies": [
					"ext.cite.referencePreviews"
				]
			},
			"VisualEditor": {
				"scripts": [
					"ve-cite/ve.dm.citeExample.js",
					"ve-cite/converter/ve.dm.Converter.test.js",
					"ve-cite/converter/ve.dm.ConverterIntegrationTestCases.js",
					"ve-cite/converter/ve.dm.ConverterStoreTestCases.js",
					"ve-cite/converter/ve.dm.ConverterSubReferenceTestCases.js",
					"ve-cite/converter/ve.dm.ConverterTestCases.js",
					"ve-cite/ve.dm.MWDocumentReferences.test.js",
					"ve-cite/ve.dm.MWGroupReferences.test.js",
					"ve-cite/ve.dm.InternalList.test.js",
					"ve-cite/ve.dm.MWReferenceModel.test.js",
					"ve-cite/ve.dm.MWReferenceNode.test.js",
					"ve-cite/ve.dm.MWReferencesListNode.test.js",
					"ve-cite/ve.dm.Transaction.test.js",
					"ve-cite/ve.ce.ClipboardHandler.test.js",
					"ve-cite/ve.ui.DiffElement.test.js",
					"ve-cite/ve.ui.MWCitationDialogTool.test.js",
					"ve-cite/ve.ui.MWReferenceContextItem.test.js",
					"ve-cite/ve.ui.MWReferenceEditPanel.test.js",
					"ve-cite/ve.ui.MWReferenceGroupInputWidget.test.js",
					"ve-cite/ve.ui.MWReferenceResultWidget.test.js",
					"ve-cite/ve.ui.MWReferenceSearchWidget.test.js",
					"ve-cite/ve.ui.MWReferencesListDialog.test.js",
					"ve-cite/ve.ui.MWUseExistingReferenceCommand.test.js",
					"ve-cite/ve.ui.MWWikitextStringTransferHandler.test.js"
				],
				"dependencies": [
					"ext.cite.visualEditor",
					"test.VisualEditor"
				]

			}
		},
		"factory": "Cite\\ResourceLoader\\OptionalLoader::addOptional"
	},
	"attributes": {
		"CodeMirror": {
			"TagModes": {
				"ref": "text/mediawiki",
				"references": "text/mediawiki"
			}
		},
		"CommunityConfiguration": {
			"EditorCapabilities": {
				"citeEditor": {
					"class": "Cite\\Config\\CiteEditorCapability",
					"services": [
						"Cite.AlphabetsProvider",
						"MainConfig",
						"ContentLanguage",
						"LinkRenderer"
					]
				}
			},
			"Providers": {
				"Cite": {
					"store": {
						"type": "wikipage",
						"args": [
							"MediaWiki:CiteConfig.json"
						]
					},
					"validator": {
						"type": "jsonschema",
						"args": [
							"Cite\\Config\\Schemas\\CiteSchema"
						]
					},
					"type": "mw-config",
					"options": {
						"editorCapability": "citeEditor"
					}
				}
			}
		},
		"Popups": {
			"PluginModules": [
				"ext.cite.referencePreviews"
			]
		},
		"VisualEditor": {
			"PluginModules": [
				"ext.cite.visualEditor"
			]
		}
	},
	"ConfigRegistry": {
		"cite": "MediaWiki\\Config\\GlobalVarConfig::newInstance"
	},
	"config": {
		"CiteSubReferencing": {
			"description": "Temporary feature flag while the sub-referencing feature (a way to nest citations and e.g. reference pages in a book) is in development.",
			"value": false
		},
		"CiteSubRefMergeInDevelopment": {
			"description": "Dev-only feature flag to temporarily hide risky parts of the feature to merge (i.e. \"reuse\") identical sub-references (see T406453). This might affect how sub-references are numbered, e.g. later sub-references get lower numbers when earlier ones are merged. It might also affect the behavior of VisualEditor.",
			"value": false
		},
		"CiteVisualEditorOtherGroup": {
			"description": "If VisualEditor should list the citation features as part of the existing \"Insert\" drop-down menu instead of a top-level \"Cite\" toolbar button.",
			"value": false
		},
		"CiteResponsiveReferences": {
			"description": "If long <references /> lists with more than $wgCiteResponsiveReferencesThreshold references should behave responsive by default and be displayed in two or more columns. This can also be toggled individually with <references responsive /> to enable and <references responsive=\"0\" /> to disable it.",
			"value": true
		},
		"CiteResponsiveReferencesThreshold": {
			"description": "The number of references at which CiteResponsiveReferences is enabled.",
			"value": 10
		},
		"CiteReferencePreviews": {
			"description": "Feature flag to enable or disable the popups provided by the Popups extension for <ref> tags.",
			"value": true
		},
		"CiteReferencePreviewsConflictingNavPopupsGadgetName": {
			"description": "@var string: Name of a gadget that would cause duplicate reference preview popups. Should usually be identical to wgPopupsConflictingNavPopupsGadgetName in the Popups extension.",
			"value": "Navigation_popups"
		},
		"CiteReferencePreviewsConflictingRefTooltipsGadgetName": {
			"description": "@var string: Name of a gadget that would cause duplicate reference preview popups. Known conflicting gadgets include \"ReferenceTooltips\", \"CiteTooltip\" alias \"RefTooltip\", \"ReferencePopups\", and \"tooltipRef\" (see T274353).",
			"value": "ReferenceTooltips"
		},
		"CiteUseLegacyBacklinkLabels": {
			"description": "Feature flag switching between numeric and legacy i18n backlink labels (true) and new-style Community Configuration and CLDR alphabet sequences (false).",
			"value": true
		},
		"CiteBacklinkCommunityConfiguration": {
			"description": "Feature flag to enable the Cite community configuration.",
			"value": false
		},
		"CiteDefaultBacklinkAlphabet": {
			"description": "List of letters in the Alphabet to be used to auto-generate backlink labels. Separated by spaces. Defaults to English Alphabet \"a\" to \"z\" when not specified. Currently only used when CiteUseLegacyBacklinkLabels is set to false.",
			"value": null
		}
	},
	"AutoloadNamespaces": {
		"Cite\\": "src/"
	},
	"TestAutoloadNamespaces": {
		"Cite\\Tests\\": "tests/phpunit/"
	},
	"TrackingCategories": [
		"cite-tracking-category-cite-diffing-error",
		"cite-tracking-category-cite-error",
		"cite-tracking-category-ref-details"
	],
	"ParsoidModules": [
		{
			"name": "Cite",
			"domProcessors": [
				{
					"class": "Cite\\Parsoid\\CiteDocumentPostProcessor",
					"services": [
						"MainConfig"
					]
				}
			],
			"tags": [
				{
					"name": "ref",
					"handler": {
						"class": "Cite\\Parsoid\\RefTagHandler",
						"services": [
							"MainConfig"
						]
					},
					"options": {
						"wt2html": {
							"unpackOutput": false,
							"embedsHTMLInAttributes": true
						},
						"outputHasCoreMwDomSpecMarkup": true
					}
				},
				{
					"name": "references",
					"handler": {
						"class": "Cite\\Parsoid\\ReferenceListTagHandler",
						"services": [
							"MainConfig"
						]
					},
					"options": {
						"wt2html": {
							"embedsHTMLInAttributes": true
						},
						"html2wt": {
							"format": "block"
						},
						"outputHasCoreMwDomSpecMarkup": true
					}
				}
			]
		}
	],
	"manifest_version": 2
}
