A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://plugins.jetbrains.com/docs/intellij/sdk-style.html below:

SDK Docs Style Guide | IntelliJ Platform Plugin SDK

SDK Docs Style Guide

This document describes the writing style used in authoring open-source IntelliJ Platform SDK documentation. Before you begin, read this page thoroughly, as well as the Code of Conduct and License documents. See also Contributing to the IntelliJ Platform SDK for some general remarks.

For information about contributing to the IntelliJ Platform itself, visit Contributing to the IntelliJ Platform.

First and foremost, we should keep in mind our audience and their objectives: Someone reading technical content is usually looking to answer a specific question. That question might be broad or narrowly-focused, but either way, our goal is to provide answers without distraction.

To verify grammar and correct spelling, it is highly recommended to use Grazie Professional plugin to highlight any issues on-the-fly in the IDE.

Documentation Markup

The documentation project is using Writerside, so the plugin should be installed to have full support in the IDE. The topic files themselves are Markdown files (*.md) using some Writerside-specific custom tags (see below).

Page Format

Each Markdown file must start with a copyright notice, formatted using HTML comment notation:

<!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->

It must be followed by a header defining its title using a level 1 heading:

# Contributing to the IntelliJ Platform SDK

The page title should be as concise as possible, so it can be reused in the Table of Contents as is.

Excerpt

Every page should provide a short excerpt (usually one sentence) using the dedicated <link-summary> tag before the main page contents:

<link-summary>Defining groups of related settings.</link-summary>

Highlighted Links

A page can highlight related topics and other important links before the actual content using the <tldr> tag. Links must be grouped using " Bold Category Name: link1, link2, \[...]" (Example).

Use Reference to link to other topics, Code to link to code/files, UI Guidelines for links to UI Guidelines, and Product Help for links to IntelliJ IDEA Help.

Introductory Text

Do not use headings like Introduction, Overview, etc. for any introductory text.

Content Style Terminology

Consistent terminology helps the reader grasp new concepts more quickly:

TODO/todo comments are discouraged in the main branch of intellij-sdk-docs. There are always exceptions, but the best practice is to resolve all TODOs before the final review. If immediate resolution isn't possible, write a YouTrack SDK Issue that captures the TODO and remove the comment from the document.

Text Format Conventions

Start every sentence on a new line. For very long sentences, add additional line breaks after ,, : or other sensible places. Very long links should also be on a separate line.

Consistent text styles are used to standardize references and keywords:

See Guidelines for Highlighting Syntax for best practices for representing code fragments. See Links to IntelliJ Platform Source for more details about representing names of source files in links.

Links

Links are handled as standard Markdown links and can be anchored to external sites, pages within the site, or headings in the pages.

When a Markdown header is converted to an HTML header, it is assigned an ID so that it can be linked. For example, ## Basics gets the ID of basics, and can be linked either on the same page or cross-page as described below.

In some cases (e.g., the same heading text appears multiple times on the same page), it is necessary to specify a distinct ID manually:

## Task 1 ### Properties {#task1-properties} [...] ## Task 2 ### Properties {#task2-properties} [...]

General Links

General Markdown links have the default Markdown link style:

Links to IntelliJ Platform Source

Links to files in the IntelliJ Platform (intellij-community) repository use the %gh-ic% prefix instead of the full URL to the repository. Links to files in source code packages in other GitHub repositories follow the same rules, except the links use a different custom gh-... prefix defined in v.list.

Guidelines for Highlighting Syntax

In-paragraph code fragments and IntelliJ Platform APIs are formatted according to the following rules.

Code Extension Points

Use <include from="snippets.topic" element-id="ep"><var name="ep" value="com.intellij.annotator"/></include> snippet to introduce EP:

Use <include from="snippets.topic" element-id="epLink"><var name="ep" value="com.intellij.annotator"/></include> for variant without "extension point" suffix:

XML

For XML elements, use the tag notation with syntax highlighting: <idea-version>. Attributes are shown with syntax highlighting, and attribute values are shown in quotes: since-build="191"

Source Code

Source code is represented by using code fences, which are three backticks.

Syntax highlighting is applied by specifying the language after the first set of ticks:

```xml <tagName attribute="value">XML Text</tagName> ```

Supported languages include xml, java, kotlin, groovy, bash, md, php, and text for plaintext.

Source code blocks must have one blank line before and after them and must have a language specification for highlighting (use text as fallback).

Whole files can be imported on a page using the src attribute after code fences specifying the full path relative to the code_samples root folder.

{src="simple_language_plugin/src/main/java/org/intellij/sdk/language/SimpleFoldingBuilder.java"}

The advantage is the code can come from the code_samples directory, so it will be live code that isn't silently stale.

The disadvantage is the file may contain a large class, too large for the documentation page to be useful. If possible, use include-symbol="ClassName" to show only the class body without any headers and imports. To include only a specific method, specify include-symbol="methodName" additionally.

In any case, keep code samples concise and avoid any unnecessary "surrounding" code or import statements.

Tables

The syntax is to use the pipe (|) and hyphen symbols:

| Column 1 | Column 2 | Column 3 | |----------|----------|----------| | Blah | Blah | Blah |

Use &#124; instead of | to prevent escaping problems for <ui-path> elements inside cells.

Use <p>Line 1</p><p>Line 2</p> for multi-line content in a cell.

Notes and Callouts

Notes and callouts can be specified using the blockquote syntax. The converter looks at the type attribute specified after the text block. If so, it applies a callout style. The example below will be displayed as a callout, styled as a "note":

> This is a simple note. > {style="note"}

This is a simple note.

The styles available for callouts are:

Complex callouts can also specify the title attribute:

> This is a note. > We have a lot of text. > Don't make everyone read it fully by adding a good title. > {title="A useful title"}

This is a note. We have a lot of text. Don't make everyone read it fully by adding a good title.

Images

Every page typically has a dedicated subdirectory within root /images.

Images in this documentation are generally screenshots. For consistency, images should be 296, 460, or 706 pixels wide. The preferred image format is PNG at a resolution of 144 DPI. A resolution of 72 DPI is acceptable but may look blurry on high-resolution monitors.

Use Window Resizer plugin for exact resizing of the IDE application window.

It is crucial to reduce the size of image files to prevent bloating the repository and impacting the performance of the documentation site. Optimize the image files using a tool such as the PNG optimizer plugin.

Images are embedded in a document by adding a Markdown link to the image like so:

![Alt text](image.png)

If the width of an image needs to be adjusted, it can be specified as follows:

![Alt text](image.png){width="42"}

Images too big to fit into the main content can have + overlay control to open a popup with the "zoomed" variant.

For PNG images, provide an additional zoomed variant image.zoomed.png with this notation:

![Alt text](image.png){thumbnail="true"}

For SVG images, use this notation:

![Alt text](image.svg){thumbnail-same-file="true"}

Other

Use a concise and neutral voice when describing topics:

Avoid directly addressing the reader and the author with "you", "your", "we", etc.

Table of Contents

The table of contents for the site is displayed in the tree view on the left side of the site, and it is generated from the ijs.tree file. The list can have nested items, which are displayed as child items in the table of contents.

If absolutely required, overriding the page title text to show in the table of contents is possible via the toc-title attribute.

Placeholders

If a node does not have its id attribute specified, it will still appear in the table of contents but will be greyed out and not clickable. It acts as a placeholder for a documentation item. A placeholder is useful to keep track of what should be documented but hasn't yet, and can be helpful to show readers that the topic exists but isn't yet documented (Pull Requests always welcome!).

Redirects

When renaming pages, redirects must be configured so existing bookmarks continue working. All existing links in other topics must be updated.

Specify the previous path(s) including .html extension in accepts-web-file-names attribute:

<toc-element id="themes_getting_started.md" accepts-web-file-names="themes.html,themes-intro.html"/>

10 April 2025


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4