Giter Site home page Giter Site logo

blog's Introduction

my blog

Quick Installation

sudo dnf remove ruby
sudo dnf install rbenv ruby-build
rbenv install 3.0.1
rbenv global 3.0.1

# add this to your ~/.bashrc
exec PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
#############################################

git clone https://github.com/nrmancuso/blog.git
cd blog
./bin/bootstrap
bundle install

Running Locally

./bin/start - development server will start at http://127.0.0.1:4000

Deployment

Just push to main branch, and github actions will take care of the rest.

Customizing

You can edit _config.yml file to customize your blog. You can change things such as the name of the blog, the author, the appearance of the theme (light, dark or auto), how dates are formatted, etc. Customizable fields should be straightforward to understand. Still, _config.yml contains some comments to help you understand what each field does.

For further customization (e.g. layout, CSS) see the official Jekyll's documentation on customizing gem-based themes.

Customize the menu

In order to add/edit/delete entries in the home page, you can copy the home.yml file inside _data folder. Through that file you can define the structure of the menu and add data for navbar, footer, portfolio or simply remove all of that and use simple blog layout. Take a look at the default configuration to get an idea of how it works and read on for a more comprehensive explaination.

The home.yml file accepts the following fields:

  1. Vertical list
  • entries define a new unordered list that will contain menu entries
  • each entry is marked by a - at the beginning of the line
  • each entry has the following attributes:
    • title, which defines the text to render for that menu entry
    • url, which can either be a URL or false. If it is false, the entry will be rendered as plain text; otherwise the entry will be rendered as a link pointing to the specified URL. Note that the URL can either be relative or absolute.
    • post_list, which can be true or false. If it is true, the entry will have all posts in the site as subentries. This is used to render your post list.
    • entries, yes, you can have entries inside entries. In this way you can create nested sublists!
  1. Card list - cards are used to showcase portfolio projects. Please see project_entries in _data/home.yml file
  • each entry is marked by a - at the beginning of the line
  • each entry has the following attributes:
    • title defines the header of the card
    • desc is the body of the card
    • url is a relative or absolute link which this card can point to.
    • highlight in case you want to highlight something, keep the text short though
  1. Horizontal list - moonwalk uses horizontal lists to create navbar and footer. Please see navbar_entries and footer_entries in data/home.yml file
  • each entry is marked by a - at the beginning of the line
  • each entry has the following attributes:
    • title defines the header of the card
    • url is a relative or absolute link which this card can point to.

Pro tips

  1. Moonwalk has 3 in-built layouts:
  • post - for content
  • blog - for listing blog posts
  • home - for landing page you can change your index.md file to use either home or blog layout.
  1. It is extremely easy to tweak the color scheme.
  • for light mode, customize these css variables
html {
    --bg: #fff;
    --bg-secondary: #f3f4f6;
    --headings: #1e293b;
    --text: #374151;
    --text-secondary: #6b7280;
    --links: #6366f1;
    --highlight: #ffecb2; // light yellow
    --code-text: #9d174d;
}
  • for dark mode customize these css variables
@mixin dark-appearance {
  html, body  {
      --headings: #74c0fc;
      --links: #91a7ff;
      --highlight: #41c7c7;
      --bg: #1f242a;
      --bg-secondary: #323945;
      --text: #adb5bd;
      --text-secondary: #9ca3af;
      --code-text: #91a7ff;
  };
}

Development

To set up your environment to develop this theme, run bundle install.

Your theme is setup just like a normal Jekyll site! To test your theme, run bundle exec jekyll serve and open your browser at http://localhost:4000. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.

When your theme is released, only the files in _layouts, _includes, _sass and assets tracked with Git will be bundled. To add a custom directory to your theme-gem, please edit the regexp in moonwalk.gemspec accordingly.

Acknowledgement

This theme's original base is no style please! theme created by Riccardo Graziosi - many thanks to him for creating a wonderful theme with nearly no css.

License

The theme is available as open source under the terms of the MIT License.

blog's People

Contributors

abhinavs avatar nrmancuso avatar kleest avatar mydayyy avatar xyzzy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.