CSCI-1080 Intro To CS: Web Development

Saint Louis University
Department of Computer Science

Content Management Systems for Web Development

What is a Content Management System?

A content management system (CMS) is a piece of software created to facilitate the creation and modification, usually by multiple developers, of digital (web-based) content. Using abstractions similar to CMS is common in programming. The simpler interface abstracts away low-level details of the web programming, making programming faster and less repetitive in a sense.

A content management system (CMS) is a software application or a set of related programs that are used to create and manage digital content. CMSes are also used for enterprise content management (ECM) and web content management (WCM). An ECM facilitates collaboration in the workplace by integrating document management, digital asset management and records retention functionalities, and providing users with role-based access to the organization's digital assets. A WCM facilitates collaborative authoring for websites. ECM software often includes a WCM publishing functionality, but ECM webpages typically remain behind the organization's firewall.

Wordpress: An example of CMS

Many CMS are available today, and many web developers use CMSes to do web development. One of the most popular CMS system is Wordpress. Wordpress is an open-source piece of software that handles (like many other alternatives) blog posts. Web hosting companies nowadays give you support for installation of wordpress templates (software libraries) together with the database that handles blog posts, users, authentications etc.). Wordpress is written in PHP.

Model - View - Controller (MVC)

A model - view - controller is another example of software architecture for CMS, and it is widely used for developing complex websites. CakePHP, Ruby on Rails and Django are examples of open-source projects that use MVC.

  • The model directly manages the data, logic, and rules of the application.

  • The view can be any output representation of information, such as a chart or a diagram. Multiple views of the same information are possible, such as a bar chart for management and a tabular view for accountants.

  • The controller accepts input logic and converts it to web commands for the model or view.

MVC 

Jemdoc: a simple example of CMS written in Python

jemdoc is a light text-based markup language designed for creating websites. It takes a text file written with jemdoc markup, an optional configuration file and an optional menu file, and makes static websites that look something like this one, that one or another one.

Download Jemdoc here

This page shows example jemdoc source and output side by side. (The spacing of the ‘page’ on the left is consequently incorrect.)

jemdoc – example page

 
# jemdoc: menu{MENU}{example.html}
= jemdoc -- example page
[https://jemnz.com/ Jacob Mattingley] ([www@jemnz.com])

If the first line of the file starts with # jemdoc, special functions like menus will be used.

 
If the first line of the file starts with +\# jemdoc+, special functions like [menu.html menus] will be used.

Example

Here are some text features. I could link somewhere or insert a raw link to another page like download.html. I could use monospace, too.

 
== Example
Here are some *text* /features/. I could [http://cvxmod.net/ link somewhere] or insert a raw link to another page like [download.html]. I could use +monospace+, too.

I could write special characters like h (\) in front of those characters. Or automatically detect an email address.

 
I could write special characters like \#, \$ and \+ by just using a backslash (\\) in front of those characters. Or automatically detect an [www@jemnz.com email address].

Save the file as index.jemdoc, say, and simply call jemdoc index (after downloading jemdoc, of course).

 
~~~
Save the file as +index.jemdoc+, say, and simply call +jemdoc index+ (after [download.html downloading jemdoc], of course).
~~~

Next bit, next heading level two

Getting into level three now

 
== Next bit, next heading level two
=== Getting into level three now

Why not use a list

  • to explain the way you do lists?

  • to demonstrate how a line
    break might work?

 
Why not use a list
- to explain the way you do lists?
- to demonstrate how a line\n break might work?

Or perhaps a

  1. Multilevel

    1. Numbered list

    2. Is more

  2. Useful?

 
Or perhaps a
. Multilevel
  .. Numbered list
  .. Is more
. Useful?
Definition

lists, especially when there are many definitions

Can be useful

for organizing content

 

: {Definition} lists, especially when there are many definitions
: {Can be useful} for explaining things

Finally, a few more blocks

This ‘section’ features “smart quotes”.

 
== Finally, a few more blocks
This `section' features "smart quotes".
Simple block

This is a simple text block, with a title. Notice how the previous line has only one set of braces ({}).

 
~~~
{Simple block}
This is a simple text block, with a title. Notice how the previous line has only one set of braces (\{\}).
~~~
Interactive Python listing
>>> print 'Interactive Python code.'
'Interactive Python code.'
 
~~~
{Interactive Python listing}{pyint}
>>> print 'Interactive Python code.'
'Interactive Python code.'
~~~
Plain code block with no title.
 
~~~
{}{}
Plain code block with no title.
~~~

You might need 2–3 different-sized dashes — they can be useful. Now we're done!

 
You might need 2--3 different-sized dashes---they can be useful. Now we're done!

Insert Images

To insert a simple image you have to use the following code:

6 nodes graph 

{}{img_left}{6nodes-graph.jpg}{6 nodes graph}{315}{204}{}




The examples for jemdoc were adapted from http://jemdoc.jaboc.net/example.html