Page MenuHomePhabricator

Infinite scroll for articles (split documents on wikisource)
Open, Needs TriagePublicFeature

Description

One drawback of splitting a source document into multiple pages on wikisource (see T275319#9818815) is that it disrupts reading flow.

To address this problem, an infinite scroll feature (gadget? extension? core feature?) could be used to chain specific articles together.

I'm not envisioning the abusive sort of infinite scroll that generates "articles you may be interested in" and tries to hook your attention, but instead an editor-directed feature which says "Book/page23 precedes Book/page24 and Book/page25 follows it". This could be marked with a {{#scrollFrom}}, {{#scrollTo}} parser function or some other mechanism for recording that metadata and passing it to the client-side infinite-scroll code.

Infinite scroll was previous used in the Flow extension for topics, and there are a number of existing tasks related to that. It is important that the infinite scroll updates the URL using the browser history feature so that navigating back and forth preserves your place in the document.

It is also important that "browser search" (Ctrl-F) works across all of the linked documents, to preserve the illusion of a single-page document (T365808) and that there is a way to export all the chained pages as a single document (T365810) but those are separate tasks.

Event Timeline

@cscott Do you plan on working on these in the long term? Or are these just ideas?

These are proposals/help-wanted for now. The WMF annual planning process also deals better with discrete features/interventions, so if we can collaboratively hammer out the mechanics here it makes it easier to insert into planning to get resources allocated.

Noting that implementing infinite scrolling will effectively result in a decline of T325607 since infinite scrolling is effectively unsupported by Google bot. :(

These are proposals/help-wanted for now. The WMF annual planning process also deals better with discrete features/interventions, so if we can collaboratively hammer out the mechanics here it makes it easier to insert into planning to get resources allocated.

I'm going to sound grumpy here, but to be very blunt unless there is significant support from the Wikimedia Foundation, this is unlikely to be implemented as an extension or a core feature in the near future. Wikisource development is currently (and has been for the past 4 years) 3 volunteers (give or take two Wikisource Technical Fellows working under the GLAM team). Doing something that is currently completely un-supported by mediawiki-core and the rest of the extension ecosystem is not something that we should be doing unless there is a Wikisource Team from the Foundation which commits to maintaining the whole infrastructure behind Wikisource long-term.

Noting that implementing infinite scrolling will effectively result in a decline of T325607 since infinite scrolling is effectively unsupported by Google bot. :(

That's actually not relevant, because the pages would still exist as [[LongDocument/page1]], [[LongDocument/page2]], etc and still be discoverable by google search in the usual manner. (Of course T325607 is discussing why "the usual manner" isn't working, but that seems unrelated.)

I'm going to sound grumpy here, but to be very blunt unless there is significant support from the Wikimedia Foundation, this is unlikely to be implemented as an extension or a core feature in the near future. Wikisource development is currently (and has been for the past 4 years) 3 volunteers (give or take two Wikisource Technical Fellows working under the GLAM team). Doing something that is currently completely un-supported by mediawiki-core and the rest of the extension ecosystem is not something that we should be doing unless there is a Wikisource Team from the Foundation which commits to maintaining the whole infrastructure behind Wikisource long-term.

I'll be equally grumpy and say that long winded complaints on a thread like T275319 never get anything actually done, and are a huge waste of staff and volunteer time. WMF resources have a particular process for allocation, because there are just not enough engineers to do all the things everyone wants to do. If you want WMF resources, the first step is to come up with a concrete plan for what you want them to do, which is what I've attempted to kickstart here. Feel free to suggest alternative plans! And the other side of this is that, to the extent we have volunteers, they benefit from being given a specific task. These five tasks are all things which could reasonably be listed as a focus of a hackathon, etc. It's not perfect, it doesn't magically create new resources where there aren't any, but at least it provides a step toward making better use of the resources we do have, whether that is giving volunteers things to do or slotting a feature into the WMF planning process to get resources that way.

Further, these features we deliberately (by me) designed to be generalizable outside of wikisource. If wikivoyage (for example) uses infinite scroll to tie together the articles on the different sections of a large city, or any other project takes up and uses these features, that's another way to bring more eyes and users to the code and thus attract more resources. Solving wikisource issues in a wikisource-specific way doesn't grow the user or developer base as much as (say) adding a new core feature which is deployed on all wikis. Those are extremes, but I hope you see my point.

Aklapper changed the subtype of this task from "Task" to "Feature Request".

Why can't the entire text be rendered at load time? As long as the browser doesn't run out of memory and crash, it should work fine. I would personally find infinite scroll annoying if for example I were reading Wikisource on an unstable connection.