Module talk:Citation/CS1/doc/Importing the Module:Citation/CS1 suite to your wiki
Copying module to other wikis
editContinuing from Help talk:Citation Style 1 § Copying module to other wikis. The immediate task is to write a lua module that will fetch a list of sitelinks from wikidata and reformat that into a wikitable with at least four columns:
Project | Link | State | Maintainer |
---|---|---|---|
Albanian (sq) | w:sq:Moduli:Citation/CS1 |
Presumably the table heading will say something like Module:Citation/CS1 at Wikipedias. I imagine that the initial creation will have separate tables for wiktionaries, wikiquotes, etc.
These tables will go into separate subpages of Module:Citation/CS1/doc/Importing the Module:Citation/CS1 suite to your wiki; one for each module. I wonder if that name should be shortened to Module:Citation/CS1/doc/Importing the module suite.
The lua module is a one-time thing – fetch the data, massage it, sort (by language name?), create the skeleton, write the heading, fill in the project and link cells and done. Humans fill in the rest.
—Trappist the monk (talk) 00:33, 1 February 2022 (UTC)
- @Trappist the monk, in regard to:
The lua module is a one-time thing...
- The ideal outcome would be, I think, with high reservation, to have a list of all the possible projects so we could know who's currently not using the module yet and for the list to be dynamic in nature and change automatically in response to changes in Wikidata. But if that's not possible, then what you described above could be the next best step. - Klein Muçi (talk) 00:47, 1 February 2022 (UTC)
- We can use the qid for en.wikipedia.org to get a list of all wikipedias and then compare the list of all wikipedias against the list of wikipedias that use Module:Citation/CS1. Same for a list of all wikitionaries... These could be dynamic lists.
- —Trappist the monk (talk) 01:35, 1 February 2022 (UTC)
- Oh that's great news then! One last question: How is the suite supposed to be arranged in the page? All Wikipedias in one subpage but that means 10 pages per Wikipedia (even more if we consider the complex usage with added info like categories and what not). How are those 10 pages arranged? Should they be arranged in the same line all as 1 single cell? - Klein Muçi (talk) 01:41, 1 February 2022 (UTC)
- Also... I was thinking... Let's assume all went well and the first table is created. What would be the best way to find and note down the maintainers? In my original thinking, I just thought about going in each project, checking the history page and noting down the name. But mentioning someone randomly somewhere without prior notice might not be the best thing to do. Especially tens of people at the same time. - Klein Muçi (talk) 01:52, 1 February 2022 (UTC)
- I don't know of any way that that could be automated except by some bot that reads the histories of each module and compiles a list for further human filtering.
- —Trappist the monk (talk) 14:14, 1 February 2022 (UTC)
- First let us figure out what a real table looks like and how large it is. Then we can worry about organization.
- —Trappist the monk (talk) 14:14, 1 February 2022 (UTC)
- Also... I was thinking... Let's assume all went well and the first table is created. What would be the best way to find and note down the maintainers? In my original thinking, I just thought about going in each project, checking the history page and noting down the name. But mentioning someone randomly somewhere without prior notice might not be the best thing to do. Especially tens of people at the same time. - Klein Muçi (talk) 01:52, 1 February 2022 (UTC)
- Oh that's great news then! One last question: How is the suite supposed to be arranged in the page? All Wikipedias in one subpage but that means 10 pages per Wikipedia (even more if we consider the complex usage with added info like categories and what not). How are those 10 pages arranged? Should they be arranged in the same line all as 1 single cell? - Klein Muçi (talk) 01:41, 1 February 2022 (UTC)
- Fist hack at the table looks like this in my sandbox. When we settle on what the table should look like, the
{{#invoke:}}
can be subst'd so that we get a table that is editable; see this version. - —Trappist the monk (talk) 18:22, 1 February 2022 (UTC)
- Is that the whole table? I think not. (I'm not finding SqQuote.) I ask because I wonder how long will the actual table be.
- Comments on details:
- Do we need the language and project codes on the link?
- Do we capitalize the first letter in the headers?
- Do we really use "date" as a header for the update/outdated column?
- The other modules are supposed to be in different pages/tables, no? - Klein Muçi (talk) 22:30, 1 February 2022 (UTC)
- Umm, fifth from the top?
- I don't know; that info is available so why not?
- I tend not to but others might
- date of last update can be more specific than some sort of vague notion about current status
- yes
- —Trappist the monk (talk) 22:43, 1 February 2022 (UTC)
- Oh, so it is the full table. Relieved. It's not that long. What about the projects that aren't using the module?
- I was thinking to maybe not include it because we already have that information in the prior cell.
- I'd vote for capitalization; Same for the project names.
- Oh! If that's so, do we make that a bit more obvious? I'm being a bit confused thinking different scenarios though. My proposal was something more black or white: You either have the identic version with EnWiki and are considered up to date or not and are outdated. If we track the date of the latest edit... We have vandalism cases, we have local experiments that can be done just to try out small things or learn how the module works... Things that aren't really an update per se. The date would loose more meaning the more it started to de-synchronize with the EnWiki dates. And... Who are we thinking that would update the dates? In the Outdated/Updated cases maaaybe we could automatize it somehow because it was just a template. In this version, we'd need for the local maintainers to come and change the date manually after they complete the update, no? Is that a realistic wish?
- That's good. - Klein Muçi (talk) 23:27, 1 February 2022 (UTC)
- Answers:
- the preceding cell may or may not have that same information because of sorting.
- done
- I don't know of any way to absolutely, positively know that another project's modules are 'in synch' with en.wiki without there is a direct byte-for-byte comparison or some sort of check-sum calculation to give us a same/not-same answer. We could add a timestamp to each module but that is easily altered or removed so not robust. More-or-less, I think it comes down to a judgement call: is this module in-synch/not-in-synch within some range of acceptable tweaks? An example of that occurs when some identifier values grow out of the range that we have defined as acceptable (the purpose is to catch grossly erroneous values) I tweak the live ~/Configuration module for that identifier. That little tweak makes all other modules not-in-synch so there has to be some give around how much difference is acceptable when deciding whether a module is in-synch/not-in-synch.
- —Trappist the monk (talk) 00:41, 2 February 2022 (UTC)
- I believe it comes down to how we expect the update to happen. Let's consider the CSS subpage. If we are to believe in the bot scenario, the local maintainers do nothing about it. The bot comes in XX project, updates the page and then updates the table with "Updated" or whatever we want it to write down there. If for some reason it can't update the page, it writes down "Outdated" (and maybe it gives a comment why it couldn't? - we can imagine a list of error messages). This scenario, which may be considered the best scenario in many ways, has its drawbacks. The ~/Configuration page most likely will need human intervention for many years to come. (Until the said bot ideally can have a global maintenance interface alla IABot - even more advanced than that actually - that would allow each project to register the already localized values). Even though we can notify the maintainers automatically to do their job, we can't be sure if they did it or not and having a bot update all the other modules while the config page is left outdated may be risky, causing problems or the whole system to stop working altogether. So I'm not sure what would be the best approach in practice in regard to this scenario.
- If we are to believe that the updates will be fully manual by the local maintainers then the date column will remain their responsibility. At that case, the standard that we may choose to follow doesn't matter much I believe because it would be in their hands and we can't be sure the whole world actually knows, follows or is willing to take the extra step to update that entry. We can give a direction at the top of the documentation page asking them to update that table when they finish following the instructions but I'm not sure how much that would work out. - Klein Muçi (talk) 01:33, 2 February 2022 (UTC)
- Oh, so it is the full table. Relieved. It's not that long. What about the projects that aren't using the module?
Formatting issue
editThis is a good guide, but I lack more on customization of the citation format itself, etc. cite book by default is like this:
- Miller, E. (2005). The Sun. New York: Academic Press. ISBN 98-76-54321-0.
How can this be changed to something like that? Could not find how the order is coded.
- Miller, E. The Sun. New York: Academic Press, 2005. ISBN 98-76-54321-0.
Zygimantus (talk) 16:25, 5 March 2024 (UTC)
- @Trappist the monk, any idea about this? Zygimantus (talk) 20:48, 7 March 2024 (UTC)
- There is no customization support for the citation format. When the module was originally written, citation elements were simply strung together as a series of concatenations. Some work has been done to improve on that poor programming practice but not much. To do it properly will require a significant rewrite of a fair chunk of the module.
- —Trappist the monk (talk) 23:29, 7 March 2024 (UTC)