Editing the Koha Manual

From Koha Wiki

Jump to: navigation, search
Home > Documentation
Koha > Community > Participation

The Koha Manual is managed by the Documentation team and everyone is invited to help out writing and updating it.


To do list

Please file any issues with the manual as a bug report on Bugzilla using the Documentation component.

There is also a saved search for Bugzilla, that looks for bugs with the keyword Manual or the component Documentation

Documentation related bug reports

Please feel free to add new to-do list items for missing chapters/information, things you didn't spot on the manual or suggestions of any kind.

If you want to discuss things about documentation or send us your documentation to include in the manual, you can sign up on the koha-docs mailing list or join us for the next Documentation IRC meeting.

The Documentation Team uses Taiga.io to manage documentation tasks.

Editing the manual

Starting with the manual for 17.05 we have switched from DocBook to Sphinx for creating our documentation. This makes it really easy to contribute.

Easy - Editing with GitLab

The easiest way to contribute to the manual is making your changes using the following workflow with GitLab. You don't have to download or install anything for this to work, it can all be done in the browser!

  1. GitLab account: First of all, you have to create an account on GitLab. You can also sign in with an existing Google, Twitter, GitHub or BitBucket account.
  2. Navigate manual files: Once you are logged in, you can navigate to the Koha manual on GitLab and get yourself a bit familiar with its file structure.
    • You will find all the text in source, for example administration.rst will have all the information about the administration module except for the system preferences that live in systempreferences.rst.
    • You can also use the option to 'Search this project' at the top of the page. For example, you could search for AcqCreateItem to find the spot where this system preference is described in the manual.
  3. Start editing: Once you have located the file you want to change, you can use the Edit button on top of viewed file to start the editing process.
    • First time: Fork will create a fork of the koha-manual repository in your GitLab account.
    • Make your changes in the editor. The formatting is done using reStructuredText.
    • Add a short description in the commit message input field below the editor. The first line is going to be the subject line, all other lines below will also be shown when looking at your changes in detail.
  4. Save your changes: Saving your changes will create a merge request to be seen by the documentation team. You can see your open merge requests on your GitLab account.
    • Next time: Commit changes to submit the changes to your fork of the repository.
    • After committing your changes, GitLab will automatically ask you to create a merge request. Here you can edit the description again, but don't change any of the other settings. Click Submit merge request and you are done.

Check out this video for a demonstration on how to edit using GitLab!

Normal - Adding screenshots with GitLab

This requires a little bit more work as you need to edit multiple files, but is not too hard to do:

  1. Upload images: First, you need to upload your screenshots.
    • All images are stored in the directory source/images
    • In your repository, navigate to the directory where you want to add your images. For example, koha-manual/source/images/circ
    • At the end of the path shown on top is a plus ("+") icon. Click on it and select Upload file.
      Gitlab upload file.png
    • You can now upload the image(s), either using drag & drop or the click to upload link to browse your directories and select the file(s) you want to upload.
      Gitlab upload file2.png
    • Finish with changing the commit message to some description, for example: Adding screenshots for feature xxx.
  2. Create aliases for your screenshots: By using aliases we can change a file without having to change the documentation.
    • Go to the images.rst file, found under koha-manual/source.
    • Click on Edit.
    • Go to the bottom of the file and add a line referencing your image. The syntax is the following:
      .. |image1355| image:: images/tools/importpatrons/patronattributes.png
      • .. = this means it's a comment line, it will not appear if you look at the rendered page
      • |image1234| = this is the alias of the image to be used in the manual. Use the next number in the file (for example, if the last number in the file is 1234, use |image1235|).
      • image:: = this is the syntax that calls the file to appear as an image (not a link or a string of text)
      • images/xxx/xxx.png = this is the path to the image and its name
    • Enter your commit message and submit the changes.
  3. Add screenshots to the manual: Now that everything is in place, we can add the images to the manual.
    • Adding the screenshot now is quite simple. Just write the alias you created on a new line. For example: |image2201|.
      Gitlab image alias.png
    • Enter your commit message and submit your changes.

Advanced - Editing from local repository

It's recommendable to try the GitLab workflow first as it's easier and doesn't require any familiarity with git itself like this workflow. Note: the minimal required version of Sphinx is 1.4 at the moment. If your distro doesn't have that, consider installing python-sphinx with pip.


  1. Fork the project in GitLab: Start by going to GitLab and forking the project. This will create your own personal repository with a copy of the manual.
    Click on the "Fork" button to create a personal copy of the manual to work on
  2. Set up koha-manual repository: Clone the koha-manual git repository from GitLab
    • Go to your own GitLab repository, click on "clone" and copy your SSH URI
    Copy your personal SSH URI from your repository
    • Next, open up a terminal window and clone your GitLab repository
    git clone <your SSH URI> koha-manual
    • Go into your newly created repository
    cd koha-manual
    • Next, add a second remote called "community" to pull from and fetch
    git remote add community git@gitlab.com:koha-community/koha-manual.git
    git fetch community
  3. Create a new branch called "community_master" to track that second remote
    git checkout -b community_master community/master


  1. Make sure everything is up-to-date: pull from community/master
    • Go to your local koha-manual folder and checkout on the community_master branch
    git checkout community_master
    • Pull the latest version of the manual from the community repository
    git pull
    • Merge your local "master" with your local "community_community" branch
    git checkout master
    git merge community_master
  2. Create a new branch: before you start changing files, always create a new branch for your changes.
    So for example, if you're going to work on the RenewalLog system preference, create a branch using the following command
    git checkout -b RenewalLog
  3. Start editing: Edit the files with your preferred editor.
    • You can use git grep for searching in the files. Example: git grep RenewalLog
    • Navigate to the file you need to change, all files are in the "source" directory
    cd source
    • Open the file in your text editor (for the example, we'll use vi) and edit the file
    vi systempreferences.rst
    • Basic vi commands
      • i - insert (edit)
      • Esc - get out of editing/inserting mode
      •  :w - write (save)
      •  :q - quit (close the file)
      • / - string search (case sensitive) (for example: /RenewalLog)
  4. Commit your changes: commit your changes to make sure nothing is lost
    • Start by adding the files that were changed to the staging area
    git add --all
    git add *.rst
    git add systempreferences.rst
    • Commit your changes
    commit -m "Adds description for RenewalLog syspref"
  5. Push your branch to your GitLab koha-manual fork
    git push (this will create a branch of the same name in your GitLab repository)
  6. Create merge request
    • Go to your GitLab account
    • Go to Repository > Branches
    Go to Repository > Branches
    • Find the branch you want to push and click on "Merge request"
    Click on "Merge request"
    • Click on "Submit merge request" at the bottom of the page

General hints and tips

Formatting with reStructuredText

Sphinx uses reStructuredText for formatting the text:

Also, a bit more specific to our manual: ReStructuredText - Tips and Tricks

Capitalization and spelling

Translating the manual

See Translating the Koha Manual

Older manuals

The older manuals up to Koha 17.05 were generated using DocBook.

To edit the older manuals an XML/DocBook editor like oXygen is recommended. Every chapter and section must have an ID tag associated with it to enable permanent linking and searching.

Patches to the manual can still be emailed to the koha-docs mailing list, but as Koha moves on, it makes sense to favour updating the new Sphinx based manuals instead.

See also

Personal tools