+
+
+
+
+
+
{{ .Title }}
+
+ {{ .Params.university }}
+
+
+
+ {{ with .Params.email }}
+ -
+
+
+
+
+ {{ end }}
+ {{ with .Params.twitter }}
+ -
+
+
+
+
+ {{ end }}
+ {{ with .Params.google_scholar }}
+ -
+
+
+
+
+ {{ end }}
+ {{ with .Params.github }}
+ -
+
+
+
+
+ {{ end }}
+
+
+
+
+
+ {{ .Content }}
+
+
+ {{ if .Params.interests }}
+
+
Interests
+
+ {{ range .Params.interests }}
+ - {{ . }}
+ {{ end }}
+
+
+ {{ end }}
+
+
Education
+
+ {{ range .Params.education.courses }}
+ -
+
+
+
{{ .course }}
+
{{ .year }}
+
{{ .institution }}
+
+
+ {{ end }}
+
+
+
+
+
+ {{ if .Params.professional_experience }}
+
Professional Experience
+
+ {{ range .Params.professional_experience }}
+ -
+
+
{{ .title }}
+
{{ .years }}
+
{{ .institution }}
+
+
+ {{ end }}
+
+ {{ end }}
+
+
+
+ {{ if .Params.industry_experience }}
+
Industry Experience
+
+ {{ range .Params.industry_experience }}
+ -
+
+
{{ .company }}
+
{{ .years }}
+
{{ .title }}
+
+
+ {{ end }}
+
+ {{ end }}
+
+
+
+
+ {{ if .Params.teaching_experience }}
+
Teaching Experience
+
+ {{ range .Params.teaching_experience }}
+ -
+
+
{{ .title }}
+
{{ .years }}
+
{{ .institution }}
+
+
+ {{ end }}
+
+ {{ end }}
+
+
+
+ {{ if .Params.honors_awards }}
+
Honors & Awards
+
+ {{ range .Params.honors_awards }}
+ -
+
+
{{ .title }}
+
{{ .year }}
+
{{ .event }}
+
+
+ {{ end }}
+
+ {{ end }}
+
+
+
+ {{ if .Params.area_chair }}
+
Area Chair
+
+ {{ range .Params.area_chair }}
+ -
+
+
{{ .event }}
+
{{ .years }}
+
+
+ {{ end }}
+
+ {{ end }}
+
+
+
+ {{ if .Params.editorial_board }}
+
Editorial Board
+
+ {{ range .Params.editorial_board }}
+ -
+
+
{{ .journal }}
+
{{ .years }}
+
+
+ {{ end }}
+
+ {{ end }}
+
+
+
+ {{ if .Params.conference_reviewer }}
+
Conference Reviewer
+
+ {{ range .Params.conference_reviewer }}
+ -
+
+
{{ .event }}
+
{{ .years }}
+
+
+ {{ end }}
+
+ {{ end }}
+
+
+
+ {{ if .Params.journal_reviewer }}
+
Journal Reviewer
+
+ {{ range .Params.journal_reviewer }}
+ -
+
+
{{ .journal }}
+
{{ .years }}
+
+
+ {{ end }}
+
+ {{ end }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layouts/partials/blocks/contact.html b/layouts/partials/blocks/contact.html
new file mode 100644
index 0000000..ac827f8
--- /dev/null
+++ b/layouts/partials/blocks/contact.html
@@ -0,0 +1,169 @@
+{{/* Hugo Blox: Contact */}}
+{{/* Documentation: https://hugoblox.com/blocks/ */}}
+{{/* License: https://github.com/HugoBlox/hugo-blox-builder/blob/main/LICENSE.md */}}
+
+{{/* Initialise */}}
+{{ $page := .wcPage }}
+{{ $block := .wcBlock }}
+{{ $autolink := default true $block.content.autolink }}
+{{ $data := $block.content }}
+
+{{ $form_provider := lower $block.content.form.provider | default "" }}
+
+{{ $use_netlify_form := eq $form_provider "netlify" }}
+{{ $use_formspree_form := eq $form_provider "formspree" }}
+{{ $use_form := or $use_netlify_form $use_formspree_form }}
+
+{{ $use_netlify_captcha := $block.content.form.netlify.captcha | default true }}
+{{ $use_formspree_captcha := $block.content.form.formspree.captcha | default false }}
+
+{{ $columns := $block.design.columns | default "2" }}
+
+{{ if and $use_formspree_form $use_formspree_captcha }}
+
+{{ end }}
+
+
\ No newline at end of file
diff --git a/layouts/partials/blocks/experience.html b/layouts/partials/blocks/experience.html
new file mode 100644
index 0000000..da91fca
--- /dev/null
+++ b/layouts/partials/blocks/experience.html
@@ -0,0 +1,80 @@
+{{/* Hugo Blox: Experience */}}
+{{/* Documentation: https://hugoblox.com/blocks/ */}}
+{{/* License: https://github.com/HugoBlox/hugo-blox-builder/blob/main/LICENSE.md */}}
+
+{{/* Initialise */}}
+{{ $page := .wcPage }}
+{{ $block := .wcBlock }}
+{{ $columns := $block.design.columns | default "1" }}
+
+
+
+ {{ with $block.content.text }}{{ . | emojify | $page.RenderString }}{{ end }}
+
+ {{ if $block.content.items }}
+ {{ $exp_len := len $block.content.items }}
+
+ {{/* Default to user's custom order (as requested in #1761) as Hugo doesn't support multiple sorts on params. */}}
+ {{ range $idx, $key := $block.content.items }}
+
+
+
+
+
+
+
+
+ {{- if .company_logo}}
+ {{- $svg_icon := resources.Get (printf "media/icons/brands/%s.svg" .company_logo) -}}
+ {{ if not $svg_icon }}{{ errorf "Brand logo not found at `assets/media/icons/brands/%s.svg`" .company_logo }}{{end}}
+
+
+
+ {{ end }}
+
+
{{.title | markdownify | emojify}}
+
+
+ {{ (time .date_start) | time.Format ($block.Params.date_format | default "January 2006") }} –
+ {{ if .date_end}}
+ {{ (time .date_end) | time.Format ($block.Params.date_format | default "January 2006") }}
+ {{else}}
+ {{ i18n "present" | default "Present" }}
+ {{end}}
+ {{with .location}}
+
+ {{.}}
+ {{end}}
+
+
+ {{- if .company_logo}}
+
+
+ {{end}}
+
+ {{with .description}}
{{. | markdownify | emojify}}
{{end}}
+
+
+
+
+ {{end}}
+ {{end}}
+
\ No newline at end of file
diff --git a/layouts/partials/blocks/people.html b/layouts/partials/blocks/people.html
new file mode 100644
index 0000000..5bbef0c
--- /dev/null
+++ b/layouts/partials/blocks/people.html
@@ -0,0 +1,73 @@
+{{/* Hugo Blox: People */}}
+{{/* Documentation: https://hugoblox.com/blocks/ */}}
+{{/* License: https://github.com/HugoBlox/hugo-blox-builder/blob/main/LICENSE.md */}}
+
+{{/* Initialise */}}
+{{ $page := .wcPage }}
+{{ $block := .wcBlock }}
+{{ $show_social := $block.design.show_social | default false }}
+{{ $show_interests := $block.design.show_interests | default true }}
+{{ $show_organizations := $block.design.show_organizations | default false }}
+{{ $show_role := $block.design.show_role | default true }}
+
+
+ {{ with $block.content.title }}
+
+
{{ . | markdownify | emojify }}
+ {{ with $block.content.subtitle }}
{{ . | markdownify | emojify }}
{{ end }}
+
+ {{ end }}
+
+ {{ with $block.content.text }}
+
+ {{ . | emojify | $page.RenderString }}
+
+ {{ end }}
+
+ {{ range $block.content.user_groups }}
+ {{ $query := where (where site.Pages "Section" "authors") ".Params.user_groups" "intersect" (slice .) }}
+
+ {{/* Sort */}}
+ {{ $sort_by := $block.content.sort_by | default "Params.date" }}
+ {{ $sort_by = partial "blox-core/functions/get_sort_by_parameter" $sort_by }}
+ {{ $sort_ascending := $block.content.sort_ascending | default true }}
+ {{ $sort_order := cond $sort_ascending "asc" "desc" }}
+ {{ $query = sort $query $sort_by $sort_order }}
+
+ {{if $query | and (gt (len $block.content.user_groups) 1) }}
+
+
{{ . | markdownify }}
+
+ {{end}}
+
+ {{ range $query }}
+ {{ $avatar := (.Resources.ByType "image").GetMatch "*avatar*" }}
+ {{/* Get link to user's profile page. */}}
+ {{ $link := "" }}
+ {{ with site.GetPage (printf "/authors/%s" (path.Base .File.Dir)) }}
+ {{ $link = .RelPermalink }}
+ {{ end }}
+
+ {{ $src := "" }}
+ {{ if site.Params.features.avatar.gravatar }}
+ {{ $src = printf "https://s.gravatar.com/avatar/%s?s=150" (md5 .Params.email) }}
+ {{ else if $avatar }}
+ {{ $avatar_image := $avatar.Fill "270x270 Center" }}
+ {{ $src = $avatar_image.RelPermalink }}
+ {{ end }}
+ {{ if $src }}
+ {{ $avatar_shape := site.Params.features.avatar.shape | default "circle" }}
+ {{with $link}}
{{end}}{{if $link}}{{end}}
+ {{ end }}
+
+
+
+ {{ if and $show_organizations .Params.organizations }}{{ range .Params.organizations }}
{{ .name }}
{{ end }}{{ end }}
+ {{ if and $show_role .Params.role }}
{{ .Params.role | markdownify | emojify }}
{{ end }}
+ {{ if $show_social }}{{ partial "social_links" . }}{{ end }}
+ {{ if and $show_interests .Params.interests }}
{{ delimit .Params.interests ", " | markdownify | emojify }}
{{ end }}
+
+
+ {{ end }}
+ {{ end }}
+
\ No newline at end of file
diff --git a/layouts/partials/blocks/professor.html b/layouts/partials/blocks/professor.html
new file mode 100644
index 0000000..e0316dc
--- /dev/null
+++ b/layouts/partials/blocks/professor.html
@@ -0,0 +1,39 @@
+{{/* Hugo Blox: Professor Profile */}}
+{{/* Documentation: https://hugoblox.com/blocks/ */}}
+{{/* License: https://github.com/HugoBlox/hugo-blox-builder/blob/main/LICENSE.md */}}
+
+{{/* Initialise */}}
+{{ $page := .wcPage }}
+{{ $block := .wcBlock }}
+
+
+ {{ with $block.content.title }}
+
+
{{ . | markdownify | emojify }}
+ {{ with $block.content.subtitle }}
{{ . | markdownify | emojify }}
{{ end }}
+
+ {{ end }}
+
+ {{ range $folder := (readDir "content/authors/sj") }}
+ {{ if and (eq (path.Ext $folder.Name) ".md") (fileExists (printf "content/authors/sj/%s" $folder.Name)) }}
+ {{ $page := site.GetPage (printf "authors/sj/%s" (path.Base $folder.Name)) }}
+ {{ if $page }}
+
+
+ {{ with ($page.Resources.GetMatch "*avatar*") }}
+
+ {{ end }}
+
+
+
+ {{ $link := $page.RelPermalink }}
+
+
+ {{ $page.Content }}
+
+
+
+ {{ end }}
+ {{ end }}
+ {{ end }}
+
diff --git a/layouts/partials/blocks/publication.html b/layouts/partials/blocks/publication.html
new file mode 100644
index 0000000..b95c848
--- /dev/null
+++ b/layouts/partials/blocks/publication.html
@@ -0,0 +1,77 @@
+{{/* Hugo Blox: Publications */}}
+{{/* Documentation: https://hugoblox.com/blocks/ */}}
+{{/* License: https://github.com/HugoBlox/hugo-blox-builder/blob/main/LICENSE.md */}}
+
+
+
+
+
+ {{ $block := .wcBlock }}
+ {{ $title := $block.content.title | default "Publications" }}
+
{{ $title }}
+
+
+
+
Publications of the physics research team can be found here.
+
+
+ {{ $publications := where site.Pages "Section" "publication" }}
+ {{ range $publications }}
+ {{ if .Params }}
+
+ {{ end }}
+ {{ end }}
+
+
+
+
diff --git a/layouts/partials/blocks/research-topic.html b/layouts/partials/blocks/research-topic.html
new file mode 100644
index 0000000..f797b15
--- /dev/null
+++ b/layouts/partials/blocks/research-topic.html
@@ -0,0 +1,32 @@
+{{/* Hugo Blox: Markdown */}}
+{{/* Documentation: https://hugoblox.com/blocks/ */}}
+{{/* License: https://github.com/HugoBlox/hugo-blox-builder/blob/main/LICENSE.md */}}
+
+{{/* Initialise */}}
+{{ $page := .wcPage }}
+{{ $block := .wcBlock }}
+{{ $columns := $block.design.columns | default "1" }}
+
+{{/* Read content from research-topic/_index.md */}}
+{{ $filePath := "research-topic/_index.md" }}
+{{ $fileContent := readFile $filePath | markdownify | emojify | $page.RenderString }}
+
+{{/* Extract the title and text content from the block */}}
+{{ $title := $block.content.title | default "" }}
+{{ $text := $block.content.text | emojify | $page.RenderString }}
+
+{{ if $title }}
+
+
{{ $title }}
+
+{{ end }}
+
+{{ if ne $columns "1" }}
+
+ {{ $fileContent }}
+
+{{ else }}
+
+ {{ $fileContent }}
+
+{{ end }}
diff --git a/layouts/partials/hooks/body-end/custom.html b/layouts/partials/hooks/body-end/custom.html
new file mode 100644
index 0000000..5755ec4
--- /dev/null
+++ b/layouts/partials/hooks/body-end/custom.html
@@ -0,0 +1,11 @@
+
diff --git a/layouts/partials/hooks/head-end/custom.html b/layouts/partials/hooks/head-end/custom.html
new file mode 100644
index 0000000..e69de29
diff --git a/layouts/partials/views/community/news_list.html b/layouts/partials/views/community/news_list.html
new file mode 100644
index 0000000..22f94c5
--- /dev/null
+++ b/layouts/partials/views/community/news_list.html
@@ -0,0 +1,11 @@
+{{ $item := .item }}
+
+{{/* Dynamic view adjusts to content type. */}}
+
+{{ $link := $item.RelPermalink }}
+{{ $target := "" }}
+
+
+ [{{ $item.Date.Year}}.{{ printf "%02d" $item.Date.Month }}]
+ {{ $item.Title }}
+
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 0000000..f2014ae
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,21 @@
+[build]
+ command = "hugo --gc --minify -b $URL"
+ publish = "public"
+
+[build.environment]
+ HUGO_VERSION = "0.125.7"
+ HUGO_ENABLEGITINFO = "true"
+
+[context.production.environment]
+ HUGO_ENV = "production"
+
+[context.deploy-preview]
+ command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL"
+
+[context.branch-deploy]
+ command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
+
+[[plugins]]
+ package = "netlify-plugin-hugo-cache-resources"
+ [plugins.inputs]
+ debug = true
diff --git a/preview.png b/preview.png
new file mode 100644
index 0000000..74fccae
Binary files /dev/null and b/preview.png differ
diff --git a/static/css/style.css b/static/css/style.css
new file mode 100644
index 0000000..e89886d
--- /dev/null
+++ b/static/css/style.css
@@ -0,0 +1,66 @@
+body {
+ font-family: Arial, sans-serif;
+ background-color: #f8f9fa;
+ color: #333;
+ margin: 0;
+ padding: 0;
+}
+
+.container {
+ max-width: 900px;
+ margin: 0 auto;
+ padding: 20px;
+}
+
+.text-center {
+ text-align: center;
+}
+
+.intro {
+ background-color: #e9f5ff;
+ border: 1px solid #007bff;
+ border-radius: 4px;
+ padding: 15px;
+ margin-bottom: 20px;
+}
+
+.publication-content {
+ margin-top: 30px;
+}
+
+.publication-item {
+ margin-bottom: 30px;
+ padding: 15px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+}
+
+.publication-title {
+ font-size: 1.5rem;
+ font-weight: bold;
+}
+
+.publication-meta {
+ margin-bottom: 10px;
+}
+
+.publication-excerpt {
+ margin-bottom: 10px;
+}
+
+.publication-authors {
+ font-style: italic;
+ color: #666;
+ margin-bottom: 10px;
+}
+
+.publication-links .btn {
+ margin-right: 5px;
+ margin-bottom: 5px;
+}
+
+.img-fluid {
+ max-width: 100%;
+ height: auto;
+}
diff --git a/static/js/smooth-scroll.js b/static/js/smooth-scroll.js
new file mode 100644
index 0000000..81fe50a
--- /dev/null
+++ b/static/js/smooth-scroll.js
@@ -0,0 +1,9 @@
+// static/js/smooth-scroll.js
+document.querySelectorAll("nav a").forEach((anchor) => {
+ anchor.addEventListener("click", function (e) {
+ e.preventDefault();
+ document.querySelector(this.getAttribute("href")).scrollIntoView({
+ behavior: "smooth",
+ });
+ });
+});
diff --git a/static/uploads/.gitkeep b/static/uploads/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/theme.toml b/theme.toml
new file mode 100644
index 0000000..bea8380
--- /dev/null
+++ b/theme.toml
@@ -0,0 +1,41 @@
+name = "Research Group"
+license = "MIT"
+licenselink = "https://github.com/wowchemy/starter-hugo-research-group/blob/main/LICENSE.md"
+description = "The **Research Group Template** empowers your research group to easily create a beautiful website with a stunning homepage, news, academic publications, events, team profiles, and a contact form."
+homepage = "https://github.com/wowchemy/starter-hugo-research-group"
+demosite = "https://research-group.netlify.app/"
+tags = ["academic",
+ "university",
+ "research",
+ "publications",
+ "widgets",
+ "portfolio",
+ "responsive",
+ "clean",
+ "company",
+ "blog",
+ "events",
+ "minimal",
+ "light",
+ "dark",
+ "multilingual",
+ "landing page",
+ "contact form",
+ "mobile",
+ "search",
+ "presentation",
+ "simple",
+ "minimalist",
+ "starter",
+ "modern",
+ "one page",
+ "customizable",
+ "technical",
+ "slide"
+ ]
+features = ["page builder", "widgets", "themes", "search", "research publication system", "filterable portfolio",
+ "blog", "create courses", "talks", "events", "slides", "gallery", "contact form"]
+
+[author]
+ name = "Seil Kang"
+ homepage = "https://georgecushen.com"