Giter VIP home page Giter VIP logo

manual's Introduction

The Ardour Manual

This is the project that generates the static ardour manual website available at manual.ardour.org. The site is built using python 3.

Get the code

git clone <repo-url> ardour-manual
cd ardour-manual

Structure of the content

There are 2 different types of content:

  • a master document which describes the overall structure of the manual
  • normal content, which is described in the master document

The Master Document

This is a text file (master-doc.txt) which describes the structure of the manual. It does this through headers which tell the build script where the content lives, what its relationship to the overall structure is, as well as a few other things.

All headers have a similar structure, and have to have at least the following minimal structure:

---
title: Some Wordy and Expressive Title
part: part
---

Keywords that go into the header are of the form:

  keyword: value

Here are the keywords you can put in, and a brief description of what they do:

Keyword Meaning
title Sets the title for the content that follows
menu_title Sets the title for the content that follows which will appear in the menu link sidebar. If this is not specified, it defaults to the value of the title keyword
part Sets the hierarchy for the content that follows. It must be one of the following (listed in order of lowering hierarchy): part, chapter, subchapter, section, subsection
link Sets the unbreakable link to the content that follows. Links in the content should be prefixed with a double at-sign (@@) to tell the build system that the link is an internal one
include Tells the build system that the content lives in an external file; these normally live in the include/ directory. Note that the filename should not be prefixed with include/
exclude Tells the implode and explode scripts that file referred to by the include keyword should be ignored. Note that the value of this keyword is ignored
pdf-exclude Does not include the content in the generated PDF, but links to its online contents. The value is also ignored.
style Sets an alternate CSS stylesheet; the name should match the one referred to (sans the .css suffix) in the source/css directory
uri Sets an absolute URI where this page will go in the hierachy of the created website. It does not change the document structure

Normal content

Manual content goes into the include/ directory (or in the Master Document itself); and consists of normal HTML, sans the usual headers that is normally seen in regular HTML web pages. Any other content, such as css files, images, files and fixed pages goes into the source/ directory.

Adding source/images/horse.png makes it available at the url /images/horse.png after publishing it; things work similarly for source/files/ and source/css/.

CSS

The manual uses Bootstrap for its global layout, and a few custom CSS files that contains classes used for keys, menus, tables, etc... so it is recommanded to have a look at it first, or at least see how other pages are made to keep the manual consistent in its appearance:

  • source/css/common.css contains shared classes between all media and is included everywhere
  • source/css/screen.css adds classes used for screen display (html)
  • source/css/pdf.css adds classes used for print (pdf)
  • source/css/luadocs.css adds classes used in the Lua script documentation

More Advanced Stuff

You probably don't want or need to do any of this, but here are some notes just in case you decide to anyway.

Run it locally

You may want the manual available on a machine that doesn't have constant internet access. You will need git, python3 and cherrypy python module installed.

  1. Download code and build manual
git clone <repo-url> ardour-manual
cd ardour-manual
./build.py
  1. Run the following:
./servit.py
  1. The manual will now be available at http://127.0.0.1:8080

(Ctrl-c to quit the server).

Helper scripts: implode and explode

The implode and explode scripts exist in order to accomodate different working styles. implode takes all the files referenced by the include keywords in the headers in the Master Document and automagically puts them into the Master Document in their proper places. Note that any header that has an exclude keyword will remain in the include/ directory. explode does the inverse of implode; it takes all the content in the Master Document and blows it into individual files in the include/ directory.

Build options

The build.py script that builds the manual accepts the following options:

  • '-v', or '--verbose', to display the high-level structure of the manual
  • '-q', or '--quiet', to suppress all output (overrides -v)
  • '-d', or '--devmode', to add content to pages to help developers debug them (link, file name, URL)
  • '-n', or '--nopdf', to prevent the build script from generate a PDF from the content

manual's People

Contributors

mrheadwar avatar pauldavisthefirst avatar x42 avatar ovenwerks avatar nettings avatar nmains avatar dbolton avatar shamus397 avatar prokoudine avatar pipemanmusic avatar nasedil avatar skagedal avatar nicksellen avatar colin-m-fletcher avatar stilllearnin avatar david-garcia-nete avatar kiilerix avatar trebmuh avatar fordfrog avatar cjjd avatar seablade avatar tatrix avatar nikolas avatar dannybpng avatar benloftis avatar ulrichtsblr avatar tanjeff avatar oofus avatar jjm3x3 avatar caprenter 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.