NOTE: This is a rewritten post. The original post was made detailing the new wiki functionality that had been installed approximately three months ago. When I first started this project I wished for some way to make a standard wiki installation work with my existing content management system. I’ve been striving for such a beast for approximately a year and a half (ever since I had gated wiki installed.) I’m now happy to announce that I have achieved this goal after three weeks of investigation and programming.
In light of this, I have rewritten the previous entry to better reflect the current state of things. I have had some success with the language server since this was written, and of course, we now have a fully functional wiki. This shift in software enables a number of new features including the ability to properly create articles, full power wiki functionality, and improved editing capabilities.
- A Whole New Site
- Real-Time Article Submissions & Editors
- What’s Next?
- Various Areas Of Research
- So Much Reading…
A Whole New Site
Previous visitors to chraki.dev may have noticed something a bit different. Their perceptions are correct, the entire site has received a makeover. This makeover includes a different homepage layout, a streamlined presentation in the form of a new “theme,” a new user registration system, and an entirely new wiki installation (with full wiki powers, see below).
The first, and biggest, change is the URL structure. The site is no longer separated into sub-domains, with each acting as its own little sub-site. Instead, everything is organized under one domain name, chraki.dev. Each section of functionality with the site is implemented under various subdirectories/sub-paths. The wiki is now located at https//chraki.dev/wiki/, the forum at https://chraki.dev/forum/, and the future language server at https://chraki.dev/server/.
Another thing you might notice is a “new” logo. It’s not exactly new because the symbol is the same, but the logo image and font of the words is new. This rendition of the logo was done by the talented artist Maus Merryjest. You can find him online at By Word of Maus, and in the forums.
These changes were made in an effort to increase the usability and appeal of the site to everyone involved and future contributors. User registration now relies on a third-party service (IncarnateMe), which reduces programming investment in the site (as well as increases security and combats spam). It also allows you to have a point of single-sign-on for other Novelty Factor backed sites. The wiki acts just like a normal industry standard wiki does (see below) which hopefully will serve to increase participation and accessibility.
These changes were put in place over a five-week period. I revamped a client site, my own project How To Program Anything and this site. This site took special care because of the additional wiki functionality, but it was worth it in the end. This wiki implementation has been something I’ve been wanting to implement for the last year and a half, and now, it is here.
Real-Time Article Submissions & Editors
The first wiki installed on this site required you to actually use a submission form to “suggest a new article.” This was deemed too cumbersome, and a new wiki took its place that allowed you suggest and edit wiki articles in real-time. However, this new wiki still had shortcomings including a poor feedback mechanism, and limited editing capabilities. Now a industry standard wiki installation has taken its place.
With this installation you can create and edit new articles easily (as long as you’re logged in) with a traditional wiki editor, the likes of which you will find on many other wiki installations out there. You don’t need to register an additional account to use it.
The new wiki acts just like any other traditional wiki you may have used in the past including WikiPedia, or many other “fandom” wikis (like WikiFur). That means it also has all the functionality of those wikis as well. As the site progresses future additions may be made as extensions. We’re excited to finally be able to combine msot of the functionality of our content management system with all the functionality of a standard wiki.
Handy Dandy Shortcuts
In the previous post I listed “hand dandy shortcuts” of the style https://wiki.chraki.dev/ah for the “a(h)” syllabogram. At this moment, those shortcuts are not going to work with the new site. I’m working on putting some semblance of that functionality back into the site, but with the new wiki installation the old links aren’t going to point to the right places. What follows was the original implementation:
I’ve taken some time as well to build what I call “shortcuts”. Really they are simply a way of indicating a URL in a shorter way in the system. For example, you can access all the syllabary information in a very simple way.
Normally, if you wanted to access the / a | aa / syllabogram, you would type: https://wiki.chraki.dev/encyclopaedia/the-chraki-a-aa-syllabogram/ but, that’s quite a bit to type! Fortunately, there is an easier way. You can also simply type: https://wiki.chraki.dev/encyclopaedia/ah or https://wiki.chraki.dev/encyclopaedia/thy. In fact, you can get even shorter (only for syllabograms) and simply type, https://wiki.chraki.dev/thy.
For all other articles, you can also shorten the term /encyclopaedia/ in the URL to just an “e”: https://wiki.chraki.dev/e/the-a-aa-syllabogram-family/.Previous Version of This Post
Coming Soon: Shortcodes
Likewise, “shortcode” functionality was planned for with the previous wiki system. This shortcode functionality was going to be implemented due to the wiki sharing the same codebase as the content management system. Now that the wiki uses its own codebase, the shortcode functionality must be written in such a way as to bridge the two systems. This is still planned, but like before it lies right now more in the planning stage. Here is the original announcement about shortcodes:
Being able to edit the HTML in the editor is a big boon. It will allow you to use what are called “shortcodes” in our content management system. A shortcode is like an embedded “call” into some server code that gets replaced with the generated HTML. This is a pretty cool thing because it will allow myself as a programmer to build custom “shortcodes” specifically for the wiki.
This is important because, as I’ve written before elsewhere, I plan to build a “language server” with various capabilities. With shortcodes, I can build little tie-ins that the user can use in the wiki that calls upon this language server to do various things. It will be able to generate images, fonts, links, codification info, etc. As well, we can use shortcodes to make sure our links stay good too. Instead of linking directly to say the syllabary page we can reference one URL in multiple places. Then if anything changes we just change one URL.Previous Version of This Post
Now that I have the basic website in a state that I’m finally comfortable and satisfied with (this blog, the wiki, and the forum) It is time to move forward with work on the “Language Server”. I wrote before about the proposed “Language Server” to be hosted at https://server.chraki.dev/ (doesn’t exist yet.) I quote the following from that section:
… For example, since the writing system of Chraki is, at its core, ideographic (as opposed to using a roman-like alphabet or other alphabetic symbols available in the exhaustive Unicode standard) then a most useful thing to have would be a (web-)font that could allow font-compatible services/applications (like web browsers) to map character encodings to the appropriate font symbols.
This is where something like The Chraki Language Server can come in, offering an HTTP (or otherwise) accessible end-point for (down)loading a font file in various formats, compiled from all the available resources (codifications, scripts, etc.) that have been input into the Chraki site in near-real-time and on-demand. Think of it as a typographic content delivery network, ala Google Fonts.(Asher Wolfstein) https://chraki.dev/site-organization-how-to-use/#server
What’s Been Done So Far
Research has progressed and some effort has gone towards the creation of the language server. A graph database has been set-up and a working schema has been achieved. This work hasn’t been published yet though, as it still needs some reworking to address some implementation issues. What follows is from the original version of this post. Some of this information is a little old, but the main goal and vision remains the same:
This is the functionality I’ve decided at this time to try to focus on next. This type of work is going to require me to do some research on the following:
Various Areas of Research
- For The Fonts:
- Font formats
- Encoding standards (such as Unicode)
- Scalable Vector Graphics (SVG)
- For server technology:
- RESTful APIs
- WordPress Plugins
- Server-side rendering of SVGs
- For language data organization:
- Hierarchical/Graph Database Technology
Books I’m Using/Reading
I’m not too worried about the fonts and SVG (other than the potential quality of the rasterized SVG files themselves for bitmap/sprite based fonts.) For that, I’m currently reading a book I acquired through Amazon titled Fonts & Encodings by Yannis Haralambous.
This book is enabling me to finally understand a specification as complex as Unicode, it’s history, and what goes into making functional fonts in various formats. I think it’s a fascinating book and definitely recommend it. Unfortunately, I don’t have any kind of affiliate account with Amazon that you might use to help support me, however, it’s something I’m looking into.
I’ve also read RESTful Web Services by Leonard Richardson and Sam Ruby and published by O’Reilly previously, but I’m going to be going back over it some to reacquaint myself with the technologies and ideas at hand.
A Database Of Codifications
I’m also researching SQL (or NoSQL?) databases in an attempt to figure out what may be a potential best fit for the database of ideograms (being canon encodings of codifications) that I want to construct for the language (and also maintained by the Chraki Language Server.) If you remember from the article about codifications, they are arranged in a hierarchical fashion through processes known as “disintegration and integration.” I hope to be able to mirror these relationships in a database in such a way that that information can be pulled, modified, put, and memorized using a sort of “chraki language server terminal.” In other words, a web app.
So Much Reading…
This is just the tip of the iceberg when it comes to the amount of reading and research I must do for this project. However, it is some of the most practical reading in terms of what can give this project a leg up.
Fortunately, I read pretty well, pretty fast, and pretty thoroughly. I read the 1400+ page tome Learning Python in a matter of a couple of weeks, and in fact, that’s how I learned to program in Python! So, this isn’t a huge setback for me, don’t worry.
Well, that’s the latest Chraki news. Stay tuned, same Chraki time, same Chraki channel ~ Asher