Skip to content

Commit ac6a649

Browse files
authored
Merge pull request #1201 from Kotlin/kodex_iframes_fix
fix kodex iframes
2 parents f469c84 + b47cb31 commit ac6a649

7 files changed

+170
-6
lines changed

KDOC_PREPROCESSING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -695,7 +695,7 @@ function, interface, or class as HTML.
695695
The Markdown of the KDoc is rendered to HTML using [JetBrains/markdown](https://github.com/JetBrains/markdown) and, in
696696
the case of DataFrame, put in [./docs/StardustDocs/resources/snippets/kdocs](docs/StardustDocs/resources/snippets/kdocs).
697697
From there, the HTML can be included in any WriterSide page as an iFrame.
698-
This can be done using our custom `<dataFrame src=""/>` tag.
698+
This can be done using our custom `<inline-frame src=""/>` tag.
699699

700700
An example of the result can be found in the
701701
[DataFrame documentation](https://kotlin.github.io/dataframe/columnselectors.html#full-dsl-grammar).

core/src/test/kotlin/org/jetbrains/kotlinx/dataframe/explainer/SampleAggregator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fun main() {
99
it.nameWithoutExtension.startsWith("org.jetbrains")
1010
}
1111
// org.ClassName.functionName_properties
12-
// <dataFrame src="org.jetbrains.kotlinx.dataframe.samples.api.Modify.addDfs.html"/>
12+
// <inline-frame src="org.jetbrains.kotlinx.dataframe.samples.api.Modify.addDfs.html"/>
1313
.groupBy {
1414
it.nameWithoutExtension.substringBefore("_")
1515
}.mapValues { (name, files) ->

docs/StardustDocs/resources/snippets/kdocs/org.jetbrains.kotlinx.dataframe.api.ColumnsSelectionDsl.DslGrammar.ColumnGroupPartOfGrammar.ForHtml.html

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,47 @@
4343
color: #FFFFFFCC
4444
}
4545
</style>
46+
<script>
47+
function sendHeight() {
48+
const body = document.body;
49+
const html = document.documentElement;
50+
51+
const height = Math.max(
52+
body.scrollHeight,
53+
body.offsetHeight,
54+
html.clientHeight,
55+
html.scrollHeight,
56+
html.offsetHeight
57+
);
58+
59+
parent.postMessage({ type: 'iframeHeight', height }, '*');
60+
}
61+
62+
63+
function repeatHeightCalculation(maxRetries = 10, interval = 100) {
64+
let retries = 0;
65+
const intervalId = setInterval(() => {
66+
sendHeight();
67+
retries++;
68+
if (retries >= maxRetries) clearInterval(intervalId);
69+
}, interval);
70+
}
71+
72+
window.addEventListener('load', () => {
73+
repeatHeightCalculation();
74+
});
75+
76+
77+
const observer = new MutationObserver(() => repeatHeightCalculation(5, 50));
78+
observer.observe(document.body, {
79+
childList: true,
80+
subtree: true,
81+
characterData: true,
82+
attributes: true
83+
});
84+
85+
window.addEventListener('resize', sendHeight);
86+
</script>
4687
</head>
4788
<body><p><code><code>columnGroup</code></code></p><p>    <code>| </code><code><strong><code>[</code></strong></code><code><code>column</code></code><strong><code>,</code></strong><code> ..</code><code><strong><code>]</code></strong></code></p><p>    <code>| </code><code><strong><code>[</code></strong></code><strong><code>{ </code></strong><code><code>condition</code></code><strong><code> }</code></strong><code><strong><code>]</code></strong></code></p><p>    <code>| </code><code><strong><code>{</code></strong></code><code> </code><code><code>colsSelector</code></code><code> </code><code><strong><code>}</code></strong></code></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>allCols</code></strong></code><strong><code>()</code></strong></p><p>    <code>| </code><strong><code>.allCols</code></strong><code>(</code><code><strong><code>Before</code></strong></code><code>|</code><code><strong><code>After</code></strong></code><code>|</code><code><strong><code>From</code></strong></code><code>|</code><code><strong><code>UpTo</code></strong></code><code>) ( </code><strong><code>(</code></strong><code><code>column</code></code><strong><code>)</code></strong><code> | </code><strong><code>{ </code></strong><code><code>colSelector</code></code><strong><code> }</code></strong><code> )</code></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>allColsExcept</code></strong></code><strong><code> { </code></strong><code><code>colsSelector</code></code><strong><code> } </code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>allColsExcept</code></strong></code><strong><code>(</code></strong><code><code>columnNoAccessor</code></code><strong><code>,</code></strong><code> ..</code><strong><code>)</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>and</code></strong></code><strong><code> (</code></strong><code>|</code><strong><code>{ </code></strong><code><code>columnOrSet</code></code><strong><code> }</code></strong><code>|</code><strong><code>)</code></strong></p><p>    <code>| (</code><strong><code>.</code></strong><code><strong><code>col</code></strong></code><code>| </code><strong><code>.</code></strong><code><strong><code>valueCol</code></strong></code><code>| </code><strong><code>.</code></strong><code><strong><code>frameCol</code></strong></code><code>| </code><strong><code>.</code></strong><code><strong><code>colGroup</code></strong></code><code>)[</code><strong><code>&lt;</code></strong><code><code>T</code></code><strong><code>&gt;</code></strong><code>]</code><strong><code>(</code></strong><code><code>column</code></code><code> | </code><code><code>index</code></code><strong><code>)</code></strong></p><p>    <code>| (</code><strong><code>.</code></strong><code><strong><code>cols</code></strong></code><code>| </code><strong><code>.</code></strong><code><strong><code>valueCols</code></strong></code><code>| </code><strong><code>.</code></strong><code><strong><code>frameCols</code></strong></code><code>| </code><strong><code>.</code></strong><code><strong><code>colGroups</code></strong></code><code>) [ </code><strong><code>{ </code></strong><code><code>condition</code></code><strong><code> }</code></strong><code> ]</code></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>cols</code></strong></code><code>[</code><strong><code>&lt;</code></strong><code><code>T</code></code><strong><code>&gt;</code></strong><code>]</code><strong><code>(</code></strong><code><code>column</code></code><strong><code>,</code></strong><code>.. |</code><code><code>index</code></code><strong><code>,</code></strong><code>.. |</code><code><code>indexRange</code></code><strong><code>)</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>colsAtAnyDepth</code></strong></code><code> [ </code><strong><code>{ </code></strong><code><code>condition</code></code><strong><code> }</code></strong><code> ]</code></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>colsInGroups</code></strong></code><code> [ </code><strong><code>{ </code></strong><code><code>condition</code></code><strong><code> }</code></strong><code> ]</code></p><p>    <code>| </code><strong><code>.colsName</code></strong><code>(</code><code><strong><code>Starts</code></strong></code><code>|</code><code><strong><code>Ends</code></strong></code><code>)</code><strong><code>With</code></strong><strong><code>(</code></strong><code><code>text</code></code><code>[</code><strong><code>, </code></strong><code><code>ignoreCase</code></code><code>]</code><strong><code>)</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>colsNameContains</code></strong></code><strong><code>(</code></strong><code><code>text</code></code><code>[</code><strong><code>, </code></strong><code><code>ignoreCase</code></code><code>] | </code><code><code>regex</code></code><strong><code>)</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>colsOfKind</code></strong></code><strong><code>(</code></strong><code><code>kind</code></code><strong><code>,</code></strong><code> ..</code><strong><code>)</code></strong><code> [ </code><strong><code>{ </code></strong><code><code>condition</code></code><strong><code> }</code></strong><code> ]</code></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>colsWithoutNulls</code></strong></code><strong><code>()</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>drop</code></strong></code><code>(</code><code><strong><code>Last</code></strong></code><code>)</code><code><strong><code>Cols</code></strong></code><strong><code>(</code></strong><code><code>number</code></code><strong><code>)</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>drop</code></strong></code><code>(</code><code><strong><code>Last</code></strong></code><code>)</code><code><strong><code>ColsWhile</code></strong></code><strong><code> { </code></strong><code><code>condition</code></code><strong><code> }</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>except</code></strong></code><strong><code> { </code></strong><code><code>colsSelector</code></code><strong><code> } </code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>except</code></strong></code><strong><code>(</code></strong><code><code>columnNoAccessor</code></code><strong><code>,</code></strong><code> ..</code><strong><code>)</code></strong></p><p>    <code>| (</code><strong><code>.</code></strong><code><strong><code>firstCol</code></strong></code><code>| </code><strong><code>.</code></strong><code><strong><code>lastCol</code></strong></code><code>| </code><strong><code>.</code></strong><code><strong><code>singleCol</code></strong></code><code>) [ </code><strong><code>{ </code></strong><code><code>condition</code></code><strong><code> }</code></strong><code> ]</code></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>select</code></strong></code><strong><code> { </code></strong><code><code>colsSelector</code></code><strong><code> }</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>take</code></strong></code><code>(</code><code><strong><code>Last</code></strong></code><code>)</code><code><strong><code>Cols</code></strong></code><strong><code>(</code></strong><code><code>number</code></code><strong><code>)</code></strong></p><p>    <code>| </code><strong><code>.</code></strong><code><strong><code>take</code></strong></code><code>(</code><code><strong><code>Last</code></strong></code><code>)</code><code><strong><code>ColsWhile</code></strong></code><strong><code> { </code></strong><code><code>condition</code></code><strong><code> }</code></strong></p><p>    </p><p><code><code>singleColumn</code></code></p><p>    <strong><code>.</code></strong><code><strong><code>colsOf</code></strong></code><strong><code>&lt;</code></strong><code><code>T</code></code><strong><code>&gt;</code></strong><code> [ </code><strong><code>(</code></strong><code><code>kType</code></code><strong><code>)</code></strong><code> ] [ </code><strong><code>{ </code></strong><code><code>condition</code></code><strong><code> }</code></strong><code> ]</code></p><p>    </p><p><code><code>columnGroupReference</code></code></p><p>    <strong><code>.</code></strong><code><strong><code>colsOf</code></strong></code><strong><code>&lt;</code></strong><code><code>T</code></code><strong><code>&gt;(</code></strong><code><code>kType</code></code><strong><code>)</code></strong><code> [ </code><strong><code>{ </code></strong><code><code>condition</code></code><strong><code> }</code></strong><code> ]</code></p></body>
4889
<html/>

0 commit comments

Comments
 (0)