Skip to content

Commit 31a8666

Browse files
Transition: Nord JetBrains (#142)
Transition: Nord JetBrains
2 parents 9de7e7b + 92e8a65 commit 31a8666

File tree

113 files changed

+24058
-63
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+24058
-63
lines changed

.gatsby/onCreateNode.js

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@ const {
1616
nodeFields,
1717
optionalBlogPostImages,
1818
optionalBlogPostVideos,
19-
sourceInstanceTypes,
20-
requiredBlogPostImages
19+
requiredBlogPostImages,
20+
sourceInstanceTypes
2121
} = require("../src/config/internal/nodes");
22-
const { BASE_DIR_CONTENT, NODE_TYPE_MDX, REGEX_BLOG_POST_DATE } = require("../src/config/internal/constants");
22+
const {
23+
BASE_DIR_CONTENT,
24+
NODE_TYPE_IMAGE_SHARP,
25+
NODE_TYPE_MDX,
26+
REGEX_BLOG_POST_DATE
27+
} = require("../src/config/internal/constants");
2328
const { ROUTE_BLOG, ROUTE_DOCS } = require("../src/config/routes/mappings");
2429

2530
/**
@@ -51,6 +56,7 @@ const extractBlogPostDateFromPath = path => {
5156
*/
5257
const onCreateNode = ({ node, getNode, actions }) => {
5358
const { createNodeField } = actions;
59+
5460
if (node.internal.type === NODE_TYPE_MDX) {
5561
const contentFileResourceSlug = createFilePath({
5662
node,
@@ -163,6 +169,52 @@ const onCreateNode = ({ node, getNode, actions }) => {
163169
});
164170
}
165171
}
172+
173+
if (node.internal.type === NODE_TYPE_IMAGE_SHARP) {
174+
const contentFileResourceSlug = createFilePath({
175+
node,
176+
getNode,
177+
basePath: `${BASE_DIR_CONTENT}`,
178+
trailingSlash: false
179+
});
180+
const { relativeDirectory, sourceInstanceName } = getNode(node.parent);
181+
182+
if (sourceInstanceName === sourceInstanceTypes.images.id) {
183+
createNodeField({
184+
node,
185+
name: `${nodeFields.contentSourceType.name}`,
186+
value: `${sourceInstanceTypes.images.id}`
187+
});
188+
createNodeField({
189+
node,
190+
name: `${nodeFields.relativeDirectory.name}`,
191+
value: `${relativeDirectory}`
192+
});
193+
createNodeField({
194+
node,
195+
name: `${nodeFields.slug.name}`,
196+
value: contentFileResourceSlug
197+
});
198+
}
199+
200+
if (sourceInstanceName === sourceInstanceTypes.videos.id) {
201+
createNodeField({
202+
node,
203+
name: `${nodeFields.contentSourceType.name}`,
204+
value: `${sourceInstanceTypes.videos.id}`
205+
});
206+
createNodeField({
207+
node,
208+
name: `${nodeFields.relativeDirectory.name}`,
209+
value: `${relativeDirectory}`
210+
});
211+
createNodeField({
212+
node,
213+
name: `${nodeFields.slug.name}`,
214+
value: contentFileResourceSlug
215+
});
216+
}
217+
}
166218
};
167219

168220
module.exports = onCreateNode;
Loading

assets/images/ports/jetbrains/repository-hero.ai

Lines changed: 21834 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 8 additions & 0 deletions
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

content/docs/colors-and-palettes/index.mdx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { ReactComponent as ColorPalette } from "assets/images/illustrations/colo
44
import { palettes } from "styles/theme";
55
import { ROUTE_DOCS_SWATCHES, ROUTE_DOCS_USAGE } from "config/routes/mappings";
66

7+
import WIPNotice from "../../shared/docs/wip-notice";
8+
79
export const frontmatter = {
810
title: "Colors and Palettes",
911
subline:
@@ -20,6 +22,8 @@ export const frontmatter = {
2022

2123
<ShrinkedWidth value={80}>
2224

25+
<WIPNotice />
26+
2327
Nord consists of four named color palettes providing different syntactic meanings and color effects for dark & bright ambiance designs.
2428

2529
It has been created for **clear, uncluttered and elegant designs** following a **minimal and flat** style pattern.
Loading
Loading
Loading
Loading
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
import Button from "atoms/core/Button";
2+
import Link from "atoms/core/Link";
3+
import { Image, ShrinkedWidth, SpaceBox } from "atoms/core/mdx-elements";
4+
import { Kbd } from "atoms/core/html-elements";
5+
import { ReactComponent as WindowCode } from "assets/images/illustrations/window-code.svg";
6+
import { ROUTE_DOCS_PORTS_JETBRAINS_INSTALLATION } from "config/routes/mappings";
7+
8+
import WIPNotice from "../../../../shared/docs/wip-notice";
9+
10+
export const frontmatter = {
11+
title: "Plugin Development",
12+
subline: "Learn how to customize the theme to fit your needs, preview changes and export the plugin."
13+
};
14+
15+
<ShrinkedWidth value={25}>
16+
17+
<SpaceBox mTop={4} mBottom={4}>
18+
<WindowCode />
19+
</SpaceBox>
20+
21+
</ShrinkedWidth>
22+
23+
<ShrinkedWidth value={80}>
24+
25+
<WIPNotice />
26+
27+
This page documents how to develop the theme plugin — from requirements to the deployment and local installation steps.
28+
29+
# Requirements
30+
31+
Download and install [IntelliJ][jb-intellij] with a minimal version of [2019.1 or higher][jb-whatsnew-2019.1].
32+
33+
<Image dropShadow fillSize={75} fluid={props.images["intellij-splash-screen.png"]} rounded />
34+
35+
To develop IntelliJ platform plugins the [DevKit][jb-docs-sdk-devkit] plugin (bundled by default) must be enabled.
36+
37+
<Image dropShadow fluid={props.images["devkit-plugin.png"]} rounded />
38+
39+
# Setup
40+
41+
## Download
42+
43+
Clone the [_Nord JetBrains_ repository from GitHub][gh-repo] to any path:
44+
45+
```sh
46+
git clone https://github.com/arcticicestudio/nord-jetbrains.git
47+
```
48+
49+
To get the project without [Git][] download the project as `.zip` archive file from the GitHub repository or click on the download button below. Afterwards extract the archive to any path.
50+
51+
<Button href="https://github.com/arcticicestudio/nord-jetbrains/archive/develop.zip">Download</Button>
52+
53+
<Image
54+
alt="Screenshot showing the GitHub repository web UI to download the project repository"
55+
fillSize={60}
56+
fluid={props.images["github-clone.png"]}
57+
>
58+
Download the project repository from GitHub
59+
</Image>
60+
61+
Both methods will use the `develop` branch to work with the latest development state.
62+
63+
Import the project use IntelliJ's <Kbd>Open...</Kbd> wizard from the welcome screen and browse to the path of the cloned/extracted repository.
64+
65+
# Development
66+
67+
## Workflow
68+
69+
_Nord JetBrains_ follows the [official workflow documentation][jb-docs-sdk-ui-theme-workflow] to
70+
71+
1. [Customize the UI icons and Controls][jb-docs-sdk-ui-theme-customize]
72+
2. [Bundle the already existing editor color theme][jb-docs-sdk-editor-theme]
73+
3. [Build, debug and test the theme plugin][jb-docs-sdk-test-build]
74+
4. [Deploy and publish the theme plugin][jb-docs-sdk-deployment]
75+
76+
For details about the general UI design pattern please refer to the [JetBrains UI guidelines][jb-ui_guidelines].
77+
78+
## Theme Preview
79+
80+
IntelliJ comes with a builtin function to preview the currently opened platform plugin project.
81+
Open the [`nord.theme.json`][gh-repo-tree-dev-ui-theme] file and click on the _play_ icon to apply the current state of the UI theme.
82+
83+
<Image
84+
dropShadow
85+
alt="Screenshot showing the UI theme preview icon bar when the theme definition file is opened"
86+
fluid={props.images["ui-theme-preview.png"]}
87+
rounded
88+
>
89+
UI theme preview icon bar when the theme definition file is opened
90+
</Image>
91+
92+
To apply changes made while the preview is enabled click on the _double play_ icon and disable the preview again using using the _stop_ icon.
93+
94+
<Image
95+
dropShadow
96+
alt="Screenshot showing the enabled UI theme preview icon bar when the theme definition file is opened"
97+
fluid={props.images["ui-theme-preview-enabled.png"]}
98+
rounded
99+
>
100+
UI theme preview icon bar when enabled
101+
</Image>
102+
103+
## Visual Testing
104+
105+
The IntelliJ SDK provides a lot of tools to develop plugins by [enabling the internal mode][jb-docs-sdk-internal_mode] that will allow to show e.g. the [LaF Defaults][jb-docs-sdk-internal_mode_laf].
106+
107+
To enable the _internal mode_ open the [advanced IDE properties][jb-docs-ide_props] and add the following key-value pair:
108+
109+
```properties
110+
idea.is.internal=true
111+
```
112+
113+
Restart IntelliJ to enable the new property.
114+
115+
<Image
116+
dropShadow
117+
fillSize={50}
118+
alt="Screenshot showing the menu entry to edit the IDE properties"
119+
fluid={props.images["ide-props.png"]}
120+
rounded
121+
>
122+
Menu entry to edit the IDE properties
123+
</Image>
124+
125+
# Deployment
126+
127+
IntelliJ comes with builtin tools to build and deploy plugins.
128+
129+
1. Go to **Build** and **Build Project** to copy the project files to the `/out` folder and generate required metadata.
130+
2. Again go to **Build** and choose **Select All Plugin Modules For Deployment** to generate the JAR file.
131+
132+
<Image
133+
dropShadow
134+
fillSize={50}
135+
alt="Screenshot showing the menu entries for builtin tools to build and deploy platform plugins"
136+
fluid={props.images["build-deploy.png"]}
137+
rounded
138+
>
139+
Menu entries for builtin tools to build and deploy platform plugins
140+
</Image>
141+
142+
# Local Installation
143+
144+
A generated JAR file can be locally installed to use the theme without uploading it to the JetBrains plugin repository.
145+
Go to [Settings / Preferences][jb-docs-sett_prefs]**Plugins**, click on the gear icon and select „Install Plugin From Disk...“.
146+
147+
<Image
148+
dropShadow
149+
alt="Screenshot showing the menu to install plugins locally"
150+
fluid={props.images["install-local.png"]}
151+
rounded
152+
>
153+
Local plugin installation
154+
</Image>
155+
156+
Select the plugin JAR file and restart IntelliJ.
157+
158+
Follow the <Link to={ROUTE_DOCS_PORTS_JETBRAINS_INSTALLATION}>Installation & Activation Guide</Link> for more details how to enable the UI theme and editor color scheme.
159+
160+
</ShrinkedWidth>
161+
162+
[gh-repo-tree-dev-ui-theme]: https://github.com/arcticicestudio/nord-jetbrains/blob/develop/src/nord.theme.json
163+
[gh-repo]: https://github.com/arcticicestudio/nord-jetbrains
164+
[git]: https://git-scm.com
165+
[jb-docs-ide_props]: https://www.jetbrains.com/help/idea/tuning-the-ide.html
166+
[jb-docs-sdk-deployment]: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/deploying_plugin.html
167+
[jb-docs-sdk-devkit]: https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/using_dev_kit.html
168+
[jb-docs-sdk-editor-theme]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/ui_themes/themes_extras.html
169+
[jb-docs-sdk-internal_mode_laf]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/internal_actions/internal_ui_lafd.html
170+
[jb-docs-sdk-internal_mode]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/internal_actions/enabling_internal.html
171+
[jb-docs-sdk-test-build]: http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/running_and_debugging_a_plugin.html
172+
[jb-docs-sdk-ui-theme-customize]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/ui_themes/themes_customize.html
173+
[jb-docs-sdk-ui-theme-workflow]: http://www.jetbrains.org/intellij/sdk/docs/reference_guide/ui_themes/themes.html#custom-ui-theme-workflow
174+
[jb-docs-sett_prefs]: https://www.jetbrains.com/help/idea/settings-preferences-dialog.html
175+
[jb-intellij]: https://www.jetbrains.com/idea
176+
[jb-ui_guidelines]: https://jetbrains.github.io/ui
177+
[jb-whatsnew-2019.1]: https://www.jetbrains.com/idea/whatsnew/#v2019-1
Loading
Loading
Loading
Loading
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import Link from "atoms/core/Link";
2+
import { Banner, Image, ShrinkedWidth, SpaceBox } from "atoms/core/mdx-elements";
3+
import { Code, Kbd } from "atoms/core/html-elements";
4+
import { ReactComponent as Plugin } from "assets/images/illustrations/plugin.svg";
5+
6+
import WIPNotice from "../../../../shared/docs/wip-notice";
7+
8+
export const frontmatter = {
9+
title: "Installation & Activation",
10+
subline: "Get up and running in one click with the official JetBrains Plugin Repository."
11+
};
12+
13+
<ShrinkedWidth value={25}>
14+
15+
<SpaceBox mTop={4} mBottom={4}>
16+
<Plugin />
17+
</SpaceBox>
18+
19+
</ShrinkedWidth>
20+
21+
<ShrinkedWidth value={80}>
22+
23+
<WIPNotice />
24+
25+
<Banner
26+
title={
27+
<>
28+
Users with currently installed versions less or equal to <Code>0.4.0</Code> must reinstall the plugin!
29+
</>
30+
}
31+
variant="warn"
32+
>
33+
As of version <Code>0.5.0</Code> the{" "}
34+
<Link
35+
href="https://www.jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_configuration_file.html"
36+
variant="minimal"
37+
>
38+
plugin XML ID
39+
</Link>{" "}
40+
changed to better fit the package hierarchy naming scheme.
41+
This means plugin versions less or equal to <Code>0.4.0</Code> (old ID) won't receive updates automatically.
42+
43+
To update to the latest version and re-enable auto updates again it is **required to uninstall and install the plugin once**!
44+
45+
</Banner>
46+
47+
Thanks to the [official JetBrains Plugin Repository][jb-plug-repo-nord], _Nord JetBrains_ can be installed for all supported products with one click.
48+
49+
Go to [Settings / Preferences][jb-docs-sett_prefs]**Plugins**, switch to the **Marketplace** tab and search for `Nord`.
50+
51+
<Image dropShadow fluid={props.images["ui-plugins-marketplace.png"]} rounded />
52+
53+
Click on the <Kbd>Install</Kbd> button and restart the IDE to finish the installation.
54+
55+
<Image dropShadow fluid={props.images["ui-plugins-installed.png"]} rounded />
56+
57+
## Activation
58+
59+
_Nord JetBrains_ provides a UI theme and editor color scheme and allows both to be used individually.
60+
61+
### UI Theme
62+
63+
Beginning with the 2019.1 JetBrain product releases, [custom UI Themes][jb-docs-sdk-ui_theme] are available for all supported IDEs.
64+
65+
To activate Nord's UI theme go to [Settings / Preferences][jb-docs-sett_prefs]**Appearance & Behavior****Appearance**, select `Nord` from the _Theme_ drop-down menu and <Kbd>Apply</Kbd> the change.
66+
67+
<Image dropShadow fluid={props.images["ui-settings-appearance.png"]} rounded />
68+
69+
### Editor Color Scheme
70+
71+
Using a custom [color scheme][jb-docs-color_fonts] is a feature that has been supported almost since the first JetBrains product versions.
72+
73+
To activate Nord's editor color scheme go to [Settings / Preferences][jb-docs-sett_prefs]**Editor****Color Theme**, select `Nord` from the _Scheme_ drop-down menu and <Kbd>Apply</Kbd> the change.
74+
75+
<Image dropShadow fluid={props.images["ui-settings-color-scheme.png"]} rounded />
76+
77+
</ShrinkedWidth>
78+
79+
[jb-docs-color_fonts]: https://www.jetbrains.com/help/idea/configuring-colors-and-fonts.html
80+
[jb-docs-sdk-ui_theme]: https://www.jetbrains.org/intellij/sdk/docs/reference_guide/ui_themes/themes_intro.html
81+
[jb-docs-sett_prefs]: https://www.jetbrains.com/help/idea/settings-preferences-dialog.html
82+
[jb-plug-repo-nord]: https://plugins.jetbrains.com/plugin/10321-nord
83+
[jb-plug-repo]: https://plugins.jetbrains.com
Loading
Loading
Loading
Loading

content/docs/swatches/index.mdx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import { ShrinkedWidth, SpaceBox } from "atoms/core/mdx-elements";
44
import { ReactComponent as ColorSwatches } from "assets/images/illustrations/color-swatches-stripes.svg";
55
import { ROUTE_DOCS_COLOR_AND_PALETTES, ROUTE_DOCS_USAGE } from "config/routes/mappings";
66

7+
import WIPNotice from "../../shared/docs/wip-notice";
8+
79
export const frontmatter = {
810
title: "Swatches",
911
subline:
@@ -20,10 +22,11 @@ export const frontmatter = {
2022

2123
<ShrinkedWidth>
2224

25+
<WIPNotice />
26+
2327
Next to the many ways of <Link to={ROUTE_DOCS_USAGE}>integrating Nord into your project</Link>, all <Link to={ROUTE_DOCS_COLOR_AND_PALETTES}>color palettes of Nord</Link> are also available in various native color swatch formats.
2428

25-
> This is a _living document_ which means it is **work in progress**, not completed yet and **can change at any time** while the project is still in development!
26-
> There will also be detailed **install instructions** for all supported formats, but in the meantime please refer to the documentation of the specific application.
29+
For detailed install instructions of all supported formats please refer to the documentation of the specific application.
2730

2831
### Adobe Products
2932

0 commit comments

Comments
 (0)