serious updates

This commit is contained in:
Lazy Hippopotamus
2024-03-11 20:32:25 -04:00
parent a9133bc903
commit 4472bc77e0
30 changed files with 6 additions and 407 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
output
output/*

View File

@@ -1,16 +0,0 @@
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="http://localhost:8080/res/main.css"> <link rel="stylesheet" href="http://localhost:8080/res/lato/lato.css"> <link rel="icon" href="http://localhost:8080/res/sitix.svg"> <title>Sitix | Main</title> </head> <body> <div id="nav"> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png"/></a> <div> <a href="http://localhost:8080/pages/about.html">About</a> <a href="http://localhost:8080/pages/install.html">Install Sitix</a> <a href="http://localhost:8080/pages/todo.html">Todo</a> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a> <a href="http://localhost:8080/pages/usage.html">Usage</a> </div> </div> <div id="main" class="scrolly-container">
<div id="toppybit"> <div> <div id="imagine" class="huge">Imagine an SSG</div> </div> <div id="switchybit"> <div class="scrolly"> <span class="big">that's FAST</span> </div> <div class="scrolly"> <span class="big">that's project agnostic</span> </div> <div class="scrolly"> <span class="big">that Keeps It Simple, Stupid</span> </div> <div class="scrolly"> <span class="big">that Just Makes Sense</span> </div> <div class="scrolly"> <span class="big">that <i class="highlight">makes no assumptions</i></span> </div> </div> </div> <h1>Sitix</h1> <div class="text toptext"> Sitix is a modern SSG (Static Site Generator) that allows you total control over how your project is assembled, without sacrificing ease. It uses an object/scope model with efficient file includes, conditional branching, looping, and command-line configuration to make stunning websites without the mess. </div>
<div class="textimage scrolly">
<div class="textimage-text">Template all the things. Any Sitix file can be a template; the [?] opening phrase indicates that (for whatever reason) the file shouldn't be rendered normally, but still may be included in other files - for configuration, templating, or even modular elements! </div>
<img class="textimage-image" src="http://localhost:8080/res/default.html.png"/>
</div>
<div class="textimage scrolly">
<div class="textimage-text">Sitix is a universal preprocessor. HTML? Of course. CSS? Yep! JavaScript? Certainly! Sitix will template anything, whether it be a nice simple HTML file or a hand-edited GIF from 1998. Say goodbye to annoying configuration discrepancies between CSS and HTML and JavaScript - just throw your shared variables in a config.stx file and let Sitix do the rest! </div>
<img class="textimage-image" src="http://localhost:8080/res/lato.css.png"/>
</div>
<div class="text scrolly" style="font-size: 2em;"> No more restrictive project structures, irritating configuration files, or <b>magic</b>. Goodbye Ruby, "blog-awareness", difficult configuration, and bulky outputs. Sayonara obtuse frameworks, inefficient CSR, and annoying build pipelines. Sitix renders <b>what you want, when you want it,</b> and doesn't ask questions. </div> <div class="text plug"> Like what you see? <a href="http://localhost:8080/pages/install.html">install Sitix</a> and start building modern websites now! </div> </div> <div id="bottom"> <div> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png" /></a> <span>Sitix by Tyler Clarke</span><br> </div> <div id="bottomFlex"> <div> <b>Shameless Plugs</b><br> <a href="https://swaous.asuscomm.com">Tyler Clarke's personal site</a><br> <a href="https://linuxrocks2000.github.io/">Tyler Clarke's (old) webcomic/blog/personal site</a><br> <a href="https://fedoraproject.org/">Fedora Linux</a><br> <a href="https://www.gnu.org/">GNU</a><br> <a href="https://www.fsf.org/">The Free Software Foundation</a><br> <a href="https://avrahamsociety.org/">The Avraham Society (first site to be officially generated with Sitix)</a><br> <a href="https://linuxrocks2000.github.io/not-art-gallery">The Not Art Gallery</a> </div> <div> <b>Places in This Site</b><br> <a href="http://localhost:8080">Home</a><br> <a href="http://localhost:8080/pages/about.html">About</a><br> <a href="http://localhost:8080/pages/install.html">Install Sitix</a><br> <a href="http://localhost:8080/pages/todo.html">Todo</a><br> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a><br> <a href="http://localhost:8080/pages/usage.html">Usage</a><br> </div> <div> <b>Information</b><br> Sitix (including this website) is <a href="https://opensource.org/osd">open-source</a> <a href="https://www.fsf.org/about/">Free Software</a> protected by <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GNU GPLv3</a>. Looking to contribute? The source code for this website is hosted on <a href="https://github.com/LinuxRocks2000/sitix-website">Github</a>, as is <a href="https://github.com/LinuxRocks2000/sitix-rewrite">Sitix itself</a>.<br> Sitix is still young and probably buggy; if you have issues, submit a bug report at <a href="https://github.com/LinuxRocks2000/sitix-rewrite/issues"> the issues page </a> or contact me at <a href="mailto:plupy44@gmail.com">plupy44@gmail.com</a> (github issue preferred).<br> If you want to contribute, but don't know where to start, see <a href="http://localhost:8080/pages/todo.html">The Todo List</a>. </div> </div> </div> <div id="actualbottom">Site designed by Tyler Clarke and built with Sitix. This page uses the <a href="https://www.latofonts.com/lato-free-fonts/">Lato fonts</a>.</div> <script src="http://localhost:8080/res/main.js"></script> <script src="http://localhost:8080/res/scrolly.js"></script> </body> </html>

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +0,0 @@
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="http://localhost:8080/res/main.css"> <link rel="stylesheet" href="http://localhost:8080/res/lato/lato.css"> <link rel="icon" href="http://localhost:8080/res/sitix.svg"> <title>Sitix | Install Sitix</title> </head> <body> <div id="nav"> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png"/></a> <div> <a href="http://localhost:8080/pages/about.html">About</a> <a href="http://localhost:8080/pages/install.html">Install Sitix</a> <a href="http://localhost:8080/pages/todo.html">Todo</a> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a> <a href="http://localhost:8080/pages/usage.html">Usage</a> </div> </div> <div id="main" class="scrolly-container"> <h2>Install Sitix</h2>
<div class="text">
Sitix is written in C++ without any frameworks or anything. It doesn't muck about with Node.JS or Ruby or any such stuff. This means native-level performance,
but requires compilation and testing on many platforms. It's guaranteed to work on Fedora Linux and probably works in most other Linuxes;
MacOS is a <i>possibility</i>. Windows, being too stone-age for POSIX, probably won't be able to run Sitix.<br><br>
At the moment, Sitix has no prebuilt binaries; I hope to include RPM/DEB packages in the next release.<br>To install it, you'll need to clone
<a href="https://github.com/LinuxRocks2000/sitix-rewrite">the Github repository</a>, run <code>./build.sh</code>, and (assuming the build completes successfully)
copy the generated <code>sitix</code> binary to some PATH-accessible location (<code>/usr/bin</code> is a good bet). Sitix requires a C++20-compatible
G++ (usually included with the gcc package); it has no other dependencies. Sitix is theoretically cross-compilable to Windows, but I have no intention of ever officially supporting it;
Microsoft doesn't deserve it.
</div>
<div class="text">
Once you've got Sitix installed, see <a href="http://localhost:8080/pages/usage.html">Usage</a>.
</div>
</div> <div id="bottom"> <div> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png" /></a> <span>Sitix by Tyler Clarke</span><br> </div> <div id="bottomFlex"> <div> <b>Shameless Plugs</b><br> <a href="https://swaous.asuscomm.com">Tyler Clarke's personal site</a><br> <a href="https://linuxrocks2000.github.io/">Tyler Clarke's (old) webcomic/blog/personal site</a><br> <a href="https://fedoraproject.org/">Fedora Linux</a><br> <a href="https://www.gnu.org/">GNU</a><br> <a href="https://www.fsf.org/">The Free Software Foundation</a><br> <a href="https://avrahamsociety.org/">The Avraham Society (first site to be officially generated with Sitix)</a><br> <a href="https://linuxrocks2000.github.io/not-art-gallery">The Not Art Gallery</a> </div> <div> <b>Places in This Site</b><br> <a href="http://localhost:8080">Home</a><br> <a href="http://localhost:8080/pages/about.html">About</a><br> <a href="http://localhost:8080/pages/install.html">Install Sitix</a><br> <a href="http://localhost:8080/pages/todo.html">Todo</a><br> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a><br> <a href="http://localhost:8080/pages/usage.html">Usage</a><br> </div> <div> <b>Information</b><br> Sitix (including this website) is <a href="https://opensource.org/osd">open-source</a> <a href="https://www.fsf.org/about/">Free Software</a> protected by <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GNU GPLv3</a>. Looking to contribute? The source code for this website is hosted on <a href="https://github.com/LinuxRocks2000/sitix-website">Github</a>, as is <a href="https://github.com/LinuxRocks2000/sitix-rewrite">Sitix itself</a>.<br> Sitix is still young and probably buggy; if you have issues, submit a bug report at <a href="https://github.com/LinuxRocks2000/sitix-rewrite/issues"> the issues page </a> or contact me at <a href="mailto:plupy44@gmail.com">plupy44@gmail.com</a> (github issue preferred).<br> If you want to contribute, but don't know where to start, see <a href="http://localhost:8080/pages/todo.html">The Todo List</a>. </div> </div> </div> <div id="actualbottom">Site designed by Tyler Clarke and built with Sitix. This page uses the <a href="https://www.latofonts.com/lato-free-fonts/">Lato fonts</a>.</div> <script src="http://localhost:8080/res/main.js"></script> <script src="http://localhost:8080/res/scrolly.js"></script> </body> </html>

View File

@@ -1 +0,0 @@
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="http://localhost:8080/res/main.css"> <link rel="stylesheet" href="http://localhost:8080/res/lato/lato.css"> <link rel="icon" href="http://localhost:8080/res/sitix.svg"> <title>Sitix | Noteboard</title> </head> <body> <div id="nav"> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png"/></a> <div> <a href="http://localhost:8080/pages/about.html">About</a> <a href="http://localhost:8080/pages/install.html">Install Sitix</a> <a href="http://localhost:8080/pages/todo.html">Todo</a> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a> <a href="http://localhost:8080/pages/usage.html">Usage</a> </div> </div> <div id="main" class="scrolly-container"> <h2>Noteboard</h2> <div class="text"> This is where I'll post miscellaneous notes on Sitix stuff. If you're using Sitix (or just interested in the project), you should check back here periodically for information on new releases, design considerations, known bugs, etc. You can think of it as a miniblog. </div> <div class="text"> <b>2024-3-10:</b> Now the project-object model is a LOT better. When a lookup fails for something that is also a valid filename, that file is loaded as an object (so subsequent lookups will find it). This means it's possible to replicate the behavior of [#file] with [^file], although because of child-access you need to escape the filename (like <code>[^directory/file\.html]</code>). The latter also allows accessing objects inside a file without rendering that file. The old include syntax now just sets up a dereference and escapes the name for you.<br> Memory management is a <i>pain</i>. The reasons are complex, but it's mostly because of what I call the "crap-copy"; if you're interested, look for that phrase in the code comments. I added some frees and deletes but Valgrind tells me it's still leaking quite a bit, especially when for loops are used. <br><br> <b>2024-3-9:</b> The stupid "Something has gone terribly wrong" warning is NOT important; you can safely ignore it. It's just debugging information pour moi. </div> </div> <div id="bottom"> <div> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png" /></a> <span>Sitix by Tyler Clarke</span><br> </div> <div id="bottomFlex"> <div> <b>Shameless Plugs</b><br> <a href="https://swaous.asuscomm.com">Tyler Clarke's personal site</a><br> <a href="https://linuxrocks2000.github.io/">Tyler Clarke's (old) webcomic/blog/personal site</a><br> <a href="https://fedoraproject.org/">Fedora Linux</a><br> <a href="https://www.gnu.org/">GNU</a><br> <a href="https://www.fsf.org/">The Free Software Foundation</a><br> <a href="https://avrahamsociety.org/">The Avraham Society (first site to be officially generated with Sitix)</a><br> <a href="https://linuxrocks2000.github.io/not-art-gallery">The Not Art Gallery</a> </div> <div> <b>Places in This Site</b><br> <a href="http://localhost:8080">Home</a><br> <a href="http://localhost:8080/pages/about.html">About</a><br> <a href="http://localhost:8080/pages/install.html">Install Sitix</a><br> <a href="http://localhost:8080/pages/todo.html">Todo</a><br> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a><br> <a href="http://localhost:8080/pages/usage.html">Usage</a><br> </div> <div> <b>Information</b><br> Sitix (including this website) is <a href="https://opensource.org/osd">open-source</a> <a href="https://www.fsf.org/about/">Free Software</a> protected by <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GNU GPLv3</a>. Looking to contribute? The source code for this website is hosted on <a href="https://github.com/LinuxRocks2000/sitix-website">Github</a>, as is <a href="https://github.com/LinuxRocks2000/sitix-rewrite">Sitix itself</a>.<br> Sitix is still young and probably buggy; if you have issues, submit a bug report at <a href="https://github.com/LinuxRocks2000/sitix-rewrite/issues"> the issues page </a> or contact me at <a href="mailto:plupy44@gmail.com">plupy44@gmail.com</a> (github issue preferred).<br> If you want to contribute, but don't know where to start, see <a href="http://localhost:8080/pages/todo.html">The Todo List</a>. </div> </div> </div> <div id="actualbottom">Site designed by Tyler Clarke and built with Sitix. This page uses the <a href="https://www.latofonts.com/lato-free-fonts/">Lato fonts</a>.</div> <script src="http://localhost:8080/res/main.js"></script> <script src="http://localhost:8080/res/scrolly.js"></script> </body> </html>

View File

@@ -1,20 +0,0 @@
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="http://localhost:8080/res/main.css"> <link rel="stylesheet" href="http://localhost:8080/res/lato/lato.css"> <link rel="icon" href="http://localhost:8080/res/sitix.svg"> <title>Sitix | Todo</title> </head> <body> <div id="nav"> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png"/></a> <div> <a href="http://localhost:8080/pages/about.html">About</a> <a href="http://localhost:8080/pages/install.html">Install Sitix</a> <a href="http://localhost:8080/pages/todo.html">Todo</a> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a> <a href="http://localhost:8080/pages/usage.html">Usage</a> </div> </div> <div id="main" class="scrolly-container"> <h2>Todo</h2>
<div class="text">
Sitix is still a pretty young piece of software, so if there's a missing feature that isn't on this list, don't hesitate to submit a feature request on <a href="https://github.com/LinuxRocks2000/sitix-rewrite/issues">the issues page</a>.
Alternatively, you could just write it yourself! This TODO list is mostly for my memory, but I would love codebase contributions to get some things crossed off.
</div>
<div class="text">
<ul>
<li>Markdown support with an @-directive</li>
<li>Code cleaning (need to fix memory management especially)</li>
<li>Make config less hack (move from [i config] to [i exists], and create empty objects on global with -c)</li>
<li>Add an unpack/ghost operator so setting objects to other objects works (something like [=ghostingName-] [%ghostedObject] [/])</li>
<li>Safety: Sitix should not delete your entire codebase if you accidentally mistype the command.</li>
<li>Get rid of that stupid "something has gone terribly wrong" warning. It's not a problem, it's just an artefact of an old debugging marathon.</li>
</ul>
</div>
</div> <div id="bottom"> <div> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png" /></a> <span>Sitix by Tyler Clarke</span><br> </div> <div id="bottomFlex"> <div> <b>Shameless Plugs</b><br> <a href="https://swaous.asuscomm.com">Tyler Clarke's personal site</a><br> <a href="https://linuxrocks2000.github.io/">Tyler Clarke's (old) webcomic/blog/personal site</a><br> <a href="https://fedoraproject.org/">Fedora Linux</a><br> <a href="https://www.gnu.org/">GNU</a><br> <a href="https://www.fsf.org/">The Free Software Foundation</a><br> <a href="https://avrahamsociety.org/">The Avraham Society (first site to be officially generated with Sitix)</a><br> <a href="https://linuxrocks2000.github.io/not-art-gallery">The Not Art Gallery</a> </div> <div> <b>Places in This Site</b><br> <a href="http://localhost:8080">Home</a><br> <a href="http://localhost:8080/pages/about.html">About</a><br> <a href="http://localhost:8080/pages/install.html">Install Sitix</a><br> <a href="http://localhost:8080/pages/todo.html">Todo</a><br> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a><br> <a href="http://localhost:8080/pages/usage.html">Usage</a><br> </div> <div> <b>Information</b><br> Sitix (including this website) is <a href="https://opensource.org/osd">open-source</a> <a href="https://www.fsf.org/about/">Free Software</a> protected by <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GNU GPLv3</a>. Looking to contribute? The source code for this website is hosted on <a href="https://github.com/LinuxRocks2000/sitix-website">Github</a>, as is <a href="https://github.com/LinuxRocks2000/sitix-rewrite">Sitix itself</a>.<br> Sitix is still young and probably buggy; if you have issues, submit a bug report at <a href="https://github.com/LinuxRocks2000/sitix-rewrite/issues"> the issues page </a> or contact me at <a href="mailto:plupy44@gmail.com">plupy44@gmail.com</a> (github issue preferred).<br> If you want to contribute, but don't know where to start, see <a href="http://localhost:8080/pages/todo.html">The Todo List</a>. </div> </div> </div> <div id="actualbottom">Site designed by Tyler Clarke and built with Sitix. This page uses the <a href="https://www.latofonts.com/lato-free-fonts/">Lato fonts</a>.</div> <script src="http://localhost:8080/res/main.js"></script> <script src="http://localhost:8080/res/scrolly.js"></script> </body> </html>

View File

@@ -1,58 +0,0 @@
<!DOCTYPE html> <html> <head> <link rel="stylesheet" href="http://localhost:8080/res/main.css"> <link rel="stylesheet" href="http://localhost:8080/res/lato/lato.css"> <link rel="icon" href="http://localhost:8080/res/sitix.svg"> <title>Sitix | Usage</title> </head> <body> <div id="nav"> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png"/></a> <div> <a href="http://localhost:8080/pages/about.html">About</a> <a href="http://localhost:8080/pages/install.html">Install Sitix</a> <a href="http://localhost:8080/pages/todo.html">Todo</a> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a> <a href="http://localhost:8080/pages/usage.html">Usage</a> </div> </div> <div id="main" class="scrolly-container"> <h2>Usage</h2>
<div class="text">
Sitix is a KISS program, so there's not a lot of setup. Once you've got it installed (see <a href="http://localhost:8080/pages/install.html">for information on that</a>),
you need a project to build. The simplest Sitix project structure is just a <code>site</code> folder, which contains the actual Sitix "scripts". When
(you absolutely must be outside of the site directory to do this!) you run <code>sitix site</code>, Sitix will delete the <code>output</code> directory
and all contents, if it exists, and then create a new <code>output</code> directory for the compiled site code. Then, Sitix will walk down the tree of
your <code>site</code> directory, creating appropriate subdirectories and directly copying over any file that doesn't have an opening phrase - <code>[!]</code>,
for a Sitix page, or <code>[?]</code> for a data page (which will not be rendered itself, but may be used for templating or configuration). The opening phrase
MUST be the first three bytes of the file; if there are any whitespaces before it, the file will be treated as plain data. If you want
it to render to a different directory, pass the <code>-o location</code> flag.
</div>
<div class="note">
WARNING: <code>-o</code> is very dangerous! If you tell Sitix to render to a directory with important information in it, <b>that directory is as good as gone</b>.
At the moment Sitix does not put any effort into questioning your choices, so make sure to double-check everything is okay before running any sitix command! Avoiding
<code>-o</code> unless you <i>really</i> need it is generally a good policy.
</div>
<div class="text">
Let's cover some syntax. All Sitix commands are enclosed in brackets like <code>[command]</code> (you can escape brackets with backslashes). There aren't very many
Sitix commands; at the moment, it's just:
<ul>
<li><code>[=variableName variableContent]</code>: This simply sets <code>variableName</code> to be equal to <code>variableContent</code> at that point on the scope tree.</li>
<li><code>[=variablename-]variableContent[/]</code>: The expanded form of above. This allows for much more complicated variables, including variables containing
Sitix commands (in the compressed form, anything inside MUST be plaintext). It's generally preferred to use this when the content is more than a word or two.</li>
<li><code>[^variableName]</code>: "Dereferences" a variable, forcing it to render. If that variable contains other variables (like <code>[=parent-] [=child-] content [/] [/]</code>),
the child variables will NOT be rendered, but if variables with the same name as the children exist at some point in the parent tree of the dereferenced variable exist, they will be replaced.
Variables at the dereferencing position will NOT be replaced.</li>
<li><code>[#filename]</code>: Dereferences a Sitix file (or plain file, which would just copy over content without processing it) at this position. The filename must be relative
to the root directory (usually the <code>site</code> directory), rather than the directory the including file is stored in. This is very useful for templating.</li>
<li><code>[i request &lt;...&gt;][e][/]</code>: This is an if condition. If in Sitix contains an object (between the <code>[i]</code> and either <code>[/]</code> or <code>[e]</code>) that will
be rendered if the condition evaluates to "true", and, optionally (between <code>[e]</code> and <code>[/]</code>), an object that will be rendered if the condition is false.<br>
Requests can be,
<ul>
<li><code>config configName</code>: Check whether or not a command-line config switch is enabled (you can enable them with <code>-c configName</code>).</li>
<li><code>equals variable1 variabl2</code>: Check whether two variables are the same (the check is flawed, but pretty good. See the relevant section in <code>main.cpp</code>
for information on this.)</li>
<li><code>exists variable</code>: Check whether a variable exists. Good for simple boolean flags.</li>
</ul>
</li>
<li><code>[f array iterator]</code>: For loop that iterates over an array (note: in Sitix, every subdirectory of the root dir can be treated as
an array of objects, each object being a file! This allows things like generating blog links). The <code>iterator</code> variable will be, for every item,
the referenced array element. <b>Note: When iterating over a directory, every file will be given a <code>filename</code> property!</b> This can be used like
<code>[f directory i][^i.filename][/]</code>, which would spew out the filenames of every file in that directory.</li>
<li><code>[@command option]</code>: Set a file-specific flag. File-specific flags are used to do things like minify text. At the moment, the only valid @-commands
are <code>[@on minify]</code>, which enables minifier for the file, and <code>[@off minify]</code>, which disables minifier. Minifier simply reduces chains of whitespace
to a single whitespace. In the future, <code>[@on markdown]</code> and <code>[@off markdown]</code> will allow Markdown-like processing across the file.</li>
</ul>
You can use Sitix commands in any file with a Sitix opening phrase; Sitix commands in files that do not have an opening phrase will be ignored.<br>
And that's it! To see how these are used creatively in the wild, check out <a href="https://github.com/LinuxRocks2000/sitix-website">the source code for this website</a>.
</div>
<div class="text">
For a more thorough look at Sitix, check out <a href="https://github.com/LinuxRocks2000/sitix-rewrite">the source code</a>. There's a rather large comment at the start of
<code>main.cpp</code> that provides a deep look at Sitix syntax and usage.
</div>
</div> <div id="bottom"> <div> <a href="http://localhost:8080"><img src="http://localhost:8080/res/sitix-large.png" /></a> <span>Sitix by Tyler Clarke</span><br> </div> <div id="bottomFlex"> <div> <b>Shameless Plugs</b><br> <a href="https://swaous.asuscomm.com">Tyler Clarke's personal site</a><br> <a href="https://linuxrocks2000.github.io/">Tyler Clarke's (old) webcomic/blog/personal site</a><br> <a href="https://fedoraproject.org/">Fedora Linux</a><br> <a href="https://www.gnu.org/">GNU</a><br> <a href="https://www.fsf.org/">The Free Software Foundation</a><br> <a href="https://avrahamsociety.org/">The Avraham Society (first site to be officially generated with Sitix)</a><br> <a href="https://linuxrocks2000.github.io/not-art-gallery">The Not Art Gallery</a> </div> <div> <b>Places in This Site</b><br> <a href="http://localhost:8080">Home</a><br> <a href="http://localhost:8080/pages/about.html">About</a><br> <a href="http://localhost:8080/pages/install.html">Install Sitix</a><br> <a href="http://localhost:8080/pages/todo.html">Todo</a><br> <a href="http://localhost:8080/pages/noteboard.html">Noteboard</a><br> <a href="http://localhost:8080/pages/usage.html">Usage</a><br> </div> <div> <b>Information</b><br> Sitix (including this website) is <a href="https://opensource.org/osd">open-source</a> <a href="https://www.fsf.org/about/">Free Software</a> protected by <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GNU GPLv3</a>. Looking to contribute? The source code for this website is hosted on <a href="https://github.com/LinuxRocks2000/sitix-website">Github</a>, as is <a href="https://github.com/LinuxRocks2000/sitix-rewrite">Sitix itself</a>.<br> Sitix is still young and probably buggy; if you have issues, submit a bug report at <a href="https://github.com/LinuxRocks2000/sitix-rewrite/issues"> the issues page </a> or contact me at <a href="mailto:plupy44@gmail.com">plupy44@gmail.com</a> (github issue preferred).<br> If you want to contribute, but don't know where to start, see <a href="http://localhost:8080/pages/todo.html">The Todo List</a>. </div> </div> </div> <div id="actualbottom">Site designed by Tyler Clarke and built with Sitix. This page uses the <a href="https://www.latofonts.com/lato-free-fonts/">Lato fonts</a>.</div> <script src="http://localhost:8080/res/main.js"></script> <script src="http://localhost:8080/res/scrolly.js"></script> </body> </html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,92 +0,0 @@
Copyright (c) 2010-2011 by tyPoland Lukasz Dziedzic with Reserved Font Name "Lato".
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@@ -1 +0,0 @@
/* Sitix script for the Lato font-face declarations. My editor shows numerous syntax errors; this is because it does not support Sitix scripting. */ @font-face { font-family: Lato; src: url("http://localhost:8080/res/lato/Lato-Bold.ttf"); font-weight: bold; font-style: normal; } @font-face { font-family: Lato; src: url("http://localhost:8080/res/lato/Lato-BoldItalic.ttf"); font-weight: bold; font-style: italic; } @font-face { font-family: Lato; src: url("http://localhost:8080/res/lato/Lato-Italic.ttf"); font-weight: normal; font-style: italic; } @font-face { font-family: Lato; src: url("http://localhost:8080/res/lato/Lato-Regular.ttf"); font-weight: normal; font-style: normal; }

Binary file not shown.

View File

@@ -1 +0,0 @@
*:not(ul), body, html { margin: 0px; padding: 0px; font-family: Lato, Arial, Helvetica, sans-serif; } img { max-width: 100%; max-height: 100%; } #nav { position: sticky; top: 0px; box-shadow: 0px 0px 5px black; padding: 3px; background-color: white; z-index: 2; } #nav > div { padding-top: 0px; padding-bottom: 0px; transition: padding 0.5s; text-align: center; } #nav > div > a { margin-left: 20px; margin-right: 20px; } #nav > a { top: 0px; position: absolute; height: 100%; } #nav:hover > div { padding-top: 10px; padding-bottom: 10px; } div.text { padding-top: 50px; padding-bottom: 50px; padding-left: 15vw; padding-right: 15vw; line-height: 2em; } #bottom { box-shadow: 0px 0px 5px black; padding: 50px; margin-top: 50px; } #bottom > div:first-child { grid-area: top; text-align: center; } #bottom > div:first-child > a { height: 2em; margin-left: auto; margin-right: 0px; display: inline-block; width: 2em; transform: translateY(0.5em); } #bottom > div:first-child > a > img { height: 100%; } #bottom > div:first-child > * { margin-bottom: 20px; margin-top: 20px; } a { text-decoration: none; color: #666666; } a:hover { color: #999999; } body { min-height: 100vh; display: flex; flex-direction: column; } #bottom { margin-top: auto; } .text.scrolly { transform: translateX(-200px); opacity: 0%; transition: transform 0.5s, opacity 0.5s; } .text.scrolly.scrolly-entered { opacity: 100%; transform: none; } #toppybit { display: flex; flex-direction: row; padding: 10%; box-sizing: border-box; } .huge { font-size: 6em; } span.big { font-size: 4em; } #imagine { position: sticky; top: 50vh; transform: translateY(-50%); display: inline-block; } #switchybit > div > span { display: inline-block; background-color: #000044; padding: 10px; font-family: monospace; color: white; position: sticky; top: 50vh; transform: translateY(-50%); margin-left: 10vw; } #switchybit > div { height: 100vh; opacity: 0%; transition: opacity 0.1s; } #switchybit > div.scrolly-center { opacity: 100%; } i.highlight { color: red; font-size: 3rem; text-shadow: 0px 0px 2px red, 0px 0px 4px blue; } #actualbottom { background-color: black; text-align: center; color: white; font-size: 0.7em; padding: 5px; } h1, h2, h3, h4, h5, h6 { text-align: center; } h1 { font-size: 6em; text-align: right; padding-right: 10vw; } h2 { font-size: 3em; } div.toptext { padding-left: 35vw; padding-right: 15vw; font-size: 1.3em; } .textimage { display: flex; padding-left: 10vw; padding-right: 10vw; align-items: center; } .textimage > .textimage-text { flex: 2; padding: 100px; font-size: 1.2em; line-height: 2em; } .textimage:nth-child(2n + 1) { flex-direction: row-reverse; } .textimage.scrolly:nth-child(2n + 1) { transform: translateX(100vw); } .textimage.scrolly { width: 0px; overflow: hidden; transition: width 2s, transform 2s, padding 2s; box-sizing: border-box; padding: 0px; } .textimage.scrolly.scrolly-entered { width: 100vw; transform: none; padding-left: 10vw; padding-right: 10vw; } .plug { text-align: center; font-size: 3em; } code { background-color: #000044; color: white; font-family: monospace; } .note { margin-left: 30vw; margin-right: 30vw; margin-top: 50px; margin-bottom: 50px; background-color: orange; padding: 20px; box-sizing: border-box; border-radius: 20px; min-height: 180px; font-size: 1.2em; } .note::before { content: ""; background-image: url("http://localhost:8080/res/warning.svg"); background-size: contain; width: 100px; height: 100px; display: block; background-position: center; background-repeat: no-repeat; margin: 20px; float: left; } #bottomFlex { display: flex; justify-content: space-between; } #bottomFlex > * { padding-left: 50px; padding-right: 50px; } #bottomFlex > *:nth-child(2) { flex-grow: 5; } #bottomFlex > *:nth-child(3) { max-width: 40vw; }

View File

@@ -1,52 +0,0 @@
/* Scrolly.JS is an extremely simple framework that gives CSS interoperation to scroll events. */
var scrollyContainers = document.getElementsByClassName("scrolly-container");
function scrolly() {
var scrollyItems = this.getElementsByClassName("scrolly");
var nearest = undefined;
var nearestVal = Infinity;
for (var i = 0; i < scrollyItems.length; i++) {
var position = scrollyItems[i].getBoundingClientRect();
var scrollyMargin = 0;
if (scrollyItems[i].hasAttribute("--data-scrollyMargin")) {
scrollyMargin = scrollyItems[i].getAttribute("--data-scrollyMargin");
}
if (position.top < window.innerHeight - scrollyMargin && position.bottom > scrollyMargin) {
scrollyItems[i].classList.add("scrolly-entered");
scrollyItems[i].classList.add("scrolly-in");
scrollyItems[i].classList.remove("scrolly-out");
}
else {
scrollyItems[i].classList.add("scrolly-out");
scrollyItems[i].classList.remove("scrolly-in");
}
var cDisp = Math.abs(window.innerHeight / 2 - (position.top + position.bottom) / 2);
scrollyItems[i].classList.remove("scrolly-center");
if (cDisp < nearestVal) {
if (nearest) {
nearest.classList.remove("scrolly-center");
}
nearest = scrollyItems[i];
scrollyItems[i].classList.add("scrolly-center");
nearestVal = cDisp;
}
}
}
for (var i = 0; i < scrollyContainers.length; i++) {
scrollyContainers[i].scrolly = scrolly;
scrollyContainers[i].scrolly();
}
window.addEventListener("scroll", () => {
for (var i = 0; i < scrollyContainers.length; i++) {
scrollyContainers[i].scrolly()
}
});
window.addEventListener("wheel", () => {
for (var i = 0; i < scrollyContainers.length; i++) {
scrollyContainers[i].scrolly()
}
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1,85 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="23.8125mm"
height="23.8125mm"
viewBox="0 0 23.8125 23.8125"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="sitix.svg"
inkscape:export-filename="sitix-large.png"
inkscape:export-xdpi="273.06668"
inkscape:export-ydpi="273.06668"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="2.653101"
inkscape:cx="25.065009"
inkscape:cy="38.634037"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<ellipse
style="fill:#666666;stroke:none;stroke-width:3.565;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="path4"
cx="11.90625"
cy="11.906251"
rx="10.910029"
ry="10.91003" />
<g
id="g4"
transform="matrix(1.000462,0,0,1.012923,-36.389194,-119.32583)"
style="stroke-width:0.993371">
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:85.3334px;line-height:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:center;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:4.96687;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
x="184.08168"
y="520.47266"
id="text4"
transform="scale(0.26458333)"><tspan
sodipodi:role="line"
id="tspan4"
x="184.08168"
y="520.47266"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:C059;-inkscape-font-specification:'C059 Italic';fill:#ff0000;stroke:#000000;stroke-width:4.96687;stroke-opacity:1">S<tspan
style="font-size:64px;fill:#ff0000;stroke:#000000;stroke-width:4.96687;stroke-opacity:1"
id="tspan3">i</tspan></tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:85.3334px;line-height:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:center;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#f9f9f9;fill-opacity:1;stroke-width:4.96687;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
x="184.08168"
y="520.47266"
id="text1"
transform="scale(0.26458333)"><tspan
sodipodi:role="line"
id="tspan1"
x="184.08168"
y="520.47266"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:C059;-inkscape-font-specification:'C059 Italic';fill:#f9f9f9;stroke-width:4.96687">S<tspan
style="font-size:64px;fill:#f9f9f9;stroke-width:4.96687"
id="tspan2">i</tspan></tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="39.622208mm"
height="33.866497mm"
viewBox="0 0 39.622208 33.866497"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
sodipodi:docname="warning.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="3.0263953"
inkscape:cx="42.459754"
inkscape:cy="100.28432"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-1.3616779e-4,-1.6848815e-4)">
<path
id="rect1"
style="fill:#ff9955;stroke:#dd5f00;stroke-width:3.565;stroke-linecap:round;stroke-linejoin:round"
d="M 19.937896,1.7825 38.093292,32.084166 H 1.7824999 Z"
sodipodi:nodetypes="cccc" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:85.3334px;line-height:normal;font-family:sans-serif;-inkscape-font-specification:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:center;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:middle;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;opacity:1;vector-effect:none;fill:#dd5f00;fill-opacity:1;stroke-width:5.00001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
x="57.734219"
y="97.928741"
id="text1"
transform="matrix(0.26458333,0,0,0.26458333,3.982288,2.4584934)"><tspan
sodipodi:role="line"
id="tspan1"
x="57.734219"
y="97.928741">!</tspan></text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -7,6 +7,8 @@
periodically for information on new releases, design considerations, known bugs, etc. You can think of it as a miniblog.
</div>
<div class="text">
<b>2024-3-11:</b> Model updates, and now this site can actually be built by the latest sitix updates :D.
<br><br>
<b>2024-3-10:</b> Now the project-object model is a LOT better. When a lookup fails for something that is also a valid filename, that file is loaded as an object
(so subsequent lookups will find it). This means it's possible to replicate the behavior of \[#file] with \[^file], although because of child-access you need to
escape the filename (like <code>\[^directory/file\\.html]</code>). The latter also allows accessing objects inside a file without rendering that file. The old include

View File

@@ -21,7 +21,7 @@
<a href="[^baseurl]"><img src="[^baseurl]/res/sitix-large.png"/></a>
<div>
[f pages i]
<a href="[^baseurl]/pages/[^i.filename]">[^i.title]</a>
<a href="[^baseurl]/[^i.filename]">[^i.title]</a>
[/]
</div>
</div>
@@ -51,7 +51,7 @@
<b>Places in This Site</b><br>
<a href="[^baseurl]">Home</a><br>
[f pages i]
<a href="[^baseurl]/pages/[^i.filename]">[^i.title]</a><br>
<a href="[^baseurl]/[^i.filename]">[^i.title]</a><br>
[/]
</div>
<div>