You're viewing old version number 8. - Current version

3 min

Veery Blog App - April 2015

Proposed idea. Yet another blog or web-based publishing tool. Best way for me to learn new concepts.

Existing apps:

  • Junco - wiki and blog
  • Kinglet - private web-based messaging that's part email and microblog
  • Grebe - blog
    • Grebe-Client-NodeJS
  • Scaup - blog

I think that I will call this new app Veery. It will be based upon Scaup.

I'll create separate git repositories for:

  • Veery-API-Perl
  • Veery-Client-Perl
  • Veery-Client-NodeJS
  • Veery-API-Go

The first three can created by borrowing from Scaup, Grebe, and Grebe-Client-NodeJS. The last one will give me a chance to learn some Golang.

I can mix and match. I could use the Perl client against either the Perl API or the Go API, etc. I suppose that I can create multiple sub domains to use the different options, and have all of the API code point to the same database.

It would be fun to use the NodeJS client against the Go API. Of course, the JavaScript browser editor bypasses the server-side client code and talks directly to the API.

The rest of the stack will remain the same:

  • Nginx
  • CouchDB
  • Elasticsearch

The exception might be that I use Redis instead of Memcached. The reason: to use something different.

I used Redis for Grebe, but I was using the Perl code to read from Redis, instead of letting Nginx do it. That's because the Redis module was not installed by default for Nginx. The Nginx install included the Memecached module.

I'll need to upgrade my Digital Ocean account to the $10 per month plan, so that I can increase RAM from 512 meg to 1 gig, which will permit me to run all the different services that I want to test.

I'll need to download the appropriate Nginx Redis module, download the latest Nginx code, and rebuild Nginx with the Redis module.

Also, download the latest version of Redis.

Initially, I won't be doing anything fancy with Redis. I'll use simple key-value caching.

Steps

  1. upgrade DO account
  2. rebuild Nginx with the Redis module
  3. use Scaup to create the Veery API in Perl, using test scripts
  4. create the Perl client code
  5. create the NodeJS client code by using some code from Grebe-Client-NodeJS
  6. learn Go

Golang modules:

  • Redis
  • Markdown, MultiMarkdown, Textile (at least one)

I could simplify this and only support Markdown all API code.

Markup

The Perl version of MultiMarkdown does not support all of the so-called MultiMarkdown standard, therefore I will not use this module.

I cannot accept the default behavior of Markdown which does not convert newlines to the HTML br tag.

On occasion, it would be nice to use Textile's footnote and table formatting options.

Initially, I'll start with Markdown only, but I'll use my own flavored version of Markdown, which will be similar to what exists with Grebe.

My Formatting Options

My own flavored Markdown, which will have the option to turn on and off the newline_to_br.

It will also have the option to turn on and off the url_to_link where bare URLs are automatically converted to a clickable link.

In Scaup, I have a command which prevents the hashtags from being converted to link. Within code blocks, the pound sign is used within CSS, and I need to have the ability to set hashtag_to_link=no or I need to add the smarts to processing code blocks to avoid creating links.

Markdown has fence code block capabilities, but it's annoying to indent four spaces on each line. I greatly dislike hidden formatting commands. It's too word processor-like. I don't like how Markdown adds a br tag by requiring a user to type two blank spaces at the end of a line. Poor design and user experience.

I will include my own formatting commands:

  • br.
  • hr.

I'm unsure if I will include my old q./q.. block formatting command. But the solution within Markdown, however, is more annoying because it will require the greater-than sign on each paragraph versus surrounding the area with my own q./q.. command. The other option is to type our the HTML blockquote tag.

If I wanted to use HTML only then I would avoid these t

#veery #go #nodejs #perl #couchdb #programming #blogging

From JR's : articles
686 words - 4050 chars - 3 min read
created on
updated on - #
source - versions

Related articles
Veery Blog App - April 2015 - Aug 03, 2015
Scaup web publishing app update as of Feb 21, 2015 - Mar 02, 2015
Perl HTML parsing modules - Oct 01, 2013
Indieweb links aug 29, 2016 - Aug 29, 2016
Perl code for string processing - Jul 06, 2013
more >>



A     A     A     A     A

© 2013-2017 JotHut - Online notebook

current date: Dec 28, 2024 - 3:35 a.m. EST