Skip to content

waynezhang/foto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

foto-cover

foto

Yet another another publishing tool for minimalist photographers.

Demo site: https://foto.lhzhang.com

Features

  • Simple One binary, three commands. No database.
  • Customizable Highly customizable by configuration and template files.
  • Fast Files are handled concurrently.

Install

macOS

$ brew tap waynezhang/tap
$ brew install foto

Or download the binary from here

Other platforms

Download the binary from here

Usage

Create a new site

~ $ foto create my_site
~ $ tree my_site
my_site
├── assets
│   ├── icons
│   │   ├── home.svg
│   │   ├── instagram.svg
│   │   └── twitter.svg
│   └── style.css
├── foto.toml # Configuration file, see below for more details.
├── media
│   └── avatar.jpg # Placeholder image for avatar.
└── templates
    └── template.html # Template file

Preview

~/my_site $ foto preview
Creating Preview...
Listening on 5000...

The default port number is 5000. It can be changed by -p flag.

Export

~/my_site $ foto export -o ~/site_docs
Exprorting sites to /Users/xxx/site_docs...

Clear cache

foto clear-cache

Customize

Basic customize foto.toml

Click to expand
[site]
# The title of the site
title = "A new site"
# The name of the author
author = "Author Here"

# Site navigation links
# You can remove any navigation links or add more link by adding following lines
#     [[site.nav]]
#     icon = ""
#     link = ""
# Navigation links are added in the order encountered.

[[site.nav]]
icon = "assets/icons/home.svg"
link = "https://"

[[site.nav]]
icon = "assets/icons/instagram.svg"
link = "https://instagram.com/xxx"

[[site.nav]]
icon = "assets/icons/twitter.svg"
link = "https://twitter.com/xxx"

# Setttings for photo size
[image]
# Width for thumbnail images
thumbnailWidth = 640
# Width for enlarged images
originalWidth = 2048

# Layout for grids
[layout]
minColumn = 1
maxColumn = 4
minWidth = 200

# Photo sections
# You can remove or add more sections by adding following lines
#     [[section]]
#     title = "section title"
#     text = "section description (HTML supported)"
#     slug = "section-slug"
#     folder = "folder of photos"
#     ascending = false
# Photo sections are added in the order encountered.
[[section]]
title = "Section 1"
text = ""
slug = "section-1"
folder = "~/photos/section-1"
ascending = false

[[section]]
title = "Section 2"
text = ""
slug = "section-2"
folder = "~/photos/section-2"
ascending = false

# Other setings
[others]
# Folders that should be copied together when exporting sites
folders = [ "assets", "media" ]
# Show `Generated by foto` footer or not
show_foto_footer = true

Style customize

Template and CSS styles can be modified without chagning foto binary.

The template file is placed in templates/template.html.

It's also possible to add additional settings in foto.toml (ref) and refer it in template file. foto uses html/template package in Golang. Please refer to this link for more information.

Changelogs

See CHANGELOG

LICENSE

See LICENSE

Credit

foto is highly inspried by moul.