From 25d826bb75a78eb674a63aed19f55e92d7ff8bca Mon Sep 17 00:00:00 2001 From: Filip ZybaƂa Date: Tue, 12 May 2020 14:58:05 +0200 Subject: Migrated resources to base-plugin --- core/build.gradle.kts | 11 - core/search-component/.gitignore | 3 - core/search-component/build.gradle.kts | 18 - core/search-component/package.json | 80 --- core/search-component/postcss.config.js | 17 - .../src/main/js/search/app-root.js | 47 -- core/search-component/src/main/js/search/app.css | 21 - core/search-component/src/main/js/search/app.js | 41 -- core/search-component/src/main/js/search/search.js | 52 -- core/search-component/stylelint.config.js | 4 - core/search-component/webpack.config.js | 62 -- .../src/main/resources/dokka/format/gfm.properties | 2 - .../resources/dokka/format/html-as-java.properties | 2 - .../main/resources/dokka/format/html.properties | 2 - .../dokka/format/java-layout-html.properties | 2 - .../main/resources/dokka/format/jekyll.properties | 2 - .../dokka/format/kotlin-website-html.properties | 2 - .../resources/dokka/format/markdown.properties | 2 - .../src/main/resources/dokka/images/arrow_down.svg | 3 - core/src/main/resources/dokka/images/docs_logo.svg | 7 - core/src/main/resources/dokka/images/logo-icon.svg | 3 - core/src/main/resources/dokka/images/logo-text.svg | 6 - .../inbound-link-resolver/dokka-default.properties | 2 - .../java-layout-html.properties | 2 - .../dokka/inbound-link-resolver/javadoc.properties | 2 - .../resources/dokka/scripts/navigationLoader.js | 43 -- .../dokka/scripts/platformContentHandler.js | 52 -- core/src/main/resources/dokka/scripts/scripts.js | 11 - core/src/main/resources/dokka/scripts/search.js | 7 - .../main/resources/dokka/styles/jetbrains-mono.css | 13 - core/src/main/resources/dokka/styles/style.css | 735 --------------------- plugins/base/build.gradle.kts | 11 + plugins/base/search-component/.gitignore | 3 + plugins/base/search-component/build.gradle.kts | 18 + plugins/base/search-component/package.json | 80 +++ plugins/base/search-component/postcss.config.js | 17 + .../src/main/js/search/app-root.js | 47 ++ .../search-component/src/main/js/search/app.css | 21 + .../search-component/src/main/js/search/app.js | 41 ++ .../search-component/src/main/js/search/search.js | 52 ++ plugins/base/search-component/stylelint.config.js | 4 + plugins/base/search-component/webpack.config.js | 62 ++ .../base/src/main/kotlin/renderers/FileWriter.kt | 2 +- .../src/main/resources/dokka/format/gfm.properties | 2 + .../resources/dokka/format/html-as-java.properties | 2 + .../main/resources/dokka/format/html.properties | 2 + .../dokka/format/java-layout-html.properties | 2 + .../main/resources/dokka/format/jekyll.properties | 2 + .../dokka/format/kotlin-website-html.properties | 2 + .../resources/dokka/format/markdown.properties | 2 + .../src/main/resources/dokka/images/arrow_down.svg | 3 + .../src/main/resources/dokka/images/docs_logo.svg | 7 + .../src/main/resources/dokka/images/logo-icon.svg | 3 + .../src/main/resources/dokka/images/logo-text.svg | 6 + .../inbound-link-resolver/dokka-default.properties | 2 + .../java-layout-html.properties | 2 + .../dokka/inbound-link-resolver/javadoc.properties | 2 + .../resources/dokka/scripts/navigationLoader.js | 43 ++ .../dokka/scripts/platformContentHandler.js | 52 ++ .../src/main/resources/dokka/scripts/scripts.js | 11 + .../src/main/resources/dokka/scripts/search.js | 7 + .../main/resources/dokka/styles/jetbrains-mono.css | 13 + .../base/src/main/resources/dokka/styles/style.css | 735 +++++++++++++++++++++ settings.gradle.kts | 2 + 64 files changed, 1259 insertions(+), 1257 deletions(-) delete mode 100644 core/search-component/.gitignore delete mode 100644 core/search-component/build.gradle.kts delete mode 100644 core/search-component/package.json delete mode 100644 core/search-component/postcss.config.js delete mode 100644 core/search-component/src/main/js/search/app-root.js delete mode 100644 core/search-component/src/main/js/search/app.css delete mode 100644 core/search-component/src/main/js/search/app.js delete mode 100644 core/search-component/src/main/js/search/search.js delete mode 100644 core/search-component/stylelint.config.js delete mode 100644 core/search-component/webpack.config.js delete mode 100644 core/src/main/resources/dokka/format/gfm.properties delete mode 100644 core/src/main/resources/dokka/format/html-as-java.properties delete mode 100644 core/src/main/resources/dokka/format/html.properties delete mode 100644 core/src/main/resources/dokka/format/java-layout-html.properties delete mode 100644 core/src/main/resources/dokka/format/jekyll.properties delete mode 100644 core/src/main/resources/dokka/format/kotlin-website-html.properties delete mode 100644 core/src/main/resources/dokka/format/markdown.properties delete mode 100755 core/src/main/resources/dokka/images/arrow_down.svg delete mode 100644 core/src/main/resources/dokka/images/docs_logo.svg delete mode 100755 core/src/main/resources/dokka/images/logo-icon.svg delete mode 100755 core/src/main/resources/dokka/images/logo-text.svg delete mode 100644 core/src/main/resources/dokka/inbound-link-resolver/dokka-default.properties delete mode 100644 core/src/main/resources/dokka/inbound-link-resolver/java-layout-html.properties delete mode 100644 core/src/main/resources/dokka/inbound-link-resolver/javadoc.properties delete mode 100644 core/src/main/resources/dokka/scripts/navigationLoader.js delete mode 100644 core/src/main/resources/dokka/scripts/platformContentHandler.js delete mode 100644 core/src/main/resources/dokka/scripts/scripts.js delete mode 100644 core/src/main/resources/dokka/scripts/search.js delete mode 100644 core/src/main/resources/dokka/styles/jetbrains-mono.css delete mode 100644 core/src/main/resources/dokka/styles/style.css create mode 100644 plugins/base/search-component/.gitignore create mode 100644 plugins/base/search-component/build.gradle.kts create mode 100644 plugins/base/search-component/package.json create mode 100644 plugins/base/search-component/postcss.config.js create mode 100644 plugins/base/search-component/src/main/js/search/app-root.js create mode 100644 plugins/base/search-component/src/main/js/search/app.css create mode 100644 plugins/base/search-component/src/main/js/search/app.js create mode 100644 plugins/base/search-component/src/main/js/search/search.js create mode 100644 plugins/base/search-component/stylelint.config.js create mode 100644 plugins/base/search-component/webpack.config.js create mode 100644 plugins/base/src/main/resources/dokka/format/gfm.properties create mode 100644 plugins/base/src/main/resources/dokka/format/html-as-java.properties create mode 100644 plugins/base/src/main/resources/dokka/format/html.properties create mode 100644 plugins/base/src/main/resources/dokka/format/java-layout-html.properties create mode 100644 plugins/base/src/main/resources/dokka/format/jekyll.properties create mode 100644 plugins/base/src/main/resources/dokka/format/kotlin-website-html.properties create mode 100644 plugins/base/src/main/resources/dokka/format/markdown.properties create mode 100755 plugins/base/src/main/resources/dokka/images/arrow_down.svg create mode 100644 plugins/base/src/main/resources/dokka/images/docs_logo.svg create mode 100755 plugins/base/src/main/resources/dokka/images/logo-icon.svg create mode 100755 plugins/base/src/main/resources/dokka/images/logo-text.svg create mode 100644 plugins/base/src/main/resources/dokka/inbound-link-resolver/dokka-default.properties create mode 100644 plugins/base/src/main/resources/dokka/inbound-link-resolver/java-layout-html.properties create mode 100644 plugins/base/src/main/resources/dokka/inbound-link-resolver/javadoc.properties create mode 100644 plugins/base/src/main/resources/dokka/scripts/navigationLoader.js create mode 100644 plugins/base/src/main/resources/dokka/scripts/platformContentHandler.js create mode 100644 plugins/base/src/main/resources/dokka/scripts/scripts.js create mode 100644 plugins/base/src/main/resources/dokka/scripts/search.js create mode 100644 plugins/base/src/main/resources/dokka/styles/jetbrains-mono.css create mode 100644 plugins/base/src/main/resources/dokka/styles/style.css diff --git a/core/build.gradle.kts b/core/build.gradle.kts index bcc74480..14718cfe 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -24,17 +24,6 @@ val sourceJar by tasks.registering(Jar::class) { from(sourceSets["main"].allSource) } -task("copy_search", Copy::class) { - from(File(project(":core:search-component").projectDir, "dist/")) - destinationDir = File(sourceSets.main.get().resources.sourceDirectories.singleFile, "dokka/scripts") -}.dependsOn(":core:search-component:generateSearchFiles") - -tasks { - processResources { - dependsOn("copy_search") - } -} - publishing { publications { register("dokkaCore") { diff --git a/core/search-component/.gitignore b/core/search-component/.gitignore deleted file mode 100644 index 9220c11f..00000000 --- a/core/search-component/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/dist/ -/node_modules/ -/package-lock.json diff --git a/core/search-component/build.gradle.kts b/core/search-component/build.gradle.kts deleted file mode 100644 index ce747c5e..00000000 --- a/core/search-component/build.gradle.kts +++ /dev/null @@ -1,18 +0,0 @@ -plugins { - id("com.moowork.node") version "1.3.1" -} - -task("generateSearchFiles") { - dependsOn("npm_install", "npm_run_build") -} - -tasks { - "npm_run_build" { - inputs.dir("$projectDir/src/main/js/search/") - inputs.files("$projectDir/package.json", "$projectDir/webpack.config.js") - outputs.dir("$projectDir/dist/") - } - clean { - delete = setOf("$projectDir/node_modules", "$projectDir/dist/", "$projectDir/package-lock.json") - } -} \ No newline at end of file diff --git a/core/search-component/package.json b/core/search-component/package.json deleted file mode 100644 index fa997c44..00000000 --- a/core/search-component/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "search", - "version": "1.0.0", - "private": true, - "config": { - "components": "./src/main/js/search", - "dist": "./dist" - }, - "scripts": { - "create-component": "yo @jetbrains/ring-ui:react --path $npm_package_config_components", - "build": "webpack --mode=production --devtool sourcemap", - "test": "karma start", - "lint": "eslint . && npm run stylelint", - "stylelint": "stylelint --ignore-path .gitignore **/*.css", - "ci-test": "npm run lint && xvfb-maybe karma start --teamcity", - "start": "webpack-dev-server -d --history-api-fallback --inline --hot --colors --port 9010" - }, - "babel": { - "presets": [ - [ - "@jetbrains/jetbrains", - { - "useBuiltIns": "usage" - } - ] - ] - }, - "dependencies": { - "@babel/core": "^7.8.3", - "@jetbrains/babel-preset-jetbrains": "^2.1.4", - "@jetbrains/icons": "3.6.0", - "@jetbrains/logos": "1.1.5", - "@jetbrains/ring-ui": "2.1.16", - "babel-loader": "^8.0.6", - "copy-webpack-plugin": "^5.1.1", - "css-loader": "^3.4.2", - "json-loader": "^0.5.7", - "postcss-import": "^12.0.1", - "postcss-loader": "^3.0.0", - "postcss-preset-env": "^6.7.0", - "prop-types": "^15.7.2", - "react": "^16.12.0", - "react-dom": "^16.12.0", - "redbox-react": "^1.6.0", - "webpack": "^4.41.5", - "webpack-cli": "^3.3.10", - "webpack-dev-server": "^3.10.1" - }, - "devDependencies": { - "@jetbrains/generator-ring-ui": "2.0.53", - "@jetbrains/eslint-config": "^4.0.6", - "@jetbrains/stylelint-config": "^2.0.0", - "babel-eslint": "^10.0.3", - "chai": "^4.2.0", - "chai-as-promised": "^7.1.1", - "chai-dom": "^1.8.1", - "chai-enzyme": "1.0.0-beta.1", - "electron": "^7.1.9", - "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "^1.15.2", - "eslint": "^6.8.0", - "karma": "^4.4.1", - "karma-chai-plugins": "^0.9.0", - "karma-electron": "^6.3.0", - "karma-mocha": "^1.3.0", - "karma-sourcemap-loader": "^0.3.7", - "karma-teamcity-reporter": "^1.1.0", - "karma-webpack": "^4.0.2", - "mocha": "^6.2.2", - "react-test-renderer": "^16.12.0", - "sinon": "^8.0.4", - "sinon-chai": "^3.4.0", - "stylelint": "^12.0.1", - "xvfb-maybe": "^0.2.1", - "yo": "^3.1.1" - }, - "engines": { - "node": ">=8.0.0" - } -} diff --git a/core/search-component/postcss.config.js b/core/search-component/postcss.config.js deleted file mode 100644 index ce65774e..00000000 --- a/core/search-component/postcss.config.js +++ /dev/null @@ -1,17 +0,0 @@ -module.exports = () => ({ - plugins: [ - require('postcss-import'), - require('postcss-preset-env')({ - features: { - stage: 3, // See https://cssdb.org/#staging-process - importFrom: require.resolve('@jetbrains/ring-ui/components/global/variables.css'), - features: { - 'nesting-rules': true, - 'custom-properties': { - preserve: true - } - } - } - }) - ] -}); diff --git a/core/search-component/src/main/js/search/app-root.js b/core/search-component/src/main/js/search/app-root.js deleted file mode 100644 index 5d650581..00000000 --- a/core/search-component/src/main/js/search/app-root.js +++ /dev/null @@ -1,47 +0,0 @@ -import React, {useRef, useState, useEffect} from 'react'; -import {WithFuzzySearchFilter} from './search'; -import './app.css'; - -function useComponentVisible(initialIsVisible) { - const [isComponentVisible, setIsComponentVisible] = useState(initialIsVisible); - const ref = useRef(null); - - const handleHideDropdown = (event) => { - if (event.key === "Escape") { - setIsComponentVisible(false); - } - }; - - const handleClickOutside = event => { - if (ref.current && !ref.current.contains(event.target)) { - setIsComponentVisible(false); - } - }; - - useEffect(() => { - document.addEventListener("keydown", handleHideDropdown, true); - document.addEventListener("click", handleClickOutside, true); - return () => { - document.removeEventListener("keydown", handleHideDropdown, true); - document.removeEventListener("click", handleClickOutside, true); - }; - }); - - return { ref, isComponentVisible, setIsComponentVisible }; -} - -export const AppRoot = () => { - const { - ref, - isComponentVisible, - setIsComponentVisible - } = useComponentVisible(false); - - return
- {isComponentVisible && ()} - {!isComponentVisible && ( - setIsComponentVisible(true)}> - - )} -
-} \ No newline at end of file diff --git a/core/search-component/src/main/js/search/app.css b/core/search-component/src/main/js/search/app.css deleted file mode 100644 index c51d3fe1..00000000 --- a/core/search-component/src/main/js/search/app.css +++ /dev/null @@ -1,21 +0,0 @@ -@import "@jetbrains/ring-ui/components/global/variables.css"; - -html, -.app-root { - height: 100%; -} - -.search-root { - margin: 0; - padding: 0; - - background: var(--ring-content-background-color); - - font-family: var(--ring-font-family); - font-size: var(--ring-font-size); - line-height: var(--ring-line-height); -} - -.search-content { - padding: 24px 41px; -} diff --git a/core/search-component/src/main/js/search/app.js b/core/search-component/src/main/js/search/app.js deleted file mode 100644 index bceffa48..00000000 --- a/core/search-component/src/main/js/search/app.js +++ /dev/null @@ -1,41 +0,0 @@ -import React from 'react'; -import {render} from 'react-dom'; -import RedBox from 'redbox-react'; - -import {AppRoot} from './app-root'; -import './app.css'; - -const appEl = document.getElementById('searchBar'); -const rootEl = document.createElement('div'); - -let renderApp = () => { - render( - , - rootEl - ); -}; - -if (module.hot) { - const renderAppHot = renderApp; - const renderError = error => { - render( - , - rootEl - ); - }; - - renderApp = () => { - try { - renderAppHot(); - } catch (error) { - renderError(error); - } - }; - - module.hot.accept('./app-root', () => { - setTimeout(renderApp); - }); -} - -renderApp(); -appEl.appendChild(rootEl); diff --git a/core/search-component/src/main/js/search/search.js b/core/search-component/src/main/js/search/search.js deleted file mode 100644 index a742f11d..00000000 --- a/core/search-component/src/main/js/search/search.js +++ /dev/null @@ -1,52 +0,0 @@ -import React, {Component} from 'react'; -import Select from '@jetbrains/ring-ui/components/select/select'; -import '@jetbrains/ring-ui/components/input-size/input-size.scss'; - -class WithFuzzySearchFilterComponent extends Component { - constructor(props) { - super(props); - this.state = {selected: props.data[0]}; - } - - clearSelection = () => { - this.setState({selected: null}); - }; - - onSelect = option => { - window.location.href = `${window.pathToRoot}${option.location}?query${option.name}`; - this.setState({selected: option}); - debugger - }; - - render() { - return ( -
-
- +
+
+ ); + } +} + +export const WithFuzzySearchFilter = () => { + let data = []; + if (window.pages) { + data = window.pages.map((page, i) => ({ + ...page, + label: page.name, + key: i + 1, + type: page.kind + })); + } + + return ; +}; diff --git a/plugins/base/search-component/stylelint.config.js b/plugins/base/search-component/stylelint.config.js new file mode 100644 index 00000000..02b3f4ac --- /dev/null +++ b/plugins/base/search-component/stylelint.config.js @@ -0,0 +1,4 @@ +module.exports = { + extends: '@jetbrains/stylelint-config', + rules: {} +}; diff --git a/plugins/base/search-component/webpack.config.js b/plugins/base/search-component/webpack.config.js new file mode 100644 index 00000000..a7b503b6 --- /dev/null +++ b/plugins/base/search-component/webpack.config.js @@ -0,0 +1,62 @@ +const {join, resolve} = require('path'); + +const ringUiWebpackConfig = require('@jetbrains/ring-ui/webpack.config'); + +const pkgConfig = require('./package.json').config; + +const componentsPath = join(__dirname, pkgConfig.components); + +// Patch @jetbrains/ring-ui svg-sprite-loader config +ringUiWebpackConfig.loaders.svgInlineLoader.include.push( + require('@jetbrains/logos'), + require('@jetbrains/icons') +); + +const webpackConfig = () => ({ + entry: `${componentsPath}/app.js`, + resolve: { + mainFields: ['module', 'browser', 'main'], + alias: { + react: resolve('./node_modules/react'), + 'react-dom': resolve('./node_modules/react-dom'), + '@jetbrains/ring-ui': resolve('./node_modules/@jetbrains/ring-ui') + } + }, + output: { + path: resolve(__dirname, pkgConfig.dist), + filename: '[name].js', + publicPath: '', + devtoolModuleFilenameTemplate: '/[absolute-resource-path]' + }, + module: { + rules: [ + ...ringUiWebpackConfig.config.module.rules, + { + test: /\.css$/, + include: componentsPath, + use: [ + 'style-loader', + {loader: 'css-loader'}, + {loader: 'postcss-loader'} + ] + }, + { + test: /\.css$/, + include: /node_modules/, + exclude: ringUiWebpackConfig.componentsPath, + use: ['style-loader', 'css-loader'] + }, + { + test: /\.js$/, + include: [componentsPath], + loader: 'babel-loader?cacheDirectory' + } + ] + }, + plugins: [], + output: { + path: __dirname + '/dist/' + } +}); + +module.exports = webpackConfig; diff --git a/plugins/base/src/main/kotlin/renderers/FileWriter.kt b/plugins/base/src/main/kotlin/renderers/FileWriter.kt index 236cbad8..181295c0 100644 --- a/plugins/base/src/main/kotlin/renderers/FileWriter.kt +++ b/plugins/base/src/main/kotlin/renderers/FileWriter.kt @@ -66,7 +66,7 @@ class FileWriter(val context: DokkaContext): OutputWriter { val filePath = file.toAbsolutePath().toString() withContext(Dispatchers.IO) { Paths.get(root, rebase(filePath)).toFile().writeBytes( - javaClass.getResourceAsStream(filePath).readBytes() + this@FileWriter.javaClass.getResourceAsStream(filePath).readBytes() ) } } diff --git a/plugins/base/src/main/resources/dokka/format/gfm.properties b/plugins/base/src/main/resources/dokka/format/gfm.properties new file mode 100644 index 00000000..5e8f7aa8 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/format/gfm.properties @@ -0,0 +1,2 @@ +class=org.jetbrains.dokka.Formats.GFMFormatDescriptor +description=Produces documentation in GitHub-flavored markdown format diff --git a/plugins/base/src/main/resources/dokka/format/html-as-java.properties b/plugins/base/src/main/resources/dokka/format/html-as-java.properties new file mode 100644 index 00000000..f598f377 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/format/html-as-java.properties @@ -0,0 +1,2 @@ +class=org.jetbrains.dokka.Formats.HtmlAsJavaFormatDescriptor +description=Produces output in HTML format using Java syntax \ No newline at end of file diff --git a/plugins/base/src/main/resources/dokka/format/html.properties b/plugins/base/src/main/resources/dokka/format/html.properties new file mode 100644 index 00000000..7881dfae --- /dev/null +++ b/plugins/base/src/main/resources/dokka/format/html.properties @@ -0,0 +1,2 @@ +class=org.jetbrains.dokka.Formats.HtmlFormatDescriptor +description=Produces output in HTML format \ No newline at end of file diff --git a/plugins/base/src/main/resources/dokka/format/java-layout-html.properties b/plugins/base/src/main/resources/dokka/format/java-layout-html.properties new file mode 100644 index 00000000..fbb2bbed --- /dev/null +++ b/plugins/base/src/main/resources/dokka/format/java-layout-html.properties @@ -0,0 +1,2 @@ +class=org.jetbrains.dokka.Formats.JavaLayoutHtmlFormatDescriptor +description=Produces Kotlin Style Docs with Javadoc like layout \ No newline at end of file diff --git a/plugins/base/src/main/resources/dokka/format/jekyll.properties b/plugins/base/src/main/resources/dokka/format/jekyll.properties new file mode 100644 index 00000000..b11401a4 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/format/jekyll.properties @@ -0,0 +1,2 @@ +class=org.jetbrains.dokka.Formats.JekyllFormatDescriptor +description=Produces documentation in Jekyll format \ No newline at end of file diff --git a/plugins/base/src/main/resources/dokka/format/kotlin-website-html.properties b/plugins/base/src/main/resources/dokka/format/kotlin-website-html.properties new file mode 100644 index 00000000..f4c320b9 --- /dev/null +++ b/plugins/base/src/main/resources/dokka/format/kotlin-website-html.properties @@ -0,0 +1,2 @@ +class=org.jetbrains.dokka.Formats.KotlinWebsiteHtmlFormatDescr