Website Creation Notes

Setup

  1. First, follow github’s instructions to create your own website.

  2. Next, install Jekyll on your machine:
    • Install Jekyll on Ubuntu with the following commands:
         sudo apt-get install ruby-full build-essential zlib1g-dev
         echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
         echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
         echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
         source ~/.bashrc
         gem install jekyll bundler
      
    • Install Jekyll on MAC OS. Assuming you already have homebrew installed, the instructions are as below:
        # install chruby and ruby-install
        brew install chruby ruby-install
      
        # check output of CLT: and Xcode:
        brew config
      
        # IF CLT: or Xcode output starts with `14`, install the latest version of ruby
        # with this command
        ruby-install ruby -- --enable-shared 
      
        # else
        ruby-install ruby
      
        # configure your shell to automatcially use chruby
        echo "source $(brew --prefix)/opt/chruby/share/chruby/chruby.sh" >> ~/.zshrc
        echo "source $(brew --prefix)/opt/chruby/share/chruby/auto.sh" >> ~/.zshrc
        echo "chruby ruby-3.1.2" >> ~/.zshrc # run 'chruby' to see actual version
      

      Then quit and re-launch the terminal and check that everything is working with:

        ruby -v
      

      After restarting ruby, install jekyll:

        gem install jekyll
      

      Install missing gems:

        bundle install
        bundle add webrick
      
  3. Build the website locally:
     cd <path-to-alonzolopez.github.io>
     bundle exec jekyll serve
    
  4. Open the following URL in your browser http://localhost:4000

    Jekyll Initial Setup

    Follow the Jekyll Quickstart

  5. Create a new Jekyll site at ./myblog.
     cd <path-to-repo>
     jekyll new myblog
    
  6. Build the site and make it available on a local server.
     cd myblog
     bundle exec jekyll serve
    
  7. Open the following URL in your browser http://localhost:4000

Jekyll Themes

Browse themes from the several links here

Some themes I like:

Minimal Mistakes Theme

Quick Start Guide

gem "minimal-mistakes-jekyll"

To spin up the site:

bundle exec jekyll serve

Left off needing to follow this: https://mmistakes.github.io/minimal-mistakes/docs/installation/

May need to follow this guide instead: https://docs.github.com/en/github/working-with-github-pages/setting-up-a-github-pages-site-with-jekyll

I think I messed up by running jekyll new myblog and not jekyll new .

I should’ve run the MM template auto-generator to create my repo alonzolopez/alonzolopez.github.io.

See configuration for more info on configuring the site.

Next steps:

LaTex

How to add LaTex to MM

Manage a Custom Domain

To point the domain www.alonzolopez.com to alonzolopez.github.io, follow this guide: Managing a custom domain for your github pages site.

Bluehost > Domains > alonzolopez.com > Manage > DNS > CNAME and edit the www Host Record so that it points to alonzolopez.github.io. It will take some time for the domain

Enable HTTPS:

To get alonzolopez.com to work, don’t Configure an apex domain; instead, go into Bluehost > Domains > Redirects and setup a redirect from original domain alonzolopez.com to target domain https://www.alonzolopez.com (note the https!).

Workflow Notes

Resources

if you encounter problems…

bundle exec jekyll serve –verbose

Go to the url in the terminal to see the changes locally.

Then push to the central repo hosted on github and wait for changes to appear online.

## Changing the Masthead.
To change the masthead, see [this](https://mmistakes.github.io/minimal-mistakes/docs/navigation/#masthead) guide. 

The masthead is on the top right in this image:
![masthead](/documentation/images/masthead.png)
To change it, add titles and urls in `_data/navigation.yml`

## Creating the Portfolio Section
I only have to do this once to create the portfolio section, but this is how I did it:
Follow the [Working with Collections guide](https://mmistakes.github.io/minimal-mistakes/docs/collections/). The steps are:
1. Add the following to _config.yml
    ```yml
    collections:
    portfolio: 
        output: true
        permalink: /:collection/:path/
    ```
2. Create the file _pages/portfolio.md and populate it with the Front Matter.
3. Create a folder `_portfolio/` and populate it with .md files for each page.

## Adding a New Project to the Porftlio
To add a new project to the portfolio, add a new `.md` file under `_portfolio/` for the project.

## Creating the Music Section
Follow the same instructions in the "Creating the Portfolio Section" above to create the Music Section.

## Adding Pages to the Music Section
To add a new page to the music section, add a new `.md` file under the `_music/` for the song's page.


## Adding Quotes
To add a new quote to the posts page, add the quote's .md file in `_quotes/` following the [YEAR-MONTH-DAY-title.md](https://jekyllrb.com/docs/posts/) format.

## Adding a New Post
Follow the [working with posts guide](https://mmistakes.github.io/minimal-mistakes/docs/posts/).
Basically, just:
1. Create a new file in the `_posts/` folder in the `YEAR-MONTH-DAY-title.md` formate. [See this reference](https://jekyllrb.com/docs/posts/) for more on the format.
2. Add a yml front matter like the one below:
    ```yml
    ---
    title: "Robotics Skills"
    excerpt: "My roadmap of robotics skills to acquire"
    categories:
        - Robotics
    tags:
        - Whimsical
    ---
    ```
3. Populate the page with content in markdown's syntax.

If you encounter any problems viewing a new post, try building the site with the verbose flag:

```bash
bundle exec jekyll serve --verbose

Writing Draft Posts

Drafts are posts without a date in the filename. They’re posts you’re still working on and don’t want to publish yet. To get up and running with drafts, create a _drafts folder in your site’s root and create your first draft:

bundle exec jekyll serve --drafts

Adding Custom Sidebar Menus

Custom Sidebar Menu

Embedding YouTube Videos

On the YouTube video you’d like to share, click Share > Embed and under Embed Options check Enable privacy-enhanced mode. Then click Copy and paste the html in your .md file. For example:

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/7-lWzQd_xeQ?controls=0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Embedding SoundCloud songs

Minimal Mistakes remote theme starter

Click Use this template button above for the quickest method of getting started with the Minimal Mistakes Jekyll theme.

Contains basic configuration to get you a site with:

Replace sample content with your own and configure as necessary.


Troubleshooting

If you have a question about using Jekyll, start a discussion on the Jekyll Forum or StackOverflow. Other resources: