GithubHelp home page GithubHelp logo

lschierer / hugo-theme-terminal Goto Github PK

View Code? Open in Web Editor NEW

This project forked from panr/hugo-theme-terminal

0.0 0.0 0.0 3.94 MB

A simple, retro theme for Hugo

License: MIT License

HTML 37.11% JavaScript 11.31% CSS 51.41% Shell 0.17%

hugo-theme-terminal's Introduction

Terminal

Terminal

NOTE: This is a modified fork of Panr's original Terminal theme to add light variants. As such, there are breaking changes from Panr's theme and is a standalone repository. Only light colours can be used with confidence: light_green, light_blue, light_pink, light_red and link_orange. Until this theme is published on Hugo themes directory, you need to use this repository instead of Panr's.

Features

  • 5 duotone themes, depending on your preferences (orange is default, red, blue, green, pink)
  • Fira Code as default monospaced font. It's gorgeous!
  • really nice duotone, custom syntax highlighting based on PrismJS
  • fully responsive

Built-in shortcodes

  • image (props required: src; props optional: alt, position (left is default | center | right), style)
    • e.g.
    {{< image src="/img/hello.png" alt="Hello Friend" position="center" style="border-radius: 8px;" >}}
  • figure (same as image, plus few optional props: caption, captionPosition (left | center is default | right), captionStyle)
    • e.g.
    {{< figure src="/img/hello.png" alt="Hello Friend" position="center" style="border-radius: 8px;" caption="Hello Friend!" captionPosition="right" captionStyle="color: red;" >}}
  • code (props required: language; props optional: title, id, expand (default "△"), collapse (default "▽"), isCollapsed)
    • e.g.
    {{< code language="css" title="Really cool snippet" id="1" expand="Show" collapse="Hide" isCollapsed="true" >}}
    pre {
      background: #1a1a1d;
      padding: 20px;
      border-radius: 8px;
      font-size: 1rem;
      overflow: auto;
    
      @media (--phone) {
        white-space: pre-wrap;
        word-wrap: break-word;
      }
    
      code {
        background: none !important;
        color: #ccc;
        padding: 0;
        font-size: inherit;
      }
    }
    {{< /code >}}

Code highlighting

A custom syntax highlighting based on PrismJS. All you need to do is to wrap you code like this:

```html
  // your code here
```

Supported languages: actionscript, apacheconf, applescript, bash, c, clike, cmake, coffeescript, cpp, csharp, csp, css, css-extras, diff, django, docker, elixir, elm, erlang, flow, fsharp, git, go, graphql, haml, handlebars, haskell, http, java, javascript, json, jsx, kotlin, latex, less, llvm, makefile, markdown, markup, markup-templating, nasm, objectivec, ocaml, perl, php, php-extras, powershell, processing, pug, python, r, reason, ruby, rust, sass, scala, scheme, scss, sql, stylus, swift, textile, toml, tsx, twig, typescript, vim, visual-basic, wasm, yaml.

How to start

You can download the theme manually by going to https://github.com/rampadc/hugo-theme-terminal.git and pasting it to themes/terminal in your root directory.

You can also clone it directly to your Hugo folder:

git clone https://github.com/panr/hugo-theme-terminal.git themes/terminal

If you don't want to make any radical changes, it's the best option, because you can get new updates when they are available. You can also include it as a git submodule:

git submodule add -f https://github.com/panr/hugo-theme-terminal.git themes/terminal

⚠️ The theme needs at least Hugo version 0.74.x.

How to run your site

If you installed all needed npm dependencies, then you can run:

hugo server -t terminal

and go to localhost:1313 in your browser. From now on all the changes you make will go live, so you don't need to refresh your browser every single time.

How to configure

The theme doesn't require any advanced configuration. Just copy:

baseurl = "/"
languageCode = "en-us"
theme = "terminal"
paginate = 5

[params]
  # dir name of your main content (default is `content/posts`).
  # the list of set content will show up on your index page (baseurl).
  contentTypeName = "posts"

  # ["light_orange", "light_blue", "light_red", "light_green", "light_pink"]
  themeColor = "light_orange"

  # if you set this to 0, only submenu trigger will be visible
  showMenuItems = 2

  # show selector to switch language
  showLanguageSelector = false

  # set theme to full screen width
  fullWidthTheme = false

  # center theme with default width
  centerTheme = false

  # if your resource directory contains an image called `cover.(jpg|png|webp)`,
  # then the file will be used as a cover automatically.
  # With this option you don't have to put the `cover` param in a front-matter.
  autoCover = true

  # set post to show the last updated
  # If you use git, you can set `enableGitInfo` to `true` and then post will automatically get the last updated
  showLastUpdated = false

  # set a custom favicon (default is a `themeColor` square)
  # favicon = "favicon.ico"

  # Provide a string as a prefix for the last update date. By default, it looks like this: 2020-xx-xx [Updated: 2020-xx-xx] :: Author
  # updatedDatePrefix = "Updated"

  # set all headings to their default size (depending on browser settings)
  # oneHeadingSize = true # default

  # whether to show a page's estimated reading time
  # readingTime = false # default

  # whether to show a table of contents
  # can be overridden in a page's front-matter
  # Toc = false # default

  # set title for the table of contents
  # can be overridden in a page's front-matter
  # TocTitle = "Table of Contents" # default


[params.twitter]
  # set Twitter handles for Twitter cards
  # see https://developer.twitter.com/en/docs/tweets/optimize-with-cards/guides/getting-started#card-and-content-attribution
  # do not include @
  creator = ""
  site = ""

[languages]
  [languages.en]
    languageName = "English"
    title = "Terminal"
    subtitle = "A simple, retro theme for Hugo"
    owner = ""
    keywords = ""
    copyright = ""
    menuMore = "Show more"
    readMore = "Read more"
    readOtherPosts = "Read other posts"
    newerPosts = "Newer posts"
    olderPosts = "Older posts"
    missingContentMessage = "Page not found..."
    missingBackButtonLabel = "Back to home page"

    [languages.en.params.logo]
      logoText = "Terminal"
      logoHomeLink = "/"

    [languages.en.menu]
      [[languages.en.menu.main]]
        identifier = "about"
        name = "About"
        url = "/about"
      [[languages.en.menu.main]]
        identifier = "showcase"
        name = "Showcase"
        url = "/showcase"

to config.toml file in your Hugo root directory and change params fields. In case you need, here's a YAML version.

NOTE: Please keep in mind that currently main menu doesn't support nesting.

Post archetype

See the default post file params supported by the theme — https://github.com/panr/hugo-theme-terminal/blob/master/archetypes/posts.md

Add-ons

How to (safely) edit the theme

If you have to override only some of the styles, you can do this easily by adding static/style.css in your root directory and point things you want to change.

To change something directly in the theme, you have to go to themes/terminal and modify the files.

First, you need to install Node dependencies. To do so, go to the theme directory (from your Hugo root directory):

 cd themes/terminal

then run:

npm install
npm i yarn
yarn

After you modified the files you can run webpack in watch mode:

yarn dev

or rebuild theme

yarn build

To see the changes (remember to restart hugo server).

License

Copyright © 2019-2020 Radosław Kozieł (@panr) Copyright © 2019-2021 Radosław Kozieł (@panr), Cong Nguyen (@congxdev) Copyright © 2022 Luke Schierer ((lschierer)(https://www.schierer.org/~luke))

The theme is released under the MIT License. Check the original theme license for additional licensing information.

hugo-theme-terminal's People

Contributors

panr avatar willstocks avatar rampadc avatar lschierer avatar dependabot[bot] avatar knightjoel avatar horochx avatar funayman avatar sophiabrandt avatar rinma avatar newhinton avatar kalbasit avatar indrora avatar ffluegel avatar elraro avatar gdfrancia avatar mcwertgaming avatar icy-comet avatar bugfix123 avatar zchrykng avatar billyogat avatar rossmckelvie avatar nanda-g avatar louisload avatar luigifcruz avatar hritik14 avatar brotherlymite avatar sgaduuw avatar davidhollis avatar cmiksche 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.