GitHub Importer
- Mentor(s)
- Student
- Estimated workload
2 man month
- Details
The idea is to develop an importer to import GitHub pages written in GitHub-flavored Markdown into XWiki pages written in XWiki Syntax 2.1.
To do that you would use the following existing modules in XWiki:
- Filter Application. This is a generic framework and UI to convert from one format to another.
- You can use examples of existing importers:
- Markdown Syntax
- Git API
Here's an idea of a possible implementation workflow:
- Since there's no GitHub REST API to access GitHub wiki pages, use the XWiki Git API to checkout/clone the underlying Git repo containing the GitHub wiki pages.
- Write an input Filter that takes as input a Git repo containing GitHub wiki pages. Use the existing XWiki Instance output filter to convert that into wiki pages.
- Use the Markdown Syntax to parse the GitHub pages and use XWiki Rendering APIs to convert that to XWiki Syntax 2.1
- See this snippet to import from GitHub
- Developer profile
Knowledge required:
- Java
- Active
- Yes
- Year
2020
- Status
Selected
- Progress
Google Summer of Code 2020 Report
GitHub Importer - XWiki
Mentors: Vincent Massol, Simon Urli.
Student: Haxsen (Hassan Ali)
Introduction
GitHub Importer is an XWiki extension which provides the ability to import and convert pages from GitHub to XWiki with various features.
Technologies: JAVA, MAVEN, XML, XWiki, Docker.Project links
- Source Code: Main Repository
- Discussion: Forum
Output
Work Summary
Released 1.0: Forum post
Released 1.1: Forum post
- GHIMPORT-9: The conversion should be done with the xwiki default syntax and not hardcoded to xwiki/2.1
- GHIMPORT-3: Organize pages hierarchically according to the Sidebar
- GHIMPORT-10: Rephrase all hints in the UI to be more precise and useful
- GHIMPORT-8: Create docker tests to test the features
Released 1.2: Forum post
- GHIMPORT-25: Add support for zip file source
- GHIMPORT-19: Only top level pages are imported
- Some important fixes.
- GHIMPORT-11: Add validation and make mandatory fields visible
Released 1.3: Forum post
- GHIMPORT-29: Page author is not correctly assigned
- GHIMPORT-21: Internationalize the application
- GHIMPORT-26: Forbid creating pages under existing Parent
- GHIMPORT-23: Add support for mediawiki and creole syntaxes
Released 1.4: Forum post
- GHIMPORT-34: Parent Page is not picked correctly
- GHIMPORT-36: Failure to import https://github.com/nebulasio/wiki.wiki.git
- GHIMPORT-33: Improve hierarchical importing
- GHIMPORT-37: Don't loose the entered data when there's a job failure
- GHIMPORT-39: Add a link to the result after import and provide a home page for the import
- GHIMPORT-40: Broken links when importing https://github.com/kbroman/simple_site.git
Released 1.5: Forum post
Full Work
Total releases: 6
All JIRA issues fixed by me.What's Next
Experience
My experience was great in this journey of creating a new extension for an open source organization. I learned a lot and my mindset has tilted more towards contributing to help the world grow!
Mentors
My mentors were very helpful throughout the project and communication was readily available on the chat. They greatly improved my knowledge as well as skills.
Simon Urli
Vincent Massol
Hassan Ali