diff --git a/data/home/content/education/index.md b/data/home/content/education/index.md index bea803d..5f93a69 100644 --- a/data/home/content/education/index.md +++ b/data/home/content/education/index.md @@ -12,15 +12,15 @@ language: en

Master program

Master program "Scientific programming" at MIPT aims to prepare specialists both in application programming and domain field (such as physics, biology, biotechnology, computer science and other research areas).

-

In modern science and technology application level programming is an integral part of any major work. And in order to be successful in this field one needs to know both software engineering and the domain field.

+

In modern science and technology, application level programming is an integral part of any major work. And in order to be successful in this field, one needs to know both software engineering and the domain field.


-## Courses in 2022-2023: +## Courses in 2022–2023: ### [Scientific literature seminar](#) *curated by [Aleksandr Svetlichnyi](${resolvePageRef("team")}#svetlichnyi)* diff --git a/data/home/content/people/Nozik[info].md b/data/home/content/people/Nozik[info].md index d7c3744..b35d0eb 100644 --- a/data/home/content/people/Nozik[info].md +++ b/data/home/content/people/Nozik[info].md @@ -1,3 +1,7 @@ +--- +language: en +--- + **Director of the centre** * PhD in particle physics. diff --git a/data/home/content/people/Svetlichnyi[info].md b/data/home/content/people/Svetlichnyi[info].md index ee01128..85e8520 100644 --- a/data/home/content/people/Svetlichnyi[info].md +++ b/data/home/content/people/Svetlichnyi[info].md @@ -1 +1,5 @@ +--- +language: en +--- + **Vice-director for education** \ No newline at end of file diff --git a/data/home/content/projects/controls[info].md b/data/home/content/projects/controls[info].md index 0ef95ad..6d15c0d 100644 --- a/data/home/content/projects/controls[info].md +++ b/data/home/content/projects/controls[info].md @@ -1,3 +1,7 @@ +--- +language: en +--- + Controls.kt is a data acquisition framework (work in progress). It is based on DataForge, a software framework for automated data processing. [Repository and documentation](https://github.com/mipt-npm/controls.kt) \ No newline at end of file diff --git a/data/home/content/projects/dataforge[info].md b/data/home/content/projects/dataforge[info].md index 4e24075..7692f12 100644 --- a/data/home/content/projects/dataforge[info].md +++ b/data/home/content/projects/dataforge[info].md @@ -1,3 +1,7 @@ +--- +language: en +--- + A metadata processing workflow manipulation framework. [Repository and documentation](https://github.com/mipt-npm/dataforge-core) \ No newline at end of file diff --git a/data/home/content/projects/kmath[info].md b/data/home/content/projects/kmath[info].md index 67b5edb..a78ddb2 100644 --- a/data/home/content/projects/kmath[info].md +++ b/data/home/content/projects/kmath[info].md @@ -1,3 +1,7 @@ +--- +language: en +--- + An experimental Kotlin library for mathematical operations, built on the principle of context-oriented programming using mathematical abstractions. [Repository and documentation](https://github.com/mipt-npm/kmath) diff --git a/data/home/content/projects/muography[info].md b/data/home/content/projects/muography[info].md index dcfb377..f4262d1 100644 --- a/data/home/content/projects/muography[info].md +++ b/data/home/content/projects/muography[info].md @@ -1 +1,5 @@ +--- +language: en +--- + Geological gas storage monitoring and leaks prevention using muons from atmosphere. \ No newline at end of file diff --git a/data/home/content/projects/plotly[info].md b/data/home/content/projects/plotly[info].md index d14815f..122ecd4 100644 --- a/data/home/content/projects/plotly[info].md +++ b/data/home/content/projects/plotly[info].md @@ -1,3 +1,7 @@ +--- +language: en +--- + A kotlin visualization library wrapping popular [Plotly](https://plotly.com/javascript/) library. [Repository and documentation](https://github.com/mipt-npm/plotly.kt) \ No newline at end of file diff --git a/data/home/content/projects/visionforge[info].md b/data/home/content/projects/visionforge[info].md index bc79dce..8a1c00c 100644 --- a/data/home/content/projects/visionforge[info].md +++ b/data/home/content/projects/visionforge[info].md @@ -1,3 +1,7 @@ +--- +language: en +--- + A visualization framework written in Kotlin-multiplatform [Repository and documentation](https://github.com/mipt-npm/visionforge) \ No newline at end of file diff --git a/data/home/content/wip.md b/data/home/content/wip.md index f501aea..4dcf577 100644 --- a/data/home/content/wip.md +++ b/data/home/content/wip.md @@ -4,4 +4,4 @@ title: WIP language: en --- -This page is work in progress. +This page is a work in progress. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e411586..17655d0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 2563170..8e28de1 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,7 +1,6 @@ rootProject.name = "spc-site" enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") -//enableFeaturePreview("VERSION_CATALOGS") pluginManagement { diff --git a/src/main/kotlin/center/sciprog/spcHome.kt b/src/main/kotlin/center/sciprog/spcHome.kt index 954eb8c..5476a91 100644 --- a/src/main/kotlin/center/sciprog/spcHome.kt +++ b/src/main/kotlin/center/sciprog/spcHome.kt @@ -3,8 +3,10 @@ package center.sciprog import html5up.forty.fortyScripts import kotlinx.html.* import space.kscience.dataforge.data.* +import space.kscience.dataforge.meta.Meta import space.kscience.dataforge.meta.get import space.kscience.dataforge.meta.string +import space.kscience.dataforge.names.Name import space.kscience.dataforge.names.asName import space.kscience.dataforge.names.startsWith import space.kscience.snark.html.* @@ -233,28 +235,25 @@ internal val spcHomePage = HtmlPage { } } -private fun SiteContextWithData.allPagesIn(location: String){ +private fun SiteContextWithData.allPagesIn(location: String) { siteData.filterByType { name, meta, _ -> name.startsWith(location) && meta["type"].string == "page" }.forEach { (name, content) -> - page(name, content = spcPage(content)) + page(name, content = spcPage(content), pageMeta = content.meta) } } internal val spcHome: HtmlSite = HtmlSite { - static("assets") - static("images") - static("common", "") - multiLanguageSite( - siteData, - mapOf( - "en" to Language(""), - "ru" to Language("ru"), - ) + Language("en", route = Name.EMPTY), + Language("ru"), ) { - page(content = spcHomePage) + static("assets") + static("images") + static("common", "") + + page(content = spcHomePage, pageMeta = siteData.meta ?: Meta.EMPTY) allPagesIn("consulting") @@ -268,53 +267,5 @@ internal val spcHome: HtmlSite = HtmlSite { name.startsWith("projects".asName()) && meta["type"].string == "project" } } -// withLanguages( -// "en" to "", -// "ru" to "ru" -// ) { -// page { spcHomePage() } -// -// localizedPages("consulting", dataRenderer = FortyDataRenderer) -// -// localizedPages("education", dataRenderer = FortyDataRenderer) -// -// spcSpotlight("team") { _, meta -> -// meta["type"].string == "team" -// } -// -// spcSpotlight("research") { name, meta -> -// name.startsWith("projects".asName()) && meta["type"].string == "project" -// } -// } -} -// -//internal fun SiteBuilder.spcHome(homePageData: DataTree, prefix: Name = Name.EMPTY) { -// -// //val homePageData: DataTree = snark.readDirectory(dataPath.resolve("content")) -// -// site(prefix, homePageData) { -// static("assets") -// static("images") -// static("common", "") -// -// withLanguages( -// "en" to "", -// "ru" to "ru" -// ) { -// page { spcHomePage() } -// -// localizedPages("consulting", dataRenderer = FortyDataRenderer) -// -// localizedPages("education", dataRenderer = FortyDataRenderer) -// -// spcSpotlight("team") { _, meta -> -// meta["type"].string == "team" -// } -// -// spcSpotlight("research") { name, meta -> -// name.startsWith("projects".asName()) && meta["type"].string == "project" -// } -// } -// } -//} +} \ No newline at end of file diff --git a/src/main/kotlin/center/sciprog/spcMisc.kt b/src/main/kotlin/center/sciprog/spcMisc.kt index 7981751..f678cfb 100644 --- a/src/main/kotlin/center/sciprog/spcMisc.kt +++ b/src/main/kotlin/center/sciprog/spcMisc.kt @@ -1,7 +1,8 @@ package center.sciprog +import io.ktor.http.URLBuilder +import io.ktor.http.appendPathSegments import kotlinx.html.* -import space.kscience.dataforge.meta.get import space.kscience.dataforge.meta.string import space.kscience.snark.html.* import java.time.LocalDate @@ -168,11 +169,12 @@ internal fun wrapper(contentBody: FlowContent.() -> Unit) = postprocess { } - languageMap.takeIf { it.isNotEmpty() }?.let { languageMap -> + languageMap.takeIf { it.size > 1 }?.let { languageMap -> div { languageMap.forEach { (key, meta) -> a(classes = "button primary small") { - href = resolvePageRef(meta["target"].string ?: "#") + val pageUrl = URLBuilder(host).appendPathSegments(meta.string ?: "#") + href = pageUrl.buildString().removeSuffix("/") //resolveRef(meta.string ?: "#") +key } }