Github page version number syntax - github

I have a github repo that is also a github page. I use it as a CDN like so:
https://agentscript.org/src/Model.js
(agentscript.org is a CNAME forwarder to backspaces.github.io/agentscript/)
I would like to access the code by release number. So for example something like:
https://agentscript.org#0.9.0/src/Model.js
Is there a way for me to do this? The above fails. Maybe a different syntax?
Note that npm publishing allows this to work on npm based CDNs like skypack or unpkg:
https://unpkg.com/agentscript#0.9.0/src/Model.js
https://cdn.skypack.dev/agentscript#0.9.0/src/Model.js

GitHub Pages doesn't offer a feature like this. The reason is that GitHub Pages is designed to host a personal website or a site for your open source project, but isn't designed to be a CDN. The documentation outlines that there are limits, so if you need a CDN, you need to host your project on an actual CDN.

Related

Link custom domain to any GitHub repo

I am aware that on GitHub you can create a repository, <username>.github.io, which will be a personal website. I also understand you can link custom domains to this, so example.com would show the website in your GitHub repo.
I have a couple questions though.
At the moment, I have a GitHub project - let's call it FooProject. I have purchased a custom domain name for a website to showcase the project. How can I create a website for this, hosted on GitHub? (not a personal site in the form <username>.github.io, but a project site).
Also, can I give the GitHub repository a different name like fooproject.com, or does it something specific?
I suppose what I am really asking is, when hosting a website on GitHub...
Can you host your website using a GitHub repository of any name (like fooproject.com)?
If not, I'm aware of using gh-pages branches for the website of a project. How would this work with a custom domain?
If that isn't a good option either, what's the best option for my use case?
Hope that's clear.
So I managed to answer my own questions in the end - here's what I did.
My website is going to be something to showcase a different project I am working on. I could have hosted the website from a /doc directory or gh-pages branch in my project repository and then set up a custom domain from there.
However, there was also the option of creating a repository with any name and hosting the website from the master branch - this method appealed to me more.
I created a new repository named the same as my domain name, example.com (it doesn't really matter what you call the repository). Then, using git, I added some website files - index.html, stylesheet.css, etc.
Once my repository was ready, I configured its master branch as a publishing source for GitHub pages - see this help page for details.
Then with my DNS provider (GoDaddy, in my case), I configured the CNAME and A records (for the www subdomain and apex domain respectively). There are also help pages on GitHub for setting up www subdomains and setting up apex domains. Note that it takes a little while for the changes made on the DNS to take effect.
Finally, I added my custom domain to my GitHub repository - see the GitHub help page for adding or removing custom domains.
Here's a summary (for using any GitHub repository to host a website):
Create your repository - repository name doesn't matter.
Add your website files - HTML, CSS, JavaScript, etc.
Configure the master branch as a publishing source
Configure CNAME and A records with DNS provider
Add the custom domain to the GitHub repository settings

How do i manage content workflow for hexo site?

I've used static site generators like jekyll and had it hosted through github pages just fine using prose.io as a content management system.
I decided I wanted to go with a site using Hexo static site generator, but I cannot seem to figure out a good workflow for publishing content.
To my understanding this is the following in how I'd have to do it:
write *.md text file
hexo generate
(optional) hexo serve (to see local content)
hexo deploy (to publish the public content to whatever site using config.yml). Can publish on amazon S3, github pages, etc
Is there another workflow other than this?
the way I've been doing it before with jekyll+github pages is simply
go to prose.io
Write content
save (which publishes ocntent)
Ideally I'd like to use hexo+github pages the same way I do with jekyll+github pages.
Basically, can github generate static files automatically like it does with jekyll / ruby packages?
I figured out my own answer and posted it on my blog
http://www.tangycode.com/Quick-Start-Guide-To-Hexo-Install/
It covers everything you need to know on how to set up a hexo blog site and manage content workflows
One approach I am trying myself:
prose.io or similar to write and save on github repository
travis-ci.org to build hexo site and deploy
This is how it works:
Edit document on your editor of love
Commit it to your repository
travis-ci.org detects the commit and start working
My .travis.yml do (among few other things) the follow:
npm install hexo-cli
npm install grunt-cli
npm install inside site´s repository (hexo plugins and dependecies)
hexo generate
grunt deploy-production
hexo deploy (I use this to have a historic of the site stored in the repo itself)
If your editor of choice can direct commit to github repository your have exact same experience you had with Jekyll on GH pages. The advantage here is that you can use third-part plugin what GH pages avoid.
Alternatively, you can use INSTANT, which is a content management tool that you can use on any static website. You just install their javascript and can directly edit content in your website (without any admin dashboard). It saves and serves the content from the client. Pretty neat.
The easiest way is to use a hosting provider like Netlify in combination with a headless CMS, for example Headless (full disclore: I created it).
Netlify can do the build process for you and during that build process, it can fetch content from a headless CMS. Whenever you update content in the CMS, then Netlify does a rebuild.
Then you have your website on the Netlify CDN, a real CMS for your content management and you never need to dive in your code or github files. And that's all for free.

how to deploy web application directly from git master branch

For educational purpose, I am writing a server instance in GCE(google compute engine) to serve a few web apps mostly (to be) written in Dart and Polymer.
My workflow is, when my students log-in the server above, they will automatically fork those web apps into their own registries in their own server instances for further development.
My issues are,
How to serve web applications(they are git registries as well) in GCE like Github Pages?
Is it possible to manipulate Github Pages to serve web apps mostly using Dart and Polymer packages?
Thanks in advance.
I found out answers to my questions.
1. How to serve web applications(they are git registries as well) in GCE like Github Pages?
Use CI(continuous integration).
2. Is it possible to manipulate Github Pages to serve web apps mostly using Dart and Polymer packages?
No.
My question is summarized to the sentence that 'Is it possible to assign IP addresses on index.html files in git repositories?'. If possible, there is no need of CI processes at all as 'A repository itself is A web server or directory running the code'.
CI is more or less documented in Github Pages and Gitlab CI etc. Though details are different, they commonly use hooks(or webhooks) to notify something from repo to another server(s), which are application servers.
In my opinion, GIT is NOT designed and has NOT evolved for web applications, but for 'REAL' applications needing compile/build processes. So, there is no mechanism to run a repo as a web server. So, the only solution is to hack the source code of Gitlab etc. to make a better Github Pages(it supports only static pages, and NOT JS and other libraries etc.).
Disclouse: based on the advice of Günter Zöchbauer

How do I self-host Jekyll?

I don't want to use github to host my new portfolio, I want to host it from my own site. How do I do this properly? Clearly, simply uploading all the files don't work (I just see Jekyll template text).
Has anyone done this?
You have to generate the site with Jekyll, and then upload the generated files to your web server. Jekyll's Usage and Deployment docs explain in more detail.

Is there a way to publish a website from github or cloud9IDE directly to a web-host?

Is there a way deploy a website directly from github or cloud9 ide? using ftp or other way, right now it doesn't matter what hosting, just so it'll be fully functional and accessible online.
(I know github has a web-hosting of a kind but it seems very limited)
What webframework/language are you using? If you use RoR or Sinatra or any other rake-based framework you can use heroku.com. If your using asp.net you can use appharbor.com, finally if your using php you can use phpfog.com.
What these hostingproviders have in common is that you deploy the website by pushing your code with git, while you won't be deploying directly from github you can just add one of the above mentioned hosts to your remote-list (in addition to github) and then push to that remote when you wish to deploy.
Another solution would be to add a post-receive-hook to github which then triggers whenever you push to github, in that post-recieve-hook you could tell the webhost to pull from the repo. This does however require you to have git installed on the webserver aswell as some kind of webinterface for the post-recieve-hook to post to.