Grants:IEG/MediawikiFS
status: not selected
Individual Engagement Grants |
review grant submissions |
visit IdeaLab submissions |
eligibility and selection criteria |
project:
project contact:
Vedmaka, god.vedmakagmail.com, post@mediawikifs.com
participants:
grantees:
Alexey Klimovich
summary:
Create tool for representing any mediawiki installation contents as mounted local drive (virtual file system) with view/create/edit (via Mediawiki API) support and basic IDE utilizing tool advantages.
engagement target:
MediaWiki
strategic priority:
Improving Quality
total amount requested:
5000 USD
2013 round 2
Project idea
editThis proposal affects the Mediawiki engine that powers the wikis of the Wikimedia Foundation.
Problem
editWorking close with Mediawiki engine and gearing many wikis on it i figured out a problem:
- Part of Mediawiki functions is server-side, this means it should be edited/developed from IDE by modifying php-code.
- For example: changing LocalSettings, creating extensions to bring some project-specified customizations.
- Another part (primary structure) is client-side, this means it should be edited from browser by logging in as editor on site.
- For example: creating/editing of categories, templates, semantic forms, etc.
This factors is breaking development process consistency.
Especially, this is important for Semantic Mediawiki / Semantic Forms users.
Solution
editWhat if we can make process of developing site with Mediawiki more consistent?
The idea and goal of that proposition is to give mediawiki users and developers tool to help them in managing mediawiki contents and structure. Program which can represent mediawiki contents (pages, categories, templates, etc) in OS native format: files and folders mounted as local driver (virtual file system) and easily can be viewed and edited with any text editor[1] or IDE[2]. Also, this way (virtual file system) have a lot of other very interesting ways to use.
Project already have very early working proof-of-concept — http://mediawikifs.com
Feel free to download and test it (mount demonstration wiki).
Screenshots
editMediawiki FS workflow (working via Mediawiki API):
For example: on this screenshot Mediawiki installation at wiki.mediawikifs.com mounted as /mnt/mw and main page editing via VIM.
on this screenshot Mediawiki installation at wiki.mediawikifs.com mounted as local drive R:\ and main page editing via text editor.
Please pay attention to other screenshots at right side of page.
Project goals
editMain goal of this project is to make possible great idea of Mediawiki IDE, with syntax highlighting and autocompletion. Very simple and effective way to create new wikis and manage existing ones.
Main step in this idea realization is to create tool named MediawikiFS which can represent mediawiki site content as file system with ability to manipulate mediawiki contents (pages) like files and folders. Mediawiki pages can be attached as virtual disk and viewed/edited/created/deleted from any IDE, any favorite text editor.
Such combination of MediawikiFS concept and Mediawiki IDE will provide cool advantages:
- Simple overview over wiki contents.
- Browse your wiki pages like folders and files.
- Edit pages with syntax highlight and autocompletion.
- Export pages from one wiki and import to another with simple drag&drop.
- Create pages backup? Simple archive them.
- Upload files and images to Mediawiki with drag&drop.
- Use external tools for bulk pages, for example:
- Search and replace
- Collect some statistical information/patterns
- Backup articles texts
- Create automatic pages sync/replication via rsync in Linux
- Flexibility - do with wiki page anything you can do with files.
Part 2: The Project Plan
editProject plan
editScope:
editScope and activities
editI will spend time on developing MediawikiFS and Mediawiki IDE projects.
Result of the project will be:
- Two versions of MediawikiFS application, allowing users to mount any mediawiki installation as local drive (with authentication support):
- Windows application on C# language with user interface (WPF/Windows Forms for Windows)
- Linux version based on fuse-python library (CLI script)
- Sublime Text and Jetbrains PhpStorm highlight and autocompletion files.
- Screencast guide.
- User-documentation.
Tools, technologies, and techniques
edit- Fuse-python library for linux
- Jetbrains PyCharm
- Visual Studio 2013
- Dokan library
- NSIS installation scripts
- C# programming language
- Python programming language
- Mediawiki API
Budget:
editTotal amount requested
edit5000$ (or equivalent in Russian Roubles).
Budget breakdown
editBudget will be used to pay for my time spent on coding and testing program. There is budget to roadmap mapping (approx. one month per version):
- Pre-alpha version (preview) — 1000$
- Virtual disk/folder can be mounted to system.
- Single server supported.
- Mediawiki pages from NS_MAIN namespace can be listed in directory.
- Contents of pages can be viewed (read-only mode)
- Every page have right size and edit time fetched.
- Console interface.
- Alpha 1 — 1000$
- Contents of pages can be edited and saved.
- Display pages from NS_TEMPLATE, SF_NS_FORM, NS_CATEGORY and NS_PROJECT namespaces.
- Possibly support NS_FILES namespace.
- New pages can be created.
- Revision conflict check.
- Mediawiki authentication supported.
- Alpha 2 (performance) — 1000$
- Introduce caching mechanism (Reduce latency, big deal)
- Optimize api/http calls (bulk procedures, big deal)
- General program optimization.
- Beta 1 — 1000$
- Multiple concurrent servers support (user can mount many mediawikis at time).
- Introduce user options.
- Write highlight and autocompletion files for Sublime Text and PhpStorm
- RC 1 (UI) — 1000$
- Migrate from CLI to WPF/Windows Forms (for Win version).
- Design and program user friendly interface (for Win version).
- Create NSIS installer package (for Win version).
- Create python installer package (for Linux version).
- Write documentation.
- Record screencast.
Intended impact:
editTarget audience
edit- Primary audience are Mediawiki developers/administrators, who wants create project structure in favorite IDE.
- Mediawiki users, who working with Semantic Mediawiki extensions (Semantic Mediawiki+Semantic Forms) and have hard times maintain project structure (Forms, Semantic Properties, Templates).
- Everyone else, who using Mediawiki and want it contents can be handled as files.
Fit with strategy
edit- Primary fit is making developing/maintaining site based on Mediawiki is more consistent and faster.
- Improving quality by allowing Mediawiki users and developers to edit/view/create wiki contents in favorite text-editor or IDE.
- Speed up project structure creation/maintaining.
Sustainability
edit- MediawikiFS can be improved to support a lot of interesting features:
- Versioning support (pages history)
- easy file uploads in wiki
- user offline edit pages, then synchronize when user back online (dropbox way)
Measures of success
edit- Number of MediawikiFS downloads/installs.
- Number of Mediawiki installations using MWFS ( if user opt-in to track this )
- Community feedback and attraction.
Participant(s)
editDiscussion
editCommunity Notification:
edit- WikiMedia General mailing list (nabble link)
- Semantic mediawiki user mailing list (nabble link)
- Semantic mediawiki developer mailing list (nabble link)
- Facebook Mediawiki developers group (link)
Endorsements:
editDo you think this project should be selected for an Individual Engagement Grant? Please add your name and rationale for endorsing this project in the list below. Other feedback, questions or concerns from community members are also highly valued, but please post them on the talk page of this proposal.
- Community member: add your name and rationale here.
- This sounds like a great idea. MediaWiki pages as flat files would make them far more accessible for external editing, and if other features you plan for are implemented, I think this program has a lot of potential. Arcane21 (talk) 01:03, 21 September 2013 (UTC)Arcane21
- This would make for much more efficient editing and management of a wiki (or groups of wikis). --Rob Kam (talk) 12:08, 27 September 2013 (UTC)