lint-wiki-dumps 0.10.0 → 0.11.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.
- package/README.md +3 -1
- package/config/cdowiki.json +8 -7
- package/config/dewiki.json +3 -2
- package/config/enwiki.json +3 -2
- package/config/eswiki.json +11 -10
- package/config/frwiki.json +7 -5
- package/config/ganwiki.json +8 -7
- package/config/hakwiki.json +8 -7
- package/config/itwiki.json +10 -9
- package/config/jawiki.json +6 -5
- package/config/ptwiki.json +12 -10
- package/config/ruwiki.json +6 -5
- package/config/simplewiki.json +4 -2
- package/config/wuuwiki.json +3 -2
- package/config/zh-classicalwiki.json +8 -7
- package/config/zh-min-nanwiki.json +8 -7
- package/config/zh-yuewiki.json +3 -2
- package/config/zhwiki.json +3 -2
- package/download.sh +0 -0
- package/package.json +26 -19
- package/parallel.js +5 -8
- package/parser-common.js +5 -7
- package/util-db.js +1 -5
- package/wikilintrc.js +11 -0
- package/xml.js +69 -11
package/README.md
CHANGED
|
@@ -14,7 +14,9 @@ To run this tool, you need to have [curl](https://curl.se/) installed on your sy
|
|
|
14
14
|
npm i lint-wiki-dumps
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### Optional Dependencies
|
|
18
|
+
|
|
19
|
+
You can also install [vscode-css-languageservice](https://www.npmjs.com/package/vscode-css-languageservice) to lint inline CSS in Wikitext:
|
|
18
20
|
|
|
19
21
|
```sh
|
|
20
22
|
npm i vscode-css-languageservice
|
package/config/cdowiki.json
CHANGED
|
@@ -918,12 +918,14 @@
|
|
|
918
918
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
919
919
|
}
|
|
920
920
|
],
|
|
921
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
921
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
922
922
|
"interwiki": [],
|
|
923
923
|
"img": {
|
|
924
924
|
"替代=$1": "alt",
|
|
925
925
|
"替代文本=$1": "alt",
|
|
926
926
|
"alt=$1": "alt",
|
|
927
|
+
"baseline": "baseline",
|
|
928
|
+
"基线": "baseline",
|
|
927
929
|
"邊框": "border",
|
|
928
930
|
"边框": "border",
|
|
929
931
|
"border": "border",
|
|
@@ -990,16 +992,14 @@
|
|
|
990
992
|
"垂直置頂": "top",
|
|
991
993
|
"top": "top",
|
|
992
994
|
"顶部": "top",
|
|
993
|
-
"$1像素": "width",
|
|
994
|
-
"$1px": "width",
|
|
995
|
-
"baseline": "baseline",
|
|
996
|
-
"基线": "baseline",
|
|
997
995
|
"upright": "upright",
|
|
998
996
|
"upright=$1": "upright",
|
|
999
997
|
"upright $1": "upright",
|
|
1000
998
|
"右上": "upright",
|
|
1001
999
|
"右上=$1": "upright",
|
|
1002
|
-
"右上$1": "upright"
|
|
1000
|
+
"右上$1": "upright",
|
|
1001
|
+
"$1像素": "width",
|
|
1002
|
+
"$1px": "width"
|
|
1003
1003
|
},
|
|
1004
1004
|
"redirection": [
|
|
1005
1005
|
"#重新導向",
|
|
@@ -1007,5 +1007,6 @@
|
|
|
1007
1007
|
"#redirect"
|
|
1008
1008
|
],
|
|
1009
1009
|
"variants": [],
|
|
1010
|
-
"articlePath": "/wiki/$1"
|
|
1010
|
+
"articlePath": "/wiki/$1",
|
|
1011
|
+
"server": "//cdo.wikipedia.org"
|
|
1011
1012
|
}
|
package/config/dewiki.json
CHANGED
|
@@ -777,7 +777,7 @@
|
|
|
777
777
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
778
778
|
}
|
|
779
779
|
],
|
|
780
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
780
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
781
781
|
"interwiki": [],
|
|
782
782
|
"img": {
|
|
783
783
|
"alternativtext=$1": "alt",
|
|
@@ -851,5 +851,6 @@
|
|
|
851
851
|
"#redirect"
|
|
852
852
|
],
|
|
853
853
|
"variants": [],
|
|
854
|
-
"articlePath": "/wiki/$1"
|
|
854
|
+
"articlePath": "/wiki/$1",
|
|
855
|
+
"server": "//de.wikipedia.org"
|
|
855
856
|
}
|
package/config/enwiki.json
CHANGED
|
@@ -591,7 +591,7 @@
|
|
|
591
591
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
592
592
|
}
|
|
593
593
|
],
|
|
594
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
594
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
595
595
|
"interwiki": [],
|
|
596
596
|
"img": {
|
|
597
597
|
"alt=$1": "alt",
|
|
@@ -632,5 +632,6 @@
|
|
|
632
632
|
"#redirect"
|
|
633
633
|
],
|
|
634
634
|
"variants": [],
|
|
635
|
-
"articlePath": "/wiki/$1"
|
|
635
|
+
"articlePath": "/wiki/$1",
|
|
636
|
+
"server": "//en.wikipedia.org"
|
|
636
637
|
}
|
package/config/eswiki.json
CHANGED
|
@@ -881,9 +881,11 @@
|
|
|
881
881
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
882
882
|
}
|
|
883
883
|
],
|
|
884
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
884
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
885
885
|
"interwiki": [],
|
|
886
886
|
"img": {
|
|
887
|
+
"alt=$1": "alt",
|
|
888
|
+
"baseline": "baseline",
|
|
887
889
|
"borde": "border",
|
|
888
890
|
"border": "border",
|
|
889
891
|
"abajo": "bottom",
|
|
@@ -894,6 +896,7 @@
|
|
|
894
896
|
"centrar": "center",
|
|
895
897
|
"center": "center",
|
|
896
898
|
"centre": "center",
|
|
899
|
+
"class=$1": "class",
|
|
897
900
|
"marco": "framed",
|
|
898
901
|
"enmarcado": "framed",
|
|
899
902
|
"enmarcada": "framed",
|
|
@@ -935,6 +938,11 @@
|
|
|
935
938
|
"der": "right",
|
|
936
939
|
"dcha": "right",
|
|
937
940
|
"right": "right",
|
|
941
|
+
"sub": "sub",
|
|
942
|
+
"super": "super",
|
|
943
|
+
"sup": "super",
|
|
944
|
+
"text-bottom": "text-bottom",
|
|
945
|
+
"text-top": "text-top",
|
|
938
946
|
"miniaturadeimagen": "thumbnail",
|
|
939
947
|
"miniatura": "thumbnail",
|
|
940
948
|
"mini": "thumbnail",
|
|
@@ -942,14 +950,6 @@
|
|
|
942
950
|
"thumbnail": "thumbnail",
|
|
943
951
|
"arriba": "top",
|
|
944
952
|
"top": "top",
|
|
945
|
-
"alt=$1": "alt",
|
|
946
|
-
"baseline": "baseline",
|
|
947
|
-
"class=$1": "class",
|
|
948
|
-
"sub": "sub",
|
|
949
|
-
"super": "super",
|
|
950
|
-
"sup": "super",
|
|
951
|
-
"text-bottom": "text-bottom",
|
|
952
|
-
"text-top": "text-top",
|
|
953
953
|
"upright": "upright",
|
|
954
954
|
"upright=$1": "upright",
|
|
955
955
|
"upright $1": "upright",
|
|
@@ -961,5 +961,6 @@
|
|
|
961
961
|
"#redirect"
|
|
962
962
|
],
|
|
963
963
|
"variants": [],
|
|
964
|
-
"articlePath": "/wiki/$1"
|
|
964
|
+
"articlePath": "/wiki/$1",
|
|
965
|
+
"server": "//es.wikipedia.org"
|
|
965
966
|
}
|
package/config/frwiki.json
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"section",
|
|
21
21
|
"score",
|
|
22
22
|
"templatestyles",
|
|
23
|
+
"article-guidance",
|
|
23
24
|
"templatedata",
|
|
24
25
|
"math",
|
|
25
26
|
"ce",
|
|
@@ -765,9 +766,10 @@
|
|
|
765
766
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
766
767
|
}
|
|
767
768
|
],
|
|
768
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
769
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
769
770
|
"interwiki": [],
|
|
770
771
|
"img": {
|
|
772
|
+
"alt=$1": "alt",
|
|
771
773
|
"base": "baseline",
|
|
772
774
|
"ligne-de-base": "baseline",
|
|
773
775
|
"baseline": "baseline",
|
|
@@ -804,6 +806,8 @@
|
|
|
804
806
|
"néant": "none",
|
|
805
807
|
"neant": "none",
|
|
806
808
|
"none": "none",
|
|
809
|
+
"page=$1": "page",
|
|
810
|
+
"page $1": "page",
|
|
807
811
|
"droite": "right",
|
|
808
812
|
"right": "right",
|
|
809
813
|
"indice": "sub",
|
|
@@ -830,9 +834,6 @@
|
|
|
830
834
|
"upright": "upright",
|
|
831
835
|
"upright=$1": "upright",
|
|
832
836
|
"upright $1": "upright",
|
|
833
|
-
"alt=$1": "alt",
|
|
834
|
-
"page=$1": "page",
|
|
835
|
-
"page $1": "page",
|
|
836
837
|
"$1px": "width"
|
|
837
838
|
},
|
|
838
839
|
"redirection": [
|
|
@@ -840,5 +841,6 @@
|
|
|
840
841
|
"#redirect"
|
|
841
842
|
],
|
|
842
843
|
"variants": [],
|
|
843
|
-
"articlePath": "/wiki/$1"
|
|
844
|
+
"articlePath": "/wiki/$1",
|
|
845
|
+
"server": "//fr.wikipedia.org"
|
|
844
846
|
}
|
package/config/ganwiki.json
CHANGED
|
@@ -940,12 +940,14 @@
|
|
|
940
940
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
941
941
|
}
|
|
942
942
|
],
|
|
943
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
943
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
944
944
|
"interwiki": [],
|
|
945
945
|
"img": {
|
|
946
946
|
"替代=$1": "alt",
|
|
947
947
|
"替代文本=$1": "alt",
|
|
948
948
|
"alt=$1": "alt",
|
|
949
|
+
"baseline": "baseline",
|
|
950
|
+
"基线": "baseline",
|
|
949
951
|
"邊框": "border",
|
|
950
952
|
"边框": "border",
|
|
951
953
|
"border": "border",
|
|
@@ -1012,16 +1014,14 @@
|
|
|
1012
1014
|
"垂直置頂": "top",
|
|
1013
1015
|
"top": "top",
|
|
1014
1016
|
"顶部": "top",
|
|
1015
|
-
"$1像素": "width",
|
|
1016
|
-
"$1px": "width",
|
|
1017
|
-
"baseline": "baseline",
|
|
1018
|
-
"基线": "baseline",
|
|
1019
1017
|
"upright": "upright",
|
|
1020
1018
|
"upright=$1": "upright",
|
|
1021
1019
|
"upright $1": "upright",
|
|
1022
1020
|
"右上": "upright",
|
|
1023
1021
|
"右上=$1": "upright",
|
|
1024
|
-
"右上$1": "upright"
|
|
1022
|
+
"右上$1": "upright",
|
|
1023
|
+
"$1像素": "width",
|
|
1024
|
+
"$1px": "width"
|
|
1025
1025
|
},
|
|
1026
1026
|
"redirection": [
|
|
1027
1027
|
"#重新導向",
|
|
@@ -1033,5 +1033,6 @@
|
|
|
1033
1033
|
"gan-hans",
|
|
1034
1034
|
"gan-hant"
|
|
1035
1035
|
],
|
|
1036
|
-
"articlePath": "/wiki/$1"
|
|
1036
|
+
"articlePath": "/wiki/$1",
|
|
1037
|
+
"server": "//gan.wikipedia.org"
|
|
1037
1038
|
}
|
package/config/hakwiki.json
CHANGED
|
@@ -899,12 +899,14 @@
|
|
|
899
899
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
900
900
|
}
|
|
901
901
|
],
|
|
902
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
902
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
903
903
|
"interwiki": [],
|
|
904
904
|
"img": {
|
|
905
905
|
"替代=$1": "alt",
|
|
906
906
|
"替代文本=$1": "alt",
|
|
907
907
|
"alt=$1": "alt",
|
|
908
|
+
"baseline": "baseline",
|
|
909
|
+
"基线": "baseline",
|
|
908
910
|
"邊框": "border",
|
|
909
911
|
"边框": "border",
|
|
910
912
|
"border": "border",
|
|
@@ -971,16 +973,14 @@
|
|
|
971
973
|
"垂直置頂": "top",
|
|
972
974
|
"top": "top",
|
|
973
975
|
"顶部": "top",
|
|
974
|
-
"$1像素": "width",
|
|
975
|
-
"$1px": "width",
|
|
976
|
-
"baseline": "baseline",
|
|
977
|
-
"基线": "baseline",
|
|
978
976
|
"upright": "upright",
|
|
979
977
|
"upright=$1": "upright",
|
|
980
978
|
"upright $1": "upright",
|
|
981
979
|
"右上": "upright",
|
|
982
980
|
"右上=$1": "upright",
|
|
983
|
-
"右上$1": "upright"
|
|
981
|
+
"右上$1": "upright",
|
|
982
|
+
"$1像素": "width",
|
|
983
|
+
"$1px": "width"
|
|
984
984
|
},
|
|
985
985
|
"redirection": [
|
|
986
986
|
"#重新導向",
|
|
@@ -988,5 +988,6 @@
|
|
|
988
988
|
"#redirect"
|
|
989
989
|
],
|
|
990
990
|
"variants": [],
|
|
991
|
-
"articlePath": "/wiki/$1"
|
|
991
|
+
"articlePath": "/wiki/$1",
|
|
992
|
+
"server": "//hak.wikipedia.org"
|
|
992
993
|
}
|
package/config/itwiki.json
CHANGED
|
@@ -676,9 +676,11 @@
|
|
|
676
676
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
677
677
|
}
|
|
678
678
|
],
|
|
679
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
679
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
680
680
|
"interwiki": [],
|
|
681
681
|
"img": {
|
|
682
|
+
"alt=$1": "alt",
|
|
683
|
+
"baseline": "baseline",
|
|
682
684
|
"bordo": "border",
|
|
683
685
|
"border": "border",
|
|
684
686
|
"sotto": "bottom",
|
|
@@ -686,6 +688,7 @@
|
|
|
686
688
|
"centro": "center",
|
|
687
689
|
"center": "center",
|
|
688
690
|
"centre": "center",
|
|
691
|
+
"class=$1": "class",
|
|
689
692
|
"riquadrato": "framed",
|
|
690
693
|
"originale": "framed",
|
|
691
694
|
"incorniciato": "framed",
|
|
@@ -694,8 +697,10 @@
|
|
|
694
697
|
"enframed": "framed",
|
|
695
698
|
"senza_cornice": "frameless",
|
|
696
699
|
"frameless": "frameless",
|
|
700
|
+
"lang=$1": "lang",
|
|
697
701
|
"sinistra": "left",
|
|
698
702
|
"left": "left",
|
|
703
|
+
"link=$1": "link",
|
|
699
704
|
"miniatura=$1": "manualthumb",
|
|
700
705
|
"min=$1": "manualthumb",
|
|
701
706
|
"thumbnail=$1": "manualthumb",
|
|
@@ -712,6 +717,8 @@
|
|
|
712
717
|
"right": "right",
|
|
713
718
|
"pedice": "sub",
|
|
714
719
|
"sub": "sub",
|
|
720
|
+
"super": "super",
|
|
721
|
+
"sup": "super",
|
|
715
722
|
"testo-sotto": "text-bottom",
|
|
716
723
|
"text-bottom": "text-bottom",
|
|
717
724
|
"testo-sopra": "text-top",
|
|
@@ -728,13 +735,6 @@
|
|
|
728
735
|
"upright": "upright",
|
|
729
736
|
"upright=$1": "upright",
|
|
730
737
|
"upright $1": "upright",
|
|
731
|
-
"alt=$1": "alt",
|
|
732
|
-
"baseline": "baseline",
|
|
733
|
-
"class=$1": "class",
|
|
734
|
-
"lang=$1": "lang",
|
|
735
|
-
"link=$1": "link",
|
|
736
|
-
"super": "super",
|
|
737
|
-
"sup": "super",
|
|
738
738
|
"$1px": "width"
|
|
739
739
|
},
|
|
740
740
|
"redirection": [
|
|
@@ -744,5 +744,6 @@
|
|
|
744
744
|
"#redirect"
|
|
745
745
|
],
|
|
746
746
|
"variants": [],
|
|
747
|
-
"articlePath": "/wiki/$1"
|
|
747
|
+
"articlePath": "/wiki/$1",
|
|
748
|
+
"server": "//it.wikipedia.org"
|
|
748
749
|
}
|
package/config/jawiki.json
CHANGED
|
@@ -899,7 +899,7 @@
|
|
|
899
899
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
900
900
|
}
|
|
901
901
|
],
|
|
902
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
902
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
903
903
|
"interwiki": [],
|
|
904
904
|
"img": {
|
|
905
905
|
"代替文=$1": "alt",
|
|
@@ -915,12 +915,14 @@
|
|
|
915
915
|
"中央": "center",
|
|
916
916
|
"center": "center",
|
|
917
917
|
"centre": "center",
|
|
918
|
+
"class=$1": "class",
|
|
918
919
|
"フレーム": "framed",
|
|
919
920
|
"frame": "framed",
|
|
920
921
|
"framed": "framed",
|
|
921
922
|
"enframed": "framed",
|
|
922
923
|
"フレームなし": "frameless",
|
|
923
924
|
"frameless": "frameless",
|
|
925
|
+
"lang=$1": "lang",
|
|
924
926
|
"左": "left",
|
|
925
927
|
"left": "left",
|
|
926
928
|
"リンク=$1": "link",
|
|
@@ -959,9 +961,7 @@
|
|
|
959
961
|
"upright=$1": "upright",
|
|
960
962
|
"upright $1": "upright",
|
|
961
963
|
"$1ピクセル": "width",
|
|
962
|
-
"$1px": "width"
|
|
963
|
-
"class=$1": "class",
|
|
964
|
-
"lang=$1": "lang"
|
|
964
|
+
"$1px": "width"
|
|
965
965
|
},
|
|
966
966
|
"redirection": [
|
|
967
967
|
"#転送",
|
|
@@ -971,5 +971,6 @@
|
|
|
971
971
|
"#redirect"
|
|
972
972
|
],
|
|
973
973
|
"variants": [],
|
|
974
|
-
"articlePath": "/wiki/$1"
|
|
974
|
+
"articlePath": "/wiki/$1",
|
|
975
|
+
"server": "//ja.wikipedia.org"
|
|
975
976
|
}
|
package/config/ptwiki.json
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"score",
|
|
23
23
|
"dynamicpagelist",
|
|
24
24
|
"templatestyles",
|
|
25
|
+
"article-guidance",
|
|
25
26
|
"templatedata",
|
|
26
27
|
"math",
|
|
27
28
|
"ce",
|
|
@@ -814,9 +815,10 @@
|
|
|
814
815
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
815
816
|
}
|
|
816
817
|
],
|
|
817
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
818
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
818
819
|
"interwiki": [],
|
|
819
820
|
"img": {
|
|
821
|
+
"alt=$1": "alt",
|
|
820
822
|
"linhadebase": "baseline",
|
|
821
823
|
"baseline": "baseline",
|
|
822
824
|
"borda": "border",
|
|
@@ -826,6 +828,7 @@
|
|
|
826
828
|
"centro": "center",
|
|
827
829
|
"center": "center",
|
|
828
830
|
"centre": "center",
|
|
831
|
+
"class=$1": "class",
|
|
829
832
|
"commoldura": "framed",
|
|
830
833
|
"comborda": "framed",
|
|
831
834
|
"frame": "framed",
|
|
@@ -834,6 +837,7 @@
|
|
|
834
837
|
"semmoldura": "frameless",
|
|
835
838
|
"semborda": "frameless",
|
|
836
839
|
"frameless": "frameless",
|
|
840
|
+
"lang=$1": "lang",
|
|
837
841
|
"esquerda": "left",
|
|
838
842
|
"left": "left",
|
|
839
843
|
"ligação=$1": "link",
|
|
@@ -853,6 +857,11 @@
|
|
|
853
857
|
"page $1": "page",
|
|
854
858
|
"direita": "right",
|
|
855
859
|
"right": "right",
|
|
860
|
+
"sub": "sub",
|
|
861
|
+
"super": "super",
|
|
862
|
+
"sup": "super",
|
|
863
|
+
"text-bottom": "text-bottom",
|
|
864
|
+
"text-top": "text-top",
|
|
856
865
|
"miniaturadaimagem": "thumbnail",
|
|
857
866
|
"miniatura": "thumbnail",
|
|
858
867
|
"thumb": "thumbnail",
|
|
@@ -866,14 +875,6 @@
|
|
|
866
875
|
"upright": "upright",
|
|
867
876
|
"upright=$1": "upright",
|
|
868
877
|
"upright $1": "upright",
|
|
869
|
-
"alt=$1": "alt",
|
|
870
|
-
"class=$1": "class",
|
|
871
|
-
"lang=$1": "lang",
|
|
872
|
-
"sub": "sub",
|
|
873
|
-
"super": "super",
|
|
874
|
-
"sup": "super",
|
|
875
|
-
"text-bottom": "text-bottom",
|
|
876
|
-
"text-top": "text-top",
|
|
877
878
|
"$1px": "width"
|
|
878
879
|
},
|
|
879
880
|
"redirection": [
|
|
@@ -881,5 +882,6 @@
|
|
|
881
882
|
"#redirect"
|
|
882
883
|
],
|
|
883
884
|
"variants": [],
|
|
884
|
-
"articlePath": "/wiki/$1"
|
|
885
|
+
"articlePath": "/wiki/$1",
|
|
886
|
+
"server": "//pt.wikipedia.org"
|
|
885
887
|
}
|
package/config/ruwiki.json
CHANGED
|
@@ -761,7 +761,7 @@
|
|
|
761
761
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
762
762
|
}
|
|
763
763
|
],
|
|
764
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
764
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
765
765
|
"interwiki": [],
|
|
766
766
|
"img": {
|
|
767
767
|
"альт=$1": "alt",
|
|
@@ -775,12 +775,14 @@
|
|
|
775
775
|
"центр": "center",
|
|
776
776
|
"center": "center",
|
|
777
777
|
"centre": "center",
|
|
778
|
+
"class=$1": "class",
|
|
778
779
|
"обрамить": "framed",
|
|
779
780
|
"frame": "framed",
|
|
780
781
|
"framed": "framed",
|
|
781
782
|
"enframed": "framed",
|
|
782
783
|
"безрамки": "frameless",
|
|
783
784
|
"frameless": "frameless",
|
|
785
|
+
"lang=$1": "lang",
|
|
784
786
|
"слева": "left",
|
|
785
787
|
"left": "left",
|
|
786
788
|
"ссылка=$1": "link",
|
|
@@ -821,9 +823,7 @@
|
|
|
821
823
|
"upright=$1": "upright",
|
|
822
824
|
"upright $1": "upright",
|
|
823
825
|
"$1пкс": "width",
|
|
824
|
-
"$1px": "width"
|
|
825
|
-
"class=$1": "class",
|
|
826
|
-
"lang=$1": "lang"
|
|
826
|
+
"$1px": "width"
|
|
827
827
|
},
|
|
828
828
|
"redirection": [
|
|
829
829
|
"#перенаправление",
|
|
@@ -831,5 +831,6 @@
|
|
|
831
831
|
"#redirect"
|
|
832
832
|
],
|
|
833
833
|
"variants": [],
|
|
834
|
-
"articlePath": "/wiki/$1"
|
|
834
|
+
"articlePath": "/wiki/$1",
|
|
835
|
+
"server": "//ru.wikipedia.org"
|
|
835
836
|
}
|
package/config/simplewiki.json
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"section",
|
|
21
21
|
"score",
|
|
22
22
|
"templatestyles",
|
|
23
|
+
"article-guidance",
|
|
23
24
|
"templatedata",
|
|
24
25
|
"math",
|
|
25
26
|
"ce",
|
|
@@ -574,7 +575,7 @@
|
|
|
574
575
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
575
576
|
}
|
|
576
577
|
],
|
|
577
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
578
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
578
579
|
"interwiki": [],
|
|
579
580
|
"img": {
|
|
580
581
|
"alt=$1": "alt",
|
|
@@ -615,5 +616,6 @@
|
|
|
615
616
|
"#redirect"
|
|
616
617
|
],
|
|
617
618
|
"variants": [],
|
|
618
|
-
"articlePath": "/wiki/$1"
|
|
619
|
+
"articlePath": "/wiki/$1",
|
|
620
|
+
"server": "//simple.wikipedia.org"
|
|
619
621
|
}
|
package/config/wuuwiki.json
CHANGED
|
@@ -904,7 +904,7 @@
|
|
|
904
904
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
905
905
|
}
|
|
906
906
|
],
|
|
907
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
907
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
908
908
|
"interwiki": [],
|
|
909
909
|
"img": {
|
|
910
910
|
"替代=$1": "alt",
|
|
@@ -997,5 +997,6 @@
|
|
|
997
997
|
"wuu-hans",
|
|
998
998
|
"wuu-hant"
|
|
999
999
|
],
|
|
1000
|
-
"articlePath": "/wiki/$1"
|
|
1000
|
+
"articlePath": "/wiki/$1",
|
|
1001
|
+
"server": "//wuu.wikipedia.org"
|
|
1001
1002
|
}
|
|
@@ -917,12 +917,14 @@
|
|
|
917
917
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
918
918
|
}
|
|
919
919
|
],
|
|
920
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
920
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
921
921
|
"interwiki": [],
|
|
922
922
|
"img": {
|
|
923
923
|
"替代=$1": "alt",
|
|
924
924
|
"替代文本=$1": "alt",
|
|
925
925
|
"alt=$1": "alt",
|
|
926
|
+
"baseline": "baseline",
|
|
927
|
+
"基线": "baseline",
|
|
926
928
|
"邊框": "border",
|
|
927
929
|
"边框": "border",
|
|
928
930
|
"border": "border",
|
|
@@ -989,16 +991,14 @@
|
|
|
989
991
|
"垂直置頂": "top",
|
|
990
992
|
"top": "top",
|
|
991
993
|
"顶部": "top",
|
|
992
|
-
"$1像素": "width",
|
|
993
|
-
"$1px": "width",
|
|
994
|
-
"baseline": "baseline",
|
|
995
|
-
"基线": "baseline",
|
|
996
994
|
"upright": "upright",
|
|
997
995
|
"upright=$1": "upright",
|
|
998
996
|
"upright $1": "upright",
|
|
999
997
|
"右上": "upright",
|
|
1000
998
|
"右上=$1": "upright",
|
|
1001
|
-
"右上$1": "upright"
|
|
999
|
+
"右上$1": "upright",
|
|
1000
|
+
"$1像素": "width",
|
|
1001
|
+
"$1px": "width"
|
|
1002
1002
|
},
|
|
1003
1003
|
"redirection": [
|
|
1004
1004
|
"#重新導向",
|
|
@@ -1006,5 +1006,6 @@
|
|
|
1006
1006
|
"#redirect"
|
|
1007
1007
|
],
|
|
1008
1008
|
"variants": [],
|
|
1009
|
-
"articlePath": "/wiki/$1"
|
|
1009
|
+
"articlePath": "/wiki/$1",
|
|
1010
|
+
"server": "//zh-classical.wikipedia.org"
|
|
1010
1011
|
}
|
|
@@ -920,12 +920,14 @@
|
|
|
920
920
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
921
921
|
}
|
|
922
922
|
],
|
|
923
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
923
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
924
924
|
"interwiki": [],
|
|
925
925
|
"img": {
|
|
926
926
|
"替代=$1": "alt",
|
|
927
927
|
"替代文本=$1": "alt",
|
|
928
928
|
"alt=$1": "alt",
|
|
929
|
+
"baseline": "baseline",
|
|
930
|
+
"基线": "baseline",
|
|
929
931
|
"邊框": "border",
|
|
930
932
|
"边框": "border",
|
|
931
933
|
"border": "border",
|
|
@@ -992,16 +994,14 @@
|
|
|
992
994
|
"垂直置頂": "top",
|
|
993
995
|
"top": "top",
|
|
994
996
|
"顶部": "top",
|
|
995
|
-
"$1像素": "width",
|
|
996
|
-
"$1px": "width",
|
|
997
|
-
"baseline": "baseline",
|
|
998
|
-
"基线": "baseline",
|
|
999
997
|
"upright": "upright",
|
|
1000
998
|
"upright=$1": "upright",
|
|
1001
999
|
"upright $1": "upright",
|
|
1002
1000
|
"右上": "upright",
|
|
1003
1001
|
"右上=$1": "upright",
|
|
1004
|
-
"右上$1": "upright"
|
|
1002
|
+
"右上$1": "upright",
|
|
1003
|
+
"$1像素": "width",
|
|
1004
|
+
"$1px": "width"
|
|
1005
1005
|
},
|
|
1006
1006
|
"redirection": [
|
|
1007
1007
|
"#重新導向",
|
|
@@ -1009,5 +1009,6 @@
|
|
|
1009
1009
|
"#redirect"
|
|
1010
1010
|
],
|
|
1011
1011
|
"variants": [],
|
|
1012
|
-
"articlePath": "/wiki/$1"
|
|
1012
|
+
"articlePath": "/wiki/$1",
|
|
1013
|
+
"server": "//zh-min-nan.wikipedia.org"
|
|
1013
1014
|
}
|
package/config/zh-yuewiki.json
CHANGED
|
@@ -643,7 +643,7 @@
|
|
|
643
643
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
644
644
|
}
|
|
645
645
|
],
|
|
646
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
646
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
647
647
|
"interwiki": [],
|
|
648
648
|
"img": {
|
|
649
649
|
"alt=$1": "alt",
|
|
@@ -684,5 +684,6 @@
|
|
|
684
684
|
"#redirect"
|
|
685
685
|
],
|
|
686
686
|
"variants": [],
|
|
687
|
-
"articlePath": "/wiki/$1"
|
|
687
|
+
"articlePath": "/wiki/$1",
|
|
688
|
+
"server": "//zh-yue.wikipedia.org"
|
|
688
689
|
}
|
package/config/zhwiki.json
CHANGED
|
@@ -961,7 +961,7 @@
|
|
|
961
961
|
"EXPECTED_UNCONNECTED_PAGE": "EXPECTEDUNCONNECTEDPAGE"
|
|
962
962
|
}
|
|
963
963
|
],
|
|
964
|
-
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp
|
|
964
|
+
"protocol": "bitcoin:|ftp://|ftps://|geo:|git://|gopher://|http://|https://|irc://|ircs://|magnet:|mailto:|matrix:|mms://|news:|nntp://|redis://|sftp://|sip:|sips:|sms:|ssh://|svn://|tel:|telnet://|urn:|wikipedia://|worldwind://|xmpp:|commonsfinder://",
|
|
965
965
|
"interwiki": [],
|
|
966
966
|
"img": {
|
|
967
967
|
"alt=$1": "alt",
|
|
@@ -1060,5 +1060,6 @@
|
|
|
1060
1060
|
"zh-sg",
|
|
1061
1061
|
"zh-tw"
|
|
1062
1062
|
],
|
|
1063
|
-
"articlePath": "/wiki/$1"
|
|
1063
|
+
"articlePath": "/wiki/$1",
|
|
1064
|
+
"server": "//zh.wikipedia.org"
|
|
1064
1065
|
}
|
package/download.sh
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lint-wiki-dumps",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Lint Wikipedia dumps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lint",
|
|
@@ -38,36 +38,43 @@
|
|
|
38
38
|
"bundle": "esbuild reports/src/*.ts --charset=utf8 --bundle --format=esm --outdir=build && rm build/common.js",
|
|
39
39
|
"build": "tsc && mv dist/* . && npm run bundle && esbuild reports/src/*.ts --charset=utf8 --bundle --minify --target=es2019 --format=iife --sourcemap --outdir=reports/dist && rm reports/dist/common.js*",
|
|
40
40
|
"lint:ts": "tsc --noEmit && tsc --project reports/tsconfig.json --noEmit && eslint --cache .",
|
|
41
|
-
"lint:css": "stylelint reports/*.css",
|
|
41
|
+
"lint:css": "stylelint --cache reports/*.css",
|
|
42
42
|
"lint:md": "markdownlint-cli2 '**/*.md'",
|
|
43
43
|
"lint": "npm run lint:ts && npm run lint:css && npm run lint:md",
|
|
44
44
|
"toolforge": "bash scan-toolforge.sh"
|
|
45
45
|
},
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"htmlparser2": ">=10.0.0",
|
|
48
|
+
"mariadb": ">=3.0.0",
|
|
49
|
+
"vscode-css-languageservice": ">=3.0.0"
|
|
50
|
+
},
|
|
51
|
+
"peerDependenciesMeta": {
|
|
52
|
+
"htmlparser2": {
|
|
53
|
+
"optional": true
|
|
54
|
+
},
|
|
55
|
+
"mariadb": {
|
|
56
|
+
"optional": true
|
|
57
|
+
},
|
|
58
|
+
"vscode-css-languageservice": {
|
|
59
|
+
"optional": true
|
|
60
|
+
}
|
|
61
|
+
},
|
|
46
62
|
"dependencies": {
|
|
47
63
|
"@bhsd/nodejs": "^1.0.1",
|
|
48
|
-
"
|
|
49
|
-
"wikilint": "^2.40.0",
|
|
50
|
-
"xml-stream": "^0.4.5"
|
|
51
|
-
},
|
|
52
|
-
"optionalDependencies": {
|
|
53
|
-
"vscode-css-languageservice": "^6.3.10"
|
|
64
|
+
"wikilint": "^2.43.0"
|
|
54
65
|
},
|
|
55
66
|
"devDependencies": {
|
|
56
|
-
"@bhsd/code-standard": "^2.
|
|
57
|
-
"@stylistic/stylelint-plugin": "^5.1.0",
|
|
58
|
-
"@types/node": "^25.9.0",
|
|
59
|
-
"@types/unbzip2-stream": "^1.4.3",
|
|
60
|
-
"@typescript-eslint/parser": "^8.59.4",
|
|
67
|
+
"@bhsd/code-standard": "^2.6.2",
|
|
61
68
|
"esbuild": "^0.28.0",
|
|
62
|
-
"eslint": "^10.4.
|
|
69
|
+
"eslint": "^10.4.1",
|
|
70
|
+
"htmlparser2": "^12.0.0",
|
|
63
71
|
"mariadb": "^3.5.2",
|
|
64
72
|
"markdownlint-cli2": "^0.22.1",
|
|
65
|
-
"stylelint": "^17.
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"typescript": "^6.0.3"
|
|
73
|
+
"stylelint": "^17.13.0",
|
|
74
|
+
"typescript": "^6.0.3",
|
|
75
|
+
"vscode-css-languageservice": "^6.3.10"
|
|
69
76
|
},
|
|
70
77
|
"engines": {
|
|
71
|
-
"node": "^20.19.0 || ^22.13.0"
|
|
78
|
+
"node": "^20.19.0 || ^22.13.0 || >=24.11.0"
|
|
72
79
|
}
|
|
73
80
|
}
|
package/parallel.js
CHANGED
|
@@ -99,12 +99,10 @@ else {
|
|
|
99
99
|
}
|
|
100
100
|
};
|
|
101
101
|
console.time(`parse ${file}`);
|
|
102
|
-
const stream = (0, xml_1.getXmlStream)(file)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (start === undefined || end === undefined || pageid < start || pageid > end) {
|
|
107
|
-
const cur = pageid <= max && ranges.findIndex(([a, b]) => a <= pageid && b >= pageid);
|
|
102
|
+
const stream = (0, xml_1.getXmlStream)(file, stop, ({ title, ns, id, revision: { model, timestamp, text } }) => {
|
|
103
|
+
if ((0, util_1.isArticle)(text, ns, model)) {
|
|
104
|
+
if (start === undefined || end === undefined || id < start || id > end) {
|
|
105
|
+
const cur = id <= max && ranges.findIndex(([a, b]) => a <= id && b >= id);
|
|
108
106
|
if (cur === false || cur === -1) {
|
|
109
107
|
start = undefined;
|
|
110
108
|
end = undefined;
|
|
@@ -116,9 +114,8 @@ else {
|
|
|
116
114
|
last = (0, util_1.getDate)(data);
|
|
117
115
|
}
|
|
118
116
|
}
|
|
119
|
-
lint(
|
|
117
|
+
lint(text, ns, title, timestamp);
|
|
120
118
|
}
|
|
121
119
|
});
|
|
122
|
-
stream.on('end', stop);
|
|
123
120
|
});
|
|
124
121
|
}
|
package/parser-common.js
CHANGED
|
@@ -6,16 +6,14 @@ const util_1 = require("./util");
|
|
|
6
6
|
const file = process.argv[3];
|
|
7
7
|
const parse = (processor, data, last) => {
|
|
8
8
|
console.time('parse');
|
|
9
|
-
const stream = (0, xml_1.getXmlStream)((0, util_1.replaceTilde)(file))
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
const stream = (0, xml_1.getXmlStream)((0, util_1.replaceTilde)(file), () => {
|
|
10
|
+
processor.stop('parse');
|
|
11
|
+
}, ({ title, ns, revision: { model, timestamp, text } }) => {
|
|
12
|
+
if ((0, util_1.isArticle)(text, ns, model)) {
|
|
12
13
|
stream.pause();
|
|
13
|
-
processor.lint(
|
|
14
|
+
processor.lint(text, ns, title, timestamp, last, data);
|
|
14
15
|
stream.resume();
|
|
15
16
|
}
|
|
16
17
|
});
|
|
17
|
-
stream.on('end', () => {
|
|
18
|
-
processor.stop('parse');
|
|
19
|
-
});
|
|
20
18
|
};
|
|
21
19
|
exports.parse = parse;
|
package/util-db.js
CHANGED
|
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.
|
|
39
|
+
exports.dropTable = exports.updateMetadata = exports.existTable = exports.insertEntry = exports.createMetadataTable = exports.createTable = exports.createConnection = void 0;
|
|
40
40
|
const mariadb = __importStar(require("mariadb"));
|
|
41
41
|
const config_1 = __importDefault(require("./config"));
|
|
42
42
|
const createConnection = async () => {
|
|
@@ -86,7 +86,3 @@ const dropTable = async (connection, lang) => {
|
|
|
86
86
|
await connection.query(`DROP TABLE IF EXISTS ${lang}`);
|
|
87
87
|
};
|
|
88
88
|
exports.dropTable = dropTable;
|
|
89
|
-
const select = (connection, lang, title) => connection.query(`SELECT * FROM ${lang} WHERE title COLLATE utf8mb4_bin = ?`, [title]);
|
|
90
|
-
exports.select = select;
|
|
91
|
-
const getTimestampDB = async (connection, lang) => (await connection.query('SELECT timestamp FROM metadata WHERE table_name = ?', [lang]))[0]?.timestamp;
|
|
92
|
-
exports.getTimestampDB = getTimestampDB;
|
package/wikilintrc.js
CHANGED
|
@@ -16,6 +16,15 @@ exports.default = {
|
|
|
16
16
|
parameter: 0,
|
|
17
17
|
},
|
|
18
18
|
],
|
|
19
|
+
'invalid-imagemap': 0,
|
|
20
|
+
'invalid-invoke': 0,
|
|
21
|
+
'invalid-json': [
|
|
22
|
+
0,
|
|
23
|
+
{
|
|
24
|
+
duplicate: 2,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
'invalid-ref': 0,
|
|
19
28
|
'invalid-url': 2,
|
|
20
29
|
'lonely-apos': 0,
|
|
21
30
|
'lonely-bracket': [
|
|
@@ -59,6 +68,7 @@ exports.default = {
|
|
|
59
68
|
double: 2,
|
|
60
69
|
},
|
|
61
70
|
],
|
|
71
|
+
'required-attr': 0,
|
|
62
72
|
'table-layout': 0,
|
|
63
73
|
'tag-like': [
|
|
64
74
|
2,
|
|
@@ -82,5 +92,6 @@ exports.default = {
|
|
|
82
92
|
warn: 0,
|
|
83
93
|
},
|
|
84
94
|
],
|
|
95
|
+
'invalid-math': 0,
|
|
85
96
|
},
|
|
86
97
|
};
|
package/xml.js
CHANGED
|
@@ -1,21 +1,79 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.getXmlStream = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const xml_stream_1 = __importDefault(require("xml-stream"));
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const WritableStream_1 = require("htmlparser2/WritableStream");
|
|
10
6
|
const nodejs_1 = require("@bhsd/nodejs");
|
|
11
|
-
const getXmlStream = (file) => {
|
|
7
|
+
const getXmlStream = (file, onend, processPage) => {
|
|
12
8
|
console.log((0, nodejs_1.green)(`Unzipping and reading ${file}`));
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
let cur, page;
|
|
10
|
+
const stack = [], bz2 = (0, child_process_1.spawn)('bzip2', ['-cd', file], {
|
|
11
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
12
|
+
}), decompressor = bz2.stdout, stream = new WritableStream_1.WritableStream({
|
|
13
|
+
onend,
|
|
14
|
+
onopentag(name) {
|
|
15
|
+
stack.push(name);
|
|
16
|
+
cur = '';
|
|
17
|
+
if (name === 'page') {
|
|
18
|
+
page = { revision: {} };
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
ontext(text) {
|
|
22
|
+
if (page) {
|
|
23
|
+
cur += text;
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
onclosetag(name) {
|
|
27
|
+
stack.pop();
|
|
28
|
+
switch (name) {
|
|
29
|
+
case 'id':
|
|
30
|
+
if (stack.at(-1) === 'page') {
|
|
31
|
+
page.id = Number(cur);
|
|
32
|
+
}
|
|
33
|
+
break;
|
|
34
|
+
case 'title':
|
|
35
|
+
case 'ns':
|
|
36
|
+
page[name] = cur.trim();
|
|
37
|
+
break;
|
|
38
|
+
case 'timestamp':
|
|
39
|
+
page.revision.timestamp = new Date(cur.trim());
|
|
40
|
+
break;
|
|
41
|
+
case 'model':
|
|
42
|
+
page.revision.model = cur.trim();
|
|
43
|
+
break;
|
|
44
|
+
case 'text':
|
|
45
|
+
page.revision.text = cur;
|
|
46
|
+
break;
|
|
47
|
+
case 'page':
|
|
48
|
+
processPage(page);
|
|
49
|
+
page = undefined;
|
|
50
|
+
break;
|
|
51
|
+
// no default
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
}, { xmlMode: true });
|
|
55
|
+
const cleanup = () => {
|
|
56
|
+
try {
|
|
57
|
+
decompressor.unpipe(stream);
|
|
58
|
+
bz2.kill();
|
|
59
|
+
}
|
|
60
|
+
catch { }
|
|
61
|
+
};
|
|
62
|
+
bz2.stderr.on('data', (chunk) => {
|
|
63
|
+
console.warn((0, nodejs_1.red)(`Warning unzipping ${file}: ${chunk.toString('utf8').trim()}`));
|
|
64
|
+
});
|
|
65
|
+
decompressor.on('error', e => {
|
|
15
66
|
console.error((0, nodejs_1.red)(`Error unzipping ${file}`));
|
|
67
|
+
cleanup();
|
|
68
|
+
stream.destroy();
|
|
69
|
+
throw e;
|
|
70
|
+
});
|
|
71
|
+
stream.on('error', e => {
|
|
72
|
+
console.error((0, nodejs_1.red)(`Error parsing XML from ${file}`));
|
|
73
|
+
cleanup();
|
|
16
74
|
throw e;
|
|
17
75
|
});
|
|
18
|
-
stream
|
|
19
|
-
return
|
|
76
|
+
decompressor.pipe(stream);
|
|
77
|
+
return decompressor;
|
|
20
78
|
};
|
|
21
79
|
exports.getXmlStream = getXmlStream;
|