Ed Sanders
5d8f3b9051
Create a 'transcludedfrom' API endpoint
...
Bug: T252558
Change-Id: I2220f26dc2b744f03feeee9124f6936858dda3eb
2020-07-27 21:20:01 +01:00
Ed Sanders
8829a1a412
Edit API for replies
...
Bug: T252558
Change-Id: Iac43b5bb0315ceaad7698fb2b708b7c3cde403f8
2020-07-27 21:19:58 +01:00
Bartosz Dziewoński
31e371e944
Better handle HTML comments following replies
...
Bug: T257651
Change-Id: I07e995beca4f031be062958ff7d75727afa8e606
2020-07-23 18:18:21 +02:00
jenkins-bot
765a1d27bc
Merge "Improve detecting template-generated multi-line comments"
2020-07-22 15:04:00 +00:00
jenkins-bot
889de1bcdf
Merge "Improve detecting typed signatures"
2020-07-22 01:43:40 +00:00
Bartosz Dziewoński
80e52e1155
Improve detecting typed signatures
...
* Remove the existing approach for detecting signatures that only
worked in source mode; remove autoSignWikitext()
* Use the same approach for auto-signing in source mode as we have
already used in visual
* In both modes, detect whether the user has already typed a signature
at the end of their comment in the modifier, and if so, don't add a
signature
* Add test cases for the detection
Bug: T255738
Change-Id: I791d3035cb1ffc33ce3966d4617a25d08700c35b
2020-07-22 00:00:53 +02:00
Bartosz Dziewoński
569db3603c
Improve detecting template-generated multi-line comments
...
Bug: T252058
Change-Id: Ic010b8aeff9b177031184f02f92fcdea5280dc36
2020-07-21 22:26:45 +01:00
Ed Sanders
a2431fe006
Refactor CommentParser
...
* Pass rootNode to the constructor
* Rename getters to match CommentItem/HeadingItem/ThreadItem
value classes.
* Always build the thread tree so CommentItem's always have
and ID and replies/parent.
Change-Id: I508be9534de59016ff806e3d84edcbb1c76cb0c6
2020-07-20 23:38:10 +01:00
Ed Sanders
a4636d39fc
Move #getTranscludedFrom from parser to ThreadItem
...
Also requires moving getTitleFromUrl to CommentUtils
Change-Id: I9cb83a3fdd456eba66899433b866ce7a7f00eeb5
2020-07-20 15:56:48 +01:00
Ed Sanders
7ae5bbf384
Move #getAuthors from parser to ThreadItem
...
Change-Id: I16e513000e5366b3044b17a99da07d8d0f47a61f
2020-07-20 15:13:59 +01:00
Ed Sanders
b32f991913
Documentation fixes
...
Change-Id: I2c7ccecbf8a50bd4d658b0f17f4a21fe90a3c399
2020-07-20 13:34:08 +01:00
Ed Sanders
092cfd6075
Parser: Replace findTimestamps with findTimestamp
...
Instead of doing a separate tree walk and finding all timestamps
separately, make it part of the getComments tree walk, and find
timestamps one at a time.
Change-Id: I47f466eaf228504faa189fd99e07493bc7f022cd
2020-07-15 21:34:22 +02:00
Bartosz Dziewoński
308c2747b0
CommentParser.php: Use tree walking instead of XPath
...
This is similar to what the JS version does.
The TreeWalker and NodeFilter classes are adapted from
https://github.com/Krinkle/dom-TreeWalker-polyfill
(MIT license).
This makes #getComments twice as fast on en-big-oldparser.html
Change-Id: I2441f33e6e7bad753ac830d277e6a2e81ee8c93d
2020-07-15 16:40:50 +00:00
Ed Sanders
94511c6bad
Add getHeading method to CommentItem
...
Change-Id: I14ccdbb432e835fe74760a52f07de172df2aba27
2020-07-01 17:21:15 +01:00
Ed Sanders
ed70d49285
CommentParser.php: Fix URL parsing
...
Change-Id: I406fd98b308dd4d975ea974f2369737a7052b556
2020-07-01 17:06:02 +01:00
Ed Sanders
6459e7dc82
Move wikitext modifiers to modifier.js
...
Re-create methods in PHP.
Change-Id: Iae6117b65e3b8f50ecc68e1e3ea17c8359bdcb06
2020-07-01 17:06:02 +01:00
Ed Sanders
978eae5547
Move createCommentContainer to modifier
...
Refactor and create PHP versions.
Change-Id: I0ae9785e5fa86bcc1ac6eef9bce4088d7507dd33
2020-07-01 17:06:02 +01:00
Ed Sanders
fb0d2cbe7f
Move some postReply logic to modifier.js
...
Re-create the function in PHP
Change-Id: I1c8b505542c3b82c10b7b258e48054bc59cb4836
2020-07-01 17:06:02 +01:00
Ed Sanders
d5376e28fc
Improve ThreadItem documentation
...
Change-Id: Ia266fc22b02af0edbb32f356b4e0d92fe3a4da5f
2020-06-26 14:56:19 +02:00
Ed Sanders
811f8bdf02
Allow non-lists to be passed to unwrapList
...
Bug: T256292
Change-Id: I036e0fdf3dde51c33f64abb7df142e26ebe66554
2020-06-24 19:19:06 +01:00
Ed Sanders
badbd823b2
Use $wgLocaltimezone global instead of request context
...
Bug: T255704
Change-Id: Ic26a1d77a64f52addcb45131ea2f9cd41c7c51e2
2020-06-17 23:14:13 +02:00
James D. Forrester
d6c3df31f5
Remove various phan suppressions and fix issues
...
Change-Id: I73b535f284566a0a8876a3198b9784b47567fac6
2020-06-12 20:35:59 +01:00
Ed Sanders
7be0cc3209
Create ThreadItem classes
...
Change-Id: Id2c5324d74eccb1209ccb76768c557722c6d9400
2020-06-12 20:35:59 +01:00
Ed Sanders
ba295c81dd
Replace 'whitelist' in documentation
...
Bug: T254646
Change-Id: Ie67b0f801dcd95142b6b2ba5793cb87fa1fb5932
2020-06-11 04:51:39 +00:00
Ed Sanders
a4d767d97c
CommentModifier.php: Remove unnecessary toLowerCase
...
We only need .toLowerCase() or strtolower() when doing
case insensitive comparisons.
Change-Id: I19caca50139a42d86ff20e1ee0224cd3deb0d092
2020-06-10 22:06:16 +01:00
Umherirrender
48e860916a
build: Add mediawiki/mediawiki-phan-config
...
Replace phan-taint-check-plugin by phan, it is now included
Change-Id: I0e682a83afd30faa8967e3c586431be4ae9a29b3
2020-06-10 22:21:07 +02:00
jenkins-bot
94bbaa846f
Merge "Depend on Linter"
2020-06-04 16:46:57 +00:00
jenkins-bot
203df3aabc
Merge "Call the linter API directly if installed"
2020-06-04 16:24:36 +00:00
David Lynch
068ff29e88
Depend on Linter
...
Depends-On: I8b183d816748245722ca1a459203333614f58f32
Change-Id: If2252d54a39a9d12744ccdee08e334a211f41d46
2020-06-04 18:23:57 +02:00
Ed Sanders
e9f2bb80d1
Call the linter API directly if installed
...
If the Linter extension is not installed, just allow the page
to be edited.
Bug: T253799
Change-Id: Id3e4c9c2d48aa7ab0b270f41d33ec19184af9a48
2020-06-04 09:46:07 -05:00
Ed Sanders
62c0080850
Fix whitespace handling in unwrapList
...
Update 'referenceNode' before modifying the DOM.
Bug: T254308
Change-Id: I76af898e238c1e6d3db96d3e6156e80e55c87820
2020-06-03 13:54:36 +01:00
Ed Sanders
0d14fcea6a
wt->visual: Don't unwrap template lists
...
Bug: T253150
Change-Id: I1584d9834e29c38edf4234f2f022c1c48bfd485f
2020-06-01 22:32:23 +01:00
Ed Sanders
da433037a3
Move getTranscludedFromElement to Utils
...
Change-Id: I8bdd757f949c013ba426150a192d71243fadf45d
2020-06-01 22:32:23 +01:00
Bartosz Dziewoński
79ae8a32c5
Support parsing when timestamp is wrapped in a link
...
Bug: T252059
Change-Id: Ib8952fb80503bad407e8d0fe725103a0fae12a6a
2020-05-27 22:47:17 +02:00
Bartosz Dziewoński
01b4a8f4f4
Support replying when timestamp is template-generated
...
* Move modifier#getFullyCoveredWrapper to utils
* Use that method to find the node where we start searching for
template wrappers, rather than using endContainer
Bug: T252058
Change-Id: I55de58102f3468fce01290bd413a7fdc96d322d6
2020-05-27 21:16:03 +02:00
Bartosz Dziewoński
420c514091
Insert replies outside of decorative comment frames
...
When there is a wrapper element whose range matches the range of
a comment, any replies will now be added outside of that wrapper,
instead of directly after the comment (inside the wrapper).
Bug: T250126
Change-Id: I6b42c4db019ae998e91eebd324f9cbd2aa791b4f
2020-05-22 15:01:12 +01:00
Ed Sanders
b3ca37c1c5
Create ImmutableRange class in PHP
...
TODO: Create one in JS as well
Change-Id: I6c9dc2455afcb8d0b68674a2985c5e43dd94b6fb
2020-05-22 15:01:09 +01:00
jenkins-bot
838dcdccad
Merge "Avoid deprecated User::getOption()"
2020-05-21 16:21:36 +00:00
jenkins-bot
c53cecac10
Merge "Create a user preference to store visual/source mode"
2020-05-21 16:21:34 +00:00
Bartosz Dziewoński
5675eea4d0
Avoid deprecated User::getOption()
...
Change-Id: Iad32c3e63116c54c47cd3aa2aaf142c5dd5404c5
2020-05-21 13:12:49 +00:00
Ed Sanders
5feb69612f
Create a user preference to store visual/source mode
...
Bug: T250523
Depends-On: I5b3b47feeeca2085fcd283d55d7e9ceafa73be70
Change-Id: I18f5d38f9d694b12e5f983be7b3b165f135a890d
2020-05-20 22:16:19 +01:00
Bartosz Dziewoński
515af82061
Reduce duplication between PHP parser and data gen for JS parser
...
Also, make the handling of TranslateNumerals and digitsRegexp the same
between PHP and JS.
Change-Id: I1d81343d0b59ab3ecd59ba1c2ad99a729d983ac4
2020-05-19 20:54:44 +02:00
jenkins-bot
366aca2ccd
Merge "Stop printing console warnings"
2020-05-18 22:52:30 +00:00
Bartosz Dziewoński
219339551c
Stop printing console warnings
...
It was useful when I was debugging those parts of the code, but now
it's usually annoying.
The warnings can still sometimes be useful for understanding how the
tool parses some discussion, though. To keep that functionality, add
displaying warnings for each comment in the debug mode.
Change-Id: I2d218a8a394f179bcc0990ff988a0567c275ccf2
2020-05-18 23:37:37 +02:00
Ed Sanders
607440498e
Spell check pass
...
Change-Id: Ia20da358297126bd52a968bd77c960f81fe82b8f
2020-05-18 21:24:14 +00:00
Bartosz Dziewoński
c848d8a90e
Parser tweaks
...
Follow-up to Ic1438d516e223db462cb227f6668e856672f538c.
Minor corrections and comment improvements in PHP parser,
and "backporting" some changes to JS parser that I like.
Change-Id: I5e54121914ec6b323e556dd133bcb71b3aefbb61
2020-05-18 19:53:26 +00:00
Ed Sanders
b1427163af
Parser.php: Add tests for getTranscludedFrom
...
Requires an implementation of unwrapParsoidSections
Change-Id: I96c929b1117ba652dbd5af6a1ee37a5f9e87ed1e
2020-05-18 19:53:01 +00:00
Ed Sanders
d1e58841af
Rename removeListItem to removeAddedListItem and remove in PHP
...
This method shouldn't be required on the server. Leave comments
relating to it in addListItem so JS & PHP can be kept in sync.
Change-Id: I849fac660faf6e750272c20776f96b9250f96b1b
2020-05-18 19:25:08 +00:00
jenkins-bot
0496e6b7e6
Merge "PHP: More missing typehints"
2020-05-18 17:54:16 +00:00
jenkins-bot
a41eadfc51
Merge "Modifier: Pass document to createWikitext"
2020-05-18 17:54:15 +00:00