├── .gitignore ├── Gemfile ├── Gemfile.lock ├── README.md ├── _config.yml ├── _includes ├── aside.html ├── counter.html ├── list-blocks.html └── select-blocks.html ├── _layouts └── nil.html ├── code-blocks-grabber.js ├── index.html ├── script.js ├── styles.css └── useful-symbols.js /.gitignore: -------------------------------------------------------------------------------- 1 | _site/ 2 | *.log 3 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | gem 'github-pages' 3 | gem 'nokogiri', '>= 1.10.8' 4 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | activesupport (6.0.3.1) 5 | concurrent-ruby (~> 1.0, >= 1.0.2) 6 | i18n (>= 0.7, < 2) 7 | minitest (~> 5.1) 8 | tzinfo (~> 1.1) 9 | zeitwerk (~> 2.2, >= 2.2.2) 10 | addressable (2.8.0) 11 | public_suffix (>= 2.0.2, < 5.0) 12 | coffee-script (2.4.1) 13 | coffee-script-source 14 | execjs 15 | coffee-script-source (1.11.1) 16 | colorator (1.1.0) 17 | commonmarker (0.17.13) 18 | ruby-enum (~> 0.5) 19 | concurrent-ruby (1.1.6) 20 | dnsruby (1.61.3) 21 | addressable (~> 2.5) 22 | em-websocket (0.5.1) 23 | eventmachine (>= 0.12.9) 24 | http_parser.rb (~> 0.6.0) 25 | ethon (0.12.0) 26 | ffi (>= 1.3.0) 27 | eventmachine (1.2.7) 28 | execjs (2.7.0) 29 | faraday (1.0.1) 30 | multipart-post (>= 1.2, < 3) 31 | ffi (1.12.2) 32 | forwardable-extended (2.6.0) 33 | gemoji (3.0.1) 34 | github-pages (204) 35 | github-pages-health-check (= 1.16.1) 36 | jekyll (= 3.8.5) 37 | jekyll-avatar (= 0.7.0) 38 | jekyll-coffeescript (= 1.1.1) 39 | jekyll-commonmark-ghpages (= 0.1.6) 40 | jekyll-default-layout (= 0.1.4) 41 | jekyll-feed (= 0.13.0) 42 | jekyll-gist (= 1.5.0) 43 | jekyll-github-metadata (= 2.13.0) 44 | jekyll-mentions (= 1.5.1) 45 | jekyll-optional-front-matter (= 0.3.2) 46 | jekyll-paginate (= 1.1.0) 47 | jekyll-readme-index (= 0.3.0) 48 | jekyll-redirect-from (= 0.15.0) 49 | jekyll-relative-links (= 0.6.1) 50 | jekyll-remote-theme (= 0.4.1) 51 | jekyll-sass-converter (= 1.5.2) 52 | jekyll-seo-tag (= 2.6.1) 53 | jekyll-sitemap (= 1.4.0) 54 | jekyll-swiss (= 1.0.0) 55 | jekyll-theme-architect (= 0.1.1) 56 | jekyll-theme-cayman (= 0.1.1) 57 | jekyll-theme-dinky (= 0.1.1) 58 | jekyll-theme-hacker (= 0.1.1) 59 | jekyll-theme-leap-day (= 0.1.1) 60 | jekyll-theme-merlot (= 0.1.1) 61 | jekyll-theme-midnight (= 0.1.1) 62 | jekyll-theme-minimal (= 0.1.1) 63 | jekyll-theme-modernist (= 0.1.1) 64 | jekyll-theme-primer (= 0.5.4) 65 | jekyll-theme-slate (= 0.1.1) 66 | jekyll-theme-tactile (= 0.1.1) 67 | jekyll-theme-time-machine (= 0.1.1) 68 | jekyll-titles-from-headings (= 0.5.3) 69 | jemoji (= 0.11.1) 70 | kramdown (= 1.17.0) 71 | liquid (= 4.0.3) 72 | mercenary (~> 0.3) 73 | minima (= 2.5.1) 74 | nokogiri (>= 1.10.4, < 2.0) 75 | rouge (= 3.13.0) 76 | terminal-table (~> 1.4) 77 | github-pages-health-check (1.16.1) 78 | addressable (~> 2.3) 79 | dnsruby (~> 1.60) 80 | octokit (~> 4.0) 81 | public_suffix (~> 3.0) 82 | typhoeus (~> 1.3) 83 | html-pipeline (2.12.3) 84 | activesupport (>= 2) 85 | nokogiri (>= 1.4) 86 | http_parser.rb (0.6.0) 87 | i18n (0.9.5) 88 | concurrent-ruby (~> 1.0) 89 | jekyll (3.8.5) 90 | addressable (~> 2.4) 91 | colorator (~> 1.0) 92 | em-websocket (~> 0.5) 93 | i18n (~> 0.7) 94 | jekyll-sass-converter (~> 1.0) 95 | jekyll-watch (~> 2.0) 96 | kramdown (~> 1.14) 97 | liquid (~> 4.0) 98 | mercenary (~> 0.3.3) 99 | pathutil (~> 0.9) 100 | rouge (>= 1.7, < 4) 101 | safe_yaml (~> 1.0) 102 | jekyll-avatar (0.7.0) 103 | jekyll (>= 3.0, < 5.0) 104 | jekyll-coffeescript (1.1.1) 105 | coffee-script (~> 2.2) 106 | coffee-script-source (~> 1.11.1) 107 | jekyll-commonmark (1.3.1) 108 | commonmarker (~> 0.14) 109 | jekyll (>= 3.7, < 5.0) 110 | jekyll-commonmark-ghpages (0.1.6) 111 | commonmarker (~> 0.17.6) 112 | jekyll-commonmark (~> 1.2) 113 | rouge (>= 2.0, < 4.0) 114 | jekyll-default-layout (0.1.4) 115 | jekyll (~> 3.0) 116 | jekyll-feed (0.13.0) 117 | jekyll (>= 3.7, < 5.0) 118 | jekyll-gist (1.5.0) 119 | octokit (~> 4.2) 120 | jekyll-github-metadata (2.13.0) 121 | jekyll (>= 3.4, < 5.0) 122 | octokit (~> 4.0, != 4.4.0) 123 | jekyll-mentions (1.5.1) 124 | html-pipeline (~> 2.3) 125 | jekyll (>= 3.7, < 5.0) 126 | jekyll-optional-front-matter (0.3.2) 127 | jekyll (>= 3.0, < 5.0) 128 | jekyll-paginate (1.1.0) 129 | jekyll-readme-index (0.3.0) 130 | jekyll (>= 3.0, < 5.0) 131 | jekyll-redirect-from (0.15.0) 132 | jekyll (>= 3.3, < 5.0) 133 | jekyll-relative-links (0.6.1) 134 | jekyll (>= 3.3, < 5.0) 135 | jekyll-remote-theme (0.4.1) 136 | addressable (~> 2.0) 137 | jekyll (>= 3.5, < 5.0) 138 | rubyzip (>= 1.3.0) 139 | jekyll-sass-converter (1.5.2) 140 | sass (~> 3.4) 141 | jekyll-seo-tag (2.6.1) 142 | jekyll (>= 3.3, < 5.0) 143 | jekyll-sitemap (1.4.0) 144 | jekyll (>= 3.7, < 5.0) 145 | jekyll-swiss (1.0.0) 146 | jekyll-theme-architect (0.1.1) 147 | jekyll (~> 3.5) 148 | jekyll-seo-tag (~> 2.0) 149 | jekyll-theme-cayman (0.1.1) 150 | jekyll (~> 3.5) 151 | jekyll-seo-tag (~> 2.0) 152 | jekyll-theme-dinky (0.1.1) 153 | jekyll (~> 3.5) 154 | jekyll-seo-tag (~> 2.0) 155 | jekyll-theme-hacker (0.1.1) 156 | jekyll (~> 3.5) 157 | jekyll-seo-tag (~> 2.0) 158 | jekyll-theme-leap-day (0.1.1) 159 | jekyll (~> 3.5) 160 | jekyll-seo-tag (~> 2.0) 161 | jekyll-theme-merlot (0.1.1) 162 | jekyll (~> 3.5) 163 | jekyll-seo-tag (~> 2.0) 164 | jekyll-theme-midnight (0.1.1) 165 | jekyll (~> 3.5) 166 | jekyll-seo-tag (~> 2.0) 167 | jekyll-theme-minimal (0.1.1) 168 | jekyll (~> 3.5) 169 | jekyll-seo-tag (~> 2.0) 170 | jekyll-theme-modernist (0.1.1) 171 | jekyll (~> 3.5) 172 | jekyll-seo-tag (~> 2.0) 173 | jekyll-theme-primer (0.5.4) 174 | jekyll (> 3.5, < 5.0) 175 | jekyll-github-metadata (~> 2.9) 176 | jekyll-seo-tag (~> 2.0) 177 | jekyll-theme-slate (0.1.1) 178 | jekyll (~> 3.5) 179 | jekyll-seo-tag (~> 2.0) 180 | jekyll-theme-tactile (0.1.1) 181 | jekyll (~> 3.5) 182 | jekyll-seo-tag (~> 2.0) 183 | jekyll-theme-time-machine (0.1.1) 184 | jekyll (~> 3.5) 185 | jekyll-seo-tag (~> 2.0) 186 | jekyll-titles-from-headings (0.5.3) 187 | jekyll (>= 3.3, < 5.0) 188 | jekyll-watch (2.2.1) 189 | listen (~> 3.0) 190 | jemoji (0.11.1) 191 | gemoji (~> 3.0) 192 | html-pipeline (~> 2.2) 193 | jekyll (>= 3.0, < 5.0) 194 | kramdown (1.17.0) 195 | liquid (4.0.3) 196 | listen (3.2.1) 197 | rb-fsevent (~> 0.10, >= 0.10.3) 198 | rb-inotify (~> 0.9, >= 0.9.10) 199 | mercenary (0.3.6) 200 | mini_portile2 (2.5.1) 201 | minima (2.5.1) 202 | jekyll (>= 3.5, < 5.0) 203 | jekyll-feed (~> 0.9) 204 | jekyll-seo-tag (~> 2.1) 205 | minitest (5.14.1) 206 | multipart-post (2.1.1) 207 | nokogiri (1.11.4) 208 | mini_portile2 (~> 2.5.0) 209 | racc (~> 1.4) 210 | octokit (4.18.0) 211 | faraday (>= 0.9) 212 | sawyer (~> 0.8.0, >= 0.5.3) 213 | pathutil (0.16.2) 214 | forwardable-extended (~> 2.6) 215 | public_suffix (3.1.1) 216 | racc (1.5.2) 217 | rb-fsevent (0.10.3) 218 | rb-inotify (0.10.1) 219 | ffi (~> 1.0) 220 | rouge (3.13.0) 221 | ruby-enum (0.7.2) 222 | i18n 223 | rubyzip (2.3.0) 224 | safe_yaml (1.0.5) 225 | sass (3.7.4) 226 | sass-listen (~> 4.0.0) 227 | sass-listen (4.0.0) 228 | rb-fsevent (~> 0.9, >= 0.9.4) 229 | rb-inotify (~> 0.9, >= 0.9.7) 230 | sawyer (0.8.2) 231 | addressable (>= 2.3.5) 232 | faraday (> 0.8, < 2.0) 233 | terminal-table (1.8.0) 234 | unicode-display_width (~> 1.1, >= 1.1.1) 235 | thread_safe (0.3.6) 236 | typhoeus (1.3.1) 237 | ethon (>= 0.9.0) 238 | tzinfo (1.2.7) 239 | thread_safe (~> 0.1) 240 | unicode-display_width (1.7.0) 241 | zeitwerk (2.3.0) 242 | 243 | PLATFORMS 244 | ruby 245 | 246 | DEPENDENCIES 247 | github-pages 248 | nokogiri (>= 1.10.8) 249 | 250 | BUNDLED WITH 251 | 1.17.2 252 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Таблица символов Юникода 2 | ================ 3 | Страница сделана с целью увидеть максимальное количество символов юникода. 4 | 5 | Посмотреть можно тут: yoksel.github.io/unicode-table/. 6 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # standard jekyll configuration 2 | 3 | permalink: /:title 4 | highlighter: rouge 5 | exclude: ['Rakefile', 'config.rb', 'README.md','gems'] 6 | markdown: rdiscount 7 | -------------------------------------------------------------------------------- /_includes/aside.html: -------------------------------------------------------------------------------- 1 |
2 |

Некоторые блоки юникода

3 | 23 |
24 |
25 |

Ссылки по теме

26 | 35 |
36 | 37 |
38 | Проект на гитхабе 39 |
40 | -------------------------------------------------------------------------------- /_includes/counter.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /_includes/list-blocks.html: -------------------------------------------------------------------------------- 1 | 311 | -------------------------------------------------------------------------------- /_includes/select-blocks.html: -------------------------------------------------------------------------------- 1 | 414 | -------------------------------------------------------------------------------- /_layouts/nil.html: -------------------------------------------------------------------------------- 1 | {{ content }} 2 | -------------------------------------------------------------------------------- /code-blocks-grabber.js: -------------------------------------------------------------------------------- 1 | // Script for grabbing code blocks 2 | // http://unicode.org/charts/index.html#scripts 3 | 4 | const texts = document.querySelectorAll('td p'); 5 | const options = []; 6 | let isStarted = false; 7 | 8 | texts.forEach(item => { 9 | const links = item.querySelectorAll('a'); 10 | const space = item.classList.contains('sb') || item.classList.contains('pb') 11 | ? '• ' 12 | : ''; 13 | const groupPrefix = isStarted 14 | ? `` 15 | : ''; 16 | 17 | if (item.classList.contains('sg') 18 | || (item.classList.contains('mb') && links.length === 0)) { 19 | options.push(`${groupPrefix}`) 20 | isStarted = true; 21 | } 22 | 23 | if (links.length > 0) 24 | links.forEach(link => { 25 | if(link.title) 26 | options.push(``) 27 | }) 28 | }) 29 | 30 | options.push(''); 31 | 32 | console.log(options.join('\n')) 33 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: nil 3 | layout_type: mainpage 4 | --- 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Таблица символов Юникода 13 | 14 | 15 | 16 | 17 | 18 |
19 | 22 | 23 |
24 |
25 |
26 |

Страница была сделана из любопытства с целью увидеть максимальное количество символов юникода.

27 | 28 |

Для использования символа в HTML скопируйте код из зелёного поля, для использования в CSS - из голубого.

29 | 30 |

Кликните по символу, чтобы посмотреть как он поддерживается в разных шрифтах.

31 | 32 |
33 |
34 | {% include select-blocks.html %} 35 |

Блоки Юникода

36 |
37 | 38 |
39 | Загрузка... 40 |
41 |
42 |
43 | 44 | 47 |
48 | 49 | 50 | 51 | {% include counter.html %} 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | var separator = ".."; 2 | var step = 10000; 3 | var content__title = document.querySelector(".content__title"); 4 | var context = ""; 5 | var fonts = ["Arial", "Arial Unicode MS", "Courier New", "Georgia", "Tahoma", "Times", "Trebuchet", "Verdana"]; 6 | var default_title = "Полезные символыМоя подборка"; 7 | 8 | initial(); 9 | 10 | function print_symbols ( min, max ) { 11 | 12 | var out = ""; 13 | var placeOutput = document.getElementById("symbols"); 14 | placeOutput.innerHTML = "Загрузка"; 15 | 16 | out += ""; 35 | 36 | placeOutput.innerHTML = out; 37 | 38 | add_action_to_symbols_list(); 39 | } 40 | 41 | 42 | function change_data ( data_range, text ) { 43 | 44 | var range = get_range_from_string ( data_range ); 45 | var min = range[0]; 46 | var max = range[1]; 47 | 48 | print_symbols ( min, max ); 49 | content__title.innerHTML = text + "" + data_range + ""; 50 | change_href ( data_range, text ); 51 | remove_class("current"); 52 | highlight_current ( data_range ); 53 | } 54 | 55 | function add_action_to_range_select () { 56 | 57 | var select = document.querySelector(".content__select"); 58 | 59 | select.addEventListener('change', function() { 60 | var elem = this.options[this.selectedIndex]; 61 | var data_range = elem.value; 62 | var text = elem.text 63 | .replace("• ", ""); 64 | context = "select"; 65 | 66 | change_data ( data_range, text ); 67 | }); 68 | 69 | } 70 | 71 | function show_range_for_elem ( elem ){ 72 | 73 | var data_range = elem.getAttribute('data-range'); 74 | var text = elem.textContent; 75 | context = "list"; 76 | 77 | change_data ( data_range, text ); 78 | elem.classList.add('current'); 79 | 80 | } 81 | 82 | function add_action_to_range_list () { 83 | 84 | var list_items = document.querySelectorAll(".list--blocks LI"); 85 | 86 | for ( var i = 0; i < list_items.length; i++ ){ 87 | var item = list_items[i]; 88 | 89 | item.addEventListener('click', function() { 90 | show_range_for_elem ( this ); 91 | }, false); 92 | } 93 | } 94 | 95 | function show_range_for_url () { 96 | 97 | var text = ""; 98 | context = "href"; 99 | var hash = decodeURI(document.location.hash) 100 | .substr(1) 101 | .replace("• ", ""); 102 | var hash_arr = hash.split(" "); 103 | var data_range = hash_arr[0]; 104 | 105 | var start = 1; 106 | 107 | if ( hash.indexOf("..") < 0 ){ 108 | data_range = hash_arr[0] + " " + hash_arr[1]; 109 | start = 2; 110 | } 111 | 112 | for ( var i = start; i < hash_arr.length; i++ ){ 113 | text += hash_arr[i]; 114 | if ( i < hash_arr.length - 1 ) { 115 | text += " "; 116 | } 117 | } 118 | 119 | change_data ( data_range, text ); 120 | } 121 | 122 | function add_action_to_symbols_list () { 123 | var chars = document.querySelectorAll(".show-case"); 124 | var class_name = "entities__item--wide"; 125 | 126 | for ( var i = 0; i < chars.length; i++ ){ 127 | var chars_item = chars[i]; 128 | 129 | chars_item.addEventListener ('click', function() { 130 | 131 | var parent = this.parentNode; 132 | var parent_class = parent.classList; 133 | var text = this.textContent; 134 | 135 | if ( !parent_class.contains( class_name )){ 136 | close_show_case (); 137 | parent.classList.add( class_name ); 138 | this.innerHTML = create_fonts_list ( text ); 139 | } 140 | }); 141 | } 142 | 143 | } 144 | 145 | function create_fonts_list ( char_item ) { 146 | var show_case_content = ""; 147 | 148 | for ( var k = 0; k < fonts.length; k++ ) { 149 | var font = fonts[k]; 150 | var font_class = font.toLowerCase(font); 151 | font_class = "f-" + string_to_class ( font_class ); 152 | 153 | show_case_content += "
  • "; 154 | show_case_content += "" + font + ""; 155 | show_case_content += "" + char_item + ""; 156 | show_case_content += "
  • "; 157 | } 158 | 159 | return show_case_content; 160 | } 161 | 162 | function add_action_to_close () { 163 | 164 | var elems = document.querySelectorAll(".close"); 165 | 166 | for ( var i = 0; i < elems.length; i++ ){ 167 | elems[i].addEventListener ("click", function() { 168 | close_show_case (); 169 | }); 170 | } 171 | } 172 | 173 | function close_show_case () { 174 | 175 | var class_name = "entities__item--wide"; 176 | var show_case = document.querySelector(".entities__item--wide .show-case"); 177 | 178 | if ( show_case ){ 179 | var show_case_content = show_case.getAttribute("data-char"); 180 | show_case.innerHTML = show_case_content; 181 | remove_class ( class_name ); 182 | } 183 | } 184 | 185 | //___________ Common ___________ 186 | 187 | function num_to_hex ( num ){ 188 | return num.toString(16); 189 | } 190 | 191 | function hex_to_num ( hex ){ 192 | const int = parseInt(hex, 16); 193 | return isNaN(int) 194 | ? null 195 | : int; 196 | } 197 | 198 | function num_readable( num ) { 199 | var num = num + ""; 200 | return num.slice(-9, -6) + " " + num.slice(-6, -3) + " " + num.slice(-3); 201 | } 202 | 203 | function initial() { 204 | 205 | if ( document.location.hash != "" ){ 206 | show_range_for_url(); 207 | } 208 | else { 209 | print_symbols ( 0, 0 ); 210 | content__title.innerHTML = default_title; 211 | } 212 | 213 | add_action_to_range_select(); 214 | add_action_to_range_list(); 215 | add_action_to_close (); 216 | } 217 | 218 | function get_symbol( i, max ) { 219 | var out = ""; 220 | var char_i = String.fromCodePoint(i); 221 | 222 | out += "
  • &#" + i + ""; 223 | out += "\\" + num_to_hex(i) + ""; 224 | out += ""; 225 | out += ""; 226 | out += "
  • \n"; 227 | 228 | if ( i < max 229 | && i > 0 230 | && i % 1000 == 0 231 | && context == "page" ) { 232 | out += "\n"; 233 | out += "

    " + i + "

    "; 234 | out += "