+{{end}}
diff --git a/pages/landing.tmpl b/pages/landing.tmpl
new file mode 100644
index 0000000..397a261
--- /dev/null
+++ b/pages/landing.tmpl
@@ -0,0 +1,117 @@
+{{define "head"}}
+
+
+
Join the Fediverse
+
The fediverse is a large network of platforms that all speak a common language. Imagine if you could reply to Instagram posts from Twitter, or interact with your favorite Medium blogs from Facebook — federated alternatives like PixelFed , Mastodon , and Write Freely enable you to do these types of things.
+
+
+
+
+
+
Write More Socially
+
Write Freely can communicate with other federated platforms like Mastodon, so people can follow your blogs, bookmark their favorite posts, and boost them to their followers. Sign up above to create a blog and join the fediverse.
+
+
+{{ end }}
+
+{{end}}
diff --git a/pages/login.tmpl b/pages/login.tmpl
new file mode 100644
index 0000000..411da50
--- /dev/null
+++ b/pages/login.tmpl
@@ -0,0 +1,30 @@
+{{define "head"}}
+
Log in to {{.SiteName}}
+
+ {{if .Flashes}}
+ {{range .Flashes}}{{.}} {{end}}
+ {{end}}
+
+
+
+
{{if .Message}}{{.Message}}{{else}}No account yet? Sign up to start a blog.{{end}}
+
+
+{{end}}
diff --git a/pages/privacy.tmpl b/pages/privacy.tmpl
new file mode 100644
index 0000000..9c8c2c0
--- /dev/null
+++ b/pages/privacy.tmpl
@@ -0,0 +1,7 @@
+{{define "head"}}
{{.SiteName}} Privacy Policy
+{{end}}
+{{define "content"}}
+
Privacy Policy
+
We protect your privacy! Like, for real.
+
+{{end}}
diff --git a/templates/base.tmpl b/templates/base.tmpl
new file mode 100644
index 0000000..365770e
--- /dev/null
+++ b/templates/base.tmpl
@@ -0,0 +1,55 @@
+{{define "base"}}
+
+
+ {{ template "head" . }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{if .HeaderNav}}
+
+
+ About
+ Log in
+
+
+ {{end}}
+
+
+
+ {{ template "content" . }}
+
+
+ {{ template "footer" . }}
+
+ {{if not .JSDisabled}}
+
+ {{else}}
+ {{if .WebFonts}}
{{end}}
+ {{end}}
+
+{{end}}
diff --git a/templates/collection-post.tmpl b/templates/collection-post.tmpl
new file mode 100644
index 0000000..289ee60
--- /dev/null
+++ b/templates/collection-post.tmpl
@@ -0,0 +1,135 @@
+{{define "post"}}
+
+
+
+
+
{{.PlainDisplayTitle}} — {{.Collection.DisplayTitle}}
+
+
+
+
+
+
+
+
+ {{if gt .Views 1}}
+
{{end}}
+
+
+
+
+
+
+ {{if gt (len .Images) 0}}
{{else}}
{{end}}
+
+
+
+
+
+
+ {{range .Images}}
{{else}}
{{end}}
+
+ {{if .Collection.StyleSheet}}{{end}}
+ {{if .Collection.RenderMathJax}}
+
+ {{end}}
+
+
+
+
+
+
+
+
+
+ {{if .PinnedPosts}}
+ {{range .PinnedPosts}}{{.PlainDisplayTitle}} {{end}}
+ {{end}}
+ {{ if .IsOwner }}{{largeNumFmt .Views}} {{pluralize "view" "views" .Views}}
+ Edit
+ {{if .IsPinned}}Unpin {{end}}
+ {{ end }}
+
+
+
+
{{if .IsScheduled}}Scheduled
{{end}}{{if .Title.String}}{{.FormattedDisplayTitle}} {{end}}{{.HTMLContent}}
+
+ {{ if .Collection.ShowFooterBranding }}
+
+ {{ end }}
+
+
+ {{if .Collection.CanShowScript}}
+ {{range .Collection.ExternalScripts}}{{end}}
+ {{if .Collection.Script}}{{end}}
+ {{end}}
+
+{{end}}
diff --git a/templates/collection-tags.tmpl b/templates/collection-tags.tmpl
new file mode 100644
index 0000000..5550b42
--- /dev/null
+++ b/templates/collection-tags.tmpl
@@ -0,0 +1,198 @@
+{{define "collection-tags"}}
+
+
+
+
+
{{.Tag}} — {{.Collection.DisplayTitle}}
+
+
+
+ {{if not .Collection.IsPrivate}}
{{end}}
+
+
+
+
+
+
+
+ {{if gt .Views 1}}
+
{{end}}
+
+
+
+
+
+
+
+
+
+
+ {{if .Collection.StyleSheet}}{{end}}
+ {{if .Collection.RenderMathJax}}
+
+ {{end}}
+
+
+
+
+
+
+
+
+
+ {{if .PinnedPosts}}
+ {{range .PinnedPosts}}{{.DisplayTitle}} {{end}}
+ {{end}}
+
+
+
+ {{if .Posts}}
{{else}}{{end}}
+
{{.Tag}}
+ {{template "posts" .}}
+ {{if .Posts}}{{else}}{{end}}
+
+ {{ if .Collection.ShowFooterBranding }}
+
+ {{ end }}
+
+
+ {{if .CanShowScript}}
+ {{range .ExternalScripts}}{{end}}
+ {{if .Collection.Script}}{{end}}
+ {{end}}
+ {{if .IsOwner}}
+
+
+ {{end}}
+
+{{end}}
diff --git a/templates/collection.tmpl b/templates/collection.tmpl
new file mode 100644
index 0000000..33c6317
--- /dev/null
+++ b/templates/collection.tmpl
@@ -0,0 +1,225 @@
+{{define "collection"}}
+
+
+
+
+ {{.DisplayTitle}}{{if not .SingleUser}} — {{.SiteName}}{{end}}
+
+
+
+
+ {{if gt .CurrentPage 1}} {{end}}
+ {{if lt .CurrentPage .TotalPages}} {{end}}
+ {{if not .IsPrivate}} {{end}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{if .StyleSheet}}{{end}}
+ {{if .RenderMathJax}}
+
+ {{end}}
+
+
+
+ {{if .IsOwner}} {{end}}
+
+
+
+ {{if .Description}}{{.Description}}
{{end}}
+ {{/*if not .Public/*}}
+
+ {{/*end*/}}
+ {{if .PinnedPosts}}
+ {{range .PinnedPosts}}{{.PlainDisplayTitle}} {{end}}
+ {{end}}
+
+
+ {{if .Posts}}{{else}}{{end}}
+
+ {{if .ShowFooterBranding }}
+
+ {{ end }}
+
+
+ {{if .CanShowScript}}
+ {{range .ExternalScripts}}{{end}}
+ {{if .Script}}{{end}}
+ {{end}}
+
+
+
+{{end}}
diff --git a/templates/edit-meta.tmpl b/templates/edit-meta.tmpl
new file mode 100644
index 0000000..026dd49
--- /dev/null
+++ b/templates/edit-meta.tmpl
@@ -0,0 +1,371 @@
+{{define "edit-meta"}}
+
+
+
+ Edit metadata: {{if .Post.Title}}{{.Post.Title}}{{else}}{{.Post.Id}}{{end}} — {{.SiteName}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{{end}}
diff --git a/templates/include/footer.tmpl b/templates/include/footer.tmpl
new file mode 100644
index 0000000..8abe64e
--- /dev/null
+++ b/templates/include/footer.tmpl
@@ -0,0 +1,25 @@
+{{define "footer"}}
+
+{{end}}
diff --git a/templates/include/posts.tmpl b/templates/include/posts.tmpl
new file mode 100644
index 0000000..165311b
--- /dev/null
+++ b/templates/include/posts.tmpl
@@ -0,0 +1,53 @@
+{{ define "posts" }}
+{{ range $el := .Posts }}
+ {{if .IsScheduled}}Scheduled
{{end}}
+ {{if .Title.String}}{{if .HasTitleLink}}{{.HTMLTitle}} view {{else}}{{.HTMLTitle}} {{end}}
+ {{if $.IsOwner}}
+ edit
+ {{if $.CanPin}}pin {{end}}
+ delete
+ {{if gt (len $.Collections) 1}}
+
+
+ Draft
+ {{range $.Collections}}{{if ne .Alias $.Alias}}{{.DisplayTitle}} {{end}}{{end}}
+
+
move to...
+
+
{{else}}
+ {{range $.Collections}}
+ change to draft
+ {{end}}
+ {{end}}
+ {{end}}
+
+ {{if $.Format.ShowDates}}{{if not .Title.String}}{{end}}{{.DisplayDate}}{{if not .Title.String}} {{end}} {{end}}
+{{else}}
+
+ {{if $.Format.ShowDates}}{{.DisplayDate}} {{end}}
+ {{if $.IsOwner}}
+ {{if not $.Format.ShowDates}}view {{end}}
+ edit
+ {{if $.CanPin}}pin {{end}}
+ delete
+ {{if gt (len $.Collections) 1}}
+
+
+ Draft
+ {{range $.Collections}}{{if ne .Alias $.Alias}}{{.DisplayTitle}} {{end}}{{end}}
+
+
move to...
+
+
{{else}}
+ {{range $.Collections}}
+ change to draft
+ {{end}}
+ {{end}}
+ {{end}}
+
+{{end}}
+
+{{if .Excerpt}}{{if and (and (not $.IsOwner) (not $.Format.ShowDates)) (not .Title.String)}}
view {{end}}{{.Excerpt}}
+
+{{localstr "Read more..." .Language.String}} {{else}}{{if and (and (not $.IsOwner) (not $.Format.ShowDates)) (not .Title.String)}}
view {{end}}{{.HTMLContent}}
{{end}} {{ end }}
+{{ end }}
diff --git a/templates/password-collection.tmpl b/templates/password-collection.tmpl
new file mode 100644
index 0000000..d6116af
--- /dev/null
+++ b/templates/password-collection.tmpl
@@ -0,0 +1,75 @@
+{{define "password-collection"}}
+
+
+
+
+ {{.DisplayTitle}}{{if not .SingleUser}} — {{.SiteName}}{{end}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{if .StyleSheet}}{{end}}
+
+
+
+
+
+
+
+
+
+
+ {{if and .Script .CanShowScript}}{{end}}
+
+
+
+{{end}}
diff --git a/templates/post.tmpl b/templates/post.tmpl
new file mode 100644
index 0000000..53e2bd8
--- /dev/null
+++ b/templates/post.tmpl
@@ -0,0 +1,97 @@
+{{define "post"}}
+
+
+
+
+ {{if .Title}}{{.Title}}{{else}}{{.GenTitle}}{{end}} — {{.SiteName}}
+
+ {{if .IsCode}}
+
+ {{end}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{if gt .Views 1}}
+ {{end}}
+
+
+
+
+
+
+
+ {{if .Author}} {{end}}
+
+
+
+
+
+
+
+ {{largeNumFmt .Views}} {{pluralize "view" "views" .Views}}
+ {{if .IsCode}}View raw {{end}}
+ {{ if .Username }}
+ {{if .IsOwner}}
+ Edit
+ {{end}}
+ Drafts
+ {{ end }}
+
+
+
+ {{if .Title}}{{.Title}} {{end}}{{ if .IsPlainText }}{{.Content}}
{{ else }}{{.HTMLContent}}
{{ end }}
+
+
+
+
+ {{if .IsCode}}
+
+
+ {{else}}
+
+ {{if .IsPlainText}}{{end}}
+ {{end}}
+
+{{end}}