Convert barant.com JET 1.4 marketing pages to jetc/.jtc (local, non-production)

Pulls .page files and shared template infrastructure (mainpagetemplate.temp,
menu.bar, barant.tag, opensource.menu, cart.menu, login.menu) read-only from
barant.com via SFTP into jetc/barant-site/src, then convert.py mechanically
flattens them into self-contained .jet files: linkbutton becomes a plain
anchor link (the old SESSIONCTL PAGE/PROCESS form-postback model has no
equivalent here - each page is its own real #api route now, not a shared
single-form state machine), sectionframe is expanded per its barant.tag
definition, /images/* references are fetched and inlined as data URIs
(APIServer has no static-file serving), and session-gated chrome (cart,
account/admin, login.menu) is resolved to its anonymous-visitor default
state, since no session/DB backend is wired into this conversion.

17 pages convert and serve cleanly end-to-end (verified via a local
apiserver-barant-site.json instance on :8081, kept separate from the
existing demo server on :8080 to avoid a /main route collision with the
earlier hand-cloned barant.jet). Two pages deliberately out of scope for
this pass: davidarant.page (whiledir filesystem iteration) and the
per-topic sub-pages of jet.page (dispatches on an ARGS query param this
conversion does not populate - only the default overview state converts).
vst.page/modular1.page/modular1_patches.page also deferred - they pull
live product rows via sql, a real backend dependency beyond "pages and
their template" scope.

Nothing was written back to barant.com - SFTP access was read-only
throughout, per explicit instruction to convert locally without touching
the original site.
This commit is contained in:
Brad Arant committed 2026-08-25 21:59:55 -07:00
1 parent b143b821de
commit fde94acad6
191 files changed
+14997

No files matched your search

+385
View File
@@ -0,0 +1,385 @@
.rotate {
animation: rotation 1s infinite linear;
}
@keyframes rotation {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
@font-face {
font-family: avenir;
src: url('https://barant.com/fonts/AvenirLTStd-Light.ttf');
}
@font-face {
font-family: source;
src: url('https://barant.com/fonts/jackinput.TTF');
}
@font-face {
font-family: exo2;
src: url('https://barant.com/fonts/Exo2-RegularCondensed.otf');
}
body {background: linear-gradient(to bottom, #ccc, #444);
font-family: exo2;
margin: 10px 10px 10px 10px;
width: 98%;
}
a:link {text-decoration: none}
a:visited {text-decoration:none}
a:hover {text-decoration:none}
h1 {font: 20pt exo2;
text-shadow: 0 0 0.2em #CCC, 0 0 0.2em #87F;
color: #808080;
opacity: 0.9;}
h2 {font: 14pt exo2;
text-shadow: 0 0 0.2em #CCC, 0 0 0.2em #87F;
}
h3 {font: 12pt exo2;
text-shadow: 0 0 0.2em #CCC, 0 0 0.2em #87F;
}
p {font-family: 8pt exo2;
text-shadow: 0 0 0.2em #CCC, 0 0 0.2em #87F;
}
ul {font-family: 8pt exo2;}
li {font-family: 8pt exo2;
text-shadow: 0 0 0.2em #CCC, 0 0 0.2em #87F;
}
.project_header {background: #88c;
color: #fff;
padding: 5px;
font-weight: 400;
font-size: 14px;
}
.pageclass {background: #fff;
border-radius: 10px;
border: 2pt outset;
border-spacing: 0px;
padding: 0px;
max-width: 1050px;
min-width: 1050px
margin: auto;
text-shadow: 0 0 0.1em #CCC, 0 0 0.1em #87F;
font-family: exo2;
font-size: 10pt;
}
input {background: #fff;
border: 1px inset;
font-family: exo2;
font-size: 14px;
min-height: 18px;
display: block;
margin-bottom: 3px;
margin-top: 0px;
outline: none;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
-o-border-radius: 2px;
-ms-border-radius: 2px;
border-radius: 0px;
}
select {background: #fff;
font-family: exo2;
font-size: 14px;
min-height: 18px;
display: block;
margin-bottom: 3px;
margin-top: 0px;
outline: none;
border: 1px solid #444;
padding: 1px 2px 1px 2px;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
-o-border-radius: 7px;
-ms-border-radius: 7px;
border-radius: 0px;
}
textarea.fieldinput {background: #fff;
resize: none;
font-family: exo2;
border: 1px solid #444;
font-size: 14px;
min-height: 18px;
display: block;
margin-bottom: 3px;
margin-top: 0px;
outline: none;
padding: 2px 2px 2px 5px;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
-o-border-radius: 0px;
-ms-border-radius: 0px;
border-radius: 0px;
}
textarea.fieldinputerror {background: #fcc;
resize: none;
font-family: exo2;
border: 1px solid #f00;
font-size: 14px;
min-height: 18px;
display: block;
margin-bottom: 3px;
margin-top: 0px;
outline: none;
padding: 2px 2px 2px 5px;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
-o-border-radius: 7px;
-ms-border-radius: 7px;
border-radius: 0px;
}
.sectionframe {
position: relative;
font-family: exo2;
border: 0px outset;
font-size: 10pt;
margin: 3px;
background: #808080;
padding: 0px;
border-radius: 0px;
}
.sectionframe:after{
content: '';
position: absolute;
top: 1px;
left: 1px;
width: calc(100% - 2px);
height: 12px;
background: linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.2));
}
.sectionframecontents {
padding: 10px;
text-align: justify;
color: #000000;
border: 1pt inset;
background-color: #F8F8FF;
}
.sectionframeheading {
# background: linear-gradient(to bottom, #fff, #88f);
background: #2099f0;
color: #fff;
border: 1pt outset;
vertical-align: middle;
padding: 5px;
margin: 0px;
font-family: 12pt avenir;
text-shadow: 0 0 0.2em #CCC, 0 0 0.2em #87F;
border-radius: 0px 0px 0px 0px;
}
.sectionframeheading2 {
background: #C0C0C0;
font-family: exo2;
font-size: 20pt;
padding: 3px
text-shadow: 0 0 0.2em #CCC, 0 0 0.2em #87F;
border-radius: 3px;
}
.heading {background: #fff;
border-radius: 7px 7px 0px 0px;
max-height: 80px;
}
.entryform {
background: #2099f0;
padding: 3px 3px 3px 3px;
margin: 0px;
border: 0px solid black;
border-radius: 0px;
}
.entryform table {
font: 12px exo2;
background: #c5e1f4;
border: 0pt solid black;
}
.footer {
background: linear-gradient(to bottom, #000, #888);
font: 8pt verdana;
color: #FFFFFF;
text-align: center;
border-radius: 0px 0px 6px 6px;}
.menubar {
# background: linear-gradient(to bottom, #fff, #2099f0);
padding: 0px 0px 0px 0px;
margin: 0px;
}
.baritem {
background-image: linear-gradient(#2099f0, #c3ddef);
color: #fff;
position: relative;
font-family: exo2;
font-weight: 1000;
font-size: 8pt;
padding: 2px 10px;
margin: 10px 0px 0px 0px;
border: solid;
border-width: 0px 0px 1px 0px;
border-color: #fff;
border-radius: 5px 5px 0px 0px;
border-style: outset;
transition: background 2s;
}
.baritem:after{
content: '';
position: absolute;
top: 1px;
left: 1px;
width: calc(100% - 2px);
height: 50%;
z-index: 5;
pointer-events: none;
border-radius: 4px 4px 0px 0px;
background: linear-gradient(rgba(255,255,255,0.8), rgba(255,255,255,0.2));
}
.baritemselected {
background: #ccc;
color: #000;
font-family: exo2;
font-weight: 1000;
font-size: 8pt;
padding: 2px 10px;
margin: 5px 10px 0px 0px;
border: solid;
border-width: 1px 1px 0px 1px;
border-color: #fff;
border-radius: 5px 5px 0px 0px;
border-style: outset;
transition: background 2s;
}
.baritem:hover {
background: #c3ddef;
color: #fff;
transition: background 5s;
}
.panel {background: #ccc;
margin: 10px;
padding: 3px;
border: 0pt inset;}
.panel table {
font: 12px exo2;
padding: 5px;
background: #c5e1f4;
border: 1pt solid black;
border-radius: 9px;
}
.panel table th {
background: #2099f0;
color: #fff;
padding: 2px 3px 3px 3px;
border: 0pt;
}
.panel table td {
background: #c5e1f4;
color: #000;
padding: 2px 3px 3px 3px;
border: 0pt;
}
.left {
text-align: right;
padding-left: 20px;
border-radius: 9px 0px 0px 9px;
}
.right {
border-radius: 0px 9px 9px 0px;
padding-right: 20px;
}
.featured {background: #fff}
.buttonbay {
width: 100%;
text-align: center;
}
.fieldinput {
font-family: exo2;
border-radius: 7px;
padding: 2px 2px 2px 5px;
border: 1px solid #ccc;
}
.fieldinputerror {
font-family: exo2;
border-radius: 7px;
padding: 2px 2px 2px 5px;
background: #fcc;
border: 1px solid red;
}
.fieldprompt {
font-size: 10pt;
text-align: right;
background: #00f;
}
.message {font: bold 10pt verdana; color: #FF0000}
.collection_heading {font: bold 12pt verdana; color: #FFFFFF}
.collection_text {font: 10pt verdana; color: #FFFFFF}
.collection_tracks_background {font: 8pt bold verdana; color: #FFFFFF; background: #10003F}
.warning {font: 10pt verdana; background: #FF0000; color: #FFFFFF; text-align: justify}
.button {
position: relative;
display: inline-block;
font-size: 10pt;
font-weight: 400;
color: #fff;
border: 2px outset;
background: #2099f0;
padding: 2px 10px 3px 10px;
margin: 0px;
border-radius: 5px;
}
.button:after{
content: '';
position: absolute;
top: 0px;
left: 0px;
width: calc(100% - 0px);
height: 10px;
z-index: 5;
border-radius: 3px;
background: linear-gradient(rgba(255,255,255,0.8), rgba(255,255,255,0.2));
}
.code {
font-family: source;
font-weight: 400;
font-size: 10pt;
border: 1pt solid black;
background: #ff8;
padding: 5px;
}