GithubHelp home page GithubHelp logo

johnjohndoe / opendatahandbook Goto Github PK

View Code? Open in Web Editor NEW

This project forked from okfn/opendatahandbook-old

1.0 2.0 0.0 1.3 MB

Open Data Handbook

Home Page: http://opendatamanual.org/

JavaScript 25.58% Python 74.42%

opendatahandbook's Introduction

Open Data Handbook

Introduction

Welcome to the source text of the Open Data Handbook. The handbook is a project of the Open Knowledge Foundation. If you are reading this it is likely you are looking to contribute in some way, whether that's translation, feedback, editing or adding more content. If you just want to read the handbook, then please head over to the http://opendatahandbook.org/.

Contributing

We have several ways you can help. The project is split into a few roles. Our authors write content, editors merge those submissions into the handbook, designers help beautify it and translators bring the handbook to all countries of the world.

Our wiki is a great place to get started. It contains a large number of tasks for people with half an hour as well as larger tasks.

Resources

Home Page:http://wiki.okfn.org/Projects/Open_Data_Handbook
Mailing List:http://lists.okfn.org/mailman/listinfo/open-data-manual
Source:https://github.org/okfn/opendatahandbook
Translations:https://www.transifex.net/projects/p/opendatahandbook/

About our tools

The handbook is written the ReStructured Text format. ReStructured Text allows us to write files in plain text files, which can be nicely rendered as a website or a PDF using Sphinx.

Project Layout

Outline:

opendatahandbook/
  source/
  bin/
  build/
  translation/

Details:

opendatahandbook is the base directory.

source is where we keep the plain text source files.

bin is short for binaries, or executable commands. This folder holds handy scripts.

build is where rendered, or "built", HTML files live.

translation is where our i18n files are kept

Rendering the handbook

  1. Move into the base directory of the project:

    cd opendatahandbook
    
  1. Install Sphinx, with a minimum version of 0.6. Instructions for Debian and Ubuntu:

    apt-get install python-sphinx
    
  2. Render the HTML, using make:

    make html
    

Building for Translation (i18n)

Important. You will need to install Sphinx >= v1.1 for this to work.

Generating pot files

  1. Extract translateable sentences/paragraphs:

    make gettext
    
  2. Add or update the translated/all.pot file as a resource on https://www.transifex.net/projects/p/opendatahandbook/.

Adding a new language

We use transifex for this.

  1. Go to https://www.transifex.net/projects/p/opendatahandbook/
  2. Add translation for specified language (and a team)

Building a translation of the handbook

  1. Download the translated all.pot file and copy it to (where lang is a 2-digit ISO code):

    translation/{lang}/LC_MESSAGES/all.po
    
  2. Build the mo file:

    make msgfmt lang={lang}
    
  3. Symlink from all.mo (sphinx expects us to have kept with original file names generated by gettext rather than concatenating):

    make linkpot lang={lang}
    
  4. Build the translation:

    make html lang={lang}
    

Updating the Translation with New Source Text

Simple version: just upload a new all.pot to transifex.

WARNING: this will immediately update all translation files and will usually discard any translations of strings that have changed however the trivial the change is.

Deploying the Handbook

We use github pages to host the handbook at the present (in the past we have used s3 and readthedocs).

As such the exact version of the html we want served should be in the gh-pages branch of this repo.

The following as walkthrough of a deployment:

# change gh-pages branch and get all latest changes to material
git checkout gh-pages
git merge master

# build the relevant languages (if not already built)
make html lang={your-lang}
# copies build version to /{lang}/ so it is right location for website
# also does some tidying up (delete files that are not needed)
make github lang={your-lang}

## now you will want to commit changes
# take a look at what has changed
git status
# add relevant files
# e.g. add *all* changes for the lang you updated git add -u {lang}
git add {relevant-files}
git commit -m "[build][s]: build latest version of language ..."

# push changes up
# this will auto-update http://opendatahandbook.org/
# up until this moment nothing will have changed on the website
git push

opendatahandbook's People

Contributors

rufuspollock avatar timclicks avatar lauranewman avatar mitsuhiko avatar nickstenning avatar deeplook avatar pudo avatar napo avatar m-takagi avatar pablomendes avatar

Stargazers

Tobias Preuss avatar

Watchers

Tobias Preuss avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.