Skip to content

Commit bc78700

Browse files
committed
[JEWEL-1277] Add FrontMatter metadata block support for Markdown
1 parent 70e5bae commit bc78700

39 files changed

Lines changed: 1298 additions & 74 deletions

File tree

.idea/modules.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/bazel-generated-file-list.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,7 @@ platform/jewel/int-ui/int-ui-standalone
646646
platform/jewel/int-ui/int-ui-standalone-tests
647647
platform/jewel/markdown/core
648648
platform/jewel/markdown/extensions/autolink
649+
platform/jewel/markdown/extensions/front-matter
649650
platform/jewel/markdown/extensions/gfm-alerts
650651
platform/jewel/markdown/extensions/gfm-strikethrough
651652
platform/jewel/markdown/extensions/gfm-tables

platform/build-scripts/src/org/jetbrains/intellij/build/productLayout/CommunityModuleSets.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ object CommunityModuleSets {
319319
module("intellij.platform.jewel.markdown.extensions.gfmAlerts")
320320
module("intellij.platform.jewel.markdown.extensions.gfmTables")
321321
module("intellij.platform.jewel.markdown.extensions.gfmStrikethrough")
322+
module("intellij.platform.jewel.markdown.extensions.frontMatter")
322323
module("intellij.platform.jewel.markdown.extensions.images")
323324
module("intellij.platform.jewel.markdown.core")
324325
}

platform/compose/markdown/BUILD.bazel

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jvm_library(
1818
"//platform/jewel/markdown/extensions/autolink",
1919
"//platform/jewel/markdown/extensions/gfm-alerts",
2020
"//platform/jewel/markdown/extensions/gfm-strikethrough",
21+
"//platform/jewel/markdown/extensions/front-matter",
2122
"//platform/jewel/markdown/extensions/gfm-tables",
2223
"//platform/jewel/markdown/extensions/images",
2324
"//platform/jewel/markdown/ide-laf-bridge-styling",
@@ -28,6 +29,7 @@ jvm_library(
2829
"//platform/jewel/markdown/extensions/autolink",
2930
"//platform/jewel/markdown/extensions/gfm-alerts",
3031
"//platform/jewel/markdown/extensions/gfm-strikethrough",
32+
"//platform/jewel/markdown/extensions/front-matter",
3133
"//platform/jewel/markdown/extensions/gfm-tables",
3234
"//platform/jewel/markdown/extensions/images",
3335
"//platform/jewel/markdown/ide-laf-bridge-styling",
@@ -51,6 +53,8 @@ jvm_library(
5153
"//platform/jewel/markdown/extensions/gfm-alerts:gfm-alerts_test_lib",
5254
"//platform/jewel/markdown/extensions/gfm-strikethrough",
5355
"//platform/jewel/markdown/extensions/gfm-strikethrough:gfm-strikethrough_test_lib",
56+
"//platform/jewel/markdown/extensions/front-matter",
57+
"//platform/jewel/markdown/extensions/front-matter:front-matter_test_lib",
5458
"//platform/jewel/markdown/extensions/gfm-tables",
5559
"//platform/jewel/markdown/extensions/gfm-tables:gfm-tables_test_lib",
5660
"//platform/jewel/markdown/extensions/images",
@@ -65,6 +69,7 @@ jvm_library(
6569
"//platform/jewel/markdown/extensions/autolink:autolink_test_lib",
6670
"//platform/jewel/markdown/extensions/gfm-alerts:gfm-alerts_test_lib",
6771
"//platform/jewel/markdown/extensions/gfm-strikethrough:gfm-strikethrough_test_lib",
72+
"//platform/jewel/markdown/extensions/front-matter:front-matter_test_lib",
6873
"//platform/jewel/markdown/extensions/gfm-tables:gfm-tables_test_lib",
6974
"//platform/jewel/markdown/extensions/images:images_test_lib",
7075
"//platform/jewel/markdown/ide-laf-bridge-styling:ide-laf-bridge-styling_test_lib",

platform/compose/markdown/intellij.platform.compose.markdown.iml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<orderEntry type="module" module-name="intellij.platform.jewel.markdown.extensions.autolink" exported="" />
3434
<orderEntry type="module" module-name="intellij.platform.jewel.markdown.extensions.gfmAlerts" exported="" />
3535
<orderEntry type="module" module-name="intellij.platform.jewel.markdown.extensions.gfmStrikethrough" exported="" />
36+
<orderEntry type="module" module-name="intellij.platform.jewel.markdown.extensions.frontMatter" exported="" />
3637
<orderEntry type="module" module-name="intellij.platform.jewel.markdown.extensions.gfmTables" exported="" />
3738
<orderEntry type="module" module-name="intellij.platform.jewel.markdown.extensions.images" exported="" />
3839
<orderEntry type="module" module-name="intellij.platform.jewel.markdown.ideLafBridgeStyling" exported="" />

platform/compose/markdown/resources/intellij.platform.compose.markdown.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<module name="intellij.platform.jewel.markdown.extensions.autolink" />
77
<module name="intellij.platform.jewel.markdown.extensions.images" />
88
<module name="intellij.platform.jewel.markdown.extensions.gfmAlerts" />
9+
<module name="intellij.platform.jewel.markdown.extensions.frontMatter" />
910
<module name="intellij.platform.jewel.markdown.extensions.gfmTables" />
1011
<module name="intellij.platform.jewel.markdown.extensions.gfmStrikethrough" />
1112
</dependencies>

platform/jewel/gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ commonmark-core = { module = "org.commonmark:commonmark", version.ref = "commonm
3232
commonmark-ext-autolink = { module = "org.commonmark:commonmark-ext-autolink", version.ref = "commonmark" }
3333
commonmark-ext-gfm-strikethrough = { module = "org.commonmark:commonmark-ext-gfm-strikethrough", version.ref = "commonmark" }
3434
commonmark-ext-gfm-tables = { module = "org.commonmark:commonmark-ext-gfm-tables", version.ref = "commonmark" }
35+
commonmark-ext-yaml-front-matter = { module = "org.commonmark:commonmark-ext-yaml-front-matter", version.ref = "commonmark" }
3536
detekt-api = { module = "io.gitlab.arturbosch.detekt:detekt-api", version.ref = "detekt" }
3637
detekt-core = { module = "io.gitlab.arturbosch.detekt:detekt-core", version.ref = "detekt" }
3738
detekt-test = { module = "io.gitlab.arturbosch.detekt:detekt-test", version.ref = "detekt" }
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
### auto-generated section `build intellij.platform.jewel.markdown.extensions.frontMatter` start
2+
load("//build:compiler-options.bzl", "create_kotlinc_options")
3+
load("@rules_jvm//:jvm.bzl", "jvm_library", "resourcegroup")
4+
5+
create_kotlinc_options(
6+
name = "custom_front-matter",
7+
opt_in = [
8+
"androidx.compose.ui.ExperimentalComposeUiApi",
9+
"androidx.compose.foundation.ExperimentalFoundationApi",
10+
"org.jetbrains.jewel.foundation.ExperimentalJewelApi",
11+
"org.jetbrains.jewel.foundation.InternalJewelApi",
12+
],
13+
x_context_parameters = True,
14+
x_explicit_api_mode = "strict"
15+
)
16+
17+
resourcegroup(
18+
name = "front-matter_resources",
19+
srcs = glob(["src/main/resources/**/*"]),
20+
strip_prefix = "src/main/resources"
21+
)
22+
23+
jvm_library(
24+
name = "front-matter",
25+
module_name = "intellij.platform.jewel.markdown.extensions.frontMatter",
26+
visibility = ["//visibility:public"],
27+
srcs = glob(["src/main/kotlin/**/*.kt", "src/main/kotlin/**/*.java", "src/main/kotlin/**/*.form"], allow_empty = True),
28+
resources = [":front-matter_resources"],
29+
kotlinc_opts = ":custom_front-matter",
30+
deps = [
31+
"@lib//:kotlin-stdlib",
32+
"//libraries/kotlinx/coroutines/core",
33+
"@lib//:jetbrains-annotations",
34+
"//platform/jewel/markdown/core",
35+
"//platform/jewel/markdown/extensions/gfm-tables",
36+
"//platform/jewel/ui",
37+
"//platform/jewel/foundation",
38+
"//libraries/compose-foundation-desktop",
39+
"//libraries/compose-runtime-desktop",
40+
],
41+
plugins = ["@lib//:compose-plugin"]
42+
)
43+
44+
jvm_library(
45+
name = "front-matter_test_lib",
46+
visibility = ["//visibility:public"],
47+
srcs = glob(["src/test/kotlin/**/*.kt", "src/test/kotlin/**/*.java", "src/test/kotlin/**/*.form"], allow_empty = True),
48+
kotlinc_opts = ":custom_front-matter",
49+
associates = [":front-matter"],
50+
deps = [
51+
"@lib//:kotlin-stdlib",
52+
"//libraries/kotlinx/coroutines/core",
53+
"//libraries/kotlinx/coroutines/core:core_test_lib",
54+
"@lib//:jetbrains-annotations",
55+
"//platform/jewel/markdown/core",
56+
"//platform/jewel/markdown/core:core_test_lib",
57+
"//platform/jewel/markdown/extensions/gfm-tables",
58+
"//platform/jewel/markdown/extensions/gfm-tables:gfm-tables_test_lib",
59+
"//platform/jewel/ui",
60+
"//platform/jewel/ui:ui_test_lib",
61+
"//platform/jewel/foundation",
62+
"//platform/jewel/foundation:foundation_test_lib",
63+
"//libraries/compose-foundation-desktop",
64+
"//libraries/compose-foundation-desktop:compose-foundation-desktop_test_lib",
65+
"//libraries/compose-runtime-desktop",
66+
"//libraries/compose-runtime-desktop:compose-runtime-desktop_test_lib",
67+
"//libraries/compose-foundation-desktop-junit",
68+
"//libraries/compose-foundation-desktop-junit:compose-foundation-desktop-junit_test_lib",
69+
"//libraries/junit4",
70+
"//libraries/junit4:junit4_test_lib",
71+
],
72+
plugins = ["@lib//:compose-plugin"]
73+
)
74+
### auto-generated section `build intellij.platform.jewel.markdown.extensions.frontMatter` end
75+
76+
### auto-generated section `test intellij.platform.jewel.markdown.extensions.frontMatter` start
77+
load("@community//build:tests-options.bzl", "jps_test")
78+
79+
jps_test(
80+
name = "front-matter_test",
81+
runtime_deps = [":front-matter_test_lib"]
82+
)
83+
### auto-generated section `test intellij.platform.jewel.markdown.extensions.frontMatter` end
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
*f:org.jetbrains.jewel.markdown.extensions.frontmatter.FrontMatterProcessorExtension
2+
- org.jetbrains.jewel.markdown.extensions.MarkdownProcessorExtension
3+
- sf:$stable:I
4+
- sf:INSTANCE:org.jetbrains.jewel.markdown.extensions.frontmatter.FrontMatterProcessorExtension
5+
- getBlockProcessorExtension():org.jetbrains.jewel.markdown.extensions.MarkdownBlockProcessorExtension
6+
- getParserExtension():org.commonmark.parser.Parser$ParserExtension
7+
- getTextRendererExtension():org.commonmark.renderer.text.TextContentRenderer$TextContentRendererExtension

platform/jewel/markdown/extensions/front-matter/api-dump.txt

Whitespace-only changes.

0 commit comments

Comments
 (0)