Giter Club home page Giter Club logo

gitpub's Introduction

GitPub

Transform a GitHub git into a blog/doc site. No static-site generator required.

To your readers, it's a view-only GitHub frontend designed only for reading.

To yourself, it's a verstile writing platform that allows opting out at anytime.

[TOC]

Feature

Spotlight: publishings are done via git pushes.

Posts are published/edited via git pushes

Great version control

Backed up by git, GitPub gives you unlimited time machine to early versions of your writings.

No web-based admin page included

Different from WordPress, HuePress, Medium and Ghost, GitPub does not offer you a webpage where you get to type and save your content. Instead, GitPub encourages you to write in your favorite text editor and then push it to the repo.

No worries if you happen to have to use a web admin interface at times (e.g. on a public computer in your local library): simply log onto GitHub and manage files there. GitHub serves as a quite decent backend in emergency, though not designed for article writing.

Posts are stored on your GitHub and/or local machine

Not exactly cloud-hosting or self-hosting.

  • Like cloud-hosting, you can do everything in your browser if you want.
    • No need to install anything on your machine or keep it up 24/7.
  • Like self-hosting, you can keep a primary repo local if you desire.
    • Push to cloud only when you feel like publishing an aritcle / finish editing one.
    • You get total control over your files (it's a GitHub repo, after all).
      • I mean, even if your hosting service cracks down this time (which is unlikely for a reputable provider like GitHub), you will still have your files around (and readable! See next section).

Posts are saved as piles of Markdown files

In case you haven't heard of it, Markdown is a simple markup language that provides rich stylings within plain text files.

By saving your posts as individual posts, you can easily migrate your posts to anywhere you want and read them with a text editor.

No database or weird data strcture

Do you hate it when you try to export all your entries from Evernote, OneNote, WordPress, Ghost, etc. only to found out that they all have their own packaging formats?

I mean, half of the time when you try to export from a platform, you intend to switch to another product, right? It is really a pain to discover that you cannot easily import the oddly-shaped backup file to your new platform due to file format problems.

I wish to solve this problem by keeping all files as purely-structured as possible. That means, every post is saved in an individual markdown file, so that you can do whatever you want with them.

Downsides / When NOT to use

Let me be honest: there's better blogging platforms than this. A lot.

GitPub does not provide previews/abstracts of posts on the index page

If you really want it, tell me, I can consider adding that functionality. Bear in mind that it would be really network-comsuming for your visitors.

GitPub rely on client browser to do its job

GitPub requires Javascript (like tiddlywiki). If you are targeting readers who might be using a internet terminal from the 80s, this might not work for you. GitPub provides no fallback.

If you are okay with potentially cluttered folder structure

Then please allow me to ask: which do you hate more, having to submit your posts via a web backend, or serving your files outside of GitHub?

If you are okay with having to submit your posts via a web interface

HubPress would be a great choice. It also sits in a github repo and works on a project page (it really amazed me that it could behave dynamically while github actually only allows static hosting on project pages) .

If you sit in the middle...

I'd suggest trying Jekyll. You have to generate the whole site via terminal commands yourself everytime you wish to make some change (i.e. post/modify/delete an entry), but, on the brightside, you have total control of the tool and files!

If you don't care about having to use an external service to manage your content

Give TinyPress a try. It runs Jekyll as backend, requires to conquer your personal GitHub pages, and has a large user base.

If you are cool with hosting your files somewhere other than GitHub, but don't like cluttering up your MD file folder

I have an old project t.t.t for you. It's based on PHP, also works by indexing a folder of pure md files and doesn't require too much JavaScript support on the client side.

Install

Clone this repo, or copy all files under gh-pages branch to that under your repo.

Manage Content

Save/edit your posts as .md files under masterbranch.

Future?

Dynamically generating content via Javascript is super unfriendly to SEO. I know that.

Next, I plan to make GitPub work on Heroku:

User will have to authorize GitPub with permission to GitHub. GitPub will set up a webhook for itself listening to push events. Whenever user pushes to the master branch of his/her repo, the webhook is triggered and GitPub is activated. GitPub will then fetch all files modified by this push, render them with a Jekyll backend, push the generated static site to the gh-pages branch of that repo.

Licence

Haven't decided. Consider it free.

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.