You are not logged in.
This is the other project I've been working on for the past many months, and today I finally got it in what I feel is a good stage first release.
So, what is SmartTE exactly? Well, to put it simply, its a rich text editor with a ribbon-style interface and featuring BBCode support. I know what you're thinking, why another text editor? Well, the answer is simple, I never really found a rich text editor I liked (there seems to be woefully few of them available on Linux unless you get to office sweet level), and there wasn't a single one which had the ability to export to BBCode. Right now, the features are few, but the ones that are there have been carefully tested by myself and should work without problems. It saves as a plain text file with bbcode markup, and can load from any file containing bbcode, though other formats aren't supported yet. There is a copy button which copies the selection to bbcode, and you can set justification within it (though this won't be exported currently).
I have to give credit to Kuleshov Alexander, aka onlyshk, for his undostack code which is available here, which I reused in this project. Also, credit goes out to nemo in #pygtk on irc.gnome.org for helping me with getting various portions working and for just bouncing ideas off of. Finally ,even though I don't use the code now, I still want to thank Thomas M. Hinkle of the Gourmet Recipe Manager for creating the TextBufferMarkup script, which went on to inspire my current gtk.TextTag-based markup.
To get SmartTE, download from here OR Install from AUR! (I totally did not intend for that ID )
Last edited by smartboyathome (2010-07-18 13:19:23)
Offline
Just to let you all know, if anyone did actually use the PKGBUILD, they'll want to get a fresh copy since pyenchant has been added as a dependency in order to facilitate the new spell checking feature (not fully implemented yet, just tells you if a word is spelled wrong).
Offline
Another post, yes, but it'd be helpful if people could test this since its pretty close to a first release IMO. I'll probably add a few more features, but I'd like to know if anyone's spotted any bugs, etc, before I do release it.
Offline
I'm surprised nobody has commented on it yet. I'm at work and can't try it right now, but I am a little confused about your project.
First of all, it is written in Python and uses GTK, correct?
Why would someone choose to use SmartTE over another editor? (for example, Gedit) What is the significance of BBCode? Is BBCode the default file format for SmartTE? Why would someone want to save in that format instead of another? What is this editor for? Is it for programming? Is it for writing documents, such as for homework?
Have you posted a screenshot so we can see what it looks like?
Thanks!
Offline
I'm trying this out, as I frequently write my message board posts in a text editor. Sounds like this would be a good fit for me.
Offline
First of all, it is written in Python and uses GTK, correct?
Yes, it is written in PyGTK and uses Enchant for its spell checking. These two should pull in all needed dependencies.
Why would someone choose to use SmartTE over another editor? (for example, Gedit)
A very good question. Well, for one, this actually has rich text support, something which many text editors for Linux outside of word processors actually lack. This rich text support would allow you to be able to bold, italicize, and underline text (for now) as well as change the default paragraph format (left, center, right, fill justified). Soon I will have text size also supported (I got it half way done already).
Other than formatting, the other advantage it has over other text editors is the fact that it uses an interface similar to the ribbon interface on Microsoft Office. I actually find this more efficient at using space, and since I am on a netbook, space is quite important for me.
Overall, I would imagine this would be most useful for those whom want to write their forum posts on their computer, as kmason said.
What is the significance of BBCode? Is BBCode the default file format for SmartTE? Why would someone want to save in that format instead of another?
BBCode is becoming the standard for use on forums, and even though there is no official standard among the community, there's an unofficial one which has been adopted by several forums. Generally, it is used since it is more secure than parsing HTML directly. It is the default file format for SmartTE at this time, mostly because it is easy to work with and implement. Once its done, I may move onto RTF and HTML support as well (the latter much easier to implement than the former from first glance), but not all features are implemented in SmartTE yet. Overall, though I'd say that someone would want to save in that format if they have a large post with tons of formatting which they wanted to post later.
What is this editor for? Is it for programming? Is it for writing documents, such as for homework?
It is not for programming, it is more designed for forum posts. The use case I can imagine is that someone knows they are going to be without internet but still will have time to create a post, or someone wants to create a post outside of their web browser (ie, in case it crashes and doesn't save the post, which I have had Firefox do a few times). Also, it looks cleaner with a lot of formatting than plain text with bbcode, which I often see when creating a character profile for roleplaying.
Have you posted a screenshot so we can see what it looks like?
Sure, I'll get some in a bit when I have more time.
Offline
Interesting, you do message board roleplaying? That's the main reason I downloaded this!
Would it be possible for an interface/config to create our own formatting buttons? I could see great potential for this in an application as mentioned above, role playing. Where you can configure it so you just click a button and make the IC/OOC/TAG tags instantaneously, in the appropriate corresponding BBCodes.
I'd also like to see more BBCodes implemented by default, such as links and images, though it may be easier to implement these into custom buttons, as there is currently two standards for images and links used on many message boards - aside from the ones used here, there is also the following:
[image=URL]
[link=URL]Text[/link]
Also, I'll post the screenshots for you, so you don't have to do that.
EDIT: Screenshots are taken:
Last edited by kmason (2010-08-09 20:12:25)
Offline
Thanks kmason.
As for if custom formatting buttons, it could be possible, but it depends on the type of formatting you want to do. Images and links, for example, are hard to implement in PyGTK since there is no hyperlink support outside of buttons inside the text area (which is not a good idea due to them not being editable) or hidden text (which is planned, but not yet supported by (Py?)GTK). As of this writing, I have an idea for it, but it'd involve creating a new text tag for each link, which, if you have a lot of links, could clutter things up quickly. As for images, this could be done, but, again, I don't think it'd be easy since there'd be little way to save the URL that I know of outside of creating a text tag for each image.
Also, I plan to implement more bbcode, but its been hard getting the ones I got done, and I had to learn about regexes for the new size bbcode which is soon to be implemented. Before it's released I'd like to support size (em size, aka 1, 2, 3, etc, will come first since pixel seems trickier), basic font faces (I can't find how to get a list of fonts on the system, but i can implement a choice between the Sans, Sans Serif, and Mono font categories), and color font options (probably going to be my first step towards link support since I have to use the same method).
Offline
Hi! I'd like to write this text with your editor but I couldn't
The message:
└─┤11:16 |$├─> smartte
Traceback (most recent call last):
File "/usr/share/SmartTE/SmartTE.py", line 931, in <module>
startup = MainWindow()
File "/usr/share/SmartTE/SmartTE.py", line 786, in __init__
self.dict = enchant.Dict()
File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 489, in __init__
self._switch_this(broker._request_dict_data(tag),broker)
File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 253, in _request_dict_data
self._raise_error(eStr % (tag,),DictNotFoundError)
File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 207, in _raise_error
raise eclass(default)
enchant.errors.DictNotFoundError: Dictionary for language 'es_CL' could not be found
I fixed this installing "aspell-es" package. A question: Is it possible to disable this check to use the program without a dictionary? I don't need it....
Thanks
Offline
Hi! I'd like to write this text with your editor but I couldn't
The message:
└─┤11:16 |$├─> smartte Traceback (most recent call last): File "/usr/share/SmartTE/SmartTE.py", line 931, in <module> startup = MainWindow() File "/usr/share/SmartTE/SmartTE.py", line 786, in __init__ self.dict = enchant.Dict() File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 489, in __init__ self._switch_this(broker._request_dict_data(tag),broker) File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 253, in _request_dict_data self._raise_error(eStr % (tag,),DictNotFoundError) File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 207, in _raise_error raise eclass(default) enchant.errors.DictNotFoundError: Dictionary for language 'es_CL' could not be found
I fixed this installing "aspell-es" package. A question: Is it possible to disable this check to use the program without a dictionary? I don't need it....
Thanks
It is possible to disable toe dictionary, but there's no preferences dialog nor config file at the moment so you'd have to comment out quite a bit of code. I'll look to making things more modular than current, though right now I'm just focusing on getting features implemented.
Offline
mcordv wrote:Hi! I'd like to write this text with your editor but I couldn't
The message:
└─┤11:16 |$├─> smartte Traceback (most recent call last): File "/usr/share/SmartTE/SmartTE.py", line 931, in <module> startup = MainWindow() File "/usr/share/SmartTE/SmartTE.py", line 786, in __init__ self.dict = enchant.Dict() File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 489, in __init__ self._switch_this(broker._request_dict_data(tag),broker) File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 253, in _request_dict_data self._raise_error(eStr % (tag,),DictNotFoundError) File "/usr/lib/python2.6/site-packages/enchant/__init__.py", line 207, in _raise_error raise eclass(default) enchant.errors.DictNotFoundError: Dictionary for language 'es_CL' could not be found
I fixed this installing "aspell-es" package. A question: Is it possible to disable this check to use the program without a dictionary? I don't need it....
Thanks
It is possible to disable toe dictionary, but there's no preferences dialog nor config file at the moment so you'd have to comment out quite a bit of code. I'll look to making things more modular than current, though right now I'm just focusing on getting features implemented.
Don't worry about that, it's just a idea.... thanks for your work
Offline
Well, it's been a while, but I finally got size support implemented! It took me having to rewrite the formatting detection code as well as quite a bit more code, but I feel it will be more scalable now. Also, I wrote it so that it supported both pixels and points.
Next up is the ability to change the font face!
EDIT2: Font families also supported now.
Last edited by smartboyathome (2010-10-01 16:41:32)
Offline
Hi,
I've been looking for a rich text editor for linux for a while... I ended up resorting to using MS wordpad through wine, which is a complete PITA, has simply horrible fonts too, and all in all this is a rather sad state of affairs.
Unfortunately, you are missing the two features that matter most to me and would make me switch over to SmartTE permanently - turning off word-wrap, and being able to select areas of text and change their font colour.
Any chance these things will be implemented? Thanks!
Offline
Hi,
I've been looking for a rich text editor for linux for a while... I ended up resorting to using MS wordpad through wine, which is a complete PITA, has simply horrible fonts too, and all in all this is a rather sad state of affairs.Unfortunately, you are missing the two features that matter most to me and would make me switch over to SmartTE permanently - turning off word-wrap, and being able to select areas of text and change their font colour.
Any chance these things will be implemented? Thanks!
Both should be more trivial, though I'd need to figure out how to get a color picker into SmartTE. Unfortunately my code is suffering from a complete lack of design (it was only my second python project), so I've been hesitating working on it. In addition, I've been busy with work. I'll see what I can do though!
By the way, you should note that SmartTE does not support RTF, HTML, or any other common format at the moment. It could be implemented to support HTML (trivial), though I wouldn't know much about RTF at the moment. I'll see if I can find time soon to get those.
Offline