From 261604bb55b360acee471ed5a03ee6b838da24fd Mon Sep 17 00:00:00 2001 From: codecalm Date: Fri, 25 Oct 2019 19:12:31 +0200 Subject: [PATCH] charts code in footer, capture_global tag --- package.json | 3 ++- pages/_data/libs.json | 4 +++- pages/_includes/js/charts.html | 2 ++ pages/_includes/ui/avatar.html | 2 +- pages/_layouts/base.html | 2 ++ pages/_plugins/jekyll-base.rb | 1 - pages/_plugins/jekyll-capture.rb | 38 ++++++++++++++++++++++++++++++++ 7 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 pages/_plugins/jekyll-capture.rb diff --git a/package.json b/package.json index 0acf9ebed..52f8a0c00 100644 --- a/package.json +++ b/package.json @@ -91,7 +91,8 @@ "dependencies": { "apexcharts": "3.10.0", "autosize": "4.0.2", - "bootstrap": "twbs/bootstrap#8d56c19", + "bootstrap": "twbs/bootstrap#9ee9b8a", + "chart.js": "^2.8.0", "imask": "5.2.1", "jquery": "3.4.1", "jqvmap": "1.5.1", diff --git a/pages/_data/libs.json b/pages/_data/libs.json index f088df092..18a495059 100644 --- a/pages/_data/libs.json +++ b/pages/_data/libs.json @@ -7,6 +7,7 @@ "selectize/dist/js/standalone/selectize.min.js", "apexcharts/dist/apexcharts.min.js", + "chart.js/dist/Chart.min.js", "jqvmap/dist/jquery.vmap.min.js", "jqvmap/dist/maps/jquery.vmap.world.js", "jqvmap/dist/maps/jquery.vmap.usa.js", @@ -16,6 +17,7 @@ ], "css": [ "jqvmap/dist/jqvmap.min.css", - "selectize/dist/css/selectize.css" + "selectize/dist/css/selectize.css", + "chart.js/dist/Chart.min.css" ] } diff --git a/pages/_includes/js/charts.html b/pages/_includes/js/charts.html index c93e65fb4..9a2314707 100644 --- a/pages/_includes/js/charts.html +++ b/pages/_includes/js/charts.html @@ -1,3 +1,4 @@ +{% capture_global scripts %} {% removeemptylines %} {% assign data = site.data.charts[include.chart-id] %} @@ -127,3 +128,4 @@ document.addEventListener("DOMContentLoaded", function(event) { {% endif %} {% endremoveemptylines %} +{% endcapture_global %} diff --git a/pages/_includes/ui/avatar.html b/pages/_includes/ui/avatar.html index ea18bce21..687a4c48f 100644 --- a/pages/_includes/ui/avatar.html +++ b/pages/_includes/ui/avatar.html @@ -17,7 +17,7 @@ {% assign link = include.link | default: false %} {% assign el = 'span' %} {% if link %}{% assign el = 'a' %}{% endif %} -<{{ el }} class="avatar{% if include['size'] %} avatar-{{ include['size'] }}{% endif %}{% if include.thumb %} avatar-thumb{% endif %}{% if include.class %} {{ include.class }}{% endif %}{% if include.shape %} {{ include.shape }}{% endif %}{% if include.color %} bg-{{ include.color }}-lt{% endif %}"{% if src %} style="background-image: url({{ site.base }}{{ src }})"{% endif %}>{% if include.status %} +<{{ el }} class="avatar{% if include['size'] %} avatar-{{ include['size'] }}{% endif %}{% if include.thumb %} avatar-thumb{% endif %}{% if include.class %} {{ include.class }}{% endif %}{% if include.shape %} {{ include.shape }}{% endif %}{% if include.color %} bg-{{ include.color }}-lt{% endif %}"{% if src %} style="background-image: url({{ site.base }}/{{ src }})"{% endif %}>{% if include.status %} {% if include.status-text %}{{ include.status-text }}{% elsif include.status-icon %}{% include ui/icon.html icon=include.status-icon class="avatar-status-icon" %}{% endif %} {% endif %}{% if placeholder %}{{ placeholder }}{% elsif include.icon %} {% include ui/icon.html icon=include.icon class="avatar-icon" %}{% endif %} {% endremoveemptylines %} diff --git a/pages/_layouts/base.html b/pages/_layouts/base.html index 67724577a..3db438041 100644 --- a/pages/_layouts/base.html +++ b/pages/_layouts/base.html @@ -44,6 +44,8 @@ {% endif %} {% endif %} +{{ site.capture_global.scripts }} + diff --git a/pages/_plugins/jekyll-base.rb b/pages/_plugins/jekyll-base.rb index 74fbfbb76..31154d6c3 100644 --- a/pages/_plugins/jekyll-base.rb +++ b/pages/_plugins/jekyll-base.rb @@ -22,5 +22,4 @@ module Jekyll Jekyll::Hooks.register :documents, :pre_render do |doc, jekyll| jekyll.site['base'] = get_dir(doc.relative_path) end - end diff --git a/pages/_plugins/jekyll-capture.rb b/pages/_plugins/jekyll-capture.rb new file mode 100644 index 000000000..71b8fd0ae --- /dev/null +++ b/pages/_plugins/jekyll-capture.rb @@ -0,0 +1,38 @@ +module Jekyll + + module Tags + + class CaptureGlobal < Liquid::Block + + def initialize(tag_name, text, tokens) + super + @text = text.strip + end + + def render(context) + if $capture_global[@text] === nil + $capture_global[@text] = ''; + end + + $capture_global[@text] += super.strip + "\n\n" + + '' + end + + end + end + + Jekyll::Hooks.register :site, :after_init do |page, jekyll| + $capture_global = {} + end + + Jekyll::Hooks.register :pages, :pre_render do |page, jekyll| + jekyll.site['capture_global'] = $capture_global + end + + Jekyll::Hooks.register :pages, :post_render do |page, jekyll| + $capture_global = {} + end +end + +Liquid::Template.register_tag('capture_global', Jekyll::Tags::CaptureGlobal)