I’ve finally had a chance to look at this. I have a couple of different suggestions for Author/Social metadata.
First, I’m not sure that map[string]string
is right for AuthorSocial
, but that could probably be (mostly) ameliorated with proper support from themes. I’ll have to think how I’d change cabaret
to support this. That said, there is one case where I think that map[string](map[string]string)
(if that can be represented cleanly in Go) would be better, and that’s Google+ and Facebook (and similar networks). If I’m presenting my social details in a linked list, I may not want to be listed as some.user.1632
, but as my given name. In my own site, I do something like this:
[[params.social]]
icon = "twitter"
site = "Twitter"
url = "https://twitter.com/halostatue"
user = "@halostatue"
Now, out of that, icon
could be automated based on the key name (and for that, I’ll suggest a different list of names, below); we can probably automate site
, but maybe not—that needs to be mapped somewhere, and it needs to be mapped in an I18n-ready way, probably (that list of names). url
can be automated based on the value provided, but user
…can’t be guaranteed to be automated. I mean, yes, Twitter is always @<username>
…but do you want to be +132342512342
if you haven’t claimed your Google+ name?
As a theme author/content producer, I need to have a way to specify that the site name may be different than the display name the user wants to show. That’s why I would prefer AuthorSocial
be map[string]interface{}
or map[string](map[string]string)
. This probably also applies to SiteSocial
, but I’m not sure how that’s used (I’m still at the top of the code in review).
Now, that list of names I suggest. You put googleplus
; I suggest google-plus
…because it’s the name of the Font Awesome icon for Google+. (And, with a lot of these, you can also put -square
after it for a squared version of the icon.) So, I have a few groups of suggested names:
Large Social Networks & Products
-
facebook
, flickr
, google-plus
, instagram
, linkedin
, pinterest
, qq
, renren
, skype
, spotify
, tencent-weibo
, tumblr
, twitter
, vimeo
, vine
, vk
, weibo
, weixin
, yahoo
, youtube
vimeo
is mildly problematic because its icon in FA is vimeo-square
, and vk
is short for vkontakte
(the major Russian social network). tencent-weibo
is different than weibo
(sometimes called Sina Weibo). These are the minimum that we should probably build some support for.
Smaller Social Networks & Products
-
bitbucket
, codepen
, delicious
, deviantart
, digg
, dropbox
, foursquare
, github
, hacker-news
, jsfiddle
, lastfm
, reddit
, slack
, slideshare
, soundcloud
, stack-exchange
, stack-overflow
, steam
, stumbleupon
, trello
, twitch
, xing
, yelp
These are ones that we, as developers, are more likely to be interested in. Yes, it’s a bit more than just developers, but these are what I (personally) consider to be second-order networks.
Useful Things Without Icons
-
keybase
, newsblur
, pinboard
, quora
, website
At least developer useful, but these also don’t have icons in FA. In particular, I do want keybase
to be on my social icons as an author, because that’s where you can find my GPG key, so I specify key
as the FA icon for that one. Imperfect, but it works.
More thoughts later as I get further through this.