Consume an RSS Feed for Syndication in Jekyll - jekyll

I have two jekyll web sites, and I want to syndicate some of the content (one of the categories) from the source blog to the receiving blog via syndication.
I can see how RSS feeds are automatically created with jekyll, but how does one consume them on another site - so that it looks like those posts are from that second site?
Can I do this in jekyll?

The biggest problem is that you jekyll is a static website generator. So you can't do this automatically inside of Jekyll. However, there are two options:
You would need to setup a cron script of some sort that pulls down the RSS feed, creates the jekyll files, runs the jekyll command and uploads it to the web. This can all be automated.
You could use javascript to display this all. This would basically be writing your own java script (or modifying one you found on the internet). You could use something like this: http://code.google.com/p/jsrss/

Related

How to change paths and URLs in Jekyll?

I am very new to Jekyll and I am failing to find configuration to change the following:
I built a basic Jekyll site using jekyll new . and ran jekyll serve to learn and built a layout using Jekyll. The basic test site gives me the following URL for posts: /jekyll/update/2016/01/30/welcome-to-jekyll.html. Is the URL like that because I am running jekyll serve and not jekyll build? I want to remove the the jekyll/update from the URL path, so my final URLs for posts look like the following: /2016/01/30/welcome-to-jekyll.html.
I want my pages to be stored in a separate directory _pages instead of the root directory. How can I do that?
Is there way to prepend a path to files loaded from a specific directory? For example, I want to make a /_projects directory. Then add files with the following permalinks: /prj-test1, /prj-test2, /prj-test3. When compiled, I want to get the following URLs: /projects/prj-test1, /projects/prj-test2, /projects/prj-test3, respectively. Is this possible?
Yes, everything you asked is possible.
Take a look at these examples, you might want to choose one of them. But to do as you asked, you'll need to change the permalink to /:year/:month/:day/:title.html. To do that, add this line to your _config.yml file:
permalink: /:year/:month/:day/:title.html
It depends on the structure you want to achieve. You can use collections or simply create pages inside a folder called pages (without the underscore).
Yes. You can do that via collections, for example.
I recommend you to take a look at some templates, so you can see how the code works in different ways:
Try some Jekyll Themes here and here. Download them and study their structures.
If you want to go deep, take a look how Jekyll build its own website.
Hope to have helped!

How do I get a largely HTML site generated from a rails app?

I would like to create a Rails 4 app, where some data is entered into the db via a form and when it is published, any changes on the site are compiled and the entire consumer facing site is just a bunch of flat HTML files.
That way, on each request there isn't a db request done and just a simple HTML file is sent.
This is similar to the way Octopress operates, where you write a blog post locally and when you do a deploy it basically compiles the entire site into a large set of connected HTML files that are then pushed to your host(gh-pages for instance).
Is there a way to use extensive caching or something similar to get the same effect in Rails 4 or should I go about it another way in Rails or should I just try to customize Octopress for my needs?
Have a look at page caching, it has been moved from Rails to a separate gem
https://github.com/rails/actionpack-page_caching
It saves the generated HTML files to a specified directory which you should be able to deploy separately from the rest of the application.

Grunt module to inject HTML templates

Recently started using Grunt as a build tool for a web app I'm hobbyist developing. I have a series of HTML files (to be used as templates), in a single folder, that I'd like injected at a particular point in the main HTML file.
Ideally, I could also wrap each file in a tag, but having to manually include this in the template files themselves is acceptable.
Is there an existing Grunt module to perform this?
EDIT: I may have worded my problem poorly before. Essentially, I have a single HTML file where the app will run (Single page app, business simulation game). In a separate folder, I have a series of HTML templates. Each of these template represents a dialog, or custom info page, something of that nature. As the app is developed, more and more templates will be in this folder.
Rather than manually including each one in my page, I'd like a way to automate injecting them that I can manage through Grunt.
I may be late to answer this question, but for anyone that end up here, I found this grunt-plugins, maybe they help you too:
grunt-replace.
grunt-html-build.
grunt-processhtml.

Publish a new post on Octopress from another computer

I am currently exploring Octopress. One question popped up during the course of my work - is there an easy way to publish a post from a random computer/device. I mean - if I do this via rake new_post['title'] I must have the whole thing set up on the machine I am doing it from - Ruby, gems etc.. Is there an easier way - like create a markdown document and than just send it to the Github repository?
I think there is no way to do that.
Since octopress is based on Jekyll, every page is rendered as follows:
Render Liquid
Convert if a converter exists for that extname(e.g. .markdown)
Render layout(s) recursively.
That is to say, for such a static website, it's unable to show a markdown document directly.
On the other hand, if what we send to repo is not a markdown file which must be converted to html to be showed, but a html directly, it's also not possible to make the site work normally.
Since not only the post page itself should be generated, but also many related parts such as index page, categories and so on.
In one word, octopress is static, we need generation before deployment.
Reference:Allow markdown to not be compiled to html

GitHub Pages: Octopress in Subfolder (other pages in root)

I'm in the process of moving my blog from self-hosted Wordpress to (GitHub-pages powered) Octopress.
Thus far, I have successfully set up & copied my blog over to myusername.github.com, which has the CNAME http://mydomain.com. (So, browsing http://mydomain.com shows my Octopress blog. Dandy.)
I would like to modify my setup so that things are as follows:
http://mydomain.com → Simple html landing page
http://mydomain.com/blog → Octopress blog, in all its glory
http://mydomain.com/sdf → Miscelaneous other simple html sites that I would like to host
http://mydomain.com/sdfsdfdsf -> As above
... (an arbitrary number of other root-level sites)
However…I would like my landing page (and other misc sites) to be hosted from the GitHub-pages repo, and the source stored alongside Octopress.
Ideally, «octopress»/source/ would look like this:
«octopress»/source/index.html → My landing page
«octopress»/source/blog/* → Normal Octopress source folder (contains _posts, assets, _layouts, etc.)
«octopress»/source/sdf/index.html → Other misc sites
Thus far, I have found instructions about how to deploy Octopress to a subdirectory. But as far as I can tell, these instructions don't allow you to have other misc sites under «octopress»/source/.
I would love suggestions about how to accomplish what I'm after. I have a feeling it won't be hard (just tweaks to some Jekyll files somewhere, perhaps).
Many thanks,
You can change your blog index page to blog/index.html like the document describes. Then, put your landing page and other sites into /source directory.
If you are running Jekyll locally rather than using the version on the github server, you don't need to do everything within Jekyll - simply have a shell script move some folders around between the generate and deploy steps.
After Jekyll runs, everything is static files, and the deployment step is just committing and pushing whatever happens to be in the output folder at that point.