feat: add Forestry.io integration
This commit is contained in:
		
							
								
								
									
										50
									
								
								.forestry/front_matter/templates/blog-post.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								.forestry/front_matter/templates/blog-post.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					label: Blog post
 | 
				
			||||||
 | 
					hide_body: false
 | 
				
			||||||
 | 
					fields:
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: title
 | 
				
			||||||
 | 
					  label: title
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: subtitle
 | 
				
			||||||
 | 
					  label: subtitle
 | 
				
			||||||
 | 
					- type: datetime
 | 
				
			||||||
 | 
					  name: date
 | 
				
			||||||
 | 
					  label: date
 | 
				
			||||||
 | 
					- type: list
 | 
				
			||||||
 | 
					  name: authors
 | 
				
			||||||
 | 
					  label: authors
 | 
				
			||||||
 | 
					- type: list
 | 
				
			||||||
 | 
					  name: tags
 | 
				
			||||||
 | 
					  label: tags
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: summary
 | 
				
			||||||
 | 
					  label: summary
 | 
				
			||||||
 | 
					- type: field_group
 | 
				
			||||||
 | 
					  name: image
 | 
				
			||||||
 | 
					  label: image
 | 
				
			||||||
 | 
					  fields:
 | 
				
			||||||
 | 
					  - type: number
 | 
				
			||||||
 | 
					    name: placement
 | 
				
			||||||
 | 
					    label: placement
 | 
				
			||||||
 | 
					  - type: text
 | 
				
			||||||
 | 
					    name: caption
 | 
				
			||||||
 | 
					    label: caption
 | 
				
			||||||
 | 
					  - type: text
 | 
				
			||||||
 | 
					    name: focal_point
 | 
				
			||||||
 | 
					    label: focal_point
 | 
				
			||||||
 | 
					    description: Image Focal Point (Smart, Center, TopLeft, Top, TopRight, Left, Right,
 | 
				
			||||||
 | 
					      BottomLeft, Bottom, BottomRight)
 | 
				
			||||||
 | 
					- name: projects
 | 
				
			||||||
 | 
					  type: list
 | 
				
			||||||
 | 
					  config:
 | 
				
			||||||
 | 
					    use_select: false
 | 
				
			||||||
 | 
					    min: 
 | 
				
			||||||
 | 
					    max: 
 | 
				
			||||||
 | 
					  label: projects
 | 
				
			||||||
 | 
					  description: Associate this content with a project by entering a project folder
 | 
				
			||||||
 | 
					    name
 | 
				
			||||||
 | 
					- name: featured
 | 
				
			||||||
 | 
					  type: boolean
 | 
				
			||||||
 | 
					  label: featured
 | 
				
			||||||
 | 
					  description: You can filter by featured content on your homepage
 | 
				
			||||||
							
								
								
									
										71
									
								
								.forestry/front_matter/templates/event.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								.forestry/front_matter/templates/event.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					label: Event
 | 
				
			||||||
 | 
					hide_body: true
 | 
				
			||||||
 | 
					fields:
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: title
 | 
				
			||||||
 | 
					  label: title
 | 
				
			||||||
 | 
					- name: subtitle
 | 
				
			||||||
 | 
					  type: text
 | 
				
			||||||
 | 
					  config:
 | 
				
			||||||
 | 
					    required: false
 | 
				
			||||||
 | 
					  label: subtitle
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: event
 | 
				
			||||||
 | 
					  label: event
 | 
				
			||||||
 | 
					  description: Name of the event (e.g. Academic Conference)
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: event_url
 | 
				
			||||||
 | 
					  label: Event Link
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: location
 | 
				
			||||||
 | 
					  label: location
 | 
				
			||||||
 | 
					- type: datetime
 | 
				
			||||||
 | 
					  name: publishDate
 | 
				
			||||||
 | 
					  label: publishDate
 | 
				
			||||||
 | 
					  description: When to publish this page (choose today)
 | 
				
			||||||
 | 
					- type: datetime
 | 
				
			||||||
 | 
					  name: date
 | 
				
			||||||
 | 
					  label: date
 | 
				
			||||||
 | 
					  description: Start time
 | 
				
			||||||
 | 
					- type: datetime
 | 
				
			||||||
 | 
					  name: date_end
 | 
				
			||||||
 | 
					  label: date_end
 | 
				
			||||||
 | 
					  description: End time
 | 
				
			||||||
 | 
					- type: boolean
 | 
				
			||||||
 | 
					  name: all_day
 | 
				
			||||||
 | 
					  label: all_day
 | 
				
			||||||
 | 
					- type: list
 | 
				
			||||||
 | 
					  name: authors
 | 
				
			||||||
 | 
					  label: Presenters
 | 
				
			||||||
 | 
					- type: textarea
 | 
				
			||||||
 | 
					  name: abstract
 | 
				
			||||||
 | 
					  label: abstract
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: url_slides
 | 
				
			||||||
 | 
					  label: url_slides
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: url_video
 | 
				
			||||||
 | 
					  label: url_video
 | 
				
			||||||
 | 
					- type: text
 | 
				
			||||||
 | 
					  name: url_code
 | 
				
			||||||
 | 
					  label: url_code
 | 
				
			||||||
 | 
					- type: field_group
 | 
				
			||||||
 | 
					  name: image
 | 
				
			||||||
 | 
					  label: image
 | 
				
			||||||
 | 
					  fields:
 | 
				
			||||||
 | 
					  - type: number
 | 
				
			||||||
 | 
					    name: placement
 | 
				
			||||||
 | 
					    label: placement
 | 
				
			||||||
 | 
					  - type: text
 | 
				
			||||||
 | 
					    name: caption
 | 
				
			||||||
 | 
					    label: caption
 | 
				
			||||||
 | 
					  - type: text
 | 
				
			||||||
 | 
					    name: focal_point
 | 
				
			||||||
 | 
					    label: focal_point
 | 
				
			||||||
 | 
					    description: Image Focal Point (Smart, Center, TopLeft, Top, TopRight, Left, Right,
 | 
				
			||||||
 | 
					      BottomLeft, Bottom, BottomRight)
 | 
				
			||||||
 | 
					- name: featured
 | 
				
			||||||
 | 
					  type: boolean
 | 
				
			||||||
 | 
					  label: featured
 | 
				
			||||||
 | 
					  description: You can filter by featured content on your homepage
 | 
				
			||||||
							
								
								
									
										56
									
								
								.forestry/settings.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								.forestry/settings.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					new_page_extension: md
 | 
				
			||||||
 | 
					auto_deploy: false
 | 
				
			||||||
 | 
					admin_path:
 | 
				
			||||||
 | 
					webhook_url:
 | 
				
			||||||
 | 
					sections:
 | 
				
			||||||
 | 
					- type: directory
 | 
				
			||||||
 | 
					  path: content/home
 | 
				
			||||||
 | 
					  label: Home
 | 
				
			||||||
 | 
					  create: all
 | 
				
			||||||
 | 
					  match: "**/*"
 | 
				
			||||||
 | 
					- type: directory
 | 
				
			||||||
 | 
					  path: content/post
 | 
				
			||||||
 | 
					  label: Blog posts
 | 
				
			||||||
 | 
					  create: all
 | 
				
			||||||
 | 
					  match: "**/*"
 | 
				
			||||||
 | 
					  templates:
 | 
				
			||||||
 | 
					  - blog-post
 | 
				
			||||||
 | 
					- type: directory
 | 
				
			||||||
 | 
					  path: content/project
 | 
				
			||||||
 | 
					  label: Projects
 | 
				
			||||||
 | 
					  create: all
 | 
				
			||||||
 | 
					  match: "**/*"
 | 
				
			||||||
 | 
					- type: directory
 | 
				
			||||||
 | 
					  path: content/talk
 | 
				
			||||||
 | 
					  label: Events
 | 
				
			||||||
 | 
					  create: all
 | 
				
			||||||
 | 
					  match: "**/*"
 | 
				
			||||||
 | 
					  templates:
 | 
				
			||||||
 | 
					    - event
 | 
				
			||||||
 | 
					- type: directory
 | 
				
			||||||
 | 
					  path: content/publication
 | 
				
			||||||
 | 
					  label: Publications
 | 
				
			||||||
 | 
					  create: all
 | 
				
			||||||
 | 
					  match: "**/*"
 | 
				
			||||||
 | 
					- type: directory
 | 
				
			||||||
 | 
					  path: content
 | 
				
			||||||
 | 
					  label: Pages
 | 
				
			||||||
 | 
					  create: all
 | 
				
			||||||
 | 
					  match: "*"
 | 
				
			||||||
 | 
					upload_dir: static/img
 | 
				
			||||||
 | 
					public_path: "/img"
 | 
				
			||||||
 | 
					front_matter_path: ''
 | 
				
			||||||
 | 
					use_front_matter_path: false
 | 
				
			||||||
 | 
					file_template: ":filename:"
 | 
				
			||||||
 | 
					build:
 | 
				
			||||||
 | 
					  preview_env:
 | 
				
			||||||
 | 
					  - HUGO_ENV=staging
 | 
				
			||||||
 | 
					  - HUGO_VERSION=0.58.2
 | 
				
			||||||
 | 
					  preview_output_directory: public
 | 
				
			||||||
 | 
					  preview_docker_image: forestryio/hugo:latest
 | 
				
			||||||
 | 
					  mount_path: "/srv"
 | 
				
			||||||
 | 
					  working_dir: "/srv"
 | 
				
			||||||
 | 
					  instant_preview_command: hugo server -D -E -F --port 8080 --bind 0.0.0.0 --renderToDisk
 | 
				
			||||||
 | 
					    -d public
 | 
				
			||||||
 | 
					version: 0.58.2
 | 
				
			||||||
							
								
								
									
										1
									
								
								config.toml
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								config.toml
									
									
									
									
									
										Symbolic link
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					./config/_default/config.toml
 | 
				
			||||||
@@ -31,6 +31,9 @@ subtitle = ""
 | 
				
			|||||||
  # Background image.
 | 
					  # Background image.
 | 
				
			||||||
  # image = "image.jpg"  # Name of image in `static/img/`.
 | 
					  # image = "image.jpg"  # Name of image in `static/img/`.
 | 
				
			||||||
  # image_darken = 0.6  # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque.
 | 
					  # image_darken = 0.6  # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque.
 | 
				
			||||||
 | 
					  # image_size = "cover"  #  Options are `cover` (default), `contain`, or `actual` size.
 | 
				
			||||||
 | 
					  # image_position = "center"  # Options include `left`, `center` (default), or `right`.
 | 
				
			||||||
 | 
					  # image_parallax = true  # Use a fun parallax-like fixed background effect? true/false
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  # Text color (true=light or false=dark).
 | 
					  # Text color (true=light or false=dark).
 | 
				
			||||||
  text_color_light = true
 | 
					  text_color_light = true
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,6 +26,9 @@ hero_media = "hero-academic.png"
 | 
				
			|||||||
  # Background image.
 | 
					  # Background image.
 | 
				
			||||||
  # image = ""  # Name of image in `static/img/`.
 | 
					  # image = ""  # Name of image in `static/img/`.
 | 
				
			||||||
  # image_darken = 0.6  # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque.
 | 
					  # image_darken = 0.6  # Darken the image? Range 0-1 where 0 is transparent and 1 is opaque.
 | 
				
			||||||
 | 
					  # image_size = "cover"  #  Options are `cover` (default), `contain`, or `actual` size.
 | 
				
			||||||
 | 
					  # image_position = "center"  # Options include `left`, `center` (default), or `right`.
 | 
				
			||||||
 | 
					  # image_parallax = true  # Use a fun parallax-like fixed background effect? true/false
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  # Text color (true=light or false=dark).
 | 
					  # Text color (true=light or false=dark).
 | 
				
			||||||
  text_color_light = true
 | 
					  text_color_light = true
 | 
				
			||||||
 
 | 
				
			|||||||
 Submodule themes/academic updated: 3911b8ff53...d8e90e9d64
									
								
							@@ -12,15 +12,26 @@ if [ ! -d .git ]; then
 | 
				
			|||||||
  exit 1;
 | 
					  exit 1;
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function view_update () {
 | 
				
			||||||
 | 
					  echo -e "Checking for updates...\n"
 | 
				
			||||||
 | 
					  cd themes/academic
 | 
				
			||||||
 | 
					  git fetch
 | 
				
			||||||
 | 
					  git log --pretty=oneline --abbrev-commit --decorate HEAD..origin/master
 | 
				
			||||||
 | 
					  cd ../../
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Function to update Academic
 | 
					# Function to update Academic
 | 
				
			||||||
function install_update () {
 | 
					function do_update () {
 | 
				
			||||||
  # Apply any updates
 | 
					  # Apply any updates
 | 
				
			||||||
  git submodule update --remote --merge
 | 
					  git submodule update --remote --merge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # - Update Netlify.toml with required Hugo version
 | 
					  # - Update Netlify.toml with required Hugo version
 | 
				
			||||||
  if [ -f ./netlify.toml ]; then
 | 
					  if [ -f ./netlify.toml ]; then
 | 
				
			||||||
    version=$(sed -n 's/^min_version = //p' themes/academic/theme.toml)
 | 
					    # Postfix '.0' to Hugo min_version as sadly it doesn't map to a precise semantic version.
 | 
				
			||||||
    sed -i '' -e "s/HUGO_VERSION = .*/HUGO_VERSION = $version/g" ./netlify.toml
 | 
					    version=$(sed -n 's/^min_version = //p' themes/academic/theme.toml | tr -d '"')
 | 
				
			||||||
 | 
					    version="${version}.0"
 | 
				
			||||||
 | 
					    echo "Set Netlify Hugo version to v${version}"
 | 
				
			||||||
 | 
					    sed -i '' -e "s/HUGO_VERSION = .*/HUGO_VERSION = \"$version\"/g" ./netlify.toml
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  echo
 | 
					  echo
 | 
				
			||||||
@@ -34,22 +45,7 @@ version=$(sed -n 's/^version = "//p' themes/academic/data/academic.toml)
 | 
				
			|||||||
echo -e "Source Themes Academic v$version\n"
 | 
					echo -e "Source Themes Academic v$version\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Display available updates
 | 
					# Display available updates
 | 
				
			||||||
echo -e "Checking for updates...\n"
 | 
					view_update
 | 
				
			||||||
cd themes/academic
 | 
					 | 
				
			||||||
git fetch
 | 
					 | 
				
			||||||
git log --pretty=oneline --abbrev-commit --decorate HEAD..origin/master
 | 
					 | 
				
			||||||
cd ../../
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
title="Do you wish to install the above updates?"
 | 
					# Apply any updates
 | 
				
			||||||
prompt="Choose an option and press Enter:"
 | 
					do_update
 | 
				
			||||||
options=("Yes" "No")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo "$title"
 | 
					 | 
				
			||||||
PS3="$prompt "
 | 
					 | 
				
			||||||
select opt in "${options[@]}"; do
 | 
					 | 
				
			||||||
    case $opt in
 | 
					 | 
				
			||||||
        Yes ) install_update; break;;
 | 
					 | 
				
			||||||
        No ) break;;
 | 
					 | 
				
			||||||
        * ) break;;
 | 
					 | 
				
			||||||
    esac
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user