1e5c31af7Sopenharmony_ci# Copyright 2021-2024 The Khronos Group Inc. 2e5c31af7Sopenharmony_ci# 3e5c31af7Sopenharmony_ci# SPDX-License-Identifier: Apache-2.0 4e5c31af7Sopenharmony_ci 5e5c31af7Sopenharmony_ci# Khronos overrides for Rouge 'github' theme CSS for accessibility. 6e5c31af7Sopenharmony_ci# See (note that this code is evolving, works as of asciidoctor 2.0.12): 7e5c31af7Sopenharmony_ci# https://github.com/asciidoctor/asciidoctor/blob/master/lib/asciidoctor/syntax_highlighter/rouge.rb 8e5c31af7Sopenharmony_ci 9e5c31af7Sopenharmony_ciinclude ::Asciidoctor 10e5c31af7Sopenharmony_ci 11e5c31af7Sopenharmony_ciclass ExtendedRougeSyntaxHighlighter < (Asciidoctor::SyntaxHighlighter.for 'rouge') 12e5c31af7Sopenharmony_ci register_for 'rouge' 13e5c31af7Sopenharmony_ci 14e5c31af7Sopenharmony_ci # Insert rouge stylesheet from super 15e5c31af7Sopenharmony_ci # Then replace many 'github' theme colors for accessibility compliance 16e5c31af7Sopenharmony_ci # It would be better to use rouge's stylesheet factory, if it has one 17e5c31af7Sopenharmony_ci def docinfo location, doc, opts 18e5c31af7Sopenharmony_ci overrides = %(<style> 19e5c31af7Sopenharmony_ci/* Khronos overrides for Rouge 'github' theme for accessibility */ 20e5c31af7Sopenharmony_ci/* Basically everything is overridden, but it is unclear how to add a new Rouge theme */ 21e5c31af7Sopenharmony_ci/* Codelike overrides */ 22e5c31af7Sopenharmony_cipre.rouge .cm, pre.rouge .cp, pre.rouge .c1, pre.rouge .cs, 23e5c31af7Sopenharmony_cipre.rouge .c, pre.rouge .ch, pre.rouge .cd, pre.rouge .cpf, 24e5c31af7Sopenharmony_cipre.rouge .gh, pre.rouge .bp { 25e5c31af7Sopenharmony_ci color: #5f5f5f; 26e5c31af7Sopenharmony_ci} 27e5c31af7Sopenharmony_ci/* Numberlike overrides */ 28e5c31af7Sopenharmony_cipre.rouge .mf, pre.rouge .mh, pre.rouge .il, pre.rouge .mi, 29e5c31af7Sopenharmony_cipre.rouge .mo, pre.rouge .m, pre.rouge .mb, pre.rouge .mx { 30e5c31af7Sopenharmony_ci color: #007f7f; 31e5c31af7Sopenharmony_ci} 32e5c31af7Sopenharmony_ci/* Namelike overrides */ 33e5c31af7Sopenharmony_cipre.rouge .ne, pre.rouge .nf, pre.rouge .fm, pre.rouge .nl { 34e5c31af7Sopenharmony_ci color: #5f0000; 35e5c31af7Sopenharmony_ci} 36e5c31af7Sopenharmony_ci/* Other things ANDI warns about - unsure of their purposes */ 37e5c31af7Sopenharmony_cipre.rouge .go, pre.rouge .gu { 38e5c31af7Sopenharmony_ci color: #727272; 39e5c31af7Sopenharmony_ci} 40e5c31af7Sopenharmony_cipre.rouge .sr { 41e5c31af7Sopenharmony_ci color: #008512; 42e5c31af7Sopenharmony_ci} 43e5c31af7Sopenharmony_cipre.rouge .na, pre.rouge .nb { 44e5c31af7Sopenharmony_ci color: #007f7f; 45e5c31af7Sopenharmony_ci} 46e5c31af7Sopenharmony_cipre.rouge .no, pre.rouge .vc, pre.rouge .vg, pre.rouge .vi, 47e5c31af7Sopenharmony_cipre.rouge .nv, pre.rouge .vm { 48e5c31af7Sopenharmony_ci color: #007f7f; 49e5c31af7Sopenharmony_ci} 50e5c31af7Sopenharmony_cipre.rouge .w { 51e5c31af7Sopenharmony_ci color: #727272; 52e5c31af7Sopenharmony_ci} 53e5c31af7Sopenharmony_ci</style>) 54e5c31af7Sopenharmony_ci 55e5c31af7Sopenharmony_ci # super can return either <style> or <link> markup, both work 56e5c31af7Sopenharmony_ci %(#{super} 57e5c31af7Sopenharmony_ci#{overrides}) 58e5c31af7Sopenharmony_ci end 59e5c31af7Sopenharmony_ciend 60e5c31af7Sopenharmony_ci 61