diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 0000000..6b94429 --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,15 @@ +name: Linter + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: npm ci + - run: npm run lint diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml new file mode 100644 index 0000000..da234ad --- /dev/null +++ b/.github/workflows/unit_tests.yml @@ -0,0 +1,15 @@ +name: Unit Tests + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: npm ci + - run: npm test diff --git a/README.md b/README.md index 91cc490..b6bb79c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ This is the source code for version 4 of the Wikipedia gadget [XFDcloser](https://en.wikipedia.org/wiki/Wikipedia:XFDcloser). ## Installation instructions and user guide -Will be available at [https://en.wikipedia.org/wiki/Wikipedia:XFDcloser](https://en.wikipedia.org/wiki/Wikipedia:XFDcloser). Currently, that page is for version 3. +Is available at [https://en.wikipedia.org/wiki/Wikipedia:XFDcloser](https://en.wikipedia.org/wiki/Wikipedia:XFDcloser). ## Repository structure - `bin\` contains scripts to run with node. To run, type `node bin\FILENAME` in the terminal (`.js` extensions are optional) @@ -48,6 +48,7 @@ Will be available at [https://en.wikipedia.org/wiki/Wikipedia:XFDcloser](https:/ ## On-wiki testing On-wiki testing is conducted at the [Test Wikipedia](https://test.wikipedia.org/wiki/Main_Page) (testwiki). - Note that the `extendedconfirmed` permission does not exist there, so the gadget definition lines need to be adjusted accordingly when testing non-admin accounts. + ### Testing development version 1. Ensure the XFDcloser gadget is *not* enabled in your preferences. 2. Add code like the following to [your common.js](https://test.wikipedia.org/wiki/Special:MyPage/common.js): @@ -62,10 +63,13 @@ On-wiki testing is conducted at the [Test Wikipedia](https://test.wikipedia.org/ ``` 3. Set up mock XFD discussions. A development version of Twinkle is available as a gadget, and can be used to nominate pages for deletion. -4. Run `node bin/server` in a terminal (in the directory where your local repistory is located) -5. Now when you visit the XFD log/discussion pages, the most recently built version of the script will be loaded. +4. First time only: create the /dist/ folder so the build script doesn't throw an error. +5. Run `npm run build:dev`. +6. Run `node bin/server` in a terminal (in the directory where your local repistory is located). +7. Now when you visit the XFD log/discussion pages, the most recently built version of the script will be loaded. + ### Testing deployment -1. Comment out or remove the code that load the development version from [your common.js](https://test.wikipedia.org/wiki/Special:MyPage/common.js) +1. Comment out or remove the code that loads the development version from [your common.js](https://test.wikipedia.org/wiki/Special:MyPage/common.js) 2. Ensure the XFDcloser gadget is enabled in your preferences. 3. Deploy to testwiki (see "Repository structure" section above for what goes where) 4. Set up mock XFD discussions. A development version of Twinkle is available as a gadget, and can be used to nominate pages for deletion. @@ -87,6 +91,7 @@ A general overview of planned features: - [ ] Preferences, similar to Rater - [ ] Rename option for CfD, and possibly some other feature requests on WT:XFDC - [ ] Possibly add handling for closing requested moves + ### Roadmap - [ ] Complete the v4 rewrite - [ ] Get beta testers to try out the new version. Fix/adjust things as they get reported. diff --git a/package.json b/package.json index 2432eba..a2e5e7c 100644 --- a/package.json +++ b/package.json @@ -10,11 +10,15 @@ "test:delay": "mocha --delay --require @babel/register --reporter list", "lint:es5": "jshint \"dist/loader-dev.js\" \"dist/loader-gadget.js\"", "lint:es5:dev": "jshint \"dist/loader-dev.js\"", - "lint:css": "stylelint \"styles-src/**/*.css\" --fix", - "lint:es6": "eslint \"xfdcloser-src/**/*.js\" \"test/*\" --fix", - "lint:bin": "eslint \"bin/*.js\" --fix --env node", + "lint:css": "stylelint \"styles-src/**/*.css\"", + "lint:es6": "eslint \"xfdcloser-src/**/*.js\" \"test/*\"", + "lint:bin": "eslint \"bin/*.js\" --env node", "lint": "npm run lint:es6 && npm run lint:es5 && npm run lint:css", "lint:dev": "npm run lint:es6 && npm run lint:es5:dev && npm run lint:css", + "lint:css:fix": "stylelint \"styles-src/**/*.css\" --fix", + "lint:es6:fix": "eslint \"xfdcloser-src/**/*.js\" \"test/*\" --fix", + "lint:bin:fix": "eslint \"bin/*.js\" --fix --env node", + "lint:fix": "npm run lint:es6:fix && npm run lint:bin:fix && npm run lint:css:fix", "globals:node": "concat-cli -f \"globals-src/comment.js\" \"globals-src/node.js\" -o \"globals.js\"", "globals:window": "concat-cli -f \"globals-src/comment.js\" \"globals-src/window.js\" -o \"globals.js\"", "build:loader:dev": "concat-cli -f \"loader-src/loader-dev-top.js.txt\" \"loader-src/loader-core.js.txt\" \"loader-src/loader-dev-bottom.js.txt\" -o dist/loader-dev.js", @@ -25,7 +29,7 @@ "build:concat": "concat-cli -f \"core-comment-top.js\" dist/core.min.js \"core-comment-bottom.js\" -o dist/core-gadget.js", "build:css": "node bin/concatCss", "build": "npm run globals:window && npm run build:loader && npm run lint && npm run test:all && npm run build:css && npm run build:bundle && npm run build:minify && npm run build:concat", - "build:dev": "npm run globals:window && npm run build:loader:dev && npm run lint:dev && npm run test:all && npm run build:bundle ", + "build:dev": "npm run globals:window && npm run build:loader:dev && npm run lint:dev && npm run test:all && npm run build:css && npm run build:bundle ", "build:quickdev": "npm run globals:window && npm run build:loader:dev && npm run build:bundle " }, "author": { diff --git a/xfdcloser-src/App.js b/xfdcloser-src/App.js index a6e3c4c..0bdaa8a 100644 --- a/xfdcloser-src/App.js +++ b/xfdcloser-src/App.js @@ -70,7 +70,18 @@ import DiscussionView from "./Views/DiscussionView"; const showHide = $("#mw-content-text " + config.xfd.html.head).length > 1 && ShowHideTag.initialiseNewTag(); // Set up discussion object for each discussion - $(config.xfd.html.head + " > span.mw-headline") + let headings; + switch ( mw.config.get( "skin" ) ) { + case "vector": + case "vector-2022": + case "minerva": + headings = config.xfd.html.head + " > span.mw-headline"; + break; + default: + headings = config.xfd.html.head; + } + + $( headings ) .not(".XFDcloser-ignore") .each(function(index) { try {