No announcement yet.

What's Going On


There are currently 20 users online. 0 members and 20 guests.

Most users ever online was 1,083 at 04:38 AM on 2016-11-18.

Refactoring the Evora level editor.

  • Filter
  • Time
  • Show
Clear All
new posts

  • Refactoring the Evora level editor.

    So yeah, I was thinking: damnit it would be so easy to use my scripting knowledge and just make websites as a freelancer.

    I've just untangled the last version of it I left and now I'm thinking ok, that thing is a bear in a mammoth's body. But fascinating, truly fascinating. I remember how much I like programming. I'll keep a journal here because it motivates me.

    TODO List:

    Allow initialization of elements as a percentage of the window's size instead of a fixed width and height
    Support text wrapping
    Tiled textures
    Render lines
    Text layer management
    Support paralax
    Windows scaling switch -> horizontal, vertical, both

    Make sure websites are readable to crawlers
    Support high density displays
    Block users from typing in the console?
    Add a "capture" method that will output a screenshot of what's displayed on the browser and open an mspaint-like editor for clients to annotate the changes to make and sends it to me.
    People can inject script through text boxes (forms) -> filter that out
    Attached Files
    Last edited by 2ndwolf; 2017-08-14, 02:28 PM.
    Ryuken likes this.
  • #2

    June 19th -
    Removed some files and renamed others so they sound more appropriate for elements of a website.
    Considering to use include.js eventually.
    Relearning emacs, cool tool. Not too hard to get back to.

    June 20th -
    The files were restructured, the project doesn't load for now.
    Helped someone move today. Got to sleep.
    Thanks tricxta.

    June 21st -
    I'm actually using webGL for the website, the editor was full screen, I'm debating whether I should keep it full screen (taking the whole browser's window, to be clear) and make a custom scrollbar or not.
    I had time for thinking at work today and I considered maybe keeping tile editing as a functionality and allow people to play around with it, like a website maker but using tiles. Maybe I will, in order to show off, as the website I've had in mind for a while now would be, in its final form, exploratory. It may never happen but I've been thinking about making websites since I've learned back when I was like 14. I had no idea what I did could have been lucrative. Now it's a different story but in 15 years, I've had a few ideas.
    Closing the day:
    I had a backslash somewhere instead of a slash, that's been corrected. Now I'm looking at my code and it works, but responsibilities aren't right. It shows that I meant some things to be temporary and I wish I'd have finished putting things together before I stopped last time. Now I have to get familiar with the code again. I've stranded from that and procrastinated tonight. Sleepy now. Hopefully tomorrow will be productive. Afterwards, I'm leaving for the week-end.

    June 22nd -
    Trying to figure out that layer thing, I think there's a sorting function embedded in JS. Might use that and simple layer numbers. I also could stack images in the right order right away? No, it sounds like too much trouble.
    Moving a block of code sets off weird behavior where it seems only one pixel of the loaded image is repeated at the size that was given. (a 16x16 image will replicate 16x16 of the same source pixel).

    13?:42 - I've isolated the problem... I don't know the words to explain it though. It happens when the block of code (which iterates the list of textures and calls a function that readies them) is in the same file as, I believe, which that calls the constructor that instantiates a new image to display.

    14:00 - No, in fact it also happens if I put the chunk of code in a separate new file that loads prior to the last one but it doesn't happen if I put it in cButton.js, which is normally what loads prior to the last file.

    June 26th -
    Vacation is over, I'm back from work and lost all the time I had to loose on Facebook... it's 22h35 right now. I should go to sleep. Diminished my allowed Facebook time on my browser. I did do some self actualisation work. Not all the evening was lost.

    June 27th -
    It's been a hard day. It's been hard to keep doing efforts. I did go back to lay in bed a few times, I've walked to some place to have a 15 minutes discussion about how filling a paper needs time (probably 15 minutes) and that that time wasn't while I was there. Because of that I might keep the free time I have now (I only work 2.5 days a week), it's not that much of a bad thing. 4h15m went into my webpage project. I've finally decided on the structure of the project (how and which modules load), although I still don't have anything for page elements, the "engine" is ok. However, I'm really thinking of going back to Canvas 2D, it'd make much more sense. That still needs to be decided. I've changed from eMacs today to Visual Studio Code. VSC is alright, I did get a better chance at understanding my own code with it, I think I'll keep it. What I did the most, besides trying to figure out a loading system (which is partly why I'm considering Canvas 2D) has been cleanup. I've moved stuff around and it's now way easier to read, understand and manage. Infinite loops are deadly.

    June 28th -
    Refactoring the tile editor might not have been the best idea. It's 19h50 and I'm back to working on this.

    20h38 - I have designed the main page. After looking around a little, I found out it is inspired by imgur's.

    I am trying to make the text selectable. I found out why it isn't just now (the canvas displays over it) and giving them proper z-indexes doesn't work either. Working on that.
    Woohoo! If everything was so easy to fix!

    The pixel problem is a tough one, I have isolated that it happens when the images are loaded too soon so I am reading up on creating events to listen to that would trigger solely once the required texture is loaded so I can isolate further.

    June 29th -
    Pixel problem solved. I simply wasn't calling my render function the right way. I wonder how I came to call it by itself instead of with "requestAnimationFrame" as required. The guru's webpage holds the answers.

    Integrated management of strings as HTML. I was integrating something to manage window resizes and scrolling that will keep the elements in the right position relative to their environment when my time ran out. I've decided that I should do 10h per week to keep me from getting sick of it and making sure I'll put at least some time on my project every week. I still want to work on it but as it became clear today that the 9 to 5, 5 days a week life was not an option for me I'm deciding on means to really make sure this project becomes a reality.

    Next week starts Sunday.

    July 2nd -
    Decided the images and text would be treated separately. For now, it's pointless to do so, I could just use Canvas 2D but using webGL right away will pay in the future. I'd enjoy being one of the few who actually can make websites with a 3D feel.

    Started writing the alignment function (corner tl, center, absolute position, inner relative, outer relative...). Figuring out how to align relatively to other elements, such as text to be displayed 15 px under an image with left alignment. Thinking of managing space before and after for paragraphs and manage wrapping. I'm entirely avoiding making things through a CSS file, the way I envision it my JS will be much more flexible and powerful. Plus, I know JS. All I remember of CSS is that 10 years ago it sucked hard the moment when you tried to do anything interesting it could do.

    In 2 hours I wrote something like 35 lines. Which was even straightforward code. Pretty slow.

    July 3rd -
    Still writing about alignment, how things will be placed on screen and making elements placed relative to each other. After some writing, I realized I could make my elements function much more versatile than first thought. Which enables for lots more ease in making text placed relative to an image for example. Added to that, I'll be able to make images move with the same function as I make my text move.

    Cool, when I decided images were going to use the same prototype as text, I moved its constructor. Now I can see that I'm still not making the page load properly. I've succeeded getting to the point where I at least have the whole script load before displaying everything but all I get is blue, so the texture isn't loaded. Even its eventListener won't do crap. I shall stop working as it's already been 4 hours today.

    July 4th -
    The pixel problem is the worst thing ever. I've just spent more than an hour on it with no results aside of confusing myself out of understanding my own code. I've been telling myself I had to clean it but there's nothing to remove. I'm confused. It appears to be impossible to call functions synchronously one after the other as through testing it seems the first function to call the console is the last that is supposed to run. I've tried callbacks... one thing I haven't tried yet.

    4 hours later, I've posted a question on stackoverflow. No one will answer, the code is way too long. I've succeeded in determining whether if is was because of loading, it's not.

    Decided to revert back to an old version but it doesn't display any images. Hopefully it'll be worth it.

    After a LOT of staring, I've decided to go block by block and decide if the blocks were likely to contain an error. It made me remember that I renamed some variable shortly before I copied that version. Stupidly, I didn't rename it across the project so now it's corrected and I've learned: leave old versions that WORK. (none did). With that done, I've been way beyond my 10 hours limit. That was time lost though so I don't think I will count it as time I worked.

    July 5th -
    Dungeon Defenders II stole my time :O

    July 6th -
    I have finally got rid of the code that made a 64x64 tiled "level" because I'm now integrating alignments for images. The engine is taking up 5 js files now. Those are the files I will intensively work on for now.

    Aside from a few bugs from misnamed variables, everything went well. I'm getting back programming into my mind so bugs are easier to find. Especially now that I pretty much have my whole code back in my mind. Now the images align to the window whether it is top right or bottom left. Just like text. I'm integrating relative positioning right now (such as text appearing centered under an image) and am giving thought on how to make nested relatively positioned things (such as a button with text inside that would be anchored to the bottom center of an image). Slow progress is still progress, I gave it 3 hours today.

    July 7th -
    I have finally written that 150 lines long alignment method. It is not complete, now I'm working on nested elements.

    15:53 - I'm done for this week, I've went a little over the limit. There's something I didn't think of before making my alignment method: what about groups of elements?! First thing that came up as I was going to put my website mock up on the screen. Positive thing is that nesting worked right away without any modification.

    July 9th -
    Reading about the waterfall approach inspired me to put some more structure to my code. After writing and sketching about it, it became clearer what's important. The primary elements (which I've named DomElements) prototype needs to be rock solid because I now notice it pretty much is the heart of my project. If it is, no bugs will ensue (scrolling lag is what worries me most). Right now, I'm trying to make some prototype inherit from another, it makes no sense that it doesn't work so I figured I should take a break.

    Actually questioning myself on wallpapers, if they were to be tiled it seems to me scrolling could be really laggy. The right choice might be to just html it. Text, especially fonts, will require some research.

    Also made some minor optimization to my code, renaming some things, added a second name variable to the text element so it is simpler to lookup than with its informative mouse over text. Oh wait... I should have done that to images, not text. lol

    Had to write a workaround to get the page to load the fonts before calling it done. It just placed text according to the default font's size. I'm sure it could be optimized but, conceptually it works so that's enough for now.
    PHP Code:
      function render(time) {
    //lookup canvas size
        //extrapolation here, I'm not using it but I should and shall
    var now time 0.001;
    deltaTime Math.min(0.1now then);
    then now;


    //IF something's active, keep rendering, otherwise, just don't
    if (webActive 0) {

    ////The workaround

    if (!fontsLoaded) {
    let loadeds 0;
          for (
    this.0this.textElements.lengththis.i++) {
            if (
    textElements[i] == testTextElements[i]) {
          if (
    loadeds == 0) {
    fontsLoaded == true;

    I realize now it will be a problem in the cases where the font doesn't need to be downloaded. Imma sleep on that.

    July 10th or 11th?
    Apparently my workaround works no matter what. It seems all the text is loaded at first with the default font then the css enters and it changes dynamically (without need for a refresh or something like that) (No, my code does a last refresh after fontsLoaded is set to true, it doesn't work all the time if it is not the case). Tests with text changing will be made. On a mouse click or something to see if it happens as dynamically. Maybe make fonts change after an action since it looks possible. Not much work put into it today. Facebook stole my time, even with a 30 minutes limit which somehow still extends to hours. Today, a bit of code was added in case the default font is used. It will never be, it looks like shit. Code will be more solid, that's all.
    if (textElements[i] == testTextElements[i] && !testTextElements[i].id.split("_")[0] == "def")
    Maybe fontsLoaded will need to be set to false when a font changes, this chunk of code will need a review if it is the case.

    July 12th -
    Today happened at my brother's. He knows some PHP, mySQL and about databases. He taught me some things he knows which greatly sped up the process of creating a working prototype that uses both php's GET (ajax..? I name it ajax), and the SELECT and INSERT mySQL commands. The goal is to make it possible to add or change content, to the webpages I will make, through forms. Both forms and retrieval have been prototyped today, it's been a very productive day: pride!

    Noting for later to eventually address that deleting entries makes holes (skipping numbers) in my database. It's nothing bad but imagine a drop down menu that has 5 items; ... Oh, never mind. That's fixed already.

    July 12th - revisited (finally decided to watch that video some random guy mentioned, I don't even remember where exactly (stackoverflow? quora?))
    • My code has constructors with something like 12 parameters. It's not really practical and that video says: use object literals.
      (skip to 39:08)
    • Not sure how it's done. He mentions how, but his speech sounds like "blah blah gibberish". Doing some researches right now over there:
      Looks like a python dictionary.
      Not sure how my object would do prototypal inheritance as it is declared like
      var myObject = { varname : value };
      But the speaker says he doesn't use js prototypes so the solution might be elsewhere.
    • It looks like a first grand rewriting is coming up. Sounds necessary, as "this" is claimed to create security breaches (it's everywhere on my project right now) and both (and counting) my main objects have 12 parameters and counting (so they really could use that object literal trick).
      It's actually exciting.

    July 13th -
    Reading about javascript.
    • People can inject scripts in textboxes by writing something like <script src="". My websites will need to detect those.
    • No evidence that this creates security breaches. I will watch that part of the video again later, must happen in specific bad practice situations.
    • I understand now that this congressman does not believe in concise code. So I would need to enter every variable name paired with their values at every moment I declare an element... which will happen often. There must be a third way, I'll investigate that. Not using prototypes looks very impractical, more investigation will happen.

    July 16th -
    Back to coding!
    • I've made the change away from using "this". It proven much easier than expected and I didn't have to rewrite that much, mostly copy and paste. Testing methods I wrote was very straightforward and required a few adjustments but nothing too big.
    • Ok, so now the grouping is being implemented, which might not make sense ever (It's been hard to figure out and think about. Not sure yet if it will be useful). Anyhow, for now drop Down Menus might use it. DDMs will also require work on the clickables feature. So that's multiple interdependent features that will need coding. Leaving this here for today. Hopefully my notes will be useful.

    July 17th -
    Thanks for the feedback.
    • Added a few try/catch to my code. The errors will only display in debug mode. More solidity, easier to figure out what goes wrong. As my code grows larger, about a thousand lines now, those try/catch blocks will be very helpful. I think I should add a finally that would warn to contact.. me I guess, or whatever. Make it do something graceful.
    • Separated the Drop Down Menu thing from the rest. Keeping it easy to customize is a priority so it will get larger with time. There's the obvious trade-off of making the code uselessly big if only one feature of such an element is used but nothing's keeping me from just cutting away parts I don't use once something becomes final.

    July 18th -
    Container > Group (even if they're the same idea)
    • Do not forget to: allow images to scale with the browser window's size, wrap text, figure out how to make filled polygons (rectangles), figure out wallpapers. (especially of the tiled type, it sounds like it could be a burden for the computer while the HTML way does zero lag.)
    • Cleaning up created bugs, aptly naming variables right away proves to be a required skill for any programmer. Hopefully my code is readable and consistent enough. There wasn't enough planning on my variables and a lot of things could have used the same variable name, trying not to make my "element" variables confusing. Either Gscript was easier to manage or I'm rusty. Luckily, I've read about "let" (instead of var), which limits the scope of a variable to the block where it is instantiated, before getting too far in my project.
    • Working on "containers". Containers are an object that will be created to hold properties such as the topmost y coordinate and leftmost x coordinate of the elements that are associated with it. Once grouped, moving either element (or the container) will make all the rest move around (should it? [no it shouldn't]). It inherits from DomElement, which is the basis of every "element"/building blocks (text, images, every group [drop down menu, button, website preview block, scrollbar). Container overrides the DomElements's move method.
      • Will require an "override"(?) because there will be groups in groups.
      • Stuff will need to check if there is a parent container... and manage when associated elements will move together or not (example: the scrollbar's arrows will stay static but the bar in the middle won't, it needs to move independently. However, when the client will change the view for the mobile version, the scrollbar should move towards the center as the preview window gets narrower. It is not a required feature but a "nice to have", because I can.
      • Giving it more thought, the container could kind of work like "window", but inside the window. I realize that is the "area" prototype I was planning to make for the Evora tile editor.
    • Ok ok, got other stuff to do. Good night.

    July 20th -
    Rabbit hole
    • In order to stand out, I'm using webGL. I need to render a rectangle which is tinted white and transparent but I don't understand much of webGL and the examples I find has different initialisation code to the one I'm using. Pretty sure I would break it if started trying to patch code together. Also, the whole thing is very hard to learn. So I chose to learn it starting with GLSL with this book I found
      There's also a library I've just found which actually would have fit my needs back when I was looking for one.
      It's not maintained anymore though.

    July 25th -
    • Reading a lot on webGL and I finally start to understand some of the tougher parts.
    • After giving it more thought, and it being confirmed. It will be required for my websites to be readable to crawlers in order to appear in search engines. There are some techniques coming up to mind.
      • Display a text only version without formatting for crawlers, that is if they can be detected.
      • That also brings up the fact that using only one interactive page to display all the content is impractical. People would click the link then have to browse to find the content they were looking for, that would be bad.
      • The solution might be to build an internal search engine that would be what is referenced on search engines and when visited it displays what's relevant, or a list of what's relevant. to the user (if I ever make a website big enough or someone's willing to pay for it).

    July 27th -
    A quick note
    • Writing to note that it will be required for me to make images in different resolutions because of retina/high density displays. If I am to try to impress with visual skills, that is really important.
    • Search engines treat the H1 like a title. It defines the page's topic as far as google (&co.) is concerned.

    July 30th -
    Confusing variables phase

    August 2nd -
    I think I understand
    • Learned enough WebGL to integrate tinted rectangles. Not sure how I will layer text to appear under other elements. Haven't done lines yet either. Support tiling and images (that scroll differently from the rest of the page, in parallax or fixed to the background).
    • Block users from typing into the console.
    • Done prototyping the rectangle thing. I did a lot of useless back and forth and dumbed it down because of what turned out to be a misnamed variable. I'll have to "smarten" it back up sometime in the future to add rotation and gradient capabilities.

    August 7th -
    I'm back
    • It's nice how keeping things modular makes it easy to just modify one part and plug it in the rest and everything works. I've been kind of dubious that my new rectangle thing would work but it does. Now I'm working on grouping. I've just spent half an hour figuring out max((rect1.x+rect1.width),(rect2.x+rect2.width)) was what I was looking for. Starting with the most convoluted methods to get those coordinates.

    August 9th -
    • I've done some cleaning up that I now see was important to do and it broke that workaround I made to wait for the fonts to load before calling it done. I have no idea why it worked because I now know that making an array equal another array does not copy the array or objects in the array but sets up a pointer. Once that has been done, I've stumbled upon some kind of precision problem where
     widths[0] = thing[0].txt.offsetWidth;
    thing[0].width = thing[0].txt.offsetWidth;
    widths[0] == thing[0].width;
    //-> false ???
    widths[0] == thing[0].txt.offsetWidth;
    //-> true
    • I'm using the latter to confirm equality and have tried Math.floor/Math.round/Math.ceil, they don't do anything to help. If anyone has a clue, I'd like to understand this one.

    August 11th -
    • The groups. I've noticed that since all groupings are placed without reference a grouping that is, for example, centered will not stay centered after resizing the window. Easy task! I thought I'd just make the group's containers the reference to what's grouped and voil?. Unfortunately, it is not that easy. It is the first limitation I end up with on my program. (It has roughly 1500 lines of code.) Right now I'm in the process of deciding whether I should strip out all relative positioning once I group in favor of having only the container to have such a property OR keeping all relative positioning and keeping the container just being a box and handle to move everything that's in it.

      I have to take into account that I have two different coordinate properties for every element: the real positioning in the window (x and y)[that are calculated based on initX and initY and their relative positioning] and their "relativity modifier" (initX and initY). (So a square in the center could be slightly decentered by having a non zero initX and/or initY value(s).) This in particular I think is alright but I'm running into problems now that I want the container to shape itself according to what's in it.
      • First, I need initX and initY of what's contained to be modified when the container moves and not x and y because these are the result of calculations BASED on initX and initY.
      • I need the container to resize itself based on the final x and y of the elements it contains. It will need to update every time something in it moves -> listener? add it to the overriden move method + oncanvasresize?
      • This helped me think.

    August 12th -
    • I have just noticed that my polygons do not have any transparency. It will require me to do some more information digging about webGL as that is an important feature.
    • The groups are fixed. It turned out to be much more simple and elegant to have what is inside stay relative to what they were relative to in the beginning. No limitation met.
    • It's interesting to note that the official openGL documentation says:
      If alpha testing is insufficient for your needs, if you need real translucency via Blending, then a major problem arises.
    • Got very lucky and fell on the right pages quite fast.. whew.
    All that was required was to call these right after the shaders are initialized
    gl.enable( gl.BLEND );
    gl.blendEquation( gl.FUNC_ADD );
    //Do not assume the values are premultiplied ( that if alpha = 0 then rgb should = 0)
    gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
    • As it is getting closer to being a real website I've started to think about scrolling and how I will construct those pages.
      • I am missing an horizontal alignment option
      • Window aligned things will not scroll and absolute placed object will.
      • The scrollbar will need to output or inform in some way the whole page of the direction and the pixel number it scrolled.
      • Figure out non custom and custom scrollbar implementations.

    August 13th -
    Nice ideas today
    • Add a "capture" method that will output a screenshot of what's displayed on the browser and open an mspaint-like editor for clients to annotate the changes to make and sends it to me.
    • Have been adding scaling to window and the whole scaling functionality while I'm at it. I notice polygons are not managed internally as images are, some code should go in there that I have put specifically for them in "DOMElements". Also considering to add a "create()" function to be called by every element as methods are piling up and it is becoming less obvious what goes where.

    August 14th -
    Smartened up the rectangles
    • So I needed to bring up the rectangles' render code because of how they rendered when they were related to something that scaled to the window's size. The rectangles would be off by a few pixels when the window happened to be drastically resized, but not the images. Because they are rendered differently, I've changed the rectangles to render more like the images: going through a matrix. For some reason, now the rectangles display as bigger when "rotated" -> even when at 0 radian. At least now the option to rotate should be available with a (less) tweaking..?
    • I realize I need to get better at technical talk for this journal to be better.
    Attached Files
    Last edited by 2ndwolf; 2017-08-15, 03:40 AM.


    • #3

      SO... when do we get some journal entries? You can't just tease us like this, it's not fair.
      2ndwolf, Dylan and 2 others like this.


      • #4

        Here you go, thanks for caring


        • #5

          Originally posted by 2ndwolf View Post
          Here you go, thanks for caring
          No problem but I think you've mistaken the term change-log for journal and by that I mean, I wouldn't mind seeing a more fleshed out depiction of your thoughts. Examples being potential ideas and directions in which to take the project with consideration to various trade-offs and such.


          • #6

            Originally posted by tricxta View Post

            No problem but I think you've mistaken the term change-log for journal and by that I mean, I wouldn't mind seeing a more fleshed out depiction of your thoughts. Examples being potential ideas and directions in which to take the project with consideration to various trade-offs and such.
            Don't believe him, 2ndwolf. He just wants to understand how your mind works so he can hack YOU.

            In all seriousness, this is really interesting, and I second the journal.


            • #7

              Originally posted by tricxta View Post

              No problem but I think you've mistaken the term change-log for journal and by that I mean, I wouldn't mind seeing a more fleshed out depiction of your thoughts. Examples being potential ideas and directions in which to take the project with consideration to various trade-offs and such.
              That is stuff I think about during the day, I'll add about that. Tell me if I'm doing it wrong.
              Last edited by 2ndwolf; 2017-06-21, 10:49 PM.
              Dylan and tricxta like this.


              • #8

                Originally posted by 2ndwolf View Post

                That is stuff I think about during the day, I'll add about that. Tell me if I'm doing it wrong.
                Seems more like a journal now. Good stuff!


                • #9

                  Some sketch:
                  Chicken likes this.


                  • #10

                    Originally posted by LoakeyRonso
                    oh and the reason graal reborn is dead isn't what ever reason you want to blame it on , it's you . you publicly humiliate anyone who shows up , call them derogatory word's and treat them like shit . you close any thread you don't have any interest in even if other people do . slam their work without consideration for the person themself . how it is anyone can even consider you a decent human being is beyond me .


                    • #11

                      Now I'm curious what chicken had to say.


                      • #12

                        Was going to say something along the lines of it being a mix between a design mockup and a word association game.


                        • #13

                          Originally posted by 2ndwolf View Post
                          Some sketch
                          So the editor is still in the hello world phase and you plan to turn it around if I interpret this correctly?


                          • #14

                            I don't know how far into production the hello world phase goes but the editor had buttons that reacted to the mouse.
                            I've removed them in favor of making a more flexible buttons module and some more work happened around that.
                            For now, I guess we can say the website is in the hello world phase since it displays test images and test text. I wouldn't call it editor anymore because everything has been renamed, some things removed and others added.

                            the sketch shows what the main page will look like and a an interface that will allow access to my portfolio in a way that should make it feel abundant, diversified and flexible. Also, no bs, I don't like portfolio websites so this is an effort at making something appealing. I want the user to feel like they are shopping for a Web page. They will be able to choose a theme that I've already made or something else entirely. I aim for my JS to be flexible enough to minimize the the work of making a new website as much as possible.

                            btw, what was "to turn it around" I'm not sure I understand that entirely.
                            Last edited by 2ndwolf; 2017-06-30, 07:43 PM.


                            • #15

                              That's where I left. As can be seen it's not really fleshed out and the prototyping ended a short time ago.
                              I'm unsure of how resizeAndAlign will work. Now that I'm looking at it, it might not be optimal to write one solely for text because images will need it too.
                              Maybe I'll make images elements. But I also could externalize resizeAndAlign and make it run through images too.
                              I should make images elements.