Extension:Linter/lt

This extension comes with MediaWiki 1.40 and above. Thus you do not have to download it again. However, you still need to follow the other instructions provided.
Category:Extensions bundled with MediaWiki 1.40/lt Category:GPL licensed extensions/lt
MediaWiki extensions manual
Linter
Release status: stableCategory:Stable extensions/lt
Implementation Special page Category:Special page extensions/lt
Description Expose and track lint errors
Author(s) Kunal Mehta (Legoktmaptarimas)
MediaWiki >= 1.44
Database changes Yes
Tables linter
License GNU General Public License 2.0 or later
Download Category:Extensions in Wikimedia version control/lt
README
  • $wgLinterCategories
  • $wgLinterParseOnDerivedDataUpdate
  • $wgLinterStatsdSampleFactor
Quarterly downloads 36 (Ranked 78th)
Public wikis using 884 (Ranked 294th)
Translate the Linter extension if it is available at translatewiki.net
Issues Open tasks · Report a bug
Category:All extensions/lt

The Linter extension tracks lint errors from an external service. Currently the main use case is to track the errors identified by Parsoid and expose them to editors. Help for users wanting to fix errors is available at Help:Extension:Linter.

Įdiegimas

This extension requires linting enabled in Parsoid's configuration.
  • Download and move the extracted Linter folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Linter
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'Linter' );
    
  • Run the update script which will automatically create the necessary database tables that this extension needs.Add the suggested configuration:
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Nustatymų parametrai

Add the following to your LocalSettings.php file, editing as necessary:

// Load Parsoid
wfLoadExtension(
    'Parsoid',
	"$IP/vendor/wikimedia/parsoid/extension.json"
);

$wgParsoidSettings = [
    'useSelser' => true,
    'linting' => true
];

$wgVisualEditorParsoidAutoConfig = false; // to make linting work

$wgVirtualRestConfig = [
	'paths' => [],
	'modules' => [
		'parsoid' => [
			'url' => 'https://www.mysite.wiki/w/rest.php',
			'domain' => 'www.mysite.wiki',
			'forwardCookies' => true,
			'restbaseCompat' => false,
			'timeout' => 30
		],
	],
	'global' => [
		'timeout' => 360,
		'forwardCookies' => false,
		'HTTPProxy' => null
	]
];

Upgrading to MediaWiki 1.43.x

Updating the extension's database table for MediaWiki 1.43 may need special attention.[1]

The "update.php" script runs two time-consuming migration scripts that update the Linter database table at approximately 500 rows per second. Running "update.php" directly is recommended.

For large Linter tables where extended maintenance time is not feasible:

Upgrading from 1.40+
  1. Set $wgLinterWriteNamespaceColumnStage = true
  2. Set $wgLinterWriteTagAndTemplateColumnsStage = true
  3. Run $ path/to/mediawiki/maintenance/run.php migrateNamespace
  4. Run $ path/to/mediawiki/maintenance/run.php migrateTagTemplate
  5. Proceed with MediaWiki and extensions update to 1.43
Upgrading from 1.39 or earlier
  1. Update to MediaWiki 1.42 first
  2. Then follow steps above for 1.40+ upgrade


API

list=linterrors (lnt)

(main | query | linterrors)

Get a list of lint errors

Specific parameters:
Other general parameters are available.
lntcategories

Categories of lint errors

Values (separate with | or alternative): bogus-image-options, deletable-table-tag, duplicate-ids, empty-heading, fostered, fostered-transparent, html5-misnesting, large-tables, misc-tidy-replacement-issues, misnested-tag, missing-end-tag, missing-end-tag-in-heading, multi-colon-escape, multiline-html-table-in-list, multiple-unclosed-formatting-tags, night-mode-unaware-background-color, obsolete-tag, pwrap-bug-workaround, self-closed-tag, stripped-tag, tidy-font-bug, tidy-whitespace-bug, unclosed-quotes-in-heading, wikilink-in-extlink
Default: deletable-table-tag|duplicate-ids|html5-misnesting|misc-tidy-replacement-issues|multiline-html-table-in-list|multiple-unclosed-formatting-tags|pwrap-bug-workaround|self-closed-tag|tidy-font-bug|tidy-whitespace-bug|unclosed-quotes-in-heading|bogus-image-options|fostered|misnested-tag|multi-colon-escape|wikilink-in-extlink|empty-heading|missing-end-tag|missing-end-tag-in-heading|night-mode-unaware-background-color|obsolete-tag|stripped-tag
lntlimit

Number of results to query

Type: integer or max
The value must be between 1 and 500.
Default: 10
lntnamespace

Only include lint errors from the specified namespaces

Values (separate with | or alternative): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 90, 91, 92, 93, 100, 101, 102, 103, 104, 105, 106, 107, 710, 711, 828, 829, 1198, 1199, 2600, 5500, 5501
To specify all values, use *.
lntpageid

Only include lint errors from the specified page IDs

Type: list of integers
Separate values with | or alternative.
Maximum number of values is 50 (500 for clients that are allowed higher limits).
lnttitle

Only include lint errors from the specified page title

lntfrom

Lint ID to start querying from

Type: integer
Example:
Get all lint errors of the obsolete-tag category
api.php?action=query&list=linterrors&lntcategories=obsolete-tag [open in sandbox]

meta=linterstats (lntrst)

(main | query | linterstats)

Get number of lint errors in each category

Example:
Get number of lint errors in each category
api.php?action=query&meta=linterstats [open in sandbox]

Linter categories

A list of linter categories is available in site info properties.

Bootstrap or reprocess all pages

Instead of running refreshLinks.php, it's possible to populate lint errors by querying parsoid directly. See phab:T161556#3184216 for an example script.

Special pages

The extension provides the Special:LintErrors page.

Configuring available lints

The Special:LintErrors page displays available lints with associated priority that have been defined in the configuration parameter $wgLinterCategories.

Each linter category has the following fields:

  • dbid: the unique id associated with the lint category used in the database.
  • enabled: whether the lint rule is enabled. If lints are disabled they will not be accessible from the special page.
  • priority: either none, low, medium or high. Lints that are none will not be listed on Special:LintErrors but will be accessible through the web via the associated subpage.
  • no-params: no parameters are associated with the lint category.
  • has-name: indicates that the lints are expected to contain a name parameter, so the special page displays the column in the UI.

For new lints, it is recommended that by default they are defined as priority none and that they are promoted after testing and some discussion with the linting community. No formal process exists for promoting lint priorities at time of writing.

References


Category:Extensions used on Wikimedia/lt#Linter/lt
Category:APIQuerySiteInfoGeneralInfo extensions/lt Category:All extensions/lt Category:BeforePageDisplay extensions/lt Category:Extensions available as Debian packages/lt Category:Extensions bundled with MediaWiki 1.40/lt Category:Extensions in Wikimedia version control/lt Category:Extensions included in Canasta/lt Category:Extensions included in Miraheze/lt Category:Extensions included in MyWikis/lt Category:Extensions included in WikiForge/lt Category:Extensions used on Wikimedia/lt Category:GPL licensed extensions/lt Category:InfoAction extensions/lt Category:LoadExtensionSchemaUpdates extensions/lt Category:ParserLogLinterData extensions/lt Category:RevisionDataUpdates extensions/lt Category:Special page extensions/lt Category:Stable extensions/lt Category:WikiPageDeletionUpdates extensions/lt