Nachmittags wieder lustig spielen mit meiner Nichte. Der Esel war heute sehr vergesslich. Nach 17:00 dann eine kurze Runde joggen. Gans zum Abendessen und danach wieder an der Website gebaut.
Neue Version vom Stack Theme gezogen per:
git submodule update --remote --merge
Interessante Doku über Osho und Deutsche in der ARD gegen Mitternacht.
In der Nacht bastelte ich weiter. Mir ist noch nicht ganz klar, welches Template eigentlich das Richtige für die /latest Section wäre. Es geht einfach alles mit dem Lookup, wobei ich ja nur eine Listenversion als JSON rendern will. Jedenfalls war „jsonify“ wichtig im Template, nur beim content machte ich per regex und truncate mir die Sache besser als ecaptes HTML.
Per AlpineJS schaffte ich den Import in die Site per fetch. Zuerst nur lokal wegen CORS und keine Ahnung, ob ich das überhaupt bei Hugos lokalem Server ändern kann. Eine Kopie in die img-Dir half als Testlösung.
Nach und nach bekam ich die Sache hin – hatte eben ein Object und brauchte eigentlich nur die einfachen Definitionen aus dem JSON. Naja, wenig Ahnung aber es klappte alles – sogar die Links mit x-bind.
[
{
{{- $posts := where site.RegularPages "Type" "in" site.Params.mainSections -}}
{{- range first 1 $posts -}}
{{ $date := .Params.Date.Format "2006-01-02" }}
"title": {{ .Params.Title | jsonify }},
"date": {{ $date | jsonify }},
"author": {{ .Params.Author | jsonify }},
"description": {{ .Params.Description | jsonify }},
"categories": {{ .Params.Categories | jsonify }},
"series": {{ .Params.Series | jsonify }},
"tags" : {{ .Params.Tags | jsonify }},
"film_date": {{ .Params.Film_date | jsonify }},
"duration": {{ .Params.Duration | jsonify }},
"image": {{ .Params.Image | jsonify }},
"youtube_id": {{ .Params.Youtube_id | jsonify }},
"url": {{ .Permalink | absURL | jsonify }},
"content": "{{ substr .RawContent 5 | truncate 250 | replaceRE "\n" "
" | safeHTML }}"
{{- end }}
}
]
Die Tage dann die YouTube Scraping Sachen und eventuell noch ein paar weitere Stats, die ab und zu mal Updates brauchen. Einige Seiten (Sponsorship, Contact, FAQ) wären auch noch zu machen. Ich haue die alle in die /videos Directory und Hugo, weil ich nicht noch mit neuen Templates oder CMS anfangen will. Dann muss ich noch die Links sortieren und komme dem Ende langsam näher. Wenn was funktioniert, macht die Sache schon Spaß. Im großen Lauf der Dinge scheinen Hobby Webseiten aber irrelevant. Ist eben ein Ego Ding irgendwie…und auch mögliche Abmahnquelle leider in Deutschland.
Am Wichtigsten wird der Flow: YouTube JSON ziehen -> Post in Hugo generieren. Das geht bisher nur mit dem aktuellen YouTube-ID, den ich wohl auch noch irgendwie per cronjob zur rechten Zeit erhalten kann laut SO:
GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=1&order=date&type=video&key={YOUR_API_KEY}
Webhooks sollten auch kommen.








0 Responses to “Hugo und Alpine JSON”