Giter Club home page Giter Club logo

docs's Introduction

ODK Docs

Platform License Build status Slack status

This repo is the source for ODK documentation.

The published documentation is at:

Please file an issue if you can't find what you are looking for.

Building and viewing documentation locally

There are two options for building and viewing ODK docs locally: using Docker or setting up a local Python/Sphinx environment. We generally recommend starting with the Docker image unless you already have a Sphinx environment set up. The Contributor Guide describes the philosophy behind the docs, style considerations, how to write restructured text and more.

Using Docker

Docker is a platform that makes it easier to package applications so that they can work on any computer. This is particularly valuable when setting up development environments which can work very differently based on versions of the tools involved.

Prerequisites

Cloning the repo

Clone the docs repo. For example, at the command line:

git clone https://github.com/opendatakit/docs.git

It can take a long time (>10 minutes) to clone the repo due to the large number of images in the docs. If you get an error such as Smudge error or GitHub's rate limit reached, run git checkout -f HEAD until you get the message Checking out files: 100% done.

Building the Docker image

Next, you need to build the Docker image with all the tools you will be using to work with ODK's docs.

docker build -t odk-docs .

It can take a long time to build the Docker image, but you only need to do this once.

Windows users

  • All commands should be run in an elevated PowerShell window. Right click on PowerShell and select the "Run as administrator" option.
  • Ensure Docker is running by checking your system tray. If Docker is not running, launch "Docker for Windows" app and wait until a notification confirms that Docker is running.

Building and serving the docs locally

Build and serve the docs locally with:

  • Windows: .\run-task.bat odk1-autobuild
  • Linux/macOS: ./run-task.sh odk1-autobuild

Once your terminal shows a "Serving on http://0.0.0.0:8080" message, you can then view the docs in your browser at http://localhost:8080.

Changes you make in the source files will automatically be built and shown in your browser.

Press Ctrl-C on your keyboard to stop the build server. It could take a while to effectively stop, and you can always close the terminal window.

If you get a The name "odk-docs" is already in use by container error message, run the following command:

docker kill odk-docs

Other build tasks

You can also use the run-task script described above to build both ODK and ODK-X docs, or to run just a portion of the build process. See available build tasks below.

Python environment

Prerequisites

We highly recommend you use a virtual environment like virtualenv or a Python version management like pyenv. (Type python --version to see your current version.)

  • Instructions for setting up virtual environment:

    A `virtual environment`_ is a Python construct
    that lets you download and install tools for a specific project
    without installing them for your entire computer.
    
    .. _virtual environment: https://docs.python.org/3/tutorial/venv.html
    
    #. Create the virtual environment.
    
       .. tabs::
    
          .. group-tab:: Bash
    
             .. code:: console
    
                /odk/ $ python3 -m venv odkenv
    
          .. group-tab:: PowerShell
    
             .. code:: powershell
    
                /odk/ > python -m venv odkenv
    
    #. Activate the virtual environment.
    
       .. tabs::
    
          .. group-tab:: Bash
    
             .. code:: console
    
                /odk/ $ source odkenv/bin/activate
                (odkenv) /odk/ $
    
          .. group-tab:: PowerShell
    
             .. code:: console
    
                /odk/ > source odkenv/bin/activate
                (odkenv) /odk/ >
    
       The ``(odkenv)`` before the prompt shows that the virtual environment is active.
       You will need to have this active any time you are working on the docs.
    
       If the file cannot be found, your activate file may be located under odkenv/scripts/activate.
    
       Later, to deactivate the virtual environment:
    
       .. tabs::
    
          .. group-tab:: Bash
    
             .. code:: console
    
                (odkenv) /odk/ $ deactivate
                /odk/ $
    
          .. group-tab:: PowerShell
    
             .. code:: console
    
                (odkenv) /odk/ > deactivate
                /odk/ >
    

Cloning the repo

Clone the docs repo and make sure all the requirements are installed:

$ git clone https://github.com/opendatakit/docs.git
$ cd docs/
$ pip install -r requirements.txt

It can take a long time (>10 minutes) to clone the repo due to the large number of images in the docs. If you get an error such as Smudge error or GitHub's rate limit reached, run git checkout -f HEAD until you get the message Checking out files: 100% done.

Building the docs

Building the docs

Once your environment is set up, build and serve the docs locally with:

$ make odk1
$ cd odk1-build
$ python -m http.server 8000

You can then view the docs in your browser at http://localhost:8000.

(Use odkx instead of odk1 to build and serve the ODK-X docs.)

You can also use make to build both ODK and ODK-X docs, or to run just a portion of the build process. See available build tasks below.

Build tasks

For both ODK and ODK-X:

Build Clean Check Style & Spell Test
Options build-all clean check-all test

For a specific ODK version:

Build & Serve Build Copy LaTeX Style Check Spell Check Check All
Options odk1-autobuild odk1-build odk1-copy odk1-latex odk1-style-check odk1-spell-check odk1-check

To build ODK-X docs, just replace odk1 with odkx.

How to contribute?

We are open for new issues and pull requests.

  • Please read the Contributors Guide before working on the documentation.
  • Find issues to work on.
    • First time contributors are encouraged to complete a line edit as a way to get familiar with our contribution process.
    • Issues labelled easy do not require much specific technical knowledge.
    • Issues labelled contributor friendly are usually self-contained and don't require extensive knowledge of the ODK ecosystem as a whole.

You can also...

Troubleshooting

  • If you get an extension error or a configuration error:
    • Make sure your virtual environment is activated.
    • Type python --version to check your current python version (it should be 3.x).
    • Run pip install -r requirements.txt.

docs's People

Contributors

adammichaelwood avatar akshay-ap avatar ankita240796 avatar arthursampaio avatar atl2017 avatar ayushgangrade avatar bryce-p-williams avatar cooperka avatar danbjoseph avatar divya063 avatar ggalmazor avatar grzesiek2010 avatar hbler avatar issa-tseng avatar jaredbhatti avatar jbeorse avatar kevsun78 avatar khmermenten avatar leiyiz avatar lesley-morgan avatar linl33 avatar lognaturel avatar mish24 avatar nadaa avatar ray-fung avatar seadowg avatar tanvibhakta avatar troublemagnet avatar wbrunette avatar yanokwa 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.