forked from SPC/spc-site
Hack to fix language switch
This commit is contained in:
parent
f1ee6c5942
commit
bf746a4227
@ -12,15 +12,15 @@ language: en
|
|||||||
<h2>Master program</h2>
|
<h2>Master program</h2>
|
||||||
</header>
|
</header>
|
||||||
<p>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).</p>
|
<p>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).</p>
|
||||||
<p> 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. </p>
|
<p> 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. </p>
|
||||||
<ul class="actions">
|
<ul class="actions">
|
||||||
<li><a href="${resolvePageRef("education.masters")}" class="button next">More</a></li>
|
<li><a href="/education/masters" class="button next">More</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<hr/>
|
<hr/>
|
||||||
|
|
||||||
## Courses in 2022-2023:
|
## Courses in 2022–2023:
|
||||||
|
|
||||||
### [Scientific literature seminar](#)
|
### [Scientific literature seminar](#)
|
||||||
*curated by [Aleksandr Svetlichnyi](${resolvePageRef("team")}#svetlichnyi)*
|
*curated by [Aleksandr Svetlichnyi](${resolvePageRef("team")}#svetlichnyi)*
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
language: en
|
||||||
|
---
|
||||||
|
|
||||||
**Director of the centre**
|
**Director of the centre**
|
||||||
|
|
||||||
* PhD in particle physics.
|
* PhD in particle physics.
|
||||||
|
@ -1 +1,5 @@
|
|||||||
|
---
|
||||||
|
language: en
|
||||||
|
---
|
||||||
|
|
||||||
**Vice-director for education**
|
**Vice-director for education**
|
@ -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.
|
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)
|
[Repository and documentation](https://github.com/mipt-npm/controls.kt)
|
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
language: en
|
||||||
|
---
|
||||||
|
|
||||||
A metadata processing workflow manipulation framework.
|
A metadata processing workflow manipulation framework.
|
||||||
|
|
||||||
[Repository and documentation](https://github.com/mipt-npm/dataforge-core)
|
[Repository and documentation](https://github.com/mipt-npm/dataforge-core)
|
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
language: en
|
||||||
|
---
|
||||||
|
|
||||||
An experimental Kotlin library for mathematical operations, built on the principle of context-oriented programming using mathematical abstractions.
|
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)
|
[Repository and documentation](https://github.com/mipt-npm/kmath)
|
||||||
|
@ -1 +1,5 @@
|
|||||||
|
---
|
||||||
|
language: en
|
||||||
|
---
|
||||||
|
|
||||||
Geological gas storage monitoring and leaks prevention using muons from atmosphere.
|
Geological gas storage monitoring and leaks prevention using muons from atmosphere.
|
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
language: en
|
||||||
|
---
|
||||||
|
|
||||||
A kotlin visualization library wrapping popular [Plotly](https://plotly.com/javascript/) library.
|
A kotlin visualization library wrapping popular [Plotly](https://plotly.com/javascript/) library.
|
||||||
|
|
||||||
[Repository and documentation](https://github.com/mipt-npm/plotly.kt)
|
[Repository and documentation](https://github.com/mipt-npm/plotly.kt)
|
@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
language: en
|
||||||
|
---
|
||||||
|
|
||||||
A visualization framework written in Kotlin-multiplatform
|
A visualization framework written in Kotlin-multiplatform
|
||||||
|
|
||||||
[Repository and documentation](https://github.com/mipt-npm/visionforge)
|
[Repository and documentation](https://github.com/mipt-npm/visionforge)
|
@ -4,4 +4,4 @@ title: WIP
|
|||||||
language: en
|
language: en
|
||||||
---
|
---
|
||||||
|
|
||||||
This page is work in progress.
|
This page is a work in progress.
|
||||||
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
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
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
rootProject.name = "spc-site"
|
rootProject.name = "spc-site"
|
||||||
|
|
||||||
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
||||||
//enableFeaturePreview("VERSION_CATALOGS")
|
|
||||||
|
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
|
|
||||||
|
@ -3,8 +3,10 @@ package center.sciprog
|
|||||||
import html5up.forty.fortyScripts
|
import html5up.forty.fortyScripts
|
||||||
import kotlinx.html.*
|
import kotlinx.html.*
|
||||||
import space.kscience.dataforge.data.*
|
import space.kscience.dataforge.data.*
|
||||||
|
import space.kscience.dataforge.meta.Meta
|
||||||
import space.kscience.dataforge.meta.get
|
import space.kscience.dataforge.meta.get
|
||||||
import space.kscience.dataforge.meta.string
|
import space.kscience.dataforge.meta.string
|
||||||
|
import space.kscience.dataforge.names.Name
|
||||||
import space.kscience.dataforge.names.asName
|
import space.kscience.dataforge.names.asName
|
||||||
import space.kscience.dataforge.names.startsWith
|
import space.kscience.dataforge.names.startsWith
|
||||||
import space.kscience.snark.html.*
|
import space.kscience.snark.html.*
|
||||||
@ -237,24 +239,21 @@ private fun SiteContextWithData.allPagesIn(location: String){
|
|||||||
siteData.filterByType<PageFragment> { name, meta, _ ->
|
siteData.filterByType<PageFragment> { name, meta, _ ->
|
||||||
name.startsWith(location) && meta["type"].string == "page"
|
name.startsWith(location) && meta["type"].string == "page"
|
||||||
}.forEach { (name, content) ->
|
}.forEach { (name, content) ->
|
||||||
page(name, content = spcPage(content))
|
page(name, content = spcPage(content), pageMeta = content.meta)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
internal val spcHome: HtmlSite = HtmlSite {
|
internal val spcHome: HtmlSite = HtmlSite {
|
||||||
|
multiLanguageSite(
|
||||||
|
Language("en", route = Name.EMPTY),
|
||||||
|
Language("ru"),
|
||||||
|
) {
|
||||||
static("assets")
|
static("assets")
|
||||||
static("images")
|
static("images")
|
||||||
static("common", "")
|
static("common", "")
|
||||||
|
|
||||||
multiLanguageSite(
|
page(content = spcHomePage, pageMeta = siteData.meta ?: Meta.EMPTY)
|
||||||
siteData,
|
|
||||||
mapOf(
|
|
||||||
"en" to Language(""),
|
|
||||||
"ru" to Language("ru"),
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
page(content = spcHomePage)
|
|
||||||
|
|
||||||
allPagesIn("consulting")
|
allPagesIn("consulting")
|
||||||
|
|
||||||
@ -268,53 +267,5 @@ internal val spcHome: HtmlSite = HtmlSite {
|
|||||||
name.startsWith("projects".asName()) && meta["type"].string == "project"
|
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<Any>, prefix: Name = Name.EMPTY) {
|
|
||||||
//
|
|
||||||
// //val homePageData: DataTree<Any> = 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"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package center.sciprog
|
package center.sciprog
|
||||||
|
|
||||||
|
import io.ktor.http.URLBuilder
|
||||||
|
import io.ktor.http.appendPathSegments
|
||||||
import kotlinx.html.*
|
import kotlinx.html.*
|
||||||
import space.kscience.dataforge.meta.get
|
|
||||||
import space.kscience.dataforge.meta.string
|
import space.kscience.dataforge.meta.string
|
||||||
import space.kscience.snark.html.*
|
import space.kscience.snark.html.*
|
||||||
import java.time.LocalDate
|
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 {
|
div {
|
||||||
languageMap.forEach { (key, meta) ->
|
languageMap.forEach { (key, meta) ->
|
||||||
a(classes = "button primary small") {
|
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
|
+key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user