DEV Community

loading...
Fivnex Developer Group

MEML: Three Market Issues, Our Plans To Fix Them

kailyons profile image KaiLikesLinux ・3 min read

MEML is Fivnex's markup language. We build MEML to replace HTML in many areas, but there will be issues to deal with in market adoption. This article has the aim to show the market adoption issues, and how we plan to overcome them.

Market Issue 1: CSS

The most immediate issue with MEML and its success is CSS. The reason CSS is such an issue is the lack of in-file and inline support for CSS. We do have a solution to this.

The fix for in-file CSS is to add a (style) tag, which will permit normal usage of the <style> tag.

The inline CSS issue will use the same (style) tag but will have a separate functionality. For example:

fix-css-issue.meml

(head
    (title "CSS fix for MEML"))
(body
    (p
        (style "font-size: 18.3px")
        "Styled p tag in MEML"))

What this will do is in the <p> tag, the information style="font-size: 18.3px" will be added to create

<p style="font-size: 18.3px">Styled p tag in MEML</p>

Now many will question the idea as to why this is better than HTML/CSS. The simple answer is readability, for this case especially. While the HTML variant is easily read, I bet you would rather read and write the MEML version, for the reason that the MEML version gives you options. Let's take another look at the MEML (p) tag.

(p
        (style "font-size: 18.3px")
        "Styled p tag in MEML")

Here is another option:

(p "Styled p tag in MEML"
        (style "font-size: 18.3px"))

Another:

(p "Styled p tag in MEML" (style "font-size: 18.3px"))

Another:

(p (style "font-size: 18.3px") "Styled p tag in MEML")

The final example for now:

(p (style "font-size: 18.3px")
    "Styled p tag in MEML")

In HTML, you only have two options at best.

<p style="font-size: 18.3px">
    Styled p tag in MEML
</p>

Other option:

<p style="font-size: 18.3px">Styled p tag in MEML</p>

Having code styling options also will help.

Now, how will this work with the <div> tag? Current div tag design in MEML is

div.meml

(div
    (p "Text in div"))

Our fix is not fun, and surely not one we WANT to implement, but the (style) tag, if put within a tag like (div) will ALWAYS be style="" types. If put in the (body), (head) or even outside of both will be the ones that allow normal CSS. How?

(style "
    .h1{
         color: white;
    }
")

It isn't pretty, but it works. It will also make the process of building the tag easier.

Market Issue 2: Pug

Obviously a competing software will be an issue for the market. The thing with Pug is that competition will not be too much of an issue. We believe Pug serves a market and serves it well. Pug also is very functionally different from HTML, something that MEML isn't going for.

Market Issue 3: HTML itself

While we offer better syntax and even new tags for web developers to use, that will not be enough to convince people to pick MEML over HTML. We do have possible solutions in discussion.

MEML Variables:

Having variables in MEML would be an easy way to make MEML better, without creating an issue in our philosophy on not being too functionally different from HTML. Unlike Pug which adds if and else, MEML's variables will be one of few functional differences.

An idea for a MEML variable is:

(variable name="John")

(p "I work with $name! for this thing")

Variables are on the table but not yet decided on.

MEScript

Think of JavaScript, but LISP. A common thing we do in JavaScript is change document items by ID or Class.

document.getElementById("myID").innerHTML = "Hello, World."

In a MEScript concept:

(byId "myID"
    (innerHTML "Hello, World.")

Nothing else is yet decided, but we are willing to work on it further if the idea seems feasible.

Conclusion

Not much else is needed to be said. We have ideas, and we have plans. We are happy to work on the idea further.

Discussion

pic
Editor guide