Skip to content
a scholarly dissertations editor allowing to build standalone HTML webpages
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Jul 25, 2018
__mocks__ add mock for apa.csl and xml file Feb 18, 2019
config remove background color from config Apr 16, 2019
src improve context resource addition list close #304 May 20, 2019
translationScripts
translations improve context resource addition list close #304 May 20, 2019
.dockerignore
.eslintrc simplify features architecture Sep 26, 2018
.gitignore add back mock folder to git Jan 30, 2019
404.html add tiny improvements to error pages Jul 19, 2018
50x.html
CONTRIBUTING.md
Dockerfile 🐳 fix nginx resolver issue when backend address change Nov 29, 2018
LICENSE update license close #205 Aug 29, 2018
MANUAL_E2E_TESTS_CHECKLIST.md improve e2e checklist by adding draft-js checklist #173 Oct 8, 2018
README.md Update README.md Jun 21, 2019
android-chrome-96x96.png
apple-touch-icon.png add favicon Jun 29, 2017
browserconfig.xml
config.json improve autosave Feb 15, 2018
docker-cmd.sh 🐳 fix nginx resolver issue when backend address change Nov 29, 2018
docker-nginx.conf 🐳 fix nginx resolver issue when backend address change Nov 29, 2018
favicon-16x16.png
favicon-32x32.png add favicon Jun 29, 2017
favicon.ico
fonio-rs.png
index.html Normalizing meta tags Oct 4, 2018
index.prod.html.template remove background color from config Apr 16, 2019
manifest.json document the code Jul 31, 2017
mstile-150x150.png add favicon Jun 29, 2017
package-lock.json update package lock Apr 23, 2019
package.json
safari-pinned-tab.svg
webpack.config.dev.js New Docker integration Jul 5, 2018
webpack.config.docker.js Improving webpack configs Aug 28, 2018
webpack.config.prod.js
webpack.config.shared.js

README.md

Fonio - a scholarly dissertations editor allowing to build standalone HTML webpages

Fonio is a collaborative writing software aimed at building rich digital scholarly dissertations, using the architecture of websites to structure arguments, and the possibility to feature an extensible array of resources such as bibliographic references, images, tables, videos, and interactive elements.

Fonio puts an emphasis on documentation, allowing writers to describe all the resources gathered during their inquiry in a rich and homogeneous way (date, source, author, ...). It also allows them to build an augmented glossary in order to define key terms and browse them in an interactive way.

Besides, the application is aimed at allowing to work extensively on the information design of a dissertation: one can choose a way to organize the reading experience of their readers, and customize the visual identity of their work in a meaningful way.

Fonio is collaborative and allows several writers to work simultaneously on contents, design and documentation. According to this collaborative state of mind, works in progress are readable by the whole classroom, but their edition is restricted to each team.

Each "classroom" corresponds to a specific course and exists during a limited period of time. All works are saved and privately archived after the semester is finished, but the application also allows writers to download their work at anytime to backup it or to publish it online in a clean and easy way.

Fonio is part of the quinoa project family, a suite of digital storytelling tools tailored for the FORCCAST pedagogical program and médialab sciences po scientific activities.

It works with the quinoa-server application which provides a server to store stories and handles collaborative edition through websockets.

Requirements

Installation

You have to install both fonio (client) and quinoa-server to be able to run this application.

Install quinoa-server :

git clone https://github.com/medialab/quinoa-server
cd quinoa-server
npm install
cp config/sample.json config/default.json

Then edit the config/default.json file with your own settings.

Install fonio :

git clone https://github.com/medialab/fonio
cd fonio
npm install
cp config/sample.json config/default.json

Then edit the config/default.json file with your own settings.

Development

For both fonio and quinoa-server, run in two different terminal tabs :

npm run dev

Fonio is compatible with the Redux Devtools browser extension for an optimal developer experience.

Deployment

Fonio is supposed to run in a docker infrastructure in production.

Please look at the docker-compose.yml file present on quinoa-server repository for that matter.

Contributing

See the contributing guide in order to give a hand on translations, report bugs, or propose pull requests.

Other scripts

npm run build # builds the app to build dir
npm run lint # lints (auto-fix on) the js code
npm run comb # prettifies (s)css code
npm run test # launch tests for all .spec.js suffixed js scripts within src dir
npm run analyze # analyze webpack bundle

# translation management

npm run translations:backfill # backfills untranslated keys with default language

npm run translations:discover # updates json translation files with missing translation keys, removes deprecated keys

npm run translations:export:to:po # exports the contents of /src/translations/*.json files to /translations/*.po files (format for professional translation software)

npm run translations:import:from:po # imports the contents of /src/translations/*.json files from /translations/*.po files (format for professional translation software)

npm run translations:update:po # fills po files with untranslated keys

npm run translations:update # backfills, discovers and updates po files

npm run translations:addlanguage # automated files manipulations for adding a locale

npm rnu translations:gitaddpo # adds to git the new translations files

Precomit hook

The project uses a precommit hook before each commit to ensure the code remains clean at all times. Check out the package.json to learn more about it.

You can’t perform that action at this time.