User:Samisawtak/Auto wikifunctions

Wikipedia on_page enhanced functions
The purpose of this page is to capture, study, plan, and develop enhanced functions on the common space at Wikipedia For Palestine. The aim is to enable Wiki-Activists contribute faster and easier through improved task management and communication.

Feel free to edit, comment, and add.

Obstacles Difficulties
1- Headers of tables don't freeze when scrolling down

2- No way to pick up assignee name from a dropdown or list

3- URLs to sections (e.g. role description) do not cause section to expand while keeping collapse as default.

4- There is no readily available way to notify assignees when they are assigned to tasks.

5- In Sandbox subpages, editing in Visual Editing mode is not possible. For most people adding or editing records in Source Editing is not easy. Moving out of Sandbox could be an alternative, exactly like this page. where both Source Editing option and Visual Editing option are available to users.

6- In Visual Editing, how can a new row in a given table be created by a click on an icon or something?

Testing Message to contributors
Please take a look at the enhancements I'm proposing in my sandbox here. Samisawtak (talk) 17:06, 19 June 2024 (UTC)

Starting points for developers
Starting points for developers

Here are some steps and resources to get started:

1. **Understanding MediaWiki**: - **MediaWiki Manual**: The MediaWiki Manual is a comprehensive guide for developers. (https://www.mediawiki.org/wiki/Manual:Contents) - **MediaWiki API**: The MediaWiki API documentation is crucial for understanding how to interact with Wikipedia programmatically. (https://www.mediawiki.org/wiki/API:Main_page)

2. **Bots and Automation**: - **Pywikibot**: A Python library for automating work on MediaWiki wikis. The Pywikibot documentation is a good starting point. (https://www.mediawiki.org/wiki/Manual:Pywikibot) - **AWB (AutoWikiBrowser)**: A semi-automated Wikipedia editor. The AWB guide provides insights into its usage. (https://en.wikipedia.org/wiki/Wikipedia:AutoWikiBrowser)

3. **Editing and Managing Content**: - **Editing API**: Learn how to use the Edit API to programmatically edit Wikipedia pages. (https://www.mediawiki.org/wiki/API:Edit) Getting started with Wikimedia APIs explains how to set up API access on Wikipedia. - **Page Parsing and Content Models**: Understanding the Content models and how to parse page content is essential. (https://www.mediawiki.org/wiki/Help:Extension:TextExtracts)

4. **Custom Extensions and Gadgets**: - **Creating Extensions**: For more advanced customizations, developers can create their own extensions. The Manual:Developing extensions page is very helpful. (https://www.mediawiki.org/wiki/Manual:Developing_extensions) Note that editors don't have direct access to deploy extensions. Getting an extension deployed on Wikipedia is a very long process with strict requirements so this isn't a likely path for developing something quickly on Wikipedia. - **Gadgets**: JavaScript/CSS based custom tools that enhance user experience. Information on Gadgets can help create user-friendly tools. Gadgets on Wikipedia must start their lives as user scripts (see below) and go through an approval process to become gadgets. They can then be enabled by checking a box in your user preferences. More technical info can be found in the MediaWiki gadget kitchen

5. **Working with Templates and Lua**: - **Templates**: Learn how to create and modify templates by visiting the Template help page. (https://en.wikipedia.org/wiki/Help:Template) - **Lua Scripting**: Lua is used for complex template logic. The Lua scripting guide is necessary for creating advanced templates. Wikipedia Lua reference General MediaWiki Lua reference

6. **Notifications and Talk Pages**: - **Echo Extension**: For notifications, the Echo extension documentation provides details on how notifications work. (https://www.mediawiki.org/wiki/Extension:Echo) - **Talk Pages**: Understanding how to post on and interact with Talk pages is crucial for community interactions. (https://en.wikipedia.org/wiki/Help:Talk_pages)

7. **User and Permission Management**: - **User Rights and Permissions**: Learn about user rights and permissions from the Manual:User rights page. (https://www.mediawiki.org/wiki/Manual:User_rights)

8. **Front-End Customization**: - **JavaScript and CSS**: Developers can customize the front-end using JavaScript and CSS. The ResourceLoader documentation provides details on loading scripts and styles efficiently. (https://www.mediawiki.org/wiki/ResourceLoader)

9. **Practice and Sandbox**: - **Test Wikipedia**: Use the Test Wikipedia environment to experiment without affecting the live site. (https://test.wikipedia.org/)

10. **User scripts**: - User Scripts are a flexible form of automation. Any Wikipedia editor can write on, but they must be installed on each Wikipedia user's account to have an effect on that user. Here is a list of existing user scripts to give you an idea of what they can do. Users can also add custom JS code to their common CSS and JS pages which will be loaded for that user only on every page load.