From f4ca4a3a8b7eda1f9bae7b68e3a396172666b13c Mon Sep 17 00:00:00 2001 From: lofcz Date: Thu, 14 Apr 2022 00:26:47 +0000 Subject: [PATCH] jekyll build from Action 5ff0898554a0b997c6b056663dd189033140b3ce --- .nojekyll | 0 about_wattle.html | 104 +++++++++ assets/css/lightbox.css | 94 ++++++++ assets/css/main.css | 361 +++++++++++++++++++++++++++++ assets/css/normalize.css | 342 +++++++++++++++++++++++++++ assets/css/syntax.css | 76 ++++++ assets/images/github.svg | 1 + assets/images/wattle-logo-dark.svg | 33 +++ assets/images/wattle-logo.svg | 32 +++ assets/images/wattle-square.svg | 197 ++++++++++++++++ assets/js/lightbox.js | 141 +++++++++++ favicon.ico | Bin 0 -> 285478 bytes feed.xml | 1 + index.html | 128 ++++++++++ license.html | 136 +++++++++++ lua_differences.html | 125 ++++++++++ robots.txt | 1 + sitemap.xml | 15 ++ 18 files changed, 1787 insertions(+) create mode 100644 .nojekyll create mode 100644 about_wattle.html create mode 100644 assets/css/lightbox.css create mode 100644 assets/css/main.css create mode 100644 assets/css/normalize.css create mode 100644 assets/css/syntax.css create mode 100644 assets/images/github.svg create mode 100644 assets/images/wattle-logo-dark.svg create mode 100644 assets/images/wattle-logo.svg create mode 100644 assets/images/wattle-square.svg create mode 100644 assets/js/lightbox.js create mode 100644 favicon.ico create mode 100644 feed.xml create mode 100644 index.html create mode 100644 license.html create mode 100644 lua_differences.html create mode 100644 robots.txt create mode 100644 sitemap.xml diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/about_wattle.html b/about_wattle.html new file mode 100644 index 0000000..5b487bf --- /dev/null +++ b/about_wattle.html @@ -0,0 +1,104 @@ + + + + About Wattle - WattleScript + + + + + + + + + + + + +
+
+

+ + + + WattleScript + + +

+ + +
+
+
+
+
+

About Wattle

+ +

Wattle is a scripting language for the WattleScript VM inspired by JavaScript, C# and Lua.

+ +

Using Wattle

+ +

To change your script’s language to Wattle, simply change the Syntax option in the ScriptOptions class to ScriptSyntax.Wattle.

+ + +
+
+ + + + + diff --git a/assets/css/lightbox.css b/assets/css/lightbox.css new file mode 100644 index 0000000..6b7a8f1 --- /dev/null +++ b/assets/css/lightbox.css @@ -0,0 +1,94 @@ +#lightbox {width: 100%; height: 100%; position: fixed; top: 0; left: 0; background: rgba(0,0,0,0.85); z-index: 9999999; line-height: 0; cursor: pointer; display: none;} +#lightbox .img { + position: relative; + top: 50%; + left: 50%; + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + max-width: 100%; + max-height: 100%; +} +#lightbox .img img {opacity: 0; pointer-events: none; width: auto;} +@media screen and (min-width: 1200px) { + #lightbox .img { + max-width: 1200px; + } +} +@media screen and (min-height: 1200px) { + #lightbox .img { + max-height: 1200px; + } +} +#lightbox span {display: block; position: fixed; bottom: 13px; height: 1.5em; line-height: 1.4em; width: 100%; text-align: center; color: white; text-shadow: + -1px -1px 0 #000, + 1px -1px 0 #000, + -1px 1px 0 #000, + 1px 1px 0 #000; +} + +#lightbox span {display: none;} + +#lightbox .videoWrapperContainer { + position: relative; + top: 50%; + left: 50%; + -ms-transform: translateX(-50%) translateY(-50%); + -webkit-transform: translate(-50%,-50%); + transform: translate(-50%,-50%); + max-width: 900px; + max-height: 100%; +} +#lightbox .videoWrapperContainer .videoWrapper { + height: 0; + line-height: 0; + margin: 0; + padding: 0; + position: relative; + padding-bottom: 56.333%; /* custom */ + background: black; +} +#lightbox .videoWrapper iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; + display: block; +} +#lightbox #prev, #lightbox #next {height: 50px; line-height: 36px; display: none; margin-top: -25px; position: fixed; top: 50%; padding: 0 15px; cursor: pointer; text-decoration: none; z-index: 99; color: white; font-size: 60px;} +#lightbox.gallery #prev, #lightbox.gallery #next {display: block;} +#lightbox #prev {left: 0;} +#lightbox #next {right: 0;} +#lightbox #close {height: 50px; width: 50px; position: fixed; cursor: pointer; text-decoration: none; z-index: 99; right: 0; top: 0;} +#lightbox #close:after, #lightbox #close:before {position: absolute; margin-top: 22px; margin-left: 14px; content: ""; height: 3px; background: white; width: 23px; +-webkit-transform-origin: 50% 50%; +-moz-transform-origin: 50% 50%; +-o-transform-origin: 50% 50%; +transform-origin: 50% 50%; +/* Safari */ +-webkit-transform: rotate(-45deg); +/* Firefox */ +-moz-transform: rotate(-45deg); +/* IE */ +-ms-transform: rotate(-45deg); +/* Opera */ +-o-transform: rotate(-45deg); +} +#lightbox #close:after { +/* Safari */ +-webkit-transform: rotate(45deg); +/* Firefox */ +-moz-transform: rotate(45deg); +/* IE */ +-ms-transform: rotate(45deg); +/* Opera */ +-o-transform: rotate(45deg); +} +#lightbox, #lightbox * { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 0000000..eb237b5 --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,361 @@ +:root { + --pageBg: #ebe4cc; + --textDefault: #1c1c1c; + --linkDeafult:#188d8f; + --navBg: #444; + --navBorder: #555; + --navBgHover: #111; + --borderMuted: #b7b79a; +} + +@media (prefers-color-scheme: dark) { + :root { + --pageBg: rgb(13, 17, 23); + --textDefault: rgb(201, 209, 217); + --linkDefault: #58a6ff; + --navBg: #1a222f; + --navBorder: #1c2532; + --navBgHover: #212b3b; + --borderMuted: #21262d; + } +} + +body, html { + font-family: 'Libre Franklin', sans-serif; + background: var(--pageBg); + color: var(--textDefault); +} + +body { + line-height: 1.5; + word-wrap: break-word; +} + +pre, code { + font-family: 'Inconsolata', monospace; +} +div.highlight { + padding: 0.3em 1em; +} +a { + color: var(--linkDefault); +} +h1 a { + text-decoration: none; +} +ul li { + line-height: 2; +} +nav { + width: 100%; + border-top: 1px solid var(--navBorder); + border-bottom: 1px solid var(--navBorder); + background: var(--navBg); +} + +nav ul { + list-style-type: none; + margin: 0; + padding: 0; + overflow: hidden; + line-height: 1.15; + background: var(--navBg); +} + +nav ul li:not(.renderOnSm) { + float: left; + line-height: 1.15; +} +nav ul li a { + display: block; + text-align: center; + padding: 14px 16px; + text-decoration: none; + color: whitesmoke; +} + +nav ul li a:hover { + background-color: var(--navBgHover); +} + +.fixednav { + position: fixed; + top: 0; +} +.menutext { + display: none; +} +.menucheck { + display: none; +} + +.github-icon { + mask: url(/assets/images/github.svg); + mask-size: cover; + -webkit-mask-image: url(/assets/images/github.svg); + -webkit-mask-size: cover; + width: 20px; + height: 20px; + background: white; + display: inline-block; + text-indent:-9999px; +} + +.site-title { + text-transform: uppercase; + text-shadow: 2px 2px black; + margin-left: 0.5rem; + text-decoration: none; + color: #1c1c1c; +} +.fancybox { + display: block; + width: 200px; + height: 200px; + background: black; + margin-left: auto; + margin-right: auto; + position: relative; +} +.screenshot { + margin: 2px; + display: inline-block; +} +.fancybox img { + position: absolute; + top: 0; + bottom: 0; + margin: auto; +} + +.headerfill { + position: relative; + height: 200px; + width: 100%; +} +article { + border-bottom: 1px solid #555; + margin-bottom: 4px; +} +.pagination { + width: 100%; + text-align: center; +} +.current_page { + font-weight: bold; +} +.next_page, .prev_page, .different_page { + text-decoration: none; +} + +#contentwrap { + margin-left: auto; + margin-right: auto; +} + +ul { + list-style-type: square; +} + +h1 { + margin: 0.67em 0; + padding-bottom: 0.3em; + font-size: 2em; + border-bottom: 1px solid var(--borderMuted); +} + +h2 { + font-weight: 600; + padding-bottom: 0.3em; + font-size: 1.5em; + border-bottom: 1px solid var(--borderMuted); +} + +code { + padding: 0.2em 0.4em; + margin: 0; + font-size: 85%; + background-color: rgb(175 184 193 / 20%); + border-radius: 6px; + font-family: ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace; +} + +pre.highlight code { + padding: inherit; + margin: inherit; + font-size: inherit; + background-color: inherit; + border-radius: inherit; + font-family: inherit; +} + +.noBorder { + border: none; +} + +.noMargin { + margin: 0; +} + +.logoImg { + height: 3.5em; +} + +@media screen and (min-width: 980px) { + .headerbottom { + position: absolute; + bottom: 0; + left: 0; + right: 0; + width: 100%; + } + + #contentwrap { + max-width: 980px; + } + + nav ul { + max-width: calc(980px + 32px); + margin-left: auto; + margin-right: auto; + } + + .logoHeading { + display: flex; + margin-left: auto; + margin-right: auto; + max-width: calc(980px + 32px); + } +} + +@media screen and (max-width: 980px) { + .logoImg { + height: 2.5em; + } + + nav ul li:not(.renderOnSm) { + float: none; + display: none; + } + nav { + max-height: 48px; + background: var(--navBg); + } + nav ul { + position: relative; + z-index: 900; + } + .landingfill { + height: 200px; + background-image: url(/assets/images/header.jpeg); + } + .landingfill > figure { + display: none; + } + .landingpage { + height: auto; + } + .github-icon { + background: none; + mask: none; + width: auto; height: auto; + text-indent: 0; + } + .patreon-icon { + background: none; + mask: none; + width: auto; height: auto; + text-indent: 0; + } + .menutext { + display: block; + text-align: center; + padding: 14px 16px; + text-decoration: none; + color: whitesmoke; + } + .fixednav { + position: relative; + } + .responsivepad { + display: none; + } + + #contentwrap p, #contentwrap h1, #contentwrap h2, #contentwrap h3, #contentwrap h4 { + margin-left: 8px; + margin-right: 8px; + } + + .github-icon { + -webkit-mask-image: none; + } + + div.highlight { + padding: 1px 8px 1px 8px; + } + + #contentwrap h3 { + margin-bottom: 8px; + } + + ul { + padding-left: 30px; + margin-top: 0; + } + + .site-title { + display: flex; + justify-content: center; + } + + nav ul.navChecked li { + display: block; + } + + .m10sm { + margin-top: 10px; + } +} + +@media (prefers-color-scheme: light) { + code { + color: #24292f; + } +} + +@media (prefers-color-scheme: dark) { + ::-webkit-scrollbar { + width: 15px; + } + + ::-webkit-scrollbar-track { + background: #202020; + border-left: 1px solid #2c2c2c; + } + + ::-webkit-scrollbar-thumb { + background: #3e3e3e; + border: solid 3px #202020; + border-radius: 7px; + } + + ::-webkit-scrollbar-thumb:hover { + background: #4F4F4F; + } + + hr { + box-sizing: content-box; + overflow: hidden; + background: transparent; + border-bottom: 1px solid #21262d; + height: 0.25em; + padding: 0; + margin: 24px 0; + background-color: #30363d; + border: 0; + } + + code { + background-color: rgba(110,118,129,0.4); + } +} \ No newline at end of file diff --git a/assets/css/normalize.css b/assets/css/normalize.css new file mode 100644 index 0000000..8606794 --- /dev/null +++ b/assets/css/normalize.css @@ -0,0 +1,342 @@ + +/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/assets/css/syntax.css b/assets/css/syntax.css new file mode 100644 index 0000000..674b374 --- /dev/null +++ b/assets/css/syntax.css @@ -0,0 +1,76 @@ + /* + + Name: Base16 Tomorrow Dark + Author: Chris Kempson (http://chriskempson.com) + + Pygments template by Jan T. Sott (https://github.com/idleberg) + Created with Base16 Builder by Chris Kempson (https://github.com/chriskempson/base16-builder) + + Adapted for Jekyll +*/ + +.highlight .hll { background-color: #373b41 } +.highlight { background: #1d1f21; color: #ffffff } +.highlight .c { color: #969896 } /* Comment */ +.highlight .err { color: #cc6666 } /* Error */ +.highlight .k { color: #b294bb } /* Keyword */ +.highlight .l { color: #de935f } /* Literal */ +.highlight .n { color: #ffffff } /* Name */ +.highlight .o { color: #8abeb7 } /* Operator */ +.highlight .p { color: #ffffff } /* Punctuation */ +.highlight .cm { color: #969896 } /* Comment.Multiline */ +.highlight .cp { color: #969896 } /* Comment.Preproc */ +.highlight .c1 { color: #969896 } /* Comment.Single */ +.highlight .cs { color: #969896 } /* Comment.Special */ +.highlight .gd { color: #cc6666 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #b5bd68 } /* Generic.Inserted */ +.highlight .gp { color: #969896; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #8abeb7; font-weight: bold } /* Generic.Subheading */ +.highlight .kc { color: #b294bb } /* Keyword.Constant */ +.highlight .kd { color: #b294bb } /* Keyword.Declaration */ +.highlight .kn { color: #8abeb7 } /* Keyword.Namespace */ +.highlight .kp { color: #b294bb } /* Keyword.Pseudo */ +.highlight .kr { color: #b294bb } /* Keyword.Reserved */ +.highlight .kt { color: #f0c674 } /* Keyword.Type */ +.highlight .ld { color: #b5bd68 } /* Literal.Date */ +.highlight .m { color: #de935f } /* Literal.Number */ +.highlight .s { color: #b5bd68 } /* Literal.String */ +.highlight .na { color: #81a2be } /* Name.Attribute */ +.highlight .nb { color: #ffffff } /* Name.Builtin */ +.highlight .nc { color: #f0c674 } /* Name.Class */ +.highlight .no { color: #cc6666 } /* Name.Constant */ +.highlight .nd { color: #8abeb7 } /* Name.Decorator */ +.highlight .ni { color: #ffffff } /* Name.Entity */ +.highlight .ne { color: #cc6666 } /* Name.Exception */ +.highlight .nf { color: #81a2be } /* Name.Function */ +.highlight .nl { color: #ffffff } /* Name.Label */ +.highlight .nn { color: #f0c674 } /* Name.Namespace */ +.highlight .nx { color: #81a2be } /* Name.Other */ +.highlight .py { color: #ffffff } /* Name.Property */ +.highlight .nt { color: #8abeb7 } /* Name.Tag */ +.highlight .nv { color: #cc6666 } /* Name.Variable */ +.highlight .ow { color: #8abeb7 } /* Operator.Word */ +.highlight .w { color: #ffffff } /* Text.Whitespace */ +.highlight .mf { color: #de935f } /* Literal.Number.Float */ +.highlight .mh { color: #de935f } /* Literal.Number.Hex */ +.highlight .mi { color: #de935f } /* Literal.Number.Integer */ +.highlight .mo { color: #de935f } /* Literal.Number.Oct */ +.highlight .sb { color: #b5bd68 } /* Literal.String.Backtick */ +.highlight .sc { color: #ffffff } /* Literal.String.Char */ +.highlight .sd { color: #969896 } /* Literal.String.Doc */ +.highlight .s2 { color: #b5bd68 } /* Literal.String.Double */ +.highlight .se { color: #de935f } /* Literal.String.Escape */ +.highlight .sh { color: #b5bd68 } /* Literal.String.Heredoc */ +.highlight .si { color: #de935f } /* Literal.String.Interpol */ +.highlight .sx { color: #b5bd68 } /* Literal.String.Other */ +.highlight .sr { color: #b5bd68 } /* Literal.String.Regex */ +.highlight .s1 { color: #b5bd68 } /* Literal.String.Single */ +.highlight .ss { color: #b5bd68 } /* Literal.String.Symbol */ +.highlight .bp { color: #ffffff } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #cc6666 } /* Name.Variable.Class */ +.highlight .vg { color: #cc6666 } /* Name.Variable.Global */ +.highlight .vi { color: #cc6666 } /* Name.Variable.Instance */ +.highlight .il { color: #de935f } /* Literal.Number.Integer.Long */ diff --git a/assets/images/github.svg b/assets/images/github.svg new file mode 100644 index 0000000..3899712 --- /dev/null +++ b/assets/images/github.svg @@ -0,0 +1 @@ +GitHub icon \ No newline at end of file diff --git a/assets/images/wattle-logo-dark.svg b/assets/images/wattle-logo-dark.svg new file mode 100644 index 0000000..bf8e2f3 --- /dev/null +++ b/assets/images/wattle-logo-dark.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/wattle-logo.svg b/assets/images/wattle-logo.svg new file mode 100644 index 0000000..a9ae4df --- /dev/null +++ b/assets/images/wattle-logo.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/wattle-square.svg b/assets/images/wattle-square.svg new file mode 100644 index 0000000..11dce27 --- /dev/null +++ b/assets/images/wattle-square.svg @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/js/lightbox.js b/assets/js/lightbox.js new file mode 100644 index 0000000..671e27f --- /dev/null +++ b/assets/js/lightbox.js @@ -0,0 +1,141 @@ +function is_youtubelink(url) { + var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/; + return (url.match(p)) ? RegExp.$1 : false; +} +function is_imagelink(url) { + var p = /([a-z\-_0-9\/\:\.]*\.(jpg|jpeg|png|gif))/i; + return (url.match(p)) ? true : false; +} +function is_vimeolink(url,el) { + var id = false; + var xmlhttp = new XMLHttpRequest(); + xmlhttp.onreadystatechange = function() { + if (xmlhttp.readyState == XMLHttpRequest.DONE) { // XMLHttpRequest.DONE == 4 + if (xmlhttp.status == 200) { + var response = JSON.parse(xmlhttp.responseText); + id = response.video_id; + console.log(id); + el.classList.add('lightbox-vimeo'); + el.setAttribute('data-id',id); + + el.addEventListener("click", function(event) { + event.preventDefault(); + document.getElementById('lightbox').innerHTML = '
'; + document.getElementById('lightbox').style.display = 'block'; + + setGallery(this); + }); + } + else if (xmlhttp.status == 400) { + alert('There was an error 400'); + } + else { + alert('something else other than 200 was returned'); + } + } + }; + xmlhttp.open("GET", 'https://vimeo.com/api/oembed.json?url='+url, true); + xmlhttp.send(); +} +function setGallery(el) { + var elements = document.body.querySelectorAll(".gallery"); + elements.forEach(element => { + element.classList.remove('gallery'); + }); + if(el.closest('ul, p')) { + var link_elements = el.closest('ul, p').querySelectorAll("a[class*='lightbox-']"); + link_elements.forEach(link_element => { + link_element.classList.remove('current'); + }); + link_elements.forEach(link_element => { + if(el.getAttribute('href') == link_element.getAttribute('href')) { + link_element.classList.add('current'); + } + }); + if(link_elements.length>1) { + document.getElementById('lightbox').classList.add('gallery'); + link_elements.forEach(link_element => { + link_element.classList.add('gallery'); + }); + } + var currentkey; + var gallery_elements = document.querySelectorAll('a.gallery'); + Object.keys(gallery_elements).forEach(function (k) { + if(gallery_elements[k].classList.contains('current')) currentkey = k; + }); + if(currentkey==(gallery_elements.length-1)) var nextkey = 0; + else var nextkey = parseInt(currentkey)+1; + if(currentkey==0) var prevkey = parseInt(gallery_elements.length-1); + else var prevkey = parseInt(currentkey)-1; + document.getElementById('next').addEventListener("click", function() { + gallery_elements[nextkey].click(); + }); + document.getElementById('prev').addEventListener("click", function() { + gallery_elements[prevkey].click(); + }); + } +} + +document.addEventListener("DOMContentLoaded", function() { + + //create lightbox div in the footer + var newdiv = document.createElement("div"); + newdiv.setAttribute('id',"lightbox"); + document.body.appendChild(newdiv); + + //add classes to links to be able to initiate lightboxes + var elements = document.querySelectorAll('a'); + elements.forEach(element => { + var url = element.getAttribute('href'); + if(url) { + if(url.indexOf('vimeo') !== -1 && !element.classList.contains('no-lightbox')) { + is_vimeolink(url,element); + } + if(is_youtubelink(url) && !element.classList.contains('no-lightbox')) { + element.classList.add('lightbox-youtube'); + element.setAttribute('data-id',is_youtubelink(url)); + } + if(is_imagelink(url) && !element.classList.contains('no-lightbox')) { + element.classList.add('lightbox-image'); + var href = element.getAttribute('href'); + var filename = href.split('/').pop(); + var split = filename.split("."); + var name = split[0]; + element.setAttribute('title',name); + } + } + }); + + //remove the clicked lightbox + document.getElementById('lightbox').addEventListener("click", function(event) { + if(event.target.id != 'next' && event.target.id != 'prev'){ + this.innerHTML = ''; + document.getElementById('lightbox').style.display = 'none'; + } + }); + + //add the youtube lightbox on click + var elements = document.querySelectorAll('a.lightbox-youtube'); + elements.forEach(element => { + element.addEventListener("click", function(event) { + event.preventDefault(); + document.getElementById('lightbox').innerHTML = '
'; + document.getElementById('lightbox').style.display = 'block'; + + setGallery(this); + }); + }); + + //add the image lightbox on click + var elements = document.querySelectorAll('a.lightbox-image'); + elements.forEach(element => { + element.addEventListener("click", function(event) { + event.preventDefault(); + document.getElementById('lightbox').innerHTML = '
'+this.getAttribute('title')+'
'+this.getAttribute('title')+''; + document.getElementById('lightbox').style.display = 'block'; + + setGallery(this); + }); + }); + +}); diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..eb1d34d6456cc8d2c612e1300d6854edca5c0e49 GIT binary patch literal 285478 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 bLO=)z0U;m+gn$qb0zyCt2mv9`L*V}bzm9k9 literal 0 HcmV?d00001 diff --git a/feed.xml b/feed.xml new file mode 100644 index 0000000..7c7b842 --- /dev/null +++ b/feed.xml @@ -0,0 +1 @@ +Jekyll2022-04-14T00:26:47+00:00https://wattlescript.github.io/feed.xmlWattleScriptWattleScript \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..8432179 --- /dev/null +++ b/index.html @@ -0,0 +1,128 @@ + + + + Home - WattleScript + + + + + + + + + + + + +
+
+

+ + + + WattleScript + + +

+ + +
+
+
+
+
+

WattleScript

+ +

WattleScript is a scripting engine written in C# for runtimes supporting .NET Standard 2.0 and newer. (.NET 4.7.2+, .NET Core 3.1+). It is a dual-language environment, providing support for Lua 5.2 code as well as its own language, Wattle.

+ +

Using WattleScript is as easy as:

+ +
var script = new Script();
+script.DoString("print('Hello World!')");
+
+ +

WattleScript is based off the tried and tested MoonSharp project, inheriting its VM design and test suite. The design focuses on easy and fast interop with .NET objects and functions.

+ +

Features

+ +
    +
  • Wattle scripting language.
  • +
  • Lua mode 99% compatible with Lua 5.2, differences documented here.
  • +
  • Easily configured sandbox for safe execution of untrusted scripts.
  • +
  • Minimal garbage generation at runtime.
  • +
  • No external dependencies.
  • +
  • Easy and performant interop with CLR objects, with runtime code generation where supported.
  • +
  • Source Generator for AOT interop.
  • +
  • Support for awaiting on returned values.
  • +
  • Supports dumping/loading bytecode.
  • +
  • Support for the complete Lua standard library with very few exceptions (mostly located in the debug module).
  • +
  • json module for loading json into tables safely at runtime.
  • +
+ +

License

+ +

WattleScript is licensed under the 3-clause BSD License. See LICENSE for details.

+ + +
+
+ + +
+ + diff --git a/license.html b/license.html new file mode 100644 index 0000000..c189990 --- /dev/null +++ b/license.html @@ -0,0 +1,136 @@ + + + + License - WattleScript + + + + + + + + + + + + +
+
+

+ + + + WattleScript + + +

+ + +
+
+
+
+
+

BSD 3-Clause License

+ +

Copyright (c) 2014-2022 The WattleScript Authors, as shown by the AUTHORS file. +All rights reserved.

+ +

Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met:

+ +
    +
  • +

    Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer.

    +
  • +
  • +

    Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution.

    +
  • +
  • +

    Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission.

    +
  • +
+ +

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ +

Parts of the string library are based on the KopiLua project (https://github.com/NLua/KopiLua) +Copyright (c) 2012 LoDC

+ +

The MoonSharp icon is (c) Isaac, 2014-2015

+ +
+
+ + + + + diff --git a/lua_differences.html b/lua_differences.html new file mode 100644 index 0000000..02af224 --- /dev/null +++ b/lua_differences.html @@ -0,0 +1,125 @@ + + + + Differences between WattleScript Lua and Lua - WattleScript + + + + + + + + + + + + +
+
+

+ + + + WattleScript + + +

+ + +
+
+
+
+
+

Differences between WattleScript Lua and Lua

+ +

WattleScript’s Lua mode contains minor differences and a few additions, inherited from MoonSharp.

+ +

List of Differences

+ +
    +
  • Strings are Unicode: some caution is required if code uses strings to store binary data. On the other hand, strings used as real strings are a lot easier to use.
  • +
  • Garbage Collection is different, as WattleScript makes use of the .NET GC. Notably this makes collectgarbage() a no-op.
  • +
  • Compatibility is source-only, WattleScript cannot load luac binaries.
  • +
  • Slight differences in error messages.
  • +
  • Function names are tracked at function declaration, not backtracked at function calls like in Lua (noticeable only when debugging)
  • +
+ +

List of Additions

+ +
    +
  • Multiple expressions can be used as indices but the value to be indexed must be a userdata, or a table resolving to userdata through the metatable (but without using metamethods). So, for example, x[1,2,i] is parsed correctly but might raise an error if x is not a userdata.
  • +
  • Metalua short anonymous functions (lambda-style) are supported. So |x, y| x + y is shorthand for function(x,y) return x+y end.
  • +
  • A non-yieldable __iterator metamethod has been added. It’s called if the argument f of a for ... in ... loop is not actually a function.
  • +
  • A default iterator is provided if the argument f of a for ... in ... loop is a table without __iterator or __call metamethods. The provided result is value, key unlike ipairs or pairs.
  • +
  • \u{xxx} escapes, where x are up to 8 hexadecimal digits, are supported inside strings and will output the specified Unicode codepoint, as it does in Lua 5.3
  • +
  • loadsafe and loadfilesafe methods, same as load and loadfile but defaulting to the current top-of-the-stack _ENV instead of the default one, for easier sandboxing
  • +
  • The dynamic.eval and dynamic.prepare functions to handle dynamic expressions
  • +
  • string.unicode method, just like string.byte but returning a whole unicode codepoint
  • +
  • string.contains, string.startsWith and string.endsWith methods allow easier and faster performing string ops without having to rely on patterns for simple scenarios
  • +
  • The json module to support JSON<->table conversions
  • +
+ + +
+
+ + + + + diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..51dad5c --- /dev/null +++ b/robots.txt @@ -0,0 +1 @@ +Sitemap: https://wattlescript.github.io/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..d2e5023 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,15 @@ + + + +https://wattlescript.github.io/about_wattle.html + + +https://wattlescript.github.io/ + + +https://wattlescript.github.io/license.html + + +https://wattlescript.github.io/lua_differences.html + +