History

Replace sprockets-sass with dartsass-sprockets.

Add manual precompile of .scss.erb files to thor task, since dart-sass is no longer responsible for it. Remove @import statements deprecated by dart-sass, and add them as @use clauses in individual modules. Replace deprecated darken() functions with color.adjust(). Update copyright year in README.

spamguy committed 9 months ago

Commit baffc7d1 parent be50790127 files · +564 −217Browse files

Unified · Split

127 files
  1. Gemfile +1 −2
  2. Gemfile.lock +90 −15
  3. README.md +48 −48
  4. assets/stylesheets/application.css.scss +121 −132
  5. assets/stylesheets/components/_app.scss +2 −0
  6. assets/stylesheets/components/_content.scss +6 −1
  7. assets/stylesheets/components/_fail.scss +2 −0
  8. assets/stylesheets/components/_header.scss +5 −1
  9. assets/stylesheets/components/_notice.scss +3 −1
  10. assets/stylesheets/components/_notif.scss +3 −0
  11. assets/stylesheets/components/_page.scss +3 −0
  12. assets/stylesheets/components/_path.scss +4 −1
  13. assets/stylesheets/components/_settings.scss +3 −0
  14. assets/stylesheets/components/_sidebar.scss +6 −2
  15. assets/stylesheets/global/_base.scss +7 −3
  16. assets/stylesheets/global/_print.scss +3 −1
  17. assets/stylesheets/global/_variables-dark.scss +4 −2
  18. assets/stylesheets/global/_variables-light.scss +4 −2
  19. assets/stylesheets/global/_variables.scss +3 −0
  20. assets/stylesheets/pages/_angular.scss +3 −0
  21. assets/stylesheets/pages/_angularjs.scss +2 −0
  22. assets/stylesheets/pages/_apache.scss +2 −0
  23. assets/stylesheets/pages/_async.scss +2 −0
  24. assets/stylesheets/pages/_bash.scss +2 −0
  25. assets/stylesheets/pages/_bootstrap.scss +2 −0
  26. assets/stylesheets/pages/_cakephp.scss +2 −0
  27. assets/stylesheets/pages/_chef.scss +2 −0
  28. assets/stylesheets/pages/_clojure.scss +2 −0
  29. assets/stylesheets/pages/_codeception.scss +2 −0
  30. assets/stylesheets/pages/_coffeescript.scss +3 −0
  31. assets/stylesheets/pages/_cordova.scss +2 −0
  32. assets/stylesheets/pages/_cppref.scss +2 −0
  33. assets/stylesheets/pages/_crystal.scss +3 −0
  34. assets/stylesheets/pages/_cypress.scss +2 −0
  35. assets/stylesheets/pages/_d.scss +2 −0
  36. assets/stylesheets/pages/_d3.scss +2 −0
  37. assets/stylesheets/pages/_dart.scss +2 −0
  38. assets/stylesheets/pages/_dojo.scss +2 −0
  39. assets/stylesheets/pages/_drupal.scss +2 −0
  40. assets/stylesheets/pages/_elisp.scss +2 −0
  41. assets/stylesheets/pages/_elixir.scss +2 −0
  42. assets/stylesheets/pages/_ember.scss +2 −0
  43. assets/stylesheets/pages/_erlang.scss +2 −0
  44. assets/stylesheets/pages/_express.scss +2 −0
  45. assets/stylesheets/pages/_fastapi.scss +2 −0
  46. assets/stylesheets/pages/_fluture.scss +2 −0
  47. assets/stylesheets/pages/_git.scss +2 −0
  48. assets/stylesheets/pages/_github.scss +2 −0
  49. assets/stylesheets/pages/_gnu_make.scss +2 −0
  50. assets/stylesheets/pages/_gnuplot.scss +2 −0
  51. assets/stylesheets/pages/_go.scss +2 −0
  52. assets/stylesheets/pages/_graphite.scss +2 −0
  53. assets/stylesheets/pages/_groovy.scss +2 −0
  54. assets/stylesheets/pages/_gtk.scss +2 −0
  55. assets/stylesheets/pages/_hapi.scss +2 −0
  56. assets/stylesheets/pages/_haproxy.scss +2 −0
  57. assets/stylesheets/pages/_haskell.scss +2 −0
  58. assets/stylesheets/pages/_jasmine.scss +2 −0
  59. assets/stylesheets/pages/_jekyll.scss +2 −0
  60. assets/stylesheets/pages/_joi.scss +2 −0
  61. assets/stylesheets/pages/_jq.scss +3 −0
  62. assets/stylesheets/pages/_jquery.scss +2 −0
  63. assets/stylesheets/pages/_julia.scss +2 −0
  64. assets/stylesheets/pages/_knockout.scss +2 −0
  65. assets/stylesheets/pages/_kotlin.scss +2 −0
  66. assets/stylesheets/pages/_kubectl.scss +2 −1
  67. assets/stylesheets/pages/_kubernetes.scss +2 −1
  68. assets/stylesheets/pages/_laravel.scss +2 −0
  69. assets/stylesheets/pages/_liquid.scss +2 −0
  70. assets/stylesheets/pages/_lit.scss +2 −0
  71. assets/stylesheets/pages/_love.scss +2 −0
  72. assets/stylesheets/pages/_lua.scss +2 −0
  73. assets/stylesheets/pages/_mariadb.scss +2 −0
  74. assets/stylesheets/pages/_mdn.scss +2 −0
  75. assets/stylesheets/pages/_meteor.scss +2 −0
  76. assets/stylesheets/pages/_mkdocs.scss +2 −0
  77. assets/stylesheets/pages/_modernizr.scss +2 −0
  78. assets/stylesheets/pages/_moment.scss +2 −0
  79. assets/stylesheets/pages/_nginx.scss +2 −0
  80. assets/stylesheets/pages/_node.scss +2 −0
  81. assets/stylesheets/pages/_npm.scss +2 −0
  82. assets/stylesheets/pages/_nushell.scss +2 −0
  83. assets/stylesheets/pages/_octave.scss +2 −0
  84. assets/stylesheets/pages/_openjdk.scss +2 −0
  85. assets/stylesheets/pages/_openlayers.scss +3 −0
  86. assets/stylesheets/pages/_perl.scss +2 −0
  87. assets/stylesheets/pages/_phalcon.scss +2 −0
  88. assets/stylesheets/pages/_phaser.scss +2 −0
  89. assets/stylesheets/pages/_php.scss +3 −0
  90. assets/stylesheets/pages/_phpunit.scss +2 −0
  91. assets/stylesheets/pages/_postgres.scss +2 −0
  92. assets/stylesheets/pages/_pug.scss +2 −0
  93. assets/stylesheets/pages/_pygame.scss +2 −0
  94. assets/stylesheets/pages/_python.scss +2 −0
  95. assets/stylesheets/pages/_qt.scss +2 −0
  96. assets/stylesheets/pages/_ramda.scss +3 −0
  97. assets/stylesheets/pages/_rdoc.scss +4 −1
  98. assets/stylesheets/pages/_react.scss +2 −0
  99. assets/stylesheets/pages/_react_native.scss +2 −0
  100. assets/stylesheets/pages/_reactivex.scss +2 −0
  101. assets/stylesheets/pages/_redis.scss +3 −0
  102. assets/stylesheets/pages/_rethinkdb.scss +2 −0
  103. assets/stylesheets/pages/_rfc.scss +2 −0
  104. assets/stylesheets/pages/_rubydoc.scss +2 −0
  105. assets/stylesheets/pages/_rust.scss +3 −0
  106. assets/stylesheets/pages/_rxjs.scss +2 −0
  107. assets/stylesheets/pages/_sanctuary.scss +2 −0
  108. assets/stylesheets/pages/_sanctuary_def.scss +2 −0
  109. assets/stylesheets/pages/_sanctuary_type_classes.scss +2 −0
  110. assets/stylesheets/pages/_scala.scss +6 −2
  111. assets/stylesheets/pages/_simple.scss +2 −0
  112. assets/stylesheets/pages/_sinon.scss +2 −0
  113. assets/stylesheets/pages/_sphinx.scss +2 −0
  114. assets/stylesheets/pages/_sphinx_simple.scss +2 −0
  115. assets/stylesheets/pages/_sqlite.scss +2 −0
  116. assets/stylesheets/pages/_support_tables.scss +2 −0
  117. assets/stylesheets/pages/_tcl_tk.scss +2 −0
  118. assets/stylesheets/pages/_tensorflow.scss +2 −0
  119. assets/stylesheets/pages/_terraform.scss +2 −0
  120. assets/stylesheets/pages/_typescript.scss +2 −0
  121. assets/stylesheets/pages/_underscore.scss +2 −0
  122. assets/stylesheets/pages/_vue.scss +2 −0
  123. assets/stylesheets/pages/_webpack.scss +2 −0
  124. assets/stylesheets/pages/_wordpress.scss +3 −1
  125. assets/stylesheets/pages/_yard.scss +3 −0
  126. assets/stylesheets/pages/_yii.scss +2 −0
  127. lib/tasks/sprites.thor +15 −0
Gemfile+1−2
@@ -15,16 +15,15 @@ group :app do · 14 unmodified lines
15 gem 'browser'15 gem 'browser'
16 gem 'chunky_png'16 gem 'chunky_png'
17 gem 'erubi'17 gem 'erubi'
18 gem 'dartsass-sprockets'
18 gem 'image_optim_pack', platforms: :ruby19 gem 'image_optim_pack', platforms: :ruby
19 gem 'image_optim'20 gem 'image_optim'
20 gem 'rack-ssl-enforcer'21 gem 'rack-ssl-enforcer'
21 gem 'rack'22 gem 'rack'
22 gem 'rss'23 gem 'rss'
23 gem 'sass'
24 gem 'sinatra-contrib'24 gem 'sinatra-contrib'
25 gem 'sinatra'25 gem 'sinatra'
26 gem 'sprockets-helpers'26 gem 'sprockets-helpers'
27 gem 'sprockets-sass'
28 gem 'sprockets'27 gem 'sprockets'
29 gem 'thin'28 gem 'thin'
30end29end
Gemfile.lock+90−15
@@ -1,6 +1,25 @@
1GEM1GEM
2 remote: https://rubygems.org/2 remote: https://rubygems.org/
3 specs:3 specs:
4 actionpack (7.2.3)
5 actionview (= 7.2.3)
6 activesupport (= 7.2.3)
7 cgi
8 nokogiri (>= 1.8.5)
9 racc
10 rack (>= 2.2.4, < 3.3)
11 rack-session (>= 1.0.1)
12 rack-test (>= 0.6.3)
13 rails-dom-testing (~> 2.2)
14 rails-html-sanitizer (~> 1.6)
15 useragent (~> 0.16)
16 actionview (7.2.3)
17 activesupport (= 7.2.3)
18 builder (~> 3.1)
19 cgi
20 erubi (~> 1.11)
21 rails-dom-testing (~> 2.2)
22 rails-html-sanitizer (~> 1.6)
4 activesupport (7.2.3)23 activesupport (7.2.3)
5 base6424 base64
6 benchmark (>= 0.3)25 benchmark (>= 0.3)
@@ -21,13 +40,24 @@ GEM · 14 unmodified lines
21 rouge (>= 1.0.0)40 rouge (>= 1.0.0)
22 bigdecimal (3.1.9)41 bigdecimal (3.1.9)
23 browser (5.3.1)42 browser (5.3.1)
43 builder (3.3.0)
24 byebug (12.0.0)44 byebug (12.0.0)
45 cgi (0.5.1)
25 chunky_png (1.4.0)46 chunky_png (1.4.0)
26 coderay (1.1.3)47 coderay (1.1.3)
27 concurrent-ruby (1.3.5)48 concurrent-ruby (1.3.5)
28 connection_pool (2.4.1)49 connection_pool (2.4.1)
50 crass (1.0.6)
29 daemons (1.4.1)51 daemons (1.4.1)
52 dartsass-sprockets (3.2.1)
53 railties (>= 4.0.0)
54 sassc-embedded (~> 1.80.1)
55 sprockets (> 3.0)
56 sprockets-rails
57 tilt
58 date (3.5.1)
30 drb (2.2.3)59 drb (2.2.3)
60 erb (6.0.1)
31 erubi (1.13.1)61 erubi (1.13.1)
32 ethon (0.18.0)62 ethon (0.18.0)
33 ffi (>= 1.15.0)63 ffi (>= 1.15.0)
@@ -37,6 +67,9 @@ GEM · 3 unmodified lines
37 exifr (1.4.0)67 exifr (1.4.0)
38 ffi (1.17.3)68 ffi (1.17.3)
39 fspath (3.1.2)69 fspath (3.1.2)
70 google-protobuf (4.33.4)
71 bigdecimal
72 rake (>= 13)
40 highline (3.1.2)73 highline (3.1.2)
41 reline74 reline
42 html-pipeline (2.14.3)75 html-pipeline (2.14.3)
@@ -56,7 +89,14 @@ GEM · 13 unmodified lines
56 image_size (3.3.0)89 image_size (3.3.0)
57 in_threads (1.6.0)90 in_threads (1.6.0)
58 io-console (0.8.0)91 io-console (0.8.0)
92 irb (1.16.0)
93 pp (>= 0.6.0)
94 rdoc (>= 4.0.0)
95 reline (>= 0.4.2)
59 logger (1.6.6)96 logger (1.6.6)
97 loofah (2.25.0)
98 crass (~> 1.0.2)
99 nokogiri (>= 1.12.0)
60 method_source (1.1.0)100 method_source (1.1.0)
61 mini_portile2 (2.8.9)101 mini_portile2 (2.8.9)
62 minitest (5.27.0)102 minitest (5.27.0)
@@ -68,6 +108,9 @@ GEM · 5 unmodified lines
68 mini_portile2 (~> 2.8.2)108 mini_portile2 (~> 2.8.2)
69 racc (~> 1.4)109 racc (~> 1.4)
70 options (2.3.2)110 options (2.3.2)
111 pp (0.6.3)
112 prettyprint
113 prettyprint (0.2.0)
71 progress (3.6.0)114 progress (3.6.0)
72 progress_bar (1.3.4)115 progress_bar (1.3.4)
73 highline (>= 1.6)116 highline (>= 1.6)
@@ -78,18 +121,44 @@ GEM · 4 unmodified lines
78 pry-byebug (3.11.0)121 pry-byebug (3.11.0)
79 byebug (~> 12.0)122 byebug (~> 12.0)
80 pry (>= 0.13, < 0.16)123 pry (>= 0.13, < 0.16)
124 psych (5.3.1)
125 date
126 stringio
81 racc (1.8.1)127 racc (1.8.1)
82 rack (2.2.22)128 rack (2.2.22)
83 rack-protection (3.2.0)129 rack-protection (3.2.0)
84 base64 (>= 0.1.0)130 base64 (>= 0.1.0)
85 rack (~> 2.2, >= 2.2.4)131 rack (~> 2.2, >= 2.2.4)
132 rack-session (1.0.2)
133 rack (< 3)
86 rack-ssl-enforcer (0.2.9)134 rack-ssl-enforcer (0.2.9)
87 rack-test (2.2.0)135 rack-test (2.2.0)
88 rack (>= 1.3)136 rack (>= 1.3)
137 rackup (1.0.1)
138 rack (< 3)
139 webrick
140 rails-dom-testing (2.3.0)
141 activesupport (>= 5.0.0)
142 minitest
143 nokogiri (>= 1.6)
144 rails-html-sanitizer (1.6.2)
145 loofah (~> 2.21)
146 nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
147 railties (7.2.3)
148 actionpack (= 7.2.3)
149 activesupport (= 7.2.3)
150 cgi
151 irb (~> 1.13)
152 rackup (>= 1.0.0)
153 rake (>= 12.2)
154 thor (~> 1.0, >= 1.2.2)
155 tsort (>= 0.2)
156 zeitwerk (~> 2.6)
89 rake (13.3.1)157 rake (13.3.1)
90 rb-fsevent (0.11.2)158 rdoc (7.1.0)
91 rb-inotify (0.10.1)159 erb
92 ffi (~> 1.0)160 psych (>= 4.0.0)
161 tsort
93 redcarpet (3.6.1)162 redcarpet (3.6.1)
94 reline (0.6.0)163 reline (0.6.0)
95 io-console (~> 0.5)164 io-console (~> 0.5)
@@ -99,11 +168,11 @@ GEM · 3 unmodified lines
99 rss (0.3.1)168 rss (0.3.1)
100 rexml169 rexml
101 ruby2_keywords (0.0.5)170 ruby2_keywords (0.0.5)
102 sass (3.7.4)171 sass-embedded (1.97.3)
103 sass-listen (~> 4.0.0)172 google-protobuf (~> 4.31)
104 sass-listen (4.0.0)173 rake (>= 13)
105 rb-fsevent (~> 0.9, >= 0.9.4)174 sassc-embedded (1.80.8)
106 rb-inotify (~> 0.9, >= 0.9.7)175 sass-embedded (~> 1.80)
107 securerandom (0.3.2)176 securerandom (0.3.2)
108 sinatra (3.2.0)177 sinatra (3.2.0)
109 mustermann (~> 3.0)178 mustermann (~> 3.0)
@@ -116,14 +185,17 @@ GEM · 6 unmodified lines
116 rack-protection (= 3.2.0)185 rack-protection (= 3.2.0)
117 sinatra (= 3.2.0)186 sinatra (= 3.2.0)
118 tilt (~> 2.0)187 tilt (~> 2.0)
119 sprockets (3.7.5)188 sprockets (4.2.2)
120 base64
121 concurrent-ruby (~> 1.0)189 concurrent-ruby (~> 1.0)
122 rack (> 1, < 3)190 logger
191 rack (>= 2.2.4, < 4)
123 sprockets-helpers (1.4.0)192 sprockets-helpers (1.4.0)
124 sprockets (>= 2.2)193 sprockets (>= 2.2)
125 sprockets-sass (2.0.0.beta2)194 sprockets-rails (3.5.2)
126 sprockets (>= 2.0, < 4.0)195 actionpack (>= 6.1)
196 activesupport (>= 6.1)
197 sprockets (>= 3.0.0)
198 stringio (3.2.0)
127 strings (0.2.1)199 strings (0.2.1)
128 strings-ansi (~> 0.2)200 strings-ansi (~> 0.2)
129 unicode-display_width (>= 1.5, < 3.0)201 unicode-display_width (>= 1.5, < 3.0)
@@ -139,6 +211,7 @@ GEM · 9 unmodified lines
139 rack (>= 1, < 3)211 rack (>= 1, < 3)
140 thor (1.4.0)212 thor (1.4.0)
141 tilt (2.6.0)213 tilt (2.6.0)
214 tsort (0.2.0)
142 tty-pager (0.14.0)215 tty-pager (0.14.0)
143 strings (~> 0.2.0)216 strings (~> 0.2.0)
144 tty-screen (~> 0.8)217 tty-screen (~> 0.8)
@@ -150,7 +223,10 @@ GEM · 5 unmodified lines
150 unicode-display_width (2.3.0)223 unicode-display_width (2.3.0)
151 unicode_utils (1.4.0)224 unicode_utils (1.4.0)
152 unix_utils (0.0.15)225 unix_utils (0.0.15)
226 useragent (0.16.11)
227 webrick (1.9.2)
153 yajl-ruby (1.4.3)228 yajl-ruby (1.4.3)
229 zeitwerk (2.7.4)
154 230
155PLATFORMS231PLATFORMS
156 ruby232 ruby
@@ -160,6 +236,7 @@ DEPENDENCIES · 3 unmodified lines
160 better_errors236 better_errors
161 browser237 browser
162 chunky_png238 chunky_png
239 dartsass-sprockets
163 erubi240 erubi
164 html-pipeline241 html-pipeline
165 image_optim242 image_optim
@@ -176,12 +253,10 @@ DEPENDENCIES · 10 unmodified lines
176 redcarpet253 redcarpet
177 rr254 rr
178 rss255 rss
179 sass
180 sinatra256 sinatra
181 sinatra-contrib257 sinatra-contrib
182 sprockets258 sprockets
183 sprockets-helpers259 sprockets-helpers
184 sprockets-sass
185 terminal-table260 terminal-table
186 terser261 terser
187 thin262 thin
README.md+48−48
@@ -10,9 +10,9 @@ Please reach out to the community on [Discord](https://discord.gg/PRyKn3Vbay) if · 9 unmodified lines
10 10
11Keep track of development news:11Keep track of development news:
12 12
13* Join the `#contributors` chat room on [Discord](https://discord.gg/PRyKn3Vbay)13- Join the `#contributors` chat room on [Discord](https://discord.gg/PRyKn3Vbay)
14* Watch the repository on [GitHub](https://github.com/freeCodeCamp/devdocs/subscription)14- Watch the repository on [GitHub](https://github.com/freeCodeCamp/devdocs/subscription)
15* Follow [@DevDocs](https://twitter.com/DevDocs) on Twitter15- Follow [@DevDocs](https://twitter.com/DevDocs) on Twitter
16 16
17**Table of Contents:** [Quick Start](#quick-start) · [Vision](#vision) · [App](#app) · [Scraper](#scraper) · [Commands](#available-commands) · [Contributing](#contributing) · [Documentation](#documentation) · [Related Projects](#related-projects) · [License](#copyright--license) · [Questions?](#questions)17**Table of Contents:** [Quick Start](#quick-start) · [Vision](#vision) · [App](#app) · [Scraper](#scraper) · [Commands](#available-commands) · [Contributing](#contributing) · [Documentation](#documentation) · [Related Projects](#related-projects) · [License](#copyright--license) · [Questions?](#questions)
18 18
@@ -29,6 +29,7 @@ docker run --name devdocs -d -p 9292:9292 ghcr.io/freecodecamp/devdocs:latest · 10 unmodified lines
29```29```
30 30
31This will start DevDocs at [localhost:9292](http://localhost:9292). We provide both regular and Alpine-based images:31This will start DevDocs at [localhost:9292](http://localhost:9292). We provide both regular and Alpine-based images:
32
32- `ghcr.io/freecodecamp/devdocs:latest` - Standard image33- `ghcr.io/freecodecamp/devdocs:latest` - Standard image
33- `ghcr.io/freecodecamp/devdocs:latest-alpine` - Alpine-based (smaller size)34- `ghcr.io/freecodecamp/devdocs:latest-alpine` - Alpine-based (smaller size)
34 35
@@ -70,14 +71,14 @@ DevDocs aims to make reading and searching reference documentation fast, easy an · 35 unmodified lines
70 71
71The app's main goals are to:72The app's main goals are to:
72 73
73* Keep load times as short as possible74- Keep load times as short as possible
74* Improve the quality, speed, and order of search results75- Improve the quality, speed, and order of search results
75* Maximize the use of caching and other performance optimizations76- Maximize the use of caching and other performance optimizations
76* Maintain a clean and readable user interface77- Maintain a clean and readable user interface
77* Be fully functional offline78- Be fully functional offline
78* Support full keyboard navigation79- Support full keyboard navigation
79* Reduce “context switch” by using a consistent typography and design across all documentations80- Reduce “context switch” by using a consistent typography and design across all documentations
80* Reduce clutter by focusing on a specific category of content (API/reference) and indexing only the minimum useful to most developers.81- Reduce clutter by focusing on a specific category of content (API/reference) and indexing only the minimum useful to most developers.
81 82
82**Note:** DevDocs is neither a programming guide nor a search engine. All our content is pulled from third-party sources and the project doesn't intend to compete with full-text search engines. Its backbone is metadata; each piece of content is identified by a unique, "obvious" and short string. Tutorials, guides and other content that don't meet this requirement are outside the scope of the project.83**Note:** DevDocs is neither a programming guide nor a search engine. All our content is pulled from third-party sources and the project doesn't intend to compete with full-text search engines. Its backbone is metadata; each piece of content is identified by a unique, "obvious" and short string. Tutorials, guides and other content that don't meet this requirement are outside the scope of the project.
83 84
@@ -91,10 +92,10 @@ Another driving factor is performance and the fact that everything happens in th · 7 unmodified lines
91 92
92DevDocs being a developer tool, the browser requirements are high:93DevDocs being a developer tool, the browser requirements are high:
93 94
94* Recent versions of Firefox, Chrome, or Opera95- Recent versions of Firefox, Chrome, or Opera
95* Safari 11.1+96- Safari 11.1+
96* Edge 17+97- Edge 17+
97* iOS 11.3+98- iOS 11.3+
98 99
99This allows the code to take advantage of the latest DOM and HTML5 APIs and make developing DevDocs a lot more fun!100This allows the code to take advantage of the latest DOM and HTML5 APIs and make developing DevDocs a lot more fun!
100 101
@@ -106,12 +107,12 @@ There are currently two kinds of scrapers: `UrlScraper` which downloads files vi · 5 unmodified lines
106 107
107Modifications made to each document include:108Modifications made to each document include:
108 109
109* removing content such as the document structure (`<html>`, `<head>`, etc.), comments, empty nodes, etc.110- removing content such as the document structure (`<html>`, `<head>`, etc.), comments, empty nodes, etc.
110* fixing links (e.g. to remove duplicates)111- fixing links (e.g. to remove duplicates)
111* replacing all external (not scraped) URLs with their fully qualified counterpart112- replacing all external (not scraped) URLs with their fully qualified counterpart
112* replacing all internal (scraped) URLs with their unqualified and relative counterpart113- replacing all internal (scraped) URLs with their unqualified and relative counterpart
113* adding content, such as a title and link to the original document114- adding content, such as a title and link to the original document
114* ensuring correct syntax highlighting using [Prism](http://prismjs.com/)115- ensuring correct syntax highlighting using [Prism](http://prismjs.com/)
115 116
116These modifications are applied via a set of filters using the [HTML::Pipeline](https://github.com/jch/html-pipeline) library. Each scraper includes filters specific to itself, one of which is tasked with figuring out the pages' metadata.117These modifications are applied via a set of filters using the [HTML::Pipeline](https://github.com/jch/html-pipeline) library. Each scraper includes filters specific to itself, one of which is tasked with figuring out the pages' metadata.
117 118
@@ -160,10 +161,10 @@ Contributions are welcome. Please read the [contributing guidelines](./.github/C · 42 unmodified lines
160 161
161## Documentation162## Documentation
162 163
163* [Adding documentations to DevDocs](./docs/adding-docs.md)164- [Adding documentations to DevDocs](./docs/adding-docs.md)
164* [Scraper Reference](./docs/scraper-reference.md)165- [Scraper Reference](./docs/scraper-reference.md)
165* [Filter Reference](./docs/filter-reference.md)166- [Filter Reference](./docs/filter-reference.md)
166* [Maintainers’ Guide](./docs/maintainers.md)167- [Maintainers’ Guide](./docs/maintainers.md)
167 168
168## DevDocs Quick Usage Cheatsheet169## DevDocs Quick Usage Cheatsheet
169 170
@@ -182,35 +183,34 @@ Below are some helpful shortcuts and usage tips that are not immediately obvious · 12 unmodified lines
182 183
183These shortcuts make DevDocs faster to navigate and more efficient for daily use.184These shortcuts make DevDocs faster to navigate and more efficient for daily use.
184 185
185
186## Related Projects186## Related Projects
187 187
188Made something cool? Feel free to open a PR to add a new row to this table! You might want to discover new projects via https://github.com/topics/devdocs.188Made something cool? Feel free to open a PR to add a new row to this table! You might want to discover new projects via https://github.com/topics/devdocs.
189 189
190<!-- table is sorted by description -->190<!-- table is sorted by description -->
191 191
192| Project | Description | Last commit | Stars |192| Project | Description | Last commit | Stars |
193| ------------------------------------------------------------------------------------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |193| ------------------------------------------------------------------------------------------- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
194| [yannickglt/alfred-devdocs](https://github.com/yannickglt/alfred-devdocs) | Alfred workflow | ![Latest GitHub commit](https://img.shields.io/github/last-commit/yannickglt/alfred-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/yannickglt/alfred-devdocs?logo=github&label) |194| [yannickglt/alfred-devdocs](https://github.com/yannickglt/alfred-devdocs) | Alfred workflow | ![Latest GitHub commit](https://img.shields.io/github/last-commit/yannickglt/alfred-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/yannickglt/alfred-devdocs?logo=github&label) |
195| [Merith-TK/devdocs_webapp_kotlin](https://github.com/Merith-TK/devdocs_webapp_kotlin) | Android application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/Merith-TK/devdocs_webapp_kotlin?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/Merith-TK/devdocs_webapp_kotlin?logo=github&label) |195| [Merith-TK/devdocs_webapp_kotlin](https://github.com/Merith-TK/devdocs_webapp_kotlin) | Android application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/Merith-TK/devdocs_webapp_kotlin?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/Merith-TK/devdocs_webapp_kotlin?logo=github&label) |
196| [gruehle/dev-docs-viewer](https://github.com/gruehle/dev-docs-viewer) | Brackets extension | ![Latest GitHub commit](https://img.shields.io/github/last-commit/gruehle/dev-docs-viewer?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/gruehle/dev-docs-viewer?logo=github&label) |196| [gruehle/dev-docs-viewer](https://github.com/gruehle/dev-docs-viewer) | Brackets extension | ![Latest GitHub commit](https://img.shields.io/github/last-commit/gruehle/dev-docs-viewer?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/gruehle/dev-docs-viewer?logo=github&label) |
197| [egoist/devdocs-desktop](https://github.com/egoist/devdocs-desktop) | Electron application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/egoist/devdocs-desktop?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/egoist/devdocs-desktop?logo=github&label) |197| [egoist/devdocs-desktop](https://github.com/egoist/devdocs-desktop) | Electron application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/egoist/devdocs-desktop?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/egoist/devdocs-desktop?logo=github&label) |
198| [skeeto/devdocs-lookup](https://github.com/skeeto/devdocs-lookup) | Emacs function | ![Latest GitHub commit](https://img.shields.io/github/last-commit/skeeto/devdocs-lookup?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/skeeto/devdocs-lookup?logo=github&label) |198| [skeeto/devdocs-lookup](https://github.com/skeeto/devdocs-lookup) | Emacs function | ![Latest GitHub commit](https://img.shields.io/github/last-commit/skeeto/devdocs-lookup?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/skeeto/devdocs-lookup?logo=github&label) |
199| [astoff/devdocs.el](https://github.com/astoff/devdocs.el) | Emacs viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/astoff/devdocs.el?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/astoff/devdocs.el?logo=github&label) |199| [astoff/devdocs.el](https://github.com/astoff/devdocs.el) | Emacs viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/astoff/devdocs.el?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/astoff/devdocs.el?logo=github&label) |
200| [naquad/devdocs-shell](https://github.com/naquad/devdocs-shell) | GTK shell with Vim integration | ![Latest GitHub commit](https://img.shields.io/github/last-commit/naquad/devdocs-shell?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/naquad/devdocs-shell?logo=github&label) |200| [naquad/devdocs-shell](https://github.com/naquad/devdocs-shell) | GTK shell with Vim integration | ![Latest GitHub commit](https://img.shields.io/github/last-commit/naquad/devdocs-shell?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/naquad/devdocs-shell?logo=github&label) |
201| [hardpixel/devdocs-desktop](https://github.com/hardpixel/devdocs-desktop) | GTK application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/hardpixel/devdocs-desktop?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/hardpixel/devdocs-desktop?logo=github&label) |201| [hardpixel/devdocs-desktop](https://github.com/hardpixel/devdocs-desktop) | GTK application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/hardpixel/devdocs-desktop?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/hardpixel/devdocs-desktop?logo=github&label) |
202| [qwfy/doc-browser](https://github.com/qwfy/doc-browser) | Linux application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/qwfy/doc-browser?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/qwfy/doc-browser?logo=github&label) |202| [qwfy/doc-browser](https://github.com/qwfy/doc-browser) | Linux application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/qwfy/doc-browser?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/qwfy/doc-browser?logo=github&label) |
203| [dteoh/devdocs-macos](https://github.com/dteoh/devdocs-macos) | macOS application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/dteoh/devdocs-macos?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/dteoh/devdocs-macos?logo=github&label) |203| [dteoh/devdocs-macos](https://github.com/dteoh/devdocs-macos) | macOS application | ![Latest GitHub commit](https://img.shields.io/github/last-commit/dteoh/devdocs-macos?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/dteoh/devdocs-macos?logo=github&label) |
204| [Sublime Text plugin](https://sublime.wbond.net/packages/DevDocs) | Sublime Text plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/vitorbritto/sublime-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/vitorbritto/sublime-devdocs?logo=github&label) |204| [Sublime Text plugin](https://sublime.wbond.net/packages/DevDocs) | Sublime Text plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/vitorbritto/sublime-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/vitorbritto/sublime-devdocs?logo=github&label) |
205| [mohamed3nan/DevDocs-Tab](https://github.com/mohamed3nan/DevDocs-Tab) | VS Code extension (view as tab) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/mohamed3nan/DevDocs-Tab?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/mohamed3nan/DevDocs-Tab?logo=github&label) |205| [mohamed3nan/DevDocs-Tab](https://github.com/mohamed3nan/DevDocs-Tab) | VS Code extension (view as tab) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/mohamed3nan/DevDocs-Tab?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/mohamed3nan/DevDocs-Tab?logo=github&label) |
206| [deibit/vscode-devdocs](https://marketplace.visualstudio.com/items?itemName=deibit.devdocs) | VS Code extension (open the browser) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/deibit/vscode-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/deibit/vscode-devdocs?logo=github&label) |206| [deibit/vscode-devdocs](https://marketplace.visualstudio.com/items?itemName=deibit.devdocs) | VS Code extension (open the browser) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/deibit/vscode-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/deibit/vscode-devdocs?logo=github&label) |
207| [mdh34/quickDocs](https://github.com/mdh34/quickDocs) | Vala/Python based viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/mdh34/quickDocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/mdh34/quickDocs?logo=github&label) |207| [mdh34/quickDocs](https://github.com/mdh34/quickDocs) | Vala/Python based viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/mdh34/quickDocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/mdh34/quickDocs?logo=github&label) |
208| [girishji/devdocs.vim](https://github.com/girishji/devdocs.vim) | Vim plugin & TUI (browse inside Vim) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/girishji/devdocs.vim?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/girishji/devdocs.vim?logo=github&label) |208| [girishji/devdocs.vim](https://github.com/girishji/devdocs.vim) | Vim plugin & TUI (browse inside Vim) | ![Latest GitHub commit](https://img.shields.io/github/last-commit/girishji/devdocs.vim?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/girishji/devdocs.vim?logo=github&label) |
209| [romainl/vim-devdocs](https://github.com/romainl/vim-devdocs) | Vim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/romainl/vim-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/romainl/vim-devdocs?logo=github&label) |209| [romainl/vim-devdocs](https://github.com/romainl/vim-devdocs) | Vim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/romainl/vim-devdocs?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/romainl/vim-devdocs?logo=github&label) |
210| [waiting-for-dev/vim-www](https://github.com/waiting-for-dev/vim-www) | Vim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/waiting-for-dev/vim-www?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/waiting-for-dev/vim-www?logo=github&label) |210| [waiting-for-dev/vim-www](https://github.com/waiting-for-dev/vim-www) | Vim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/waiting-for-dev/vim-www?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/waiting-for-dev/vim-www?logo=github&label) |
211| [emmanueltouzery/apidocs.nvim](https://github.com/emmanueltouzery/apidocs.nvim) | Neovim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/emmanueltouzery/apidocs.nvim?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/emmanueltouzery/apidocs.nvim?logo=github&label) |211| [emmanueltouzery/apidocs.nvim](https://github.com/emmanueltouzery/apidocs.nvim) | Neovim plugin | ![Latest GitHub commit](https://img.shields.io/github/last-commit/emmanueltouzery/apidocs.nvim?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/emmanueltouzery/apidocs.nvim?logo=github&label) |
212| [toiletbril/dedoc](https://github.com/toiletbril/dedoc) | Terminal based viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/toiletbril/dedoc?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/toiletbril/dedoc?logo=github&label) |212| [toiletbril/dedoc](https://github.com/toiletbril/dedoc) | Terminal based viewer | ![Latest GitHub commit](https://img.shields.io/github/last-commit/toiletbril/dedoc?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/toiletbril/dedoc?logo=github&label) |
213| [Raycast Devdocs](https://www.raycast.com/djpowers/devdocs) | Raycast extension | Unavailable | Unavailable |213| [Raycast Devdocs](https://www.raycast.com/djpowers/devdocs) | Raycast extension | Unavailable | Unavailable |
214| [chrisgrieser/alfred-docs-searches](https://github.com/chrisgrieser/alfred-docs-searches) | Alfred workflow | ![Latest GitHub commit](https://img.shields.io/github/last-commit/chrisgrieser/alfred-docs-searches?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/chrisgrieser/alfred-docs-searches?logo=github&label) |214| [chrisgrieser/alfred-docs-searches](https://github.com/chrisgrieser/alfred-docs-searches) | Alfred workflow | ![Latest GitHub commit](https://img.shields.io/github/last-commit/chrisgrieser/alfred-docs-searches?logo=github&label) | ![GitHub stars](https://img.shields.io/github/stars/chrisgrieser/alfred-docs-searches?logo=github&label) |
215 215
216## Copyright / License216## Copyright / License
assets/stylesheets/application.css.scss+121−132
@@ -1,7 +1,3 @@
1//= depend_on sprites/docs.png
2//= depend_on sprites/docs@2x.png
3//= depend_on sprites/docs.json
4
5/*!1/*!
6 * Copyright 2013-2026 Thibaut Courouble and other contributors2 * Copyright 2013-2026 Thibaut Courouble and other contributors
7 *3 *
@@ -10,133 +6,126 @@ · 2 unmodified lines
10 * http://mozilla.org/MPL/2.0/6 * http://mozilla.org/MPL/2.0/
11 */7 */
12 8
13@import 'global/variables-light',9 // SCSS partials that were formerly imported here are now invoked on an as-needed, per-file basis.
14 'global/variables-dark',
15 'global/variables',
16 'global/mixins',
17 'global/icons',
18 'global/classes',
19 'global/base';
20 10
21@import 'components/app',11@use 'components/app';
22 'components/header',12@use 'components/header';
23 'components/notif',13@use 'components/notif';
24 'components/sidebar',14@use 'components/sidebar';
25 'components/settings',15@use 'components/settings';
26 'components/content',16@use 'components/content';
27 'components/page',17@use 'components/page';
28 'components/fail',18@use 'components/fail';
29 'components/path',19@use 'components/path';
30 'components/notice',20@use 'components/notice';
31 'components/prism',21@use 'components/prism';
32 'components/mobile',22@use 'components/mobile';
33 'components/environment';23@use 'components/environment';
34 24
35@import 'pages/simple',25@use 'pages/angular';
36 'pages/angular',26@use 'pages/angularjs';
37 'pages/angularjs',27@use 'pages/apache';
38 'pages/apache',28@use 'pages/async';
39 'pages/async',29@use 'pages/bash';
40 'pages/bash',30@use 'pages/bootstrap';
41 'pages/bootstrap',31@use 'pages/cppref';
42 'pages/cppref',32@use 'pages/cakephp';
43 'pages/cakephp',33@use 'pages/clojure';
44 'pages/clojure',34@use 'pages/codeception';
45 'pages/codeception',35@use 'pages/coffeescript';
46 'pages/coffeescript',36@use 'pages/cordova';
47 'pages/cordova',37@use 'pages/crystal';
48 'pages/crystal',38@use 'pages/cypress';
49 'pages/cypress',39@use 'pages/d';
50 'pages/d',40@use 'pages/d3';
51 'pages/d3',41@use 'pages/dart';
52 'pages/dart',42@use 'pages/dojo';
53 'pages/dojo',43@use 'pages/drupal';
54 'pages/drupal',44@use 'pages/eigen3';
55 'pages/eigen3',45@use 'pages/elixir';
56 'pages/elixir',46@use 'pages/elisp';
57 'pages/elisp',47@use 'pages/ember';
58 'pages/ember',48@use 'pages/erlang';
59 'pages/erlang',49@use 'pages/express';
60 'pages/express',50@use 'pages/fastapi';
61 'pages/fastapi',51@use 'pages/fluture';
62 'pages/fluture',52@use 'pages/git';
63 'pages/git',53@use 'pages/github';
64 'pages/github',54@use 'pages/gnuplot';
65 'pages/gnuplot',55@use 'pages/go';
66 'pages/go',56@use 'pages/graphite';
67 'pages/graphite',57@use 'pages/groovy';
68 'pages/groovy',58@use 'pages/gtk';
69 'pages/gtk',59@use 'pages/hapi';
70 'pages/hapi',60@use 'pages/haproxy';
71 'pages/haproxy',61@use 'pages/haskell';
72 'pages/haskell',62@use 'pages/jasmine';
73 'pages/jasmine',63@use 'pages/jekyll';
74 'pages/jekyll',64@use 'pages/joi';
75 'pages/joi',65@use 'pages/jq';
76 'pages/jq',66@use 'pages/jquery';
77 'pages/jquery',67@use 'pages/julia';
78 'pages/julia',68@use 'pages/knockout';
79 'pages/knockout',69@use 'pages/kotlin';
80 'pages/kotlin',70@use 'pages/kubectl';
81 'pages/kubectl',71@use 'pages/kubernetes';
82 'pages/kubernetes',72@use 'pages/laravel';
83 'pages/laravel',73@use 'pages/liquid';
84 'pages/liquid',74@use 'pages/lit';
85 'pages/lit',75@use 'pages/love';
86 'pages/love',76@use 'pages/lua';
87 'pages/lua',77@use 'pages/gnu_make';
88 'pages/gnu_make',78@use 'pages/mariadb';
89 'pages/mariadb',79@use 'pages/mdn';
90 'pages/mdn',80@use 'pages/meteor';
91 'pages/meteor',81@use 'pages/mkdocs';
92 'pages/mkdocs',82@use 'pages/modernizr';
93 'pages/modernizr',83@use 'pages/moment';
94 'pages/moment',84@use 'pages/nginx';
95 'pages/nginx',85@use 'pages/node';
96 'pages/node',86@use 'pages/npm';
97 'pages/npm',87@use 'pages/nushell';
98 'pages/nushell',88@use 'pages/octave';
99 'pages/octave',89@use 'pages/openjdk';
100 'pages/openjdk',90@use 'pages/openlayers';
101 'pages/openlayers',91@use 'pages/perl';
102 'pages/perl',92@use 'pages/phalcon';
103 'pages/phalcon',93@use 'pages/phaser';
104 'pages/phaser',94@use 'pages/php';
105 'pages/php',95@use 'pages/phpunit';
106 'pages/phpunit',96@use 'pages/postgres';
107 'pages/postgres',97@use 'pages/pug';
108 'pages/pug',98@use 'pages/pygame';
109 'pages/pygame',99@use 'pages/python';
110 'pages/python',100@use 'pages/qt';
111 'pages/qt',101@use 'pages/ramda';
112 'pages/ramda',102@use 'pages/rdoc';
113 'pages/rdoc',103@use 'pages/react';
114 'pages/react',104@use 'pages/react_native';
115 'pages/react_native',105@use 'pages/reactivex';
116 'pages/reactivex',106@use 'pages/redis';
117 'pages/redis',107@use 'pages/rethinkdb';
118 'pages/rethinkdb',108@use 'pages/rfc';
119 'pages/rfc',109@use 'pages/rubydoc';
120 'pages/rubydoc',110@use 'pages/rust';
121 'pages/rust',111@use 'pages/rxjs';
122 'pages/rxjs',112@use 'pages/sanctuary';
123 'pages/sanctuary',113@use 'pages/sanctuary_def';
124 'pages/sanctuary_def',114@use 'pages/sanctuary_type_classes';
125 'pages/sanctuary_type_classes',115@use 'pages/scala';
126 'pages/scala',116@use 'pages/sinon';
127 'pages/sinon',117@use 'pages/sphinx';
128 'pages/sphinx',118@use 'pages/sphinx_simple';
129 'pages/sphinx_simple',119@use 'pages/sqlite';
130 'pages/sqlite',120@use 'pages/support_tables';
131 'pages/support_tables',121@use 'pages/tailwindcss';
132 'pages/tailwindcss',122@use 'pages/tcl_tk';
133 'pages/tcl_tk',123@use 'pages/tensorflow';
134 'pages/tensorflow',124@use 'pages/terraform';
135 'pages/terraform',125@use 'pages/typescript';
136 'pages/typescript',126@use 'pages/underscore';
137 'pages/underscore',127@use 'pages/vue';
138 'pages/vue',128@use 'pages/webpack';
139 'pages/webpack',129@use 'pages/wordpress';
140 'pages/wordpress',130@use 'pages/yard';
141 'pages/yard',131@use 'pages/yii';
142 'pages/yii';
assets/stylesheets/components/_app.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1html._booting { background: var(--contentBackground); }3html._booting { background: var(--contentBackground); }
2body._max-width { background: none; }4body._max-width { background: none; }
3html._booting body._max-width { background: var(--documentBackground); }5html._booting body._max-width { background: var(--documentBackground); }
assets/stylesheets/components/_content.scss+6−1
@@ -2,6 +2,11 @@ · 1 unmodified line
2// Content2// Content
3//3//
4 4
5@use 'global/base';
6@use 'global/icons';
7@use 'global/mixins' as m;
8@use 'global/classes';
9
5._container {10._container {
6 position: relative;11 position: relative;
7 z-index: var(--contentZ);12 z-index: var(--contentZ);
@@ -10,7 +15,7 @@ · 2 unmodified lines
10 pointer-events: none;15 pointer-events: none;
11 @extend %border-box;16 @extend %border-box;
12 17
13 @include mobile { margin-left: var(--sidebarMediumWidth); }18 @include m.mobile { margin-left: var(--sidebarMediumWidth); }
14 19
15 ._sidebar-hidden & { margin-left: 0; }20 ._sidebar-hidden & { margin-left: 0; }
16 body:not(._native-scrollbars) & { -webkit-margin-end: -1px; }21 body:not(._native-scrollbars) & { -webkit-margin-end: -1px; }
assets/stylesheets/components/_fail.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._fail { // Don't use CSS variables, in case the browser doesn't support them.3._fail { // Don't use CSS variables, in case the browser doesn't support them.
2 display: block;4 display: block;
3 position: relative;5 position: relative;
assets/stylesheets/components/_header.scss+5−1
@@ -2,6 +2,10 @@ · 1 unmodified line
2// Header2// Header
3//3//
4 4
5@use 'global/icons';
6@use 'global/mixins' as m;
7@use 'global/classes';
8
5._header {9._header {
6 position: absolute;10 position: absolute;
7 z-index: var(--headerZ);11 z-index: var(--headerZ);
@@ -17,7 +21,7 @@ · 9 unmodified lines
17 @extend %border-box;21 @extend %border-box;
18 @extend %user-select-none;22 @extend %user-select-none;
19 23
20 @include mobile { width: var(--sidebarMediumWidth); }24 @include m.mobile { width: var(--sidebarMediumWidth); }
21}25}
22 26
23._header-left {27._header-left {
assets/stylesheets/components/_notice.scss+3−1
@@ -1,3 +1,5 @@
1@use 'global/mixins' as m;
2
1._notice {3._notice {
2 position: absolute;4 position: absolute;
3 z-index: var(--noticeZ);5 z-index: var(--noticeZ);
@@ -9,7 +11,7 @@ · 5 unmodified lines
9 background: var(--noticeBackground);11 background: var(--noticeBackground);
10 box-shadow: inset 0 1px var(--noticeBorder);12 box-shadow: inset 0 1px var(--noticeBorder);
11 13
12 @include mobile { left: var(--sidebarMediumWidth); }14 @include m.mobile { left: var(--sidebarMediumWidth); }
13 15
14 ._sidebar-hidden & { left: 0; }16 ._sidebar-hidden & { left: 0; }
15 17
assets/stylesheets/components/_notif.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/classes';
2@use 'global/icons';
3
1._notif, %notif {4._notif, %notif {
2 position: absolute;5 position: absolute;
3 z-index: 2;6 z-index: 2;
assets/stylesheets/components/_page.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/classes';
2@use 'components/content';
3
1//4//
2// Page5// Page
3//6//
assets/stylesheets/components/_path.scss+4−1
@@ -1,3 +1,6 @@
1@use 'global/mixins' as m;
2@use 'global/icons';
3
1._path {4._path {
2 position: absolute;5 position: absolute;
3 z-index: var(--headerZ);6 z-index: var(--headerZ);
@@ -11,7 +14,7 @@ · 7 unmodified lines
11 background: var(--pathBackground);14 background: var(--pathBackground);
12 box-shadow: inset 0 1px var(--pathBorder);15 box-shadow: inset 0 1px var(--pathBorder);
13 16
14 @include mobile { left: var(--sidebarMediumWidth); }17 @include m.mobile { left: var(--sidebarMediumWidth); }
15 18
16 ._sidebar-hidden & { left: 0; }19 ._sidebar-hidden & { left: 0; }
17 20
assets/stylesheets/components/_settings.scss+3−0
@@ -2,6 +2,9 @@ · 1 unmodified line
2// Settings2// Settings
3//3//
4 4
5@use 'global/classes';
6@use 'global/icons';
7
5._settings {8._settings {
6 display: none;9 display: none;
7 position: absolute;10 position: absolute;
assets/stylesheets/components/_sidebar.scss+6−2
@@ -2,6 +2,10 @@ · 1 unmodified line
2// Sidebar2// Sidebar
3//3//
4 4
5@use 'global/classes';
6@use 'global/icons';
7@use 'global/mixins' as m;
8
5._sidebar {9._sidebar {
6 position: absolute;10 position: absolute;
7 z-index: var(--sidebarZ);11 z-index: var(--sidebarZ);
@@ -76,7 +80,7 @@ · 68 unmodified lines
76 box-shadow: inset -1px 0 var(--sidebarBorder);80 box-shadow: inset -1px 0 var(--sidebarBorder);
77 @extend %border-box;81 @extend %border-box;
78 82
79 @include mobile { width: var(--sidebarMediumWidth); }83 @include m.mobile { width: var(--sidebarMediumWidth); }
80 84
81 ._sidebar > & { min-height: 100%; }85 ._sidebar > & { min-height: 100%; }
82 86
@@ -311,7 +315,7 @@ · 228 unmodified lines
311 transform: translate3d(0, 0, 0);315 transform: translate3d(0, 0, 0);
312 @extend %border-box;316 @extend %border-box;
313 317
314 @include mobile { min-width: var(--sidebarMediumWidth); }318 @include m.mobile { min-width: var(--sidebarMediumWidth); }
315 319
316 > ._list-text { display: inline; }320 > ._list-text { display: inline; }
317 321
assets/stylesheets/global/_base.scss+7−3
@@ -1,13 +1,17 @@
1@use 'global/classes';
2@use 'global/mixins' as m;
3@use 'global/variables' as *;
4@use 'global/print';
5
1html {6html {
2 height: 100%;7 height: 100%;
3 font-size: 100%;8 font-size: 100%;
4 background: #fff; // fallback to show the error message to browsers that don't support CSS variables.9 background: #fff; // fallback to show the error message to browsers that don't support CSS variables.
5 background: var(--documentBackground);10 background: var(--documentBackground);
6 11
7 @include mobile { font-size: 93.75%; }12 @include m.mobile { font-size: 93.75%; }
8 13
9 @include print { background: none; }14 @include m.print { background: none; }
10 @import 'global/print';
11}15}
12 16
13html._theme-default {17html._theme-default {
assets/stylesheets/global/_print.scss+3−1
@@ -1,4 +1,6 @@
1@include print {1@use 'global/mixins' as m;
2
3@include m.print {
2 ._header, ._sidebar, ._path, ._notif, ._toc, ._pre-clip, ._notice, ._links {4 ._header, ._sidebar, ._path, ._notif, ._toc, ._pre-clip, ._notice, ._links {
3 display: none !important;5 display: none !important;
4 }6 }
assets/stylesheets/global/_variables-dark.scss+4−2
@@ -1,3 +1,5 @@
1@use 'sass:color';
2
1html._theme-dark {3html._theme-dark {
2 --absolute: white;4 --absolute: white;
3 5
@@ -29,8 +31,8 @@ html._theme-dark { · 25 unmodified lines
29 31
30 --headerBackground: #1c1c1c;32 --headerBackground: #1c1c1c;
31 --headerBorder: #000;33 --headerBorder: #000;
32 --searchTagBackground: #{darken(#1c1c1c, 5%)};34 --searchTagBackground: #{color.adjust(#1c1c1c, $lightness: -5%)};
33 --searchBorder: #{darken(#000, 2%)};35 --searchBorder: #{color.adjust(#000, $lightness: -2%)};
34 36
35 --sidebarBackground: #24282a;37 --sidebarBackground: #24282a;
36 --transparentSidebarBackground: #{rgba(#24282a, 0)};38 --transparentSidebarBackground: #{rgba(#24282a, 0)};
assets/stylesheets/global/_variables-light.scss+4−2
@@ -1,3 +1,5 @@
1@use 'sass:color';
2
1html._theme-default {3html._theme-default {
2 --absolute: black;4 --absolute: black;
3 5
@@ -29,8 +31,8 @@ html._theme-default { · 25 unmodified lines
29 31
30 --headerBackground: #eee;32 --headerBackground: #eee;
31 --headerBorder: #d7d7d7;33 --headerBorder: #d7d7d7;
32 --searchTagBackground: #{darken(#eee, 5%)};34 --searchTagBackground: #{color.adjust(#eee, $lightness: -5%)};
33 --searchBorder: #{darken(#d7d7d7, 2%)};35 --searchBorder: #{color.adjust(#d7d7d7, $lightness: -2%)};
34 36
35 --sidebarBackground: #f9f9f9;37 --sidebarBackground: #f9f9f9;
36 --transparentSidebarBackground: #{rgba(#f9f9f9, 0)};38 --transparentSidebarBackground: #{rgba(#f9f9f9, 0)};
assets/stylesheets/global/_variables.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/variables-light';
2@use 'global/variables-dark';
3
1// Variables needed to style the error message for browsers that don't support CSS variables.4// Variables needed to style the error message for browsers that don't support CSS variables.
2$baseFont: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', Arial, sans-serif;5$baseFont: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Segoe UI', Roboto, Ubuntu, 'Helvetica Neue', Arial, sans-serif;
3$textColor: #333;6$textColor: #333;
assets/stylesheets/pages/_angular.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/base';
2@use 'pages/simple';
3
1._angular {4._angular {
2 @extend %simple;5 @extend %simple;
3 6
assets/stylesheets/pages/_angularjs.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._angularjs {3._angularjs {
2 h2 { @extend %block-heading; }4 h2 { @extend %block-heading; }
3 5
assets/stylesheets/pages/_apache.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._apache {3._apache {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_async.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._async {3._async {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_bash.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._bash {3._bash {
2 dl > dt > code,4 dl > dt > code,
3 dl > dt > kbd {5 dl > dt > kbd {
assets/stylesheets/pages/_bootstrap.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._bootstrap {3._bootstrap {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_cakephp.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._cakephp {3._cakephp {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_chef.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._chef {3._chef {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_clojure.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._clojure {3._clojure {
2 h2:not([id]) { @extend %block-heading; }4 h2:not([id]) { @extend %block-heading; }
3 h2[id], h3 { @extend %block-label, %label-blue; }5 h2[id], h3 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_codeception.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._codeception {3._codeception {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_coffeescript.scss+3−0
@@ -1,3 +1,6 @@
1@use 'pages/simple';
2
3
1._coffeescript {4._coffeescript {
2 @extend %simple;5 @extend %simple;
3 6
assets/stylesheets/pages/_cordova.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._cordova {3._cordova {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_cppref.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/base';
2
1._cppref {3._cppref {
2 > h2, > h3 { @extend %block-heading; }4 > h2, > h3 { @extend %block-heading; }
3 > h4 { @extend %block-label, %label-blue; }5 > h4 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_crystal.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/base';
2@use 'pages/simple';
3
1._crystal {4._crystal {
2 @extend %simple;5 @extend %simple;
3 6
assets/stylesheets/pages/_cypress.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._cypress {3._cypress {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_d.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/base';
2
1._d {3._d {
2 h2 { @extend %block-heading; }4 h2 { @extend %block-heading; }
3 h3, .d_decl { @extend %block-label, %label-blue; }5 h3, .d_decl { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_d3.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._d3 {3._d3 {
2 > h2 { @extend %block-heading; }4 > h2 { @extend %block-heading; }
3 > h3 { @extend %block-label; }5 > h3 { @extend %block-label; }
assets/stylesheets/pages/_dart.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._dart {3._dart {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_dojo.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._dojo {3._dojo {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_drupal.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._drupal {3._drupal {
2 h3 { @extend %block-heading; }4 h3 { @extend %block-heading; }
3 .signature { @extend %note, %note-blue; }5 .signature { @extend %note, %note-blue; }
assets/stylesheets/pages/_elisp.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._elisp {3._elisp {
2 dl > dt {4 dl > dt {
3 @extend %block-label, %label-blue;5 @extend %block-label, %label-blue;
assets/stylesheets/pages/_elixir.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._elixir {3._elixir {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_ember.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._ember {3._ember {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_erlang.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._erlang {3._erlang {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_express.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._express {3._express {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_fastapi.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._fastapi {3._fastapi {
2 > h2 { @extend %block-heading; }4 > h2 { @extend %block-heading; }
3 > h3 { @extend %block-label, %label-blue; }5 > h3 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_fluture.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._fluture {3._fluture {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_git.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._git {3._git {
2 padding-left: 1rem;4 padding-left: 1rem;
3 5
assets/stylesheets/pages/_github.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._github {3._github {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_gnu_make.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._gnu_make {3._gnu_make {
2 dl dt {4 dl dt {
3 @extend %block-label, %label-blue;5 @extend %block-label, %label-blue;
assets/stylesheets/pages/_gnuplot.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._gnuplot {3._gnuplot {
2 .CENTER {4 .CENTER {
3 text-align: center;5 text-align: center;
assets/stylesheets/pages/_go.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._go {3._go {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_graphite.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._graphite {3._graphite {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_groovy.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._groovy {3._groovy {
2 padding-left: 1rem;4 padding-left: 1rem;
3 5
assets/stylesheets/pages/_gtk.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._gtk {3._gtk {
2 padding-left: 1rem;4 padding-left: 1rem;
3 5
assets/stylesheets/pages/_hapi.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._hapi {3._hapi {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_haproxy.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._haproxy {3._haproxy {
2 padding-left: 1rem;4 padding-left: 1rem;
3 5
assets/stylesheets/pages/_haskell.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/base';
2
1._haskell-api {3._haskell-api {
2 > h2 { @extend %block-heading; }4 > h2 { @extend %block-heading; }
3 > h3 { @extend %block-label; }5 > h3 { @extend %block-label; }
assets/stylesheets/pages/_jasmine.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._jasmine {3._jasmine {
2 .subsection-title, h2 { @extend %block-heading; }4 .subsection-title, h2 { @extend %block-heading; }
3 h4 { @extend %block-label, %label-blue; }5 h4 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_jekyll.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._jekyll {3._jekyll {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_joi.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._joi {3._joi {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_jq.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/base';
2@use 'pages/simple';
3
1._jq {4._jq {
2 @extend %simple;5 @extend %simple;
3 6
assets/stylesheets/pages/_jquery.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._jquery {3._jquery {
2 //4 //
3 // Index page5 // Index page
assets/stylesheets/pages/_julia.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._julia {3._julia {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_knockout.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._knockout {3._knockout {
2 > h2 { @extend %block-heading; }4 > h2 { @extend %block-heading; }
3 > h3 { @extend %block-label, %label-blue; }5 > h3 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_kotlin.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._kotlin {3._kotlin {
2 h2 { @extend %block-heading; }4 h2 { @extend %block-heading; }
3 h3 { @extend %block-label, %label-blue; }5 h3 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_kubectl.scss+2−1
@@ -1,4 +1,5 @@
1@use 'pages/simple';
2
1._kubectl {3._kubectl {
2 @extend %simple;4 @extend %simple;
3
4}5}
assets/stylesheets/pages/_kubernetes.scss+2−1
@@ -1,4 +1,5 @@
1@use 'pages/simple';
2
1._kubernetes {3._kubernetes {
2 @extend %simple;4 @extend %simple;
3
4}5}
assets/stylesheets/pages/_laravel.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._laravel {3._laravel {
2 h2 { @extend %block-heading; }4 h2 { @extend %block-heading; }
3 h3 { @extend %block-label, %label-blue; }5 h3 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_liquid.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._liquid {3._liquid {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_lit.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._lit {3._lit {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_love.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._love {3._love {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_lua.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._lua {3._lua {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_mariadb.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._mariadb {3._mariadb {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_mdn.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._mdn {3._mdn {
2 container-type: inline-size;4 container-type: inline-size;
3 5
assets/stylesheets/pages/_meteor.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._meteor {3._meteor {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_mkdocs.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._mkdocs {3._mkdocs {
2 h2 { @extend %block-heading; }4 h2 { @extend %block-heading; }
3 h3 { @extend %block-label, %label-blue; }5 h3 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_modernizr.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._modernizr {3._modernizr {
2 h2 { @extend %block-heading; }4 h2 { @extend %block-heading; }
3 h3 { @extend %block-label, %label-blue; }5 h3 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_moment.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._moment {3._moment {
2 > h2 { @extend %block-heading; }4 > h2 { @extend %block-heading; }
3 > h3 { @extend %block-label, %label-blue; }5 > h3 { @extend %block-label, %label-blue; }
assets/stylesheets/pages/_nginx.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._nginx {3._nginx {
2 h4 { @extend %block-heading; }4 h4 { @extend %block-heading; }
3 .note { @extend %note; }5 .note { @extend %note; }
assets/stylesheets/pages/_node.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._node {3._node {
2 // https://nodejs.org/api/documentation.html#stability-index4 // https://nodejs.org/api/documentation.html#stability-index
3 .api_stability { clear: both; }5 .api_stability { clear: both; }
assets/stylesheets/pages/_npm.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._npm {3._npm {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_nushell.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._nushell {3._nushell {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_octave.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._octave {3._octave {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_openjdk.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._openjdk {3._openjdk {
2 @extend %simple;4 @extend %simple;
3 > .inheritance { @extend %note; }5 > .inheritance { @extend %note; }
assets/stylesheets/pages/_openlayers.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/base';
2@use 'pages/simple';
3
1._openlayers {4._openlayers {
2 @extend %simple;5 @extend %simple;
3 .nameContainer {6 .nameContainer {
assets/stylesheets/pages/_perl.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._perl {3._perl {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_phalcon.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._phalcon {3._phalcon {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_phaser.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._phaser {3._phaser {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_php.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/classes';
2@use 'components/content';
3
1._php {4._php {
2 h1 {5 h1 {
3 margin-top: 0;6 margin-top: 0;
assets/stylesheets/pages/_phpunit.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._phpunit {3._phpunit {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_postgres.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._postgres {3._postgres {
2 padding-left: 1rem;4 padding-left: 1rem;
3 5
assets/stylesheets/pages/_pug.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._pug {3._pug {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_pygame.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._pygame {3._pygame {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_python.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/sphinx';
2
1._python {3._python {
2 @extend %sphinx;4 @extend %sphinx;
3 5
assets/stylesheets/pages/_qt.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._qt {3._qt {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_ramda.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/base';
2@use 'pages/simple';
3
1._ramda {4._ramda {
2 @extend %simple;5 @extend %simple;
3 6
assets/stylesheets/pages/_rdoc.scss+4−1
@@ -1,3 +1,6 @@
1@use 'global/classes';
2@use 'global/mixins' as m;
3
1._rdoc {4._rdoc {
2 > .description, > .documentation-section { padding-left: 1rem; }5 > .description, > .documentation-section { padding-left: 1rem; }
3 > .description > h2, header > h3, > h2 { @extend %block-heading; }6 > .description > h2, header > h3, > h2 { @extend %block-heading; }
@@ -28,7 +31,7 @@ · 24 unmodified lines
28 31
29 &:hover { text-decoration: underline; }32 &:hover { text-decoration: underline; }
30 33
31 @include print {34 @include m.print {
32 display: none;35 display: none;
33 }36 }
34 }37 }
assets/stylesheets/pages/_react.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._react {3._react {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_react_native.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._react_native {3._react_native {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_reactivex.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._reactivex {3._reactivex {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_redis.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/base';
2@use 'global/classes';
3
1._redis {4._redis {
2 padding-left: 1rem;5 padding-left: 1rem;
3 6
assets/stylesheets/pages/_rethinkdb.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._rethinkdb {3._rethinkdb {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_rfc.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/base';
2
1._rfc-pre {3._rfc-pre {
2 font-size: .8125rem;4 font-size: .8125rem;
3 min-width: 38rem;5 min-width: 38rem;
assets/stylesheets/pages/_rubydoc.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._rubydoc {3._rubydoc {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_rust.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/base';
2@use 'pages/simple';
3
1._rust {4._rust {
2 @extend %simple;5 @extend %simple;
3 6
assets/stylesheets/pages/_rxjs.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._rxjs {3._rxjs {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_sanctuary.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._sanctuary {3._sanctuary {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_sanctuary_def.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._sanctuary_def {3._sanctuary_def {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_sanctuary_type_classes.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._sanctuary_type_classes {3._sanctuary_type_classes {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_scala.scss+6−2
@@ -1,3 +1,7 @@
1@use 'global/base';
2@use 'global/mixins' as m;
3@use 'pages/simple';
4
1._scala {5._scala {
2 @extend %simple;6 @extend %simple;
3 7
@@ -22,7 +26,7 @@ · 18 unmodified lines
22 26
23 a { padding: .4em }27 a { padding: .4em }
24 28
25 @include print {29 @include m.print {
26 display: none;30 display: none;
27 }31 }
28 }32 }
@@ -36,7 +40,7 @@ · 7 unmodified lines
36 40
37 &:hover { text-decoration: underline; }41 &:hover { text-decoration: underline; }
38 42
39 @include print {43 @include m.print {
40 display: none;44 display: none;
41 }45 }
42 }46 }
assets/stylesheets/pages/_simple.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1%simple {3%simple {
2 padding-left: 1rem;4 padding-left: 1rem;
3 5
assets/stylesheets/pages/_sinon.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._sinon {3._sinon {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_sphinx.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1%sphinx {3%sphinx {
2 h2 { @extend %block-heading; }4 h2 { @extend %block-heading; }
3 h3 { @extend %block-label; }5 h3 { @extend %block-label; }
assets/stylesheets/pages/_sphinx_simple.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._sphinx_simple {3._sphinx_simple {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_sqlite.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._sqlite {3._sqlite {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_support_tables.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._support_tables {3._support_tables {
2 h2 { @extend %block-heading; }4 h2 { @extend %block-heading; }
3 code { @extend %label; }5 code { @extend %label; }
assets/stylesheets/pages/_tcl_tk.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._tcl_tk {3._tcl_tk {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_tensorflow.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._tensorflow {3._tensorflow {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_terraform.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._terraform {3._terraform {
2 @extend %simple;4 @extend %simple;
3 .note, .alert { @extend %note; }5 .note, .alert { @extend %note; }
assets/stylesheets/pages/_typescript.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._typescript {3._typescript {
2 @extend %simple;4 @extend %simple;
3 .deprecated { @extend %label-red; }5 .deprecated { @extend %label-red; }
assets/stylesheets/pages/_underscore.scss+2−0
@@ -1,3 +1,5 @@
1@use 'global/classes';
2
1._underscore {3._underscore {
2 padding-left: 1rem;4 padding-left: 1rem;
3 5
assets/stylesheets/pages/_vue.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._vue {3._vue {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_webpack.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._webpack {3._webpack {
2 @extend %simple;4 @extend %simple;
3 5
assets/stylesheets/pages/_wordpress.scss+3−1
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._wordpress {3._wordpress {
2 @extend %simple;4 @extend %simple;
3 5
@@ -12,4 +14,4 @@ · 8 unmodified lines
12 .callout-alert {14 .callout-alert {
13 @extend %note, %note-orange;15 @extend %note, %note-orange;
14 }16 }
15}17}
assets/stylesheets/pages/_yard.scss+3−0
@@ -1,3 +1,6 @@
1@use 'global/classes';
2@use 'pages/simple';
3
1._yard {4._yard {
2 @extend %simple;5 @extend %simple;
3 6
assets/stylesheets/pages/_yii.scss+2−0
@@ -1,3 +1,5 @@
1@use 'pages/simple';
2
1._yii {3._yii {
2 @extend %simple;4 @extend %simple;
3 5
lib/tasks/sprites.thor+15−0
@@ -56,6 +56,9 @@ class SpritesCLI < Thor · 55 unmodified lines
56 56
57 save_manifest(items, icons_per_row, 'assets/images/sprites/docs.json')57 save_manifest(items, icons_per_row, 'assets/images/sprites/docs.json')
58 58
59 # SCSS wrapped in ERB templates must be compiled manually.
60 compile_scss_erb
61
59 if options[:remove_public_icons]62 if options[:remove_public_icons]
60 logger.info('Removing public/icons')63 logger.info('Removing public/icons')
61 FileUtils.rm_rf('public/icons')64 FileUtils.rm_rf('public/icons')
@@ -213,6 +216,18 @@ class SpritesCLI < Thor · 151 unmodified lines
213 "assets/images/sprites/docs#{size == 32 ? '@2x' : ''}.png"216 "assets/images/sprites/docs#{size == 32 ? '@2x' : ''}.png"
214 end217 end
215 218
219 def compile_scss_erb
220 scss_erb_files = Dir['assets/stylesheets/**/*.scss.erb']
221
222 scss_erb_files.each do |erb_path|
223 scss_path = erb_path.gsub('.erb', '')
224 File.open(scss_path, 'w') do |f|
225 f.write(ERB.new(File.open(erb_path).read).result)
226 logger.info("Compiling #{erb_path} to #{scss_path}")
227 end
228 end
229 end
230
216 def image_optim231 def image_optim
217 @image_optim ||= ImageOptim.new(232 @image_optim ||= ImageOptim.new(
218 :config_paths => [],233 :config_paths => [],