website/themes/terminal-plus-minus/README.adoc
2019-09-02 01:51:06 +08:00

1037 lines
30 KiB
Plaintext

= Terminal Plus-Minus
:toc:
A fork of the
original https://github.com/panr/hugo-theme-terminal[Hugo Terminal theme]
with some of its original feature set being removed to
be replaced for new ones.
Aimed for technical writers, programmers, and tech enthusiasts.
This theme combines retro vibes with modern-looking styles.
When settling with this theme, you should be prepared for some
tweaking of the settings.
== Demo
Here's a
https://foo-dogsquared.github.io/hugo-theme-terminal-plus-minus-demo/[demo]
of the theme.
The raw files can be easily seen in
https://github.com/foo-dogsquared/hugo-theme-terminal-plus-minus-demo/[my GitHub repo].
It should give you an idea of using it in a real-life example.
The demo also utilizes
https://travis-ci.com/[Travis CI] as the deployment tool.
Check out the
https://github.com/foo-dogsquared/hugo-theme-terminal-plus-minus-demo/blob/master/.travis.yml[config file]
of it to get an example.
You can also get the
https://github.com/foo-dogsquared/hugo-theme-terminal-plus-minus-demo/blob/master/config.toml[configuration]
of the theme used from the demo.
It should be usable and can be a great starting point to explore
the available options and can be used to experiment along reading through the
documentation.
== Differences from the original
Being a fork of a theme, there are some differences.
Here are the feature highlights (and removals) that
the theme offers:
* A recreation of the original theme, almost built from scratch
* Easy configuration and customization with https://sass-lang.com/[SCSS]
* Aims on supporting engineering and technical content
* Different approach of content organization
* Suitable for creating a quick single homepage template and blogging
* Primarily focuses on including support for https://asciidoctor.org/[Asciidoctor]
* Includes https://www.mathjax.org/[MathJax] support
* Retained syntax highlighting support from https://highlightjs.org/[highlight.js]
and https://prismjs.com/[PrismJS]
* Reduced internationalization (i18n) support (for now, anyway)
* Removed selection of available themes
* Removed https://nodejs.org/[Node] dependencies from the original theme
== Changelog
To keep up with the changes and latest features, you can view the
link:docs/CHANGELOG.adoc[changelog].
All future features has to be implemented in a separate development
branch (`develop`) and you can view the pending changes there.
== Installation
Since this theme uses SASS/SCSS asset bundling, it requires
the extended version of Hugo.
In order to check whether or not you have the extended
version installed, just run `hugo version` and check for
the keyword `extended` after the version number.
For future references and safety purposes, make sure that
the version is at least `v0.57.2`.
If you're using Asciidoctor, make sure that the version is at
least `v2.0.10`.
=== Adding it as a clone
Assuming you have installed the appropriate programs and
using https://git-scm.com/[Git], you can clone it directly
to your Hugo folder:
[source,bash]
----
git clone https://github.com/foo-dogsquared/hugo-theme-terminal-plus-minus.git themes/terminal-plus-minus
----
If you don't want to make any radical changes, this is the best option
since you can simply update it
(i.e. `cd themes/terminal-plus-minus && git fetch`) whenever updates
are available.
=== Adding it as a submodule
You can also include it as a
https://git-scm.com/book/en/v2/Git-Tools-Submodules[git submodule].
This option is mostly suitable if you want to make changes to the
theme from its layouts, partials, and assets.
[source,bash]
----
git submodule add https://github.com/foo-dogsquared/hugo-theme-terminal-plus-minus.git themes/terminal-plus-minus
----
== Libraries used
For future references, here is the list for the libraries
included with this theme along with their version:
* https://www.mathjax.org/[MathJax] v2.7.6
* https://highlightjs.org/[highlight.js] v9.15.10
* https://prismjs.com/[PrismJS] v1.17.1
* https://fusejs.io/[Fuse.js] v3.4.5
== Configuration
The theme doesn't require any advanced configuration.
You can copy the sample configuration below and try to experiment
with it.
https://gohugo.io/getting-started/configuration/[Default configuration settings]
also apply here.
NOTE: From this point, this assumes that you want to create the
config as a TOML file.
Please change the format according to your chosen data format for
your configuration file.
[source,toml]
----
baseURL = "https://example.com/"
languageCode = "en-us"
title = "Terminal Plus-Minus"
description = "Generic description!"
summaryLength = 15
paginate = 5
disqusShortname = "doogo"
copyright = "Unless explicitly stated, all content released here are licensed under [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0)."
[author]
name = "John Dodo"
alias = "ordinary-extinction"
email = "johndodo@example.com"
[menu]
[[menu.main]]
identifier = "articles"
name = "Articles"
url = "articles/"
[[menu.main]]
identifier = "about"
name = "About"
url = "about/"
[[menu.main]]
identifier = "archives"
name = "Archives"
url = "archives/"
[[menu.main]]
identifier = "rss"
name = "RSS"
url = "index.xml/"
[params]
# The subtitle of the blog. Mostly appears in the <title> tag.
subtitle = "Blogger"
keywords = ["John Dodo", "ordinary-extinction", "blog"]
# The tagline that'll appear in the homepage as the first header.
tagline = "Making near destructive blogs all around the world."
# Show posts on home. :)
showPostsOnHome = true
# Indicates if the site sections should be listed instead.
# Requires `showPostsOnHome` to be enabled.
# listSiteSectionsOnHome = true
# Enables syntax highlighting. ;p
enableSyntaxHighlighting = true
# Set the syntax highlighter to be used.
# Only valid options are "highlighterjs" or "prismjs".
# By default, it uses highlighter.js as the syntax highlighter if there's no set value.
# syntaxHighlighter = "prismjs"
# Indicates to show the icon whether the link leads to a page or a section.
# The effect is visible if `showPostsOnHome` is at least enabled.
# showPageTypeIcon = true
# Shows breadcrumbs in the post.
# enableBreadcrumbs = true
# Indicates if certain headers have to be styled.
# contentIsStyled = true
----
=== Changing appearance
If you want to change common styles like the background color,
text color, or the main color, you can add a `config.scss` file
in `assets/scss` in your Hugo project directory.
You can view the link:assets/scss/default.scss[default SCSS config file]
for a reference to what variables should be filled.
If you want to override the styles, you can create a file named
`extend.scss` in `assets/scss` of your Hugo project directory.
From there, you can simply add/modify/remove some styling rules yourself.
If you want to add some custom fonts, make sure you'll define them through
https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face[`@font-face`] rule.
For placing font files, you can put them in the `static/fonts` folder.
For those who haven't encountered SCSS yet, it's almost like a superset
of CSS but with additional stuff.
Here's a https://sass-lang.com/guide[guide] and the
https://sass-lang.com/documentation/[documentation] page to get started.
== Making a portfolio site
This theme is suitable for creating a single portfolio page.
Please continue to the following sections for the available options
and other stuff you might need to know.
=== Related configuration options
Here are the main site config options you may want to look out
for if you want to create a single page portfolio site:
[cols="5*",options="header"]
|===
| Key
| Data type
| Description
| Optional
| Additional notes
| `title`
| string
| This is the title to appear in the header logo.
Also appears in the `<title>` of the web page.
|
|
| `author.name`
| string
| The real name of the author.
|
|
| `author.alias`
| string
| The handle/username/alias of the author.
| Yes
|
| `params.tagline`
| string
| This will appear in the homepage as the first header to be seen.
| Yes
|
| `params.keywords`
| array[string]
| A list of keywords related to your site.
| Yes
| Quite important if you consider search engine optimization (SEO).
| `params.subtitle`
| string
| The subtitle for your blog.
Usually, this is where you put your position, occupation, or
whatever.
| Yes
| Also appears in the `<title>` of the web page in the format
`<TITLE> - <SUBTITLE>` in the homepage.
|===
=== Adding projects
You can also add some projects to your data by adding a
data file named `projects` (i.e. `projects.json`, `projects.yaml`, etc.)
into your https://gohugo.io/templates/data-templates/[data folder].
Make sure that the data file contains a single key/field named
`list` that holds an array/list.
When there's at least one project, a projects section will
be added into your homepage and the data added in the
appropriate folder is added under it.
Anyhow, here's the following keys/fields that the theme
look for:
[cols="5*",options="header"]
|===
| Key
| Data type
| Description
| Optional
| Additional notes
| `id`
| string
| The identifier for the project.
|
|
| `name`
| string
| The name of the project.
This is the name that'll appear in the homepage.
|
|
| `link`
| string
| The website/homepage of the working project.
| Yes
| This is not where the link to the remote repository of the project.
| `repo`
| string
| The link to the repo of the project.
| Yes
|
| `description`
| string
| The description of the project.
| Yes
|
|===
If you want to see a live example of it, you can check out my
https://github.com/foo-dogsquared/foo-dogsquared.github.io[the repo of my own site]
and check the output of it in https://foo-dogsquared.github.io/[my site].
=== Adding contact
If you want to add some links to your other stuff like
GitHub, GitLab, Twitter, and whatnot, you can add a
data file named `contacts` (i.e. `contacts.json`, `contacts.yaml`, etc.)
in the https://gohugo.io/templates/data-templates/[data folder].
Make sure that the data file contains a single key/field named
`list` that holds an array/list.
Here's a table of the following key/fields that theme looks for:
[cols="5*",options="header"]
|===
| Key
| Data type
| Description
| Optional
| Additional notes
| `id`
| string
| The identifier for the object.
|
| This ID will be used as the `symbol` in the SVG spritesheet file in
`static/social-icons.svg` in the theme folder.
The social icons are extracted from
https://github.com/simple-icons/simple-icons[Simple Icons set].
| `url`
| string
| The hyperlink of the additional contact.
|
|
| `name`
| string
| The name of the contact link.
| Yes
| If the links are set to be text, the value of this key will be used.
Otherwise, if the links are set to be text and there's no value to this
key, the `id` will be used, instead.
|===
By default, the hyperlinks for your contacts are in text.
If you want to make it into an icon, you could set the
parameter `params.useLinkIcons` to `true` in the site config file.
Be cautious of using this, since any unavailable icons will
not be rendered.
In order to see how this works, it basically relies on using
https://css-tricks.com/svg-symbol-good-choice-icons/[SVG spritesheets]
in `static/social-icons.svg` (in the theme folder) with symbols.
.`useLinkIcons` set to `true`
image::docs/show-link-icons-enabled.png[width=100%]
.`useLinkIcons` set to `false` (recommended)
image::docs/show-link-icons-disabled.png[width=100%]
NOTE: The whole spritesheet is extracted from the
https://github.com/simple-icons/simple-icons/[Simple Icons icon set].
== Making a blog site
This theme is also suitable to be a blogging theme.
Most of the stuff from making a single homepage site also applies here.
With the focus on blogging, content organization should be a breeze.
(Of course, as long as it follows the way of
https://gohugo.io/content-management/organization/[organizing content from Hugo].)
Unlike the original theme, it doesn't find a name of the
folder to list its pages.
Instead, all of the files and directories under `content/`
should be able to be listed (except for the top-level files
probably).
If you want to make a post series, you could either put
the content files under `posts/` and assign the same category
to all of them or simply make a folder named after the series
and put the content files there.
=== Related configuration options
There are some parameters in the site configuration you might
want to try out if you're using it for blogging.
[cols="5*",options="header"]
|===
| Key
| Data type
| Description
| Optional
| Additional notes
| `params.showPostsOnHome`
| boolean
| Indicates if the homepage should show the pages
from the content folder.
| Yes
|
| `params.listSiteSectionsOnHome`
| boolean
| Indicates if the homepage should list the
site sections (top-level directories of the site)
instead of the pages
| Yes
| You need to have `showPostsOnHome` set to `true` to
make have this effect visible.
| `params.showPageTypeIcon`
| boolean
| Shows the icon for page type (either if it's a folder or a file in
the content folder) in the home page.
| Yes, completely
| For the theme, a page is a "folder" if its base filename is `_index`.
| `params.contentIsStyled`
| boolean
| Makes the single page template content to have
some styles into them (see the resulting headers, for example).
| Yes
| This is just for decorative purposes.
| `params.enableSyntaxHighlighting`
| boolean
| Enables "native" syntax highlighting without relying to the
built-in highlight shortcode.
This uses https://prismjs.com/[PrismJS] for the highlight feature.
| Yes
| This also enables native syntax highlighting for Asciidoctor!
Hallejulah!
| `params.syntaxHighlighter`
| string
| Sets the syntax highlighter to be used.
Valid options include `highlightjs` and `prismjs`.
When no value is given, it'll use highlight.js as the default
syntax highlighter.
| Yes
| Despite being the same in goal (coloring syntax), it has subtle
differences in results.
See the "Issues in Asciidoctor and other stuff" section.
| `params.enableBreadcrumbs`
| boolean
| Enables
https://www.smashingmagazine.com/2009/03/breadcrumbs-in-web-design-examples-and-best-practices/[site breadcrumbs]
in the posts (single page templates) that'll appear at the top of the post.
| Yes
|
| `params.enableSiteSearch`
| boolean
| Enables navigation through searching.
The search widget is located at the bottom of the page.
| Yes
| This feature is experimental.
Don't expect a lot of stability with this.
If your site is large enough, I recommend to integrate with stronger tools
such as Algolia.
| `params.readMore`
| string
| Replaces the "Read more" text at the very end of the summary of each post.
| Absolutely
|
|===
=== Content organization
The way how the theme organizes content (and encourages)
is simple.
The theme considers all of the pages and sections except for
the top-level pages.
By default, the theme does not list posts in the homepage.
In order to do so, set the `params.showPostsOnHome` to `true` on
your site config file.
All of the posts (except for the top-level pages) are now
listed in the homepage.
NOTE: Folders with an `_index` file is considered a
section so it'll be listed. Make sure any pages that shouldn't
normally appear in the post list be a single page.
.`showPostsOnHome` set as `true`
image::docs/show-posts-on-home-enabled.png[width=100%]
If you want to list sections instead of the page, you should
enable the `params.listSiteSectionsOnHome` to `true` on the site
config file.
Take note that the `params.showPostsOnHome` also needs to be
enabled for this setting to work.
.`listSiteSectionsOnHome` set as `true`
image::docs/list-site-sections-on-home-enabled.png[width=100%]
=== Content frontmatter
Assuming you didn't modify the theme in any way, here are
some of the keys in the content frontmatter used by the
theme:
[cols="5*",options="header"]
|===
| Key
| Description
| Optional
| Additional notes
| Example
| `title`
| The title of the post.
| Yes but actually no
| If the given data is null or not valid, it'll appear
with no title at all and it'll be a pain to sort this out so
you're on your own, pal.
| `"Markdown Syntax Guide"`
| `date`
| The publication date of the post.
| Yes but actually no
| If the given data does not result to a proper date format
or if it's null value, its publication date will appear as
published on 2001-01-01 (January 1, 2001).
Also a pain to sort this out.
| `2019-08-25T21:06:56+08:00`
| `categories`
| The categories associated with the post.
*Must be an array composed of only one string.*
This is mostly for the default setting from
https://jekyllrb.com/[Jekyll].
| Yes
| One of the
https://gohugo.io/content-management/taxonomies/#default-taxonomies[default taxonomies].
Mainly useful to establish general grouping for your posts.
| `["guide"]`
| `tags`
| The tags associated with the post.
*Must be an array with at least one string.*
| Yes
| Also one of the
https://gohugo.io/content-management/taxonomies/#default-taxonomies[default taxonomies].
Mostly useful for establishing some indexes for the posts.
| `["markdown", "guide"]`
| `author`
| The author of the particular post.
| Yes
| Use this if you have a guest post or has multiple authors in the site.
| `"Rob Pike"`
| `cover`
| The banner image of the post.
| Yes
| Accepts URL or a relative path to the image.
| `http://i3.ytimg.com/vi/dQw4w9WgXcQ/maxresdefault.jpg`
|===
=== Post archive page
You can make a quick archive page by creating a content file with
the content type as `archive`.
Assuming that you have `content/archives.md` as the page for the
archive, create a frontmatter similar to the following.
[source,yaml]
----
---
title: "Archives"
date: 2019-08-28T14:32:44+08:00
type: "archive"
---
----
Don't forget to edit the site config file accordingly.
In this case, the added setting should be an additional
item in the navigation menu which is controlled
by the `menu` parameter.
[source,toml]
----
[menu]
// ...
[[menu.main]]
identifier = "archives"
name = "Archives"
url = "archives/"
----
Here's a sample of the archive page in the site.
image::docs/archive-sample-page.png[width:100%]
=== Site search widget
This theme offers a site-wide search navigation widget with
https://fusejs.io/[Fuse.js] as the search engine.
You can include it by setting an alternative output for the homepage
with `JSON` and setting `params.enableSiteSearch` to `true`
in your site config.
Here's what the site config file should have (assuming it is in TOML):
[source,toml]
----
# ...
[outputs]
home = ["HTML", "JSON"] # You can add more, if you want
# ...
[params]
# ...
enableSiteSearch = true
----
The feature uses https://fusejs.io/[Fuse.js] as the search engine.
The file can be found on link:assets/js/lib/fuse.min.js[`assets/js/lib/fuse.min.js`].
.The site-wide search widget
image::docs/enable-site-search-widget.png[]
CAUTION: Do take note that this feature is not recommended for large
sites since the index built will be very large and can be
detrimental for visitors.
Instead, I recommend to use https://www.algolia.com/[Algolia]
for something like it.
=== Other tidbits
There are a couple of options for miscellaneous stuff and info that you
might want to find out.
==== Site breadcrumbs in post
The most useful one is the breadcrumbs feature that'll appear in
the top of your posts.
.Breadcrumbs in the post
image::docs/post-breadcrumbs-enabled.png[]
In order to be able to use it, set the `params.enableBreadcrumbs` to
`true` in your site config file.
==== Icon on post list
Another one of the features you could try it out is the icons that'll
appear in the side of the post list.
This indicates whether or not the list item is a page or a section.
It could be useful for navigating your site.
.`showPageTypeIcon` set as `true` with a "file" type page
image::docs/page-type-icon-file.png[width=100%]
.`showPageTypeIcon` set as `true` with a "folder" type page
image::docs/page-type-icon-folder.png[width=100%]
In order to enable it, set the `params.showPageTypeIcon` to `true`.
==== Stylized content in the post
This might be the most useless feature I've ever done.
Anyways, this'll make certain header types to have some sort
of style put into them.
.Stylized content headers
image::docs/content-is-styled-enabled.png[width=100%]
In order to enable it, set `contentIsStyled`
.`contentIsStyled` set as `false`
image::docs/content-is-styled-disabled.png[width=100%]
== Custom 404 page
If you want to change it, simply copy link:layouts/404.html[`layouts/404.html`]
from the theme folder to your own `layouts` folder and change it from there.
As the official documentation has said, you can only see the 404 page in the
server mode by visiting `localhost:1313/404` (or something similar if you have
different ports for your `localhost`).
== MathJax support
MathJax is included with the theme and needs almost no configuration
in order for it to work.
However, take note that it uses the default configuration so there
might be some need to configure it.
In case that you do need configuration, you can create a file in
`layouts/partials/config/mathjax.html` and do your stuff there.
Assuming you didn't change the configuration or anything, here are
the breakdown for writing LaTeX in the web according to the
https://docs.mathjax.org/en/latest/start.html#tex-and-latex-input[MathJax documentation].
For Markdown-based files:
* Inline math content should be delimited with a pair of backslash
and parenthesis (\\(...\\)).
* Display/block math mode should be delimited with a pair of
square brackets (\\[\\]) or two dollar signs (\$\$).
You may have to escape it with a backslash (\).
.Example of math content in a Markdown file
[source,markdown]
----
For inline math, you could make dollar signs-delimited content blocks like
the following example and it'll appear like $a_{1}^{2} + a_{2}^{2} = b_{1}^{2} + b_{1}^{2}$.
For display/block math mode, make the content block delimited with two dollar signs.
\[\LaTeX\]
----
For Asciidoctor-based files:
* Math support is included in Asciidoctor but
https://asciidoctor.org/docs/user-manual/#activating-stem-support[you have to enable it by putting `:stem:` in the preamble].
The theme already takes care of that for you by including it in the archetype template.
* Since the theme uses the default setting for MathJax, the stem interpreter is explicitly
set to `latexmath`.
* Inline math content should be put in the `stem` macro.
* Display/block math content should be put in the stem block.
.Example of math content in a Asciidoctor file
[source,asciidoc]
----
= Document title
:stem: latexmath
For inline math, you could make dollar signs-delimited content blocks like
the following example and it'll appear like stem:[a_{1}^{2} + a_{2}^{2} = b_{1}^{2} + b_{1}^{2}].
For display/block math mode, make a stem block.
[stem]
++++
\LaTeX
++++
----
== Syntax highlighting (without the `highlight` shortcode)
Syntax highlighting is supported through https://prismjs.com/[PrismJS]
and https://highlightjs.org/[highlight.js].
Both of the syntax highlighters follows the
https://www.w3.org/TR/html52/textlevel-semantics.html#the-code-element[semantic HTML for code listings]
in order to color the syntax.
Fortunately, both of the default Markdown parsers and Asciidoctor
outputs semantic HTML for code listings so both of them are supported.
By default, the native syntax highlighting is disabled.
To enable native syntax highlighting, enable the `enableSyntaxHighlighting` under
`params` in your site config file.
This uses highlight.js by default.
In order to use PrismJS, set `params.syntaxHighlighter` with the value
`"prismjs"`.
Assuming you're using a TOML as your config file.
[source,toml]
----
[params]
# ...
enableSyntaxHighlighting = true
# if you want to set PrismJS as the syntax highlighter
# syntaxHighlighter = "prismjs"
----
If you're curious to the files being used, the script for
the syntax highlighters is at `assets/js/lib` of the theme folder.
=== Changing themes
The CSS used for syntax highlighting is at `assets/css/` file.
There should be separate stylesheet for each syntax highlighters with
the same name (i.e. `highlightjs.css`, `prism.css`).
For highlight.js, you can change the theme by having `highlightjs.css`
in the `assets/css` folder.
You can look for different themes in
https://github.com/highlightjs/highlight.js/tree/master/src/styles[their GitHub page].
For PrismJS, you can replace the theme by having `prism.css` in the
`assets/css` folder.
You can replace the theme by going to
https://prismjs.com/download.html[the PrismJS download page], select
the theme you want and putting it in the aforementioned file.
NOTE: The PrismJS script file contains the core, all of the
languages offered as of v1.16.0, and the
https://prismjs.com/plugins/keep-markup/[Keep Markup plugin]
(this plugin is important if you want to use
https://asciidoctor.org/docs/user-manual/#callouts[callouts in Asciidoctor]).
In order to update PrismJS, you need to download the script file yourself
at https://prismjs.com/download.html[the PrismJS download page] and
select the languages it'll support.
== Issues with Asciidoctor and other stuff
Since Asciidoctor only recieves basic support through
https://gohugo.io/content-management/formats/#additional-formats-through-external-helpers[external helpers],
there are some imperfections with this theme
(rather, overall) when using with Hugo.
* First and foremost, the HTML output of Asciidoctor doesn't observe
proper semantics.
Therefore, some additional styling may be done since it
goes against usual content formatting compared to other
outputs from other content formats like Markdown.
This also affects the screen reading accessibility so take
utmost caution when creating a workaround like
using https://github.com/jirutka/asciidoctor-html5s[an Asciidoctor backend with semantics in design]
and
https://blog.anoff.io/2019-02-17-hugo-render-asciidoc/[using a shadow executable hack done by a blogger with Hugo and Asciidoctor].
* Using callouts with the `:icons: font` attribute enabled will
bring out some problems regarding to rendering the highlighted syntax with
https://prismjs.com/[PrismJS], it is advised to use
https://highlightjs.org/[highlight.js] instead.
* https://highlightjs.org/[highlight.js] background doesn't style well
with the theme.
== How to run your site
From your Hugo root directory, run the following command:
[source,bash]
----
hugo server -t terminal-plus-minus
----
You can also add the following line to site config file:
[source,toml]
----
theme = "terminal-plus-minus"
----
== How to contribute
If you spot some bugs or want to suggest a feature, feel
free to file an issue in the issue tracker.
If you want to contribute through code, you can do the following
to set up the repo into your computer:
* Fork this repository
* Clone the forked repository
* Checkout to the development branch (`develop`)
* Create another branch from the development branch which you can
freely implement your own stuff
Make sure the new branch name is appropriately named.
If creating a pull request, you have to pass it through the
development branch.
If you're going to update the codebase, make sure you mind the
following guidelines:
* The documentations have to be written in
https://asciidoctor.org/[Asciidoctor].
If you're not familiar with it, here's the
https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/[quick reference page] for
a rundown and their https://asciidoctor.org/docs/user-manual/[user manual] for
deep details.
* The codebase follows the http://getbem.com/naming/[BEM naming convention]
for the CSS naming.
* Using https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_HTML_sections_and_outlines[semantic HTML]
should be observed.
== TODO
Here are some of the features that are considered to be
implemented.
Any help with this task list by pull requests are very
appreciated.
* Algolia integration
* Focus support for engineering and technical content
* Internationalization (i18n) support
* Different https://gohugo.io/content-management/archetypes/[archetypes]
and content organization
* Easy GitHub projects integration (for quickly creating your portfolio site)
== Inspirations
* https://github.com/panr/hugo-theme-terminal[Terminal theme], of course
* https://github.com/achary/engimo[Engimo theme] for the focus in engineering content
* https://sourcethemes.com/academic[Hugo Academic theme] for the focus in academic content
* https://github.com/Lednerb/bilberry-hugo-theme/[Bilberry Hugo theme] for the content organization
== License
For the original theme, copyright goes to Radosław Kozieł
(https://twitter.com/panr[@panr]).
The original theme is released under the MIT License.
Check the
https://github.com/panr/hugo-theme-terminal/blob/master/LICENSE.md[original theme license]
for additional licensing information.
This fork is maintained by https://foo-dogsquared.github.io/[foo-dogsquared]
and the extended theme is released under MIT license.
Copyright applies to my own modifications of the project.
Please see the previously linked license of the theme for more
information on how to properly include copyright notices.
In other words:
© 2019 panr - for the original theme
© 2019 foo-dogsquared - for the modification and extended
parts of the theme
(IDK how to proceed with licensing so feel free to correct me pls -_-)