docker exec -it my_hexo_container sh hexo generate
创建一个定制化主题的hexo镜像
dockerFile如下:(非最终版,自定义主题后的最终dockerFile在后面)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# node环境镜像 FROM node:17-alpine3.14 AS build-env # 把git撞上 RUN apk add --no-cache git # 安装 hexo RUN npm install hexo-cli -g RUN mkdir -p /usr/src/hexo-blog WORKDIR /usr/src/hexo-blog # 生成静态文件 RUN hexo init # 修改配置文件中的主题 RUN sed -i '100,100s/landscape/butterfly/g' _config.yml # 下载主题 RUN npm i hexo-theme-butterfly # 安装插件 RUN npm install hexo-renderer-pug hexo-renderer-stylus -g
# Site title: Alfred的小站 subtitle: '' description: '' keywords: author: Alfred language: zh-CN timezone: ''
# URL ## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project' url: http://alfredty.com permalink: :year/:month/:day/:title/ permalink_defaults: pretty_urls: trailing_index: true# Set to false to remove trailing 'index.html' from permalinks trailing_html: true# Set to false to remove trailing '.html' from permalinks
# Writing new_post_name: :title.md # File name of new posts default_layout: post titlecase: false# Transform title into titlecase external_link: enable: true# Open external links in new tab field: site # Apply to the whole site exclude: '' filename_case: 0 render_drafts: false post_asset_folder: false relative_link: false future: true highlight: enable: true line_number: true auto_detect: false tab_replace: '' wrap: true hljs: false prismjs: enable: false preprocess: true line_number: true tab_replace: ''
# Home page setting # path: Root path for your blogs index page. (default = '') # per_page: Posts displayed per page. (0 = disable pagination) # order_by: Posts order. (Order by date descending by default) index_generator: path: '' per_page: 10 order_by: -date
# Category & Tag default_category: uncategorized category_map: tag_map:
# Metadata elements ## https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta meta_generator: true
# Date / Time format ## Hexo uses Moment.js to parse and display date ## You can customize the date format as defined in ## http://momentjs.com/docs/#/displaying/format/ date_format: YYYY-MM-DD time_format: HH:mm:ss ## updated_option supports 'mtime', 'date', 'empty' updated_option: 'mtime'
# Pagination ## Set per_page to 0 to disable pagination per_page: 10 pagination_dir: page
# Include / Exclude file(s) ## include:/exclude: options only apply to the 'source/' folder include: exclude: ignore:
# Math (數學) # -------------------------------------- # About the per_page # if you set it to true, it will load mathjax/katex script in each page (true 表示每一頁都加載js) # if you set it to false, it will load mathjax/katex script according to your setting (add the 'mathjax: true' in page's front-matter) # (false 需要時加載,須在使用的 Markdown Front-matter 加上 mathjax: true)
# If the banner of page not setting, it will show the top_img default_top_img:
# The banner image of archive page archive_img:
# If the banner of tag page not setting, it will show the top_img # note: tag page, not tags page (子標籤頁面的 top_img) tag_img:
# The banner image of tag page # format: # - tag name: xxxxx tag_per_img:
# If the banner of category page not setting, it will show the top_img # note: category page, not categories page (子分類頁面的 top_img) category_img:
# The banner image of category page # format: # - category name: xxxxx category_per_img:
cover: # display the cover or not (是否顯示文章封面) index_enable: true aside_enable: true archives_enable: true # the position of cover in home page (封面顯示的位置) # left/right/both position: both # When cover is not set, the default cover is displayed (當沒有設置cover時,默認的封面顯示) default_cover: - https://alfred-img.oss-cn-chengdu.aliyuncs.com/img/20220118000557.jpg - https://alfred-img.oss-cn-chengdu.aliyuncs.com/img/20220117235921.jpg - https://alfred-img.oss-cn-chengdu.aliyuncs.com/img/20220118000153.png - https://alfred-img.oss-cn-chengdu.aliyuncs.com/img/20220118000106.jpg # - https://i.loli.net/2020/05/01/gkihqEjXxJ5UZ1C.jpg
# A simple 404 page error_404: enable: false subtitle: 'Page Not Found' background: https://i.loli.net/2020/05/19/aKOcLiyPl2JQdFD.png
post_meta: page: # Home Page date_type: created # created or updated or both 主頁文章日期是創建日或者更新日或都顯示 date_format: date# date/relative 顯示日期還是相對日期 categories: true# true or false 主頁是否顯示分類 tags: false# true or false 主頁是否顯示標籤 label: true# true or false 顯示描述性文字 post: date_type: both # created or updated or both 文章頁日期是創建日或者更新日或都顯示 date_format: date# date/relative 顯示日期還是相對日期 categories: true# true or false 文章頁是否顯示分類 tags: true# true or false 文章頁是否顯示標籤 label: true# true or false 顯示描述性文字
# Display the article introduction on homepage # 1: description # 2: both (if the description exists, it will show description, or show the auto_excerpt) # 3: auto_excerpt (default) # false: do not show the article introduction index_post_content: method: 3 length: 500 # if you set method to 2 or 3, the length need to config
# anchor # when you scroll in post, the URL will update according to header id. anchor: false
# Post # --------------------------------------
# toc (目錄) toc: post: true page: false number: true expand: false style_simple: false# for post
# Post edit # Easily browse and edit blog source code online. post_edit: enable: false # url: https://github.com/user-name/repo-name/edit/branch-name/subdirectory-name/ # For example: https://github.com/jerryc127/butterfly.js.org/edit/main/source/ url:
# Related Articles related_post: enable: true limit: 6 # Number of posts displayed date_type: created # or created or updated 文章日期顯示創建日或者更新日
# figcaption (圖片描述文字) photofigcaption: false
# post_pagination (分頁) # value: 1 || 2 || false # 1: The 'next post' will link to old post # 2: The 'next post' will link to new post # false: disable pagination post_pagination: 1
# Displays outdated notice for a post (文章過期提醒) noticeOutdate: enable: false style: flat # style: simple/flat limit_day: 500 # When will it be shown position: top # position: top/bottom message_prev: It has been message_next: days since the last update, the content of the article may be outdated.
# Share System (分享功能) # --------------------------------------
# Comments System # --------------------------------------
comments: # Up to two comments system, the first will be shown as default # Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus use: # Valine,Disqus text: true# Display the comment name next to the button # lazyload: The comment system will be load when comment element enters the browser's viewport. # If you set it to true, the comment count will be invalid lazyload: false count: false# Display comment count in post's top_img card_post_count: false# Display comment count in Home Page
# valine # https://valine.js.org valine: appId: # leancloud application app id appKey: # leancloud application app key avatar: monsterid # gravatar style https://valine.js.org/#/avatar serverURLs: # This configuration is suitable for domestic custom domain name users, overseas version will be automatically detected (no need to manually fill in) bg: # valine background visitor: false option:
# waline - A simple comment system with backend support fork from Valine # https://waline.js.org/ waline: serverURL: # Waline server address url bg: # waline background visitor: false option:
# Facebook Comments Plugin # https://developers.facebook.com/docs/plugins/comments/ facebook_comments: app_id: user_id: # optional pageSize: 10 # The number of comments to show order_by: social # social/time/reverse_time lang: en_US # Language en_US/zh_CN/zh_TW and so on
# The top_img settings of home page # default: top img - full screen, site info - middle (默認top_img全屏,site_info在中間) # The position of site info, eg: 300px/300em/300rem/10% (主頁標題距離頂部距離) index_site_info_top: # The height of top_img, eg: 300px/300em/300rem (主頁top_img高度) index_top_img_height:
# The user interface setting of category and tag page (category和tag頁的UI設置) # index - same as Homepage UI (index 值代表 UI將與首頁的UI一樣) # default - same as archives UI 默認跟archives頁面UI一樣 category_ui: # 留空或 index tag_ui: # 留空或 index
# Website Background (設置網站背景) # can set it to color or image (可設置圖片 或者 顔色) # The formal of image: url(http://xxxxxx.com/xxx.jpg) background:
# Footer Background footer_bg: false
# the position of bottom right button/default unit: px (右下角按鈕距離底部的距離/默認單位為px) rightside-bottom:
# Enter transitions (開啓網頁進入效果) enter_transitions: true
# canvas_nest # https://github.com/hustcc/canvas-nest.js canvas_nest: enable: false color: '0,0,255'#color of lines, default: '0,0,0'; RGB values: (R,G,B).(note: use ',' to separate.) opacity: 0.7 # the opacity of line (0~1), default: 0.5. zIndex: -1 # z-index property of the background, default: -1. count: 99 # the number of lines, default: 99. mobile: false
# Global font settings # Don't modify the following settings unless you know how they work (非必要不要修改) font: global-font-size: code-font-size: font-family: code-font-family:
# Font settings for the site title and site subtitle # 左上角網站名字 主頁居中網站名字 blog_title_font: font_link: font-family:
# The setting of divider icon (水平分隔線圖標設置) hr_icon: enable: true icon: # the unicode value of Font Awesome icon, such as '\3423' icon-top:
aside: enable: true hide: false button: true mobile: true# display on mobile position: right # left or right card_author: enable: true description: button: enable: true icon: fab fa-github text: Follow Me link: https://github.com/xxxxxx card_announcement: enable: true content: This is my Blog card_recent_post: enable: true limit: 5 # if set 0 will show all sort: date# date or updated sort_order: # Don't modify the setting unless you know how it works card_categories: enable: true limit: 8 # if set 0 will show all expand: none # none/true/false sort_order: # Don't modify the setting unless you know how it works card_tags: enable: true limit: 40 # if set 0 will show all color: false sort_order: # Don't modify the setting unless you know how it works card_archives: enable: true type: monthly # yearly or monthly format: MMMM YYYY # eg: YYYY年MM月 order: -1 # Sort of order. 1, asc for ascending; -1, desc for descending limit: 8 # if set 0 will show all sort_order: # Don't modify the setting unless you know how it works card_webinfo: enable: true post_count: true last_push_date: true sort_order: # Don't modify the setting unless you know how it works
# busuanzi count for PV / UV in site # 訪問人數 busuanzi: site_uv: true site_pv: true page_pv: true
# Time difference between publish date and now (網頁運行時間) # Formal: Month/Day/Year Time or Year/Month/Day Time runtimeshow: enable: false publish_date:
# Aside widget - Newest Comments newest_comments: enable: false sort_order: # Don't modify the setting unless you know how it works limit: 6 storage: 10 # unit: mins, save data to localStorage avatar: true
# Bottom right button (右下角按鈕) # --------------------------------------
# Conversion between Traditional and Simplified Chinese (簡繁轉換) translate: enable: false # The text of a button default: 繁 # the language of website (1 - Traditional Chinese/ 2 - Simplified Chinese) defaultEncoding: 2 # Time delay translateDelay: 0 # The text of the button when the language is Simplified Chinese msgToTraditionalChinese: '繁' # The text of the button when the language is Traditional Chinese msgToSimplifiedChinese: '簡'
# Read Mode (閲讀模式) readmode: true
# dark mode darkmode: enable: true # Toggle Button to switch dark/light mode button: true # Switch dark/light mode automatically (自動切換 dark mode和 light mode) # autoChangeMode: 1 Following System Settings, if the system doesn't support dark mode, it will switch dark mode between 6 pm to 6 am # autoChangeMode: 2 Switch dark mode between 6 pm to 6 am # autoChangeMode: false autoChangeMode: false
# Don't modify the following settings unless you know how they work (非必要請不要修改 ) # Choose: readmode,translate,darkmode,hideAside,toc,chat,comment # Don't repeat 不要重複 rightside_item_order: enable: false hide: # readmode,translate,darkmode,hideAside show: # toc,chat,comment
# Lightbox (圖片大圖查看模式) # -------------------------------------- # You can only choose one, or neither (只能選擇一個 或者 兩個都不選)
# Tag Plugins settings (標籤外掛) # --------------------------------------
# mermaid # see https://github.com/mermaid-js/mermaid mermaid: enable: false # built-in themes: default/forest/dark/neutral theme: light: default dark: dark
# Note (Bootstrap Callout) note: # Note tag style values: # - simple bs-callout old alert style. Default. # - modern bs-callout new (v2-v3) alert style. # - flat flat callout style with background, like on Mozilla or StackOverflow. # - disabled disable all CSS styles import of note tag. style: flat icons: true border_radius: 3 # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6). # Offset also applied to label tag variables. This option can work with disabled note tag. light_bg_offset: 0
# other # --------------------------------------
# Pjax # It may contain bugs and unstable, give feedback when you find the bugs. # https://github.com/MoOx/pjax pjax: enable: false exclude: # - xxxx # - xxxx
# Inject the css and script (aplayer/meting) aplayerInject: enable: false per_page: true
# Snackbar (Toast Notification 彈窗) # https://github.com/polonel/SnackBar # position 彈窗位置 # 可選 top-left / top-center / top-right / bottom-left / bottom-center / bottom-right snackbar: enable: false position: bottom-left bg_light: '#49b1f5'# The background color of Toast Notification in light mode bg_dark: '#121212'# The background color of Toast Notification in dark mode
# https://github.com/vinta/pangu.js # Insert a space between Chinese character and English character (中英文之間添加空格) pangu: enable: false field: site # site/post