text-display 0.0.5.1 → 0.0.5.2
raw patch · 15 files changed
+209/−40 lines, 15 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Text.Display.Core: instance Data.Text.Display.Core.CannotDisplayByteStrings => Data.Text.Display.Core.Display Data.ByteString.Internal.ByteString
- Data.Text.Display.Core: instance Data.Text.Display.Core.Display Data.Void.Void
+ Data.Text.Display.Core: instance Data.Text.Display.Core.CannotDisplayByteStrings => Data.Text.Display.Core.Display Data.ByteString.Internal.Type.ByteString
+ Data.Text.Display.Core: instance Data.Text.Display.Core.Display GHC.Base.Void
- Data.Text.Display.Generic: type AssertNoSumRecordInstance (constraint :: Type -> Constraint) a = Assert (Not (HasSum (Rep a))) ('Text "🚫 Cannot derive " :<>: 'ShowType constraint :<>: 'Text " instance for " :<>: 'ShowType a :<>: 'Text " via RecordInstance due to sum type" :$$: 'Text "💡 Sum types should use a manual instance or derive one via ShowInstance.")
+ Data.Text.Display.Generic: type AssertNoSumRecordInstance (constraint :: Type -> Constraint) a = Assert (Not (HasSum (Rep a))) ('Text "🚫 Cannot derive " ':<>: 'ShowType constraint ':<>: 'Text " instance for " ':<>: 'ShowType a ':<>: 'Text " via RecordInstance due to sum type" ':$$: 'Text "💡 Sum types should use a manual instance or derive one via ShowInstance.")
Files
- CHANGELOG.md +4/−0
- doc/book/404.html +26/−2
- doc/book/Comparison.html +26/−2
- doc/book/Design.html +26/−2
- doc/book/Introduction.html +26/−2
- doc/book/Tutorial.html +26/−2
- doc/book/book.js +7/−13
- doc/book/css/chrome.css +1/−1
- doc/book/css/general.css +1/−0
- doc/book/css/print.css +0/−8
- doc/book/css/variables.css +10/−0
- doc/book/index.html +26/−2
- doc/book/print.html +26/−2
- doc/book/tomorrow-night.css +2/−2
- text-display.cabal +2/−2
CHANGELOG.md view
@@ -1,5 +1,9 @@ # CHANGELOG +## [v0.0.5.2] - 07/04/2024++* Allow GHC 9.6.4 and 9.8.2+ ## [v0.0.5.1] - 04/11/2023 * Allow bytestring 0.12 (for GHC 9.8) [#58](https://github.com/haskell-text/text-display/pull/58)
doc/book/404.html view
@@ -71,10 +71,12 @@ <!-- Hide / unhide sidebar before it is displayed --> <script> var html = document.querySelector('html');- var sidebar = 'hidden';+ var sidebar = null; if (document.body.clientWidth >= 1080) { try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } sidebar = sidebar || 'visible';+ } else {+ sidebar = 'hidden'; } html.classList.remove('sidebar-visible'); html.classList.add("sidebar-" + sidebar);@@ -87,11 +89,33 @@ <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> </nav> + <!-- Track and set sidebar scroll position -->+ <script>+ var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');+ sidebarScrollbox.addEventListener('click', function(e) {+ if (e.target.tagName === 'A') {+ sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);+ }+ }, { passive: true });+ var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');+ sessionStorage.removeItem('sidebar-scroll');+ if (sidebarScrollTop) {+ // preserve sidebar scroll position when navigating via links within sidebar+ sidebarScrollbox.scrollTop = sidebarScrollTop;+ } else {+ // scroll sidebar to current active section when navigating via "next/previous chapter" buttons+ var activeSection = document.querySelector('#sidebar .active');+ if (activeSection) {+ activeSection.scrollIntoView({ block: 'center' });+ }+ }+ </script>+ <div id="page-wrapper" class="page-wrapper"> <div class="page"> <div id="menu-bar-hover-placeholder"></div>- <div id="menu-bar" class="menu-bar sticky bordered">+ <div id="menu-bar" class="menu-bar sticky"> <div class="left-buttons"> <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar"> <i class="fa fa-bars"></i>
doc/book/Comparison.html view
@@ -70,10 +70,12 @@ <!-- Hide / unhide sidebar before it is displayed --> <script> var html = document.querySelector('html');- var sidebar = 'hidden';+ var sidebar = null; if (document.body.clientWidth >= 1080) { try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } sidebar = sidebar || 'visible';+ } else {+ sidebar = 'hidden'; } html.classList.remove('sidebar-visible'); html.classList.add("sidebar-" + sidebar);@@ -86,11 +88,33 @@ <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> </nav> + <!-- Track and set sidebar scroll position -->+ <script>+ var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');+ sidebarScrollbox.addEventListener('click', function(e) {+ if (e.target.tagName === 'A') {+ sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);+ }+ }, { passive: true });+ var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');+ sessionStorage.removeItem('sidebar-scroll');+ if (sidebarScrollTop) {+ // preserve sidebar scroll position when navigating via links within sidebar+ sidebarScrollbox.scrollTop = sidebarScrollTop;+ } else {+ // scroll sidebar to current active section when navigating via "next/previous chapter" buttons+ var activeSection = document.querySelector('#sidebar .active');+ if (activeSection) {+ activeSection.scrollIntoView({ block: 'center' });+ }+ }+ </script>+ <div id="page-wrapper" class="page-wrapper"> <div class="page"> <div id="menu-bar-hover-placeholder"></div>- <div id="menu-bar" class="menu-bar sticky bordered">+ <div id="menu-bar" class="menu-bar sticky"> <div class="left-buttons"> <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar"> <i class="fa fa-bars"></i>
doc/book/Design.html view
@@ -70,10 +70,12 @@ <!-- Hide / unhide sidebar before it is displayed --> <script> var html = document.querySelector('html');- var sidebar = 'hidden';+ var sidebar = null; if (document.body.clientWidth >= 1080) { try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } sidebar = sidebar || 'visible';+ } else {+ sidebar = 'hidden'; } html.classList.remove('sidebar-visible'); html.classList.add("sidebar-" + sidebar);@@ -86,11 +88,33 @@ <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> </nav> + <!-- Track and set sidebar scroll position -->+ <script>+ var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');+ sidebarScrollbox.addEventListener('click', function(e) {+ if (e.target.tagName === 'A') {+ sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);+ }+ }, { passive: true });+ var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');+ sessionStorage.removeItem('sidebar-scroll');+ if (sidebarScrollTop) {+ // preserve sidebar scroll position when navigating via links within sidebar+ sidebarScrollbox.scrollTop = sidebarScrollTop;+ } else {+ // scroll sidebar to current active section when navigating via "next/previous chapter" buttons+ var activeSection = document.querySelector('#sidebar .active');+ if (activeSection) {+ activeSection.scrollIntoView({ block: 'center' });+ }+ }+ </script>+ <div id="page-wrapper" class="page-wrapper"> <div class="page"> <div id="menu-bar-hover-placeholder"></div>- <div id="menu-bar" class="menu-bar sticky bordered">+ <div id="menu-bar" class="menu-bar sticky"> <div class="left-buttons"> <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar"> <i class="fa fa-bars"></i>
doc/book/Introduction.html view
@@ -70,10 +70,12 @@ <!-- Hide / unhide sidebar before it is displayed --> <script> var html = document.querySelector('html');- var sidebar = 'hidden';+ var sidebar = null; if (document.body.clientWidth >= 1080) { try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } sidebar = sidebar || 'visible';+ } else {+ sidebar = 'hidden'; } html.classList.remove('sidebar-visible'); html.classList.add("sidebar-" + sidebar);@@ -86,11 +88,33 @@ <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> </nav> + <!-- Track and set sidebar scroll position -->+ <script>+ var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');+ sidebarScrollbox.addEventListener('click', function(e) {+ if (e.target.tagName === 'A') {+ sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);+ }+ }, { passive: true });+ var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');+ sessionStorage.removeItem('sidebar-scroll');+ if (sidebarScrollTop) {+ // preserve sidebar scroll position when navigating via links within sidebar+ sidebarScrollbox.scrollTop = sidebarScrollTop;+ } else {+ // scroll sidebar to current active section when navigating via "next/previous chapter" buttons+ var activeSection = document.querySelector('#sidebar .active');+ if (activeSection) {+ activeSection.scrollIntoView({ block: 'center' });+ }+ }+ </script>+ <div id="page-wrapper" class="page-wrapper"> <div class="page"> <div id="menu-bar-hover-placeholder"></div>- <div id="menu-bar" class="menu-bar sticky bordered">+ <div id="menu-bar" class="menu-bar sticky"> <div class="left-buttons"> <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar"> <i class="fa fa-bars"></i>
doc/book/Tutorial.html view
@@ -70,10 +70,12 @@ <!-- Hide / unhide sidebar before it is displayed --> <script> var html = document.querySelector('html');- var sidebar = 'hidden';+ var sidebar = null; if (document.body.clientWidth >= 1080) { try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } sidebar = sidebar || 'visible';+ } else {+ sidebar = 'hidden'; } html.classList.remove('sidebar-visible'); html.classList.add("sidebar-" + sidebar);@@ -86,11 +88,33 @@ <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> </nav> + <!-- Track and set sidebar scroll position -->+ <script>+ var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');+ sidebarScrollbox.addEventListener('click', function(e) {+ if (e.target.tagName === 'A') {+ sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);+ }+ }, { passive: true });+ var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');+ sessionStorage.removeItem('sidebar-scroll');+ if (sidebarScrollTop) {+ // preserve sidebar scroll position when navigating via links within sidebar+ sidebarScrollbox.scrollTop = sidebarScrollTop;+ } else {+ // scroll sidebar to current active section when navigating via "next/previous chapter" buttons+ var activeSection = document.querySelector('#sidebar .active');+ if (activeSection) {+ activeSection.scrollIntoView({ block: 'center' });+ }+ }+ </script>+ <div id="page-wrapper" class="page-wrapper"> <div class="page"> <div id="menu-bar-hover-placeholder"></div>- <div id="menu-bar" class="menu-bar sticky bordered">+ <div id="menu-bar" class="menu-bar sticky"> <div class="left-buttons"> <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar"> <i class="fa fa-bars"></i>
doc/book/book.js view
@@ -68,7 +68,7 @@ } // updates the visibility of play button based on `no_run` class and- // used crates vs ones available on http://play.rust-lang.org+ // used crates vs ones available on https://play.rust-lang.org function update_play_button(pre_block, playground_crates) { var play_button = pre_block.querySelector(".play-button"); @@ -179,7 +179,7 @@ // even if highlighting doesn't apply code_nodes.forEach(function (block) { block.classList.add('hljs'); }); - Array.from(document.querySelectorAll("code.language-rust")).forEach(function (block) {+ Array.from(document.querySelectorAll("code.hljs")).forEach(function (block) { var lines = Array.from(block.querySelectorAll('.boring')); // If no lines were hidden, return@@ -346,7 +346,7 @@ } setTimeout(function () {- themeColorMetaTag.content = getComputedStyle(document.body).backgroundColor;+ themeColorMetaTag.content = getComputedStyle(document.documentElement).backgroundColor; }, 1); if (window.ace && window.editors) {@@ -551,13 +551,6 @@ firstContact = null; } }, { passive: true });-- // Scroll sidebar to current active section- var activeSection = document.getElementById("sidebar").querySelector(".active");- if (activeSection) {- // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView- activeSection.scrollIntoView({ block: 'center' });- } })(); (function chapterNavigation() {@@ -676,13 +669,14 @@ }, { passive: true }); })(); (function controllBorder() {- menu.classList.remove('bordered');- document.addEventListener('scroll', function () {+ function updateBorder() { if (menu.offsetTop === 0) { menu.classList.remove('bordered'); } else { menu.classList.add('bordered'); }- }, { passive: true });+ }+ updateBorder();+ document.addEventListener('scroll', updateBorder, { passive: true }); })(); })();
doc/book/css/chrome.css view
@@ -22,7 +22,7 @@ the screen on small screens. Without it, dragging on mobile Safari will want to reposition the viewport in a weird way. */- overflow-x: hidden;+ overflow-x: clip; } /* Menu Bar */
doc/book/css/general.css view
@@ -5,6 +5,7 @@ :root { /* Browser default font-size is 16px, this way 1 rem = 10px */ font-size: 62.5%;+ color-scheme: var(--color-scheme); } html {
doc/book/css/print.css view
@@ -22,14 +22,6 @@ overflow-y: initial; } -code {- background-color: #666666;- border-radius: 5px;-- /* Force background to be printed in Chrome */- -webkit-print-color-adjust: exact;-}- pre > .buttons { z-index: 2; }
doc/book/css/variables.css view
@@ -50,6 +50,8 @@ --searchresults-border-color: #888; --searchresults-li-bg: #252932; --search-mark-bg: #e3b171;++ --color-scheme: dark; } .coal {@@ -90,6 +92,8 @@ --searchresults-border-color: #98a3ad; --searchresults-li-bg: #2b2b2f; --search-mark-bg: #355c7d;++ --color-scheme: dark; } .light {@@ -130,6 +134,8 @@ --searchresults-border-color: #888; --searchresults-li-bg: #e4f2fe; --search-mark-bg: #a2cff5;++ --color-scheme: light; } .navy {@@ -170,6 +176,8 @@ --searchresults-border-color: #5c5c68; --searchresults-li-bg: #242430; --search-mark-bg: #a2cff5;++ --color-scheme: dark; } .rust {@@ -210,6 +218,8 @@ --searchresults-border-color: #888; --searchresults-li-bg: #dec2a2; --search-mark-bg: #e69f67;++ --color-scheme: light; } @media (prefers-color-scheme: dark) {
doc/book/index.html view
@@ -70,10 +70,12 @@ <!-- Hide / unhide sidebar before it is displayed --> <script> var html = document.querySelector('html');- var sidebar = 'hidden';+ var sidebar = null; if (document.body.clientWidth >= 1080) { try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } sidebar = sidebar || 'visible';+ } else {+ sidebar = 'hidden'; } html.classList.remove('sidebar-visible'); html.classList.add("sidebar-" + sidebar);@@ -86,11 +88,33 @@ <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> </nav> + <!-- Track and set sidebar scroll position -->+ <script>+ var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');+ sidebarScrollbox.addEventListener('click', function(e) {+ if (e.target.tagName === 'A') {+ sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);+ }+ }, { passive: true });+ var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');+ sessionStorage.removeItem('sidebar-scroll');+ if (sidebarScrollTop) {+ // preserve sidebar scroll position when navigating via links within sidebar+ sidebarScrollbox.scrollTop = sidebarScrollTop;+ } else {+ // scroll sidebar to current active section when navigating via "next/previous chapter" buttons+ var activeSection = document.querySelector('#sidebar .active');+ if (activeSection) {+ activeSection.scrollIntoView({ block: 'center' });+ }+ }+ </script>+ <div id="page-wrapper" class="page-wrapper"> <div class="page"> <div id="menu-bar-hover-placeholder"></div>- <div id="menu-bar" class="menu-bar sticky bordered">+ <div id="menu-bar" class="menu-bar sticky"> <div class="left-buttons"> <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar"> <i class="fa fa-bars"></i>
doc/book/print.html view
@@ -71,10 +71,12 @@ <!-- Hide / unhide sidebar before it is displayed --> <script> var html = document.querySelector('html');- var sidebar = 'hidden';+ var sidebar = null; if (document.body.clientWidth >= 1080) { try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { } sidebar = sidebar || 'visible';+ } else {+ sidebar = 'hidden'; } html.classList.remove('sidebar-visible'); html.classList.add("sidebar-" + sidebar);@@ -87,11 +89,33 @@ <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div> </nav> + <!-- Track and set sidebar scroll position -->+ <script>+ var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');+ sidebarScrollbox.addEventListener('click', function(e) {+ if (e.target.tagName === 'A') {+ sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);+ }+ }, { passive: true });+ var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');+ sessionStorage.removeItem('sidebar-scroll');+ if (sidebarScrollTop) {+ // preserve sidebar scroll position when navigating via links within sidebar+ sidebarScrollbox.scrollTop = sidebarScrollTop;+ } else {+ // scroll sidebar to current active section when navigating via "next/previous chapter" buttons+ var activeSection = document.querySelector('#sidebar .active');+ if (activeSection) {+ activeSection.scrollIntoView({ block: 'center' });+ }+ }+ </script>+ <div id="page-wrapper" class="page-wrapper"> <div class="page"> <div id="menu-bar-hover-placeholder"></div>- <div id="menu-bar" class="menu-bar sticky bordered">+ <div id="menu-bar" class="menu-bar sticky"> <div class="left-buttons"> <button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar"> <i class="fa fa-bars"></i>
doc/book/tomorrow-night.css view
@@ -1,7 +1,7 @@ /* Tomorrow Night Theme */-/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */+/* https://github.com/jmblog/color-themes-for-highlightjs */ /* Original theme - https://github.com/chriskempson/tomorrow-theme */-/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */+/* https://github.com/jmblog/color-themes-for-highlightjs */ /* Tomorrow Comment */ .hljs-comment {
text-display.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: text-display-version: 0.0.5.1+version: 0.0.5.2 category: Text synopsis: A typeclass for user-facing output description:@@ -15,7 +15,7 @@ license: MIT build-type: Simple tested-with:- GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.7 || ==9.6.3 || ==9.8.1+ GHC ==8.8.4 || ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.7 || ==9.6.4 || ==9.8.2 extra-source-files: LICENSE