Commit graph

17 commits

Author SHA1 Message Date
Subramanya Sastry 5578953555 Run cite handler first thing in phase 3.
* Run cite handler first thing in phase 3 so that ref-content
  is pulled out of the main token stream.  This effectively
  prevents unclosed/unbalanced tags within ref-tags from
  affecting the main stream.

* No change in parser tests.

* Fixes rt diffs on the following pages:
  1. en:Bandaid surgeries (zero rt diffs)
  2. en:Gondi bank (zero rt diffs)
  3. en:Ashland, oh (1 syntactic diff)
  The reverted commit (78989e8) had fixed rt-diffs in 1. above,
  hadn't changed diffs in 2. and introduced regressions in 3.

Change-Id: I6ad498d9d3711b71e7f427eea214acd10da8647b
2012-11-06 12:47:42 -06:00
Subramanya Sastry 6dcfba79fa Dont set TSR on ref-end-meta-tags if incoming TSR is missing.
* Setting tsr to (endTsr || [null, text.length]) was causing
  serious duplication of rt-src on the following page:
    en:Almirante Latorre-class battleship
  This is the case for ref-tokens that come from templates
  which have their TSR stripped.  So, we shouldn't attempt
  to set it to [null, text.length] again.
* No change in parserTests.
* No change in errors for en:L'Opéra national de Paris.

Change-Id: If6a79638c349c9a3fab42094aad51e2e476f9632
2012-11-01 13:25:08 -05:00
Gabriel Wicke 2a774f0720 Set proper TSR on cite expansion output end meta
Also remove the src, as we re-set it based on DSR anyway.

No change in parserTests, but three less diffs in L'Opéra national de Paris.

Change-Id: Ia6784efe7d76c41f24a183465393bda78641a8eb
2012-10-31 16:43:28 -07:00
Gabriel Wicke a884a28b09 Deep-freeze cache returns and enable strict mode
This exposed a few bugs (primarily missing var declarations), which are fixed.
It would for example have caught the shallow clone bug we just fixed, and
should catch similar bugs early in the future.

TODO / issues this exposed:
Avoid attempted tsr modification in ext.core.TemplateHandler.js:306:29. This
is fixed for now by cloning the tokens, but should really be avoided by
stripping the tsr before caching the tokens (anything in phase 1 will work for
example).

Change-Id: I6a1a07de7ac333f31da9cf0ae9ed20e5507bacba
2012-10-30 12:53:27 -07:00
Subramanya Sastry 7aad9fc1b7 Enable RT-ing of references tag if page has no refs/citations.
* There was a fixme for this in ext.Cite.js which was triggering
  an error in the serializer and introducing rt-diffs.
* No change in parser tests.
* Eliminates semantic error in en:Birkenhauer Island and other
  pages.

Change-Id: I9fe6ea26fdf1859d751b02a288393af610be5474
2012-10-29 12:10:40 -05:00
Mark Holmquist d39d4fa9e8 Modularizing the roundtrip-testing code
In response to comments on change I55c31a83, I've made things a bit
more modular.

Change-Id: I462dca175f26bc22e18a357831167358c63eefe0
2012-10-12 21:28:03 +00:00
Siebrand Mazeland 10650dd977 More updates suggested by JSHint/JSLint.
Also removed some superfluous newlines.

Change-Id: I4014888383d6500fa14030e37b4aba17d2082cf2
2012-09-25 16:35:56 -07:00
Subramanya Sastry 760d63d033 Improved template roundtripping based on WT ranges on DOM nodes.
- Fixed several bugs in the DSR computation.
- Deleted comment tokens from template output.
- Eliminated TSR info from template output.
- Rearranged order of DOM post passes.
- Updated template encapsulation to use DSR values.
- There are still a few missing pieces and scenarios that are
  not handled properly.

Change-Id: I644914902ec1d27418138b107abe765f81178398
2012-09-17 21:08:35 -05:00
Subramanya Sastry 0520effd3d JSHint fixes only.
Change-Id: I8ad4e283685ab460802e69e21504ddc241985f80
2012-09-12 12:06:48 -05:00
Subramanya Sastry dbd628fd87 Added getWTSource convenience method to tokens.
Change-Id: I8c99fcd4ccefbae62a1639e5738fe2d4c88f122a
2012-09-06 09:29:38 -07:00
Subramanya Sastry 67326f063a Check if tsr is present in references tokens before generating src rt-info.
* Only one instance of Cite handler is created and it deals with the
  final expanded token stream.  So, effectively there is no information
  about whether we are processing in a top-level or nested template
  context.  So, we instead use tsr.

Change-Id: I002f421fc78576e869cc8fbcdc386ef0abb09ca9
2012-09-05 19:48:08 -05:00
Subramanya Sastry d3f0007f1b Updates to the references tag rt-ing to get rid of FIXMEs.
Change-Id: I8b832925ad476fb8043f9beb1e39e6efb27ea336
2012-09-04 20:53:33 -05:00
Subramanya Sastry 23f3e0f1aa RT references extension tag.
Change-Id: Ibd1be584e17814a84154549b7bc353465734b847
2012-09-04 20:07:26 -05:00
Subramanya Sastry ca04fdc293 Experimental ref-tag support (for demoing purposes).
* Added template-wrapping information in cite-expansion with
  Object/Ext/Cite RDFa type.
* Added 'ref' tag to whitelisted tags (temporary workaround to
  let <ref name='blah' /> to RT correctly till we handle this
  properly).
* Added support for self-closing, but non-void tags.
* Deleted Object/Template/Content type attribute since it was
  not used.
* Renamed Object/Template/Attributes to ExpandedAttrs/Template
  to distinguish template attribute code paths from content
  code paths -- could possibly be renamed to something more
  suitable later on.

Results:
- With this experimental support, RT diffs on the en:Barack_Obama
  page are vastly reduced.

Change-Id: I018f03df102764d3e39442ae359b751056a38c2f
2012-09-04 18:51:29 -05:00
Subramanya Sastry f733af93c4 Code cleanup.
* Moved tokensToString and KVtoHash from parser.environment
  to Util -- got rid of excessive warnings from tokensToString.
* Replaced used of Util.lookupKV(blah).v with Util.lookup(blah)

Change-Id: Ic48d5d0c79045b9789dc61a2b14df3fc2acf7aa5
2012-08-24 15:29:53 -05:00
Subramanya Sastry 2d15258803 Fixed template meta-wrapping to handle nesting and attributes.
* Nested parser functions are no longer meta-wrapped similar to
  nested templates.
* HTML attributes which derive all or part of their key/value
  from a template are not template-wrapped, but are marked to
  be tracked via different rdfa meta attributes.  The actual
  tracking and addition of new meta attrs. is yet to be
  implemented.
* Parser pipeline construction updated to use an options object
  rather than individual option args -- used to support the two
  features above.
* With this fix, we can now distinguish between the following
  scenarios:

  Templates:
  - {{echo|[[Foo|bar]]}} -- regular wrapping of the entire link
  - [[{{echo|Foo}}|bar]] -- no wrapping, but href marked for tracking
  - [[Foo|{{echo|bar}}]] -- link text is wrapped.

  Parser functions:
  - {{uc:foo}} -- regular wrapping.
  - {{uc:{{lc:{{uc:foo}}}}}} -- only the top-level parser function
    is wrapped, the nested lc and uc parser functions are not.

Change-Id: I512b8de9838ad42d9255ebcd73074b3898294cd8
2012-08-19 15:21:36 -05:00
Gabriel Wicke 4900d85606 Reorganize Parsoid repo after split from VisualEditor
* /js/ for JavaScript / nodjs implementation
* /js/lib for js modules
* /js/tests for js test runners and unit tests

Change-Id: I7da1ea2a62b9312be0f1b492447340427f6a14fb
2012-07-30 13:10:22 -07:00
Renamed from modules/parser/ext.Cite.js (Browse further)