| author | |
| committer | |
| log | 28ad74e8a6ed3484d632a6a615f5d0935c03676a |
| tree | c78e1a5a08e24cc50b9e652d01f0a4e9e1fe1890 |
| parent | 116a99d3cef91046bf132b6fcecbd2708f912896 |
4 files changed, 88 insertions(+), 46 deletions(-)
lib/docs/index.html+82| ... | ... | @@ -680,7 +680,88 @@ |
| 680 | 680 | .banner a { |
| 681 | 681 | color: black; |
| 682 | 682 | text-decoration: underline; |
| 683 | } | |
| 684 | ||
| 685 | </style> | |
| 686 | ||
| 687 | <style> | |
| 688 | pre{ | |
| 689 | --zig-keyword: #333; | |
| 690 | --zig-identifier: 'black'; | |
| 691 | } | |
| 692 | ||
| 693 | @media (prefers-color-scheme: dark) { | |
| 694 | pre { | |
| 695 | --zig-keyword: 'white'; | |
| 696 | --zig-identifier: 'purple'; | |
| 697 | } | |
| 698 | } | |
| 699 | ||
| 700 | .zig_keyword_addrspace, | |
| 701 | .zig_keyword_align, | |
| 702 | .zig_keyword_allowzero, | |
| 703 | .zig_keyword_and, | |
| 704 | .zig_keyword_anyframe, | |
| 705 | .zig_keyword_anytype, | |
| 706 | .zig_keyword_asm, | |
| 707 | .zig_keyword_async, | |
| 708 | .zig_keyword_await, | |
| 709 | .zig_keyword_break, | |
| 710 | .zig_keyword_callconv, | |
| 711 | .zig_keyword_catch, | |
| 712 | .zig_keyword_comptime, | |
| 713 | .zig_keyword_const, | |
| 714 | .zig_keyword_continue, | |
| 715 | .zig_keyword_defer, | |
| 716 | .zig_keyword_else, | |
| 717 | .zig_keyword_enum, | |
| 718 | .zig_keyword_errdefer, | |
| 719 | .zig_keyword_error, | |
| 720 | .zig_keyword_export, | |
| 721 | .zig_keyword_extern, | |
| 722 | .zig_keyword_fn, | |
| 723 | .zig_keyword_for, | |
| 724 | .zig_keyword_if, | |
| 725 | .zig_keyword_inline, | |
| 726 | .zig_keyword_noalias, | |
| 727 | .zig_keyword_noinline, | |
| 728 | .zig_keyword_nosuspend, | |
| 729 | .zig_keyword_opaque, | |
| 730 | .zig_keyword_or, | |
| 731 | .zig_keyword_orelse, | |
| 732 | .zig_keyword_packed, | |
| 733 | .zig_keyword_pub, | |
| 734 | .zig_keyword_resume, | |
| 735 | .zig_keyword_return, | |
| 736 | .zig_keyword_linksection, | |
| 737 | .zig_keyword_struct, | |
| 738 | .zig_keyword_suspend, | |
| 739 | .zig_keyword_switch, | |
| 740 | .zig_keyword_test, | |
| 741 | .zig_keyword_threadlocal, | |
| 742 | .zig_keyword_try, | |
| 743 | .zig_keyword_union, | |
| 744 | .zig_keyword_unreachable, | |
| 745 | .zig_keyword_usingnamespace, | |
| 746 | .zig_keyword_var, | |
| 747 | .zig_keyword_volatile, | |
| 748 | .zig_keyword_while { | |
| 749 | color: var(--zig-keyword); | |
| 750 | font-weight: bold; | |
| 751 | } | |
| 752 | ||
| 753 | .zig_doc_comment, .zig_container_doc_comment { | |
| 754 | color: #545454; | |
| 755 | font-style: italic; | |
| 756 | } | |
| 757 | ||
| 758 | .zig_builtin { | |
| 759 | color: #005C7A; | |
| 683 | 760 | } |
| 761 | ||
| 762 | .zig_string_literal { | |
| 763 | color: #d14; | |
| 764 | } | |
| 684 | 765 | </style> |
| 685 | 766 | </head> |
| 686 | 767 | <body class="canvas"> |
| ... | ... | @@ -906,6 +987,7 @@ |
| 906 | 987 | </div> |
| 907 | 988 | <script src="data.js"></script> |
| 908 | 989 | <script src="commonmark.js"></script> |
| 990 | <script src="ziglexer.js"></script> | |
| 909 | 991 | <script src="main.js"></script> |
| 910 | 992 | </body> |
| 911 | 993 | </html> |
lib/docs/main.js+2-43| ... | ... | @@ -660,25 +660,7 @@ const NAV_MODES = { |
| 660 | 660 | if (!decl.decltest) return; |
| 661 | 661 | const astNode = getAstNode(decl.decltest); |
| 662 | 662 | domSectDocTests.classList.remove("hidden"); |
| 663 | domDocTestsCode.innerHTML = renderZigSource(astNode.code); | |
| 664 | } | |
| 665 | ||
| 666 | function renderZigSource(code) { | |
| 667 | let lines = code.split("\n"); | |
| 668 | let result = ""; | |
| 669 | let indent_level = 0; | |
| 670 | for (let i = 0; i < lines.length; i += 1) { | |
| 671 | let line = lines[i].trim(); | |
| 672 | if (line[0] == "}") indent_level -= 1; | |
| 673 | for (let j = 0; j < indent_level; j += 1) { | |
| 674 | result += " "; | |
| 675 | } | |
| 676 | if (line.startsWith("\\\\")) result += " " | |
| 677 | result += line; | |
| 678 | if (i != lines.length - 1) result += "\n"; | |
| 679 | if (line[line.length - 1] == "{") indent_level += 1; | |
| 680 | } | |
| 681 | return result; | |
| 663 | domDocTestsCode.innerHTML = generate_html_for_src(astNode.code); | |
| 682 | 664 | } |
| 683 | 665 | |
| 684 | 666 | function renderUnknownDecl(decl) { |
| ... | ... | @@ -1774,7 +1756,7 @@ const NAV_MODES = { |
| 1774 | 1756 | return payloadHtml + "}"; |
| 1775 | 1757 | } |
| 1776 | 1758 | case "comptimeExpr": { |
| 1777 | return renderZigSource(zigAnalysis.comptimeExprs[expr.comptimeExpr].code); | |
| 1759 | return generate_html_for_src(zigAnalysis.comptimeExprs[expr.comptimeExpr].code); | |
| 1778 | 1760 | } |
| 1779 | 1761 | case "call": { |
| 1780 | 1762 | let call = zigAnalysis.calls[expr.call]; |
| ... | ... | @@ -5016,26 +4998,3 @@ function RadixTree() { |
| 5016 | 4998 | } |
| 5017 | 4999 | } |
| 5018 | 5000 | |
| 5019 | // RADIX TREE: | |
| 5020 | ||
| 5021 | // apple | |
| 5022 | // appliance | |
| 5023 | ||
| 5024 | // "appl" => [ | |
| 5025 | // 'e', => $ | |
| 5026 | // 'i' => "ance" => $ | |
| 5027 | // ] | |
| 5028 | ||
| 5029 | // OUR STUFF: | |
| 5030 | ||
| 5031 | // AutoHashMap | |
| 5032 | // AutoArrayHashMap | |
| 5033 | ||
| 5034 | // "Auto" => [ | |
| 5035 | // 'A', => "rrayHashMap" => $ | |
| 5036 | // 'H' => "ashMap" => $ | |
| 5037 | // ] | |
| 5038 | ||
| 5039 | // BUT! | |
| 5040 | ||
| 5041 | // We want to be able to search "Hash", for example! |
lib/docs/ziglexer.js+3-3| ... | ... | @@ -1,3 +1,5 @@ |
| 1 | 'use strict'; | |
| 2 | ||
| 1 | 3 | const Tag = { |
| 2 | 4 | invalid: "invalid", |
| 3 | 5 | identifier: "identifier", |
| ... | ... | @@ -1941,7 +1943,7 @@ function tokenize_zig_source(raw_source) { |
| 1941 | 1943 | |
| 1942 | 1944 | } |
| 1943 | 1945 | |
| 1944 | toks = [] | |
| 1946 | let toks = [] | |
| 1945 | 1947 | |
| 1946 | 1948 | for (let i = 0; i < raw_source.length * 2; i++) { |
| 1947 | 1949 | const tok = next(); |
| ... | ... | @@ -1960,7 +1962,6 @@ function generate_html_for_src(src) { |
| 1960 | 1962 | var toks = tokenize_zig_source(src); |
| 1961 | 1963 | var html = []; |
| 1962 | 1964 | |
| 1963 | html.push("<pre>"); | |
| 1964 | 1965 | let offset = 0; |
| 1965 | 1966 | for (let z = 0; z < toks.length; z++) { |
| 1966 | 1967 | const t = toks[z]; |
| ... | ... | @@ -1980,7 +1981,6 @@ function generate_html_for_src(src) { |
| 1980 | 1981 | |
| 1981 | 1982 | |
| 1982 | 1983 | html.push(src); |
| 1983 | html.push("</pre>"); | |
| 1984 | 1984 | |
| 1985 | 1985 | return html.join(""); |
| 1986 | 1986 |
src/Autodoc.zig+1| ... | ... | @@ -435,6 +435,7 @@ pub fn generateZirData(self: *Autodoc) !void { |
| 435 | 435 | var docs_dir = try self.comp_module.comp.zig_lib_directory.handle.openDir("docs", .{}); |
| 436 | 436 | defer docs_dir.close(); |
| 437 | 437 | try docs_dir.copyFile("main.js", output_dir, "main.js", .{}); |
| 438 | try docs_dir.copyFile("ziglexer.js", output_dir, "ziglexer.js", .{}); | |
| 438 | 439 | try docs_dir.copyFile("commonmark.js", output_dir, "commonmark.js", .{}); |
| 439 | 440 | try docs_dir.copyFile("index.html", output_dir, "index.html", .{}); |
| 440 | 441 | } |