-
-
Notifications
You must be signed in to change notification settings - Fork 7.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add "hook feature" to inject Javascript snippets etc. #1510
Comments
@bep is there a plan to add this functionality into hugo? It would be really nice to be able to be able to put small scripts into a page to load things like charts, plots, boxes, anything client-side rendered. |
@mxplusb A workaround could be to have the scripts in your front matter and render them if needed inside your post / page template. Front matter:
Template: {{ range .Page.Params.scripts }}
<script async src="{{ . }}" type="text/javascript"></script>
{{ end }} While this is not as powerful as hooks can be it might serve a similar purpose for scripts - and it's certainly better than loading all scripts on all pages if they are not needed. Otherwise, I would love to see hooks! It's a great functionality in systems like WordPress. |
@KevinGimbel huh, that could be useful! I tried to load the a script from this metadata: +++
date = "2017-01-29T22:33:03-08:00"
title = "test 1"
scripts:
- "static/sigma.min.js"
+++ But got build errors:
When I build it with this markdown (including a script): +++
date = "2017-01-29T22:33:03-08:00"
title = "test 1"
+++
test html:
<script type="text/javascript">
document.write("some text here.")
</script> It doesn't output I'm brand new to the hugo code base, but I did some research into what it uses for parsing (blackfriday) and how blackfriday works. I'm wondering if adding a custom bluemonday policy to the blackfriday parsing might be helpful, and then removing the What are your thoughts? |
@mxplusb you are mixing YAML and TOML in your metadata which is not supported. To declare an array in TOML use the following code:
If you know you will always use one extra script you could also define it as a "standard" parameter instead of an array.
and read it like this {{ if isset .Params "script" }}
<script src="{{ .Params.script }}" type="text/javascript"></script>
{{ end }} As for the bluemonday policies I cannot say much. The decision of adding it, or when to add it, is up to the Maintainers (@bep, @spf13 , @digitalcraftsman, et al). |
Ah, gotcha, I didn't know it was TOML, thanks! That fixed the build errors, at least. Still not having a lot of luck with the inline script, but maybe one of the maintainers can comment on that. |
This issue has been automatically marked as stale because it has not had recent activity. The resources of the Hugo team are limited, and so we are asking for your help. |
39a7fac34 Add .hugo_build.lock to .gitignore 920c716a4 fix a typo: to -> two (#1545) 6f0ba9593 Remove godocref from front matter (#1543) 8ec3d5948 remove link to wercker (#1544) b56008719 Delete deployment-with-wercker.md (#1542) e33d29b02 Fix broken links (#1538) 29e9d4c21 Sort commenting systems (#1541) 0b7ea60a7 Delete the news page "HTTP/2 Server Push in Hugo" 6e1515857 Fix quick-start.md (#1525) 62168ab35 Update comments.md (#1535) d92191512 Small typo (#1539) 129c8834a Correct the PostCSS noMap default value (#1534) 6a5b29fcc Add example to index function (#1536) e3dd8c507 Update output-formats.md 0c9321ca0 Remove reference to using LiveReload in production environment 4072d6776 Mod testing 09fabf7d6 Fix typo (#1524) 2fce813c8 Fix grammatical error in quick-start.md (#1523) 45230ab4a Hugo Mod testing 2dd4cd9e7 Update index.md 2c3ed62fd netlify: Bump to 0.88.1 648e2a007 Merge branch 'tempv0.88.1' f216eade1 releaser: Add release notes to /docs for release of 0.88.1 8a7b64d4b Fix typographical errors in 0.88.0 release notes a4bf86300 Release 0.88 738bb8f38 releaser: Add release notes to /docs for release of 0.88.0 8fcf2c55d highlight: Remove some pygments references f2b173de2 HTTPS link c88881c8e Adding link to nginx documentation 6b0a74fe0 Fix typos in docs (#1516) 498b8f0f1 Fix typos in time.Format (#1515) 28723fad6 Fix taxonomy and term examples (#1514) 3ffd00e12 Update front-matter.md 7cc1da82e Fix grammar in 0.86.1 release notes (#1510) 0009c51c3 Update docs helper 7e2f430f4 Update index.md 7857eae7e releaser: Add release notes to /docs for release of 0.87.0 1f08b684b releaser: Add release notes to /docs for release of 0.87.0 36a9e701c docs: Adjust config docs 0f588438e docs: Regen CLI docs 1b4682cd8 docs: Regen docs helper bc8bbaae9 Merge commit 'bd77f6e1c99e04a476f0b1bb4e44569134e02399' into release-0.87.0 6f2480643 docs: Adjust time zone docs git-subtree-dir: docs git-subtree-split: 39a7fac343c289906db644c96079fdcc0298582f
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
See
http://stackoverflow.com/questions/33163202/how-to-include-simple-javascript-within-hugo/33186584?noredirect=1#comment54212668_33186584
The text was updated successfully, but these errors were encountered: