Page MenuHomePhabricator

Design outline for HTML output
Open, Needs TriagePublic

Description

Background

The exploratory research work which aimed at discovering meaningful opportunities to embed Wikifunctions calls inside the Wikipedias has uncovered many potential user pain points that can be easily resolved using Wikifunctions. However, most of them depend on Wikifunctions being able to output HTML code snippets in place.
Wikifunctions currently lacks the capability to output anything other than plain text. In order to prepare ourselves for future impactful integrations, it is very important for us to understand the level of effort required to enable Wikifunctions to support HTML output. We also need to understand any security implications/threats that this work might potentially have, and theorize possible solutions for them.
This task is to conduct the necessary spikes and prepare for possible security concerns.

What it is not:

  • Exploration of having wikitext being created/rendered as part of this work
  • No external agreements with stakeholders yet, so as to not distract them from async work

Approach

  • We will deliver a document detailing the implementation plan for enabling HTML return type functionality within WikiFunctions
  • This work will fortify our idea and understanding of what it entails to have this ability built in. It will explore details like: shared understanding of what WIkifunctions can output, of how HTML gets sanitized, what exactly gets stored in the cache, how pieces of cache are being assembled, what kind of markup is possible for the community to create, and what is not (e.g. is it possible to create an infobox? Is it possible to create a reference / citation? Is it possible to create a graph? Is it possible to create interactive content)
  • What can we do if a certain feature seems not possible to implement? Is there a workaround or alternative that is implementable? Eg:workarounds for having wikitext outputs will be part of this work
  • There are security considerations with outputting HTML. These should be called out explicitly. We do not plan to resolve these in this quarter, but rather to be ready for a conversation with SRE and others when the time comes.

Acceptance Criteria/Success Metrics

  • A comprehensive plan document unanimously agreed upon by the team, serving as a tangible measure of success. This document not only instills confidence but also enhances our understanding of the attainable goals, capabilities and risks of enabling HTML outputs in Wikifunctions.

Stretch Goal (optional)