wikilint 2.37.0 → 2.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,6 +14,9 @@
14
14
  "dynamicpagelist",
15
15
  "imagemap",
16
16
  "inputbox",
17
+ "math",
18
+ "ce",
19
+ "chem",
17
20
  "img",
18
21
  "poem",
19
22
  "source",
@@ -7,7 +7,6 @@
7
7
  "\\alpha",
8
8
  "\\Alpha",
9
9
  "\\amalg",
10
- "\\and",
11
10
  "\\And",
12
11
  "\\angle",
13
12
  "\\approx",
@@ -29,7 +28,6 @@
29
28
  "\\backslash",
30
29
  "\\bar",
31
30
  "\\barwedge",
32
- "\\Bbb",
33
31
  "\\Bbbk",
34
32
  "\\bcancel",
35
33
  "\\because",
@@ -72,8 +70,8 @@
72
70
  "\\blacktriangleleft",
73
71
  "\\blacktriangleright",
74
72
  "\\bmod",
75
- "\\bold",
76
73
  "\\boldsymbol",
74
+ "\\bond",
77
75
  "\\bot",
78
76
  "\\bowtie",
79
77
  "\\Box",
@@ -86,7 +84,7 @@
86
84
  "\\bullet",
87
85
  "\\bumpeq",
88
86
  "\\Bumpeq",
89
- "\\C",
87
+ "\\ca",
90
88
  "\\cal",
91
89
  "\\cancel",
92
90
  "\\cancelto",
@@ -94,6 +92,7 @@
94
92
  "\\Cap",
95
93
  "\\cdot",
96
94
  "\\cdots",
95
+ "\\ce",
97
96
  "\\centerdot",
98
97
  "\\cfrac",
99
98
  "\\check",
@@ -185,7 +184,6 @@
185
184
  "\\emph",
186
185
  "\\empty",
187
186
  "\\emptyset",
188
- "\\end",
189
187
  "\\epsilon",
190
188
  "\\Epsilon",
191
189
  "\\eqcirc",
@@ -234,8 +232,6 @@
234
232
  "\\gtrless",
235
233
  "\\gtrsim",
236
234
  "\\gvertneqq",
237
- "\\H",
238
- "\\hAar",
239
235
  "\\harr",
240
236
  "\\hArr",
241
237
  "\\Harr",
@@ -442,7 +438,6 @@
442
438
  "\\ominus",
443
439
  "\\operatorname",
444
440
  "\\oplus",
445
- "\\or",
446
441
  "\\oslash",
447
442
  "\\otimes",
448
443
  "\\over",
@@ -456,7 +451,6 @@
456
451
  "\\P",
457
452
  "\\pagecolor",
458
453
  "\\parallel",
459
- "\\part",
460
454
  "\\partial",
461
455
  "\\perp",
462
456
  "\\phantom",
@@ -672,6 +666,7 @@
672
666
  "\\vartriangleright",
673
667
  "\\varUpsilon",
674
668
  "\\varXi",
669
+ "\\vbox",
675
670
  "\\vdash",
676
671
  "\\vDash",
677
672
  "\\Vdash",
@@ -5,21 +5,18 @@
5
5
  "\\accentus",
6
6
  "\\accepts",
7
7
  "\\acciaccatura",
8
- "\\accidental",
9
8
  "\\accidentalStyle",
10
9
  "\\addChordShape",
11
10
  "\\addInstrumentDefinition",
12
11
  "\\addlyrics",
13
12
  "\\addQuote",
14
13
  "\\aeolian",
15
- "\\after",
16
14
  "\\afterGrace",
17
15
  "\\aikenHeads",
18
16
  "\\aikenHeadsMinor",
19
17
  "\\aikenThinHeads",
20
18
  "\\aikenThinHeadsMinor",
21
19
  "\\alias",
22
- "\\align-on-other",
23
20
  "\\allowPageTurn",
24
21
  "\\allowVoltaHook",
25
22
  "\\alterBroken",
@@ -72,8 +69,6 @@
72
69
  "\\beam",
73
70
  "\\beamExceptions",
74
71
  "\\bendAfter",
75
- "\\bendHold",
76
- "\\bendStartLevel",
77
72
  "\\blackTriangleMarkup",
78
73
  "\\bold",
79
74
  "\\book",
@@ -81,7 +76,6 @@
81
76
  "\\bookOutputSuffix",
82
77
  "\\bookpart",
83
78
  "\\box",
84
- "\\bp",
85
79
  "\\bracket",
86
80
  "\\break",
87
81
  "\\breathe",
@@ -103,7 +97,6 @@
103
97
  "\\clef",
104
98
  "\\cm",
105
99
  "\\coda",
106
- "\\codaMark",
107
100
  "\\column",
108
101
  "\\column-lines",
109
102
  "\\combine",
@@ -182,8 +175,6 @@
182
175
  "\\easyHeadsOff",
183
176
  "\\easyHeadsOn",
184
177
  "\\ellipse",
185
- "\\EnableGregorianDivisiones",
186
- "\\enablePolymeter",
187
178
  "\\endcr",
188
179
  "\\enddecr",
189
180
  "\\endSpanners",
@@ -202,14 +193,12 @@
202
193
  "\\fff",
203
194
  "\\ffff",
204
195
  "\\fffff",
205
- "\\figured-bass",
206
196
  "\\figuremode",
207
197
  "\\figures",
208
198
  "\\fill-line",
209
199
  "\\fill-with-pattern",
210
200
  "\\filled-box",
211
201
  "\\finalis",
212
- "\\fine",
213
202
  "\\finger",
214
203
  "\\first-visible",
215
204
  "\\fixed",
@@ -231,7 +220,6 @@
231
220
  "\\funkHeadsMinor",
232
221
  "\\general-align",
233
222
  "\\germanChords",
234
- "\\glide",
235
223
  "\\glissando",
236
224
  "\\glissandoMap",
237
225
  "\\grace",
@@ -259,9 +247,8 @@
259
247
  "\\hspace",
260
248
  "\\huge",
261
249
  "\\ictus",
262
- "\\if",
263
- "\\IIJ",
264
250
  "\\iij",
251
+ "\\IIJ",
265
252
  "\\ij",
266
253
  "\\IJ",
267
254
  "\\improvisationOff",
@@ -269,7 +256,6 @@
269
256
  "\\in",
270
257
  "\\incipit",
271
258
  "\\inclinatum",
272
- "\\include",
273
259
  "\\inherit-acceptability",
274
260
  "\\inStaffSegno",
275
261
  "\\instrumentSwitch",
@@ -278,7 +264,6 @@
278
264
  "\\ionian",
279
265
  "\\italianChords",
280
266
  "\\italic",
281
- "\\jump",
282
267
  "\\justified-lines",
283
268
  "\\justify",
284
269
  "\\justify-field",
@@ -320,7 +305,7 @@
320
305
  "\\major",
321
306
  "\\makeClusters",
322
307
  "\\makeDefaultStringTuning",
323
- "\\map-commands",
308
+ "\\map-markup-commands",
324
309
  "\\marcato",
325
310
  "\\mark",
326
311
  "\\markalphabet",
@@ -347,7 +332,6 @@
347
332
  "\\modalTranspose",
348
333
  "\\mordent",
349
334
  "\\mp",
350
- "\\multi-measure-rest-by-number",
351
335
  "\\musicglyph",
352
336
  "\\musicMap",
353
337
  "\\n",
@@ -386,7 +370,6 @@
386
370
  "\\overrideTimeSignatureSettings",
387
371
  "\\overtie",
388
372
  "\\p",
389
- "\\pad",
390
373
  "\\pad-around",
391
374
  "\\pad-markup",
392
375
  "\\pad-to-box",
@@ -428,7 +411,6 @@
428
411
  "\\pointAndClickOff",
429
412
  "\\pointAndClickOn",
430
413
  "\\pointAndClickTypes",
431
- "\\polygon",
432
414
  "\\portato",
433
415
  "\\postscript",
434
416
  "\\pp",
@@ -440,8 +422,6 @@
440
422
  "\\prallmordent",
441
423
  "\\prallprall",
442
424
  "\\prallup",
443
- "\\preBend",
444
- "\\preBendHold",
445
425
  "\\predefinedFretboardsOff",
446
426
  "\\predefinedFretboardsOn",
447
427
  "\\property-recursive",
@@ -464,11 +444,6 @@
464
444
  "\\RemoveEmptyStaves",
465
445
  "\\removeWithTag",
466
446
  "\\repeat",
467
- "\\repeat percent",
468
- "\\repeat segno",
469
- "\\repeat tremolo",
470
- "\\repeat unfold",
471
- "\\repeat volta",
472
447
  "\\repeatTie",
473
448
  "\\replace",
474
449
  "\\resetRelativeOctave",
@@ -481,7 +456,6 @@
481
456
  "\\revertTimeSignatureSettings",
482
457
  "\\rfz",
483
458
  "\\rheel",
484
- "\\rhythm",
485
459
  "\\right-align",
486
460
  "\\right-brace",
487
461
  "\\right-column",
@@ -498,10 +472,7 @@
498
472
  "\\scaleDurations",
499
473
  "\\score",
500
474
  "\\score-lines",
501
- "\\section",
502
- "\\sectionLabel",
503
475
  "\\segno",
504
- "\\segnoMark",
505
476
  "\\semicirculus",
506
477
  "\\semiflat",
507
478
  "\\semiGermanChords",
@@ -551,11 +522,11 @@
551
522
  "\\southernHarmonyHeads",
552
523
  "\\southernHarmonyHeadsMinor",
553
524
  "\\sp",
525
+ "\\spacingTweaks",
554
526
  "\\spp",
555
527
  "\\staccatissimo",
556
528
  "\\staccato",
557
529
  "\\staff-space",
558
- "\\staffHighlight",
559
530
  "\\startGroup",
560
531
  "\\startStaff",
561
532
  "\\startTrillSpan",
@@ -570,10 +541,8 @@
570
541
  "\\stopGroup",
571
542
  "\\stopped",
572
543
  "\\stopStaff",
573
- "\\stopStaffHighlight",
574
544
  "\\stopTrillSpan",
575
545
  "\\storePredefinedDiagram",
576
- "\\string-lines",
577
546
  "\\stringTuning",
578
547
  "\\stropha",
579
548
  "\\strut",
@@ -595,10 +564,8 @@
595
564
  "\\temporary",
596
565
  "\\tenuto",
597
566
  "\\text",
598
- "\\textEndMark",
599
567
  "\\textLengthOff",
600
568
  "\\textLengthOn",
601
- "\\textMark",
602
569
  "\\textSpannerDown",
603
570
  "\\textSpannerNeutral",
604
571
  "\\textSpannerUp",
@@ -642,10 +609,8 @@
642
609
  "\\underline",
643
610
  "\\undertie",
644
611
  "\\undo",
645
- "\\unfolded",
646
612
  "\\unfoldRepeats",
647
613
  "\\unHideNotes",
648
- "\\unless",
649
614
  "\\unset",
650
615
  "\\upbow",
651
616
  "\\upmordent",
@@ -671,8 +636,6 @@
671
636
  "\\voiceTwo",
672
637
  "\\voiceTwoStyle",
673
638
  "\\void",
674
- "\\volta",
675
- "\\vshape",
676
639
  "\\vspace",
677
640
  "\\walkerHeads",
678
641
  "\\walkerHeadsMinor",
@@ -680,15 +643,10 @@
680
643
  "\\whiteTriangleMarkup",
681
644
  "\\with",
682
645
  "\\with-color",
683
- "\\with-dimension",
684
- "\\with-dimension-from",
685
646
  "\\with-dimensions",
686
647
  "\\with-dimensions-from",
687
648
  "\\with-link",
688
649
  "\\with-outline",
689
- "\\with-string-transformer",
690
- "\\with-true-dimension",
691
- "\\with-true-dimensions",
692
650
  "\\with-url",
693
651
  "\\withMusicProperty",
694
652
  "\\woodwind-diagram",
@@ -700,334 +658,5 @@
700
658
  "\\wordwrap-string-internal",
701
659
  "\\xNote",
702
660
  "\\xNotesOff",
703
- "\\xNotesOn",
704
- "AccidentalSuggestion",
705
- "add-grace-property",
706
- "add-stem-support",
707
- "add-toc-item!",
708
- "additionalPitchPrefix",
709
- "afterGraceFraction",
710
- "alignAboveContext",
711
- "alignBelowContext",
712
- "ambitusAfter",
713
- "AmbitusLine",
714
- "annotate-spacing",
715
- "arpeggio-direction",
716
- "articulation-event",
717
- "associatedVoice",
718
- "aug",
719
- "auto-first-page-number",
720
- "autoBeaming",
721
- "Balloon_engraver",
722
- "banjo-c-tuning",
723
- "banjo-double-c-tuning",
724
- "banjo-double-d-tuning",
725
- "banjo-modal-tuning",
726
- "banjo-open-d-tuning",
727
- "banjo-open-dm-tuning",
728
- "banjo-open-g-tuning",
729
- "barCheckSynchronize",
730
- "BarNumber",
731
- "barNumberVisibility",
732
- "bartype",
733
- "base-shortest-duration",
734
- "baseMoment",
735
- "beatStructure",
736
- "binding-offset",
737
- "blank-after-score-page-penalty",
738
- "blank-last-page-penalty",
739
- "blank-page-penalty",
740
- "bookpart-level-page-numbering",
741
- "bookTitleMarkup",
742
- "bottom-margin",
743
- "bracket",
744
- "break-align-symbols",
745
- "break-visibility",
746
- "breakable",
747
- "breakbefore",
748
- "check-consistency",
749
- "choral",
750
- "choral-cautionary",
751
- "chordChanges",
752
- "ChordGrid",
753
- "chordNameExceptions",
754
- "chordNameLowercaseMinor",
755
- "ChordNames",
756
- "chordNameSeparator",
757
- "chordNoteNamer",
758
- "chordPrefixSpacer",
759
- "chordRootNamer",
760
- "clip-regions",
761
- "color",
762
- "common-shortest-duration",
763
- "Completion_heads_engraver",
764
- "Completion_rest_engraver",
765
- "context-spec-music",
766
- "controlpitch",
767
- "countPercentRepeats",
768
- "crescendo-event",
769
- "crescendoSpanner",
770
- "crescendoText",
771
- "cross",
772
- "CueVoice",
773
- "currentBarNumber",
774
- "debug-beam-scoring",
775
- "debug-slur-scoring",
776
- "debug-tie-scoring",
777
- "decrescendoSpanner",
778
- "decrescendoText",
779
- "default",
780
- "default-staff-staff-spacing",
781
- "dim",
782
- "dodecaphonic",
783
- "dodecaphonic-first",
784
- "dodecaphonic-no-repeat",
785
- "drumPitchNames",
786
- "drumPitchTable",
787
- "DrumStaff",
788
- "drumStyleTable",
789
- "dynamic-event",
790
- "DynamicLineSpanner",
791
- "Engraver_group",
792
- "explicitClefVisibility",
793
- "explicitKeySignatureVisibility",
794
- "extra-offset",
795
- "extra-spacing-height",
796
- "extra-spacing-width",
797
- "Ez_numbers_engraver",
798
- "figuredBassAlterationDirection",
799
- "figuredBassPlusDirection",
800
- "figuredBassPlusStrokedAlist",
801
- "fingeringOrientations",
802
- "first-page-number",
803
- "followVoice",
804
- "font-encoding",
805
- "font-interface",
806
- "font-size",
807
- "fontSize",
808
- "footnote-separator-markup",
809
- "Forbid_line_break_engraver",
810
- "forget",
811
- "four-string-banjo",
812
- "fret-diagram-interface",
813
- "FretBoards",
814
- "glide",
815
- "GregorianTranscriptionStaff",
816
- "gridInterval",
817
- "Grid_line_span_engraver",
818
- "Grid_point_engraver",
819
- "grob-interface",
820
- "grow-direction",
821
- "horizontal-shift",
822
- "HorizontalBracketText",
823
- "Horizontal_bracket_engraver",
824
- "indent",
825
- "inner-margin",
826
- "keepAliveInterfaces",
827
- "KievanStaff",
828
- "KievanVoice",
829
- "last-bottom-spacing",
830
- "layout-set-staff-size",
831
- "left-margin",
832
- "line-width",
833
- "ly:minimal-breaking",
834
- "ly:one-line-auto-height-breaking",
835
- "ly:one-line-breaking",
836
- "ly:one-page-breaking",
837
- "ly:optimal-breaking",
838
- "ly:page-turn-breaking",
839
- "m",
840
- "magnification->font-size",
841
- "magstep",
842
- "maj",
843
- "majorSevenSymbol",
844
- "make-dynamic-script",
845
- "make-pango-font-tree",
846
- "markup-markup-spacing",
847
- "markup-system-spacing",
848
- "Mark_engraver",
849
- "max-systems-per-page",
850
- "measureBarType",
851
- "measureLength",
852
- "measurePosition",
853
- "Measure_grouping_engraver",
854
- "MensuralStaff",
855
- "MensuralVoice",
856
- "midiBalance",
857
- "midiChannelMapping",
858
- "midiChorusLevel",
859
- "midiDrumPitches",
860
- "midiExpression",
861
- "midiPanPosition",
862
- "midiReverbLevel",
863
- "min-systems-per-page",
864
- "minimum-Y-extent",
865
- "minimumFret",
866
- "minimumPageTurnLength",
867
- "minimumRepeatLengthForPageTurn",
868
- "minorChordModifier",
869
- "mixed",
870
- "mode",
871
- "modern",
872
- "modern-cautionary",
873
- "modern-voice",
874
- "modern-voice-cautionary",
875
- "MultiMeasureRestScript",
876
- "MultiMeasureRestText",
877
- "musicQuotes",
878
- "neo-modern",
879
- "neo-modern-cautionary",
880
- "neo-modern-voice",
881
- "neo-modern-voice-cautionary",
882
- "no-reset",
883
- "noChordSymbol",
884
- "nonstaff-nonstaff-spacing",
885
- "nonstaff-relatedstaff-spacing",
886
- "nonstaff-unrelatedstaff-spacing",
887
- "note-event",
888
- "noteNameFunction",
889
- "NoteNames",
890
- "noteNameSeparator",
891
- "Note_heads_engraver",
892
- "Note_name_engraver",
893
- "NullVoice",
894
- "OneStaff",
895
- "ottavation",
896
- "ottavation-numbers",
897
- "ottavation-ordinals",
898
- "ottavation-simple-ordinals",
899
- "ottavationMarkups",
900
- "outer-margin",
901
- "output-count",
902
- "output-def",
903
- "output-suffix",
904
- "outside-staff-horizontal-padding",
905
- "outside-staff-padding",
906
- "outside-staff-priority",
907
- "page-breaking",
908
- "page-breaking-system-system-spacing",
909
- "page-count",
910
- "page-number-type",
911
- "page-spacing-weight",
912
- "paper-height",
913
- "paper-width",
914
- "partCombineListener",
915
- "pedalSustainStyle",
916
- "percent",
917
- "Performer_group",
918
- "piano",
919
- "piano-cautionary",
920
- "PianoStaff",
921
- "pitchnames",
922
- "Pitch_squash_engraver",
923
- "predefinedDiagramTable",
924
- "print-all-headers",
925
- "print-first-page-number",
926
- "print-page-number",
927
- "printAccidentalNames",
928
- "printNotesLanguage",
929
- "printOctaveNames",
930
- "quotedCueEventTypes",
931
- "quotedEventTypes",
932
- "r",
933
- "R",
934
- "ragged-bottom",
935
- "ragged-last",
936
- "ragged-last-bottom",
937
- "ragged-right",
938
- "remove-empty",
939
- "remove-first",
940
- "remove-grace-property",
941
- "remove-layer",
942
- "repeatCommands",
943
- "repeatCountVisibility",
944
- "reset-footnotes-on-new-page",
945
- "rest-event",
946
- "restNumberThreshold",
947
- "restrainOpenStrings",
948
- "rgb-color",
949
- "RhythmicStaff",
950
- "right-margin",
951
- "s",
952
- "score-markup-spacing",
953
- "score-system-spacing",
954
- "scoreTitleMarkup",
955
- "Score_engraver",
956
- "Score_performer",
957
- "self-alignment-X",
958
- "set-global-fonts",
959
- "set-global-staff-size",
960
- "short-indent",
961
- "show-available-fonts",
962
- "showFirstLength",
963
- "showLastLength",
964
- "skipBars",
965
- "skipTypesetting",
966
- "slashChordSeparator",
967
- "slur-event",
968
- "space-alist",
969
- "spacing",
970
- "Span_stem_engraver",
971
- "staff-affinity",
972
- "staff-padding",
973
- "staff-staff-spacing",
974
- "Staff.midiInstrument",
975
- "staffgroup-staff-spacing",
976
- "Staff_collecting_engraver",
977
- "Staff_symbol_engraver",
978
- "start-repeat",
979
- "startAcciaccaturaMusic",
980
- "startAppoggiaturaMusic",
981
- "startGraceMusic",
982
- "stem-spacing-correction",
983
- "stemLeftBeamCount",
984
- "stemRightBeamCount",
985
- "stopAcciaccaturaMusic",
986
- "stopAppoggiaturaMusic",
987
- "stopGraceMusic",
988
- "strictBeatBeaming",
989
- "stringNumberOrientations",
990
- "stringTunings",
991
- "strokeFingerOrientations",
992
- "subdivideBeams",
993
- "suggestAccidentals",
994
- "sus",
995
- "system-count",
996
- "system-separator-markup",
997
- "system-system-spacing",
998
- "systems-per-page",
999
- "TabStaff",
1000
- "TabVoice",
1001
- "teaching",
1002
- "text",
1003
- "Text_mark_engraver",
1004
- "TieColumn",
1005
- "tieWaitForNote",
1006
- "timeSignatureFraction",
1007
- "Timing",
1008
- "tocFormatMarkup",
1009
- "tocIndentMarkup",
1010
- "tocItemMarkup",
1011
- "tocTitleMarkup",
1012
- "top-margin",
1013
- "top-markup-spacing",
1014
- "top-system-spacing",
1015
- "toplevel-bookparts",
1016
- "toplevel-scores",
1017
- "tremolo",
1018
- "tuplet-slur",
1019
- "TupletNumber",
1020
- "tupletSpannerDuration",
1021
- "two-sided",
1022
- "unfold",
1023
- "universal-color",
1024
- "VaticanaStaff",
1025
- "VaticanaVoice",
1026
- "VerticalAxisGroup",
1027
- "voice",
1028
- "Voice",
1029
- "volta",
1030
- "Volta_engraver",
1031
- "X-offset",
1032
- "x11-color"
661
+ "\\xNotesOn"
1033
662
  ]
package/dist/base.d.mts CHANGED
@@ -44,7 +44,7 @@ export declare const stages: {
44
44
  converter: number;
45
45
  };
46
46
  export type Stage = keyof typeof stages;
47
- export declare const rules: readonly ["arg-in-ext", "bold-header", "format-leakage", "fostered-content", "h1", "illegal-attr", "insecure-style", "invalid-gallery", "invalid-imagemap", "invalid-invoke", "invalid-isbn", "invalid-json", "invalid-url", "lonely-apos", "lonely-bracket", "lonely-http", "nested-link", "no-arg", "no-duplicate", "no-ignored", "obsolete-attr", "obsolete-tag", "parsing-order", "pipe-like", "syntax-like", "table-layout", "tag-like", "unbalanced-header", "unclosed-comment", "unclosed-quote", "unclosed-table", "unescaped", "unknown-page", "unmatched-tag", "unterminated-url", "url-encoding", "var-anchor", "void-ext", "invalid-css", "invalid-math"];
47
+ export declare const rules: readonly ["arg-in-ext", "blank-alt", "bold-header", "format-leakage", "fostered-content", "h1", "illegal-attr", "insecure-style", "invalid-gallery", "invalid-imagemap", "invalid-invoke", "invalid-isbn", "invalid-json", "invalid-url", "lonely-apos", "lonely-bracket", "lonely-http", "nested-link", "no-arg", "no-duplicate", "no-ignored", "obsolete-attr", "obsolete-tag", "parsing-order", "pipe-like", "syntax-like", "table-layout", "tag-like", "unbalanced-header", "unclosed-comment", "unclosed-quote", "unclosed-table", "unescaped", "unknown-page", "unmatched-tag", "unterminated-url", "url-encoding", "var-anchor", "void-ext", "invalid-css", "invalid-math"];
48
48
  export declare namespace LintError {
49
49
  type Severity = 'error' | 'warning';
50
50
  type Rule = typeof rules[number];
package/dist/base.d.ts CHANGED
@@ -44,7 +44,7 @@ export declare const stages: {
44
44
  converter: number;
45
45
  };
46
46
  export type Stage = keyof typeof stages;
47
- export declare const rules: readonly ["arg-in-ext", "bold-header", "format-leakage", "fostered-content", "h1", "illegal-attr", "insecure-style", "invalid-gallery", "invalid-imagemap", "invalid-invoke", "invalid-isbn", "invalid-json", "invalid-url", "lonely-apos", "lonely-bracket", "lonely-http", "nested-link", "no-arg", "no-duplicate", "no-ignored", "obsolete-attr", "obsolete-tag", "parsing-order", "pipe-like", "syntax-like", "table-layout", "tag-like", "unbalanced-header", "unclosed-comment", "unclosed-quote", "unclosed-table", "unescaped", "unknown-page", "unmatched-tag", "unterminated-url", "url-encoding", "var-anchor", "void-ext", "invalid-css", "invalid-math"];
47
+ export declare const rules: readonly ["arg-in-ext", "blank-alt", "bold-header", "format-leakage", "fostered-content", "h1", "illegal-attr", "insecure-style", "invalid-gallery", "invalid-imagemap", "invalid-invoke", "invalid-isbn", "invalid-json", "invalid-url", "lonely-apos", "lonely-bracket", "lonely-http", "nested-link", "no-arg", "no-duplicate", "no-ignored", "obsolete-attr", "obsolete-tag", "parsing-order", "pipe-like", "syntax-like", "table-layout", "tag-like", "unbalanced-header", "unclosed-comment", "unclosed-quote", "unclosed-table", "unescaped", "unknown-page", "unmatched-tag", "unterminated-url", "url-encoding", "var-anchor", "void-ext", "invalid-css", "invalid-math"];
48
48
  export declare namespace LintError {
49
49
  type Severity = 'error' | 'warning';
50
50
  type Rule = typeof rules[number];
package/dist/base.js CHANGED
@@ -34,6 +34,7 @@ exports.stages = (() => {
34
34
  exports.rules = (() => {
35
35
  const arr = [
36
36
  'arg-in-ext',
37
+ 'blank-alt',
37
38
  'bold-header',
38
39
  'format-leakage',
39
40
  'fostered-content',
package/dist/base.mjs CHANGED
@@ -31,6 +31,7 @@ const stages = /* @__PURE__ */ (() => {
31
31
  const rules = /* @__PURE__ */ (() => {
32
32
  const arr = [
33
33
  "arg-in-ext",
34
+ "blank-alt",
34
35
  "bold-header",
35
36
  "format-leakage",
36
37
  "fostered-content",
@@ -39,7 +39,7 @@ const filterGadget = (id) => {
39
39
  const n = Number(id);
40
40
  return n < 2300 || n > 2303; // Gadget, Gadget talk, Gadget definition, Gadget definition talk
41
41
  };
42
- const pkg = "wikilint", version = "2.37.0";
42
+ const pkg = "wikilint", version = "2.38.0";
43
43
  /**
44
44
  * Get the parser configuration for a Wikimedia Foundation project.
45
45
  * @param site site nickname
@@ -13,6 +13,7 @@ const dict = new Map([
13
13
  ]);
14
14
  const defaultLintRuleConfig = {
15
15
  'arg-in-ext': 1,
16
+ 'blank-alt': 1,
16
17
  'bold-header': [
17
18
  1,
18
19
  {
@@ -301,6 +302,7 @@ class LintRuleConfiguration {
301
302
  }
302
303
  /** 语法检查设置 */
303
304
  class LintConfiguration {
305
+ // @ts-expect-error lazy initialization
304
306
  #rules;
305
307
  /** @implements */
306
308
  get rules() {
package/dist/lib/lsp.js CHANGED
@@ -39,7 +39,7 @@ const refTags = new Set(['ref']), referencesTags = new Set(['ref', 'references']
39
39
  'heading',
40
40
  'magic-word-name',
41
41
  ...renameTypes,
42
- ]), plainTypes = new Set(['text', 'comment', 'noinclude', 'include']), cssSelector = ['ext', 'html', 'table'].map(s => `${s}-attr#style`).join();
42
+ ]), plainTypes = new Set(['text', 'comment', 'noinclude', 'include']), rawLilyPondCommands = new Set(['paper', 'book', 'bookpart', 'score', 'markuplist'].map(c => `\\${c}`)), cssSelector = ['ext', 'html', 'table'].map(s => `${s}-attr#style`).join();
43
43
  const getLinkRegex = (0, common_1.getRegex)(protocol => new RegExp(`^(?:${protocol}|//)`, 'iu'));
44
44
  /**
45
45
  * Check if a token is a plain attribute.
@@ -347,13 +347,19 @@ const getSectionEnd = (section, lines, line) => {
347
347
  /* NOT FOR BROWSER ONLY END */
348
348
  /** VSCode-style language service */
349
349
  class LanguageService {
350
+ // @ts-expect-error lazy initialization
350
351
  #text;
352
+ // @ts-expect-error lazy initialization
351
353
  #text2;
352
354
  #running;
353
355
  #running2;
356
+ // @ts-expect-error lazy initialization
354
357
  #done;
358
+ // @ts-expect-error lazy initialization
355
359
  #done2;
360
+ // @ts-expect-error lazy initialization
356
361
  #config;
362
+ // @ts-expect-error lazy initialization
357
363
  #include;
358
364
  #completionConfig;
359
365
  /** @since v1.17.1 */
@@ -364,6 +370,7 @@ class LanguageService {
364
370
  data;
365
371
  /* NOT FOR BROWSER ONLY */
366
372
  /** @private */
373
+ // @ts-expect-error lazy initialization
367
374
  lilypond;
368
375
  #lilypondData;
369
376
  #mathData;
@@ -623,10 +630,10 @@ class LanguageService {
623
630
  else if (!isJa) {
624
631
  name = name.slice(2, -2);
625
632
  }
626
- if (name in iAlias) {
633
+ if (Object.hasOwn(iAlias, name)) {
627
634
  name = iAlias[name];
628
635
  }
629
- else if (name in sAlias) {
636
+ else if (Object.hasOwn(sAlias, name)) {
630
637
  name = sAlias[name];
631
638
  }
632
639
  return this.#getBehaviorSwitch(name.toLowerCase());
@@ -661,10 +668,10 @@ class LanguageService {
661
668
  if (!this.data) {
662
669
  return undefined;
663
670
  }
664
- else if (name in insensitive) {
671
+ else if (Object.hasOwn(insensitive, name)) {
665
672
  name = insensitive[name];
666
673
  }
667
- else if (name in sensitive) {
674
+ else if (Object.hasOwn(sensitive, name)) {
668
675
  name = sensitive[name];
669
676
  }
670
677
  return this.#getParserFunction(name.toLowerCase());
@@ -688,6 +695,9 @@ class LanguageService {
688
695
  let type, parentNode;
689
696
  if (mt?.[8] === undefined) {
690
697
  cur = root.elementFromPoint(character, line);
698
+ if (!cur) {
699
+ return undefined;
700
+ }
691
701
  ({ type, parentNode } = cur);
692
702
  }
693
703
  if (mt?.[7] !== undefined || type === 'image-parameter') { // image parameter
@@ -781,15 +791,12 @@ class LanguageService {
781
791
  && (before[comment + 1] === '{' || !before.slice(comment).includes('\n'))) {
782
792
  return undefined;
783
793
  }
784
- const word = /\\?\b(?:\w|\b(?:->?|\.)|\bly:)+$/u.exec(curLine.slice(0, character))?.[0];
794
+ const word = /(?<!\\)\\[-a-z]+$/u.exec(curLine.slice(0, character))?.[0];
785
795
  if (word) {
786
- const data = this.#lilypondData;
787
- return word.startsWith('\\')
788
- ? getCompletion(data.filter(w => w.startsWith('\\')), 'Function', word, position)
789
- : [
790
- ...getCompletion(data.filter(w => /^[a-z]/u.test(w)), 'Variable', word, position),
791
- ...getCompletion(data.filter(w => /^[A-Z]/u.test(w)), 'Class', word, position),
792
- ];
796
+ const words = parentNode.hasAttr('raw')
797
+ ? this.#lilypondData
798
+ : this.#lilypondData.filter(c => !rawLilyPondCommands.has(c));
799
+ return getCompletion(words, 'Function', word, position);
793
800
  }
794
801
  }
795
802
  else if (type === 'ext-inner' && constants_1.mathTags.has(cur.name)) {
@@ -1189,7 +1196,11 @@ class LanguageService {
1189
1196
  * @param position position / 位置
1190
1197
  */
1191
1198
  async provideDefinition(text, position) {
1192
- const root = await this.#queue(text), node = root.elementFromPoint(position.character, position.line), ext = node.is('ext') && node.name === 'ref'
1199
+ const root = await this.#queue(text), node = root.elementFromPoint(position.character, position.line);
1200
+ if (!node) {
1201
+ return undefined;
1202
+ }
1203
+ const ext = node.is('ext') && node.name === 'ref'
1193
1204
  ? node
1194
1205
  : node.closest('ext#ref'), refName = getRefTagAttr(ext, 'name');
1195
1206
  if (!refName) {
@@ -1210,7 +1221,11 @@ class LanguageService {
1210
1221
  * @param position position / 位置
1211
1222
  */
1212
1223
  async resolveRenameLocation(text, position) {
1213
- const root = await this.#queue(text), node = root.elementFromPoint(position.character, position.line), { type } = node, refName = getRefName(node), refGroup = getRefGroup(node);
1224
+ const root = await this.#queue(text), node = root.elementFromPoint(position.character, position.line);
1225
+ if (!node) {
1226
+ return undefined;
1227
+ }
1228
+ const { type } = node, refName = getRefName(node), refGroup = getRefGroup(node);
1214
1229
  return !refName && !refGroup && (!renameTypes.has(type)
1215
1230
  || type === 'parameter-key' && /^[1-9]\d*$/u.test(node.parentNode.name)
1216
1231
  || type === 'link-target' && !['link', 'redirect-target'].includes(node.parentNode.type))
@@ -1226,7 +1241,11 @@ class LanguageService {
1226
1241
  * @param newName new name / 新名称
1227
1242
  */
1228
1243
  async provideRenameEdits(text, position, newName) {
1229
- const root = await this.#queue(text), node = root.elementFromPoint(position.character, position.line), { type } = node, refName = getRefName(node), refNameGroup = refName && getRefTagAttr(node.parentNode.parentNode, 'group'), refGroup = getRefGroup(node), name = getName(node), refs = root.querySelectorAll(type).filter(token => {
1244
+ const root = await this.#queue(text), node = root.elementFromPoint(position.character, position.line);
1245
+ if (!node) {
1246
+ return undefined;
1247
+ }
1248
+ const { type } = node, refName = getRefName(node), refNameGroup = refName && getRefTagAttr(node.parentNode.parentNode, 'group'), refGroup = getRefGroup(node), name = getName(node), refs = root.querySelectorAll(type).filter(token => {
1230
1249
  const { type: t } = token.parentNode;
1231
1250
  if (type === 'link-target' && t !== 'link' && t !== 'redirect-target') {
1232
1251
  return false;
package/dist/lib/title.js CHANGED
@@ -17,6 +17,7 @@ const resolve = (title) => {
17
17
  * MediaWiki页面标题对象
18
18
  */
19
19
  class Title {
20
+ // @ts-expect-error lazy initialization
20
21
  #main;
21
22
  #namespaces;
22
23
  #path;
@@ -70,6 +70,7 @@ let LinkBaseToken = (() => {
70
70
  }
71
71
  #bracket = true;
72
72
  #delimiter;
73
+ // @ts-expect-error lazy initialization
73
74
  #title;
74
75
  /** full link / 完整链接 */
75
76
  get link() {
@@ -119,6 +119,18 @@ class FileToken extends base_1.LinkBaseToken {
119
119
  errors.push(e);
120
120
  }
121
121
  }
122
+ rule = 'blank-alt';
123
+ s = lintConfig.getSeverity(rule);
124
+ if (s) {
125
+ const alt = this.getArg('alt');
126
+ if (alt?.getValue() === '') {
127
+ const e = (0, lint_1.generateForChild)(alt, rect, rule, 'blank-alt', s);
128
+ if (computeEditInfo || fix) {
129
+ e.fix = (0, lint_1.fixByRemove)(e, -1);
130
+ }
131
+ errors.push(e);
132
+ }
133
+ }
122
134
  if (args.length === keys.length
123
135
  && frameKeys.length < 2
124
136
  && horizAlignKeys.length < 2
@@ -112,6 +112,7 @@ class NowikiToken extends base_1.NowikiBaseToken {
112
112
  }
113
113
  const e = (0, lint_1.generateForSelf)(this, { start }, rule, 'chem-required', s);
114
114
  if (result.status !== 'C') {
115
+ /** @todo native MathML supports more macros than texvcjs */
115
116
  const { message, location } = result.error, [endIndex, endLine, endCol] = updateLocation(e, location.end, n);
116
117
  [e.startIndex, e.startLine, e.startCol] = updateLocation(e, location.start, n);
117
118
  Object.assign(e, { endIndex, endLine, endCol, message });
@@ -6,6 +6,11 @@ import type { AttributesParentBase } from '../../mixin/attributesParent';
6
6
  declare type TableTypes = 'table' | 'tr' | 'td';
7
7
  export interface TableBaseToken extends AttributesParentBase {
8
8
  }
9
+ /**
10
+ * 转义表格语法
11
+ * @param syntax 表格语法节点
12
+ */
13
+ export declare const escapeTable: (syntax: SyntaxToken) => void;
9
14
  /**
10
15
  * table row that contains the newline at the beginning but not at the end
11
16
  *
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.TableBaseToken = void 0;
40
+ exports.TableBaseToken = exports.escapeTable = void 0;
41
41
  const debug_1 = require("../../util/debug");
42
42
  const attributesParent_1 = require("../../mixin/attributesParent");
43
43
  const index_1 = __importDefault(require("../../index"));
@@ -56,6 +56,7 @@ const escapeTable = (syntax) => {
56
56
  syntax.safeReplaceChildren(childNodes);
57
57
  });
58
58
  };
59
+ exports.escapeTable = escapeTable;
59
60
  /**
60
61
  * table row that contains the newline at the beginning but not at the end
61
62
  *
@@ -93,7 +94,7 @@ let TableBaseToken = (() => {
93
94
  escape() {
94
95
  LSP: for (const child of this.childNodes) {
95
96
  if (child instanceof syntax_1.SyntaxToken) {
96
- escapeTable(child);
97
+ (0, exports.escapeTable)(child);
97
98
  }
98
99
  else {
99
100
  child.escape();
@@ -77,6 +77,7 @@ let TranscludeToken = (() => {
77
77
  #raw = false;
78
78
  #args = new Map();
79
79
  #anonCount = 0;
80
+ // @ts-expect-error lazy initialization
80
81
  #title;
81
82
  get type() {
82
83
  return this.#type;
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extParams = exports.obsoleteAttrs = exports.extAttrs = exports.htmlAttrs = exports.commonHtmlAttrs = void 0;
4
4
  /* eslint-disable unicorn/no-unreadable-iife */
5
- const blockAttrs = new Set(['align']), citeAttrs = new Set(['cite']), citeAndAttrs = new Set(['cite', 'datetime']), widthAttrs = new Set(['width']), obsoleteTdAttrs = new Set(['axis', 'align', 'bgcolor', 'height', 'width', 'valign']), tdAttrs = new Set([...obsoleteTdAttrs, 'abbr', 'headers', 'scope', 'rowspan', 'colspan']), typeAttrs = new Set(['type']), obsoleteTableAttrs = new Set(['summary', 'align', 'bgcolor', 'cellpadding', 'cellspacing', 'frame', 'rules', 'width']), brAttrs = new Set(['clear']), trAttrs = new Set(['bgcolor', 'align', 'valign']), chemAttrs = new Set(['id', 'qid', 'forcemathmode', 'type', 'display']), syntaxHighlightAttrs = new Set([
5
+ const blockAttrs = new Set(['align']), citeAttrs = new Set(['cite']), citeAndAttrs = new Set(['cite', 'datetime']), widthAttrs = new Set(['width']), trAttrs = new Set(['bgcolor', 'align', 'valign']), obsoleteTdAttrs = new Set([...trAttrs, 'axis', 'height', 'nowrap', 'width']), tdAttrs = new Set([...obsoleteTdAttrs, 'abbr', 'headers', 'scope', 'rowspan', 'colspan']), typeAttrs = new Set(['type']), obsoleteTableAttrs = new Set(['summary', 'align', 'bgcolor', 'cellpadding', 'cellspacing', 'frame', 'rules', 'width']), brAttrs = new Set(['clear']), chemAttrs = new Set(['id', 'qid', 'forcemathmode', 'type', 'display']), syntaxHighlightAttrs = new Set([
6
6
  'enclose',
7
7
  'inline',
8
8
  'lang',
@@ -1,6 +1,6 @@
1
- const blockAttrs = /* @__PURE__ */ new Set(["align"]), citeAttrs = /* @__PURE__ */ new Set(["cite"]), citeAndAttrs = /* @__PURE__ */ new Set(["cite", "datetime"]), widthAttrs = /* @__PURE__ */ new Set(["width"]), obsoleteTdAttrs = /* @__PURE__ */ new Set(["axis", "align", "bgcolor", "height", "width", "valign"]), tdAttrs = /* @__PURE__ */ new Set([...obsoleteTdAttrs, "abbr", "headers", "scope", "rowspan", "colspan"]), typeAttrs = /* @__PURE__ */ new Set(["type"]), obsoleteTableAttrs = /* @__PURE__ */ new Set(
1
+ const blockAttrs = /* @__PURE__ */ new Set(["align"]), citeAttrs = /* @__PURE__ */ new Set(["cite"]), citeAndAttrs = /* @__PURE__ */ new Set(["cite", "datetime"]), widthAttrs = /* @__PURE__ */ new Set(["width"]), trAttrs = /* @__PURE__ */ new Set(["bgcolor", "align", "valign"]), obsoleteTdAttrs = /* @__PURE__ */ new Set([...trAttrs, "axis", "height", "nowrap", "width"]), tdAttrs = /* @__PURE__ */ new Set([...obsoleteTdAttrs, "abbr", "headers", "scope", "rowspan", "colspan"]), typeAttrs = /* @__PURE__ */ new Set(["type"]), obsoleteTableAttrs = /* @__PURE__ */ new Set(
2
2
  ["summary", "align", "bgcolor", "cellpadding", "cellspacing", "frame", "rules", "width"]
3
- ), brAttrs = /* @__PURE__ */ new Set(["clear"]), trAttrs = /* @__PURE__ */ new Set(["bgcolor", "align", "valign"]), chemAttrs = /* @__PURE__ */ new Set(["id", "qid", "forcemathmode", "type", "display"]), syntaxHighlightAttrs = /* @__PURE__ */ new Set([
3
+ ), brAttrs = /* @__PURE__ */ new Set(["clear"]), chemAttrs = /* @__PURE__ */ new Set(["id", "qid", "forcemathmode", "type", "display"]), syntaxHighlightAttrs = /* @__PURE__ */ new Set([
4
4
  "enclose",
5
5
  "inline",
6
6
  "lang",
package/i18n/en.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "argument-in-ext": "template argument inside an extension tag",
3
3
  "attributes-of-closing-tag": "attributes of a closing tag",
4
+ "blank-alt": "blank alt attribute",
4
5
  "bold-apostrophes": "bold apostrophes",
5
6
  "bold-in-header": "bold text in a section header",
6
7
  "chem-required": "chem attribute required",
package/i18n/zh-hans.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "argument-in-ext": "扩展标签内的模板参数",
3
3
  "attributes-of-closing-tag": "结束标签的属性",
4
+ "blank-alt": "空的alt属性",
4
5
  "bold-apostrophes": "粗体撇号",
5
6
  "bold-in-header": "章节标题中的加粗文本",
6
7
  "chem-required": "需要chem属性",
package/i18n/zh-hant.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "argument-in-ext": "擴充標籤內的模板參數",
3
3
  "attributes-of-closing-tag": "結束標籤的屬性",
4
+ "blank-alt": "空的alt屬性",
4
5
  "bold-apostrophes": "粗體撇號",
5
6
  "bold-in-header": "章節標題中的粗體文字",
6
7
  "chem-required": "需要chem屬性",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wikilint",
3
- "version": "2.37.0",
3
+ "version": "2.38.0",
4
4
  "description": "A Node.js linter for MediaWiki markup",
5
5
  "keywords": [
6
6
  "mediawiki",
@@ -83,7 +83,7 @@
83
83
  "color-name": "^2.0.0",
84
84
  "entities": "^8.0.0",
85
85
  "mathoid-texvcjs": "^0.6.0",
86
- "stylelint": "^17.5.0",
86
+ "stylelint": "^17.6.0",
87
87
  "vscode-css-languageservice": "^6.3.10",
88
88
  "vscode-html-languageservice": "^5.6.2",
89
89
  "vscode-json-languageservice": "^5.7.2"
@@ -91,14 +91,14 @@
91
91
  "devDependencies": {
92
92
  "@bhsd/code-standard": "^2.1.1",
93
93
  "@bhsd/nodejs": "^1.0.0",
94
- "@bhsd/test-util": "^0.4.0",
94
+ "@bhsd/test-util": "^1.0.0",
95
95
  "@stylistic/eslint-plugin": "^5.10.0",
96
96
  "@types/color-name": "^2.0.0",
97
97
  "@types/color-rgba": "^2.1.3",
98
98
  "@types/mocha": "^10.0.10",
99
99
  "@types/node": "^24.11.0",
100
- "@typescript-eslint/eslint-plugin": "^8.57.0",
101
- "@typescript-eslint/parser": "^8.57.0",
100
+ "@typescript-eslint/eslint-plugin": "^8.58.0",
101
+ "@typescript-eslint/parser": "^8.58.0",
102
102
  "c8": "^11.0.0",
103
103
  "color-rgba": "^3.0.0",
104
104
  "diff2html-cli": "^5.2.15",
@@ -113,7 +113,7 @@
113
113
  "eslint-plugin-unicorn": "^63.0.0",
114
114
  "markdownlint-cli2": "^0.21.0",
115
115
  "mocha": "^11.7.5",
116
- "typescript": "^5.9.3",
116
+ "typescript": "^6.0.2",
117
117
  "v8r": "^6.0.0",
118
118
  "vscode-languageserver-textdocument": "^1.0.12"
119
119
  },