Wikinoticias:Asistente
The Asistentes under this parent page are sets of interactive pages to aid human users in performing various tasks — from newcomers to experts, from everyday tasks to things that might come up every few years. List them here as we write them. They are also categorized at Category:Interactive Asistentes.
There are some important conventions for writing Asistentes at the bottom of this page; eventually one would hope for one or more Asistentes to help with building and maintaining Asistentes.
List of Asistentes
editarStand-alone
editar- add action-test (doc)
- breadboard (doc)
- plan imagemap (doc) (under development)
Framing
editarDirect
editarConventions
editar- Use the
{{SITENAME}}
magic word for the namespace of Asistentes and dialog actions. This avoids hardwiring the name of the project into pages that might later be used, or adapted for use, on other projects. - All the pages of a given Asistente are subpages of one parent, which is a child of this page; or are in template space with corresponding names: the parent is
Wikinoticias:Assistant/<name>
, subpages areWikinoticias:Assistant/<name>/...
, templates areTemplate:Assistant/<name>/...
or occasionallyTemplate:Assistant/<name>
. - There are four kinds of Asistentes:
- Direct Asistentes. The Asistente is a template providing controls to immediately perform simple functions on the transcluding page.
- Framing Asistentes. The principal Asistente page is accessed only through the view verb, and uses {{dialog/preview}} to display a modified form of a target page to be acted on.
- Single-page stand-alone Asistentes. The Asistente consists primarily of a single page, whose layout is substantially not that of a target page (contra framing Asistentes).
- Multi-page stand-alone Asistentes. The Asistente has multiple distinct primary pages.
- Any of these may have some subsidiary pages; the distinction between them is different primary emphasis.
- Parent page:
- For direct Asistentes, the parent page should be a redirect to the template. Use template {{Asistente/direct}} on the template's documentation page.
- For framing Asistentes, the parent page should be the primary framing page; the view verb deliberately does not support a redirected target. Use template {{Asistente/framing}}. The corresponding template page usually provides a button to invoke the framing Asistente on the transcluding page.
- For single-page stand-alone Asistentes, the parent page should be a content page, as there's no reason to make things more complicated with a redirect. Use {{dialog/ifsupported}} for graceful behavior when accessed directly as a wiki page, and {{Asistente/single}}.
- For multi-page stand-alone Asistentes, the parent page should be a redirect to a subpage, so all the major content pages in the Asistente are on the same level. Put the redirecting parent in Category:Interactive Asistentes.
- The redirect target should use {{dialog/ifsupported}} for graceful behavior when accessed directly as a wiki page, and {{Asistente/viewable}}. Consider naming it
Wikinoticias:Assistant/<name>/start
; a recognizable standard name is desirable since any button entering the Asistente via the view verb must target the subpage directly.
- The redirect target should use {{dialog/ifsupported}} for graceful behavior when accessed directly as a wiki page, and {{Asistente/viewable}}. Consider naming it
- Primary documentation page:
- Always subpage
Wikinoticias:Assistant/<name>/doc
, except that if the Asistente is direct, this should redirect to the template documentation. - If the primary page is a redirect for a multi-page Asistente, the primary documentation page should have a section for each subpage and template. These sections should be consistent with documentation of the individual pages; this can be effected via {{Asistente/extract doc}}.
- If the primary page is a content page, links to key subpages and templates in the See also section of the documentation should suffice.
- Always subpage
- Some pages of an Asistente are meant to be accessed by naming them to the view verb; some pages are are meant to be transcluded onto another page; and some are made to be accessed either way. Most of the following principles are concerned with managing these different access modes, with their different behaviors.
- Subpages and templates:
- On a subpage, use either {{Asistente/viewable}} or {{Asistente/transclude}}.
- When transcluding any subpage or template, always pass into it all of its input parameters that are available.
- When using a parameter via markup
{{{...}}}
, don't nest another template parameter in its default value, such as{{{foo|{{{bar}}}}}}
. Non-nesting preserves substitutability by dialog parameters, since dialog parameters are (as of this writing) only substituted for non-nested template parameters. - When specifying a data field corresponding to an input parameter, specify the template parameter as an initial value, such as
{{dialog/text|id=foobar|{{{foobar|}}}}}
. This works for any combination of page viewed or transcluded, parameter passed by template or not, and parameter passed by dialog or not. - When specifying a button on any page, always explicitly pass out of it all its input parameters (except things like
SUBJECT-CONTENT
that aren't passed through an action request). If any of these parameters isn't stored locally as a data field (e.g., via {{dialog/text}} on the current page), explicitly specify the template parameter as a value for the outgoing dialog parameter, such as{{dialog/button/view|...|foobar::{{{foobar|}}}|...}}
. This works for, again, any combination of page viewed or transcluded, parameter passed by template or not, and parameter passed by dialog or not.
- Documentation pages for subpages and templates:
- Documenting a subpage, use {{Asistente/documentation}}.
- Documenting each page of a multi-page Asistente, maintain a list of the input parameters it may use, not distinguishing between template parameters and dialog parameters.
- Documenting a template, name the Asistente; identify the template as viewable or transclude-only; and put the template in Category:Interactive Asistentes subpages.