MyWiki:ReFill/technical

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

This page documents the architecture of reFill.

Components

[edit source]

Toolbar gadget

[edit source]

ReFillLink.js is a gadget that provides a way to submit a page to reFill in a single click.

Front end

[edit source]

This is a Vue.js single-page application where the user can enter the wiki page to process, select options, submit the page to the reFill API and check the results.

The front end code is bundled using webpack.

Middle layer

[edit source]

Celery is use to queue requests. Key-value data is held in memory using the Redis data store.

Back end

[edit source]

The back end code is written in Python and uses the Flask web framework. Docker provides containerization. Citoid is the main parser, called from citoid.py. Citoid is maintained by the Wikimedia Foundation and uses Zotero. The relationship between Citoid and Zotero is described in a tech talk.

Rather than reFill containing code to cope with the vagaries of thousands of different websites, Zotero translators can be created, benefiting other referencing tools used on Wikipedia.

Hosting

[edit source]

The production Docker container is hosted on the Toolforge PaaS environment, which uses Kubernetes.

Access to the hosting environment is via PuTTY and WinSCP - PuTTY for SSH command line access, and WinSCP for file transfer.

How to's

[edit source]
[edit source]