User interface primitives for console applications
Interpolate numbers, colors, strings, arrays, objects, whatever!
just `console.log` prefixed with a green check
Stylish, intuitive and user-friendly prompt system. Fast and lightweight enough for small projects, powerful and extensible enough for the most advanced use cases.
Tools for debugging your node.js modules and event loop
A polyfill for the Resize Observer API
Colors for digital and software products using the Carbon Design System
get colors in your node.js console
Port of C's wcwidth() and wcswidth()
No description provided.
A utility to track objects on a canvas by unique px color
CommonJS version - The smallest and fastest command-line coloring package on the internet
Detect whether a terminal supports color
JavaScript Unicode 8.0 Normalization - NFC, NFD, NFKC, NFKD. Read <http://unicode.org/reports/tr15/> UAX #15 Unicode Normalization Forms.
A JavaScript library that breaks strings into their individual user-perceived characters. It supports emojis!
The smallest and fastest command-line coloring package on the internet
Middleware to remove the X-Powered-By header
A CSS parser, transformer, and minifier written in Rust
Let users toggle colors
Search CSS(-like) strings
Core functions & classes shared by multiple AWS SDK clients.
An Object.keys replacement, in case Object.keys is not available. From https://github.com/es-shims/es5-shim
Interactive explorer plugin for GraphiQL.
Remove unnecessary React propTypes from the production build
This library allows to generate images of teeth for odontograms with tooth faces painted in a color (red, green, blue, white or black for example). This is very usefull for dental applications.
Colorizes the example output strings without changing the color of pending and error output See https://github.com/andrea-capri/rainbow_wrapper for more details.
Detects a dark color based on luminance W3 standarts ( https://www.w3.org/TR/WCAG20/#relativeluminancedef ). It has these options: * is a hex color dark * is an Imagick pixel dark * is an Imagick pixel from a blob dark * is an area in a blob over a dark background (uses Imagick for it too). An example practical aspect: it can be useful to understand will a black colored text be visible or not over an area.
Color The Circles game (desktop application) produced during RubyConf 2023 Community Day Glimmer Desktop Hacking event using Glimmer DSL for LibUI Application Scaffolding and refactoring of original example.
Created to fill a need in supplying two arrays (a,b) of varying size and representing a third array (c) that uses items from the first array (a) and reversably encodes it into items from the second array (b) and returns the fourth array (d). Decoding using the same arrays should turn fourth array (d) into the third array (c). Examples include letters to numbers, musical notes to colors, or any other grouping of objects describable as an array words.
minitest provides a complete suite of testing facilities supporting TDD, BDD, and benchmarking. "I had a class with Jim Weirich on testing last week and we were allowed to choose our testing frameworks. Kirk Haines and I were paired up and we cracked open the code for a few test frameworks... I MUST say that minitest is *very* readable / understandable compared to the 'other two' options we looked at. Nicely done and thank you for helping us keep our mental sanity." -- Wayne E. Seguin minitest/test is a small and incredibly fast unit testing framework. It provides a rich set of assertions to make your tests clean and readable. minitest/spec is a functionally complete spec engine. It hooks onto minitest/test and seamlessly bridges test assertions over to spec expectations. minitest/benchmark is an awesome way to assert the performance of your algorithms in a repeatable manner. Now you can assert that your newb co-worker doesn't replace your linear algorithm with an exponential one! minitest/pride shows pride in testing and adds coloring to your test output. I guess it is an example of how to write IO pipes too. :P minitest/test is meant to have a clean implementation for language implementors that need a minimal set of methods to bootstrap a working test suite. For example, there is no magic involved for test-case discovery. "Again, I can't praise enough the idea of a testing/specing framework that I can actually read in full in one sitting!" -- Piotr Szotkowski Comparing to rspec: rspec is a testing DSL. minitest is ruby. -- Adam Hawkins, "Bow Before MiniTest" minitest doesn't reinvent anything that ruby already provides, like: classes, modules, inheritance, methods. This means you only have to learn ruby to use minitest and all of your regular OO practices like extract-method refactorings still apply. == Features/Problems: * minitest/autorun - the easy and explicit way to run all your tests. * minitest/test - a very fast, simple, and clean test system. * minitest/spec - a very fast, simple, and clean spec system. * minitest/benchmark - an awesome way to assert your algorithm's performance. * minitest/pride - show your pride in testing! * minitest/test_task - a full-featured and clean rake task generator. * Incredibly small and fast runner, but no bells and whistles. * Written by squishy human beings. Software can never be perfect. We will all eventually die.
== Terminal UIs, the Ruby Way RatatuiRuby[https://rubygems.org/gems/ratatui_ruby] is a RubyGem built on Ratatui[https://ratatui.rs], a leading TUI library written in Rust[https://rust-lang.org]. You get native performance with the joy of Ruby. gem install ratatui_ruby {rdoc-image:https://ratatui-ruby.dev/hero.gif}[https://www.ratatui-ruby.dev/docs/v0.10/examples/app_cli_rich_moments/README_md.html] === Rich Moments Add a spinner, a progress bar, or an inline menu to your CLI script. No full-screen takeover. Your terminal history stays intact. ==== Inline Viewports Standard TUIs erase themselves on exit. Your carefully formatted CLI output disappears. Users lose their scrollback. <b>Inline viewports</b> solve this. They occupy a fixed number of lines, render rich UI, then leave the output in place when done. Perfect for spinners, menus, progress indicators—any brief moment of richness. require "ratatui_ruby" RatatuiRuby.run(viewport: :inline, height: 1) do |tui| until connected? status = tui.paragraph(text: "\#{spin} Connecting...") tui.draw { |frame| frame.render_widget(status, frame.area) } end end === Build Something Real Full-screen applications with {keyboard and mouse input}[https://www.ratatui-ruby.dev/docs/v0.10/examples/app_all_events/README_md.html]. The managed loop sets up the terminal and restores it on exit, even after crashes. RatatuiRuby.run do |tui| loop do tui.draw do |frame| frame.render_widget( tui.paragraph(text: "Hello, RatatuiRuby!", alignment: :center), frame.area ) end case tui.poll_event in { type: :key, code: "q" } then break else nil end end end ==== Widgets included: [Layout] {Block}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_block/README_md.html], {Center}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_center/README_md.html], {Clear (Popup, Modal)}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_popup/README_md.html], {Layout (Split, Grid)}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_layout_split/README_md.html], {Overlay}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_overlay/README_md.html] [Data] {Bar Chart}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_barchart/README_md.html], {Chart}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_chart/README_md.html], {Gauge}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_gauge/README_md.html], {Line Gauge}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_line_gauge/README_md.html], {Sparkline}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_sparkline/README_md.html], {Table}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_table/README_md.html] [Text] {Cell}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_cell/README_md.html], {List}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_list/README_md.html], {Rich Text (Line, Span)}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_rich_text/README_md.html], {Scrollbar (Scroll)}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_scrollbar/README_md.html], {Tabs}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_tabs/README_md.html] [Graphics] {Calendar}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_calendar/README_md.html], {Canvas}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_canvas/README_md.html], {Map (World Map)}[https://www.ratatui-ruby.dev/docs/v0.10/examples/widget_map/README_md.html] Need something else? {Build custom widgets}[https://www.ratatui-ruby.dev/docs/v0.10/doc/concepts/custom_widgets_md.html] in Ruby! --- === Testing Built In TUI testing is tedious. You need a headless terminal, event injection, snapshot comparisons, and style assertions. RatatuiRuby bundles all of it. require "ratatui_ruby/test_helper" class TestColorPicker < Minitest::Test include RatatuiRuby::TestHelper def test_swatch_widget with_test_terminal(10, 3) do RatatuiRuby.draw do |frame| frame.render_widget(Swatch.new(:red), frame.area) end assert_cell_style 2, 1, char: "█", bg: :red end end end ==== What's inside: - <b>Headless terminal</b> — No real TTY needed - <b>Snapshots</b> — Plain text and rich (ANSI colors) - <b>Event injection</b> — Keys, mouse, paste, resize - <b>Style assertions</b> — Color, bold, underline at any cell - <b>Test doubles</b> — Mock frames and stub rects - <b>UPDATE_SNAPSHOTS=1</b> — Regenerate baselines in one command --- ==== Inline Menu Example require "ratatui_ruby" # This example renders an inline menu. Arrow keys select, enter confirms. # The menu appears in-place, preserving scrollback. When the user chooses, # the TUI closes and the script continues with the selected value. class RadioMenu CHOICES = ["Production", "Staging", "Development"] # ASCII strings are universally supported. PREFIXES = { active: "●", inactive: "○" } # Some terminals may not support Unicode. CONTROLS = "↑/↓: Select | Enter: Choose | Ctrl+C: Cancel" # Let users know what keys you handle. TITLES = ["Select Environment", # The default title position is top left. { content: CONTROLS, # Multiple titles can save space. position: :bottom, # Titles go on the top or bottom, alignment: :right }] # aligned left, right, or center def call # This method blocks until a choice is made. RatatuiRuby.run(viewport: :inline, height: 5) do |tui| # RatauiRuby.run manages the terminal. @tui = tui # The TUI instance is safe to store. show_menu until chosen? # You can use any loop keyword you like. end # `run` won't return until your block does, RadioMenu::CHOICES[@choice] # so you can use it synchronously. end # Classes like RadioMenu are convenient for private # CLI authors to offer "rich moments." def show_menu = @tui.draw do |frame| # RatatuiRuby gives you low-level access. widget = @tui.paragraph( # But the TUI facade makes it easy to use. text: menu_items, # Text can be spans, lines, or paragraphs. block: @tui.block(borders: :all, titles: TITLES) # Blocks give you boxes and titles, and hold ) # one or more widgets. We only use one here, frame.render_widget(widget, frame.area) # but "area" lets you compose sub-views. end def chosen? # You are responsible for handling input. interaction = @tui.poll_event # Every frame, you receive an event object: return choose if interaction.enter? # Key, Mouse, Resize, Paste, FocusGained, # FocusLost, or None objects. They come with move_by(-1) if interaction.up? # predicates, support pattern matching, and move_by(1) if interaction.down? # can be inspected for properties directly. quit! if interaction.ctrl_c? # Your application must handle every input, false # even interrupts and other exit patterns. end def choose # Here, the loop is about to exit, and the prepare_next_line # block will return. The inline viewport @choice # will be torn down and the terminal will end # be restored, but you are responsible for # positioning the cursor. def prepare_next_line # To ensure the next output is on a new area = @tui.viewport_area # line, query the viewport area and move RatatuiRuby.cursor_position = [0, area.y + area.height] # the cursor to the start of the last line. puts # Then print a newline. end def quit! # All of your familiar Ruby control flow prepare_next_line # keywords work as expected, so we can exit 0 # use them to leave the TUI. end def move_by(line_count) # You are in full control of your UX, so @choice = (@choice + line_count) % CHOICES.size # you can implement any logic you need: end # Would you "wrap around" here, or not? # def menu_items = CHOICES.map.with_index do |choice, i| # Notably, RatatuiRuby has no concept of "\#{prefix_for(i)} \#{choice}" # "menus" or "radio buttons". You are in end # full control, but it also means you must def prefix_for(choice_index) # implement the logic yourself. For larger return PREFIXES[:active] if choice_index == @choice # applications, consider using Rooibos, PREFIXES[:inactive] # an MVU framework built with RatatuiRuby. end # Or, use the upcoming ratatui-ruby-kit, # our object-oriented component library. def initialize = @choice = 0 # However, those are both optional, and end # designed for full-screen Terminal UIs. # RatatuiRuby will always give you the most choice = RadioMenu.new.call # control, and is enough for "rich CLI puts "You chose \#{choice}!" # moments" like this one. --- === Full App Solutions RatatuiRuby renders. For complex applications, add a framework that manages state and composition. ==== Rooibos[https://www.rooibos.run] (Framework) Model-View-Update architecture. Inspired by Elm, Bubble Tea, and React + Redux. Your UI is a pure function of state. - Functional programming with MVU - Commands work off the main thread - Messages, not callbacks, drive updates ==== {Kit}[https://sr.ht/~kerrick/ratatui_ruby/#chapter-3-the-object-path--kit] (Coming Soon) Component-based architecture. Encapsulate state, input handling, and rendering in reusable pieces. - OOP with stateful components - Separate UI state from domain logic - Built-in focus management & click handling Both use the same widget library and rendering engine. Pick the paradigm that fits your brain. --- === Why RatatuiRuby? Ruby deserves world-class terminal user interfaces. TUI developers deserve a world-class language. RatatuiRuby wraps Rust's Ratatui via native extension. The Rust library handles rendering. Your Ruby code handles design. >>> "Text UIs are seeing a renaissance with many new TUI libraries popping up. The Ratatui bindings have proven to be full featured and stable." — {Mike Perham}[https://www.mikeperham.com/], creator of Sidekiq[https://sidekiq.org/] and Faktory[https://contribsys.com/faktory/] ==== Why Rust? Why Ruby? Rust excels at low-level rendering. Ruby excels at expressing domain logic and UI. RatatuiRuby puts each language where it performs best. ==== Versus CharmRuby CharmRuby[https://charm-ruby.dev/] wraps Charm's Go libraries. Both projects give Ruby developers TUI options. [Integration] CharmRuby: Two runtimes, one process. RatatuiRuby: Native extension in Rust. [Runtime] CharmRuby: Go + Ruby (competing). RatatuiRuby: Ruby (Rust has no runtime). [Memory] CharmRuby: Two uncoordinated GCs. RatatuiRuby: One Garbage Collector. [Style] CharmRuby: The Elm Architecture (TEA). RatatuiRuby: TEA, OOP, or Imperative. --- === Links [Get Started] {Quickstart}[https://www.ratatui-ruby.dev/docs/v0.10/doc/getting_started/quickstart_md.html], {Examples}[https://www.ratatui-ruby.dev/docs/v0.10/examples/app_cli_rich_moments/README_md.html], {API Reference}[https://www.ratatui-ruby.dev/docs/v0.10/], {Guides}[https://www.ratatui-ruby.dev/docs/v0.10/doc/index_md.html] [Ecosystem] Rooibos[https://www.rooibos.run], {Kit}[https://sr.ht/~kerrick/ratatui_ruby/#chapter-3-the-object-path--kit] (Planned), {Framework}[https://sr.ht/~kerrick/ratatui_ruby/#chapter-5-the-framework] (Planned), {UI Widgets}[https://sr.ht/~kerrick/ratatui_ruby/#chapter-6-licensing] (Planned) [Community] {Forum}[https://forum.setdef.com/c/ratatui-ruby/6], {Announcements}[https://forum.setdef.com/tags/c/ratatui-ruby/6/announcement], {Discussion}[https://forum.setdef.com/tags/c/ratatui-ruby/6/discussion], {Bug Tracker}[https://forum.setdef.com/tags/c/ratatui-ruby/6/bug] [Contribute] {Contributing Guide}[https://man.sr.ht/~kerrick/ratatui_ruby/contributing.md], {Code of Conduct}[https://man.sr.ht/~kerrick/ratatui_ruby/code_of_conduct.md], {Project History}[https://man.sr.ht/~kerrick/ratatui_ruby/history/index.md], {Pull Requests}[https://forum.setdef.com/tags/c/ratatui-ruby/6/patch] --- [Website] https://www.ratatui-ruby.dev [Source] https://github.com/setdef/RatatuiRuby [RubyGems] https://rubygems.org/gems/ratatui_ruby [Upstream] https://ratatui.rs [Build Status] https://builds.sr.ht/~kerrick/ratatui_ruby © 2026 Kerrick Long · Library: LGPL-3.0-or-later · Website: CC-BY-NC-ND-4.0 · Snippets: MIT-0
My SAKURA gem with various utilities. This is my swiss-army knife for Linux and Mac. See README.md for amazing examples, like: richelp ubuntu # shows a richelp of my 'ubuntu' cheatsheet richelp sakura synopsis # shows a richelp of my 'sakura' cheatsheet, grepping for 'synopsis' ls | act # randomly scrambles the lines! Taken from cat/atc ;) ps | rainbow # colors all lines differently twice itunes - # lowers volume of iTunes... twice :) 10 echo Bart Simpson likes it DRY # tells you this 10 times. Very sarcastic script! seq 100 | 1suN 7 # prints every 7th element of the list zombies # prints processes that show zombies (plus funny options to kill them) find . -size +300M | xargs mvto /tmp/bigfiles/ # moves big files to that directory alias gp='never_as_root git pull' # only if u r not root it runs! tellme-time # Tells you the time with Riccardo voice in Italian. Brilliant! find-duplicates . # Tells you files with same size/MD5 in this directory facter is_google_vm # Tells if it's a GCE Virtual Machine
== Easily add colors, boxes, repetitions and emojis to your terminal output using pipes (|). Install using the Ruby Gem: > gem install pipetext Includes a library module which can be included in your code: require 'pipetext' class YellowPrinter include PipeText def print(string) write('|Y' + string + '|n') end end printer = YellowPrinter.new printer.print('This is yellow') The gem includes a command line interface too: > pipetext > pipetext '|Ccyan|n' Easily set your bash prompt colors using pipetext: > PS1=$(pipetext '|$|g\u|n@|g\h|n:|g\w|n$ ') Works with files: > pipetext <filename> Works with pipes too: > echo '|RRed test |u1f49c|n' | pipetext --- | pipe || & ampersand && Toggle (&) background color mode |& smoke |s white |W black text on white background |k&w red |r bright red |R red background &r green |g bright green |G green background &g blue |b bright blue |B blue background &b cyan |c bright cyan |C cyan background &c yellow |y bright yellow |Y yellow background &y magenta |m bright magenta |M magenta background &m --- Hex RGB color codes: Foreground |#RRGGBB Background &#RRGGBB Palette colors (256) using Hex: |p33&pF8 Clear Screen |! black with white background |K&w Blinking |@ white with magenta background |w&m invert |i smoke with green background |s&g Underlined |_ red with cyan background |r&c Italics |~ bright red with blue background |R&b Bold |+ green with yellow background |g&y Faint |. bright green with red background |G&r Crossed out |x normal color and background |n&n Escape Sequence |\ Center text using current position and line end number |{text to center} Add spaces to line end |; Set line end |]# Set current x,y cursor position |[x,y] Terminal bell |[bell] Move cursor up 1 line |^ Hide cursor |h Move cursor down 1 line |v Unhide cursor |H Move cursor forward 1 character |> Sleep timer in seconds |[#s] Move cursor back 1 character |< Sleep timer in milliseconds |[#ms] Capture variable |(variable name=data) Display variable |(variable name) Add to variable |(variable name+=data) Subtract from variable |(variable name-=data) Multiple variable |(variable name*=data) Divide variable |(variable name/=data) Copy variable to current number |(#variable name) |$ toggles [ and ] around empty sequences automatically for bash command prompts --- Emojis: https://unicode.org/emoji/charts/full-emoji-list.html |[Abbreviated CLDR Short Name] 😍 |[smiling face with heart-eyes] or ⚙ |[gear] 💤 |[zzz] 👨 |[man] 😍 |[sm f w he e] ✔ |U2714 ❌ |U274c ☮ |u262E 💎 |u1f48e 💜 |u1f49c --- Single or double line box mode with |- or |= ┌──┬──┐ ╔══╦══╗ +--+--+ <-- Draw this with this: |15 |-[--v--] |=[--v--] |o[--v--] │ │ │ ║ ║ ║ | | | |15 |-! ! ! |=! ! ! |o! ! ! 123456789012345├──┴──┤ ╠══╩══╣ +--+--+ |y1234567890|g12345|n|->--^--< |=>--^--< |o>--^--< 15 Spaces │ │ ║ ║ | | |c15|n Spaces|6 |-! ! |=! ! |o! ! (|15 ) └─────┘ ╚═════╝ +-----+ (||15 )|9 |-{-----} |={-----} |o{-----} ┌──────────────────┐ ╔════════════════════╗ |-[|18-]|4 |g&m|=[|20-]|n&n|O │ │ ║ ║ |-!|18 !|4 |g&m|=!|20 !|n&n|O ├──────────────────┤ ╠════════════════════╣ |->|18-<|4 &m|g|=>|20-<|n&n|O │ │ ║ ║ |-!|18 !|4 |g&m|=!|20 !|n&n|O └──────────────────┘ ╚════════════════════╝ |-{|18-}|4 |g&m|={|20-}|n&n|O --- Repetition using | followed by the number of characters to repeat and then the character to repeat. |15* does the * character 15 times like this: *************** --- ==Use the ++pipetext++ command to see other options and examples.
Remote syslog appender for Logging
<div align='center'> # Insights4YOU Jekyll Theme A sleek and modern Jekyll theme inspired by the [Tabler Admin Dashboard](https://github.com/tabler/tabler). This theme offers a clean, professional, and responsive interface, making it ideal for developers, content creators, and businesses. Whether you're building documentation sites, admin panels, or project showcases, this theme provides a minimal-effort solution with customizable layouts and modern design elements.  [][repo] [][build] [][codacy] [][gem] [][gem] [][license] </div> ## 🌟 Features - 🌙 **Dark and Light Themes**: Switch between dark and light modes for a personalized experience - 📱 **Responsive Design**: Fully optimized for mobile, tablet, and desktop devices - 🔧 **Customizable Layouts**: Easily modify layouts to suit your needs - 🚀 **SEO Optimized**: Built-in support for Jekyll SEO tags to improve search engine visibility - 📦 **Gem-Based Installation**: Simple installation via RubyGems - 📝 **Markdown Support**: Write content using Markdown for simplicity and flexibility - 🎨 **Modern Design**: Inspired by the Tabler Admin Dashboard for a sleek and professional look - 📊 **Analytics Ready**: Add analytics scripts easily for tracking user interactions - 🔍 **Search Functionality**: Built-in search capabilities for content discovery - 🎯 **Clean Code**: Well-documented and maintainable codebase - 🛠️ **Developer Friendly**: Easy to extend and customize - 📱 **Mobile First**: Designed with mobile devices in mind ## 📋 Requirements - Ruby >= 2.7.0 - Jekyll ~> 4.2 - Bundler ~> 2.3 ## 🚀 Quick Start 1. **Install the theme:** ```ruby gem install insights4you-jekyll-theme ``` 2. **Create a new Jekyll site:** ```ruby jekyll new my-website ``` 3. **Add the theme to your Jekyll site's `Gemfile`:** ```ruby gem "insights4you-jekyll-theme" ``` 4. **Update your `_config.yml`:** ```yaml theme: insights4you-jekyll-theme ``` 5. **Install dependencies:** ```bash bundle install ``` 6. **Start your site:** ```bash bundle exec jekyll serve ``` ## 🎯 Demo Site To see the theme in action, check out the included example site: ```bash # Clone the repository git clone https://github.com/marciopaiva/insights4you-jekyll-theme.git # Navigate to theme directory cd insights4you-jekyll-theme # build and test make dev ``` Visit `http://localhost:4000` to see the demo site in action. ## 🎨 Customization ### Theme Configuration [WIP] ### Available Layouts - `default`: Standard page layout ### Custom Styling Create a new file `assets/css/custom.scss` to add your own styles: [WIP] ## 📝 Documentation ### Directory Structure [WIP] ### Creating Posts [WIP] ### Creating Pages [WIP] ## 🤝 Contributing We love your input! We want to make contributing to Insights4YOU as easy and transparent as possible. Please: 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## 📄 License This project is licensed under the MIT License - see the LICENSE file for details. ## 🙏 Acknowledgments - Tabler Admin Dashboard for design inspiration - Jekyll community for the amazing static site generator - All contributors who help improve this theme [repo]: https://github.com/marciopaiva/insights4you-jekyll-theme [build]: https://github.com/marciopaiva/insights4you-jekyll-theme/actions/workflows/gem-build.yml [codacy]: https://app.codacy.com/gh/marciopaiva/insights4you-jekyll-theme/dashboard [gem]: https://rubygems.org/gems/insights4you-jekyll-theme [license]: https://github.com/marciopaiva/insights4you-jekyll-theme/blob/master/LICENSE
Diff and patch tables