A QB/FB Markup Language and Browser

Discuss whatever you want here--both QB and non-QB related. Anything from the DEF INT command to the meaning of life!

Moderators: Pete, Mods

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

A QB/FB Markup Language and Browser

Post by Pharoah » Sat Apr 26, 2008 9:29 pm

Recently I've been working on a project to develop an easy to parse markup language that would be suitable for a textmode Qbasic browser. My reasoning was that, with HTML, millions of pages will render, all of them incorrectly. With a new language, an admittedly smaller group of pages will be available, but they will render perfectly.

Also, I'm developing a hypertext help system for use in your programs.

What I've come up with is called QML, here's a sample:

Code: Select all

#1
$Color 1
|
#2
$Color 2
|
#
$Color 7
|
#9
_A Bright Blue Link>http://example.com
I wrote a browser for QML called Qbrowse, which you can download here:
http://pharoah.xetaspace.net/qbrowse/Qbrowse-0,5.zip

More features are in development, to comply with the new QML 1.1 spec.

Anyway QML caught the interest of Brandon Cornell and he has now written a browser for Linux and Windows in FreeBASIC. You can get his browser CQML here:
http://brandoncornell.com/CQML/CQML_Linux.tar.gz -For Linux, requires wget
http://brandoncornell.com/CQML/CQML_WIndows.zip -For Windows, includes wget

Right now Quickspace (what I'm calling the QML net) could use a few more pages. There's a lot you can do with it already (for example I've written an RSS reader and a search engine), but we could use more community participation and a bunch more .qml pages. If anyone's interested, it would be great to see some new web designs.

The great thing about QML is that it supports ALL the IBM extended characters like only a textmode browser can, which really opens the door for a lot of ASCII art.

So, what are your thoughts?

MystikShadows
Veteran
Posts: 703
Joined: Sun Nov 14, 2004 7:36 am
Contact:

Post by MystikShadows » Tue Apr 29, 2008 3:18 pm

This is looking pretty good so far. Great work to the both of you.
When God created light, so too was born, the first Shadow!

MystikShadows

Need hosting? http://www.jc-hosting.net

Interested in Text & ASCII development? Look no further!
http://www.ascii-world.com

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Tue Apr 29, 2008 6:00 pm

Glad you liked it... Right now I'm developing a new version that will include support for forms and other interactive elements, with the ultimate goal of creating a forum and/or CMS. I'm keeping graphics out of the tag set because I like the ASCII characters and don't want the art of drawing with them to die :).

MystikShadows
Veteran
Posts: 703
Joined: Sun Nov 14, 2004 7:36 am
Contact:

Post by MystikShadows » Tue Apr 29, 2008 6:22 pm

lol amen to that man ;-).

When you consider your project advanced enough, I'd like to add that to ASCII-World of it's ok with you. This looks like a "keeper" to me. ;-).
When God created light, so too was born, the first Shadow!

MystikShadows

Need hosting? http://www.jc-hosting.net

Interested in Text & ASCII development? Look no further!
http://www.ascii-world.com

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Wed Apr 30, 2008 12:36 pm

I hope you're right. The beauty of a browser app is that they all draw their data from a central location, so multiple browsers can spring up to view the same page. That being said, cursor only has found 7 pages so far, all by either me or Brandon. At this point, the more pages that we can make in QML the better, so that it will become a community of its own separate from the HTML web.

I'm making slow progress with the next Qbrowse (better interface planned), and Brandon seems to have hit a wall with CQML so I can't say when the next version of anything will be out. I'm shooting for about a week or 2 though.

User avatar
Brandon
Coder
Posts: 47
Joined: Sat Nov 19, 2005 9:24 pm
Location: NY
Contact:

Post by Brandon » Wed Apr 30, 2008 3:14 pm

For those interested: I have hit a brick wall but I think that within a week or 2 I will work it out and add forms for version 2.0 then 2.1 to 2.9 will be bug fixes and 3.0 will be fully compatible with QML Spec 1.2 (or whatever the latest is)

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Mon May 05, 2008 10:29 am

Just thought I'd keep everyone updated:

The current specification supports about 20 different tags, half of which aren't yet implememted in any QML reader because the spec was written after Qbrowse and CQML came out. I'm working on a nicely-interfaced fully spec compliant, linux and windows compatible version right now that will include:

Simple GET form support

Hspan support (an Hspan is like a single table row, made up or Hpanes. They can be nested and are used to create columns)

Full background color support

File download tag support

(Optional) Auto-refresh tag support

"Point-and-click" interface

Center character code, and default F and B tags

and more.

I'm writing the browser in FreeBasic for this version, but I'll try to keep PLAY string support anyway if possible using a library.

If anyone would be willing to write some pages in QML and support the Qmunity (shameless plug), that would be awesome. It's not very hard to do, and will show up great in the new browser.


Current QML Reader Recommendation:
---------------------------------------------

CQML 1.1 is more compliant and handles background color and the download tag. Also supports Linux. Has trouble displaying pages that are longer than the console will scroll in Windows.

Qbrowse is older, it has a much nicer and more complete interface and wraps text better. Has trouble with long URLs for no good reason.

Neither support forms yet.

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Mon May 12, 2008 5:55 am

The next version of CQML is out, right now it's the recommended QML reader. It supports forms, which means Quickspace is now interactive, although there are a few problems. The download link is the same as for the earlier CQML versions posted above, but it's the latest version.

MystikShadows
Veteran
Posts: 703
Joined: Sun Nov 14, 2004 7:36 am
Contact:

Post by MystikShadows » Mon May 12, 2008 7:32 am

Great work Pharaoh.

I'm really enjoying following the progress of your project. And I can't wait to see Brandon's next release as well. :-)

Very interesting set of projects. :-)
When God created light, so too was born, the first Shadow!

MystikShadows

Need hosting? http://www.jc-hosting.net

Interested in Text & ASCII development? Look no further!
http://www.ascii-world.com

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Mon May 12, 2008 3:40 pm

CQML is Brandon's QML client... It's been progressing quite a bit faster than mine. There are a couple bug fixes though that need to be out (CQML doesn't URL encode), but they should be done by Friday at the latest he tells me. I'm working on one called ViolaQML in FreeBASIC that will have a nice GUI to go with it, although the QB based browser hasn't been abandoned, only put on hold.

User avatar
Brandon
Coder
Posts: 47
Joined: Sat Nov 19, 2005 9:24 pm
Location: NY
Contact:

Post by Brandon » Tue May 13, 2008 1:37 pm

Yep I released CQML 2 and 2.01 being the best browser out. But I'm working on 2.1 which will render better and have a lot of bugt fixes. I plan to keep the User Interface simple as I feel it adds to the overall retro-ness of it. There is a new site that will be the HTML center of the QML universe at: http://brandoncornell.com/qml

Go CQML!!

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Thu May 29, 2008 3:59 pm

QML 2.1 is out now, with almost all the bugs fixed and a very reliably working forms system. There's a somewhat popular chat room I've implemented in QML where you can leave a message for people to answer later or chat in live with whoever happens to be there. Uses auto-refresh, but you can't really tell. Link is on the main page of my site or cursor search chat.

User avatar
TmEE
Veteran
Posts: 97
Joined: Mon Mar 17, 2008 11:14 am
Location: Estonia, Rapla
Contact:

Post by TmEE » Thu May 29, 2008 5:27 pm

Code: Select all

Qbrowse Loaded.
Reading server status...
Status string read from server:
    '$             _   _              _____        __ _    '
STATUS STRING INVALID -- SERVER OR CONNECTION DOWN.
PRESS ANY KEY TO CLOSE...
This is all I get...

Using Win98SE with SP 2.1
Mida sa loed ? Nagunii aru ei saa :P

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Fri May 30, 2008 2:01 pm

Sometimes you have to try loading multiple times with Qbrowse, but I wouldn't recommend using it. The latest Qbrowse release is also the first, and doesn't support forms or auto-refresh, which means no chat. You'd be better off using CQML, which works for windows and linux.

User avatar
Imortis
Veteran
Posts: 71
Joined: Fri Nov 18, 2005 8:44 am
Contact:

Post by Imortis » Fri May 30, 2008 3:06 pm

I really like this idea. I was going to make my own QML page and put it on my webhost... then my webhost died. Literaly. They are gone. I need to go find a new host... Again...
Image

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Tue Jun 03, 2008 11:02 am

Well, if you do shoot me an email at AtlasSoft at the Gmail so I can link it, and it'll be crawled by CURSOR.

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Thu Apr 16, 2009 9:01 am

Thought I'd log in to say that QML has made slow but steady progress. There are many more QML utilities, some written in QB and FB, some in PHP, and a QML reader in Python, which will run on almost any machine known to man. Most of the news and things can still be found at:
http://pharoah.xetaspace.net/qbrowse/logo.qml

CURSOR right now has 23 pages in its index (there are more, but they are orphaned and not linked anywhere). I'm hoping to get more people interested in this project than just the folks at the GUI blog, so we can have more content available. Things we have now include:
- A chat script
- A forum
- A simple blog engine I wrote that you can update in CQML or PQML
- A blog about QB/FB GUIs that I just started using the above software
- Various other things in the works
- A program to pre-render QML pages to a file (called QGET)

I'm writing more than 2 new QML readers right now for various platforms.

EDIT:

Almost forgot, for the ASCII art folks I wrote an HTML/JavaScript paint program that outputs QML.
http://pharoah.xetaspace.net/paint

User avatar
qbasicfreak
Veteran
Posts: 90
Joined: Wed Oct 22, 2008 3:27 pm
Location: canada

Post by qbasicfreak » Thu Apr 16, 2009 2:35 pm

looks good.
I'll check it out!

User avatar
bongomeno
Veteran
Posts: 231
Joined: Wed Dec 10, 2008 9:08 am
Location: San Bernardino CA
Contact:

cool!!!

Post by bongomeno » Fri Apr 17, 2009 2:41 am

VERY NICE PROGRAM!!!!!!!!!!!

how did you pull off the networking??? external librarie?

i would be delighted and so would many other people here to see some of the code. especially the networking stuff.

an example of how to network in qb would be appreciated. i would like to make my own chatroom or something.

also i had a problem with qbrowse. when i wanted to enter data on the chatroom page or forum, it would only allow me to edit the address bar.
Home: http://www.geekbasic.com" target="_blank
Forum: http://www.geekbasic.com/index.gbws?$page=forumsmain" target="_blank
QB64 powered web server: http://www.geekbasic.com/index.gbws?$pa ... inter=%201" target="_blank

Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah » Fri Apr 17, 2009 6:36 am

Different QML readers handle the network stuff in different ways. Both Qbrowse and CQML use an external program which can be invoked at the command line to download a file from URL. Qbrowse's is called GetNet, it's a very little and simple executable. CQML uses GNU WGET, which is cross-platform and has more features (google wget to read more about it).

Unfortunately I can't release the code to Qbrowse because after releasing the executable I changed things that messed it up, and I don't know how to fix it :(. Anyway I'm writing another open source reader & rendering engine now.

Qbrowse was the first QML reader, before the specification included forms and the like. For this reason, it's not interactive. The only place you can enter data is CURSOR, which has a formless entry method.

Post Reply