Various bug fix due to CSP headers

SiteLibrary added name display on album view
Optimizations & removed some obsolete files
This commit is contained in:
斟酌 鵬兄 2022-04-09 20:45:48 +08:00
parent 3b4ba29b6e
commit b0ecbe42c3
27 changed files with 214 additions and 665 deletions

View File

@ -8,7 +8,7 @@ DEBUG = os.getenv( "DEBUG" )
if DEBUG is None:
DEBUG = Config[ "Env" ][ "Debug" ]
else:
Config[ "Env" ][ "Debug" ] = DEBUG
Config[ "Env" ][ "Debug" ] = str( DEBUG == "1" )
REDIS_CONN = os.getenv( "REDIS_CONN" )
if not REDIS_CONN is None:

View File

@ -146,14 +146,55 @@
.canvasImage > span {
width: 100px;
height: 100px;
float: left;
margin: 0.2em;
background-repeat: no-repeat;
background-position: center;
border: 1px solid transparent;
display: inline-block;
vertical-align: middle;
position: relative;
overflow: hidden;
}
.canvasImage > span:before {
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
.canvasImage > span img {
vertical-align: middle;
display: inline-block;
}
.canvasImage > span:after {
content: attr(data-title);
background-color: rgba(0,0,0,0.6);
color: white;
position: absolute;
left: 0;
bottom: -2em;
font-size: 0.8em;
width: 100%;
padding-left: 0.5em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
-webkit-transition: all .25s ease-out;
-moz-transition: all .25s ease-out;
-o-transition: all .25s ease-out;
transition: all .25s ease-out;
}
.canvasImage > span:hover:after {
bottom: 0%;
}
.canvasImage > span[selected] {

View File

@ -145,10 +145,10 @@
////// Album item
? Dand.wrap(
"span", "img_" + Perf.uuid, "ci_album", Dand.wrap("span")
"span", "img_" + Perf.uuid, "ci_album"
, Dand.wrapna( "img", new IKey( "src", basePath + "image/s100/" + file.hash + ".jpg" ) )
, [
new IKey("style", "background-image: url(" + basePath + "image/s100/" + file.hash + ".jpg);" )
, new IKey("title"
new IKey("title"
, "Album: " + file.name
+ "\n" + file.cCount + " file(s)"
+ "\nDate: " + prettyDate( new Date( file.date_created ), true )
@ -159,10 +159,10 @@
)
//////// Normal filele
: Dand.wrap(
"span", "img_" + Perf.uuid, null, Dand.wrap( "span" )
"span", "img_" + Perf.uuid, null
, Dand.wrapna( "img", new IKey( "src", basePath + "image/s100/" + file.hash + ".jpg" ) )
, [
new IKey("style", "background-image: url(" + basePath + "image/s100/" + file.hash + ".jpg);" )
, new IKey("title"
new IKey("title"
, "File: " + file.name
+ "\nDate: " + prettyDate( new Date( file.date_created ), true )
+ "\nCreated by: " + file.author

View File

@ -0,0 +1,5 @@
.v_boundary[data-type="AcquireLib"] > span {
background-color: #444;
color: white;
padding: 0.2em 0.5em;
}

View File

@ -54,12 +54,7 @@
temp = Dand.wrap(
'span', null, "flsf"
, "AcquireLib: " + src
, [
new DataKey( "value", src )
, new IKey(
"style", "background-color: #444; color: white; padding: 0.2em 0.5em;"
)
]
, [ new DataKey( "value", src ) ]
);
insertSnippet(j = snippetWrap("AcquireLib", temp, false, 'span'), Boolean(override));
}

View File

@ -0,0 +1,5 @@
.v_boundary[data-type="Meta"] > span {
background-color: #444;
color: white;
padding: 0.2em 0.5em;
}

View File

@ -53,12 +53,7 @@
temp = Dand.wrap(
'span', null, "flsf"
, "Meta Tags"
, [
new DataKey( "value", code )
, new IKey(
"style", "background-color: #444; color: white; padding: 0.2em 0.5em;"
)
]
, [ new DataKey( "value", code ) ]
);
insertSnippet(j = snippetWrap( "Meta", temp, false, "span" ), Boolean(override));
}

View File

@ -0,0 +1,5 @@
.v_boundary[data-type="RespH"] > span {
background-color: #444;
color: white;
padding: 0.2em 0.5em;
}

View File

@ -0,0 +1,18 @@
.v_boundary[data-type="Video"] {
width: 640px; height: 390px;
background-color: black;
padding: 0;
}
.v_boundary[data-type="Video"] .v_box {
width: 640px; height: 390px;
position: relative;
display: table-cell;
text-align: center;
vertical-align: middle;
}
.v_boundary[data-type="Video"] .v_description {
text-align: left;
padding-left: 0.5em;
}

View File

@ -14,25 +14,28 @@
var MessageBox = __import( "Components.MessageBox" );
var getData = __import( "System.Net.getData" );
var BLANK_IMG = __import( "Dandelion.StaticRes.BLANK_IMG" );
var video = function (insertSnippet, snippetWrap, createContext, override)
{
var temp, i, j
var temp, i, j, imgSrc
, getVimeoThumbnail = function (vtag)
, getVimeoThumbnail = function( v )
{
getData("//vimeo.com/api/oembed.json?url=https%3A//vimeo.com/" + vtag.getAttribute("data-value"), setThumbnail.bind(vtag), noThumb.bind(vtag));
getData(
"//vimeo.com/api/oembed.json?url=https%3A//vimeo.com/" + v
, setThumbnail
, noThumb
);
}
, noThumb = function ()
, setImgSrc = function( url )
{
if( imgSrc ) imgSrc.src = url;
}
, noThumb = function () { }
, setThumbnail = function (str)
{
this.style.background = "black url(" + JSON.parse(str)["thumbnail_url"] + ") center center no-repeat";
setImgSrc( JSON.parse(str)["thumbnail_url"] );
}
, handler = function ()
@ -86,22 +89,22 @@
if (submitted)
{
// Visualize component
temp = Dand.wrapc('v_box', Dand.wrapc('v_description', "Video(url): " + t)
, [
new DataKey("value", v)
, new DataKey("type", i)
, new IKey("style"
, "width: 640px; height: 390px;"
+ ( (i[0] == "v") ? "" : ("background: black url(//img.youtube.com/vi/" + v + "/hqdefault.jpg) no-repeat center center;") )
)
]
temp = Dand.wrapc('v_box'
, [
Dand.wrapc( 'v_description', i[0].toUpperCase() + i.substr(1) + ": " + v )
, imgSrc = Dand.wrapna( "img", [ new IKey( "src", BLANK_IMG ) ] )
]
, [ new DataKey("value", v), new DataKey("type", i) ]
);
if (i[0] == "v")
if( i[0] == "v" )
{
getVimeoThumbnail(temp);
getVimeoThumbnail( v );
}
else
{
setImgSrc( "//img.youtube.com/vi/" + v + "/hqdefault.jpg" );
}
insertSnippet(j = snippetWrap("Video", temp), Boolean(override));
@ -110,7 +113,6 @@
createContext(null, j);
}
}
;
if (override)
{

View File

@ -104,3 +104,19 @@ div[data-type="token"]:after {
div[data-type="token"]:hover:after {
color: rgba( 255, 255, 255, 0.5 );
}
#ae_visual_snippets > span[data-name="code"] { background: white; color: cornflowerblue; }
#ae_visual_snippets > span[data-name="image"] { background: #ff0084; }
#ae_visual_snippets > span[data-name="sound"] { background: YellowGreen; }
#ae_visual_snippets > span[data-name="video"] { background: Crimson; }
#ae_visual_snippets > span[data-name="spoiler"] { background: cornflowerblue; }
#ae_visual_snippets > span[data-name="link"] { background: blue; }
#ae_visual_snippets > span[data-name="acquirelib"] { background: black; }
#ae_visual_snippets > span[data-name="html"] { background: coral; }
#ae_visual_snippets > span[data-name="sitefile"] { background: royalblue; }
#ae_visual_snippets > span[data-name="heading"] { }
#ae_visual_snippets > span[data-name="footnote"] { }
#ae_visual_snippets > span[data-name="resph"] { }
#ae_visual_snippets > span[data-name="meta"] { }
#ae_visual_snippets > span[data-name="articlelink"] { }
#ae_visual_snippets > span[data-name="articlecontent"] { }

View File

@ -26,23 +26,23 @@
/** @type {Astro.Blog.Config} */
var Config = __import( "Astro.Blog.Config" );
var snippetList = IKey.quickDef(
"Code" , "background: white; color: cornflowerblue;"
, "Image" , "background: #ff0084;"
, "Sound" , "background: YellowGreen;"
, "Video" , "background: Crimson;"
, "Spoiler" , "background: cornflowerblue;"
, "Link" , "background: blue;"
, "AcquireLib" , "background: black;"
, "Html" , "background: coral;"
, "SiteFile" , "background: royalblue;"
, "Heading" , ""
, "Footnote" , ""
, "RespH" , ""
, "Meta" , ""
, "ArticleLink" , ""
, "ArticleContent" , ""
);
var snippetList = [
"Code"
, "Image"
, "Sound"
, "Video"
, "Spoiler"
, "Link"
, "AcquireLib"
, "Html"
, "SiteFile"
, "Heading"
, "Footnote"
, "RespH"
, "Meta"
, "ArticleLink"
, "ArticleContent"
];
var snippetNs = "Astro.Blog.AstroEdit.Visualizer.Snippet.";
//// Document Visualizer visualize snippets, used in AstroEdit and comments
@ -388,19 +388,7 @@
}
// Append module"s control
temp = Dand.wrapne(
"span"
, mod_name
, new IKey(
"style"
, utils.objSearch(
snippetList
/** @param {System.utils.IKey} a */
, function( a ) { return a.keyName.toLowerCase() == mod_name }
, "keyValue"
)
)
);
temp = Dand.wrapne( "span", mod_name, new IKey( "data-name", mod_name ) );
snippetControls.appendChild( temp );
snippetControls.appendChild( Dand.textNode( "\t" ) );
@ -502,9 +490,9 @@
article.invoke(this);
var modules = [];
for( var i in snippetList )
for( var i = 0; i < snippetList.length; i ++ )
{
modules[ modules.length ] = snippetNs + snippetList[i].keyName;
modules[ modules.length ] = snippetNs + snippetList[i];
}
var ldr = new Loader( service_uri, "o" );

View File

@ -22,6 +22,7 @@
var config = null;
var SiteFile = ns[ NS_INVOKE ]( "SiteFile" );
var BLANK_IMG = __import( "Dandelion.StaticRes.BLANK_IMG" );
var Album = function ( id, hash )
{
@ -56,9 +57,7 @@
ostage.appendChild( Dand.wrapne(
"div"
, Dand.wrapna( "img", [
new IKey( "src", "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" )
] )
, Dand.wrapna( "img", [ new IKey( "src", BLANK_IMG ) ] )
, [ new IKey( "id", uuid ), new DataKey( "size", "medium" ) ]
) );

View File

@ -159,10 +159,12 @@
border-bottom: 1em solid white;
position: absolute;
top: -1em;
top: 0;
right: 1em;
}
#ri_switch[data-pointy="1"] { top: -1em; }
.c_relative_wrap {
position: relative;
padding: 1em;
@ -247,10 +249,14 @@
margin: 1em;
}
.info_field > div{
.info_field > div{
margin: 0.2em 0;
text-align: right;
}
.info_field .website span { width: 20%; }
.info_field .website input { width: 80%; }
#capcha_wrapper {
overflow: hidden;
height: 0;

View File

@ -107,7 +107,6 @@
}
}
, doReply = function ()
{
var c_reply = this;
@ -116,13 +115,12 @@
// Set comment id
submit_button.setAttribute( new DataKey( "cid", c_reply.getAttribute( "value" ) ) );
// Close reply indicator
Dand.id("ri_switch").style.top = "0";
// close the triangle in the top rigth corner
Dand.id( "ri_switch", true ).removeAttribute( "data-pointy" );
// If this button is not that button
button && ( c_reply != button ) && releaseReplyButton();
// Lock reply button
c_reply.setAttribute("locked", "1");
c_reply.onclick = null;
@ -313,7 +311,8 @@
cp.style.height = "";
cp.style.overflow = "";
Dand.id("ri_switch").style.top = "";
// Pop back up the pointy triangle
Dand.id( "ri_switch", true ).setAttribute( new DataKey( "pointy", "1" ) );
fieldReady = false;
fieldReadyTrigger();

View File

@ -1,162 +0,0 @@
.block-entries .block {
float: left;
width: 225px;
height: 325px;
margin: 0 2em 2em 0;
position: relative;
color: #666;
border: 2px solid transparent;
display: block;
}
.block-entries .block:hover {
border-width: 2px;
border-color: purple;
}
.block-entries .slide-wrapper {
position: absolute;
overflow: hidden;
width: 100%;
height: 100%;
border: 1px solid #D4D7C9;
margin: -1px;
}
.block-entries .slide-wrapper:hover {
border-color: purple;
}
.block-entries .date {
font-size: 0.8em;
text-align: right;
}
.block-entries .title {
font-size: 1.2em;
max-height: 2.4em;
overflow: hidden;
text-overflow: ellipsis;
color: #444;
}
.block-entries .content {
text-overflow: ellipsis;
overflow: hidden;
}
.block-entries .author {
color: crimson;
text-align: right;
}
.block-entries .c-count {
position: absolute;
bottom: 1em;
left: 0.5em;
font-size: 0.8em;
font-family: sans-serif;
color: orangered;
}
.block-entries .slide {
position: absolute;
width: 100%;
height: 150%;
top: 0;
}
.block-entries .slide:after, .block-entries[on] .slide {
content: attr(data-content);
position: absolute;
top: 100%;
width: 100%;
height: 50%;
padding: 0 0.5em;
color: #EEE;
background: purple;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-shadow: inset 0px 15px 15px -15px black;
-moz-box-sizing: inset 0px 15px 15px -15px black;
box-shadow: inset 0px 15px 15px -15px black;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
-moz-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
-ms-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
-o-transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
transition: all 500ms cubic-bezier(0.215, 0.610, 0.355, 1.000); /* easeOutCubic */
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-moz-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-ms-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-o-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); /* easeOutCubic */
}
.block-entries .slide:hover:after, .slide[on]:after {
top: 62.5%;
padding: 0.5em;
}
.block-entries .slide:hover, .slide[on] {
top: -50%;
}
.block-entries .front {
position: absolute;
background: white;
width: 100%;
height: 100%;
}
.block-entries .block-wrapper {
position: relative;
background-image: repeating-linear-gradient(
135deg
, transparent, transparent 1px
, rgba( 85, 85, 85, .1 ) 1px
, rgba( 85, 85, 85, .1 ) 30px
);
background-color: black;
}
.block-entries .block-info {
padding: 0.5em;
background: white;
}
.block-entries .banner {
width: 50%;
padding: 50%;
background-position: center;
background-repeat: no-repeat;
border-bottom: 1px solid #D4D7C9;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}

View File

@ -1,91 +0,0 @@
(function(){
var ns = __namespace( "Astro.Blog.Components.Entry" );
/** @type {System.Cycle} */
var Cycle = __import( "System.Cycle" );
/** @type {System.utils.Perf} */
var Perf = __import( "System.utils.Perf" );
/** @type {Dandelion} */
var Dand = __import( "Dandelion" );
/** @type {Astro.Bootstrap} */
var Bootstrap = __import( "Astro.Bootstrap" );
/** @type {Astro.Blog.Config} */
var Conf = __import( "Astro.Blog.Config" );
/** @type {Astro.Blog.Components.SiteFile} */
var SiteFile = __import( "Astro.Blog.Components.SiteFile" );
/** @type {_AstConf_.SiteFile} */
var config = null;
var Block = function ( element )
{
if( !config ) throw new Error( "Config is not defined" );
var slide = Dand.glass( "slide", false, element )[0];
var delayCont = function( firstTime )
{
Cycle.delay(
function()
{
slide.getAttribute( "on" )
? slide.removeAttribute( "on" )
: slide.setAttribute( "on", 1 )
;
delayCont( false );
}
, firstTime
? Math.random()*10000
: ( 5500 + Math.random()*4500 )
);
};
delayCont( true );
var banner = Dand.glass( "banner", false, element )[0];
var bId = banner.getAttribute( "id" );
var placeBackground = function( obj )
{
/** @type {_AstJson_.SiteFile} */
var finfo = JSON.parse( obj );
/** @type {_AstJson_.SiteFile} */
var file = finfo.files[0];
var path = config.path.image.medium + file.hash + ".jpg";
banner.style.backgroundImage = "url(" + path + ")";
};
var placeError = function( obj )
{
throw new Error( obj );
};
var SFOs = Conf.get( "SFObjects" );
for( var i in SFOs )
{
var f = SFOs[i];
var id = f[0];
if( id == bId )
{
new SiteFile( id, f[1] ).loadInfo( placeBackground, placeError );
}
}
};
var init = function()
{
config = Conf.get( "SiteFile" );
var stage = Dand.glass( "block-entries" )[0];
var everyEntries = Dand.glass( "block", false, stage );
for( var i = 0; i < everyEntries.length; i ++ )
{
new Block( everyEntries[ i ] );
}
};
Bootstrap.regInit( init );
ns[ NS_EXPORT ]( EX_CLASS, "Block", Block );
})();

View File

@ -1,125 +0,0 @@
.it-shucks > a {
float: right;
}
.mega-entry {
border: 6px solid white;
background: white;
color: black;
position: relative;
margin: 0.5em;
display: block;
word-wrap: break-word;
box-shadow: 0 0 0 1px #D4D7C9;
max-width: 80%;
width: 600px;
}
.mega-entry:hover {
text-decoration: none;
}
.mega-entry .cCont img {
position: absolute;
margin-top: -25%;
max-width: 100%;
}
.mega-entry .cCont:after {
content: attr(data-content);
width: 100%;
height: 0;
top: 100%;
position: absolute;
color: white;
background: rgba(0, 0, 0, 0.65);
font-family: custom-serif;
padding: 0 0.5em;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: all 300ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
-moz-transition: all 300ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
-ms-transition: all 300ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
-o-transition: all 300ms cubic-bezier(0.215, 0.610, 0.355, 1.000);
transition: all 300ms cubic-bezier(0.215, 0.610, 0.355, 1.000); /* easeOutCubic */
-webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-moz-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-ms-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
-o-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); /* easeOutCubic */
}
.mega-entry .cCont:focus:after, .mega-entry .cCont:hover:after {
top: 50%;
height: 50%;
padding: 0.5em;
}
.mega-entry > #noteTag {
background: black;
}
.noteTag {
color: white;
padding: 0.2em;
overflow: hidden;
-moz-box-shadow: 0 2px 2px 0 black;
-webkit-box-shadow: 0 2px 2px 0 black;
box-shadow: 0 2px 2px 0 black;
position: absolute;
background: slategrey;
right: -6px;
top: 10px;
}
.mega-entry > .cCont {
position: relative;
color: white;
overflow: hidden;
height: 130px;
}
.mega-entry .cCont > h2 {
position: absolute;
font-family: custom-sans;
padding: 0 0.2em;
text-shadow: 2px 2px 8px black;
color: #DDD;
z-index: 1;
}
.cDate {
padding: 0.2em 0.5em;
font-size: 0.9em;
}
.cEOF {
height: 10px;
}
.Sun { background: #FF1D25; }
.Mon { background: #662D91; }
.Tue { background: #3FA9F5; }
.Wed { background: #7AC943; }
.Thu { background: #FF7BAC; }
.Fri { background: #603813; }
.Sat { background: #FF931E; }

View File

@ -1 +0,0 @@
// __namespace( "Astro.Blog.Components.Entry.Mega" );

View File

@ -1,83 +0,0 @@
.vsign {
position: relative;
}
.vertical-text {
float: right;
color: #777;
padding: 1em 0.5em;
margin: 0.5em 1em;
position: relative;
}
.vertical-text.block {
background-color: #FAFAFA;
}
.vertical-text > a.more {
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 0;
position: absolute;
border: 1px solid #D4D7C9;
}
.vertical-text > a.more:hover {
border-width: 2px;
border-color: purple;
cursor: pointer;
}
.vertical-text p
, .vertical-text a
, .vertical-text h1 , .vertical-text h2, .vertical-text h3
, .vertical-text h4, .vertical-text h5, .vertical-text h6 {
padding: 0.1em;
margin: 0;
width: 1em;
letter-spacing: 1em;
word-break: break-all;
word-wrap: break-word;
}
.vertical-text > .block {
overflow: hidden;
width: 4.5em;
}
.vertical-text > * {
display: inline-block;
float: right;
height: 390px;
}
.vertical-text > p {
height: 400px;
}
.vertical-text > p[data-flag="date"] {
color: #BBB;
}
.vertical-text.source > * {
height: auto;
}
.vertical-text.source {
height: 360px;
border: 0;
padding: 0;
visibility: hidden;
}

View File

@ -1,82 +0,0 @@
(function(){
var ns = __namespace( "Astro.Blog.Components.VerticalNote" );
/** @type {Dandelion} */
var Dand = __import( "Dandelion" );
/** @type {Dandelion.IDOMElement} */
var IDOMElement = __import( "Dandelion.IDOMElement" );
/** @type {Astro.Bootstrap} */
var Bootstrap = __import( "Astro.Bootstrap" );
/** @type {Astro.Blog.Config} */
var Config = __import( "Astro.Blog.Config" );
/** @type {Astro.utils.Date} */
var XDate = __import( "Astro.utils.Date" );
/** @param {Dandelion.IDOMElement} elem */
var VerticalNote = function( elem )
{
var relem = elem.element;
var maxHeight = relem.clientHeight;
// Break for elements that are too long
var formatted = Dand.wrapc( relem.className.replace( / *source */, " " ) );
elem.foreach( 1, function( child )
{
var ichild = IDOMElement( child );
switch( ichild.getDAttribute( "flag" ) )
{
case "date":
child.innerHTML = XDate.chinese( new Date( child.innerHTML ) );
break;
case "anchor":
case "image":
formatted.appendChild( child );
child.style.display = null;
return;
}
var content = child.innerHTML;
var len = content.length;
var blockh = Math.ceil( child.clientHeight / len );
var opLen = Math.floor( maxHeight / blockh );
var i = 0;
var doBreak = function( i )
{
var nLine = Dand.wrapne(
child.nodeName
, content.substr( opLen * i, opLen )
, ichild.aKeys()
);
formatted.appendChild( nLine );
if( elem.getDAttribute( "href" ) )
{
formatted.addEventListener(
"click"
, function( e ) {
window.location = this.loc;
}.bind({ loc: elem.getDAttribute( "href" ) })
);
}
len -= opLen;
};
for( var i = 0; opLen < len; i ++ ) doBreak( i );
if( 0 < len ) doBreak( i );
} );
relem.style.display = "none";
relem.parentNode.insertBefore( formatted, relem.nextSibling );
};
Bootstrap.regInit(function() {
Dand.glass( "vertical-text", true )
.forEach( function( e ) { new VerticalNote( e ); } );
});
})();

View File

@ -1,32 +1,34 @@
.v_wrapper {
width: 640px;
height: 390px;
position: relative;
text-align: center;
vertical-align: middle;
display: table-cell;
overflow: hidden;
}
.v_wrapper > div{
position: relative;
.v_wrapper[data-loaded="1"]:after {
display: none;
}
.v_wrapper[data-loaded="1"] img {
display: none;
}
.v_wrapper:after {
content: "\25BA";
position: absolute;
width: 100%;
height: 100%;
opacity: 0.6;
color: white;
background: black;
top: 0; left: 0;
font-size: 700%;
padding-top: 19%;
}
.v_wrapper > div:hover {
.v_wrapper:hover:after {
opacity: 0.2;
}
.v_wrapper > div > div {
width: 0;
height: 0;
border-top: 3.5em solid transparent;
border-bottom: 3.5em solid transparent;
border-left: 5em solid white;
position: absolute;
left: 50%;
top: 50%;
margin-top: -3.5em;
margin-left: -1.8em;
}

View File

@ -14,7 +14,7 @@
var getData = __import( "System.Net.getData" );
var v_current = { player: false, mask: false, stage: false, listener: false };
var v_current = { player: false, stage: false, listener: false };
var init = function()
{
@ -49,12 +49,13 @@
if( v_current.stage )
{
v_current.stage.removeChild( v_current.player );
v_current.stage.appendChild( v_current.mask );
v_current.stage.onclick = v_current.listener;
v_current.stage.removeAttribute( "data-loaded" );
}
// Remove mask
( v_current.stage = vtag ).removeChild( v_current.mask = vtag.firstChild );
IDOMElement( v_current.stage = vtag )
.setAttribute( "data-loaded", 1 );
v_current.player = Dand.wrapna(
"iframe"

View File

@ -36,6 +36,8 @@ div#header, div#mbody, div#contact, div#horizon {
animation-name: aspin;
}
.err { color: orangered; }
.cw { animation-name: spin; }
.mbody {

View File

@ -1,5 +1,6 @@
.ban-btn { color: red; }
.subs-type { margin: 1em; }
.subs-addr { color: grey; }
.subs-item {
position: relative;

View File

@ -0,0 +1,5 @@
(function(){
var ns = __namespace( "Dandelion.StaticRes" );
ns[ NS_EXPORT ]( EX_READONLY_GETTER , "BLANK_IMG", function() { return "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="; } );
})();

View File

@ -26,18 +26,22 @@ spec:
mountPath: "/app/cache"
containers:
- name: web
image: registry.k8s.astropenguin.net/astrojs:2022.04.05.06
image: registry.k8s.astropenguin.net/astrojs:2022.04.09.03
securityContext:
runAsGroup: 1001
runAsNonRoot: true
runAsUser: 1001
env:
- name: DEBUG
value: "0"
- name: FLASK_DEBUG
value: "0"
- name: FLASK_ENV
value: "production"
- name: RUN_MODE
value: "web"
- name: REDIS_CONN
value: "redis://:@localhost:6379/9"
volumeMounts:
- name: cache
mountPath: "/app/cache"
@ -50,7 +54,7 @@ spec:
- name: redis
image: redis:6.0.8-alpine
- name: compiler
image: registry.k8s.astropenguin.net/astrojs:2022.04.05.06
image: registry.k8s.astropenguin.net/astrojs:2022.04.09.03
securityContext:
runAsGroup: 1001
runAsNonRoot: true
@ -58,6 +62,10 @@ spec:
env:
- name: RUN_MODE
value: "tasks"
- name: DEBUG
value: "0"
- name: REDIS_CONN
value: "redis://:@localhost:6379/9"
volumeMounts:
- name: cache
mountPath: "/app/cache"