Git Product home page Git Product logo

yabi's Introduction

YABI: Yet Another Blogging (tool) Implementation

yabi allows you to create a simple and customizable blog site with minimal effort.

Write your posts in markdown, build the blog site, and deploy it anywhere you like.

Installation

The easiest way to install from PyPI is to the pip command

pip install --user yabi

or if you have cloned the repo and want to install it directly from the source code

pip install --user <path to the repo>

Getting started

Say, you want to create a new blog that describes your philosophical thoughts. You want to call it Discourses. Start by typing on a terminal

yabi init Discourses

This will create the following folder and files

Discourses
  ├── config.json
  ├── data
  └── posts

To publish your first thought, create a new file on the posts folder, e.g., posts/my_first_thought.md. The only requirements for a post is that

  1. It is somewhere inside the posts folder
  2. Has set the label draft to "yes" or "no" at the file header.
  3. It has a level 1 Markdown heading with the title of the post right after the label(s).

Apart from these minimal requirements, the post can have any valid Markdown syntax.

draft: no

# My first thought

I will drink more water. I will exercise more and I will wake up earlier.

No, I'm not. I rather not to.

Finally, navigate to the base directory Discourses and build the website using the command

yabi build

All the contents of the website are generated inside a folder named public. You can upload these files to any hosting service of your liking. If you wish to check how the site will look before you deploy it you can use the command

yabi test

which will create a local server with your website that you can visit on the url http://localhost:9090

Features

  • Simply and minimalistic user interface
  • Sane defaults for the website. Have a nice blog with all the expected features: archive, categories, and a home page with the latest posts
  • Markdown-format post system. No need of complex databases, the only thing needed to build your website are the markdown files containing your posts. Ideal for version control!
  • Optimized build system. Only builds what you have recently added/changed.

License

This software is licensed under the BSD-2-Clause License terms.

The default blog style and design was heavily based on Armin Ronacher's blog.

yabi's People

Contributors

menganha avatar

Watchers

 avatar

yabi's Issues

Local server when page base directore is different than the root

Currently the local server of yabi created for testing the page locally does not work when setting the base header to something different than the root directory (/). Possible solutions are to copy the static pages to a custom temporary folder wich resembles the base directory of the website.

So for example if

then we can create a temporary folder and put all the files resembling the base path

/....temporary/a_page/another_page/public

the we chdir to temporary and start the server

yabi build not friendly with git version control

The yabi "build" command needs the public folder and the .yabi_last_build to work correctly. These are generated when the blog is created for the first time, but not again. This is a problem if, for example, we want to version control our yabi blog we would need to also track the public folder (actual site) for it to correctly work if someone wants to build it after having it cloned from a repository.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.