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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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 »

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.
TmEE
Veteran
Posts: 97
Joined: Mon Mar 17, 2008 11:14 am
Location: Estonia, Rapla
Contact:

Post by TmEE »

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 »

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 »

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 »

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 »

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 »

looks good.
I'll check it out!
User avatar
bongomeno
Veteran
Posts: 266
Joined: Wed Dec 10, 2008 9:08 am
Location: Arizona
Contact:

cool!!!

Post by bongomeno »

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.
Pharoah
Coder
Posts: 33
Joined: Sun Nov 27, 2005 10:35 am
Location: Pennsylvania, United States
Contact:

Post by Pharoah »

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