Skip to content

Commit 5cc55c8

Browse files
authored
Merge pull request #4577 from JetBrains/wrs-pdf
pdf.html generator for Writerside
2 parents 57de449 + fdc5572 commit 5cc55c8

31 files changed

+350
-35
lines changed

.gitignore

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,18 @@ pdf/kotlin-reference.pdf
3535
pdf/tmp.html
3636
*.pyc
3737
google-credentials.json
38-
./package-lock.json
38+
package-lock.json
3939
.env
4040
pages/api/
4141
external/
4242
assets/externals
4343
pages/docs/tutorials/kotlin-for-py/
4444
_teamcity
45-
dist
45+
/dist
4646
libs
4747
generated
4848
.next
4949
.teamcity/*.iml
5050

51-
/scripts/doindex/package-lock.json
52-
/search-report*
53-
/reports
51+
/reports*
5452
/data/page_views_map.json

.teamcity/builds/TemplateSearchIndex.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import jetbrains.buildServer.configs.kotlin.buildSteps.ScriptBuildStep
77
import jetbrains.buildServer.configs.kotlin.triggers.schedule
88
import vcsRoots.KotlinLangOrg
99

10-
const val SCRIPT_PATH = "scripts/doindex";
10+
const val SCRIPT_PATH = "scripts/dist";
1111

1212
fun scriptDistAnalyze(block: ScriptBuildStep.() -> Unit) = ScriptBuildStep {
1313
id = "script-dist-analyze"
@@ -42,11 +42,7 @@ abstract class TemplateSearchIndex(init: BuildType.() -> Unit) : BuildType({
4242
}
4343

4444
vcs {
45-
root(
46-
KotlinLangOrg, """
47-
$SCRIPT_PATH
48-
""".trimIndent()
49-
)
45+
root(KotlinLangOrg, "$SCRIPT_PATH/")
5046
cleanCheckout = true
5147
showDependenciesChanges = true
5248
}

.teamcity/builds/apiReferences/BuildApiPages.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package builds.apiReferences
22

33
import BuildParams.DOKKA_TEMPLATES_VERSION
4+
import builds.SCRIPT_PATH
45
import builds.scriptDistAnalyze
56
import jetbrains.buildServer.configs.kotlin.BuildStep
67
import jetbrains.buildServer.configs.kotlin.BuildSteps
@@ -39,7 +40,7 @@ abstract class BuildApiPages(
3940
artifactRules = "$pagesRoot/** => pages.zip"
4041

4142
vcs {
42-
root(KotlinLangOrg, "scripts/doindex/")
43+
root(KotlinLangOrg, "$SCRIPT_PATH/")
4344
}
4445

4546
params {

.teamcity/builds/apiReferences/stdlib/BuildStdlibApiReference.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package builds.apiReferences.stdlib
22

33
import BuildParams.KOTLIN_CORE_API_BUILD_ID
4+
import builds.SCRIPT_PATH
45
import builds.apiReferences.scriptGenerateSitemap
56
import builds.apiReferences.scriptNoRobots
67
import jetbrains.buildServer.configs.kotlin.AbsoluteId
78
import jetbrains.buildServer.configs.kotlin.BuildType
89
import jetbrains.buildServer.configs.kotlin.buildSteps.script
10+
import vcsRoots.KotlinLangOrg
911

1012
private const val PAGES_ROOT = "dist/api/core"
1113

@@ -14,11 +16,7 @@ object BuildStdlibApiReference : BuildType({
1416
description = "Build pages for Kotlin Core API"
1517

1618
vcs {
17-
root(
18-
vcsRoots.KotlinLangOrg, """
19-
scripts/doindex/
20-
""".trimIndent()
21-
)
19+
root(KotlinLangOrg, "$SCRIPT_PATH/")
2220
}
2321

2422
artifactRules = """

.teamcity/builds/kotlinlang/buidTypes/PdfGenerator.kt

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,72 @@
11
package builds.kotlinlang.buidTypes
22

3+
import builds.SCRIPT_PATH
34
import builds.kotlinlang.templates.DockerImageBuilder
4-
import jetbrains.buildServer.configs.kotlin.AbsoluteId
55
import jetbrains.buildServer.configs.kotlin.BuildType
6+
import jetbrains.buildServer.configs.kotlin.FailureAction
67
import jetbrains.buildServer.configs.kotlin.buildSteps.script
78

8-
99
object PdfGenerator : BuildType({
1010
name = "PDF Generator"
1111
description = "Build PDF reference https://kotlinlang.org/docs/"
1212

1313
templates(DockerImageBuilder)
1414

15-
artifactRules = "pdf/kotlin-docs.pdf => kotlin-docs.pdf"
15+
artifactRules = """
16+
dist/docs/pdf.html
17+
pdf/kotlin-docs.pdf
18+
""".trimIndent()
19+
20+
requirements {
21+
doesNotContain("docker.server.osType", "windows")
22+
}
1623

1724
steps {
1825
script {
26+
id = "script-dist-pdf-html"
27+
name = "Generate pdf.html"
28+
//language=bash
29+
scriptContent = """
30+
#!/bin/sh
31+
set -e
32+
npm install
33+
npm run generate-pdf
34+
""".trimIndent()
35+
dockerImage = "node:22-alpine"
36+
workingDir = SCRIPT_PATH
37+
}
38+
script {
39+
name = "Generate PDF"
40+
//language=sh
1941
scriptContent = """
20-
#!/bin/bash
21-
22-
mv ./dist/docs/pdfSourceKR.html ./dist/docs/pdf.html
42+
# install legacy wkhtmltopdf deps
43+
apt update
44+
apt install -y xfonts-75dpi xfonts-100dpi libjpeg62-turbo xfonts-base
45+
wget https://deb.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1w-0+deb11u1_amd64.deb
46+
wget https://deb.debian.org/debian/pool/main/o/openssl/libssl-dev_1.1.1w-0+deb11u1_amd64.deb
47+
wget https://deb.debian.org/debian/pool/main/o/openssl/openssl_1.1.1w-0+deb11u1_amd64.deb
48+
dpkg -i libssl1.1_1.1.1w-0+deb11u1_amd64.deb libssl-dev_1.1.1w-0+deb11u1_amd64.deb openssl_1.1.1w-0+deb11u1_amd64.deb
49+
ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/x86_64-linux-gnu/libjpeg.so.8
50+
# refresh wkhtmltopdf
51+
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb
52+
dpkg -i wkhtmltox_0.12.6-1.buster_amd64.deb
2353
2454
## refresh packages
2555
pip install -r requirements.txt
26-
2756
python kotlin-website.py reference-pdf
2857
""".trimIndent()
29-
dockerImage = "%dep.Kotlin_KotlinSites_Builds_KotlinlangOrg_BuildPythonContainer.kotlin-website-image%"
58+
dockerImage = "python:3.9"
3059
}
3160
}
3261

3362
dependencies {
34-
dependency(AbsoluteId("Documentation_TransitioningProducts_KotlinReferenceWithCoroutines")) {
63+
dependency(BuildReferenceDocs) {
3564
snapshot {
65+
onDependencyFailure = FailureAction.FAIL_TO_START
66+
onDependencyCancel = FailureAction.CANCEL
3667
}
37-
3868
artifacts {
39-
cleanDestination = true
40-
artifactRules = """
41-
webHelpImages.zip!** => dist/docs/images
42-
pdfSourceKR.html => dist/docs/
43-
""".trimIndent()
69+
artifactRules = "+:docs.zip!** => dist/docs/"
4470
}
4571
}
4672
}

pdf/webhelp.css

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,18 +210,37 @@ h3 {
210210
line-height:28px;
211211
line-height:var(--wt-h3-line-height, 28px);
212212

213-
font-size: 14px;
213+
font-size: 18px;
214214
font-style: normal;
215215
font-weight: 700;
216216
line-height: 24px;
217217
letter-spacing: 0px;
218+
219+
margin-bottom: 8px;
218220
}
219221
@media print {
220222
h3 {
221223
page-break-inside: avoid;
222224
page-break-after: avoid;
223225
}
224226
}
227+
228+
h4 {
229+
color:#27282c;
230+
font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
231+
font-size: 16px;
232+
font-style: normal;
233+
font-weight: 700;
234+
line-height: 24px;
235+
letter-spacing: 0;
236+
margin-bottom: 8px;
237+
}
238+
@media print {
239+
h4 {
240+
page-break-inside: avoid;
241+
page-break-after: avoid;
242+
}
243+
}
225244
p, a, li {
226245
letter-spacing:normal;
227246
color:rgba(39, 40, 44, 0.70);
@@ -287,7 +306,7 @@ table th {
287306
.list {
288307
margin-left: 18px;
289308
}
290-
.list._ul {
309+
.list._ul, .list._bullet {
291310
list-style: disc;
292311
}
293312
.list._decimal {
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)