restructure: move icons into libraries/, vendor files out of git
- lib-icons/ -> libraries/icons/ (C library icon SVGs stay with their libs) - libraries/highlight/ -> vendor/highlight/ (not committed, downloaded) - lib/mathjax/ -> vendor/mathjax/ (not committed, downloaded) - vendor/download.sh fetches highlight.js v11.10.0 and MathJax v3.2.2 - index.html paths updated to vendor/ - .gitignore ignores vendor/* (except download.sh) - Removes ~1.2MB of binary font files from git tracking
@@ -0,0 +1,4 @@
|
|||||||
|
# Vendor assets (downloaded at deploy time)
|
||||||
|
vendor/highlight/*
|
||||||
|
vendor/mathjax/*
|
||||||
|
!vendor/download.sh
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>Visual Programming Tool</title>
|
<title>Visual Programming Tool</title>
|
||||||
<link href="style.css" rel="stylesheet">
|
<link href="style.css" rel="stylesheet">
|
||||||
<link href="libraries/highlight/default.min.css" rel="stylesheet">
|
<link href="vendor/highlight/default.min.css" rel="stylesheet">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
@@ -511,7 +511,7 @@
|
|||||||
startup: { elements: [] }
|
startup: { elements: [] }
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<script src="lib/mathjax/tex-mml-chtml.js"></script>
|
<script src="vendor/mathjax/tex-mml-chtml.js"></script>
|
||||||
<script src="dom.js"></script>
|
<script src="dom.js"></script>
|
||||||
<script src="helpers.js"></script>
|
<script src="helpers.js"></script>
|
||||||
<script src="error.js"></script>
|
<script src="error.js"></script>
|
||||||
@@ -525,8 +525,8 @@
|
|||||||
<script src="wcprogram.js"></script>
|
<script src="wcprogram.js"></script>
|
||||||
<script src="persist.js"></script>
|
<script src="persist.js"></script>
|
||||||
<script src="lib-loader.js"></script>
|
<script src="lib-loader.js"></script>
|
||||||
<script src="libraries/highlight/highlight.min.js"></script>
|
<script src="vendor/highlight/highlight.min.js"></script>
|
||||||
<script src="libraries/highlight/c.min.js"></script>
|
<script src="vendor/highlight/c.min.js"></script>
|
||||||
<script src="proc-browser.js"></script>
|
<script src="proc-browser.js"></script>
|
||||||
<script src="templates.js"></script>
|
<script src="templates.js"></script>
|
||||||
<script src="app.js"></script>
|
<script src="app.js"></script>
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
/*! `c` grammar compiled for Highlight.js 11.9.0 */
|
|
||||||
(()=>{var e=(()=>{"use strict";return e=>{const n=e.regex,t=e.COMMENT("//","$",{
|
|
||||||
contains:[{begin:/\\\n/}]
|
|
||||||
}),s="decltype\\(auto\\)",a="[a-zA-Z_]\\w*::",r="("+s+"|"+n.optional(a)+"[a-zA-Z_]\\w*"+n.optional("<[^<>]+>")+")",i={
|
|
||||||
className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{
|
|
||||||
match:/\batomic_[a-z]{3,6}\b/}]},l={className:"string",variants:[{
|
|
||||||
begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{
|
|
||||||
begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
|
|
||||||
end:"'",illegal:"."},e.END_SAME_AS_BEGIN({
|
|
||||||
begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
|
|
||||||
className:"number",variants:[{begin:"\\b(0b[01']+)"},{
|
|
||||||
begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
|
|
||||||
},{
|
|
||||||
begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
|
|
||||||
}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
|
|
||||||
keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
|
|
||||||
},contains:[{begin:/\\\n/,relevance:0},e.inherit(l,{className:"string"}),{
|
|
||||||
className:"string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},d={
|
|
||||||
className:"title",begin:n.optional(a)+e.IDENT_RE,relevance:0
|
|
||||||
},g=n.optional(a)+e.IDENT_RE+"\\s*\\(",u={
|
|
||||||
keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],
|
|
||||||
type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],
|
|
||||||
literal:"true false NULL",
|
|
||||||
built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"
|
|
||||||
},m=[c,i,t,e.C_BLOCK_COMMENT_MODE,o,l],_={variants:[{begin:/=/,end:/;/},{
|
|
||||||
begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],
|
|
||||||
keywords:u,contains:m.concat([{begin:/\(/,end:/\)/,keywords:u,
|
|
||||||
contains:m.concat(["self"]),relevance:0}]),relevance:0},p={
|
|
||||||
begin:"("+r+"[\\*&\\s]+)+"+g,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,
|
|
||||||
keywords:u,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:s,keywords:u,relevance:0},{
|
|
||||||
begin:g,returnBegin:!0,contains:[e.inherit(d,{className:"title.function"})],
|
|
||||||
relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,
|
|
||||||
keywords:u,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,l,o,i,{begin:/\(/,
|
|
||||||
end:/\)/,keywords:u,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,l,o,i]
|
|
||||||
}]},i,t,e.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
|
|
||||||
disableAutodetect:!0,illegal:"</",contains:[].concat(_,p,m,[c,{
|
|
||||||
begin:e.IDENT_RE+"::",keywords:u},{className:"class",
|
|
||||||
beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{
|
|
||||||
beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:c,
|
|
||||||
strings:l,keywords:u}}}})();hljs.registerLanguage("c",e)})();
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
/*!
|
|
||||||
Theme: Default
|
|
||||||
Description: Original highlight.js style
|
|
||||||
Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
|
|
||||||
Maintainer: @highlightjs/core-team
|
|
||||||
Website: https://highlightjs.org/
|
|
||||||
License: see project LICENSE
|
|
||||||
Touched: 2021
|
|
||||||
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
|
|
||||||
|
Before Width: | Height: | Size: 240 B After Width: | Height: | Size: 240 B |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 303 B |
|
Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 243 B |
|
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 262 B |
@@ -0,0 +1,26 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# ── Download vendor assets (highlight.js + MathJax) ──────────────────────
|
||||||
|
#
|
||||||
|
# These files are large and rarely change. They are NOT committed to git.
|
||||||
|
# Run this script after cloning or pulling to set up the vendor directory.
|
||||||
|
#
|
||||||
|
# Usage: bash vendor/download.sh
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
|
echo "==> Downloading highlight.js (v11.10.0)..."
|
||||||
|
mkdir -p "$SCRIPT_DIR/highlight"
|
||||||
|
curl -sL "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/highlight.min.js" \
|
||||||
|
-o "$SCRIPT_DIR/highlight/highlight.min.js"
|
||||||
|
curl -sL "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/languages/c.min.js" \
|
||||||
|
-o "$SCRIPT_DIR/highlight/c.min.js"
|
||||||
|
curl -sL "https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/styles/default.min.css" \
|
||||||
|
-o "$SCRIPT_DIR/highlight/default.min.css"
|
||||||
|
|
||||||
|
echo "==> Downloading MathJax (v3.2.2, tex-mml-chtml)..."
|
||||||
|
mkdir -p "$SCRIPT_DIR/mathjax"
|
||||||
|
curl -sL "https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/tex-mml-chtml.js" \
|
||||||
|
-o "$SCRIPT_DIR/mathjax/tex-mml-chtml.js"
|
||||||
|
|
||||||
|
echo "==> Done. Vendor assets downloaded to $SCRIPT_DIR"
|
||||||