diff --git a/assets/css/main.scss b/assets/css/main.scss index 454d880..1c4e1c4 100644 --- a/assets/css/main.scss +++ b/assets/css/main.scss @@ -1,41 +1,39 @@ // CSS Style Guide: https://codeguide.co/#css - // All variables from site's config content. -{{- $P := .Site.Params -}} // Base -$scheme: {{ $P.scheme }}; -$darkmode: {{ $P.darkmode }}; +$scheme: {{ .P.scheme }}; +$darkmode: {{ .P.darkmode }}; -$body_scrollbar_overlay: {{ $P.bodyScrollbar.overlay }}; -$body_scrollbar_stable: {{ $P.bodyScrollbar.stable }}; -$mermaid_enable: {{ $P.mermaid.enable }}; -$mobile_layout_economy: {{ $P.mobileLayoutEconomy }}; -$theme_color_dark: {{ $P.themeColor.dark }}; -$theme_color_light: {{ $P.themeColor.light }}; +$body_scrollbar_overlay: {{ .P.bodyScrollbar.overlay }}; +$body_scrollbar_stable: {{ .P.bodyScrollbar.stable }}; +$mermaid_enable: {{ .P.mermaid.enable }}; +$mobile_layout_economy: {{ .P.mobileLayoutEconomy }}; +$theme_color_dark: {{ .P.themeColor.dark }}; +$theme_color_light: {{ .P.themeColor.light }}; // Header -$bookmark_color: {{ $P.bookmark.color }}; -$bookmark_enable: {{ $P.bookmark.enable }}; -$github_banner_enable: {{ $P.githubBanner.enable }}; -$menu_settings_badges: {{ $P.menuSets.badges }}; +$bookmark_color: {{ .P.bookmark.color }}; +$bookmark_enable: {{ .P.bookmark.enable }}; +$github_banner_enable: {{ .P.githubBanner.enable }}; +$menu_settings_badges: {{ .P.menuSets.badges }}; // Footer -$footer_icon_color: {{ $P.footer.icon.color }}; -$footer_icon_animated: {{ $P.footer.icon.animated }}; -$footer_beian_enable: {{ $P.footer.beian.enable }}; +$footer_icon_color: {{ .P.footer.icon.color }}; +$footer_icon_animated: {{ .P.footer.icon.animated }}; +$footer_beian_enable: {{ .P.footer.beian.enable }}; // Counter -$busuanzi_enable: {{ $P.busuanzi.enable }}; -$busuanzi_visitors: {{ $P.busuanzi.visitors }}; -$busuanzi_views: {{ $P.busuanzi.views }}; -$busuanzi_post_views: {{ $P.busuanzi.postViews }}; +$busuanzi_enable: {{ .P.busuanzi.enable }}; +$busuanzi_visitors: {{ .P.busuanzi.visitors }}; +$busuanzi_views: {{ .P.busuanzi.views }}; +$busuanzi_post_views: {{ .P.busuanzi.postViews }}; // Font -$font_enable: {{ $P.font.enable }}; -$font_global_size: {{ default $P.font.global.size 1 }}; -$font_headings_size: {{ default $P.font.headings.size 1.625 }}; -$font_title_size: {{ default $P.font.title.size 1.375 }}; +$font_enable: {{ .P.font.enable }}; +$font_global_size: {{ default .P.font.global.size 1 }}; +$font_headings_size: {{ default .P.font.headings.size 1.625 }}; +$font_title_size: {{ default .P.font.title.size 1.375 }}; // Code & Code blocks // TODO find the configure variable @@ -44,88 +42,88 @@ $highlight_dark_foreground: #222; $highlight_light_background: #000; $highlight_light_foreground: #222; -$codeblock_copy_btn_style: {{ $P.codeblock.copyBtn.style }}; +$codeblock_copy_btn_style: {{ .P.codeblock.copyBtn.style }}; // Sidebar -$sidebar_offset: {{ $P.sidebar.offset }}; -$sidebar_padding: {{ $P.sidebar.padding }}; -$sidebar_position: {{ $P.sidebar.position }}; -$sidebar_width: {{ $P.sidebar.width }}; +$sidebar_offset: {{ .P.sidebar.offset }}; +$sidebar_padding: {{ .P.sidebar.padding }}; +$sidebar_position: {{ .P.sidebar.position }}; +$sidebar_width: {{ .P.sidebar.width }}; -$motion_enable: {{ $P.motion.enable }}; -$motion_transition_sidebar: {{ $P.motion.transition.sidebar }}; +$motion_enable: {{ .P.motion.enable }}; +$motion_transition_sidebar: {{ .P.motion.transition.sidebar }}; -$back2top_enable: {{ $P.backTop.enable }}; -$back2top_scrollpercent: {{ $P.backTop.scrollpercent }}; -$back2top_sidebar: {{ $P.backTop.sidebar }}; +$back2top_enable: {{ .P.backTop.enable }}; +$back2top_scrollpercent: {{ .P.backTop.scrollpercent }}; +$back2top_sidebar: {{ .P.backTop.sidebar }}; -$avatar_rotated: {{ $P.avatar.rotated }}; -$avatar_rounded: {{ $P.avatar.rounded }}; -$avatar_rounded: {{ $P.avatar.rounded }}; -$site_state: {{ $P.siteState }}; -$social_icons_only: {{ $P.socialIcons.iconsOnly }}; -$social_icons_transition: {{ $P.socialIcons.transition }}; -$links_settings_layout: {{ $P.linksSets.layout }}; -$toc_enable: {{ $P.toc.enable }}; -$toc_expand_all: {{ $P.toc.expandAll }}; -$toc_wrap: {{ $P.toc.wrap }}; +$avatar_rotated: {{ .P.avatar.rotated }}; +$avatar_rounded: {{ .P.avatar.rounded }}; +$avatar_rounded: {{ .P.avatar.rounded }}; +$site_state: {{ .P.siteState }}; +$social_icons_only: {{ .P.socialIcons.iconsOnly }}; +$social_icons_transition: {{ .P.socialIcons.transition }}; +$links_settings_layout: {{ .P.linksSets.layout }}; +$toc_enable: {{ .P.toc.enable }}; +$toc_expand_all: {{ .P.toc.expandAll }}; +$toc_wrap: {{ .P.toc.wrap }}; // Posts -$creative_commons_post: {{ $P.creativeCommons.post }}; -$follow_me: {{ isset $P "followMe" }}; -$motion_trans_coll_header: {{ $P.motion.transition.collHeader }}; -$motion_trans_post_block: {{ $P.motion.transition.postBlock }}; -$motion_trans_post_body: {{ $P.motion.transition.postBody }}; -$motion_trans_post_header: {{ $P.motion.transition.postHeader }}; -$post_edit_enable: {{ $P.postEdit.enable }}; -$post_meta_item_text: {{ $P.postMeta.itemText }}; -$reward_settings_animation: {{ $P.rewardSets.animation }}; +$creative_commons_post: {{ .P.creativeCommons.post }}; +$follow_me: {{ isset .P "followMe" }}; +$motion_trans_coll_header: {{ .P.motion.transition.collHeader }}; +$motion_trans_post_block: {{ .P.motion.transition.postBlock }}; +$motion_trans_post_body: {{ .P.motion.transition.postBody }}; +$motion_trans_post_header: {{ .P.motion.transition.postHeader }}; +$post_edit_enable: {{ .P.postEdit.enable }}; +$post_meta_item_text: {{ .P.postMeta.itemText }}; +$reward_settings_animation: {{ .P.rewardSets.animation }}; // TODO find the paramters $text_align_desktop: center; $text_align_mobile: center; // Note -$note_icons: {{ $P.note.icons }}; -$note_light_bg_offset: {{ $P.note.lightBgOffset }}; -$note_style: {{ $P.note.style }}; +$note_icons: {{ .P.note.icons }}; +$note_light_bg_offset: {{ .P.note.lightBgOffset }}; +$note_style: {{ .P.note.style }}; // Tabs -$tabs_transition_labels: {{ $P.tabs.transition.labels }}; -$tabs_transition_tabs: {{ $P.tabs.transition.tabs }}; +$tabs_transition_labels: {{ .P.tabs.transition.labels }}; +$tabs_transition_tabs: {{ .P.tabs.transition.tabs }}; // Reading progress bar -$reading_progress_start: {{ $P.readingProgress.start }}; -$reading_progress_color: {{ $P.readingProgress.color }}; -$reading_progress_enable: {{ $P.readingProgress.enable }}; -$reading_progress_height: {{ $P.readingProgress.height }}; -$reading_progress_position: {{ $P.readingProgress.position }}; -$reading_progress_reversed: {{ $P.readingProgress.reversed }}; +$reading_progress_start: {{ .P.readingProgress.start }}; +$reading_progress_color: {{ .P.readingProgress.color }}; +$reading_progress_enable: {{ .P.readingProgress.enable }}; +$reading_progress_height: {{ .P.readingProgress.height }}; +$reading_progress_position: {{ .P.readingProgress.position }}; +$reading_progress_reversed: {{ .P.readingProgress.reversed }}; // Thirdparty -$math_mathjax_enable: {{ $P.math.mathjax.enable }}; -$related_posts_enable: {{ $P.relatedPosts.enable }}; -$pdf_enable: {{ $P.pdf.enable }}; -$pdf_height: {{ $P.pdf.height }}; +$math_mathjax_enable: {{ .P.math.mathjax.enable }}; +$related_posts_enable: {{ .P.relatedPosts.enable }}; +$pdf_enable: {{ .P.pdf.enable }}; +$pdf_height: {{ .P.pdf.height }}; // Search engine -$algolia_search_enable: {{ $P.algoliaSearch.enable }}; -$local_search_enable: {{ $P.localSearch.enable }}; +$algolia_search_enable: {{ .P.algoliaSearch.enable }}; +$local_search_enable: {{ .P.localSearch.enable }}; // Online IM -$gitalk_enable: {{ $P.gitalk.enable }}; -$gitter_enable: {{ $P.gitter.enable }}; +$gitalk_enable: {{ .P.gitalk.enable }}; +$gitter_enable: {{ .P.gitter.enable }}; // Comment -$disqusjs_enable: {{ $P.disqusjs.enable }}; -$utterances_enable: {{ $P.utterances.enable }}; +$disqusjs_enable: {{ .P.disqusjs.enable }}; +$utterances_enable: {{ .P.utterances.enable }}; // // Variables Layer // -------------------------------------------------- @import '_variables/base'; -{{ printf "/* %s Scheme Style */" $P.scheme }} -{{ printf "@import '_variables/%s';" $P.scheme }} +{{ printf "/* %s Scheme Style */" .P.scheme }} +{{ printf "@import '_variables/%s';" .P.scheme }} // TODO //@import 'theme.injects.variable'; @@ -153,7 +151,7 @@ $utterances_enable: {{ $P.utterances.enable }}; // Schemes Layer // -------------------------------------------------- -{{ printf "@import '_schemes/%s/';" $P.scheme }} +{{ printf "@import '_schemes/%s/';" .P.scheme }} // Custom Layer // TODO diff --git a/exampleSite/config.yaml b/exampleSite/config.yaml index f4e2bd1..61afb54 100644 --- a/exampleSite/config.yaml +++ b/exampleSite/config.yaml @@ -8,6 +8,21 @@ baseURL: / theme: hugo-theme-next +defaultContentLanguage: zh-cn +languages: + zh-cn: + title: NexT + languageName: 中文 + weight: 1 + en-us: + title: NexT + languageName: English + weight: 2 + params: + author: Theme NexT + subtitle: Theme for Hugo + description: Stay easily & powerful. + params: # --------------------------------------------------------------- # Theme Core Configuration Settings @@ -15,15 +30,15 @@ params: # --------------------------------------------------------------- # Allow to cache content generation. - cache: - enable: true + #cache: + # enable: true # Remove unnecessary files after hexo generate. - minify: false + # minify: false # Define custom file paths. # Create your custom files in site directory `source/_data` and uncomment needed files below. - custom_file_path: + customFilePath: #head: source/_data/head.njk #header: source/_data/header.njk #sidebar: source/_data/sidebar.njk @@ -47,22 +62,27 @@ params: scheme: Gemini # Dark Mode - darkmode: false + darkmode: true # --------------------------------------------------------------- # Site Information Settings # --------------------------------------------------------------- + author: NexT 主题 + subtitle: 为 Hugo 打造的主题 + description: 保持简单的易用性和强大的功能。 favicon: - small: /images/favicon-16x16-next.png - medium: /images/favicon-32x32-next.png - apple_touch_icon: /images/apple-touch-icon-next.png - safari_pinned_tab: /images/logo.svg + icon: /imgs/icons/favicon.ico + small: /imgs/icons/favicon_16x16_next.png + medium: /imgs/icons/favicon_32_32_next.png + appleTouchIcon: /imgs/icons/apple_touch_icon_next.png #android_manifest: /manifest.json # Custom Logo (Warning: Do not support scheme Mist) - custom_logo: #/uploads/custom-logo.jpg + customLogo: + show: false + url: /imgs/hugo_next_logo.png # Creative Commons 4.0 International License. # See: https://creativecommons.org/about/cclicenses/ @@ -75,20 +95,21 @@ params: post: false # You can set a language value if you prefer a translated version of CC license, e.g. deed.zh # CC licenses are available in 39 languages, you can find the specific and correct abbreviation you need on https://creativecommons.org - language: + # language: # Open graph settings # See: https://hexo.io/docs/helpers#open-graph - open_graph: + openGraph: enable: true - options: - #twitter_card: - #twitter_id: - #twitter_site: - #twitter_image: - #google_plus: - #fb_admins: - #fb_app_id: + # twitter: + # card: + # creator: + # image: + # site: + # googlePlus: + # facebook: + # admins: + # app_id: # --------------------------------------------------------------- @@ -483,19 +504,19 @@ params: # Google Webmaster tools verification. # See: https://developers.google.com/search - google_site_verification: + googleSiteVerification: 5AUIVYTbHIAuz-eQtxSfZbWW5eg9_EVZMSQycIuXrG0 # Bing Webmaster tools verification. # See: https://www.bing.com/webmasters - bing_site_verification: + bingSiteVerification: # Yandex Webmaster tools verification. # See: https://webmaster.yandex.ru - yandex_site_verification: + yandexSiteVerification: # Baidu Webmaster tools verification. # See: https://ziyuan.baidu.com/site - baidu_site_verification: + baiduSiteVerification: # --------------------------------------------------------------- @@ -845,7 +866,7 @@ params: # Use Animate.css to animate everything. # For more information: https://animate.style motion: - enable: true + enable: false async: false transition: # All available transition variants: https://theme-next.js.org/animate/ diff --git a/exampleSite/start.sh b/exampleSite/start.sh new file mode 100644 index 0000000..cecf594 --- /dev/null +++ b/exampleSite/start.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# + +next() { + cat << EOT +======================================== + ███╗ ██╗███████╗██╗ ██╗████████╗ + ████╗ ██║██╔════╝╚██╗██╔╝╚══██╔══╝ + ██╔██╗ ██║█████╗ ╚███╔╝ ██║ + ██║╚██╗██║██╔══╝ ██╔██╗ ██║ + ██║ ╚████║███████╗██╔╝ ██╗ ██║ + ╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═╝ +======================================== +NexT version $1 +Documentation: https://hugo-next.js.org +======================================== +EOT +} + +next V0.0.1 + +hugo server -D -t ../.. --port 1414 \ No newline at end of file diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 5f8e2ec..170bd74 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -1,11 +1,47 @@ +{{- $P := .Site.Params -}} +{{- $lang := replaceRE "-([a-z]+)" (upper (substr .Site.Language -3)) .Site.Language -}} +{{- .Scratch.Set "lang" $lang -}} - - {{- partial "head.html" . -}} - - {{- partial "header.html" . -}} -
- {{- block "main" . }}{{- end }} -
- {{- partial "footer.html" . -}} - - + + + + + + + + + + + + {{- partial "head.html" (dict "P" $P "Page" .Page "Scratch" .Scratch) }} + {{ .Title | default .Site.Title }} + + + + +
+
+
+
+ {{- partial "header" . }} +
+ + {{- if ne $P.sidebar.display "remove" }} + {{- end }} +
+ +
+ + {{- block "main" . }}{{- end }} +
+
+
+ +
+ + + \ No newline at end of file diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 8aa3ce8..b359767 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -1,4 +1,2 @@ -{{- $scss := resources.Get "css/main.scss" }} -{{- $scss = $scss | resources.ExecuteAsTemplate "main.scss" . }} -{{- $css := $scss | toCSS (dict "targetPath" "/css/main.css" "outputStyle" "expanded") }} - \ No newline at end of file +{{- partial "head/meta" . }} +{{- partial "head/style" . }} \ No newline at end of file diff --git a/layouts/partials/head/meta.html b/layouts/partials/head/meta.html new file mode 100644 index 0000000..0bd0ce6 --- /dev/null +++ b/layouts/partials/head/meta.html @@ -0,0 +1,48 @@ +{{- if .P.darkmode }} + +{{- else }} + +{{- end }} +{{- if .P.googleSiteVerification }} + +{{- end }} +{{- with .P.bingSiteVerification }} + +{{- end }} +{{- with .P.yandexSiteVerification }} + +{{- end }} +{{- with .P.baiduSiteVerification }} + +{{- end }} +{{- $lang := .Scratch.Get "lang" }} +{{- $P := .P }} +{{- $Page := .Page }} +{{- with $P.openGraph }} +{{- if .enable }} + + + + + + + + +{{- with .twitter }} +{{- range $attr, $val := . }} + +{{- end }} +{{- end }} + +{{- with .googlePlus }} + +{{- end }} + +{{- with .facebook }} +{{- range $attr, $val := . }} + +{{- end }} +{{- end }} + +{{- end }} +{{- end }} diff --git a/layouts/partials/head/style.html b/layouts/partials/head/style.html new file mode 100644 index 0000000..d80bc48 --- /dev/null +++ b/layouts/partials/head/style.html @@ -0,0 +1,7 @@ + + +{{- $scss := resources.Get "css/main.scss" }} +{{- $scss = $scss | resources.ExecuteAsTemplate "main.scss" . }} +{{- $css := $scss | toCSS (dict "targetPath" "/css/main.css" "outputStyle" "expanded") }} + + \ No newline at end of file diff --git a/static/css/noscript.css b/static/css/noscript.css new file mode 100644 index 0000000..4b8e8bd --- /dev/null +++ b/static/css/noscript.css @@ -0,0 +1,30 @@ +body { margin-top: 2rem; } + +.use-motion .menu-item, +.use-motion .sidebar, +.use-motion .post-block, +.use-motion .pagination, +.use-motion .comments, +.use-motion .post-header, +.use-motion .post-body, +.use-motion .collection-header { + visibility: visible; +} + +.use-motion header.header, +.use-motion .site-brand-container .toggle, +.use-motion .footer { opacity: initial; } + +.use-motion .site-title, +.use-motion .site-subtitle, +.use-motion .custom-logo-image { + opacity: initial; + top: initial; +} + +.use-motion .logo-line { + transform: scaleX(1); +} + +.search-pop-overlay, .sidebar-nav { display: none; } +.sidebar-panel { display: block; } \ No newline at end of file