Wikibooks:Reading room/Proposals/2016/April

Navlist
I'd like to invite suggestions and opinions on an idea I attempted some years ago, and am thinking of trying again with an improved internal look-and-feel.

My idea was to have a single template that describes the organization of a whole book, called (in the current version), and then a suite of templates you can place on the pages of the book that automatically generate a table of contents, or a navigation box for the top or bottom of a page, or whatever other such thing is wanted. Using, of course, various formats for the TOC or the navboxes, depending on what is wanted for the particular book.

I implemented this, but at the time I had to rely entirely on wiki templates, and as a result, the format of the navlist was a bit odd-looking. (There were also some size limits because generating things from the navlist involved large numbers of template calls.) You can see the suite I created at Navlist, an example of a book using it at Conlang, and the navlist for that book at Conlang/Navlist.

I now have the means to rewrite the suite templates so that each book navlist uses a more readable format, and the suite templates parse the book navlist (which also drastically reduces the number of template calls involved).

So here are some questions, if anyone would like to offer their thoughts:
 * Is this a worthwhile idea to pursue?
 * What format should the navlist for each book use? Something based on wiki list notation, perhaps?  Or something else?
 * What sorts of formats ought to be supported for tables of contents, top-boxes, bottom-boxes? What other kinds of things might be generated from the book's navlist?
 * (thrown in, gratis) Suggestions for other kinds of things that could benefit from being generated automatically, like this? I know of a Wikijunior book, for instance, that has a glossary, and then repeats items from the glossary on content pages here and there; I'm thinking a template could be set up so on the content page you can just say, basically, put the glossary definition of such-and-such here, and the template would go parse the glossary and snarf the appropriate definition from it.  Or possibly one would have the glossary data in a template, and the glossary page itself would also be generated by extracting data from that template.

Miscellaneous notes:
 * I was worried, from the start, that the navlist would be vulnerable to mistakes, or vandalism, as a single-point-of-failure; however (unlike Wikidata which is outside the projects it affects), the navlist is grouped with the book. I have in mind, in the long run, we could build a tool for checking to detect dropped pages, and perhaps other kinds of anomalies.


 * I belive strongly that control of a project should rest in wiki markup, maximizing its accessibility to ordinary wiki users (even if in some cases it's fully protected; it's still more visible and understandable as wiki markup). So I've developed a device for implementing sophisticated stuff within wiki markup (not yet imported to Wikibooks, but I anticipate doing so; atm it's yonder).  An example of using it for a navlist-like constomization device is n:Template:Infobox; that's a generic news infobox, where you can just name a category, like , and it'll go look for a customization file for France; the customization file, if it exists, calls a template that sets up a wiki table containing the customizing parameters, so, and  parses the wiki table.

--Pi zero (discuss • contribs) 14:20, 3 April 2015 (UTC)
 * Really interesting ideas. The stub template on the French Wikipedia, w:fr:Modèle:Ébauche, works like the kind of template you're describing (I think).  calls on   for image, portal to link to, category, and so forth. As regards the Navlist, it seems like a good and very useful idea. I am concerned, though, that it is confusing for an editor unfamiliar with the workings of wikicode to add or edit the table of contents at a page like Template:Conlang/Navlist. Is there a way to hide more of the code from a casual editor? Liam987  talk 20:21, 4 April 2015 (UTC)
 * The scary notation of Conlang/Navlist was always one of the things that bothered me about it, even though I was pretty excited I got the suite to work. It's now possible to use almost any (wiki-based) syntax we want, which presents a different kind of problem in that, with no constraints to force us to do things a certain way, we have to decide what we think would be most useful &mdash; most readable and most writeable, presumably.  It may turn out that there are practical constraints after all, when I get into the coding, but meanwhile, I'm interested in any thoughts on what others think might work well.  --Pi zero (discuss • contribs) 23:03, 4 April 2015 (UTC)


 * I've added a Navlist using your template on Breton, which I've been restructuring around imported Wikiversity material. It works very well, although one comment I have is that it would be useful to be able to have multiple levels of navigation in the Navlist/Top template. For example, the Breton books is structured into six levels and multiple lessons for level. I would like to be able to have the Navbox at the top of each page to link both to the next level and also to the next lesson, so that Breton/Level 2/Lesson 2 would link to Breton/Level 2/Lesson 1 and Breton/Level 2/Lesson 3, and then below that also to Breton/Level 1 and to Breton/Level 2. Also, more customizability as to which order pages are linked to, and maybe the ability to add pages to the Navbox list but not have them automatically included in the sequence for Navlist/Top and Navlist/Bottom, for optional subpages that are outside the main sequence of the book. Overall, though, these templates are great and I compliment you on them. Liam987  talk 20:59, 8 May 2015 (UTC)


 * Do you have suggestions on the question of navlist format? Since you've actually used it.  I'm thinking the current format is extremely heavy on braces and pipes (wiki template-call notation), and since I think I need a more efficient and simpler internal implementation anyway, I can use pretty much any format I want.  There's a bewildering range of possibilities, whereas when I first implemented the template suite I had such technical constraints I barely came up with one way it could work.  At that time I thought about more complicated navbox formats and basically gave up because the implementation would be too hairy; now I could tackle more more elaborate navbox formats once I overhaul the internals, but I need to get the navlist format issue settled before I overhaul the internals.  --Pi zero (discuss • contribs) 10:20, 11 July 2015 (UTC)


 * That's very interesting indeed, and the Wikilisp thing is just beautiful. In the Haskell book we have our own intricate web of templates, far less sophisticated than yours, that allows us to change the TOC and have it reflected everywhere with (almost) just one change − and I'm really glad it exists. The more books can benefit from similar features through a generic implementation the better. Two extra comments:
 * One feature you might find worthy to implement is grouping. In the Haskell book, the TOC is subdivided in groups of 8-12 pages, and the navigation templates allow you to switch to a page within the same group without having to return to the index, as well as moving to the start of a different group. That can make navigation a lot smoother in large books.
 * Perhaps I'm not thinking straight right now, but by "Or possibly one would have the glossary data in a template, and the glossary page itself would also be generated by extracting data from that template" do you really mean it is feasible to build something like a glossary by doing reverse lookups across a book? The use case I have in mind is a back-of-the-book index of terms. Several times already I have been tempted to create one for Haskell, but the maintenance burden for a large book might become unmanageable. Automated generation would definitely make it feasible, even if, say, it turns out that we would have to request updates manually for technical reasons.
 * Duplode (discuss • contribs) 19:54, 13 July 2015 (UTC)
 * If there's some sort of "navlist" that lists all the pages in the book, it ought to be possible to go through that list of pages, extract glossary-item definitions from each of them, sort those entries in whatever way one wants, and produce a glossary page. I can think of two possible problems with that.  One problem is that for a large book it might exceed some transclusion limits of the wiki software (which is also a potential problem with building a "print version" page; I can maybe see a tolerably doable way around that, eventually).  A probably-lesser problem is that if the glossary is really dependent on all the other pages of the book, then the glossary will have to be recomputed every time any page of the book is edited.  --Pi zero (discuss • contribs) 02:57, 14 July 2015 (UTC)

Status note: I perceive this is a hefty item clearly worth tackling. For scheduling perspective, here are some other items on my "short list". --Pi zero (discuss • contribs) 16:03, 10 September 2015 (UTC)
 * Atm I'm working on adding error-handling robustness features to the wikidialog tools. I see this as a prerequisite to importing wikidialog to en.wb for serious use here.
 * I also feel that, before importing wikidialog here, we should upgrade our common.js file by shifting imported scripts to gadgets (as discussed in a thread further down on this page (here)).
 * We have a major problem on en.wb with the design of our category hierarchy, something that was raised a couple of months ago on QU's user talk (here). I feel like I should probably try to address that problem before getting immersed in the deep design challenges of upgrading the navlist facility.
 * Really hoping to get the low-level error-handling support done before end-of-year (admittedly challenging with the distractions of the coming week). --Pi zero (discuss • contribs) 12:58, 23 December 2015 (UTC)


 * 718smiley.svg Awesome Interesting concept. I look forward to implement it somewhere. I'll be revising the sources and providing some feedback later. Any help needed? Keep up the good work! --Vito Francisco 21:55, 26 December 2015 (UTC)


 * Progress report: Efforts to apply the dialog tools in practice keep showing up needed upgrades, which I've continued to make over the past several months; I do believe it's in much better shape than it was.  Along the way I got others to test it on a mess of browsers and platforms I don't have access to myself, which uncovered a bug, now fixed.  The tools have so far shown themselves robust enough that they keep functioning even when most other javascript on the wiki fails, though I haven't quite decided whether to be pleased that my code keeps working or disconcerted by the intermittent failure of other core functionality such as the collapsing of the legend on RC. My long-range hopes/expectations for use of the tools also keep ratcheting up, which tends to slow things down.  I envision the tools eventually allowing interactive assistants to integrate with an interactive meta-assistant &mdash; that is, an interactive assistant for assisting in the creation and maintenance of interactive assistants.  That's a tall order, and as with any other kind of assistant, lots of practical experience with the task is needed to know how it can be assisted &mdash; in other words, building assistants is a necessary step toward building a meta-assistant.  I could guess I'm still a month or more away from starting to port to Wikibooks, but that's only a guess at a lower bound.  --Pi zero (discuss • contribs) 01:18, 17 April 2016 (UTC)

Proposal to globally ban WayneRay from Wikimedia
Per Wikimedia's Global bans policy, I'm alerting all communities in which WayneRay participated in that there's a proposal to globally ban his account from all of Wikimedia. Members of the Wikibooks community are welcome in participate in the discussion. --Michaeldsuarez (discuss • contribs) 14:45, 18 April 2016 (UTC)

Template:RC allows to filter the recent changes by category
This new template (inspired from the Wiktionary) displays one category pages evolution. JackPotte (discuss • contribs) 18:33, 30 April 2016 (UTC)
 * 1) Should we add it into a drop down menu?
 * 2) Would you be in favor of its deployment into every category?
 * 3) With CategoryTOC?
 * 4) And Book search?