# wiki

name: WikiFormatting
author: trac
ipnr: 127.0.0.1
text:
  = WikiFormatting =
  [[TracGuideToc]]

  Wiki markup is a core feature in Trac, tightly integrating all the other parts of Trac into a flexible and powerful whole.

  Trac has a built in small and powerful wiki rendering engine. This wiki engine implements an ever growing subset of the commands from other popular Wikis,
  especially [http://moinmo.in/ MoinMoin] and [trac:WikiCreole].


  This page will give you an in-depth explanation of the wiki markup available anywhere WikiFormatting is allowed.

  The ''Cheat sheet'' below gives you a quick overview for the most common syntax, each link in the ''Category'' column will lead you to the more detailed explanation later in this page.

  A few other wiki pages present the advanced features of the Trac wiki markup in more depth: 
   - TracLinks covers all the possible ways to refer precisely to any Trac resource or parts thereof,
   - WikiPageNames talks about the various names a wiki page can take, CamelCase or not
   - WikiMacros lists the macros available for generating dynamic content,
   - WikiProcessors and WikiHtml details how parts of the wiki text can be processed in special ways


  == Cheat sheet ==

  ||= '''Category''' =||= '''Wiki Markup''' =||= '''Display''' =||
  |-----------------------------------------------------------
  {{{#!th rowspan=3
  [#FontStyles Font Styles]
  }}}
  || `'''bold'''`, `''italic''`, `'''''Wikipedia style'''''` || \
  || '''bold''', ''italic'', '''''Wikipedia style''''' ||
  || {{{`monospaced (''other markup ignored'')`}}} || \
  || `monospaced (''other markup ignored'')` ||
  || `**bold**`, `//italic//`, `**//!WikiCreole style//**` || \
  || **bold**, //italic//, **//!WikiCreole style//** ||
  |-----------------------------------------------------------
  ||= [#Headings Headings] =||\
  {{{#!td 
   {{{
   == Level 2 ==
   === Level 3 ^([#hn note])^
   }}}
  }}}
  {{{#!td style="padding-left: 2em"
  == Level 2 ==
  === Level 3 ^([#hn note])^
  }}}
  |-----------------------------------------------------------
  ||= [#Paragraphs Paragraphs]  =||\
  {{{#!td
   {{{
   First paragraph
   on multiple lines.

   Second paragraph.
   }}}
  }}}
  {{{#!td
  First paragraph
  on multiple lines.

  Second paragraph.
  }}}
  |-----------------------------------------------------------
  ||= [#Lists Lists] =||\
  {{{#!td
   {{{
   * bullets list
     on multiple lines
     1. nested list
       a. different numbering 
          styles
   }}}
  }}}
  {{{#!td
  * bullets list
    on multiple lines
    1. nested list
      a. different numbering
         styles
  }}}
  |-----------------------------------------------------------
  {{{#!th
  [#DefinitionLists Definition Lists]
  }}}
  {{{#!td
   {{{
    term:: definition on
           multiple lines
   }}}
  }}}
  {{{#!td
   term:: definition on
          multiple lines
  }}}
  |-----------------------------------------------------------
  ||= [#PreformattedText Preformatted Text] =||\
  {{{#!td
   {{{
   {{{
   multiple lines, ''no wiki''
         white space respected
   }}}
   }}}
  }}}
  {{{#!td
   {{{
   multiple lines, ''no wiki''
         white space respected
   }}}
  }}}
  |-----------------------------------------------------------
  ||= [#Blockquotes Blockquotes] =||\
  {{{#!td
   {{{
     if there's some leading
     space the text is quoted
   }}}
  }}}
  {{{#!td
   if there's some leading
   space the text is quoted
  }}}
  |-----------------------------------------------------------
  ||= [#DiscussionCitations Discussion Citations] =||\
  {{{#!td
   {{{
   >> ... (I said)
   > (he replied)
   }}}
  }}}
  {{{#!td
  >>... (I said)
  > (he replied)
  }}}
  |-----------------------------------------------------------
  ||= [#Tables Tables] =||\
  {{{#!td
   {{{
   ||= Table Header =|| Cell ||
   ||||  (details below)  ||
   }}}
  }}}
  {{{#!td
  ||= Table Header =|| Cell ||
  ||||  (details below)  ||
  }}}
  |-----------------------------------------------------------
  {{{#!th rowspan=2
  [#Links Links]
  }}}
  || `http://trac.edgewall.org` ||\
  || http://trac.edgewall.org ||
  || `WikiFormatting (CamelCase)` ||\
  || WikiFormatting (CamelCase) ||
  |-----------------------------------------------------------
  {{{#!th rowspan=5
  [#TracLinks TracLinks]
  }}}
  || `wiki:WikiFormatting`, `wiki:"WikiFormatting"` ||\
  || wiki:WikiFormatting, wiki:"WikiFormatting" ||
  || `#1 (ticket)`, `[1] (changeset)`, `{1} (report)` ||\
  || #1 (ticket), [1] (changeset), {1} (report) ||
  || `ticket:1, ticket:1#comment:1` ||\
  || ticket:1, ticket:1#comment:1 ||
  || `Ticket [ticket:1]`, `[ticket:1 ticket one]` ||\
  || Ticket [ticket:1], [ticket:1 ticket one] ||
  || `Ticket [[ticket:1]]`, `[[ticket:1|ticket one]]` ||\
  || Ticket [[ticket:1]], [[ticket:1|ticket one]] ||
  |-----------------------------------------------------------
  {{{#!th rowspan=2 
  [#SettingAnchors Setting Anchors]
  }}}
  || `[=#point1 (1)] First...` ||\
  || [=#point1 (1)] First... ||
  || `see [#point1 (1)]` ||\
  || see [#point1 (1)] ||
  |-----------------------------------------------------------
  {{{#!th rowspan=3
  [#Escaping Escaping Markup]
  }}}
  || `!'' doubled quotes` ||\
  || !'' doubled quotes ||
  || `!wiki:WikiFormatting`, `!WikiFormatting` ||\
  || !wiki:WikiFormatting, !WikiFormatting ||
  || {{{`}}}`{{{-}}}`{{{`}}}` triple curly brackets` ||\
  || `{{{-}}}` triple curly brackets ||
  |-----------------------------------------------------------
  ||= [#Images Images] =|| `[[Image(`''link''`)]]` || [[Image(htdocs:../common/trac_logo_mini.png)]] ||
  |-----------------------------------------------------------
  {{{#!th rowspan=2
  [#Macros Macros]
  }}}
  || `[[MacroList(*)]]` ||  ''(short list of all available macros)''  ||
  || `[[Image?]]` ||  ''(help for the Image macro)''  ||
  |-----------------------------------------------------------
  ||= [#Processors Processors] =||\
  {{{#!td
   {{{
   {{{
   #!div style="font-size: 80%"
   Code highlighting:
     {{{#!python
     hello = lambda: "world"
     }}}
   }}}
   }}}
  }}}
  {{{#!td style="padding-left: 2em"
   {{{
   #!div style="font-size: 80%"
   Code highlighting:
     {{{#!python 
     hello = lambda: "world"
     }}}
   }}}
  }}}
  |-----------------------------------------------------------
  ||= [#Comments Comments] =||\
  {{{#!td
   {{{
   {{{#!comment
   Note to Editors: ...
   }}}
   }}}
  }}}
  {{{#!td style="padding-left: 2em"
   {{{#!comment
   Note to Editors: ...
   }}}
  }}}
  |-----------------------------------------------------------
  ||= [#Miscellaneous Miscellaneous] =||\
  {{{#!td
   {{{
   Line [[br]] break 
   Line \\ break
   ----
   }}}
  }}}
  {{{#!td style="padding-left: 2em"
  Line [[br]] break
  Line \\ break
  ----
  }}}


  == Font Styles ==

  The Trac wiki supports the following font styles:
  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
     * '''bold''', 
       ''' triple quotes !''' 
       can be bold too if prefixed by ! ''', 
     * ''italic''
     * '''''bold italic''''' or ''italic and
       ''' italic bold ''' ''
     * __underline__
     * {{{monospace}}} or `monospace`
       (hence `{{{` or {{{`}}} quoting)
     * ~~strike-through~~
     * ^superscript^ 
     * ,,subscript,,
     * **also bold**, //italic as well//, 
       and **'' bold italic **'' //(since 0.12)//
    }}}
  }}}
  {{{#!td
   * '''bold''', 
     ''' triple quotes !''' 
     can be bold too if prefixed by ! ''', 
   * ''italic''
   * '''''bold italic''''' or ''italic and
     ''' italic bold ''' ''
   * __underline__
   * {{{monospace}}} or `monospace`
     (hence `{{{` or {{{`}}} quoting)
   * ~~strike-through~~
   * ^superscript^ 
   * ,,subscript,,
   * **also bold**, //italic as well//, 
     and **'' bold italic **'' //(since 0.12)//
  }}}

  Notes:
   * `{{{...}}}` and {{{`...`}}} commands not only select a monospace font, but also treat their content as verbatim text, meaning that no further wiki processing is done on this text.
   * {{{ ! }}} tells wiki parser to not take the following characters as wiki format, so pay attention to put a space after !, e.g. when ending bold.
   * all the font styles marks have to be used in opening/closing pairs, 
     and they must nest properly (in particular, an `''` italic can't be paired 
     with a `//` one, and `'''` can't be paired with `**`)


  == Headings ==

  You can create heading by starting a line with one up to six ''equal'' characters ("=")
  followed by a single space and the headline text. 

  [=#hn]
  The headline text can be followed by the same number of "=" characters, but this is no longer mandatory.

  Finally, the heading might optionally be followed by an explicit id. If not, an implicit but nevertheless readable id will be generated.

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    = Heading =
    == Subheading
    === About ''this'' ===
    === Explicit id === #using-explicit-id-in-heading
    == Subheading #sub2
  }}}
  }}}
  {{{#!td style="padding: 1em;"
    {{{
    #!div
    = Heading =
    == Subheading
    === About ''this'' ===
    === Explicit id === #using-explicit-id-in-heading
    == Subheading #sub2
    }}}
  }}}

  == Paragraphs ==

  A new text paragraph is created whenever two blocks of text are separated by one or more empty lines.

  A forced line break can also be inserted, using:
  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    Line 1[[BR]]Line 2
    }}}
    {{{
    Paragraph
    one

    Paragraph 
    two
    }}}
  }}}
  {{{#!td
    Line 1[[BR]]Line 2

    Paragraph 
    one

    Paragraph 
    two
  }}}

  == Lists ==

  The wiki supports both ordered/numbered and unordered lists.

  Example:
  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
     * Item 1
       * Item 1.1
          * Item 1.1.1   
          * Item 1.1.2
          * Item 1.1.3
       * Item 1.2
     * Item 2
    - items can start at the beginning of a line
      and they can span multiple lines
      - be careful though to continue the line 
      with the appropriate indentation, otherwise
    that will start a new paragraph...
    
     1. Item 1
       a. Item 1.a
       a. Item 1.b
          i. Item 1.b.i
          i. Item 1.b.ii
     1. Item 2
    And numbered lists can also be restarted
    with an explicit number:
     3. Item 3
    }}}
  }}}
  {{{#!td
   * Item 1
     * Item 1.1
        * Item 1.1.1   
        * Item 1.1.2
        * Item 1.1.3
     * Item 1.2
   * Item 2
  - items can start at the beginning of a line
    and they can span multiple lines
    - be careful though to continue the line 
    with the appropriate indentation, otherwise
  that will start a new paragraph...

   1. Item 1
     a. Item 1.a
     a. Item 1.b
        i. Item 1.b.i
        i. Item 1.b.ii
   1. Item 2
  And numbered lists can also be restarted with an explicit number:
   3. Item 3
  }}}


  == Definition Lists ==

  The wiki also supports definition lists.

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
     llama::
       some kind of mammal, with hair
     ppython::
       some kind of reptile, without hair
       (can you spot the typo?)
    }}}
  }}}
  {{{#!td
   llama::
     some kind of mammal, with hair
   ppython::
     some kind of reptile, without hair
     (can you spot the typo?)
  }}}

  Note that you need a space in front of the defined term.


  == Preformatted Text ==

  Block containing preformatted text are suitable for source code snippets, notes and examples. Use three ''curly braces'' wrapped around the text to define a block quote. The curly braces need to be on a separate line.
    
  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    {{{
    def HelloWorld():
        print '''Hello World'''
    }}}
    }}}
  }}}
  {{{#!td
    {{{
    def HelloWorld():
        print '''Hello World'''
    }}}
  }}}

  Note that this kind of block is also used for selecting lines that should be processed through WikiProcessors.

  == Blockquotes ==

  In order to mark a paragraph as blockquote, indent that paragraph with two spaces.

  ||= Wiki Markup =||= Display =||
  {{{#!td
  {{{
  Paragraph
    This text is a quote from someone else.
  }}}
  }}}
  {{{#!td
  Paragraph
    This text is a quote from someone else.
  }}}

  == Discussion Citations ==

  To delineate a citation in an ongoing discussion thread, such as the ticket comment area, e-mail-like citation marks (">", ">>", etc.) may be used.  

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    >> Someone's original text
    > Someone else's reply text
    >  - which can be any kind of Wiki markup
    My reply text
    }}}
  }}}
  {{{#!td
  >> Someone's original text
  > Someone else's reply text
  >  - which can be any kind of Wiki markup
  My reply text
  }}}


  == Tables ==
  === Simple Tables ===
  Simple tables can be created like this:
  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    ||Cell 1||Cell 2||Cell 3||
    ||Cell 4||Cell 5||Cell 6||
    }}}
  }}}
  {{{#!td style="padding: 2em;"
  ||Cell 1||Cell 2||Cell 3||
  ||Cell 4||Cell 5||Cell 6||
  }}}

  Cell headings can be specified by wrapping the content in a pair of '=' characters.
  Note that the '=' characters have to stick to the cell separators, like this:
  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    ||        ||= stable =||= latest =||
    ||= 0.10 =||  0.10.5  || 0.10.6dev||
    ||= 0.11 =||  0.11.6  || 0.11.7dev||
    }}}
  }}}
  {{{#!td style="padding: 2em;"
  ||        ||= stable =||= latest =||
  ||= 0.10 =||  0.10.5  || 0.10.6dev||
  ||= 0.11 =||  0.11.6  || 0.11.7dev||
  }}}

  Finally, specifying an empty cell means that the next non empty cell will span the empty cells. For example:
  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    || 1 || 2 || 3 ||
    |||| 1-2 || 3 ||
    || 1 |||| 2-3 ||
    |||||| 1-2-3 ||
    }}}
  }}}
  {{{#!td style="padding: 2em;"
  || 1 || 2 || 3 ||
  |||| 1-2 || 3 ||
  || 1 |||| 2-3 ||
  |||||| 1-2-3 ||
  }}}

  Note that if the content of a cell "sticks" to one side of the cell and only one, then the text will be aligned on that side. Example:
  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    ||=Text =||= Numbers =||
    ||left align    ||        1.0||
    ||  center      ||        4.5||
    ||      right align||     4.5||
    || default alignment ||   2.5||
    ||default||         2.5||
    ||  default ||      2.5||
    || default ||       2.5||
    }}}
  }}}
  {{{#!td style="padding: 2em;"
  ||=Text =||= Numbers =||
  ||left align    ||        1.0||
  ||  center      ||        4.5||
  ||      right align||     4.5||
  || default alignment ||   2.5||
  ||default||         2.5||
  ||  default ||      2.5||
  || default ||       2.5||
  }}}

  If contrary to the example above, the cells in your table contain more text, it might be convenient to spread a table row over multiple lines of markup. The `\` character placed at the end of a line after a cell separator tells Trac to not start a new row for the cells on the next line.

  ||= Wiki Markup =||
  {{{#!td
    {{{
    || this is column 1 [http://trac.edgewall.org/newticket new ticket] || \
    || this is column 2 [http://trac.edgewall.org/roadmap the road ahead] || \
    || that's column 3 and last one ||
    }}}
  }}}
  |-------------
  ||= Display =||
  {{{#!td style="padding: 2em;"
  || this is column 1 [http://trac.edgewall.org/newticket new ticket] || \
  || this is column 2 [http://trac.edgewall.org/roadmap the road ahead] || \
  || that's column 3 and last one ||
  }}}

  === Complex Tables ===

  If the possibilities offered by the simple "pipe"-based markup for tables described above are not enough for your needs, you can create more elaborated tables by using [#Processors-example-tables WikiProcessor based tables].


  == Links ==

  Hyperlinks are automatically created for WikiPageNames and URLs. !WikiPageLinks can be disabled by prepending an exclamation mark "!" character, such as {{{!WikiPageLink}}}.

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    TitleIndex, http://www.edgewall.com/, !NotAlink
    }}}
  }}}
  {{{#!td
  TitleIndex, http://www.edgewall.com/, !NotAlink
  }}}

  Links can be given a more descriptive title by writing the link followed by a space and a title and all this inside square brackets. 
  If the descriptive title is omitted, then the explicit prefix is discarded, unless the link is an external link. This can be useful for wiki pages not adhering to the WikiPageNames convention.

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
     * [http://www.edgewall.com Edgewall Software]
     * [wiki:TitleIndex Title Index] 
     * [wiki:TitleIndex] 
     * [wiki:ISO9000]
    }}}
  }}}
  {{{#!td
     * [http://www.edgewall.com Edgewall Software]
     * [wiki:TitleIndex Title Index] 
     * [wiki:TitleIndex] 
     * [wiki:ISO9000]
  }}}

  Following the [trac:WikiCreole] trend, the descriptive title can also be specified by writing the link followed by a pipe ('|') and a title and all this inside //double// square brackets. 

  {{{#!td
    {{{
     * [[http://www.edgewall.com|Edgewall Software]]
     * [[wiki:TitleIndex|Title Index]]
       or even [[TitleIndex|Title Index]]
     * [[wiki:TitleIndex]]
       ''' but not ![[TitleIndex]]! '''
     * [[ISO9000]]
    }}}
  }}}
  {{{#!td
     * [[http://www.edgewall.com|Edgewall Software]]
     * [[wiki:TitleIndex|Title Index]]
       or even [[TitleIndex|Title Index]]
     * [[wiki:TitleIndex]]
       ''' but not ![[TitleIndex]]! '''
     * [[ISO9000]]
  }}}

  '''Note''': the [trac:WikiCreole] style for links is quick to type and
  certainly looks familiar as it's the one used on Wikipedia and in many
  other wikis. Unfortunately it conflicts with the syntax for [#Macros macros].
  So in the rare case when you need to refer to a page which is named after
  a macro (typical examples being TitleIndex, InterTrac and InterWiki), 
  by writing `[[TitleIndex]]` you will actually call the macro instead of linking
  to the page.

  == Trac Links ==

  Wiki pages can link directly to other parts of the Trac system. Pages can refer to tickets, reports, changesets, milestones, source files and other Wiki pages using the following notations:

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
     * Tickets: #1 or ticket:1
     * Reports: {1} or report:1
     * Changesets: r1, [1] or changeset:1
     * ...
     * targeting other Trac instances, 
       so called InterTrac links:
       - Tickets: #Trac1 or Trac:ticket:1
       - Changesets: [Trac1] or Trac:changeset:1
    }}}
  }}}
  {{{#!td
   * Tickets: #1 or ticket:1
   * Reports: {1} or report:1
   * Changesets: r1, [1] or changeset:1
   * ... 
   * targeting other Trac instances, 
     so called InterTrac links:
     - Tickets: #Trac1 or Trac:ticket:1
     - Changesets: [Trac1] or Trac:changeset:1
  }}}

  There are many more flavors of Trac links, see TracLinks for more in-depth information and a reference for all the default link resolvers.


  == Setting Anchors ==

  An anchor, or more correctly speaking, an [http://www.w3.org/TR/REC-html40/struct/links.html#h-12.2.1 anchor name] can be added explicitly at any place in the Wiki page, in order to uniquely identify a position in the document:

  {{{
  [=#point1]
  }}}

  This syntax was chosen to match the format for explicitly naming the header id [#Headings documented above]. For example:
  {{{
  == Long title == #title
  }}}

  It's also very close to the syntax for the corresponding link to that anchor:
  {{{
  [#point1]
  }}}

  Optionally, a label can be given to the anchor:
  {{{
  [[=#point1 '''Point 1''']]
  }}}

  ||= Wiki Markup =||= Display =||
  |----------------------------------
  {{{#!td
    {{{
    [#point2 jump to the second point]

    ...

    Point2:  [=#point2] Jump here
    }}}
  }}}
  {{{#!td
    [#point2 jump to the second point]

    ...

    Point2:  [=#point2] Jump here
  }}}

  For more complex anchors (e.g. when a custom title is wanted), one can use the Span macro, e.g. `[[span(id=point2, class=wikianchor, title=Point 2, ^(2)^)]]`.


  == Escaping Links, WikiPageNames and other Markup == #Escaping

  You may avoid making hyperlinks out of TracLinks by preceding an expression with a single "!" (exclamation mark).

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
     !NoHyperLink
     !#42 is not a link
    }}}
    {{{
  Various forms of escaping for list markup:
   `-` escaped minus sign \\
   ``1. escaped number  \\
   {{{*}}} escaped asterisk sign
    }}}
  }}}
  {{{#!td
   !NoHyperLink
   !#42 is not a link

  Various forms of escaping for list markup:
   `-` escaped minus sign \\
   ``1. escaped number  \\
   {{{*}}} escaped asterisk sign
  }}}

  == Images ==

  Urls ending with `.png`, `.gif` or `.jpg` are no longer automatically interpreted as image links, and converted to `<img>` tags.

  You now have to use the ![[Image]] macro. The simplest way to include an image is to upload it as attachment to the current page, and put the filename in a macro call like `[[Image(picture.gif)]]`.

  In addition to the current page, it is possible to refer to other resources:
   * `[[Image(wiki:WikiFormatting:picture.gif)]]` (referring to attachment on another page)
   * `[[Image(ticket:1:picture.gif)]]` (file attached to a ticket)
   * `[[Image(htdocs:picture.gif)]]` (referring to a file inside the [TracEnvironment environment] `htdocs` directory)
   * `[[Image(source:/trunk/trac/htdocs/trac_logo_mini.png)]]` (a file in repository)

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    [[Image(htdocs:../common/trac_logo_mini.png)]]
    }}}
  }}}
  {{{#!td
  [[Image(htdocs:../common/trac_logo_mini.png)]]
  }}}

  See WikiMacros for further documentation on the `[[Image()]]` macro, which has several useful options (`title=`, `link=`, etc.)


  == Macros ==

  Macros are ''custom functions'' to insert dynamic content in a page.

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    [[RecentChanges(Trac,3)]]
    }}}
  }}}
  {{{#!td style="padding-left: 2em"
  [[RecentChanges(Trac,3)]]
  }}}

  See WikiMacros for more information, and a list of installed macros.

  The detailed help for a specific macro can also be obtained more directly by appending a "?" to the macro name.

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    [[MacroList?]]
    }}}
  }}}
  {{{#!td style="padding-left: 2em"
  [[MacroList?]]
  }}}


  == Processors ==

  Trac supports alternative markup formats using WikiProcessors. For example, processors are used to write pages in 
  [wiki:WikiRestructuredText reStructuredText] or [wiki:WikiHtml HTML]. 

  ||= Wiki Markup =||= Display =||
  |--------------------------------------------------------
  {{{#!td align="center" colspan=2 style="border: 0px; font-size: 90%"

     [=#Processors-example-html Example 1:] HTML

  }}}
  |--------------------------------------------------------
  {{{#!td style="border: 0px"
    {{{
    {{{
    #!html
    <h1 style="text-align: right; color: blue">
     HTML Test
    </h1>
    }}}
    }}}
  }}}
  {{{#!td valign="top"  style="border: 0px"

  {{{
  #!html
  <h1 style="text-align: right; color: blue">HTML Test</h1>
  }}}

  }}}
  |--------------------------------------------------------
  {{{#!td align="center" colspan=2 style="border: 0px; font-size: 90%"

     [=#Processors-example-highlight Example 2:] Code Highlighting

  }}}
  |--------------------------------------------------------
  {{{#!td style="border: 0px"
    {{{
    {{{
    #!python
    class Test:
    
        def __init__(self):
            print "Hello World"
    if __name__ == '__main__':
       Test()
    }}}
    }}}
  }}}
  {{{
  #!td valign="top"  style="border: 0px"

  {{{
  #!python
  class Test:
      def __init__(self):
          print "Hello World"
  if __name__ == '__main__':
     Test()
  }}}

  }}}
  |--------------------------------------------------------
  {{{#!td align="center" colspan=2 style="border: 0px; font-size: 90%"

         [=#Processors-example-tables Example 3:] Complex Tables

  }}}
  |--------------------------------------------------------
  {{{#!td style="border: 0px"
    {{{
    {{{#!th rowspan=4 align=justify
    With the `#td` and `#th` processors,
    table cells can contain any content:
    }}}
    |----------------
    {{{#!td
      - lists
      - embedded tables
      - simple multiline content
    }}}
    |----------------
    {{{#!td
    As processors can be easily nested, 
    so can be tables:
      {{{#!th
      Example:
      }}}
      {{{#!td style="background: #eef"
      || must be at the third level now... ||
      }}}
    }}}
    |----------------
    {{{#!td
    Even when you don't have complex markup,
    this form of table cells can be convenient
    to write content on multiple lines.
    }}}
    }}}
  }}}
  {{{
  #!td  valign="top"  style="border: 0px"

    {{{#!th rowspan=4 align=justify
    With the `#td` and `#th` processors,
    table cells can contain any content:
    }}}
    |----------------
    {{{#!td
      - lists
      - embedded tables
      - simple multiline content
    }}}
    |----------------
    {{{#!td
    As processors can be easily nested, 
    so can be tables:
      {{{#!th
      Example:
      }}}
      {{{#!td style="background: #eef"
      || must be at the third level now... ||
      }}}
    }}}
    |----------------
    {{{#!td
    Even when you don't have complex markup,
    this form of table cells can be convenient
    to write content on multiple lines.
    }}}

  }}}

  See WikiProcessors for more information.


  == Comments ==

  Comments can be added to the plain text. These will not be rendered and will not display in any other format than plain text.

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    Nothing to
    {{{
    #!comment
    Your comment for editors here
    }}}
    see ;-)
    }}}
  }}}
  {{{#!td
    Nothing to
    {{{
    #!comment
    Your comment for editors here
    }}}
    see ;-)
  }}}

  == Miscellaneous ==

  An horizontal line can be used to separated different parts of your page:

  ||= Wiki Markup =||= Display =||
  {{{#!td
    {{{
    Four or more dashes will be replaced 
    by an horizontal line (<HR>)
    ----
    See?
    }}}
  }}}
  {{{#!td
  Four or more dashes will be replaced
  by an horizontal line (<HR>)
  ----
  See?
  }}}
  |----------------------------------
  {{{#!td
    {{{
    "macro" style [[br]] line break
    }}}
  }}}
  {{{#!td
  "macro" style [[br]] line break
  }}}
  |----------------------------------
  {{{#!td
    {{{
    !WikiCreole style \\ line\\break
    }}}
  }}}
  {{{#!td
  !WikiCreole style \\ line\\break
  }}}


name: TracIni
author: trac
ipnr: 127.0.0.1
text:
  = The Trac Configuration File =

   ''[Note To Editors] Please discuss documentation changes in the [#Discussion] section. Even better, send us [TracDev/SubmittingPatches documentation patches] against the ''code'' (i.e. where the configuration entries are documented), either on Trac-dev or on new tickets. ''

  [[TracGuideToc]]
  [[PageOutline]]

  Trac configuration is done by editing the '''`trac.ini`''' config file, located in `<projectenv>/conf/trac.ini`.  Changes to the configuration are usually reflected immediately, though changes to the `[components]` or `[logging]` sections will require restarting the web server. You may also need to restart the web server after creating a global configuration file when none was previously present.

  The `trac.ini` configuration file and its parent directory should be writable by the web server, as Trac currently relies on the possibility to trigger a complete environment reload to flush its caches.

  == Global Configuration ==

  In versions prior to 0.11, the global configuration was by default located in `$prefix/share/trac/conf/trac.ini` or /etc/trac/trac.ini, depending on the distribution. If you're upgrading, you may want to specify that file to inherit from.  Literally, when you're upgrading to 0.11, you have to add an `[inherit]` section to your project's `trac.ini` file. Additionally, you have to move your customized templates and common images from `$prefix/share/trac/...` to the new location.

  Global options will be merged with the environment-specific options, where local options override global options. The options file is specified as follows:
  {{{
  [inherit]
  file = /path/to/global/trac.ini
  }}}
  Multiple files can be specified using a comma-separated list.

  Note that you can also specify a global option file when creating a new project,  by adding the option `--inherit=/path/to/global/trac.ini` to [TracAdmin#initenv trac-admin]'s `initenv` command.  If you do not do this but nevertheless intend to use a global option file with your new environment, you will have to go through the newly generated `conf/trac.ini` file and delete the entries that will otherwise override those set in the global file.

  There are two more entries in the [[#inherit-section| [inherit] ]] section, `templates_dir` for sharing global templates and `plugins_dir`, for sharing plugins. Those entries can themselves be specified in the shared configuration file, and in fact, configuration files can even be chained if you specify another `[inherit] file` there.

  Note that the templates found in the `templates/` directory of the TracEnvironment have precedence over those found in `[inherit] templates_dir`. In turn, the latter have precedence over the installed templates, so be careful about what you put there, notably if you override a default template be sure to refresh your modifications when you upgrade to a new version of Trac (the preferred way to perform TracInterfaceCustomization being still to write a custom plugin doing an appropriate `ITemplateStreamFilter` transformation).

  == Reference for settings

  This is a brief reference of available configuration options, and their default settings.

  [[TracIni]]

  ----
  See also: TracGuide, TracAdmin, TracEnvironment


name: TracCgi
author: trac
ipnr: 127.0.0.1
text:
  = Installing Trac as CGI =

  {{{
  #!div class=important
    ''Please note that using Trac via CGI is the slowest deployment method available. It is slower than [TracModPython mod_python], [TracFastCgi FastCGI] and even [trac:TracOnWindowsIisAjp IIS/AJP] on Windows.''
  }}}

  CGI script is the entrypoint that web-server calls when a web-request to an application is made. To generate the `trac.cgi` script run:
  {{{
  trac-admin /path/to/env deploy /path/to/www/trac
  }}}
  `trac.cgi` will be in the `cgi-bin` folder inside the given path. ''Make sure it is executable by your web server''. This command also copies `static resource` files to a `htdocs` directory of a given destination.

  == Apache web-server configuration ==

  In [http://httpd.apache.org/ Apache] there are two ways to run Trac as CGI:

   1. Use a `ScriptAlias` directive that maps an URL to the `trac.cgi` script (recommended)
   2. Copy the `trac.cgi` file into the directory for CGI executables used by your web server (commonly named `cgi-bin`). You can also create a symbolic link, but in that case make sure that the `FollowSymLinks` option is enabled for the `cgi-bin` directory.

  To make Trac available at `http://yourhost.example.org/trac` add `ScriptAlias` directive to Apache configuration file, changing `trac.cgi` path to match your installation:
  {{{
  ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.cgi
  }}}

   ''Note that this directive requires enabled `mod_alias` module.''

  If you're using Trac with a single project you need to set its location using the `TRAC_ENV` environment variable:
  {{{
  <Location "/trac">
    SetEnv TRAC_ENV "/path/to/projectenv"
  </Location>
  }}}

  Or to use multiple projects you can specify their common parent directory using the `TRAC_ENV_PARENT_DIR` variable:
  {{{
  <Location "/trac">
    SetEnv TRAC_ENV_PARENT_DIR "/path/to/project/parent/dir"
  </Location>
  }}}

   ''Note that the `SetEnv` directive requires enabled `mod_env` module. It is also possible to set TRAC_ENV in trac.cgi. Just add the following code between "try:" and "from trac.web ...":''

  {{{
      import os
      os.environ['TRAC_ENV'] = "/path/to/projectenv"
  }}}

   '' Or for TRAC_ENV_PARENT_DIR: ''

  {{{
      import os
      os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/project/parent/dir"
  }}}

  If you are using the [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature please see [http://trac.edgewall.org/wiki/ApacheSuexec].

  On some systems, you ''may'' need to edit the shebang line in the `trac.cgi` file to point to your real Python installation path. On a Windows system you may need to configure Windows to know how to execute a .cgi file (Explorer -> Tools -> Folder Options -> File Types -> CGI).

  === Using WSGI ===

  You can run a [http://henry.precheur.org/python/how_to_serve_cgi WSGI handler] [http://pythonweb.org/projects/webmodules/doc/0.5.3/html_multipage/lib/example-webserver-web-wsgi-simple-cgi.html under CGI].  You can [wiki:TracModWSGI#Thetrac.wsgiscript write your own application function], or use the deployed trac.wsgi's application.

  == Mapping Static Resources ==

  See TracInstall#MappingStaticResources.

  == Adding Authentication ==

  See TracInstall#ConfiguringAuthentication.

  ----
  See also:  TracGuide, TracInstall, [wiki:TracModWSGI], TracFastCgi, TracModPython


name: InterTrac
author: trac
ipnr: 127.0.0.1
text:
  = InterTrac Links  =

  Trac supports a convenient way to refer to resources of other Trac servers, from within the Wiki markup, since version 0.10.

  == Definitions ==

  An InterTrac link can be seen as a scoped TracLinks.
  It is used for referring to a Trac resource 
  (Wiki page, changeset, ticket, ...) located in another
  Trac environment.

  == List of Active InterTrac Prefixes ==

  [[InterTrac]]

  == Link Syntax ==

  Simply use the name of the other Trac environment as a prefix, 
  followed by a colon, ending with the resource located in the other environment.

  {{{
  <target_environment>:<TracLinks>
  }}}

  The other resource is specified using a regular TracLinks, of any flavor.

  That target environment name is either the real name of the 
  environment, or an alias for it. 
  The aliases are defined in `trac.ini` (see below).
  The prefix is case insensitive.

  If the InterTrac link is enclosed in square brackets (like `[th:WikiExtrasPlugin]`), the InterTrac prefix is removed in the displayed link, like a normal link resolver would be (i.e. the above would be displayed as `WikiExtrasPlugin`).

  For convenience, there's also some alternative short-hand form, 
  where one can use an alias as an immediate prefix 
  for the identifier of a ticket, changeset or report:
  (e.g. `#T234`, `[T1508]`, `[trac 1508]`, ...)

  == Examples ==

  It is necessary to setup a configuration for the InterTrac facility.
  This configuration has to be done in the TracIni file, `[intertrac]` section.

  Example configuration:
  {{{
  ...
  [intertrac]
  # -- Example of setting up an alias:
  t = trac

  # -- Link to an external Trac:
  trac.title = Edgewall's Trac for Trac
  trac.url = http://trac.edgewall.org
  }}}

  The `.url` is mandatory and is used for locating the other Trac.
  This can be a relative URL in case that Trac environment is located 
  on the same server.

  The `.title` information will be used for providing an useful tooltip
  when moving the cursor over an InterTrac links.

  Finally, the `.compat` option can be used to activate or disable
  a ''compatibility'' mode:
   * If the targeted Trac is running a version below [trac:milestone:0.10 0.10] 
     ([trac:r3526 r3526] to be precise), then it doesn't know how to dispatch an InterTrac 
     link, and it's up to the local Trac to prepare the correct link. 
     Not all links will work that way, but the most common do. 
     This is called the compatibility mode, and is `true` by default. 
   * If you know that the remote Trac knows how to dispatch InterTrac links, 
     you can explicitly disable this compatibility mode and then ''any'' 
     TracLinks can become an InterTrac link.

  Now, given the above configuration, one could create the following links:
   * to this InterTrac page:
     * `trac:wiki:InterTrac` trac:wiki:InterTrac
     * `t:wiki:InterTrac` t:wiki:InterTrac
     * Keys are case insensitive: `T:wiki:InterTrac` T:wiki:InterTrac
   * to the ticket #234:
     * `trac:ticket:234` trac:ticket:234
     * `trac:#234` trac:#234 
     * `#T234` #T234
   * to the changeset [1912]:
     * `trac:changeset:1912` trac:changeset:1912
     * `[T1912]` [T1912]
   * to the log range [3300:3330]: '''(Note: the following ones need `trac.compat=false`)'''
     * `trac:log:@3300:3330` trac:log:@3300:3330  
     * `[trac 3300:3330]` [trac 3300:3330] 
   * finally, to link to the start page of a remote trac, simply use its prefix followed by ':', inside an explicit link. Example: `[th: Trac Hacks]` (''since 0.11; note that the ''remote'' Trac has to run 0.11 for this to work'')

  The generic form `intertrac_prefix:module:id` is translated
  to the corresponding URL `<remote>/module/id`, shorthand links
  are specific to some modules (e.g. !#T234 is processed by the
  ticket module) and for the rest (`intertrac_prefix:something`),
  we rely on the TracSearch#quickjump facility of the remote Trac.

  ----
  See also: TracLinks, InterWiki


name: TracChangeset
author: trac
ipnr: 127.0.0.1
text:
  = Trac Changeset Module =
  [[TracGuideToc]]

  Trac has a built-in functionality for visualizing “diffs” - changes to files.

  There are different kinds of ''change sets''. 
  Some can correspond to revisions made in the repositories,
  others can aggregate changes made in several revisions, 
  but in the end, any kind of differences can be shown.

  The changeset view consists of two parts, the ''header'' 
  and the ''diff views''.

  == Changeset Header ==

  The header shows an overview of the whole changeset.
  Here you will find information such as:

   * Timestamp — When the changeset was commited
   * Author — Who commited the changeset
   * Message — A brief description from the author (the commit log message)
   * Location — Parent directory of all files affected by this changeset
   * Files — A list of files affected by this changeset

  If more than one revision is involved in the set of changes being
  displayed, the ''Timestamp'', ''Author'' and ''Message'' fields 
  won't be shown.

  In front of each listed file, you'll find  a colored rectangle. The color
  indicates how the file is affected by the changeset.
   
   [[span(style=background:#bfb;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Green: Added \\
   [[span(style=background:#f88;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Red: Removed \\
   [[span(style=background:#fd8;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Yellow: Modified \\
   [[span(style=background:#88f;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Blue: Copied \\
   [[span(style=background:#ccc;border:1px solid #999;font-size:80%;margin-right:.5em,''  '')]] Gray: Moved \\
  The color legend is located below the header as a reminder.

  == Diff Views ==

  Below the header is the main part of the changeset, the diff view. Each file is shown in a separate section, each of which will contain only the regions of the file that are affected by the changeset. There are two different styles of displaying the diffs: ''inline'' or ''side-by-side'' (you can switch between those styles using the preferences form):

   * The ''inline'' style shows the changed regions of a file underneath each other. A region removed from the file will be colored red, an added region will be colored green. If a region was modified, the old version is displayed above the new version. Line numbers on the left side indicate the exact position of the change in both the old and the new version of the file.
   * The ''side-by-side'' style shows the old version on the left and the new version on the right (this will typically require more screen width than the inline style.) Added and removed regions will be colored in the same way as with the inline style (green and red, respectively), but modified regions will have a yellow background.

  In addition, various advanced options are available in the preferences form for adjusting the display of the diffs:
   * You can set how many lines are displayed before and after every change
     (if the value ''all'' is used, then the full file will be shown)
   * You can toggle whether blank lines, case changes and white space changes are ignored, thereby letting you find the functional changes more quickly


  == The Different Ways to Get a Diff ==

  === Examining a Changeset ===

  When viewing a repository check-in, such as when following a
  changeset [wiki:TracLinks link] or a changeset event in the 
  [wiki:TracTimeline timeline], Trac will display the exact changes
  made by the check-in.

  There will be also navigation links to the ''Previous Changeset''
  to and ''Next Changeset''.

  === Examining Differences Between Revisions ===

  Often you'll want to look at changes made on a file 
  or on a directory spanning multiple revisions. The easiest way
  to get there is from the TracRevisionLog, where you can select
  the ''old'' and the ''new'' revisions of the file or directory, and
  then click the ''View changes'' button.

  === Examining Differences Between Branches ===

  One of the core features of version control systems is the possibility
  to work simultaneously on different ''Lines of Developments'', commonly
  called “branches”. Trac enables you to examine the exact differences
  between such branches.

  Using the '''View changes ...''' button in the TracBrowser allows you to enter
  ''From:'' and ''To:'' path/revision pairs. The resulting set of differences consist
  of the changes that should be applied to the ''From:'' content in order
  to get to the ''To:'' content.

  For convenience, it is possible to invert the roles of the ''old'' and the ''new''
  path/revision pairs by clicking the ''Reverse Diff'' link on the changeset page.

  === Checking the Last Change ===

  The last possibility for examining changes is to use the ''Last Change''
  link provided by the TracBrowser.

  This link will take you to the last change that was made on that path.
  From there, you can use the ''Previous Change'' and ''Next Change'' links
  to traverse the change history of the file or directory.

  ----
  See also: TracGuide, TracBrowser


name: Contacts and information
author: admin
ipnr: 128.223.87.89
text:
  == Tentative dates ==

   * May 18 through Many 22
   * Team will travel the weekend before and leave the weekend after

  == Contact in Quito for equipment shipment and customs ==


  {{{
  Full org name FUNDACION CHARLES DARWIN
  Contact Person  GABRIELA VERDESOTO 
  Physical delivery address (cannot be a postal box number) CALLE JUAN
  GONZALEZ N35-26 Y JUAN PABLO SANZ, EDIFICIO VIZCAYA, TORRE NORTE, QUINTO
  PISO, OFICINA 5C
  Local phone number   2440-918    2448-228  EXT. 104
  Email address gabriela.verdesoto@fcdarwin.org.ec
  }}}


  == NSRC team ==


   * Jeff Hite jeffh@uoregon.edu
   * Ermanno Pietrosemoli ermanno@gmail.com
   * David Teach dteach@uoregon.edu
   * Carlos Armas carmas@nsrc.org +1-604-808-1647

  == Arrival/Departures ==

  '''Ermanno Pietrosemoli'''

   * Arrives in GPS at 8:05 AM August 15
  * Leaves GPS August 24 at 12:45 PM

  {{{
   1. LA 6113 Q  14AUG MADUIO HK1  1235   1635 
           OPERATED BY IBERIA FOR LAN ECUADOR  
   2. XL 1557 B  15AUG UIO-GPS HK1  0655   0805 
   3. XL 1552 B  24AUG GPSGYE HK1  1245   1545 
   4. LA 6152 L  24AUG GYEMAD HK1  2035  #1435 
           OPERATED BY IBERIA FOR LAN ECUADOR  
  }}}

  '''Jeff Hite and David Teach'''

   * Arrive in GPS on Avianca 1688 at 3:55PM on Sunday August 16
   * Depart GPS on Lan Ecuador  1552 at 12:45PM on Saturday August 22

  '''Carlos Armas'''

   * Arrives in GPS on Lan Ecuador 1557 at 10:20AM on Sunday August 16
   * Departs GPS on Lan Ecuador 1556 at 11:50AM on Saturday August 22
   


name: Contacts and information
author: admin
ipnr: 128.223.87.89
text:
  == Tentative dates ==

   * May 18 through Many 22
   * Team will travel the weekend before and leave the weekend after

  == Contact in Quito for equipment shipment and customs ==


  {{{
  Full org name FUNDACION CHARLES DARWIN
  Contact Person  GABRIELA VERDESOTO 
  Physical delivery address (cannot be a postal box number) CALLE JUAN
  GONZALEZ N35-26 Y JUAN PABLO SANZ, EDIFICIO VIZCAYA, TORRE NORTE, QUINTO
  PISO, OFICINA 5C
  Local phone number   2440-918    2448-228  EXT. 104
  Email address gabriela.verdesoto@fcdarwin.org.ec
  }}}


  == NSRC team ==


   * Jeff Hite jeffh@uoregon.edu
   * Ermanno Pietrosemoli ermanno@gmail.com
   * David Teach dteach@uoregon.edu
   * Carlos Armas carmas@nsrc.org +1-604-808-1647

  == !Arrival/Departures ==

  '''Ermanno Pietrosemoli'''

   * Arrives in GPS at 8:05 AM August 15
  * Leaves GPS August 24 at 12:45 PM

  {{{
   1. LA 6113 Q  14AUG MADUIO HK1  1235   1635 
           OPERATED BY IBERIA FOR LAN ECUADOR  
   2. XL 1557 B  15AUG UIO-GPS HK1  0655   0805 
   3. XL 1552 B  24AUG GPSGYE HK1  1245   1545 
   4. LA 6152 L  24AUG GYEMAD HK1  2035  #1435 
           OPERATED BY IBERIA FOR LAN ECUADOR  
  }}}

  '''Jeff Hite and David Teach'''

   * Arrive in GPS on Avianca 1688 at 3:55PM on Sunday August 16
   * Depart GPS on Lan Ecuador  1552 at 12:45PM on Saturday August 22

  '''Carlos Armas'''

   * Arrives in GPS on Lan Ecuador 1557 at 10:20AM on Sunday August 16
   * Departs GPS on Lan Ecuador 1556 at 11:50AM on Saturday August 22
   


name: Contacts and information
author: admin
ipnr: 128.223.87.89
text:
  == Tentative dates ==

   * May 18 through Many 22
   * Team will travel the weekend before and leave the weekend after

  == Contact in Quito for equipment shipment and customs ==


  {{{
  Full org name FUNDACION CHARLES DARWIN
  Contact Person  GABRIELA VERDESOTO 
  Physical delivery address (cannot be a postal box number) CALLE JUAN
  GONZALEZ N35-26 Y JUAN PABLO SANZ, EDIFICIO VIZCAYA, TORRE NORTE, QUINTO
  PISO, OFICINA 5C
  Local phone number   2440-918    2448-228  EXT. 104
  Email address gabriela.verdesoto@fcdarwin.org.ec
  }}}


  == NSRC team ==


   * Jeff Hite jeffh@uoregon.edu
   * Ermanno Pietrosemoli ermanno@gmail.com
   * David Teach dteach@uoregon.edu
   * Carlos Armas carmas@nsrc.org +1-604-808-1647

  == !Arrival/Departures ==

  '''Ermanno Pietrosemoli'''

   * Arrives in GPS at 8:05 AM August 15
   * Leaves GPS August 24 at 12:45 PM

  {{{
   1. LA 6113 Q  14AUG MADUIO HK1  1235   1635 
           OPERATED BY IBERIA FOR LAN ECUADOR  
   2. XL 1557 B  15AUG UIO-GPS HK1  0655   0805 
   3. XL 1552 B  24AUG GPSGYE HK1  1245   1545 
   4. LA 6152 L  24AUG GYEMAD HK1  2035  #1435 
           OPERATED BY IBERIA FOR LAN ECUADOR  
  }}}

  '''Jeff Hite and David Teach'''

   * Arrive in GPS on Avianca 1688 at 3:55PM on Sunday August 16
   * Depart GPS on Lan Ecuador  1552 at 12:45PM on Saturday August 22

  '''Carlos Armas'''

   * Arrives in GPS on Lan Ecuador 1557 at 10:20AM on Sunday August 16
   * Departs GPS on Lan Ecuador 1556 at 11:50AM on Saturday August 22
   


name: Documents
author: carmas
ipnr: 154.20.156.62
text:
  Documents 
  * [[ Task list ]]
  * [[ Proposed network architecture (diagram) ]]
  * attachment:CDRS-DEA-Equipment-Plan-v6.pdf
  * [[ Network buildout - steps ]]


name: Network buildout - steps
author: carmas
ipnr: 154.20.156.62
text:
  Network Buildout -- Steps

  [[Image(CDRS-buildout-00.png)]]

  [[Image(CDRS-buildout-01.png)]]

  [[Image(CDRS-buildout-02.png)]]

  [[Image(CDRS-buildout-03.png)]]


name: Network buildout - steps
author: carmas
ipnr: 154.20.156.62
text:
  Network Buildout -- Steps

  [[Image(CDRS-build-00.png)]]

  [[Image(CDRS-build-01.png)]]

  [[Image(CDRS-build-02.png)]]

  [[Image(CDRS-build-03.png)]]


name: Network buildout - steps
author: carmas
ipnr: 154.20.156.62
text:
  Network Buildout -- Steps

  Build strategy: 
  To ....

  [[Image(CDRS-build-00.png)]]

  [[Image(CDRS-build-01.png)]]

  [[Image(CDRS-build-02.png)]]

  [[Image(CDRS-build-03.png)]]


name: Network buildout - steps
author: carmas
ipnr: 154.20.156.62
text:
  Network Buildout -- Steps

  Strategy: 

  Setup a core section of the new network without disrupting the existing one.
  In the diagram below, the area in question is encircled in black:

  [[Image(CDRS-build-00.png)]]

  Step 1 (see diagram below)

  The fiber between the IT building and Fischer Right building is not being used.
  Once Jeff repairs it, we can link those two buildings. 
  David would have the new core switch and the captive portal installed/setup in the server room (IT).
  Install the new switch for Fischer Derecho, and link both switches via the repaired fiber.
  Meanwhile, Ermanno and team working on installing the Rocket-M5 on the roof of Fischer Left, and nanoBridges on each of the 3 residences.

  [[Image(CDRS-build-01.png)]]

  Step 2 (see diagram below)

  (Ideally) Run a new CAT-5 cable from Fischer Right to Fischer Left. That would extend the new backbone to Fischer Left.
  Install a new switch in Fischer Left. Once the residence WiFi APs are in place, there is a multi-building backbone to run tests.
  Captive portal and user login can be tested as well.


  [[Image(CDRS-build-02.png)]]

  Step 3 (see diagram below)

  There are no redundant links to the other 5 buildings (Biomar, Invertebrates, Library, Admin, Reception)
  Hence replacements have to be swap-ins. For each of those buildings, have the WiFi APs and new switches ready beforehand.

  [[Image(CDRS-build-03.png)]]

  Finally, a downtime to move servers from the old core switch to the new core switch


# report

title: Active Tickets
description:
  * List all active tickets by priority.
  * Color each row based on priority.

query:
  SELECT p.value AS __color__,
     id AS ticket, summary, component, version, milestone, t.type AS type, 
     owner, status,
     time AS created,
     changetime AS _changetime, description AS _description,
     reporter AS _reporter
    FROM ticket t
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
    WHERE status <> 'closed'
    ORDER BY CAST(p.value AS integer), milestone, t.type, time


title: Active Tickets by Version
query:
  SELECT p.value AS __color__,
     version AS __group__,
     id AS ticket, summary, component, version, t.type AS type, 
     owner, status,
     time AS created,
     changetime AS _changetime, description AS _description,
     reporter AS _reporter
    FROM ticket t
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
    WHERE status <> 'closed'
    ORDER BY (version IS NULL),version, CAST(p.value AS integer), t.type, time

description:
  This report shows how to color results by priority,
  while grouping results by version.

  Last modification time, description and reporter are included as hidden fields
  for useful RSS export.


title: Active Tickets by Milestone
query:
  SELECT p.value AS __color__,
     'Milestone '||milestone AS __group__,
     id AS ticket, summary, component, version, t.type AS type, 
     owner, status,
     time AS created,
     changetime AS _changetime, description AS _description,
     reporter AS _reporter
    FROM ticket t
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
    WHERE status <> 'closed' 
    ORDER BY (milestone IS NULL),milestone, CAST(p.value AS integer), t.type, time

description:
  This report shows how to color results by priority,
  while grouping results by milestone.

  Last modification time, description and reporter are included as hidden fields
  for useful RSS export.


title: Accepted, Active Tickets by Owner
description: List accepted tickets, group by ticket owner, sorted by priority.
query:
  SELECT p.value AS __color__,
     owner AS __group__,
     id AS ticket, summary, component, milestone, t.type AS type, time AS created,
     changetime AS _changetime, description AS _description,
     reporter AS _reporter
    FROM ticket t
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
    WHERE status = 'accepted'
    ORDER BY owner, CAST(p.value AS integer), t.type, time


title: Accepted, Active Tickets by Owner (Full Description)
query:
  SELECT p.value AS __color__,
     owner AS __group__,
     id AS ticket, summary, component, milestone, t.type AS type, time AS created,
     description AS _description_,
     changetime AS _changetime, reporter AS _reporter
    FROM ticket t
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
    WHERE status = 'accepted'
    ORDER BY owner, CAST(p.value AS integer), t.type, time

description:
  List tickets accepted, group by ticket owner.
  This report demonstrates the use of full-row display.


title: All Tickets By Milestone (Including closed)
description: A more complex example to show how to make advanced reports.
query:
  SELECT p.value AS __color__,
     t.milestone AS __group__,
     (CASE status 
        WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;'
        ELSE 
          (CASE owner WHEN $USER THEN 'font-weight: bold' END)
      END) AS __style__,
     id AS ticket, summary, component, status, 
     resolution,version, t.type AS type, priority, owner,
     changetime AS modified,
     time AS _time,reporter AS _reporter
    FROM ticket t
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
    ORDER BY (milestone IS NULL), milestone DESC, (status = 'closed'), 
          (CASE status WHEN 'closed' THEN changetime ELSE (-1) * CAST(p.value AS integer) END) DESC


title: My Tickets
query:
  SELECT p.value AS __color__,
     (CASE status WHEN 'accepted' THEN 'Accepted' ELSE 'Owned' END) AS __group__,
     id AS ticket, summary, component, version, milestone,
     t.type AS type, priority, time AS created,
     changetime AS _changetime, description AS _description,
     reporter AS _reporter
    FROM ticket t
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
    WHERE t.status <> 'closed' AND owner = $USER
    ORDER BY (status = 'accepted') DESC, CAST(p.value AS integer), milestone, t.type, time

description:
  This report demonstrates the use of the automatically set 
  USER dynamic variable, replaced with the username of the
  logged in user when executed.


title: Active Tickets, Mine first
query:
  SELECT p.value AS __color__,
     (CASE owner 
       WHEN $USER THEN 'My Tickets' 
       ELSE 'Active Tickets' 
      END) AS __group__,
     id AS ticket, summary, component, version, milestone, t.type AS type, 
     owner, status,
     time AS created,
     changetime AS _changetime, description AS _description,
     reporter AS _reporter
    FROM ticket t
    LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
    WHERE status <> 'closed' 
    ORDER BY (COALESCE(owner, '') = $USER) DESC, CAST(p.value AS integer), milestone, t.type, time

description:
   * List all active tickets by priority.
   * Show all tickets owned by the logged in user in a group first.


