From 9aacaab9914a11192a3d0f2a15c58c2419e19ed1 Mon Sep 17 00:00:00 2001 From: Alex Sramek Date: Sun, 4 May 2025 15:13:23 -0700 Subject: [PATCH] Refreshed style guide from Confluence to Docusaurus. --- ...-Wiki-Standards-and-Guidelines_1049056.mdx | 477 ------------------ .../Contributing-Documentation/StyleGuide.mdx | 267 ++++++++++ 2 files changed, 267 insertions(+), 477 deletions(-) delete mode 100644 docs/FreeSWITCH-Explained/Community/Contributing-Documentation/Confluence-Wiki-Standards-and-Guidelines_1049056.mdx create mode 100644 docs/FreeSWITCH-Explained/Community/Contributing-Documentation/StyleGuide.mdx diff --git a/docs/FreeSWITCH-Explained/Community/Contributing-Documentation/Confluence-Wiki-Standards-and-Guidelines_1049056.mdx b/docs/FreeSWITCH-Explained/Community/Contributing-Documentation/Confluence-Wiki-Standards-and-Guidelines_1049056.mdx deleted file mode 100644 index f51724f8..00000000 --- a/docs/FreeSWITCH-Explained/Community/Contributing-Documentation/Confluence-Wiki-Standards-and-Guidelines_1049056.mdx +++ /dev/null @@ -1,477 +0,0 @@ - -# Confluence Wiki Standards and Guidelines - - - -## About - -Documentation Team: Please observe these standards and guidelines when editing Confluence wiki pages to maintain a consistent user experience. - -Copy the page excluding the wiki generated table of contents and paste it directly into a new Confluence page based on the FS template. - -Then update the record for the page on [Move Tracker spreadsheet](./Move-Tracker_3375535.mdx#about) that was set up by [Belaid Areski](https://freeswitch.org/confluence/display/~areski) selecting "Moved" if that's all you did, "Editing" if you now own the page and will correct links, grammar, and factual errors, "Complete" if the page requires no further editing. - -This will indicate to other members of the Docs Team who is editing the page and whom to contact if you wish to update it instead. Note that some old wiki pages will not be moved because they are old and outdated or no longer apply to the current version of FreeSWITCH; these pages are marked "Deleted" and there are quite a number of them. Links that were redirected to the ultimate page on the old wiki can be marked as "Duplicate" as the spreadsheet was built by a script that did not differentiate between live pages and redirected links. - -xxx - -## Structure - -Use the "**FS template**" when you create a new page that has all the macros that contain the Table of Contents with all formatting ready to go. - -There is also a macro `{ft` that inserts the FreeSWITCH Table of Contents by itself at the location on the page where you type the macro. - -Each page shall start with the heading 1 named "About" followed by a brief narrative explaining the topic of the page. - -Next, if the page is long enough to warrant a Table of Contents, insert the `{`FS ToC macro which consists of the Expand macro containing a Panel macro containing a Table of Contents macro. (The FS ToC macro is finicky and sometimes reports an error, then it works later.) Don't copy the ToC from the old wiki. - -After that comes whatever commands, variables, narrative, diagrams, tables, and code examples appropriate to explain the topic of the page. - -Don't forget to add labels to the page. Use plural words for everything other than proper terms used in FreeSWITCH, such as "variables", "modules", etc. Exceptions include "dialplan" and "directory" since these proper names are used internally to FS. - -**Typical Confluence Page Structure** - -## About - -This is the About text. - -Table of Contents macro goes here (see Shortcuts) - -## Heading 1 - -First major paragraph. - -### Heading 2 - -Text under heading 2 - -### Another Heading 2 - -Other text under next heading 2 - -#### Heading 3 - -Text - -#### Another Heading 3 - -Text - -## Another Heading 1 - -Second major paragraph. - -(Don't forget to add appropriate labels to the page from the existing list in use.) - -### BNF Formatting - -Commands are expressed using Backus–Naur Form as outlined in the table below. - -| | | -|--------------|---------------------------| -| literal | a literal argument | -| \ | a variable argument | -| \[optional\] | an optional argument | -| \| | symbol for or | -| & | symbol for and | -| \* | wildcard character | -| ... | symbol for repetition | -| ? | single character wildcard | -| (grouping) | override precedence | - -### Command Format - -Command name - -Brief description of command. - -Usage, styled as Preformatted text (shortcut = Ctrl+7), beginning with the string "Usage:" - -Listing of arguments and their meaning, one per line - -Notes, warnings, additional explanation as necessary. - -**Example of command 'alias'** - -### alias - -A means to save some keystrokes on commonly used commands. - -Usage: alias add | stickyadd \ \ | del \ | * - -add - add an alias -stickyadd - add an alias which persists across restarts -\ - the user defined name for the new command -\ - the original command name - -Examples: - -alias add reloadall reloadacl reloadxml -alias add unreg sofia profile internal flush_inbound_reg -alias stickyadd reloadall reloadacl reloadxml -alias del reloadall - -Only really works from the console, not fs\_cli. - -## Paths - -**conf/** in the docs represents the generalized location of the FreeSWITCH™ parent configuration directory. Linux packages place config files under `/etc/freeswitch` while compiling from source typically locates them under the `/usr/local/freeswitch/conf` tree. Windows clearly uses a different location. Don't use hard-coded paths to the configuration files if possible. - -## Styling - -Confluence standardizes the look and feel of pages by providing only styles in the upper left listbox, rather than random markup. Regardless of the heading levels copied over from the MediaWiki site, please use the following conventions to maintain consistency here in Confluence: - -## This Is Heading 1 for top-level headings throughout the page - -### This Is Heading 2 as a sub-section under Heading 1 - -#### This Is Heading 3 as a sub-section under Heading 2 - -...and so on. These not only style the text visually, they also provide semantic hints to screen readers for those with vision impairment. The fs ToC macro only includes h1 through h3 to keep it manageable on big pages. - -Please do not use boldface and italics except where they are appropriate. Let the style sheet do its job: - -1. Paste or type the new text first -2. Style the text (see Shortcut keys) - -Random text styles circumvent these useful goals, plus they can be used to excess and dilute the emphasis. Use the tip, info, note, and warning macro boxes to set out text in place of their wiki equivalents. - -It can clarify a sentence to mark commands and log output that appear inline with the `monospace style` on the toolbar button in the upper left that looks like a capital A with a long crossbar and small superscript lower case a to the left of it. AFAIK there is no keyboard shortcut for this style. - -### Shortcuts - -No need to use the mouse and menu if you want to keep your fingers typing on the keyboard. - -| Type this | to display this | -| ---------- | ------------------------------------------ | -| h1.\ | Heading 1 format | -| h2.\ | Heading 2 format | -| \{code | FS code block pre-formatted | -| \{fs | FreeSWITCH™ | -| \{ft | FS Table of Contents package pre-formatted | -| \{tip | Panel with green check mark in title | -| \{info | Panel with blue circumscribed i in title | -| \{note | Panel with bang ! in yellow triangle | - -Editing - -Use great care in the Confluence editor when cutting a block of text or typing Backspace at the beginning of a line that has special formatting. There is hidden formatting that will be deleted in this operation (at least in Firefox) that will return the current line to standard Paragraph formatting. Use Ctrl-Z to undo and carefully try again. - -### Callout Graphic Annotation Mapping - -Confluence provides macros that insert a div box that contains text and graphics and highlights it with an icon similar to MediaWiki. - -#### Code Block - -To show multiple lines of code, use the Confluence 'code' macro. Use to enclose blocks of XML, HTML, C, bash scripts, and other code that is best displayed using the pre-formatted monospace style. Whatever goes inside the code block will automatically be styled with the Preformatted style. I set the system-wide default to highlight XML syntax and use the Emacs theme, so you can leave the default settings (blanks) unless there is a good reason to choose different syntax highlighting. - -Depending on whether it is a bash script or source code, choose the appropriate language, type a short title; check the 'Collapse' box if it is many lines of code to avoid filling up the page needlessly. In many cases the syntax highlighting will reduce legibility, so just leave it at the default of blank, no syntax highlighting. Use your best judgment. - -MediaWiki code and icon: - -`{{keyboard|content=Code block.}}` - -![](https://wiki.freeswitch.org/images/thumb/a/a9/Keyboard.png/64px-Keyboard.png) - -**Code Block** - -```xml -Menu: Insert > Other Macros > Code Block -Keyboard shortcut: {code -``` - -#### Tip Block - -Callout that draws attention to a time-saving tip or additional information that deserves the special attention of the reader. - -Menu: Insert > Other Macros > Formatting > Tip - -Keyboard shortcut: `{tip` - -#### Info Block - -Callout that provides links and pointers to additional information on the topic. - -MediaWiki code and icon: - -`{{info|content=Info text.}}` - -![](https://wiki.freeswitch.org/images/thumb/b/b3/Info.png/64px-Info.png) - - -Menu: Insert > Other Macros > Formatting > Info - -Keyboard shortcut: `{info` - -#### Note Block - -Callout that draws attention to important information about the topic. - -MediaWiki code and icon: - -`{{warning|content=Warning text.}}` - -![](https://wiki.freeswitch.org/images/thumb/c/cb/Warning.png/64px-Warning.png) - -Menu: Insert > Other Macros > Formatting > Note - -Keyboard shortcut: `{note` - -#### Warning Block - -Callout that demands attention to critical information that could cause data loss, damage, or fraud if ignored. - -MediaWiki code and icon: - -`{{error|content=Warning text.}}` - -![](https://wiki.freeswitch.org/images/thumb/4/49/Error.png/64px-Error.png) - -Menu: Insert > Other Macros > Formatting > Warning - -Keyboard shortcut: `{warn` - -When there is a warning for a specific command always add the warning before the code block to grab the attention of the reader. - -x - -## Confluence YouTube Tutorial - -## - -## UML Diagrams - -### Activity Diagrams - -The PlantUML add-on is installed to allow text source to be rendered as UML activity diagrams. These can be used to illustrate call flow. [Help for activity diagrams](http://plantuml.com/activity2.html) is available from the author's web site. - -![](/download/temp/plantuml10111442917974332311.png) - -### Sequence Diagrams - -The add-on also supports sequence diagrams which are useful for illustrating SIP message flow. [Help for sequence diagrams](http://plantuml.com/sequence.html) is available from the author's web site. - -![](/download/temp/plantuml12557049914813650798.png) - -00000000 40 73 74 61 72 74 75 6D 6C 0A 3D 3D 20 49 4E 49 @startuml.== INI -00000010 54 49 41 4C 49 5A 41 54 49 4F 4E 20 3D 3D 0A 41 TIALIZATION ==.A -00000020 6C 69 63 65 20 2D 3E 20 46 53 3A 20 49 4E 56 49 lice -> FS: INVI -00000030 54 45 0A 46 53 20 2D 3E 20 41 6C 69 63 65 3A 20 TE.FS -> Alice: -00000040 31 30 30 20 54 72 79 69 6E 67 0A 46 53 20 2D 3E 100 Trying.FS -> -00000050 20 42 6F 62 3A 20 49 4E 56 49 54 45 0A 42 6F 62 Bob: INVITE.Bob -00000060 20 2D 3E 20 46 53 3A 20 31 38 30 20 52 69 6E 67 -> FS: 180 Ring -00000070 69 6E 67 0A 46 53 20 2D 3E 20 41 6C 69 63 65 3A ing.FS -> Alice: -00000080 20 31 38 30 20 52 69 6E 67 69 6E 67 0A 42 6F 62 180 Ringing.Bob -00000090 20 2D 3E 20 46 53 3A 20 32 30 30 20 4F 4B 0A 46 -> FS: 200 OK.F -000000A0 53 20 2D 3E 20 41 6C 69 63 65 3A 20 32 30 30 20 S -> Alice: 200 -000000B0 4F 4B 0A 41 6C 69 63 65 20 2D 3E 20 42 6F 62 3A OK.Alice -> Bob: -000000C0 20 41 43 4B 0A 3D 3D 20 52 45 50 45 54 49 54 49 ACK.== REPETITI -000000D0 4F 4E 20 3D 3D 0A 41 6C 69 63 65 20 2D 5B 23 62 ON ==.Alice -[#b -000000E0 6C 75 65 5D 3E 20 42 6F 62 3A 20 52 54 50 20 6D lue]> Bob: RTP m -000000F0 65 64 69 61 20 73 74 72 65 61 6D 0A 42 6F 62 20 edia stream.Bob -00000100 2D 5B 23 62 6C 75 65 5D 3E 20 41 6C 69 63 65 3A -[#blue]> Alice: -00000110 20 52 54 50 20 6D 65 64 69 61 20 73 74 72 65 61 RTP media strea -00000120 6D 0A 46 53 20 2D 3E 20 41 6C 69 63 65 3A 20 55 m.FS -> Alice: U -00000130 70 64 61 74 65 20 53 44 50 0A 46 53 20 2D 3E 20 pdate SDP.FS -> -00000140 42 6F 62 3A 20 55 70 64 61 74 65 20 53 44 50 0A Bob: Update SDP. -00000150 3D 3D 20 54 45 52 4D 49 4E 41 54 49 4F 4E 20 3D == TERMINATION = -00000160 3D 0A 42 6F 62 20 2D 3E 20 41 6C 69 63 65 3A 20 =.Bob -> Alice: -00000170 42 59 45 0A 41 6C 69 63 65 20 2D 3E 20 42 6F 62 BYE.Alice -> Bob -00000180 3A 20 32 30 30 20 4F 4B 0A 40 65 6E 64 75 6D 6C : 200 OK.@enduml -00000190 0A . - -## Labels - -Labels tie together related pages. Please don't create a new label if you can find an existing label. - -On any Confluence page an editor can type L (the letter "ELL") to bring up the Label dialog box. Typing a few characters starts an incremental search of existing labels. - -Plural labels suggest a group and are preferred; e.g. "operating-systems", "clients", "developers", etc. - -1. A-B - * [api] - * [applications] - * [apps] - * [arm] - * [asr] - * [beginners] - * [bsd] - * [bugs] - * [building] -2. C - * [call-control] - * [cdr] - * [centos] - * [certificate] - * [changelog] - * [channel_variable] - * [cli] - * [clients] - * [clusters] - * [codecs] - * [community] - * [compiling] - * [conference] - * [conferencing] - * [configuration] - * [contributed] - * [core\_dump] -3. D - * [databases] - * [debian] - * [debug] - * [debugging] - * [delete] - * [demo] - * [dependencies] - * [developers] - * [dialplan] - * [dinstar] - * [directory] - * [docs-team] - * [dptools] - * [dtmf] -4. E-F - * [encryption] - * [endpoints] - * [erlang] - * [esl] - * [events] - * [examples] - * [fax] - * [featured] - * [file_formats] - * [fpt] - * [freebsd] -5. G-H - * [gateways] - * [gdb] - * [git] - * [globalvariable] - * [global\_variable] - * [go] - * [google] - * [grammar] - * [gui] - * [hangup] - * [high-availability] - * [high-volume] -6. I-K - * [ibm] - * [inline] - * [installation] - * [interfaces] - * [interop] - * [introduction] - * [ivr] - * [java] - * [javascript] - * [json-rpc] - * [khomp] -7. L - * [learn] - * [linux] - * [logging] - * [lua] -8. M-N - * [mac] - * [media] - * [mod] - * [mod_easyroute] - * [mod_event_socket] - * [mod_h323] - * [mod_lcr] - * [modules] - * [mp3] - * [mq] - * [mrcp] - * [multi-tenant] - * [needs-documentation] - * [networking] -9. O-Q - * [openzap] - * [operating-system] - * [operating-systems] - * [opus] - * [osx] - * [perl] - * [phones] - * [php] - * [playback] - * [presence] - * [protocols] - * [providers] - * [pstn] - * [python] -10. R - * [record] - * [reference] - * [release] - * [rest] - * [rpc] - * [rpm] - * [rtcp] - * [rtp] - * [ruby] -11. S - * [scheduler] - * [scripts] - * [security] - * [signalling] - * [signalwire] - * [sip] - * [skype] - * [sms] - * [socket] - * [sofia] - * [spy] - * [ssl] - * [sslv3] - * [standards] -12. T-V - * [tls] - * [todos] - * [too-short] - * [troubleshooting] - * [tts] - * [ubuntu] - * [unix] - * [vad] - * [variables] - * [verto] - * [video] - * [vietnam] - * [virtualization] -13. W-Z - * [webapi] - * [webrtc] - * [windows] - * [zapata] - * [zaptel] -14. 0-9 - * [2600hz] - -## Hints and Tips - -1. FreeSWITCH™. You do not have to use the trademark symbol every time. It appears in every instance on the top level page so hopefully that should drive the point home. If you use it once in the About section of a new page that should be sufficient. In many cases the old wiki used the abbreviation FS to represent FreeSWITCH which should be acceptable as long as it is clear what is meant; just make sure it can't be conflated with "file server". -2. Sometimes for no particular reason when editing pages (in Firefox) the cursor focus moves to the top or bottom of the page. Very annoying especially when editing large pages. Although Atlassian touts Confluence as a "reliable editor" it has this and other quirks, so be careful when editing text. It sometimes does things that you do not expect. -3. When Confluence appears to have old entries on the main page under "Recently Updated Pages" an admin needs to flush the cache and go check the Content Indexing administrative pages. - -## ToDo - -* Copy remaining pages from MediaWiki to Confluence -* Create a reference/sample page that contains all of the formatting elements for a page. -* Find a way to have "Notify Watchers" in edit screen unchecked by default. A: Checkbox remembers its state, so clear it and forget it -* See if we can set the ToC list style to "none" by default because a bulleted ToC is fugly -* Decrease the default ToC Heading Indent to something a little more visually pleasing like 12px (or better still 1ex) -* Change the ToC template to shade and put a box around like MediaWiki does it so that it "pops" a little better - - -### Attachments: - -![](/images/icons/bullet_blue.gif) [index.png](/attachments/1049056/1146891.png) (image/png) -![](/images/icons/bullet_blue.gif) [info.png](/attachments/1049056/1146892.png) (image/png) -![](/images/icons/bullet_blue.gif) [warning.png](/attachments/1049056/1146893.png) (image/png) -![](/images/icons/bullet_blue.gif) [ToC-Readability.png](/attachments/1049056/4227078.png) (image/png) -![](/images/icons/bullet_blue.gif) [ToC-Readability.png](/attachments/1049056/4227079.png) (image/png) -![](/images/icons/bullet_blue.gif) [ToC-Readability.png](/attachments/1049056/4227077.png) (image/png) diff --git a/docs/FreeSWITCH-Explained/Community/Contributing-Documentation/StyleGuide.mdx b/docs/FreeSWITCH-Explained/Community/Contributing-Documentation/StyleGuide.mdx new file mode 100644 index 00000000..dbe1c962 --- /dev/null +++ b/docs/FreeSWITCH-Explained/Community/Contributing-Documentation/StyleGuide.mdx @@ -0,0 +1,267 @@ +# FreeSWITCH Style Guide + +## About + +Documentation Team: Please observe these standards and guidelines when editing wiki pages to maintain a consistent user experience. + +## Structure + +- Begin each page with a Heading 2 `##` named "About" followed by a brief description of the page. +- After that comes whatever commands, variables, narrative, diagrams, tables, and code examples are appropriate. +- Add tags to the page's front matter as appropriate. + +### Typical Page Structure + +``` +## About + +This is the About text. + +## Heading 2 + +First major paragraph. + +### Heading 3 + +Text under heading 3 + +### Another Heading 3 + +Other text under next heading 3 + +#### Heading 4 + +Text + +#### Another Heading 4 + +Text + +## Another Heading 2 + +Second major paragraph. + +``` + +## Commands + +### BNF Formatting + +Commands are expressed using Backus–Naur Form as outlined in the table below. + +| | | +|--------------|---------------------------| +| literal | a literal argument | +| \ | a variable argument | +| \[optional\] | an optional argument | +| \| | symbol for or | +| & | symbol for and | +| \* | wildcard character | +| ... | symbol for repetition | +| ? | single character wildcard | +| (grouping) | override precedence | + +### Command Format + +Command name + +Brief description of command. + +Usage, styled as Preformatted text (shortcut = Ctrl+7), beginning with the string "Usage:" + +Listing of arguments and their meaning, one per line + +Notes, warnings, additional explanation as necessary. + +**Example of command 'alias'** + +### alias + +A means to save some keystrokes on commonly used commands. + +Usage: alias add | stickyadd \ \ | del \ | * + +add - add an alias +stickyadd - add an alias which persists across restarts +\ - the user defined name for the new command +\ - the original command name + +Examples: + +alias add reloadall reloadacl reloadxml +alias add unreg sofia profile internal flush_inbound_reg +alias stickyadd reloadall reloadacl reloadxml +alias del reloadall + +Only really works from the console, not fs\_cli. + +## Paths + +**conf/** in the docs represents the generalized location of the FreeSWITCH™ parent configuration directory. +- Linux packages place config files under `/etc/freeswitch` while compiling from source typically locates them under the `/usr/local/freeswitch/conf` tree. +- Windows clearly uses a different location. + +:::warning + +Don't use hard-coded paths to the configuration files if possible. + +::: + +## Styling + +FreeSWITCH's docs are written in Markdown, hosted with Docusaurus. + +See [Docusaurus' Markdown Guide](https://docusaurus.io/docs/markdown-features) for an orientation and best practice. + +Please use the following conventions to maintain consistency: + +### Heading Levels + +Docusaurus uses Heading 1 for the page title and begins actual headings at Heading 2. + +``` +## Use Heading 2 for top-level headings. + +### Use Heading 3 for sub-sections under Heading 2 + +#### Use Heading 4 for sub-sections under Heading 3. +``` + +:::info + +Our Table of Contents configuration only includes heading levels 2-3 by default. + +::: + +:::info + +Heading levels not only style the text visually, they also provide semantic hints to screen readers for those with vision impairment. + +::: + +### Text Styles + +Please do not use boldface and italics except where they are appropriate. Let the style sheet do its job: + +1. Paste or type the new text first +2. Style the text (see Shortcut keys) + +Random text styles circumvent these useful goals, plus they can be used to excess and dilute the emphasis. Use **callouts** to set out text in place of their wiki equivalents. + +### Commands and Log Output + +Surround *inline* commands and log output with backticks `` ` ``. For multiple lines, use code blocks. + +**Example:** + +```Run `grok` ``` + +*becomes* + +Run `grok` + + +### Code Blocks + +Use [Code Blocks](https://docusaurus.io/docs/markdown-features/code-blocks) to enclose multi-line blocks of XML, HTML, C, bash scripts, output, and other text where monospace is appropriate. + +- Begin and end code blocks with three backticks ` ``` ` on their own line. +- Specify the language for syntax highlighting if desired. +- Add a title for the block if appropriate. + +**Example:** + +```` +```md title="Block Title" +- Something +- Something else +``` +```` + +*becomes* + +```md title=Block Title +- Something +- Something else +``` + +### Callouts + +Use [Admonitions](https://docusaurus.io/docs/markdown-features/admonitions) for callout blocks (e.g. Info, Warning, Danger). + +- Callout blocks are defined with three colons `:::`. +- The first line also indicates what *style* of callout block it is. There are five styles: `note`, `tip`, `info`, `warning`, `danger`. +- Include a blank line both before and after the three-colon lines. + +**Example:** + +``` + +:::warning + +Sample warning block + +::: + + +``` + +*becomes* + +:::warning + +Sample warning block + +::: + +#### Recommended Callout Usage: + +:::info + +Use `info` for something you want to draw the reader's attention to, that isn't critical if they miss. + +Markdown offers `note`, `tip`, and `info`. These are very similar; use `info` if you're not sure which to use. This gives consistent color and formatting. + +::: + +:::warning + +Use `warning` to alert the user to something that would cause unwanted behavior, but won't have major lasting consequences. + +Put this *before* the action it refers to. + +::: + +:::danger + +Use `danger` for anything that may cause significant real-world consequences, such as unrecoverable failure, data loss, security breach, fraud, etc. + +Put this *before* the action it refers to. + +::: + +## Diagrams + +Docusaurus offers Mermaid integration for diagrams. As of this writing, there is no official guidance for use. + +## Tags + +Docusaurus [tags](https://docusaurus.io/docs/create-doc#doc-tags) in the front matter are the successor to Confluence *labels*. + +- Use plural words for everything other than proper terms used in FreeSWITCH, such as "variables", "modules", etc. +- Exceptions include "dialplan" and "directory" since these proper names are used internally to FS. +- Tags tie together related pages. Please don't create a new tag if you can find an existing tag. + +## FreeSWITCH Trademark + +Our trademark is FreeSWITCH™. You do not have to use the trademark symbol every time. It appears in every instance on the top level page so hopefully that should drive the point home. If you use it once in the About section of a new page that should be sufficient. In many cases the old wiki used the abbreviation FS to represent FreeSWITCH which should be acceptable as long as it is clear what is meant; just make sure it can't be conflated with "file server". + + +## Attachments: + +![](/images/icons/bullet_blue.gif) [index.png](/attachments/1049056/1146891.png) (image/png) +![](/images/icons/bullet_blue.gif) [info.png](/attachments/1049056/1146892.png) (image/png) +![](/images/icons/bullet_blue.gif) [warning.png](/attachments/1049056/1146893.png) (image/png) +![](/images/icons/bullet_blue.gif) [ToC-Readability.png](/attachments/1049056/4227078.png) (image/png) +![](/images/icons/bullet_blue.gif) [ToC-Readability.png](/attachments/1049056/4227079.png) (image/png) +![](/images/icons/bullet_blue.gif) [ToC-Readability.png](/attachments/1049056/4227077.png) (image/png)