mirror of https://github.com/zulip/zulip.git
467 lines
17 KiB
Markdown
467 lines
17 KiB
Markdown
|
# General user documentation
|
||
|
|
||
|
Our goal is for Zulip to have complete, high-quality user-facing
|
||
|
documentation about how to use every feature and how to do common
|
||
|
tasks (like setting up a new Zulip organization well). This system is
|
||
|
designed to make writing and maintaining such documentation highly
|
||
|
efficient.
|
||
|
|
||
|
The user documentation is available under `/help/` on any Zulip
|
||
|
server;
|
||
|
(e.g. [https://chat.zulip.org/help/](https://chat.zulip.org/help/) or
|
||
|
`http://localhost:9991/help/` in the Zulip development environment).
|
||
|
The user documentation is not hosted on ReadTheDocs, since Zulip
|
||
|
supports running a server completely disconnected from the Internet,
|
||
|
and we'd like the documentation to be available in that environment.
|
||
|
|
||
|
The source for this user documentation is the Markdown files under
|
||
|
`templates/zerver/help/` in the
|
||
|
[main Zulip server repository](https://github.com/zulip/zulip). The
|
||
|
file `foo.md` is automatically rendered by the `render_markdown_path`
|
||
|
function in `zerver/templatetags/app_filters.py` when the user
|
||
|
accesses a URL of the form `/help/foo`; with special cases for
|
||
|
`/help/` going to `index.md` and `/help/unknown_article` going to
|
||
|
`missing.md` (with a 404 response). Images are usually linked from
|
||
|
`static/images/help/`.
|
||
|
|
||
|
This means that you can contribute to the Zulip user documentation by
|
||
|
just adding to or editing the collection of markdown files under
|
||
|
`templates/zerver/help`. If you have the Zulip development
|
||
|
environment setup, you simply need to reload your browser on
|
||
|
`http://localhost:9991/help/foo` to see the latest version of `foo.md`
|
||
|
rendered.
|
||
|
|
||
|
Since raw HTML is supported in Markdown, you can include arbitrary
|
||
|
HTML in your documentation in order to do fancy things like
|
||
|
highlighting an important aspect of your code. We'll likely add a
|
||
|
library of common components over time, which will be documented
|
||
|
below.
|
||
|
|
||
|
### Supported features
|
||
|
|
||
|
* All the usual features of Markdown with raw HTML enabled so you can
|
||
|
do custom things with HTML/CSS as needed. The goal is to make
|
||
|
reusable markdown syntax for things we need often, though.
|
||
|
* Code blocks with syntax highlighting, similar to Zulip's own markdown.
|
||
|
* Anchor tags for linking to headers in other documents.
|
||
|
* You can create special highlight warning blocks using e.g.:
|
||
|
```
|
||
|
!!! warn "title of warning"
|
||
|
Body of warning
|
||
|
```
|
||
|
|
||
|
to create a special warning block with title "title of warning" to
|
||
|
highlight something important. The whitespace is important. Often,
|
||
|
we just use "" as the title. `!!! tip "title"` is useful for less
|
||
|
scary tips. See
|
||
|
[the python-markdown docs on this extension](https://pythonhosted.org/Markdown/extensions/admonition.html)
|
||
|
for details on how this extension works; essentially the value
|
||
|
`warn` or `tip` is an extra CSS class added to the admonition.
|
||
|
|
||
|
#### Macros
|
||
|
|
||
|
**Macros** are elements in the format of `{!macro.md!}` that insert common phrases
|
||
|
and steps at the location of the macros.
|
||
|
|
||
|
##### **Administration** `{!admin.md!}` macro
|
||
|
|
||
|
* **About:** Links to the **Edit Administrator Settings** documentation. Usually
|
||
|
preceded by the [**Go to the** macro](#go-to-the-go-to-the-md-macro) and a link to a
|
||
|
particular section on the **Administration** page.
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
tab of the [Administration](/help/edit-administrator-settings) page.
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!go-to-the.md!} [Organization Settings](/#administration/organization-settings)
|
||
|
{!admin.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. Go to the [OrganizationSettings](/#administration/organization-settings) tab of the
|
||
|
[Administration](/help/edit-administrator-settings) page.
|
||
|
```
|
||
|
|
||
|
##### **All streams** `{!all-sreams.md!}` macro
|
||
|
|
||
|
* **About:** Explains how to view all streams in the organization on the
|
||
|
**Subscriptions** page. Usually formatted as a tip and preceded by the
|
||
|
[**Subscriptions** macro](#subscriptions-subscriptions-md-macro) and the
|
||
|
[**Filter streams** macro](#filter-streams-filter-streams-md-macro).
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
If you wish to see streams that you aren't subscribed to, click on the
|
||
|
**All streams** tab; the tab will turn gray upon doing so.
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
|
||
|
```.md
|
||
|
{!subscriptions.md!}
|
||
|
{!filter-streams.md!}
|
||
|
!!! tip ""
|
||
|
{!all-streams.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. [Find the relevant stream](/help/browse-and-join-streams#browse-streams) on the
|
||
|
[Subscriptions](/#subscriptions) page. You can search for specific streams by entering the
|
||
|
name of the stream in the **Filter streams** input.
|
||
|
!!! tip ""
|
||
|
If you wish to see streams that you aren't subscribed to, click on the
|
||
|
**All streams** tab; the tab will turn gray upon doing so.
|
||
|
```
|
||
|
|
||
|
##### **Down chevron** `{!down-chevron.md!}` macro
|
||
|
|
||
|
* **About:** Instructs readers to click on the down chevron (<i class="fa
|
||
|
fa-chevron-down"></i>) icon to reveal an actions dropdown; usually preceded by
|
||
|
an command, such as the [**Message actions**
|
||
|
macro](#message-actions-message-actions-md-macro).
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
down chevron (<i class="icon-vector-chevron-down"></i>) icon to reveal an actions dropdown.
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!message-actions.md!}
|
||
|
{!down-chevron.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. Hover over a message to replace the message's timestamp with its message
|
||
|
actions, represented by three icons. From the icons that appear, select the
|
||
|
down chevron (<i class="icon-vector-chevron-down"></i>) icon to reveal an actions dropdown.
|
||
|
```
|
||
|
|
||
|
##### **Go to the** `{!go-to-the.md}` macro
|
||
|
|
||
|
* **About:** Usually precedes the [**Settings** macro](#settings-settings-md-macro)
|
||
|
or the [**Administration** macro](#administration-admin-md-macro). Transforms
|
||
|
following content into a step.
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
1. Go to the
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!go-to-the.md!} [Notifications](/#settings/notifications)
|
||
|
{!settings.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. Go to the [Notifications](/#settings/notifications) tab on the
|
||
|
[Settings](/help/edit-settings) page.
|
||
|
```
|
||
|
|
||
|
##### **Filter streams** `{!filter-streams.md!}` macro
|
||
|
|
||
|
* **About:** Explains how to search for specific streams in the
|
||
|
**Subscriptions** page using the **Filter streams** input. Usually preceded by
|
||
|
the [**Subscriptions** macro](#subscriptions-subscriptions-md-macro).
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
You can search for specific streams by entering the name of the stream in
|
||
|
the **Filter streams** input.
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!subscriptions.md!}
|
||
|
{!filter-streams.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. [Find the relevant stream](/help/browse-and-join-streams#browse-streams) on the
|
||
|
[Subscriptions](/#subscriptions) page. You can search for specific streams by entering the
|
||
|
name of the stream in the **Filter streams** input.
|
||
|
```
|
||
|
|
||
|
##### **Follow steps** `{!follow-steps.md!}` macro
|
||
|
|
||
|
* **About:** Prepends phrases with instructions to follow the following steps.
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
Follow the following steps to
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!follow-steps.md!} change your mobile notification settings.
|
||
|
```
|
||
|
```.md
|
||
|
Follow the following steps to change your mobile notification settings.
|
||
|
```
|
||
|
|
||
|
##### **Message actions** `{!message-actions.md!}` macro
|
||
|
|
||
|
* **About:** Explains how to view the actions of message. Usually followed by an instruction
|
||
|
to click a specific icon, such as the [**Down chevron** macro](#down-chevron-down-chevron-md-macro).
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
1. Hover over a message to replace the message's timestamp with its message
|
||
|
actions, represented by three icons. From the icons that appear, select the
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!message-actions.md!}
|
||
|
{!down-chevron.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. Hover over a message to replace the message's timestamp with its message
|
||
|
actions, represented by three icons. From the icons that appear, select the
|
||
|
down chevron (<i class="icon-vector-chevron-down"></i>) icon to reveal an actions dropdown.
|
||
|
```
|
||
|
|
||
|
##### **Save changes** `{!save-changes.md!}` macro
|
||
|
|
||
|
* **About:** Used in documentation that requests users to save their changes
|
||
|
by pressing the **Save changes** button. Usually followed by a phrase
|
||
|
describing the settings they modified.
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
1. Click on the **Save changes** button to save any changes you made to
|
||
|
your
|
||
|
```
|
||
|
|
||
|
* Standard usage and rendering:
|
||
|
```.md
|
||
|
{!save-changes.md!} notification settings.
|
||
|
```
|
||
|
```.md
|
||
|
1. Click on the **Save changes** button to save any changes you made to
|
||
|
your notification settings.
|
||
|
```
|
||
|
|
||
|
##### **Settings** `{!settings.md!}` macro
|
||
|
|
||
|
* **About:** Links to the **Edit Settings** documentation. Usually preceded by
|
||
|
the [**Go to the** macro](#go-to-the-go-to-the-md-macro) and a link to a
|
||
|
particular section on the **Settings** page.
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
tab on the [Settings](/help/edit-settings) page.
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!go-to-the.md!} [Notifications](/#settings/notifications)
|
||
|
{!settings.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. Go to the [Notifications](/#settings/notifications) tab on the
|
||
|
[Settings](/help/edit-settings) page.
|
||
|
```
|
||
|
|
||
|
##### **Stream actions** `{!stream-actions.md!}` macro
|
||
|
|
||
|
* **About:** Explains how to view the actions of stream. Usually followed by the an
|
||
|
instruction and the [**Down chevron** macro](#down-chevron-down-chevron-md-macro).
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
1. On the left sidebar in the **Streams** section, hover over a stream to reveal
|
||
|
a down chevron (<i class="icon-vector-chevron-down"></i>) icon to the right of
|
||
|
the stream name.
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!stream-actions.md!}
|
||
|
|
||
|
1. Click on the {!down-chevron.md!}
|
||
|
```
|
||
|
|
||
|
```.md
|
||
|
1. On the left sidebar in the **Streams** section, hover over a stream to reveal
|
||
|
a down chevron (<i class="icon-vector-chevron-down"></i>) icon to the right of
|
||
|
the stream name.
|
||
|
|
||
|
2. Click on the down chevron (<i class="icon-vector-chevron-down"></i>)
|
||
|
icon to reveal an actions dropdown.
|
||
|
```
|
||
|
|
||
|
##### **Stream settings** `{!stream-settings.md!}` macro
|
||
|
|
||
|
* **About:** Notifies readers about the changes in the
|
||
|
**Subscriptions** page when a stream is selected; usually followed
|
||
|
by an instruction.
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
the right side of the [Subscriptions](/#subscriptions) page, labeled
|
||
|
**Stream settings**, will now display the selected stream's settings.
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
1. Click on the stream you want to edit; {!stream-settings.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. Click on the stream you want to edit; the right side of the
|
||
|
[Subscriptions](/#subscriptions) page, labeled **Stream settings**, will
|
||
|
now display the selected stream's settings.
|
||
|
```
|
||
|
|
||
|
##### **Stream settings scroll** `{!stream-settings.md!}` macro
|
||
|
|
||
|
* **About:** Instructs readers to scroll down to a particular section on the
|
||
|
**Subscriptions** page after making sure their cursors are hovering above the
|
||
|
**Streams Settings** section.
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
1. After making sure that your cursor is hovering over the **Streams Settings**
|
||
|
section, scroll down to the
|
||
|
```
|
||
|
|
||
|
* **Example usage and rendering:**
|
||
|
```.md
|
||
|
{!stream-settings-scroll.md!} **Stream membership** section. This section
|
||
|
shows the usernames and emails of all users that are currently subscribed to the
|
||
|
selected stream.
|
||
|
```
|
||
|
```.md
|
||
|
1. After making sure that your cursor is hovering over the **Streams Settings**
|
||
|
section, scroll down to the **Stream membership** section. This section
|
||
|
shows the usernames and emails of all users that are currently subscribed to the
|
||
|
selected stream.
|
||
|
```
|
||
|
|
||
|
##### **Subscriptions** `{!subscriptions.md!}` macro
|
||
|
|
||
|
* **About:** Used in documentation that direct users to the **Subscriptions** page.
|
||
|
Often followed by the [**Filter streams** macro](#filter-streams-filter-streams-md-macro).
|
||
|
|
||
|
* **Contents:**
|
||
|
```.md
|
||
|
1. [Find the relevant stream](/help/browse-and-join-streams#browse-streams) on
|
||
|
the [Subscriptions](/#subscriptions) page.
|
||
|
```
|
||
|
|
||
|
* Standard usage and rendering:
|
||
|
```.md
|
||
|
{!subscriptions.md!}
|
||
|
{!filter-streams.md!}
|
||
|
```
|
||
|
```.md
|
||
|
1. [Find the relevant stream](/help/browse-and-join-streams#browse-streams) on the
|
||
|
[Subscriptions](/#subscriptions) page. You can search for specific streams by entering the
|
||
|
name of the stream in the **Filter streams** input.
|
||
|
```
|
||
|
|
||
|
### Style guide
|
||
|
|
||
|
* Names of buttons, fields, etc. should be **bolded** (e.g. **Settings**
|
||
|
page, **Change password** button, **Email** field). No quotation marks
|
||
|
should be used.
|
||
|
|
||
|
* All multi-step instructions should be formatted as a series of
|
||
|
numbered steps. E.g.:
|
||
|
```
|
||
|
1. Do something
|
||
|
2. Do the next thing.
|
||
|
```
|
||
|
Keep the steps simple — "do X, then Y, then Z" is three steps, not one.
|
||
|
|
||
|
* Images and additional notes or instructions are kept within a single step by
|
||
|
indenting them.
|
||
|
|
||
|
* Keep in mind that the UI may change — don't describe it in more detail
|
||
|
than is needed.
|
||
|
* Never refer specifically to button colors.
|
||
|
|
||
|
* All icons should be referenced by their names and their [FontAwesome](http://fontawesome.io)
|
||
|
(version 3.0.2) text icons within parentheses.
|
||
|
* cog (<i class="fa fa-cog"></i>) icon — `cog (<i
|
||
|
class="icon-vector-cog"></i>) icon`
|
||
|
* down chevron (<i class="fa fa-chevron-down"></i>) icon —
|
||
|
`down chevron (<i class="icon-vector-chevron-down"></i>) icon`
|
||
|
* eye (<i class="fa fa-eye"></i>) icon — `eye (<i
|
||
|
class="icon-vector-eye-open"></i>) icon`
|
||
|
* file (<i class="fa fa-file-text-o"></i>) icon — `file (<i
|
||
|
class="icon-vector-file-text-alt"></i>) icon`
|
||
|
* filled star (<i class="fa fa-star"></i>) icon —
|
||
|
`filled star (<i class="icon-vector-star"></i>) icon`
|
||
|
* formatting (<i class="fa fa-font"></i>) icon —
|
||
|
`formatting (<i class="icon-vector-font"></i>) icon`
|
||
|
* menu (<i class="fa fa-bars"></i>) icon — `menu (<i
|
||
|
class="icon-vector-reorder"></i>) icon`
|
||
|
* overflow ( <i class="fa fa-ellipsis-v"></i> ) icon —
|
||
|
`overflow ( <i class="icon-vector-ellipsis-verical"></i> ) icon`
|
||
|
* paperclip (<i class="fa fa-paperclip"></i>) icon —
|
||
|
`paperclip (<i class="icon-vector-paperclip"></i>) icon`
|
||
|
* pencil (<i class="fa fa-pencil"></i>) icon —
|
||
|
`pencil (<i class="icon-vector-pencil"></i>) icon`
|
||
|
* pencil and paper (<i class="fa fa-pencil-square-o"></i>) icon —
|
||
|
`pencil and paper (<i class="icon-vector-edit"></i>) icon`
|
||
|
* plus (<i class="fa fa-plus"></i>) icon —
|
||
|
`plus (<i class="icon-vector-plus"></i>) icon`
|
||
|
* smiley face (<i class="fa fa-smile-o"></i>) icon —
|
||
|
`smiley face (<i class="icon-vector-smile"></i>) icon`
|
||
|
* star (<i class="fa fa-star-o"></i>) icon —
|
||
|
`star (<i class="icon-vector-star-empty"></i>) icon`
|
||
|
* trash (<i class="fa fa-trash-o"></i>) icon —
|
||
|
`trash (<i class="icon-vector-trash"></i>) icon`
|
||
|
* x (<i class="fa fa-times"></i>) icon —
|
||
|
`x (<i class="icon-vector-remove"></i>) icon`
|
||
|
|
||
|
* Guidelines for **tips** and **warnings**:
|
||
|
|
||
|
* A **tip** is any suggestion for the user that is not part of the main
|
||
|
set of instructions. E.g. it may address a common problem users may
|
||
|
encounter while following the instructions, or point to an option
|
||
|
for power users.
|
||
|
* A **warning** is a note on what happens when there is some kind of problem.
|
||
|
Tips are more common than warnings.
|
||
|
* All tips/warnings should appear inside tip/warning blocks.
|
||
|
They should not be included as
|
||
|
part of the numbered instructions or displayed in plain paragraphs.
|
||
|
* There should be only one tip/warning inside each block. It is perfectly
|
||
|
fine to use multiple consecutive tip boxes.
|
||
|
* Generally, no title for the tip/warning block is needed.
|
||
|
* Example **tip** from the sign-in doc page:
|
||
|
```
|
||
|
!!! tip ""
|
||
|
If you've forgotten your password, see the
|
||
|
[Change your password](/help/change-your-password) page for
|
||
|
instructions on how to reset it.
|
||
|
```
|
||
|
* Other examples of **tips**:
|
||
|
* Your topic name can be no longer than 52 characters.
|
||
|
* If you are unsure of the code for any particular emoji visit Emoji
|
||
|
Cheat Sheet for a complete list.
|
||
|
* Example **warning**:
|
||
|
```
|
||
|
!!! warn ""
|
||
|
If you attempt to input a nonexistent stream name, an error
|
||
|
message will appear.
|
||
|
```
|
||
|
|
||
|
* **Screenshot** guidelines:
|
||
|
* Only include a screenshot if it will help guide the user. E.g. include a
|
||
|
screenshot if the user needs to find a button in the corner. Don't
|
||
|
include a screenshot if the element the user needs to interact with is
|
||
|
the only thing on the page. Using too many screenshots creates problems:
|
||
|
* **Maintenance**: The screen shot has to be updated every time the UI
|
||
|
is changed.
|
||
|
* It makes the instructions look longer and therefore more complicated.
|
||
|
* Never include the whole Zulip window in a screenshot. Focus on the
|
||
|
relevant part of the app.
|
||
|
* The screenshot should always come *after* the text that describes it,
|
||
|
never before. E.g.:
|
||
|
|
||
|
1. Click the **Sign in with Google** button located under the **Login**
|
||
|
button and **Forgot your password?** link.
|
||
|
|
||
|
![Zulip sign in Google](/images/signin-google.png)
|