From 6e0f6bf9bccf0fe4bef0fe9075417bd1b4871a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Kerekes?= Date: Wed, 7 Nov 2018 13:06:25 +0100 Subject: [PATCH] Setup dokka --- .travis.yml | 12 ++ build.gradle | 29 +++++ dokka/CNAME | 1 + dokka/postbuild.sh | 14 +++ dokka/style.css | 283 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 339 insertions(+) create mode 100644 dokka/CNAME create mode 100755 dokka/postbuild.sh create mode 100644 dokka/style.css diff --git a/.travis.yml b/.travis.yml index f9bc08fa46e..b5785e48da7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,3 +12,15 @@ before_install: fi script: ./buildViaTravis.sh + + +before_deploy: ./gradlew dokka +deploy: + provider: pages + skip-cleanup: true + github-token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable + keep-history: true + on: + branch: master + local-dir: build/docs/openrndr + target-branch: gh-pages diff --git a/build.gradle b/build.gradle index d8ca057f439..fb379be6d52 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,15 @@ + +buildscript { + repositories { + jcenter() + } + + dependencies { + classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.17" + } +} + + plugins { // plugin dependencies, load without applying them id 'nebula.kotlin' version '1.3.0' apply false @@ -15,10 +27,27 @@ plugins { id 'nebula.source-jar' version '9.0.2' apply false } + +apply plugin: 'org.jetbrains.dokka' + + project.ext { lwjglVersion = '3.2.0' } +dokka { + moduleName = "$rootProject.name" + outputDirectory = "$buildDir/docs" + outputFormat = "html" + + sourceDirs = files(subprojects.collect { p -> new File(p.projectDir, "/src/main/kotlin") }) + doLast { + exec { + executable "./dokka/postbuild.sh" + } + } +} + allprojects { apply plugin: 'idea' diff --git a/dokka/CNAME b/dokka/CNAME new file mode 100644 index 00000000000..fd4e3e22166 --- /dev/null +++ b/dokka/CNAME @@ -0,0 +1 @@ +api.openrndr.org diff --git a/dokka/postbuild.sh b/dokka/postbuild.sh new file mode 100755 index 00000000000..22fec0495ea --- /dev/null +++ b/dokka/postbuild.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +cd `dirname $0` + +# dokka places style.css one directory above the root directory of the docs (where index.html is) +# this is a problem, because gh-pages needs index.html at the root of the repo and the '../style.css' link won't work +# we copy style.css to the root directory of the docs +cp ./style.css ../build/docs/openrndr/style.css + +cp ./CNAME ../build/docs/openrndr/CNAME +cd ../build/docs/openrndr + +# we need to relink style.css in all html files +find . -name "*.html" -exec sed -i -e 's/\.\.\/style.css/style.css/g' {} \; diff --git a/dokka/style.css b/dokka/style.css new file mode 100644 index 00000000000..914be69d6ef --- /dev/null +++ b/dokka/style.css @@ -0,0 +1,283 @@ +@import url(https://fonts.googleapis.com/css?family=Open+Sans:300i,400,700); + +body, table { + padding:50px; + font:14px/1.5 'Open Sans', "Helvetica Neue", Helvetica, Arial, sans-serif; + color:#555; + font-weight:300; + margin-left: auto; + margin-right: auto; + max-width: 1440px; +} + +.keyword { + color:black; + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size:12px; +} + +.symbol { + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-size:12px; +} + +.identifier { + color: darkblue; + font-size:12px; + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; +} + +h1, h2, h3, h4, h5, h6 { + color:#222; + margin:0 0 20px; +} + +p, ul, ol, table, pre, dl { + margin:0 0 20px; +} + +h1, h2, h3 { + line-height:1.1; +} + +h1 { + font-size:28px; +} + +h2 { + color:#393939; +} + +h3, h4, h5, h6 { + color:#494949; +} + +a { + color:#258aaf; + font-weight:400; + text-decoration:none; +} + +a:hover { + color: inherit; + text-decoration:underline; +} + +a small { + font-size:11px; + color:#555; + margin-top:-0.6em; + display:block; +} + +.wrapper { + width:860px; + margin:0 auto; +} + +blockquote { + border-left:1px solid #e5e5e5; + margin:0; + padding:0 0 0 20px; + font-style:italic; +} + +code, pre { + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color:#333; + font-size:12px; +} + +pre { + display: block; +/* + padding:8px 8px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; +*/ + overflow-x: auto; +} + +table { + width:100%; + border-collapse:collapse; +} + +th, td { + text-align:left; + vertical-align: top; + padding:5px 10px; +} + +dt { + color:#444; + font-weight:700; +} + +th { + color:#444; +} + +img { + max-width:100%; +} + +header { + width:270px; + float:left; + position:fixed; +} + +header ul { + list-style:none; + height:40px; + + padding:0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%); + + border-radius:5px; + border:1px solid #d2d2d2; + box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0; + width:270px; +} + +header li { + width:89px; + float:left; + border-right:1px solid #d2d2d2; + height:40px; +} + +header ul a { + line-height:1; + font-size:11px; + color:#999; + display:block; + text-align:center; + padding-top:6px; + height:40px; +} + +strong { + color:#222; + font-weight:700; +} + +header ul li + li { + width:88px; + border-left:1px solid #fff; +} + +header ul li + li + li { + border-right:none; + width:89px; +} + +header ul a strong { + font-size:14px; + display:block; + color:#222; +} + +section { + width:500px; + float:right; + padding-bottom:50px; +} + +small { + font-size:11px; +} + +hr { + border:0; + background:#e5e5e5; + height:1px; + margin:0 0 20px; +} + +footer { + width:270px; + float:left; + position:fixed; + bottom:50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width:auto; + margin:0; + } + + header, section, footer { + float:none; + position:static; + width:auto; + } + + header { + padding-right:320px; + } + + section { + border:1px solid #e5e5e5; + border-width:1px 0; + padding:20px 0; + margin:0 0 20px; + } + + header a small { + display:inline; + } + + header ul { + position:absolute; + right:50px; + top:52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap:break-word; + } + + header { + padding:0; + } + + header ul, header p.view { + position:static; + } + + pre, code { + word-wrap:normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding:15px; + } + + header ul { + display:none; + } +} + +@media print { + body { + padding:0.4in; + font-size:12pt; + color:#444; + } +}