Added support for Chart.js (#2126)
Solved #460.  --------- Signed-off-by: George Araújo <george.gcac@gmail.com>
This commit is contained in:
parent
1d84621f22
commit
a7d6b37d8f
|
|
@ -299,7 +299,7 @@ For more details on how to create distill-styled posts using `<d-*>` tags, pleas
|
||||||
|
|
||||||
#### Full support for math & code
|
#### Full support for math & code
|
||||||
|
|
||||||
**al-folio** supports fast math typesetting through [MathJax](https://www.mathjax.org/) and code syntax highlighting using [GitHub style](https://github.com/jwarby/jekyll-pygments-themes). Also supports [mermaid diagrams](https://mermaid-js.github.io/mermaid/#/) and [TikZ figures](https://tikzjax.com/).
|
**al-folio** supports fast math typesetting through [MathJax](https://www.mathjax.org/) and code syntax highlighting using [GitHub style](https://github.com/jwarby/jekyll-pygments-themes). Also supports [chartjs charts](https://www.chartjs.org/), [mermaid diagrams](https://mermaid-js.github.io/mermaid/#/), and [TikZ figures](https://tikzjax.com/).
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://alshedivat.github.io/al-folio/blog/2015/math/" target="_blank"><img src="assets/img/readme_preview/math.png" width=400></a>
|
<a href="https://alshedivat.github.io/al-folio/blog/2015/math/" target="_blank"><img src="assets/img/readme_preview/math.png" width=400></a>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
{% if page.chart %}
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.1/dist/chart.umd.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function () {
|
||||||
|
var $canvas = null,
|
||||||
|
$this = null,
|
||||||
|
_ctx = null,
|
||||||
|
_text = '';
|
||||||
|
$('.language-chart').each(function () {
|
||||||
|
$this = $(this);
|
||||||
|
$canvas = $('<canvas></canvas>');
|
||||||
|
_text = $this.text();
|
||||||
|
$this.text('').append($canvas);
|
||||||
|
_ctx = $canvas.get(0).getContext('2d');
|
||||||
|
_ctx && _text && new Chart(_ctx, JSON.parse(_text)) && $this.attr('data-processed', true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
||||||
|
|
@ -48,6 +48,7 @@
|
||||||
{% include scripts/bootstrap.liquid %}
|
{% include scripts/bootstrap.liquid %}
|
||||||
{% include scripts/masonry.liquid %}
|
{% include scripts/masonry.liquid %}
|
||||||
{% include scripts/mermaid.liquid %}
|
{% include scripts/mermaid.liquid %}
|
||||||
|
{% include scripts/chart.liquid %}
|
||||||
{% include scripts/misc.liquid %}
|
{% include scripts/misc.liquid %}
|
||||||
{% include scripts/badges.liquid %}
|
{% include scripts/badges.liquid %}
|
||||||
{% include scripts/mathjax.liquid %}
|
{% include scripts/mathjax.liquid %}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,187 @@
|
||||||
|
---
|
||||||
|
layout: post
|
||||||
|
title: a post with chart.js
|
||||||
|
date: 2024-01-26 01:04:00
|
||||||
|
description: this is what included chart.js code could look like
|
||||||
|
tags: formatting charts
|
||||||
|
categories: sample-posts
|
||||||
|
chart: true
|
||||||
|
---
|
||||||
|
|
||||||
|
This is an example post with some chart.js code.
|
||||||
|
|
||||||
|
````markdown
|
||||||
|
```chart
|
||||||
|
{
|
||||||
|
"type": "line",
|
||||||
|
"data": {
|
||||||
|
"labels": [
|
||||||
|
"January",
|
||||||
|
"February",
|
||||||
|
"March",
|
||||||
|
"April",
|
||||||
|
"May",
|
||||||
|
"June",
|
||||||
|
"July"
|
||||||
|
],
|
||||||
|
"datasets": [
|
||||||
|
{
|
||||||
|
"label": "# of bugs",
|
||||||
|
"fill": false,
|
||||||
|
"lineTension": 0.1,
|
||||||
|
"backgroundColor": "rgba(75,192,192,0.4)",
|
||||||
|
"borderColor": "rgba(75,192,192,1)",
|
||||||
|
"borderCapStyle": "butt",
|
||||||
|
"borderDash": [],
|
||||||
|
"borderDashOffset": 0,
|
||||||
|
"borderJoinStyle": "miter",
|
||||||
|
"pointBorderColor": "rgba(75,192,192,1)",
|
||||||
|
"pointBackgroundColor": "#fff",
|
||||||
|
"pointBorderWidth": 1,
|
||||||
|
"pointHoverRadius": 5,
|
||||||
|
"pointHoverBackgroundColor": "rgba(75,192,192,1)",
|
||||||
|
"pointHoverBorderColor": "rgba(220,220,220,1)",
|
||||||
|
"pointHoverBorderWidth": 2,
|
||||||
|
"pointRadius": 1,
|
||||||
|
"pointHitRadius": 10,
|
||||||
|
"data": [
|
||||||
|
65,
|
||||||
|
59,
|
||||||
|
80,
|
||||||
|
81,
|
||||||
|
56,
|
||||||
|
55,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
"spanGaps": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
This is how it looks like:
|
||||||
|
|
||||||
|
```chart
|
||||||
|
{
|
||||||
|
"type": "line",
|
||||||
|
"data": {
|
||||||
|
"labels": [
|
||||||
|
"January",
|
||||||
|
"February",
|
||||||
|
"March",
|
||||||
|
"April",
|
||||||
|
"May",
|
||||||
|
"June",
|
||||||
|
"July"
|
||||||
|
],
|
||||||
|
"datasets": [
|
||||||
|
{
|
||||||
|
"label": "# of bugs",
|
||||||
|
"fill": false,
|
||||||
|
"lineTension": 0.1,
|
||||||
|
"backgroundColor": "rgba(75,192,192,0.4)",
|
||||||
|
"borderColor": "rgba(75,192,192,1)",
|
||||||
|
"borderCapStyle": "butt",
|
||||||
|
"borderDash": [],
|
||||||
|
"borderDashOffset": 0,
|
||||||
|
"borderJoinStyle": "miter",
|
||||||
|
"pointBorderColor": "rgba(75,192,192,1)",
|
||||||
|
"pointBackgroundColor": "#fff",
|
||||||
|
"pointBorderWidth": 1,
|
||||||
|
"pointHoverRadius": 5,
|
||||||
|
"pointHoverBackgroundColor": "rgba(75,192,192,1)",
|
||||||
|
"pointHoverBorderColor": "rgba(220,220,220,1)",
|
||||||
|
"pointHoverBorderWidth": 2,
|
||||||
|
"pointRadius": 1,
|
||||||
|
"pointHitRadius": 10,
|
||||||
|
"data": [
|
||||||
|
65,
|
||||||
|
59,
|
||||||
|
80,
|
||||||
|
81,
|
||||||
|
56,
|
||||||
|
55,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
"spanGaps": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Also another example chart.
|
||||||
|
|
||||||
|
````markdown
|
||||||
|
```chart
|
||||||
|
{
|
||||||
|
"type": "doughnut",
|
||||||
|
"data": {
|
||||||
|
"labels": [
|
||||||
|
"Red",
|
||||||
|
"Blue",
|
||||||
|
"Yellow"
|
||||||
|
],
|
||||||
|
"datasets": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
300,
|
||||||
|
50,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"backgroundColor": [
|
||||||
|
"#FF6384",
|
||||||
|
"#36A2EB",
|
||||||
|
"#FFCE56"
|
||||||
|
],
|
||||||
|
"hoverBackgroundColor": [
|
||||||
|
"#FF6384",
|
||||||
|
"#36A2EB",
|
||||||
|
"#FFCE56"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
|
Which generates:
|
||||||
|
|
||||||
|
```chart
|
||||||
|
{
|
||||||
|
"type": "doughnut",
|
||||||
|
"data": {
|
||||||
|
"labels": [
|
||||||
|
"Red",
|
||||||
|
"Blue",
|
||||||
|
"Yellow"
|
||||||
|
],
|
||||||
|
"datasets": [
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
300,
|
||||||
|
50,
|
||||||
|
100
|
||||||
|
],
|
||||||
|
"backgroundColor": [
|
||||||
|
"#FF6384",
|
||||||
|
"#36A2EB",
|
||||||
|
"#FFCE56"
|
||||||
|
],
|
||||||
|
"hoverBackgroundColor": [
|
||||||
|
"#FF6384",
|
||||||
|
"#36A2EB",
|
||||||
|
"#FFCE56"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"options": {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
// create element for copy button in code blocks
|
// create element for copy button in code blocks
|
||||||
var codeBlocks = document.querySelectorAll("pre");
|
var codeBlocks = document.querySelectorAll("pre");
|
||||||
codeBlocks.forEach(function (codeBlock) {
|
codeBlocks.forEach(function (codeBlock) {
|
||||||
if ((codeBlock.querySelector("pre:not(.lineno)") || codeBlock.querySelector("code")) && codeBlock.querySelector("code:not(.language-mermaid)")) {
|
if (
|
||||||
|
(codeBlock.querySelector("pre:not(.lineno)") || codeBlock.querySelector("code")) &&
|
||||||
|
codeBlock.querySelector("code:not(.language-chart)") &&
|
||||||
|
codeBlock.querySelector("code:not(.language-mermaid)")
|
||||||
|
) {
|
||||||
// create copy button
|
// create copy button
|
||||||
var copyButton = document.createElement("button");
|
var copyButton = document.createElement("button");
|
||||||
copyButton.className = "copy";
|
copyButton.className = "copy";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue