Add instagram_simple shortcode

Fixes #4748
This commit is contained in:
Bjørn Erik Pedersen
2018-05-23 12:26:10 +02:00
parent 4256de3392
commit 9ad46a2035
8 changed files with 134 additions and 4 deletions

View File

@@ -1,4 +1,5 @@
{{ define "__h_simple_css" }}{{/* This is also used in other "simple" variants. These template definitions are global. */}}
{{ define "__h_simple_css" }}{{/* These template definitions are global. */}}
{{/* TODO(bep) rename this to Youtube something. We need to add these per service. */}}
{{ if not (.Page.Scratch.Get "__h_simple_css") }}
{{/* Only include once */}}
{{ .Page.Scratch.Set "__h_simple_css" true }}

View File

@@ -1,4 +1,10 @@
{{- $pc := .Page.Site.Config.Privacy.Instagram -}}
{{- if not $pc.Disable -}}
{{ if len .Params | eq 2 }}{{ if eq (.Get 1) "hidecaption" }}{{ with getJSON "https://api.instagram.com/oembed/?url=https://instagram.com/p/" (index .Params 0) "/&hidecaption=1" }}{{ .html | safeHTML }}{{ end }}{{ end }}{{ else }}{{ with getJSON "https://api.instagram.com/oembed/?url=https://instagram.com/p/" (index .Params 0) "/&hidecaption=0" }}{{ .html | safeHTML }}{{ end }}{{ end }}
{{- if $pc.Simple -}}
{{ template "_internal/shortcodes/instagram_simple.html" . }}
{{- else -}}
{{ $id := .Get 0 }}
{{ $hideCaption := cond (eq (.Get 1) "hidecaption") "1" "0" }}
{{ with getJSON "https://api.instagram.com/oembed/?url=https://instagram.com/p/" $id "/&hidecaption=" $hideCaption }}{{ .html | safeHTML }}{{ end }}
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1,48 @@
{{- $pc := .Page.Site.Config.Privacy.Instagram -}}
{{- $sc := .Page.Site.Config.Services.Instagram -}}
{{- if not $pc.Disable -}}
{{- $id := .Get 0 -}}
{{- $item := getJSON "https://api.instagram.com/oembed/?url=https://www.instagram.com/p/" $id "/&maxwidth=640&omitscript=true" -}}
{{- $class1 := "__h_instagram" -}}
{{- $class2 := "s_instagram_simple" -}}
{{- $hideCaption := (eq (.Get 1) "hidecaption") -}}
{{ with $item }}
{{- $mediaURL := printf "https://instagram.com/p/%s/" $id | safeURL -}}
{{- if not $sc.DisableInlineCSS -}}
{{ template "__h_simple_instagram_css" $ }}
{{- end -}}
<div class="{{ $class1 }} {{ $class2 }} card" style="max-width: {{ $item.thumbnail_width }}px">
<div class="card-header">
<a href="{{ $item.author_url | safeURL }}" class="card-link">{{ $item.author_name }}</a>
</div>
<a href="{{ $mediaURL }}" target="_blank"><img class="card-img-top img-fluid" src="{{ $item.thumbnail_url }}" width="{{ $item.thumbnail_width }}" height="{{ $item.thumbnail_height }}" alt="Instagram Image"></a>
<div class="card-body">
{{ if not $hideCaption }}<p class="card-text"><a href="{{ $item.author_url | safeURL }}" class="card-link">{{ $item.author_name }}</a> {{ $item.title}}</p>{{ end }}
<a href="{{ $item.author_url | safeURL }}" class="card-link">Vew More on Instagram</a>
</div>
</div>
{{ end }}
{{- end -}}
{{ define "__h_simple_instagram_css" }}
{{ if not (.Page.Scratch.Get "__h_simple_instagram_css") }}
{{/* Only include once */}}
{{ .Page.Scratch.Set "__h_simple_instagram_css" true }}
<style type="text/css">
.__h_instagram.card {
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
font-size: 14px;
border: 1px solid rgb(219, 219, 219);
padding: 0;
margin: 0;
}
.__h_instagram.card .card-header, .__h_instagram.card .card-body {
padding: 10px 10px 10px;
}
.__h_instagram.card img {
width: 100%;
height: auto;
}
</style>
{{ end }}
{{ end }}