javascript


Is this a good way of implementing Blogging Functionality on GitHub Pages?


I'm considering using GitHub Pages to implement a blog and I am kind of in the mood to reinvent the wheel. I've built my website from scratch and I don't want to use Jekyll because it doesn't seem like it can be integrated into an existing website with your own theme (correct me if I'm wrong). I want the following functionalities:
Blog with articles but without the need to constantly update the html myself
Ability to write in plain text on my computer and have my website parse the data and integrate into the website's html when I push to the git repository
A feature on the website which shows a preview of the last three blog posts
The ability to search for specific blog posts hosted on my page through google
I am considering both a static and dynamic solution. The static solution would be to write a python script that reads my blog in text format and updates the blog page to include this new article by adding more html to the blog html page. The dynamic solution would have my blog page fetch articles from the github repository and integrate them into my blog live. This would also allow for fetching more articles on demand (as the user scrolls down my page for example). Is this ridiculously over complicated or does this make sense to do as a little project? Any opinions would be appreciated!
I wrote a static site generator as a Grunt plugin a few years back, so I can probably offer some good advice here.
A static site generator will convert source files (typically Markdown or a similar format for the posts and pages and templates in your templating language of choice) into flat HTML which can then be pushed up to the server. It may also include scripts for pushing it to the place where the site is hosted. If you want to do this in Python there's plenty of appropriate modules - Jinja would be a good example of an appropriate templating system, there's several Markdown implementations, and if you need syntax highlighting Pygments is a solid choice.
It's actually possible to search on the client side. My site uses Lunr.js for this - during the build process it generates an index file for the search, and then that is loaded using jQuery with the rest of the page.
Infinite scroll should also be possible without server-side scripting as it just fetches the same content using Javascript anyway. Paul Irish's Infinite Scroll plugin is no longer maintained, but it would in theory be capable of this and there are probably alternatives.
You might want to check out the article I wrote about it for ideas. The static solution works well for me - it's cheap to host and easy to deploy. You can use Disqus or Facebook comments if need be too.
A simple static site generator is a practical weekend project, and it should be a good way of achieving what you want.

Related Links

Retrieving JSON from server using Select2
form submitting multiple times in IE depends on no.of click of submit button
AngularJS Http Don't Send Cookie in Request Header
Fabric.js - Exclude specific object from being saved using JSON.stringify();
How does this piece of Javascript code work? [closed]
What wil cause a html5 websockets OnError event to be fired? [duplicate]
breaking from a for look inside a reucrsive function
setInterval function causing console to log something multiple times
How to put an image in a drag and drop area(dropify) via jquery- Dynamic dropify
chart.js remove on hover effect
cordova- file transfer additional param
toggle button in google map API
How to clone/generalize a canvas drawing
jQuery push values from unlimited ul levels to JSON
Mouse wheel jumps two zoom levels in OpenLayers.Control.PanZoomBar
Can you please explain to me what happens

Categories

HOME
curl
apache-camel
quickbase
racket
time
installation
rx-java2
integration
weka
termios
ads
symfony-3.1
ios7
connectivity
shapefile
admob
glmnet
azure-keyvault
redux-saga
textwrapping
saxparser
backend
npgsql
w3c
fips
text-editor
android-camera2
android-contentprovider
nvenc
bootstrapvalidator
coldfusion-8
transactional
facebook-login
pyspider
monetdb
global-asax
circuit-diagram
image-uploading
ncrunch
sql-navigator
google-caja
openstack-neutron
figure
uipageviewcontroller
glassfish-3
init.d
xapian
m2m
amortization
w3c-validation
template-meta-programming
xp-cmdshell
fo-dicom
manual-testing
scrollreveal.js
touch-id
xing
enumerable
pem
xml-publisher
log4php
winhttp
quotes
melonjs
meep
coldfusionbuilder
google-code
payflowpro
xively
httpsurlconnection
subtraction
uipopovercontroller
dispose
sieve-language
gulp-ruby-sass
abaddressbook
sysenter
writetofile
browser-automation
ms-access-2002
django-i18n
delegation
intel-parallel-studio
cusp-library
kruskals-algorithm
geometrydrawing
durandal-navigation
ankhsvn
droppable
html2latex
telerik-combobox
sql-server-ce-4
edid
boost-mpi
werkzeug
ispostback
word-diff
facebooker

Resources

Database Users
RDBMS discuss
Database Dev&Adm
javascript
java
csharp
php
android
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App