{"id":13612278,"url":"https://github.com/GSI/jekyll_date_chart","last_synced_at":"2025-04-13T11:31:51.881Z","repository":{"id":56878524,"uuid":"13482412","full_name":"GSI/jekyll_date_chart","owner":"GSI","description":null,"archived":false,"fork":false,"pushed_at":"2013-10-25T22:13:57.000Z","size":300,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-03-24T05:01:38.270Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GSI.png","metadata":{"files":{"readme":"README.textile","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-10-10T20:39:16.000Z","updated_at":"2021-09-24T03:29:21.000Z","dependencies_parsed_at":"2022-08-20T23:10:20.177Z","dependency_job_id":null,"html_url":"https://github.com/GSI/jekyll_date_chart","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSI%2Fjekyll_date_chart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSI%2Fjekyll_date_chart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSI%2Fjekyll_date_chart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GSI%2Fjekyll_date_chart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GSI","download_url":"https://codeload.github.com/GSI/jekyll_date_chart/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248705705,"owners_count":21148580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T20:00:26.277Z","updated_at":"2025-04-13T11:31:51.208Z","avatar_url":"https://github.com/GSI.png","language":"Ruby","readme":"h1. Jekyll Date Chart\n\nThis Jekyll plugin renders date-related line charts based on textile-formatted tables.\n\nWhile the plugin focuses on the presentation of financial data, it may also be used to display other date-related statistics.\n\n!screenshots/jekyll_date_chart.png(Example chart generated via Jekyll Date Chart)!\n\nThe actual charts are drawn via JavaScript using \"morris.js(morris.js - good-looking charts shouldn't be difficult)\":http://www.oesmith.co.uk/morris.js/ relying on \"Raphaël(Raphaël - JavaScript library for simplified work with vector graphics)\":http://raphaeljs.com/ and \"JQuery(JQuery - write less, do more)\":http://jquery.com/.\n\n\n\n\nh2. Installation\n\n\nh3. Step 1: Install and include the gem\n\nSet the constant @PATH_TO_JEKYLL_SITE@ correctly and execute these commands accordingly:\n\npre. cd $PATH_TO_JEKYLL_SITE\necho \"gem 'jekyll_date_chart'\" \u003e\u003e Gemfile\nbundle\necho \"require 'jekyll_date_chart'\" \u003e\u003e _plugins/ext.rb\n\n\n*Alternatively* you may accomplish the same _without_ @echo@ and @bundle@:\n\n# Install the plugin by running @gem install jekyll_date_chart@\n# Add the line @require 'jekyll_date_chart'@ to *_plugins/ext.rb*\n\n\nh3. Step 2: Generate the required JavaScript libraries\n\nFor convenience, **Jekyll Date Chart** ships **Raphaël** and **morris.js**.\n\nIn order to copy these two libraries, execute the newly available @jekyll_date_chart@ command from within the project directory:\n\npre. cd $PATH_TO_JEKYLL_SITE\njekyll_date_chart generate\n\n_*Note:* As **JQuery** is commonly used in many projects, it has to be manually installed if currently missing._\n\n\n\nh3. Step 3: Include the morris.js CSS in the HTML template\n\nEnsure that the file @morris.css@ is properly loaded by adding the following statement to the **head** element of the HTML template:\n\npre. {% stylesheet morris.css %}\n\n_Based on your setup you may want to use the minified version **morris.min.css** instead._\n\n\nh3. Step 4: Include all required JavaScript libraries in the HTML template\n\nTypically just before your *closing HTML body tag* (@\u003c/body\u003e@), add the according lines:\n\npre.. \u003c!- JQuery library -!\u003e\n\n\u003c!- Jekyll Date Chart related libraries and JavaScript -!\u003e\n{% javascript raphael %}\n{% javascript morris %}\n{% javascript jekyll_date_chart.js %}\n\n\u003c!- custom JavaScript -!\u003e\n\n\n\nh2. Usage\n\nTo generate a chart, enclose one or more textile-style tables in a @dchart@ block:\n\npre.. {% dchart %}\n| title of first table  | Unit of given values | comments on the table as a whole |\n| 09.09.2013            |                =1000 | comment on this specific element |\n| 10.10.2013            |               =+1000 | comment on this specific element |\n| 11.11.2013            |                +1000 | comment on this specific element |\n  \n| title of second table | Unit of given values | comments on the table as a whole |\n| 09.09.2013            |               =-2000 | comment on this specific element |\n| 10.10.2013            |                =2000 | comment on this specific element |\n| 12.12.2013            |                -2000 | comment on this specific element |\n{% enddchart %}\n\n\n\nh3. Valid Operators\n\n* @=@ *(re)sets* the balance to the provided value.\n* @+@ *adds* the provided value to the previous balance.\n* @-@ *subtracts* the provided value from the previous balance.\n\n\nh3. Notes\n\n# Multiple tables within the *same block* will result in graphs being drawn to the *same chart*.\n** For drawing to *different charts*, simply use *additional blocks*.\n** If **Jekyll Date Chart** fails to parse the content of the first column to a date, the beginning of a new table is assumed.\n# All *units* within one block *have to match* in order to have the build succeed.\n** This is intended behaviour which serves as *basic validation*. The case may later be coped with by converting to common units.\n\n\nh3. Restrictions\n\n# Currently only @DD.MM.YYYY@ is accepted as date format.\n** *Future versions* are planned to accept other separators and formats (e.g. @YYYY/DD/MM@).\n# Any dot @.@ in the second column is currently *ignored* while commas @,@ act as *decimal points*.\n** *Future versions* will likely consider both, dots and commas, as decimal marks while allowing spaces and underscores @_@ for digit grouping.\n# Special Textile-directives in the tables (e.g. @|_. foo|@ are currently unsupported and will most likely crash **Jekyll Date Chart** or lead to undesired behaviour.\n** This will be addressed in **future versions**.\n\n\nh3. Further examples\n\n\n\"This article(Groovy Skills International - Bye, Bye Spreadsheet. Hi, Jekyll Date Chart!)\":http://groovy-skills.com/jekyll/2013/10/10/bye-bye-spreadsheet-hi-jekyll-date-chart/ shows basic tables with actual charts.\n\n\n\nh2. Features\n\nNotes from **Planned improvements** move here once implemented.\n\n# A line representing the *total* (sum) for any date is generated.\n# All tables within a block are considered when calculating the *total*.\n# Data of multiple tables within a block is merged into one chart.\n\n\n\nh2. Planned Improvements\n\n_\"The following list outlines ideas for improvements in descending order of subjectively perceived importance.\"_\n\nh3. Reliability\n\n# Tables starting with a *plus or minus* entry should assume a starting value of 0\n# Convert **ykeys** to lower case strings with only letters, numbers and hyphens (\"labels\" should still use the unmodified variant)\n# Support *advanced Textile markup* (by ignoring it)\n# Ensure *unique CSS id* in generated DIV\n# Extract *inline style definition* from generated DIV\n# Add warning when the signifacation of a value is assumed\n** Any value without algebraic sign is currently treated as addition.\n# Allow additional *date formats* (see **Restrictions** above)\n# Consider both, dots and commas, as *decimal marks* (see **Restrictions** above)\n# Accept *whitespaces and underscores* in numbers (see **Restrictions** above)\n\nh3. Functionality\n\n# Make *calculation of total* optional, but keep it as default\n# Add *Textile styling* for pretty-formatting values (e.g. align right via @|\u003e. foo|@)\n# Allow user to *select target CSS id* for the chart\n# Add *visibility setting* for the source table\n# Optionally add *last common (or todays) value* for each graph in order to terminate at the same point and allow final calculation of total variable\n# Put *data-entries* directly into rendered table element\n# Add support for *multiple-currencies* within one chart by converting to a specified target currency\n** Optionally use *Open Exchange Rates* (\"money-open-exchange-rates\":https://rubygems.org/gems/money-open-exchange-rates, \"open_exchange_rates\":https://rubygems.org/gems/open_exchange_rates)\n** Optionally use *historical rate* for every date in the timeline\n# Allow creation of a chart *summing up all totals of all tables* within a page (possibly in pure JavaScript)\n\n\n\nh2. License\n\nJekyll Date Chart is released under the \"MIT License\":http://www.opensource.org/licenses/MIT.\n","funding_links":[],"categories":["Tags"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGSI%2Fjekyll_date_chart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGSI%2Fjekyll_date_chart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGSI%2Fjekyll_date_chart/lists"}