Adding PDF generation
This commit is contained in:
parent
ccd3a8420b
commit
74d200e341
157
build.py
157
build.py
@ -9,9 +9,6 @@
|
||||
|
||||
# Remnants (could go into the master document as the first header)
|
||||
|
||||
#bootstrap_path: /bootstrap-3.3.7
|
||||
#page_title: The Ardour Manual
|
||||
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
@ -19,11 +16,19 @@ import argparse
|
||||
|
||||
|
||||
# Global vars
|
||||
global_bootstrap_path = '/bootstrap-3.3.7'
|
||||
global_page_title = 'The Ardour Manual'
|
||||
global_site_dir = './website/'
|
||||
global_githuburl = 'https://github.com/Ardour/manual/edit/master/include/'
|
||||
global_screen_template = 'page-template.html'
|
||||
global_onepage_template = 'onepage-template.html'
|
||||
global_pdf_template = 'pdf-template.html'
|
||||
global_master_doc = 'master-doc.txt'
|
||||
|
||||
# This matches all *non* letter/number, ' ', '.', '-', and '_' chars
|
||||
cleanString = re.compile(r'[^a-zA-Z0-9 \._-]+')
|
||||
# This matches new 'unbreakable' links, up to the closing quote or anchor
|
||||
findLinks = re.compile(r'"@@[^#"]*[#"]')
|
||||
githuburl = 'https://github.com/Ardour/manual/edit/master/include/'
|
||||
|
||||
#
|
||||
# Create an all lowercase filename without special characters and with spaces
|
||||
@ -70,19 +75,12 @@ def ParseHeader(fileObj):
|
||||
#
|
||||
def PartToLevel(s):
|
||||
level = -1
|
||||
lvl = {'part': 0, 'chapter': 1, 'subchapter': 2}
|
||||
if s in lvl:
|
||||
return lvl[s]
|
||||
else:
|
||||
return -1
|
||||
|
||||
if s == 'part':
|
||||
level = 0
|
||||
elif s == 'chapter':
|
||||
level = 1
|
||||
elif s == 'subchapter':
|
||||
level = 2
|
||||
elif s == 'section':
|
||||
level = 3
|
||||
elif s == 'subsection':
|
||||
level = 4
|
||||
|
||||
return level
|
||||
|
||||
#
|
||||
# Converts a integer to a roman number
|
||||
@ -107,7 +105,7 @@ def GetFileStructure():
|
||||
fnames = [None]*6
|
||||
content = ''
|
||||
grab = False
|
||||
mf = open('master-doc.txt')
|
||||
mf = open(global_master_doc)
|
||||
|
||||
for ln in mf:
|
||||
if ln.startswith('---'):
|
||||
@ -202,12 +200,19 @@ def GetParent(fs, pos):
|
||||
|
||||
return pos
|
||||
|
||||
#
|
||||
# Change the hierarchy of titles : h1->hn, h2->hn+1, etc... n being delta-1
|
||||
#
|
||||
def reheader(txt, delta):
|
||||
for i in range(6, 0, -1):
|
||||
txt = txt.replace('<h' + str(i),'<h' + str(i+delta))
|
||||
txt = txt.replace('</h' + str(i),'</h' + str(i+delta))
|
||||
return txt
|
||||
|
||||
#
|
||||
# Creates the BreadCrumbs
|
||||
#
|
||||
def GetBreadCrumbs(fs, pos):
|
||||
# The <span class="divider">></span> is for Bootstrap pre-3.0
|
||||
breadcrumbs = '<li class="active">'+ fs[pos]['title'] + '</li>'
|
||||
|
||||
while pos >= 0:
|
||||
@ -342,26 +347,15 @@ def BuildList(lst, fs, pagePos, cList):
|
||||
#
|
||||
def BuildOnePageSidebar(fs):
|
||||
|
||||
content = '\n\n<ul style="white-space:nowrap;">\n'
|
||||
content = '\n\n<ul class="toc" style="white-space:nowrap;">\n'
|
||||
lvl = 0
|
||||
levelNums = [0]*6
|
||||
levelNums = [0]*3
|
||||
|
||||
for i in range(len(fs)):
|
||||
# Handle Part/Chapter/subchapter/section/subsection numbering
|
||||
level = fs[i]['level']
|
||||
if level == 0:
|
||||
if level < 2:
|
||||
levelNums[2] = 0
|
||||
levelNums[3] = 0
|
||||
levelNums[4] = 0
|
||||
elif level == 1:
|
||||
levelNums[2] = 0
|
||||
levelNums[3] = 0
|
||||
levelNums[4] = 0
|
||||
elif level == 2:
|
||||
levelNums[3] = 0
|
||||
levelNums[4] = 0
|
||||
elif level == 3:
|
||||
levelNums[4] = 0
|
||||
levelNums[level] = levelNums[level] + 1;
|
||||
j = level
|
||||
txtlevel = ''
|
||||
@ -420,44 +414,49 @@ if quiet:
|
||||
|
||||
level = 0
|
||||
fileCount = 0
|
||||
levelNums = [0]*6
|
||||
levelNums = [0]*3
|
||||
lastFile = ''
|
||||
page = ''
|
||||
onepage = ''
|
||||
pdfpage = ''
|
||||
toc = ''
|
||||
pageNumber = 0
|
||||
|
||||
siteDir = './website/'
|
||||
|
||||
|
||||
if not quiet and devmode:
|
||||
print('Devmode active: scribbling extra junk to the manual...')
|
||||
|
||||
if os.access(siteDir, os.F_OK):
|
||||
if os.access(global_site_dir, os.F_OK):
|
||||
if not quiet:
|
||||
print('Removing stale HTML data...')
|
||||
|
||||
shutil.rmtree(siteDir)
|
||||
shutil.rmtree(global_site_dir)
|
||||
|
||||
shutil.copytree('./source', siteDir)
|
||||
shutil.copytree('./source', global_site_dir)
|
||||
|
||||
|
||||
# Read the template, and fix the stuff that's fixed for all pages
|
||||
temp = open('page-template.txt')
|
||||
temp = open(global_screen_template)
|
||||
template = temp.read()
|
||||
temp.close()
|
||||
|
||||
template = template.replace('{{page.bootstrap_path}}', '/bootstrap-3.3.7')
|
||||
template = template.replace('{{page.page_title}}', 'The Ardour Manual')
|
||||
template = template.replace('{{page.bootstrap_path}}', global_bootstrap_path)
|
||||
template = template.replace('{{page.page_title}}', global_page_title)
|
||||
|
||||
# Same as above, but for the One-page version
|
||||
temp = open('onepage-template.txt')
|
||||
temp = open(global_onepage_template)
|
||||
onepage = temp.read()
|
||||
temp.close()
|
||||
onepage = onepage.replace('{{page.bootstrap_path}}', global_bootstrap_path)
|
||||
onepage = onepage.replace('{{page.page_title}}', global_page_title)
|
||||
|
||||
onepage = onepage.replace('{{page.bootstrap_path}}', '/bootstrap-3.3.7')
|
||||
onepage = onepage.replace('{{page.page_title}}', 'The Ardour Manual')
|
||||
# Same as above, but for the PDF version
|
||||
temp = open(global_pdf_template)
|
||||
pdfpage = temp.read()
|
||||
temp.close()
|
||||
pdfpage = pdfpage.replace('{{page.page_title}}', global_page_title)
|
||||
|
||||
# Parse out the master docuemnt's structure into a dictionary list
|
||||
# Parse out the master document's structure into a dictionary list
|
||||
fileStruct = GetFileStructure()
|
||||
|
||||
# Build a quasi-tree structure listing children at level + 1 for each node
|
||||
@ -472,7 +471,7 @@ if not quiet:
|
||||
print('.') if len(links) == 1 else print('s.')
|
||||
|
||||
if not quiet:
|
||||
master = open('master-doc.txt')
|
||||
master = open(global_master_doc)
|
||||
firstLine = master.readline().rstrip('\r\n')
|
||||
master.close()
|
||||
|
||||
@ -493,21 +492,9 @@ for header in fileStruct:
|
||||
lastLevel = level
|
||||
level = header['level']
|
||||
|
||||
# Handle Part/Chapter/subchapter/section/subsection numbering
|
||||
if level == 0:
|
||||
# Handle Part/Chapter/subchapter numbering
|
||||
if level < 2:
|
||||
levelNums[2] = 0
|
||||
levelNums[3] = 0
|
||||
levelNums[4] = 0
|
||||
elif level == 1:
|
||||
levelNums[2] = 0
|
||||
levelNums[3] = 0
|
||||
levelNums[4] = 0
|
||||
elif level == 2:
|
||||
levelNums[3] = 0
|
||||
levelNums[4] = 0
|
||||
elif level == 3:
|
||||
levelNums[4] = 0
|
||||
|
||||
levelNums[level] = levelNums[level] + 1;
|
||||
|
||||
# This is totally unnecessary, but nice; besides which, you can capture
|
||||
@ -525,7 +512,6 @@ for header in fileStruct:
|
||||
|
||||
# Handle TOC scriblings and one-page titles...
|
||||
opl = ''
|
||||
|
||||
if 'link' in header:
|
||||
opl = ' id="' + header['link'] + '"'
|
||||
else:
|
||||
@ -536,19 +522,10 @@ for header in fileStruct:
|
||||
oph = '<h1 class="clear"' + opl +'>Part ' + num2roman(levelNums[level]) + ' - ' + header['title'] + '</h1>\n';
|
||||
elif level == 1:
|
||||
toc = toc + '\t<p class="chapter">Ch. ' + str(levelNums[level]) + ': <a href="/' + header['filename'] + '/">' + header['title'] + '</a></p>\n'
|
||||
oph = '<h1 class="clear"' + opl +'>' + str(levelNums[level]) + ' - ' + header['title'] + '</h1>\n';
|
||||
oph = '<h2 class="clear"' + opl +'>' + str(levelNums[level]) + ' - ' + header['title'] + '</h3>\n';
|
||||
elif level == 2:
|
||||
toc = toc + '\t\t<p class="subchapter"><a href="/' + header['filename'] + '/">' + header['title'] + '</a></p>\n'
|
||||
oph = '<h1 class="clear"' + opl +'>' + str(levelNums[level-1]) + '.' + str(levelNums[level]) + ' - ' + header['title'] + '</h1>\n';
|
||||
elif level == 3:
|
||||
toc = toc + '\t\t\t<p class="section"><a href="/' + header['filename'] + '/">' + header['title'] + '</a></p>\n'
|
||||
oph = '<h1 class="clear"' + opl +'>' + str(levelNums[level-2]) + '.' + str(levelNums[level-1]) + '.' + str(levelNums[level]) + ' - ' + header['title'] + '</h1>\n';
|
||||
elif level == 4:
|
||||
toc = toc + '\t\t\t\t<p class="subsection"><a href="/' + header['filename'] + '/">' + header['title'] + '</a></p>\n'
|
||||
oph = '<h1 class="clear"' + opl +'>' + str(levelNums[level-3]) + '.' + str(levelNums[level-2]) + '.' + str(levelNums[level-1]) + '.' + str(levelNums[level]) + ' - ' + header['title'] + '</h1>\n';
|
||||
|
||||
|
||||
|
||||
oph = '<h3 class="clear"' + opl +'>' + str(levelNums[level-1]) + '.' + str(levelNums[level]) + ' - ' + header['title'] + '</h3>\n';
|
||||
|
||||
# Make the 'this thing contains...' stuff
|
||||
if HaveChildren(fileStruct, pageNumber):
|
||||
@ -593,7 +570,7 @@ for header in fileStruct:
|
||||
if level > 0:
|
||||
if 'include' in header:
|
||||
srcFile = open('include/' + header['include'])
|
||||
githubedit = '<span style="float:right;"><a title="Edit in GitHub" href="' + githuburl + header['include'] + '"><img src="/images/github.png" alt="Edit on GitHub"/></a></span>'
|
||||
githubedit = '<span style="float:right;"><a title="Edit in GitHub" href="' + global_githuburl + header['include'] + '"><img src="/images/github.png" alt="Edit in GitHub"/></a></span>'
|
||||
content = srcFile.read()
|
||||
srcFile.close()
|
||||
|
||||
@ -620,17 +597,15 @@ for header in fileStruct:
|
||||
devnote = devnote + 'link: ' + header['link'] + '<br>'
|
||||
content = devnote + '</aside>' + content
|
||||
|
||||
# ----- One page version -----
|
||||
# ----- One page and PDF version -----
|
||||
|
||||
# Fix up any internal links
|
||||
opcontent = FixInternalLinks(oplinks, content, header['title'])
|
||||
|
||||
# Create the link sidebar
|
||||
opsidebar = BuildOnePageSidebar(fileStruct)
|
||||
opcontent = reheader(opcontent, 2)
|
||||
|
||||
# Set up the actual page from the template
|
||||
onepage = onepage.replace('{% tree %}', opsidebar)
|
||||
onepage = onepage.replace('{{ content }}', oph + '\n' + opcontent + '{{ content }}')
|
||||
onepage = onepage.replace('{{ content }}', oph + '\n' + opcontent + '\n{{ content }}')
|
||||
pdfpage = pdfpage.replace('{{ content }}', oph + '\n' + opcontent + '\n{{ content }}')
|
||||
|
||||
# ----- Normal version -----
|
||||
|
||||
@ -654,10 +629,10 @@ for header in fileStruct:
|
||||
|
||||
# Create the directory for the index.html file to go into (we use makedirs,
|
||||
# because we have to in order to accomodate the 'uri' keyword)
|
||||
os.makedirs(siteDir + header['filename'], 0o775, exist_ok=True)
|
||||
os.makedirs(global_site_dir + header['filename'], 0o775, exist_ok=True)
|
||||
|
||||
# Finally, write the file!
|
||||
destFile = open(siteDir + header['filename'] + '/index.html', 'w')
|
||||
destFile = open(global_site_dir + header['filename'] + '/index.html', 'w')
|
||||
destFile.write(page)
|
||||
destFile.close()
|
||||
|
||||
@ -676,17 +651,31 @@ page = page.replace('{% prevnext %}', '')
|
||||
page = page.replace('{% githubedit %}', '')
|
||||
page = page.replace('{% breadcrumbs %}', '')
|
||||
|
||||
os.mkdir(siteDir + 'toc', 0o775)
|
||||
tocFile = open(siteDir + 'toc/index.html', 'w')
|
||||
os.mkdir(global_site_dir + 'toc', 0o775)
|
||||
tocFile = open(global_site_dir + 'toc/index.html', 'w')
|
||||
tocFile.write(page)
|
||||
tocFile.close()
|
||||
|
||||
# Create the one-page version of the documentation
|
||||
onepageFile = open(siteDir + 'ardourmanual.html', 'w')
|
||||
onepageFile = open(global_site_dir + 'ardourmanual.html', 'w')
|
||||
opsidebar = BuildOnePageSidebar(fileStruct) # create the link sidebar
|
||||
onepage = onepage.replace('{% tree %}', opsidebar)
|
||||
onepage = onepage.replace('{{ content }}', '') # cleans up the last spaceholder
|
||||
onepageFile.write(onepage)
|
||||
onepageFile.close()
|
||||
|
||||
if not quiet:
|
||||
print('Generating the PDF...')
|
||||
# Create the PDF version of the documentation
|
||||
pdfpageFile = open(global_site_dir + 'pdf.html', 'w')
|
||||
pdfpage = pdfpage.replace('{% tree %}', opsidebar) # create the TOC
|
||||
pdfpage = pdfpage.replace('{{ content }}', '') # cleans up the last spaceholder
|
||||
pdfpageFile.write(pdfpage)
|
||||
pdfpageFile.close()
|
||||
|
||||
from weasyprint import HTML
|
||||
doc = HTML(filename = global_site_dir + 'pdf.html') #, base_url = os.path.dirname(os.path.realpath(__file__)))
|
||||
doc.write_pdf(global_site_dir + 'manual.pdf')
|
||||
|
||||
if not quiet:
|
||||
print('Processed ' + str(fileCount) + ' files.')
|
||||
|
@ -33,27 +33,27 @@
|
||||
The control buttons are:
|
||||
</p>
|
||||
<table class="dl">
|
||||
<tr><th id="record"><kbd style="color:red;">●</kbd> (Record)</th>
|
||||
<tr><th id="audiotrack-record"><kbd style="color:red;">●</kbd> (Record)</th>
|
||||
<td>The button with the pink circle arms the track
|
||||
for recording. When armed, the entire button will turn pink, and change to
|
||||
bright red as soon as the transport is rolling and the track is recording.
|
||||
<kbd class="mouse">Right</kbd> clicking will allow to en/disable Rec-safe,
|
||||
protecting the track against accidental recording.</td></tr>
|
||||
<tr><th id="mute"><kbd>M</kbd> (Mute)</th>
|
||||
<tr><th id="audiotrack-mute"><kbd>M</kbd> (Mute)</th>
|
||||
<td>Mutes the track. <kbd class="mouse">Right</kbd> clicking displays
|
||||
a menu which dictates what particular parts of the track should be muted.</td></tr>
|
||||
<tr><th id="solo"><kbd>S</kbd> (Solo)</th>
|
||||
<tr><th id="audiotrack-solo"><kbd>S</kbd> (Solo)</th>
|
||||
<td>Soloes the track. The behaviour of the solo system
|
||||
is described in detail in the section <a href="@@muting-and-soloing">Muting and Soloing</a>.
|
||||
<kbd class="mouse">Right</kbd> clicking will allow to en/disable Solo isolate
|
||||
and Solo safe.</td></tr>
|
||||
<tr><th id="playlist"><kbd>P</kbd> (Playlist)</th>
|
||||
<tr><th id="audiotrack-playlist"><kbd>P</kbd> (Playlist)</th>
|
||||
<td>Opens a playlist menu when clicked. The menu
|
||||
offers various operations related to the track's <a href="@@playlists">playlist</a>.</td></tr>
|
||||
<tr><th id="automation"><kbd>A</kbd> (Automation)</th>
|
||||
<tr><th id="audiotrack-automation"><kbd>A</kbd> (Automation)</th>
|
||||
<td>Opens the automation menu for the
|
||||
track. For details see <a href="@@automation">Automation</a>.</td></tr>
|
||||
<tr><th id="group"><kbd>G</kbd> (Group)</th>
|
||||
<tr><th id="audiotrack-group"><kbd>G</kbd> (Group)</th>
|
||||
<td>Allows to assign the track to an existing or a
|
||||
new group. For details see <a href="@@track-and-bus-groups">Track and bus groups</a>.</td></tr>
|
||||
</table>
|
||||
|
@ -13,7 +13,7 @@
|
||||
<ul>
|
||||
<li>There is no color affected to the master strip</li>
|
||||
<li>The master strip cannot be hidden, so there is not <kbd class="menu">X</kbd> in the top right</li>
|
||||
<li>It is by definition always solo, so no <kbd class="menu">Solo</kbd>, <kbd class="menu">Iso</kbd> or <kbd class="menu">Lock</kbd> buttons. It is replaced by a button to show the Monitoring section if <a href="@@session-properties#monitoring">the session has one</a></li>
|
||||
<li>It is by definition always solo, so no <kbd class="menu">Solo</kbd>, <kbd class="menu">Iso</kbd> or <kbd class="menu">Lock</kbd> buttons. It is replaced by a button to show the Monitoring section if <a href="@@session-properties#properties-monitoring">the session has one</a></li>
|
||||
<li>It cannot belong to a mix group, so the button is removed.</li>
|
||||
</ul>
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
<p>
|
||||
The <dfn>Monitor section</dfn> is an optional feature that provides Control Room/Monitor Speaker outputs.
|
||||
It can be activated for the current session in the
|
||||
<a href="@@session-properties#monitoring">
|
||||
<a href="@@session-properties#properties-monitoring">
|
||||
<kbd class="menu">Session > Properties</kbd> window</a> by enabling the
|
||||
<kbd class="option">Use monitor section in this session</kbd> option in the
|
||||
<kbd class="menu">Monitoring</kbd> tab. By default the Monitor Section is fed with audio from the Master Bus,
|
||||
|
@ -17,24 +17,24 @@
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="#general">General</a></li>
|
||||
<li><a href="#editor">Editor</a></li>
|
||||
<li><a href="#mixer">Mixer</a></li>
|
||||
<li><a href="#signal_flow">Signal Flow</a></li>
|
||||
<li><a href="#audio">Audio</a></li>
|
||||
<li><a href="#midi">MIDI</a></li>
|
||||
<li><a href="#metronome">Metronome</a></li>
|
||||
<li><a href="#metering">Metering</a></li>
|
||||
<li><a href="#transport">Transport</a></li>
|
||||
<li><a href="#sync">Sync</a></li>
|
||||
<li><a href="#control_surfaces">Control Surfaces</a></li>
|
||||
<li><a href="#midi_ports">MIDI Ports</a></li>
|
||||
<li><a href="#plugins">Plugins</a></li>
|
||||
<li><a href="#appearance">Appearance</a></li>
|
||||
<li><a href="#video">Video</a></li>
|
||||
<li><a href="#preferences-general">General</a></li>
|
||||
<li><a href="#preferences-editor">Editor</a></li>
|
||||
<li><a href="#preferences-mixer">Mixer</a></li>
|
||||
<li><a href="#preferences-signal_flow">Signal Flow</a></li>
|
||||
<li><a href="#preferences-audio">Audio</a></li>
|
||||
<li><a href="#preferences-midi">MIDI</a></li>
|
||||
<li><a href="#preferences-metronome">Metronome</a></li>
|
||||
<li><a href="#preferences-metering">Metering</a></li>
|
||||
<li><a href="#preferences-transport">Transport</a></li>
|
||||
<li><a href="#preferences-sync">Sync</a></li>
|
||||
<li><a href="#preferences-control_surfaces">Control Surfaces</a></li>
|
||||
<li><a href="#preferences-midi_ports">MIDI Ports</a></li>
|
||||
<li><a href="#preferences-plugins">Plugins</a></li>
|
||||
<li><a href="#preferences-appearance">Appearance</a></li>
|
||||
<li><a href="#preferences-video">Video</a></li>
|
||||
</ul>
|
||||
|
||||
<h2 id="general">General</h2>
|
||||
<h2 id="preferences-general">General</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -184,7 +184,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="editor">Editor</h2>
|
||||
<h2 id="preferences-editor">Editor</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -304,7 +304,7 @@
|
||||
provides a way to revert any user made change to its default value.
|
||||
</p>
|
||||
|
||||
<h2 id="mixer">Mixer</h2>
|
||||
<h2 id="preferences-mixer">Mixer</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -397,7 +397,7 @@
|
||||
|
||||
</ul>
|
||||
|
||||
<h2 id="signal_flow">Signal Flow</h2>
|
||||
<h2 id="preferences-signal_flow">Signal Flow</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -447,7 +447,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="audio">Audio</h2>
|
||||
<h2 id="preferences-audio">Audio</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -510,7 +510,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="midi">MIDI</h2>
|
||||
<h2 id="preferences-midi">MIDI</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -555,7 +555,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="metronome">Metronome</h2>
|
||||
<h2 id="preferences-metronome">Metronome</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -599,7 +599,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="metering">Metering</h2>
|
||||
<h2 id="preferences-metering">Metering</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -675,7 +675,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="transport">Transport</h2>
|
||||
<h2 id="preferences-transport">Transport</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -746,7 +746,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="sync">Sync</h2>
|
||||
<h2 id="preferences-sync">Sync</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -886,7 +886,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="control_surfaces">Control Surfaces</h2>
|
||||
<h2 id="preferences-control_surfaces">Control Surfaces</h2>
|
||||
|
||||
<p>
|
||||
This tab contains settings for <a href="@@control-surfaces">control surfaces</a>.
|
||||
@ -899,7 +899,7 @@
|
||||
protocol settings</kbd> (only for Generic MIDI and Open Sound Control).
|
||||
</p>
|
||||
|
||||
<h2 id="midi_ports">MIDI Ports</h2>
|
||||
<h2 id="preferences-midi_ports">MIDI Ports</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -952,7 +952,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="plugins">Plugins</h2>
|
||||
<h2 id="preferences-plugins">Plugins</h2>
|
||||
|
||||
<p class="note">
|
||||
The content of this preference page varies heavily between versions or Ardour:
|
||||
@ -1131,7 +1131,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="appearance">Appearance</h2>
|
||||
<h2 id="preferences-appearance">Appearance</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -1464,7 +1464,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="video">Video</h2>
|
||||
<h2 id="preferences-video">Video</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -37,7 +37,7 @@
|
||||
<th><kbd class="menu">Audition</kbd></th>
|
||||
<td>This button allows to listen to the region and only the region, dry (with
|
||||
no effects, regardless of the processors applied to the track). For MIDI,
|
||||
the default MIDI synth, set in the <a href="@@preferences#midi">Preferences</a>,
|
||||
the default MIDI synth, set in the <a href="@@preferences#preferences-midi">Preferences</a>,
|
||||
is used to audition the region.</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
@ -18,21 +18,21 @@
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="#timecode">Timecode</a></li>
|
||||
<li><a href="#sync">Sync</a></li>
|
||||
<li><a href="#fade">Fades</a></li>
|
||||
<li><a href="#media">Media</a></li>
|
||||
<li><a href="#locations">Locations</a></li>
|
||||
<li><a href="#filenames">Filenames</a></li>
|
||||
<li><a href="#monitoring">Monitoring</a></li>
|
||||
<li><a href="#meterbridge">Meterbridge</a></li>
|
||||
<li><a href="#misc">Misc</a></li>
|
||||
<li><a href="#properties-timecode">Timecode</a></li>
|
||||
<li><a href="#properties-sync">Sync</a></li>
|
||||
<li><a href="#properties-fade">Fades</a></li>
|
||||
<li><a href="#properties-media">Media</a></li>
|
||||
<li><a href="#properties-locations">Locations</a></li>
|
||||
<li><a href="#properties-filenames">Filenames</a></li>
|
||||
<li><a href="#properties-monitoring">Monitoring</a></li>
|
||||
<li><a href="#properties-meterbridge">Meterbridge</a></li>
|
||||
<li><a href="#properties-misc">Misc</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2 id="timecode">Timecode</h2>
|
||||
<h2 id="properties-timecode">Timecode</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -78,7 +78,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="sync">Sync</h2>
|
||||
<h2 id="properties-sync">Sync</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -87,12 +87,12 @@
|
||||
<li>
|
||||
<dfn>Use Video File's FPS Instead of Timecode Value for Timeline and Video
|
||||
Monitor</dfn> when checked, uses the timecode FPS value of the standard
|
||||
used by the video file instead of forcing the FPS set in the <a href="#timecode">
|
||||
used by the video file instead of forcing the FPS set in the <a href="#properties-timecode">
|
||||
Timecode tab</a>.
|
||||
</li>
|
||||
<li>
|
||||
<dfn>Apply Pull-Up/Down to Video Timeline and Video Monitor (Unless using
|
||||
JACK-sync)</dfn> allows to apply the pull-up/down as set in the <a href="#timecode">
|
||||
JACK-sync)</dfn> allows to apply the pull-up/down as set in the <a href="#properties-timecode">
|
||||
Timecode tab</a> to the <a href="@@video-timeline-and-monitoring">video
|
||||
timeline</a> as displayed in the editor and to the Video Monitor, resulting
|
||||
in a shorter/longer video in the editor and a speed-up/down in the Video
|
||||
@ -102,7 +102,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="fade">Fades</h2>
|
||||
<h2 id="properties-fade">Fades</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
@ -140,7 +140,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="media">Media</h2>
|
||||
<h2 id="properties-media">Media</h2>
|
||||
|
||||
<p>
|
||||
Change how sound is stored on disk. These options do not change how sound is handled
|
||||
@ -169,7 +169,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="locations">Locations</h2>
|
||||
<h2 id="properties-locations">Locations</h2>
|
||||
|
||||
<p>
|
||||
These options add file locations that will be searched to find the audio and
|
||||
@ -197,7 +197,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="filenames">Filenames</h2>
|
||||
<h2 id="properties-filenames">Filenames</h2>
|
||||
|
||||
<p>
|
||||
This tab is used to change how Ardour names recorded regions.
|
||||
@ -231,7 +231,7 @@
|
||||
</ul>
|
||||
|
||||
|
||||
<h2 id="monitoring">Monitoring</h2>
|
||||
<h2 id="properties-monitoring">Monitoring</h2>
|
||||
|
||||
<p>
|
||||
Provides options affecting monitoring.
|
||||
@ -257,7 +257,7 @@
|
||||
</ul>
|
||||
|
||||
|
||||
<h2 id="meterbridge">Meterbridge</h2>
|
||||
<h2 id="properties-meterbridge">Meterbridge</h2>
|
||||
|
||||
<p>
|
||||
This tab changes what controls are displayed in the Meterbridge that is
|
||||
@ -313,7 +313,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 id="misc">Misc</h2>
|
||||
<h2 id="properties-misc">Misc</h2>
|
||||
|
||||
<p>
|
||||
This tab has several things that don't fit on the other tabs.
|
||||
|
@ -7,14 +7,14 @@
|
||||
<tr><th>Start/Stop</th><td>Starts or stops the playhead, and recording if it is armed</td></tr>
|
||||
<tr><th>Play</th>
|
||||
<tr><th class="sub1">Play Selection</th><td>Only plays the selected part of the session, be it a range or selected regions</td></tr>
|
||||
<tr><th class="sub1">Play Selection w/Preroll</th><td>As the previous menu, except it starts the playback a few bars or seconds before the beginning of the selection (the amount of time can be set in the <a href="@@preferences#transport">Preferences</a>)</td></tr>
|
||||
<tr><th class="sub1">Play Selection w/Preroll</th><td>As the previous menu, except it starts the playback a few bars or seconds before the beginning of the selection (the amount of time can be set in the <a href="@@preferences#preferences-transport">Preferences</a>)</td></tr>
|
||||
<tr><th class="sub1">Start/Continue/Stop</th><td>Leaves loop play or range play mode but without stopping the transport</td></tr>
|
||||
<tr><th class="sub1">Play from Edit Point and Return</th><td>Starts the playback at the <a href="@@edit-point-control">Edit point</a>, and when stopped, goes back to the original location</td></tr>
|
||||
<tr><th class="sub1">Play Loop Range</th><td>If a <a href="@@the-loop-range">Loop range</a> is defined, play it and loop until stopped</td></tr>
|
||||
<tr><th>Start Recording</th><td>This is a shortcut to trigger the global recording, and start playback at once</td></tr>
|
||||
<tr><th>Stop and Forget Capture</th><td>Stops the recording, removes the newly created material, and goes back to the original position</td></tr>
|
||||
<tr><th>Enable Record</th><td>Triggers the global recording. Next time "Play" is pressed, it will record on the track(s) that are armed for recording</td></tr>
|
||||
<tr><th>Record w/Preroll</th><td>As the Start Recording menu, except it starts the recording a few bars or seconds before the playhead's position (the amount of time can be set in the <a href="@@preferences#transport">Preferences</a>)</td></tr>
|
||||
<tr><th>Record w/Preroll</th><td>As the Start Recording menu, except it starts the recording a few bars or seconds before the playhead's position (the amount of time can be set in the <a href="@@preferences#preferences-transport">Preferences</a>)</td></tr>
|
||||
<tr><th>Record w/Count-In</th><td>As the Start Recording menu, except it waits for 2 bars before the playhead's position. The Metronome will tick (even if disabled) during the count-in</td></tr>
|
||||
|
||||
<tr><th>Set Loop from Selection</th><td>Converts the selection into a <a href="@@the-loop-range">Loop range</a> by placing loop markers at the start and end of the selected range</td></tr>
|
||||
|
@ -72,7 +72,7 @@
|
||||
<tr><th>[] Show Editor Mixer</th><td>When checked, the selected tracks' mixer strip is displayed on the left of the editor window, allowing for a quick access to e.g. effects and routing</td></tr>
|
||||
<tr><th>[] Show Editor List</th><td>In the Editor window, shows the <a href="@@editor-lists">Editor List</a>, giving access to a number of handy lists (regions, tracks, …)</td></tr>
|
||||
<tr><th>[] Toggle Mixer List</th><td>In the Mixer view, shows the Mixer list, giving access to some handy lists (<a href="@@favorite-plugins-window">Favorite plugins</a>, <a href="@@strips-list">The Strip list</a>,…)</td></tr>
|
||||
<tr><th>[] Toggle Monitor Section Visibility</th><td>If the <kbd class="option">Use monitoring section on this session</kbd> has been checked in the <a href="@@session-properties#monitoring">Session Properties window</a>, shows or hides the Monitor Section in the Mixer</td></tr>
|
||||
<tr><th>[] Toggle Monitor Section Visibility</th><td>If the <kbd class="option">Use monitoring section on this session</kbd> has been checked in the <a href="@@session-properties#properties-monitoring">Session Properties window</a>, shows or hides the Monitor Section in the Mixer</td></tr>
|
||||
<tr><th>[] Show Measure Lines</th><td>If checked, in the Editor, shows a vertical white line at each measure start</td></tr>
|
||||
<tr><th>[] Show Summary</th><td>If checked, in the Editor, shows the <a href="@@summary">Summary</a>, allowing a faster navigation in the session</td></tr>
|
||||
<tr><th>[] Show Group Tabs</th><td>If checked, makes the groups visible as tabs on the left in the Editor, and on the top in the mixer</td></tr>
|
||||
|
@ -175,7 +175,7 @@
|
||||
<h3>Clock Sync Lock</h3>
|
||||
<p>
|
||||
As described in the
|
||||
<a href="http://manual.ardour.org/synchronization/on-clock-and-time/">On Clock and Time</a>
|
||||
<a href="@@on-clock-and-time">On Clock and Time</a>
|
||||
chapter, timecode and clock are independent. If the external timecode
|
||||
source is not in sample-sync with the audio hardware (and JACK), Ardour
|
||||
needs to run at varispeed to adjust for the discrepancy.
|
||||
|
@ -106,9 +106,9 @@
|
||||
−4 dB (the <em>difference</em> of the gains remains the same).
|
||||
</p>
|
||||
<p>
|
||||
<a href="@@bus-controls#mute"><kbd class="option">Muting</kbd></a>,
|
||||
<a href="@@bus-controls#solo"><kbd class="option">Soloing</kbd></a>,
|
||||
<a href="@@audio-track-controls#record"><kbd class="option">record enable</kbd></a>,
|
||||
<a href="@@bus-controls"><kbd class="option">Muting</kbd></a>,
|
||||
<a href="@@bus-controls"><kbd class="option">Soloing</kbd></a>,
|
||||
<a href="@@audio-track-controls#audiotrack-record"><kbd class="option">record enable</kbd></a>,
|
||||
<a href="@@the-tracks-and-busses-list"><kbd class="option">active state</kbd></a>,
|
||||
<a href="@@track-color"><kbd class="option">color</kbd></a> and
|
||||
<a href="@@monitoring"><kbd class="option">monitoring</kbd></a>
|
||||
|
@ -23,8 +23,8 @@
|
||||
<tr><th>Audio</th>
|
||||
<td>An <dfn>Audio Track</dfn> is created with a user-specified number of
|
||||
inputs. The number of outputs is defined by the master bus channel count
|
||||
(for details see <a href="#channelconfiguration">Channel Configuration</a>
|
||||
below). This is the type of track to use when planning to work with
|
||||
(for details see <a href="@@channel-configuration">Channel Configuration</a>).
|
||||
This is the type of track to use when planning to work with
|
||||
existing or newly recorded audio.</td></tr>
|
||||
<tr><th>MIDI</th>
|
||||
<td>A <dfn>MIDI track</dfn> is created with a single MIDI input, and a
|
||||
|
@ -41,7 +41,7 @@
|
||||
Importing a video makes Ardour start the video server automatically. If
|
||||
the <kbd class="option">Show video Server Startup Dialog</kbd> option in the
|
||||
<kbd class="menu">Video</kbd> section of the
|
||||
<a href="@@preferences#video">preferences</a> is checked, the
|
||||
<a href="@@preferences#preferences-video">preferences</a> is checked, the
|
||||
<kbd class="menu">Launch Video Server</kbd> window is shown, allowing more
|
||||
complex operations, e.g. connecting to a remote video server instead of a local
|
||||
one.
|
||||
|
@ -1,46 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>The Ardour Manual</title>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
|
||||
<meta name="description" content="The Ardour Manual">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link href="{{page.bootstrap_path}}/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="/css/app.css" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid">
|
||||
<div id="tree" class="navbar">
|
||||
<h1><a href="/"><img class="img-responsive" src="/images/logo.png" alt="The Ardour Manual" /></a></h1>
|
||||
|
||||
{% tree %}
|
||||
|
||||
</div> <!-- tree -->
|
||||
|
||||
<div class="span12" id="content">
|
||||
|
||||
{{ content }}
|
||||
|
||||
</div> <!-- content -->
|
||||
</div> <!-- row-fluid -->
|
||||
</div> <!-- container-fluid -->
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
// I'll go to hell for this
|
||||
var isA = function(regex) { return navigator.userAgent.match(regex) };
|
||||
var isAbout = function(regex) { return document.getElementsByTagName('h1')[1].textContent.match(regex) };
|
||||
|
||||
if ( (isA(/Mac/) || isAbout(/OS X/)) && (!isAbout(/Linux/)) ) {
|
||||
var e = document.getElementsByTagName('body')[0];
|
||||
e.className += ' mac'; // class magic for Cmd vs. Ctrl keys.
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,81 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>{{page.page_title}}</title>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
|
||||
<meta name="description" content="The Ardour Manual">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<link href="{{page.bootstrap_path}}/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="/css/app.css" rel="stylesheet">
|
||||
{% if page.style %}
|
||||
<link href="/css/{{page.style}}.css" rel="stylesheet">
|
||||
{% endif %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid">
|
||||
<div id="tree">
|
||||
|
||||
<h1><a href="/"><img class="img-responsive" src="/images/logo.png" alt="The Ardour Manual" /></a></h1>
|
||||
|
||||
<form id="custom-search-form" class="navbar-form" method="post" action="https://duckduckgo.com">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" placeholder="Search …" name="q">
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-default" type="submit"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></button>
|
||||
<button class="btn btn-default" type="button" onclick="window.location.href='/ardourmanual.html'"><span class="glyphicon glyphicon-book" aria-hidden="true"></span></button>
|
||||
</span>
|
||||
</div>
|
||||
<input type="hidden" name="sites" value="manual.ardour.org"><!-- domain -->
|
||||
<input type="hidden" name="kh" value="1"> <!--HTTPS on/off -->
|
||||
<input type="hidden" name="kl" value="wt-wt"> <!--region wt-wt = no region/worldwide -->
|
||||
<input type="hidden" name="kg" value="p"> <!--get [g] vs post [p] -->
|
||||
<input type="hidden" name="k7" value="w"> <!-- background colour -->
|
||||
<input type="hidden" name="kj" value="#212a30"> <!-- results page header colour -->
|
||||
<input type="hidden" name="kx" value="#59acd4"> <!-- URLs colour -->
|
||||
<input type="hidden" name="k1" value="-1"> <!-- adverts on/off -->
|
||||
<input type="hidden" name="k9" value="#59acd4"> <!-- links colour -->
|
||||
<input type="hidden" name="kaa" value="#2d586c"> <!-- visited links colour -->
|
||||
<input type="hidden" name="kae" value="#cc0000"> <!-- theme [changes result titles] colour -->
|
||||
<input type="hidden" name="ka" value="junge"> <!-- link font -->
|
||||
<input type="hidden" name="kt" value="junge"> <!-- text font -->
|
||||
</form>
|
||||
|
||||
{% tree %}
|
||||
|
||||
</div> <!-- tree -->
|
||||
|
||||
<div class="span12" id="content">
|
||||
|
||||
{% breadcrumbs %}
|
||||
{% githubedit %}
|
||||
|
||||
<h1 class="title">{{ page.title }}</h1>
|
||||
|
||||
{{ content }}
|
||||
|
||||
<div class="clear"></div>
|
||||
|
||||
{% prevnext %}
|
||||
|
||||
</div> <!-- content -->
|
||||
</div> <!-- row-fluid -->
|
||||
</div> <!-- container-fluid -->
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
// I'll go to hell for this
|
||||
var isA = function(regex) { return navigator.userAgent.match(regex) };
|
||||
var isAbout = function(regex) { return document.getElementsByTagName('h1')[1].textContent.match(regex) };
|
||||
|
||||
if ( (isA(/Mac/) || isAbout(/OS X/)) && (!isAbout(/Linux/)) ) {
|
||||
var e = document.getElementsByTagName('body')[0];
|
||||
e.className += ' mac'; // class magic for Cmd vs. Ctrl keys.
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,452 +0,0 @@
|
||||
@font-face {
|
||||
font-family: 'junge-regular';
|
||||
src: url('junge-regular-webfont.woff2') format('woff2'),
|
||||
url('junge-regular-webfont.woff') format('woff'),
|
||||
url('junge-regular-webfont.ttf') format('truetype');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'junge-regular';
|
||||
font-size: 16px;
|
||||
line-height: 2ex;
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear:both;
|
||||
}
|
||||
|
||||
#tree {
|
||||
background-color: #212A30;
|
||||
line-height: 1.8ex;
|
||||
height: 100%;
|
||||
overflow: scroll;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 20em;
|
||||
padding: 1em 1em 2em 1.5em;
|
||||
}
|
||||
|
||||
#tree h1 {
|
||||
font-size: 1.75em;
|
||||
margin-bottom: 1em;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#tree ul {
|
||||
padding-left: 1em;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
#tree a {
|
||||
display: inline !important;
|
||||
font-size: 0.88em;
|
||||
line-height: 2em;
|
||||
color: #E4E4E4;
|
||||
border-bottom: 1px solid transparent;
|
||||
}
|
||||
|
||||
#tree a:hover {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #aaa;
|
||||
}
|
||||
|
||||
#tree .active > a {
|
||||
display: inline;
|
||||
color: #FF8080;
|
||||
}
|
||||
|
||||
#content {
|
||||
padding: 1em 2em 2ex 21em;
|
||||
margin-left: 0;
|
||||
line-height: 2em;
|
||||
}
|
||||
|
||||
#content h1,
|
||||
#content h2,
|
||||
#content h3,
|
||||
#content h4 {
|
||||
font-weight: normal;
|
||||
padding-bottom: .3ex;
|
||||
}
|
||||
|
||||
#content h1 {
|
||||
font-size: 1.8em;
|
||||
margin: 0 0 2ex 0;
|
||||
padding-bottom: .8ex;
|
||||
border-bottom: 2px solid #ccc;
|
||||
}
|
||||
|
||||
#content h2 {
|
||||
font-size: 1.3em;
|
||||
margin: 2ex 0 1ex 0;
|
||||
border-bottom: 2px solid #ddd;
|
||||
}
|
||||
|
||||
#content h3 {
|
||||
font-size: 1.2em;
|
||||
margin: 1.5ex 0 1ex 0;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
#content h4 {
|
||||
font-size: 1.1em;
|
||||
margin: 1.5ex 0 .5ex 0;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
#content table {
|
||||
width:100%;
|
||||
margin: 1em 0;
|
||||
padding: 0;
|
||||
font-weight: normal;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#content table tr {
|
||||
border-bottom: 2px solid #eeeeee;
|
||||
}
|
||||
|
||||
#content table tr:nth-child(odd){
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#content table tr:nth-child(even){
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
#content table tr:hover {
|
||||
background-color: #F2F9FF;
|
||||
}
|
||||
|
||||
#content table td,
|
||||
#content table th {
|
||||
margin: 0;
|
||||
padding: .5em;
|
||||
}
|
||||
|
||||
#content table th {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#content table th.sub1 {
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
#content table th.sub2 {
|
||||
padding-left: 4em;
|
||||
}
|
||||
|
||||
#content table thead {
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
#content table.dl th {
|
||||
/* dl class (definition list) is for 2-columns tables that describe properties:
|
||||
maximmizes the width of the 2nd (description) column */
|
||||
vertical-align: top;
|
||||
min-width: 20%;
|
||||
white-space:nowrap
|
||||
}
|
||||
|
||||
#content table.dl td {
|
||||
vertical-align: top;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content ul,
|
||||
#content ol {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#content figure {
|
||||
display: table;
|
||||
}
|
||||
|
||||
#content figcaption {
|
||||
display: table-caption;
|
||||
caption-side: bottom;
|
||||
font-style: italic;
|
||||
padding-top: 0.5em;
|
||||
padding-bottom: 1em;
|
||||
}
|
||||
|
||||
#content figcaption.center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#content figcaption.titleover {
|
||||
text-align: center;
|
||||
caption-side: top ;
|
||||
}
|
||||
|
||||
#content figure.right {
|
||||
margin: 0 0 1em 1em;
|
||||
float: right;
|
||||
clear: right;
|
||||
}
|
||||
|
||||
#content figure.left {
|
||||
margin: 0 1em 1em 0;
|
||||
float: left;
|
||||
clear: left;
|
||||
}
|
||||
|
||||
#content figure.center {
|
||||
margin: 1em auto 1em auto;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
kbd {
|
||||
display: inline-block;
|
||||
min-width: 1em;
|
||||
padding: .2em .3em;
|
||||
font: normal .8em/1 sans-serif;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
border-radius: .3em;
|
||||
background: rgb(250, 250, 250);
|
||||
background: linear-gradient(to top, rgb(210, 210, 210), rgb(255, 255, 255));
|
||||
color: rgb(50, 50, 50);
|
||||
text-shadow: 0 0 2px rgb(255, 255, 255);
|
||||
box-shadow: inset 0 0 1px rgb(255, 255, 255), inset 0 0 .4em rgb(200, 200, 200), 0 .1em 0 rgb(130, 130, 130), 0 .11em 0 rgba(0, 0, 0, .4), 0 .1em .11em rgba(0, 0, 0, .9);
|
||||
white-space:nowrap;
|
||||
text-transform:capitalize;
|
||||
}
|
||||
|
||||
kbd.def {
|
||||
font-weight:bolder;
|
||||
margin-right:.2em;
|
||||
}
|
||||
|
||||
kbd.input,
|
||||
kbd.cmd,
|
||||
kbd.osc {
|
||||
font-family:mono;
|
||||
border-width:0;
|
||||
text-transform:none;
|
||||
}
|
||||
|
||||
kbd.input {
|
||||
background:none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
kbd.cmd {
|
||||
display:block;
|
||||
width:100%;
|
||||
margin-bottom:1ex;
|
||||
text-transform:none;
|
||||
background: rgb(220, 220, 220);
|
||||
text-shadow: none;
|
||||
box-shadow: none;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
kbd.cmd.lin:before {
|
||||
content: 'user@linux:~ ';
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
kbd.cmd.mac:before {
|
||||
content: 'MacBook:~/Desktop User\$ ';
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
kbd.cmd.win:before {
|
||||
content: 'C:\\Users\\myAccount> ';
|
||||
color:#999999;
|
||||
}
|
||||
|
||||
kbd.optoff,
|
||||
kbd.option {
|
||||
border:none;
|
||||
background:none;
|
||||
}
|
||||
|
||||
kbd.optoff:before {
|
||||
content:url('/images/checkbox-unchecked.png');
|
||||
margin: 0 1em 0 0;
|
||||
vertical-align:middle;
|
||||
}
|
||||
|
||||
kbd.option:before {
|
||||
content:url('/images/checkbox-checked.png');
|
||||
margin: 0 1em 0 0;
|
||||
vertical-align:middle;
|
||||
}
|
||||
|
||||
kbd.menu {
|
||||
border:none;
|
||||
background:none;
|
||||
font-weight:bold;
|
||||
font-stretch:extra-condensed;
|
||||
white-space:normal;
|
||||
}
|
||||
|
||||
kbd.osc {
|
||||
border:none;
|
||||
background: rgb(208, 208, 243);
|
||||
font-stretch:extra-condensed;
|
||||
white-space: nowrap;
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
kbd.fader,
|
||||
kbd.knob,
|
||||
kbd.button {
|
||||
background: rgb(174, 174, 217);
|
||||
background: linear-gradient(to top, rgb(174, 174, 217), rgb(221, 221, 255));
|
||||
color:#000044;
|
||||
}
|
||||
|
||||
kbd.fader {
|
||||
border-width: 1px 1px 9px 9px;
|
||||
}
|
||||
|
||||
kbd.knob {
|
||||
border-radius:12px;
|
||||
border-width: 1px 1px 9px 9px;
|
||||
}
|
||||
|
||||
kbd.button {
|
||||
border-radius:8px;
|
||||
border-width: 1px 1px 3px 3px;
|
||||
}
|
||||
|
||||
kbd.mouse {
|
||||
border-radius:10px;
|
||||
}
|
||||
|
||||
samp {
|
||||
font-family:mono;
|
||||
color:#666666;
|
||||
background-color:#EBEBEB;
|
||||
margin-left: .5em;
|
||||
margin-right: .5em;
|
||||
}
|
||||
|
||||
#content dfn {
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
#content img.mini {
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
#content img.mini:hover {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#content p.center {
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#content .note,
|
||||
#content .warning,
|
||||
#content .fixme {
|
||||
min-height: 1.5ex;
|
||||
padding: 1em;
|
||||
margin-bottom: 1em;
|
||||
border-style: solid;
|
||||
border-width: 1px 1px 1px 8px;
|
||||
}
|
||||
|
||||
#content code {
|
||||
font-size: .9em;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
#content .note {
|
||||
border-color: #e3e3e3;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
#content .warning {
|
||||
border-color: #995555;
|
||||
background-color: #ffeeee;
|
||||
}
|
||||
|
||||
#content .fixme {
|
||||
border-color: #999944;
|
||||
background-color: #f0f0e0;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.fixme:before {
|
||||
content:'FIXME: ';
|
||||
font-style: italic;
|
||||
font-size:2em;
|
||||
}
|
||||
|
||||
/* Keyboard modifiers */
|
||||
.mod1:before { content: "Ctrl ";}
|
||||
.mod2:before { content: "Alt ";}
|
||||
.mod3:before { content: "Shift ";}
|
||||
.mod4:before { content: "Win ";}
|
||||
.mod12:before { content: "Ctrl Alt ";}
|
||||
.mod13:before { content: "Ctrl Shift ";}
|
||||
.mod14:before { content: "Ctrl Win ";}
|
||||
.mod23:before { content: "Alt Shift ";}
|
||||
.kp:before { content: "Keypad ";}
|
||||
/* Variants *without* space after them (yes, these are needed!) */
|
||||
.mod1n:before { content: "Ctrl";}
|
||||
.mod2n:before { content: "Alt";}
|
||||
.mod3n:before { content: "Shift";}
|
||||
.mod4n:before { content: "Win";}
|
||||
.mod12n:before { content: "Ctrl Alt";}
|
||||
.mod13n:before { content: "Ctrl Shift";}
|
||||
.mod14n:before { content: "Ctrl Win";}
|
||||
.mod23n:before { content: "Alt Shift";}
|
||||
/* Automagic translation for Mac based display */
|
||||
.mac .mod1:before { content: "Cmd ";}
|
||||
.mac .mod2:before { content: "Ctrl ";}
|
||||
.mac .mod3:before { content: "Shift ";}
|
||||
.mac .mod4:before { content: "Opt ";}
|
||||
.mac .mod12:before { content: "Cmd Ctrl ";}
|
||||
.mac .mod13:before { content: "Cmd Shift ";}
|
||||
.mac .mod14:before { content: "Cmd Opt ";}
|
||||
.mac .mod23:before { content: "Ctrl Shift ";}
|
||||
/* No space variants (Mac based) */
|
||||
.mac .mod1n:before { content: "Cmd";}
|
||||
.mac .mod2n:before { content: "Ctrl";}
|
||||
.mac .mod3n:before { content: "Shift";}
|
||||
.mac .mod4n:before { content: "Opt";}
|
||||
.mac .mod12n:before { content: "Cmd Ctrl";}
|
||||
.mac .mod13n:before { content: "Cmd Shift";}
|
||||
.mac .mod14n:before { content: "Cmd Opt";}
|
||||
.mac .mod23n:before { content: "Ctrl Shift";}
|
||||
|
||||
@media (max-width: 800px) {
|
||||
#tree {
|
||||
position: relative;
|
||||
height: 250px;
|
||||
width: 100%;
|
||||
margin-top: 20px;
|
||||
}
|
||||
#content {
|
||||
padding-left: 20px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
/* for the TOC */
|
||||
#content p.chapter,
|
||||
#content p.subchapter,
|
||||
#content p.section,
|
||||
#content p.subsection {
|
||||
line-height:1em;
|
||||
}
|
||||
#content p.chapter { padding-top: 1em; padding-left: 1em; padding-bottom:1em; }
|
||||
#content p.subchapter { padding-left: 4em; }
|
||||
#content p.section { padding-left: 6em; }
|
||||
#content p.subsection { padding-left: 8em; }
|
||||
|
||||
/* for images sliced in divs, as in http://manual.ardour.org/ardours-interface/about/ */
|
||||
.container { position: relative; border: none; }
|
||||
.hoverimg { position: absolute; border: none; }
|
||||
.hoverimg:hover{ z-index:100; box-shadow: 0 0 .2em .2em lightgreen; }
|
Loading…
Reference in New Issue
Block a user