How to make my post not public for a while? - jekyll

I'm using jekyll and github pages. I'm currently busy with new post and it's not finished yet. I'm working from different places, that's why I need to push my changes to github. I created new post and push it on github. But after push my half-finished post is visible for everyone. I don't want to make it visible untill I finish it.
How I can hide it? Is there any standard way or flag?
I understand that I can copy it to another folder but it's not preffered way.

You can include a line in your YAML Front Matter to indicate whether a post is published or not:
published: true
or
published: false
Set published to false if you don’t want a post to show up when the site is generated.

Those pages are visible only if you push them on the gh-pages branch.
You could maintain a gh-pages-draft branch for you to push work in progress, and merge that branch to gh-pages when you are ready for publication.
For instance, the app middleman-deploy (for Middleman, a static site generator) recently supports pushing to other branches than just gh-pages.
Note: kleinfreund adds in the comments
The idea of drafts is backed into Jekyll.
Store post drafts in /_drafts and omit the date in the filename
This is detailed in "Working with drafts"

Related

What site variables can I use GitHub pages?

I'm trying to build the best GitHub pages page I can and would love to be able to offer more helpful links to the repository than just "Improve this Page".
I'm using the default Jekyll theme and would like to understand:
How does "Improve This Page" show up?
What other information about my repo/project is there?
Any helpful resources are appreciated.
Figuring this out was really illuminating!
It took some digging in my GitHub Jobs.
When "Pages Deploy and Publish" runs, I see something like this
The theme GitHub Pages is using, if I don't specify one, is Primer
Primer's default layout is where we get the "Improve this Page" link. Specifically, Improve this Page is referenced in _layouts/default.html, on line 22.
Notice I said referenced. Primer doesn't define github_edit_link (the Liquid tag used to make the link).
That led me a bit further down the rabbit hole to find the dependency:
Once that veil had been pierced, I took a look at jekyll-github-metadata
This is where I found the treasure trove of information I had been looking for!
This Markdown Document Lists All Of The Site-Wide Variables
I've added some descriptions to each:
Site Variable
Description
hostname
Always github.com
pages_hostname
Always github.io
api_url
Always https://api.github.com
help_url
https://help.github.com
environment
Always dotcom
pages_env
Always dotcom
public_repositories
The Publisher's public repositories
organization_members
The members of the Publisher's Organization
build_revision
The build revision (the commithash)
project_title
The Name of the Repository
project_tagline
The repository description
owner_name
The Owner of the repository
owner_url
The Owner's public GitHub URL
owner_gravatar_url
The Owner's GitHub Avatar!
repository_url
The full URL for the repository
repository_nwo
The root-relative URL of the repository
repository_name
The name of the repository
zip_url
A URL to the zipped contents of the repository
tar_url
A URL to the tarball contents of the repository
clone_url
The URL to the git repo
releases_url
The URL for the Repository's releases
issues_url
The URL for the Repository's issues
wiki_url
The URL for the Repository's wikis
language
Unsure, but I'd guess it's the language ;-)
is_user_page
Unsure, but I'd guess this indicates if this is a page for a user
is_project_page
Unsure, but I'd guess this indicates if this was a project
show_downloads
If downloads should be displayed
url
The public URL or CNAME
baseurl
The root-relative base URL (most likely /)
contributors
Contributors to the Project
releases
Releases of the project
latest_release
The latest GitHub Release Object
private
If the repository is private or not
archived
If the repository has been archived
disabled
If the repository was disabled
Hopefully this content saves the next person the time and effort to track this down.

Can't use Git Pages

TLDR: GitHub Pages isn't working.
I have a little knowledge on GitHub and tried multiple fixes to no avail. One repository is only showing readme file contents.
Please explain in lamest terms.
New to web development, I finally was able to complete my first site, but I'm unable to actually deploy the files for some reason; please forgive me, I literally have no idea what any of the git terminologies are.
I purchased a pro subscription in order to keep the repository private and the site public.
Every file is present in what seems to be the main root directory, but nothing is being actually presented.
I've created two different repositories in an effort to fix this, as I've seen different methods are available.
The first repository includes a README file because I was originally instructed to do so, however, all the site link does is present that README file's contents;
I also attempted to add a permalink fix within the file, but all it did was add that text to the other text presented.
The second repository in question literally greets me with nothing but a 404 error.
The solution I tried for the second repository was to have the repository name share my username as well since that seems to be where the site's link originates, but no present changes have occurred.
Finally, the waiting game solution hasn't beared any fruit yet either aside from updating the README file's contents.
All help is very much appreciated.
Check first:
Your GitHub repository name, which depends on the type of GitHub Pages you are creating
If you're creating a user or organization site, your repository must be named <user>.github.io or <organization>.github.io.
your GitHub Pages Publishing source
If you use the default publishing source for your GitHub Pages site, your site will publish automatically. You can also choose to publish your site from a different branch or folder.
You can add more pages to your site by creating more new files.
Each file will be available on your site in the same directory structure as your publishing source.
For example, if the publishing source for your project site is the gh-pages branch, and you create a new file called /about/contact-us.md on the gh-pages branch, the file will be available at https://<user>.github.io/<repository>/about/contact-us.html.
Make sure you have GitHub Pages enabled for every repository and that it's set to the branch you want to publish by checking your Pages settings at github.com/<user>/<repo>/settings/pages. If enabled, there should be a link on that page that takes you to the site.

Github pages: why my site has different styles after fork?

I'm trying to get a Jekyll site on GitHub without having to locally install Jekyll, so I just browsed this list until I found a couple themes I liked and then tried forking them (I intend to edit and customize the files in the browser, without having to clone a local repository). But I keep getting a different version from what I fork.
For instance, I forked https://github.com/codeasashu/hcz-jekyll-blog, and from the live demo I expect it to look like this:
However, right after forking (no changes made to files yet) I get this:
The same happened with other themes. What's wrong?
Do check if the empty base URL has any link to what you see: codeasashu/hcz-jekyll-blog/blob/master/_config.yml.
Note that, according to issues/15, the gh_pages branch of that repo acts as a demo, not the master branch. In gh_pages branch, there is a baseurl.

How to make posts private in Hugo?

I am looking for ways to make some of the posts on my blog visible only to myself but can't seem to this in Hugo.
Is there any way around this such as setting a password for certain posts?
Or is the feature supported but I just haven't found it?
Since Hugo just generates the static HTML, the question can be widened to: how to password-protect any static content on the web server.
That's doable.
It depends what is your web server using: Apache or Nginx or something else.
In Apache case, set up password authentication via .htaccess. See tutorials like this.
In Nginx case, set up password on your server block section, see tutorials like this.
For other server (IIS?), google accordingly.
Some people will want to downgrade this question, but in my opinion it's very valid, for example, if you want to post portfolios, CV's and whatnot on your personal website and limit public access
Make a landing page on Hugo site, password-protect the URL and give visitors the password. Easy, fast and still static!
My way to keep posts private is to set the draft flag in the front matter:
TOML
draft: "true"
A good practise for me is to connect a local instance of Hugo with GitLab/GitHub. If you want to see your website or a specific post as a rendered version you can turn on and off the visibility of pages using the draft flag with true and false.
If you have finished your tests you can push the final version with or without the draft flag active to the repo and sync it with your server side installation of Hugo.
Posts are displayed in multiple places (RSS feeds, search results, sitemap etc.).
Here is an article with an updated checklist and a solution to publish hidden posts with Hugo
Installation
git clone --recurse-submodules git#github.com:RoneoOrg/hugo-offtherecord-demo.git
cd hugo-offtherecord-demo
hugo serve
Usage
Set offTheRecord to true in the Front Matter of the posts you want to hide. That’s all!
See the source for details

How to see an HTML page on Github as a normal rendered HTML page to see preview in browser, without downloading?

On http://github.com developer keep the HTML, CSS, JavaScript and images files of the project. How can I see the HTML output in browser?
For example this: https://github.com/necolas/css3-social-signin-buttons/blob/master/index.html
When I open this it doesn't show the rendered HTML of the code of author. It shows the page as a source code.
Is it possible to see it as rendered HTML directly? Otherwise I always need to download the whole ZIP just to see the result.
The most comfortable way to preview HTML files on GitHub is to go to https://htmlpreview.github.io/ or just prepend it to the original URL, i.e.: https://htmlpreview.github.io/?https://github.com/bartaz/impress.js/blob/master/index.html
If you don't want to download an archive you can use GitHub Pages to render this.
Fork the repository to your account.
Clone it locally on your machine
Create a gh-pages branch (if one already exists, remove it and create a new one based off master).
Push the branch back to GitHub.
View the pages at http://username.github.io/repo`
In code:
git clone git#github.com:username/repo.git
cd repo
git branch gh-pages
# Might need to do this first: git branch -D gh-pages
git push -u origin gh-pages # Push the new branch back to github
Go to http://username.github.io/repo
🚩 Message from RawGit's creator and owner on https://rawgit.com:
RawGit has reached the end of its useful life
October 8, 2018
RawGit is now in a sunset phase and will soon shut down. It's been a fun five years, but all things must end.
GitHub repositories that served content through RawGit within the last month will continue to be served until at least October of 2019. URLs for other repositories are no longer being served.
If you're currently using RawGit, please stop using it as soon as you can.
When I tried to use it, I got:
403 Forbidden
RawGit will soon shut down and is no longer serving new repos. >> Please visit https://rawgit.com for more details.
You can use RawGit:
https://rawgit.com/necolas/css3-social-signin-buttons/master/index.html
It works better (at the time of this writing) than http://htmlpreview.github.com/, serving files with proper Content-Type headers.
Additionally, it also provides CDN URL for use in production.
It's really easy to do with github pages, it's just a bit weird the first time you do it. Sorta like the first time you had to juggle 3 kittens while learning to knit. (OK, it's not all that bad)
You need a gh-pages branch:
Basically github.com looks for a gh-pages branch of the repository. It will serve all HTML pages it finds in here as normal HTML directly to the browser.
How do I get this gh-pages branch?
Easy. Just create a branch of your github repo called gh-pages.
Specify --orphan when you create this branch, as you don't actually want to merge this branch back into your github branch, you just want a branch that contains your HTML resources.
$ git checkout --orphan gh-pages
What about all the other gunk in my repo, how does that fit in to it?
Nah, you can just go ahead and delete it. And it's safe to do now, because you've been paying attention and created an orphan branch which can't be merged back into your main branch and remove all your code.
I've created the branch, now what?
You need to push this branch up to github.com, so that their automation can kick in and start hosting these pages for you.
git push -u origin gh-pages
But.. My HTML is still not being served!
It takes a few minutes for github to index these branches and fire up the required infrastructure to serve up the content. Up to 10 minutes according to github.
The steps layed out by github.com
https://help.github.com/articles/creating-project-pages-manually
I read all the comments and thought that GitHub made it too difficult for normal user to create GitHub pages until I visited GitHub theme Page where its clearly mentioned that there is a section of "GitHub Pages" under settings Page of the concerned repo where you can choose the option "use the master branch for GitHub Pages." and voilà!!...checkout that particular repo on https://username.github.io/reponame
Also, if you use Tampermonkey, you can add a script that will add preview with http://htmlpreview.github.com/ button into actions menu beside 'raw', 'blame' and 'history' buttons.
Script like this one:
https://gist.github.com/vanyakosmos/83ba165b288af32cf85e2cac8f02ce6d
I have found another way:
Click on the "Raw" button if you haven't already
Ctrl+A, Ctrl+C
Open "Developer Tools" with F12
In the "Inspector" right-click on the tag and choose "Edit HTML"
Ctrl+A, Ctrl+V
Ctr+Return
Tested on Firefox but it should work in other browsers too
If you have configured GitHub Pages you can get your public url like as:
https://<username>.github.io/<repository>/index.html
where <username> & <repository> will be the placeholder for username & repo name respectively
So, the result will be like this:
http://necolas.github.io/css3-social-signin-buttons/index.html
If it is an organization with GithubPages enabled in all the repositories it will be something like:
https://<org>.github.io/<repository>/
Two approaches (for public repositories) worked well for me: both VERY SIMPLE and ABLE TO RENDER COMPLEX HTML PAGES with links to local CSS files and local JAVASCRIPT/VUE files.
METHOD 1 - With GitHub pages
To set up, go to: https://github.com/YOUR_ACCT_NAME/YOUR_REPO_NAME/settings/pages (see screen shot below)
Example of my original HTML page on the repo: https://github.com/BrainAnnex/life123/blob/main/experiments/life_1D/diffusion/diffusion_1.htm
How it looks rendered: https://brainannex.github.io/life123/experiments/life_1D/diffusion/diffusion_1.htm Notice how all the styling, graphics and interactive controls are all good :)
METHOD 2 - With free service raw.githack.com
Go to https://raw.githack.com/ and enter the full URL of yourpage (including the "/blob" part); e.g. https://github.com/BrainAnnex/life123/blob/main/experiments/life_1D/diffusion/diffusion_1.htm
Then the site generates 2 links that work quite well :)
A good alternative if GitHub pages were to become unavailable!
This isn't a direct answer, but I think it is a pretty sweet alternative.
http://www.s3auth.com/
It allows you to host your pages behind basic auth. Great for things like api docs in your private github repo. just ad a s3 put as part of your api build.
If you are using an enterprise Github, you might not want to have a public facing github pages. One thing that worked for us is to:
For a HTML file in: https://github.private-repo.com/team/project/blob/master/order.html
Following is the URL that opens in a browser and retrieves the latest file as HTML:
https://github.private-repo.com/pages/team/project/order.html