1
0
mirror of https://github.com/alanorth/hugo-theme-bootstrap4-blog.git synced 2024-12-27 04:34:29 +01:00
Commit Graph

74 Commits

Author SHA1 Message Date
bf9bca9656
layouts: Add imageConfig to set height and width
Hugo 0.18 introduced the imageConfig function which allows you to
access the height and width of images, which makes bots consuming
the structured data happy.
2017-02-21 08:24:01 +02:00
4d7a544dac
layouts: Quote some parameters in JSON LD
Current Hugo 0.19-DEV doesn't quote these anymore, so we need to
add quotes manually. I'm not sure if this is a design decision or
not on Hugo's part.
2017-02-21 08:17:19 +02:00
d6cc7839ef
layouts/_default/list.html: Use .Date for modification time on nodes
I'm not sure if it really matters to bots who will parse this (it's
much more important on content pages of course), but using .Date on
nodes like the homepage and taxonomy terms pages will set the date
to be that of the latest post in that range—to me this does indeed
seem to be "time when the object was last updated"[0].

[0] https://developers.facebook.com/docs/reference/opengraph/object-type/website/
2017-01-22 14:58:13 +02:00
2459ad9567
layouts/_default/single.html: Simplify sharing icon logic
Allowing users to select specific icons they want to show makes the
configuration and logic a bit tricky. A user brought up the case of
disabling sharing icons on certain pages/posts, and it was actaully
not possible without adding lots of extra logic, not to mention the
pain of having to test all possible configurations.

Instead, it is much simpler to just allow sharing icons to be either
on or off as desired in the site config or page/post frontmatter:

  sharingicons = false

Otherwise, sharing icons default to being enabled, as this is most
in line with what would be expected on a "blog".
2017-01-21 19:16:57 +02:00
8ab05ae625
Add Schema.org implementation based on JSON-LD
This replaces the metadata that Hugo's own schema.html template had
been providing, but does so in JSON-LD notation rather than via the
use of <meta> tags (this is Google's currently recommended form of
specifying this markup). There are a few exceptions where I did not
follow the conventions used in Hugo's template, for example the use
of up to six images from a post's frontmatter, because Google's tool
only recognizes one image, as well as different logic for a post's
publish and modified dates (using enableGitInfo = true).

Using this new markup, Google's Structured Data Testing Tool is now
able to understand site metadata much better (before it was reading
none).

The implementation here is a mix of the elements and types from the
official Schema.org types—for example, Blog and BlogPosting—as well
as from Google's search documentation. Note that Google's docs are
geared towards AMP, where some metadata is required, while for non-
AMP pages the metadata is just recommended.

We will have to re-evaluate this in the future, for example to add
height and width information to image metadata.

See: https://schema.org/Blog
See: https://schema.org/BlogPosting
See: https://developers.google.com/search/docs/data-types/data-type-selector
See: https://search.google.com/structured-data/testing-tool
2017-01-20 15:58:30 +02:00
0e381ab120
Start using SRI hashes for CSS/JS assets
Uses Hugo's site data mechanism to load pre-generated asset hashes.
2017-01-11 10:42:49 +02:00
1f6cc0cf42
layouts/_default/single.html: Adjust Disqus logic
Bring the Disqus comments inside the <article> tag. The article has
a sizeable bottom margin seprating it from the blog footer, and if
Disqus comments are active they appear after this margin, and this
looks ugly.

Semantically, I think the comments should actually be inside the
article tag anyways (since they are directly related), as well as
further wrapped in article tags, but we don't control the code that
Disqus injects so we'll have to make do with this.

See: https://www.w3.org/TR/html5/sections.html#the-article-element
2017-01-07 11:22:45 +02:00
af39372a24
layouts/_default/baseof.html: Revert to simple "read more" link
Prepending the site's URL to relative links was a hack but at the
time I couldn't understand why href="#" didn't take us to the top
of the page. It turns out that this was because of the <base> tag
that I have now removed.
2017-01-05 15:23:09 +02:00
fa0df752a1
layouts/_default/baseof.html: Remove base tag
It was screwing up relative links like the ones in footnotes. I'm
not sure why I added it in the first place, actually, as the docs
specifically say "specifies the base URL to use for all relative
URLs contained within a document".

See: https://developer.mozilla.org/en/docs/Web/HTML/Element/base
2017-01-05 15:20:29 +02:00
ffb8487c13
layouts/_default/baseof.html: Remove second RSS link
link tags with rel="feed" don't seem to be valid. They are flagged
by the w3c validator and modern documentation only mentions the use
of rel="alternate", which we are already using.

See: https://validator.w3.org
See: https://developer.mozilla.org/en-US/docs/Web/RSS/Getting_Started/Syndicating
2017-01-05 14:34:10 +02:00
8616dd8c10
layouts/_default/baseof.html: Use .Site.RegularPages instead of .Site.Pages
Hugo 0.18 changes the pages returned by .Site.Pages, so we need to
use .Site.RegularPages in order to test the type.

See: https://github.com/spf13/hugo/releases/tag/v0.18
See: https://gohugo.io/templates/variables#site-variables
2016-12-25 17:56:24 +02:00
61201274fb
layouts/_default/single.html: Allow disabling of comments
To disable comments for a single page, set "comments = false" in
its frontmatter.
2016-12-24 17:18:03 +02:00
Mathieu GAUTHIER-LAFAYE
89f87e050b the "Back on top" link is now translatable. 2016-12-09 15:37:53 +01:00
DeedleFake
d0c9781d74 Add Permalink as prefix to back to top link href. (#22) 2016-11-29 17:07:28 +02:00
b52fac69b1
layouts: retab after addition of modelines
Done in vim using `gg=G` and then `:retab`.
2016-11-24 14:39:39 +02:00
DeedleFake
663f3db2a0 Add Vim Modeline Comments to Files (#18)
* Add Vim modeline comments to all relevent template files.

* Add Vim modeline comments to a few other files.

* Move modeline comments inside the template definitions in list and single.

For some odd reason, putting them outside breaks the page generation.

* Use template comments for modeline comments in templates.

* Fix form 2 modelines.
2016-11-24 14:33:56 +02:00
DeedleFake
b83b1683a7 Add ability to insert custom code into the global <head>. (#17)
* Add ability to insert custom code into the global <head>.
* Fix indentation.
2016-11-22 21:11:50 +02:00
abfc8ad15c
Make "→" in "Read more" part of the i18n strings
Eventually I'd like to support right-to-left languages like Arabic
and we'd need the arrow to point the other way for that.
2016-11-20 12:14:46 +02:00
Rassie Smit
aa7bd11522 Add custom navbar support
- default behaviour is backward compatible: all non-post pages
- optionally enable custom navbar using hugo menu functionality
2016-11-17 10:04:14 +00:00
Bjørn Erik Pedersen
a6ebe0a0b3 Rename RSSlink to RSSLink
The former will be deprecated and eventually removed from Hugo.

Note: Currently both of them exist in Hugo, which is the reason for the cleanup.
2016-11-17 09:12:17 +01:00
a66be324cc
Add plumbing for cookie consent
Set the cookie_consent_info_url parameter in your site's config to
display a message about cookie usage to your users. See the config
in `exampleSite/config.toml` for more info.
2016-11-13 14:13:17 +02:00
1f14455b12
layouts/_default/baseof.html: Don't indent go blocks
They get indented doubly in the generated HTML and look funny.
2016-11-09 15:42:39 +02:00
929d2d976a
layouts/_default/baseof.html: Improve handling of RSS
We are explicitly using the site's RSS feed, but after reading the
Hugo RSS docs I think it's better if we use the contextual version
of the RSSlink. This will make the RSS plumbing show a feed for the
current category, tag, section, etc. The example code also adds a
bit of markup to help browsers find the content more easily.

See: https://gohugo.io/templates/rss/
2016-11-09 15:39:23 +02:00
Frank Tegtmeyer
b81d5c54da Disqus integration for single nodes. 2016-11-01 15:25:44 +01:00
9d4d062152
layouts/_default/baseof.html: Remove optional sidebar hiding
As it is right now, the sidebar gets hidden but the blog's main
content stays on the left. Gotta look at the CSS to make the
container responsive.
2016-10-18 23:06:19 -04:00
2abe8b1cd3
layouts/_default/list.html: Only show pagination if necessary 2016-10-18 22:53:14 -04:00
cdcae6c8a4
layouts: Don't assume date_format is defined
User can override the date format with date_format, but we should
have a default in the case that the user hasn't defined it.
2016-10-17 23:39:41 -04:00
c49fa721ec
layouts/_default/baseof.html: Add support for Google Analytics
Sites only need to add their Google Analytics tracking ID to their
config:

  googleAnalytics = "UA-123-45"

This uses the async version of the Google Analytics code.
2016-10-14 22:10:01 -04:00
6e84974d2a
layouts/_default/baseof.html: Add "back to top" link in footer 2016-10-09 13:45:38 +03:00
142d330048
layouts/_default/baseof.html: Give credit to @mdo for theme 2016-10-09 13:38:49 +03:00
77b2cf9955
layouts/_default/baseof.html: Allow configuration of footer text
Uses the "copyright" parameter from the site's config that is pretty
standard among Hugo themes. Content can contain Markdown.
2016-10-09 13:36:07 +03:00
577fdd75ce
layouts/_default/single.html: Markdownify page title
In a multilingual context a post's title could be "Title" in English
but «Title» in Bulgarian, and if we apply the Markdown filter to the
title tag, then the language's Black Friday configuration is used,
in this example it would be for the angled quotes.

We already do this everywhere else we can in the post's content, so
let's match it in the page title.
2016-10-06 15:05:44 +03:00
d6328c34df
Remove anchor titles
I had only added these for accessibility, but after some research
it seems that assistive technologies don't use these.
2016-10-06 14:21:30 +03:00
3a6bed5be7
layouts: Use Markdown filter on titles
This makes it possible to have Black Friday config options like
quote style also affect post titles.
2016-10-06 14:17:59 +03:00
36a8a28d4c
layouts/_default/list.html: Remove debug code from pagination 2016-10-05 17:28:08 +03:00
a8d694d08c
Add pagination logic + i18n strings for en 2016-10-05 17:21:53 +03:00
70b4844c63
layouts/_default/list.html: Use paginator for page lists instead of custom stuff
Hugo's own pagination stuff works just as well and probably covers
even more corner cases. Also, this is one less config variable to
have to check because you can just use Paginate (Default: 10).
2016-10-05 15:45:38 +03:00
98a8c2b234
layouts/_default/baseof.html: Use template variable for RSS link
This is the whole site's RSS feed, not just posts. I suppose this
is better for multilingual sites, and sites with many pages.
2016-10-05 15:31:30 +03:00
f873452e6c
layouts/_default/baseof.html: Use current language for html element's lang attribute
You know you gotta specify the page content's language if possible,
right?

https://www.w3.org/International/questions/qa-http-and-lang
2016-10-04 11:22:53 +03:00
577e168da5
Use i18n to translate some strings
Hugo 0.17 allows for easy multi-lingual sites. Strings can be
translated either in the theme or in the site, and missing strings
will fall back to the default language.

See: https://github.com/spf13/hugo/blob/master/docs/content/content/multilingual.md
2016-10-03 22:58:22 +03:00
1a3ff61ef6
layouts/_default/single.html: Add basic support for multi-language content
Hugo 0.17 will allow you to write content and user interface strings
in multiple languages. Requires the user to amend their config a
bit though.

See: https://github.com/spf13/hugo/blob/master/docs/content/content/multilingual.md
2016-10-03 17:57:08 +03:00
48a6a82dcc
layouts/_default/summary.html: Remove extraneous spaces 2016-09-27 23:22:46 +03:00
d16fe216a5
layouts: Remove link from author name in summary/posts
There is no author archive yet, so this link doesn't go anywhere!
2016-09-27 23:21:01 +03:00
6a25f3eef1
layouts: Move all meta tags to head-meta.html partial 2016-09-26 09:26:00 +03:00
71413f55b6
layouts: Rename metadata partial 2016-09-26 09:23:13 +03:00
884713fc2a
layouts: Add theme support for categories and tags
Add categories/tags to front matter and they will be displayed on
summary and post pages, with links to taxonomy pages. Example:

  +++
  date = "2016-09-24T21:28:31+03:00"
  title = "Post title"
  categories = ["Nature"]
  tags = ["Wetland", "Oasis"]
  +++

For some reason if you add tags singularly, like:

  categories = "Nature"

you get index errors from Hugo. Not sure if I need to parse the
tags differently or just add more logic to test if the terms are
singular or not.
2016-09-26 08:32:46 +03:00
acde63b34f
layouts/_default/baseof.html: Make sidebar logic more robust
Check if the params.sidebar is defined before checking to see if
params.sidebar.hide is true or false. New sites might not have
their config set up properly, so this avoids an error in the case
that params.sidebar isn't defined yet.
2016-09-22 09:19:20 +03:00
9bb8294089
Add RSS feed for posts to base layout
Not sure who uses RSS anymore but Hugo automatically generates the
feed so we might as well advertise it.
2016-09-19 10:00:28 +03:00
72d5c94cc5
Add basic sharing icons to the bottom of posts
By default they are on, but you can disable them by adding the
following configuration value:

  [params.sharingicons]
    hide = true

If this parameter is undefined (or "false") then the icons will be
shown. Furthermore, you can disable specific icons by setting their
value to "false", ie:

  [params.sharingicons]
    facebook = false

Any icons not named will be shown. Currently there a four icons
configureg: facebook, googleplus, linkedin, and twitter.
2016-09-18 17:11:08 +03:00
731af8c564
layouts: Add basic support for OpenGraph and Twitter card metadata
Uses basic data like title, description, author, and date that we
are using with existing vanilla meta tags, but extends them to OG
and Twitter Card tags. See [0] and [1].

For the Twitter summary cards specifically, you can optionally add
attribution for your username by adding something like this to your
configuration:

  [params.social]
    twitter_username = "@mralanorth"

... and for posts with images, you can specify an "image" in the
post's front matter like so:

  image = "/2016/09/IMG_20160916_174409.jpg"

And then the theme will opt to use Twitter's "large" summary card.

[0] http://ogp.me/
[1] https://dev.twitter.com/cards/getting-started
2016-09-17 18:05:22 +03:00