JCEF Preview

JCEF preview allows the most advanced rich preview of AsciiDoc content.

This is available from IntelliJ 2020.2+ and plugin version 0.31.x.

Please update to IntelliJ 2020.3+ for best experience, as this fixes some limitations of earlier versions.

Why to use the JCEF preview

The JCEF preview provides better HTML preview and additional features like scroll-to-view and opening links in the browser. As the preview is based on an up-to-date Google Chrome rendering engine, it offers in-par rendering compared to modern browsers. This includes rendering of fonts and SVGs.

Security options

If the user changes the Safe mode in the plugin’s settings from UNSAFE to any other mode, the preview in JCEF and JavaFX mode will restrict all content to the local project and will prohibit loading of external content using a content security policy (CSP).

Activate the dev tools for the JCEF preview to debug issues where the preview doesn’t show content due to CSP.

Limitations of the JCEF preview

When using tool windows in undocked mode, the preview will overlap with the tool window. See issue #751 for details. It seems to be rooted in the platform. All plugins that use the JCEF preview (including JetBrains’s Markdown plugin) are affected. Please vote for the following issues to raise attention for this problem: IDEA-257702 and IDEA-252845.

The JCEF preview doesn’t support the IntelliJ proxy configuration prior to 2021.1. Configuring a proxy for JCEF requires an IDE restart. Therefore, remote images in the preview might not show if you are behind a proxy. See ‘Proxy issues with the JCEF preview’ for more information.

Once a JCEF preview is open in a project, it now and then brings the focus to the project when editing files in a different window in IntelliJ 2020.2. This is fixed in the 2020.2.4 and 2020.3 release. See JetBrains issue “JCEF: steals focus from a different frame” for more information.

On MacOS there is no copy-and-paste from the JCEF preview in IntelliJ 2020.2. This is fixed in IntelliJ 2020.3 (see issues IDEA-241604 and asciidoctor-intellij-plugin/#322). As a workaround, open the preview in the browser by clicking on your favorite browser symbol when hovering in the upper right corner of the editor and copy the contents from the browser window.

Benefits of the JCEF preview

JCEF preview is an embedded Chrome browser. After enabling the internal mode users can right-click on the preview and use “Open DevTools”. This opens a fully equipped Chrome developer tools window that allows users to inspect the HTML created in the preview and to view the JavaScript console of the preview.

When you can use JCEF preview

JCEF preview is only available from IntelliJ 2020.2+ and plugin version 0.31.x. It requires that the user runs on the pre-packaged JetBrains OpenJDK 11.

Selecting a different JetBrains JDK using the “Choose Runtime” plugin

This is recommended for Android Studio 4.2 that doesn’t ship with either JavaFX or JCEF support. You can watch this issue in Android Studio’s issue tracker for the progress.

JavaFX preview that used to work with Android Studio 4.0 will not work with Android Studio 4.2 as it doesn’t package the necessary classes in the IDE. Therefore, follow these steps to enable JCEF preview for Android Studio.

  • Install the plugin “Choose Runtime” as described in the JetBrains knowledge base “Selecting the JDK version the IDE will run under”.

  • Choose a runtime "jbrsdk-11_0_…​tar.gz" or later and install it. The IDE will restart.

  • Go to the settings of the AsciiDoc plugin and check if the preview is set to “JCEF Browser”. Change it to “JCEF Browser” if this is not the case.