Home

Neopoligen

Neopoligen is a free website building app. It's designed to make websites you can tinker with. It's largely a personal project, but I'm open - sourcing it for anyone else who likes to play around with different tools.

The app built this site, but it needs a little more work before it's ready for other folks to play with. Until then, you can read more about how it works below. You can also check out GitHub if you want to follow along with the development.

Note

If you're wondering why I decided to make my own app you can check out Why I Built Neopoligen

How It Works

Files

Neopoligen sites are made from files that look like this :

-- title

Welcome To Neopoligen

-- p

Neopoligen is a free website building app. It's designed to 
make websites you can tinker with.

The app built this site, but it needs a little more work 
before it's ready for other folks to play with. Until then, 
you can read more about how it works below. You can also
<<link|check out GitHub|https://github.com/neopoligen/neopoligen>> 
if you want to follow along with the development. 

-- metadata
-- created: 2024-05-31T19:20:58-04:00
-- id: 2ikuxluk

Sections

Neopoligen files are made from sections that start with two dashes and a name like : -- title , -- p and -- metadata . The name for each section determines what happens to the content in it. For example, outputting a title or a set of paragraphs like above. Some sections, like "metadata", don't do anything directly. They're used for things like storing the IDs of a pages which are used for linking.

Another type of section is -- list which looks like this :

-- list

- the quick brown fox

- jumps over the lazy dog

Each line that starts with a single dash becomes a new list item which turns into this output :

Some of the other default sections include :

Section Attributes

Each section can have addition details called "attributes". They can do things like change a section's appearance, add alt text to images, or provide more content that can be formatted independently.

Attributes are made by adding extra lines start with two dashes after a section. For example, here's a -- class attribute that's used to make the text in the section green.

-- p 
-- class: green 

The quick brown fox jumps over the lazy dog

This is what that looks like :

The quick brown fox jumps over the lazy dog

Custom Sections

Neopoligen works by using templates to control the output of each type of section. It comes with several default sections, but you can make as many as you want. As far as the app is concerned, there's no difference between a section/template combination you make and one the ones the come built - in.

For example, here's a new type of section called book-to-read-example with some attributes for the title, author, and cover image.

-- book-to-read-example
-- title: The Peripheral
-- author: William Gibson
-- image: /neo-images/the-peripheral-cover/100w.jpg

I've read a bunch of other William Gibson stuff and can't
wait to get to this one!

And here's an example of what it could look like :

Book cover for The Peripheral by William Gibson

The Peripheral

By: William Gibson

I've read a bunch of other William Gibson stuff and can't wait to get to this one!

Spans

Neopoligen supports adding different "spans" to text inside sections. A span starts with two less than signs and ends followed by the name for the type of span then a pipe character and the contents. A closing pair of two greater than signs ends the span.

For example, here's an "em" span that makes the text inside it italics :

The <<em|quick brown>> fox

The output looks like this :

The quick brown fox

Nested Spans

Spans can be nested inside each other. For example, here's how to make text that's bold (via "strong") and underlined (via "u").

The <<strong|<<u|quick brown>>>> fox

Which outputs :

The quick brown fox

Span Attributes

Spans can have attributes as well. Attributes are separated by a pipe character like this :

The <<em|quick brown|class: green>> fox

The output looks like this :

The quick brown fox

Custom Span Functionality

Spans work off templates the same way sections do. You can make your own with whatever functionality you want. The tlink span is a good example. It takes the ID of another page on the site and turns into into a link to that page using the page's title.

Next Page: <<tlink|2kiw8tvv>>

Which outputs this :

Next Page : TODO List

Hosting

Neopoligen uses files directly on your computer to create websites. You can preview the sites on your machine. You have to published them to a "hosting provider" to make them available to the world. Neopoligen is designed to work with a free service called GitHub Pages by default.

Details on using GitHub and other free services are a work in progress.

Tech Stuff

A few details for those interested in the more technical side of things :

Next Steps

That's the basics of how Neopoligen works. There's more advanced stuff like being able to nest sections, embedding JavaScript and CSS, syntax highlighting, and outputting collections of links of pages. I'm in the process of writing up how the other parts work and will post them as they're finished.

I'll be posting about progress on my Mastodon account if you're interested. You can also checkout my personal site (which is built from Neopoligen) at : alanwsmith.com

~ fin ~

Footnotes