first commit
4
.gitignore
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
exampleSite/public
|
||||
.DS_Store
|
||||
*/**/.DS_Store
|
||||
*.sw*
|
128
CODE_OF_CONDUCT.md
Normal file
|
@ -0,0 +1,128 @@
|
|||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
shenoybr@gmail.com.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
9
LICENSE
Normal file
|
@ -0,0 +1,9 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2024 [Incircle Media](https://incirclemedia.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
335
README.md
Normal file
|
@ -0,0 +1,335 @@
|
|||
# Goa
|
||||
|
||||
Goa is a clean, simple and minimalist theme for blogs and personal websites.
|
||||
|
||||
<img src="https://raw.githubusercontent.com/stiebke/hugo-goa/master/images/desktop-home.png" alt="Screenshot Desktop" width="600">
|
||||
<img src="https://raw.githubusercontent.com/stiebke/hugo-goa/master/images/mobile-home.png" alt="Screenshot Mobile" width="200">
|
||||
|
||||
[](https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/LICENSE)
|
||||
[](https://github.com/shenoydotme/hugo-goa/stargazers)
|
||||
[](https://github.com/shenoydotme/hugo-goa/network)
|
||||
[](https://www.emergencykitten.com/)
|
||||
[](https://www.emergencykitten.com/)
|
||||
|
||||
## Demo
|
||||
|
||||
You can find the demo site in action [here](https://stephan.hadan.de/hugo-goa-demo) and the modified source [here](https://github.com/stiebke/hugo-goa-demo).
|
||||
|
||||
## Installation
|
||||
|
||||
```
|
||||
hugo new site quickstart
|
||||
cd quickstart
|
||||
git init
|
||||
git submodule add https://github.com/stiebke/hugo-goa.git themes/hugo-goa
|
||||
echo "theme = 'hugo-goa'" >> hugo.toml
|
||||
hugo server
|
||||
```
|
||||
|
||||
## Content creation
|
||||
|
||||
### Creating a Post
|
||||
|
||||
To create a new page or post in Hugo, follow these steps:
|
||||
|
||||
#### Create a New Post
|
||||
|
||||
Use the following Hugo command to create a new post. This will create a Markdown file for your post in the specified directory.
|
||||
|
||||
```bash
|
||||
hugo new content posts/my-first-post.md
|
||||
```
|
||||
|
||||
#### Edit the Post
|
||||
|
||||
After creating the post, you can go ahead and edit the newly created file. You'll find it under the `content/posts` directory in your Hugo site's content folder.
|
||||
|
||||
#### Preview Your Edits
|
||||
|
||||
To preview your edits in real-time, you can run the Hugo server with draft posts included. You can use either of these commands:
|
||||
|
||||
```bash
|
||||
hugo server --buildDrafts
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
```bash
|
||||
hugo server -D
|
||||
```
|
||||
|
||||
#### Publishing Your Post
|
||||
|
||||
Once you have finished editing and are ready to publish your post, set `draft = false` in the article's front matter. This step is crucial to ensure that Hugo includes your post in the generated site.
|
||||
|
||||
Remember, until you set `draft = false`, Hugo will treat the post as a draft, and it won't appear in your published site unless you use the `-D` or `--buildDrafts` flags with `hugo server`.
|
||||
|
||||
### Organizing pages
|
||||
|
||||
To create standalone pages in Hugo, such as an "About" page or a "Projects" page, you can indeed override the default list behavior by adding an index.md file in the corresponding content directory. This approach allows for more control over the content and presentation of these specific pages, setting them apart from regular blog posts or list pages.
|
||||
|
||||
#### Create the Directory and index.md File:
|
||||
|
||||
To create a new standalone page, like a "Projects" page, you need to first create an index.md file in the appropriate directory. Use the Hugo command to do this:
|
||||
|
||||
```bash
|
||||
hugo new projects/index.md
|
||||
```
|
||||
|
||||
This command will create a new directory named projects inside the content folder of your Hugo site and then create an index.md file inside this projects directory.
|
||||
|
||||
#### Edit the index.md File:
|
||||
|
||||
Open the newly created index.md file in your text editor. This file will act as the main content file for your standalone page. Here, you can add the content for your "Projects" page.
|
||||
|
||||
#### Customize the Front Matter:
|
||||
|
||||
At the top of the index.md file, you will find the front matter, which is used by Hugo to store metadata about the page. You can customize this front matter as needed for your page.
|
||||
|
||||
#### Apply Custom Layouts (Optional):
|
||||
|
||||
If you want to apply a custom layout to this page, you can create a new layout file in the layouts directory of your Hugo site. For example, you might create a layout specifically for the projects page. Then, reference this custom layout in the front matter of your index.md file.
|
||||
|
||||
#### Build Your Site:
|
||||
|
||||
After setting up your index.md file and any custom layouts, run the Hugo command to build your site:
|
||||
|
||||
```
|
||||
hugo --cleanDestinationDir
|
||||
```
|
||||
|
||||
This will generate the static files for your site, including your new standalone page, in the public directory.
|
||||
|
||||
Remember, the index.md file in a directory allows you to create a standalone page with its own content and layout, different from the auto-generated list pages for blog posts or other content types. This method provides flexibility in organizing and presenting different types of content on your Hugo site.
|
||||
|
||||
### Publish the site
|
||||
|
||||
To publish your site using Hugo without deploying it, you need to run a specific command that tells Hugo to generate the static site in the public directory. This command will create all the necessary files like HTML, CSS, JavaScript, and images. To ensure that draft, future, or expired content is not included, you will use a particular flag with the command.
|
||||
|
||||
Here is the command you need to run in your terminal or command prompt where your Hugo site project is located:
|
||||
|
||||
```bash
|
||||
hugo --cleanDestinationDir
|
||||
```
|
||||
|
||||
This command does the following:
|
||||
|
||||
- **hugo**: This is the basic command to build your site.
|
||||
- **--cleanDestinationDir**: This flag cleans out the public directory before building. It ensures that only current content is published, and no old or unwanted files are left in the directory.
|
||||
|
||||
Remember, this process only generates the static files in the public directory of your Hugo project. It does not deploy these files to a web server or hosting service. For deployment, you would need to follow additional steps depending on your hosting solution.
|
||||
|
||||
### Page settings
|
||||
|
||||
These settings are at the page level.
|
||||
|
||||
- `showpagemeta`: default=`true`. This allows you to disable page meta information from being displayed. For example, this setting is disabled [here](https://shenoydotme.github.io/hugo-goa-demo/about/) and enabled [here](https://shenoydotme.github.io/hugo-goa-demo/coderag/).
|
||||
|
||||
- `showcomments`: default=`true`. Enables or disable comments. For example, this setting is disabled [here](https://shenoydotme.github.io/hugo-goa-demo/blog/third/) and enabled [here](https://shenoydotme.github.io/hugo-goa-demo/blog/first/).
|
||||
|
||||
## Configuration
|
||||
|
||||
The provided [config.toml](https://github.com/shenoydotme/hugo-goa/blob/master/exampleSite/config.toml) describes all options and features that are supported. Configure it your way!
|
||||
|
||||
### Basic Configuration
|
||||
|
||||
These are site wide configuration parameters that are used by this template.
|
||||
|
||||
- `baseurl`: This is the root of your site.
|
||||
- `builddrafts`: default=`false`. Enables or Disable building drafts when hugo is run.
|
||||
- `canonifyurls`: default=`false`. Prefix all relative URLs with your base URL. [More Information](https://gohugo.io/extras/urls#canonicalization).
|
||||
- `languageCode`: Used to set site localization preferences. eg. `en-US`.
|
||||
- `contentdir`: Where hugo can find your content. eg. `content`.
|
||||
- `layoutdir`: Where hugo can find your templates. eg. `layouts`.
|
||||
- `publishdir`: Where hugo generates the static site. eg. `public`.
|
||||
- `author`: Site author name. eg. `Panjim Goa`.
|
||||
- `title`: Site title name. eg. `Panjim Goa`.
|
||||
- `theme`: Your theme name should be set to `hugo-goa` if using this theme.
|
||||
|
||||
## Hugo Built-in Features
|
||||
|
||||
These are features that hugo provides and are used by this template.
|
||||
|
||||
- `disqusShortname`: Your discusShortname if you want to enable comments on your posts.
|
||||
- `googleAnalytics`: Your google analytics id for tracking.
|
||||
- `enableRobotsTXT`: Enable or disable search engines from crawling your site.
|
||||
|
||||
## Site Settings `[params]`
|
||||
|
||||
These are settings that are specific to this theme.
|
||||
|
||||
- `author`: Main author name. eg. `Panjim Goa`.
|
||||
- `intro`: Author introduction. This field supports markdown. eg. `Innovative Tech Guru`.
|
||||
- `description`: Author description. This field supports markdown. eg. `Leading the charge at [Incircle Media](https://incirclemedia.com)`.
|
||||
- `authorimage`: Location of author image under static/img or assets/images directory. eg. `headshot.jpg`
|
||||
- `dateformat`: Golang date format to be used on this site. eg. `Jan 2, 2006`
|
||||
|
||||
### Site Meta Settings `[params.meta]`
|
||||
|
||||
These settings are included in the site's meta section.
|
||||
|
||||
- `description`: User this field to describe your site to search engines. eg. `Simple minimalist theme`.
|
||||
- `keywords`: Keywords that desribe your site. eg. `minimalist,blog,goa,hugo,developer`.
|
||||
|
||||
### Social Accounts `[params.social]`
|
||||
|
||||
These settings to display your social accounts.
|
||||
|
||||
- `github`: Your [Github](https://github.com) username.
|
||||
- `instagram`: Your [Instagram](https://www.instagram.com) username.
|
||||
- `xing`: Your [Xing](https://www.xing.com) username.
|
||||
- `linkedin`: Your [Linkedin](https://www.linkedin.com) username.
|
||||
- `twitter`: Your [Twitter](https://twitter.com) username.
|
||||
- `bluesky`: Your [Bluesky](https://bluesky.app) username.
|
||||
- `mastodon`: Your [Mastodon](https://mastodon.social) server/@username.
|
||||
- `facebook`: Your [Facebook](https://www.facebook.com) username.
|
||||
- `google`: Your [Google](https://www.google.com) username.
|
||||
- `googlescholar`: Your [Google Scholar](https://scholar.google.com) account ID. [How to get this ID](#google-scholar)
|
||||
- `medium`: Your [Medium](https://medium.com) username.
|
||||
- `devto`: Your [dev.to](https://dev.to) username.
|
||||
- `stackoverflow`: Your [StackOverflow](https://stackoverflow.com) username.
|
||||
- `angellist`: Your [AngelList](https://angel.co) username.
|
||||
- `lastfm`: Your [Last.fm](https://www.last.fm) username.
|
||||
- `goodreads`: Your [Goodreads](https://www.goodreads.com) username.
|
||||
- `gitlab`: Your [Gitlab](https://gitlab.com) username.
|
||||
- `bitbucket`: Your [BitBucket](https://bitbucket.org) username.
|
||||
- `fivehundredpx`: Your [500px](https://500px.com) username.
|
||||
- `flickr`: Your [Flickr](https://flickr.com) username.
|
||||
- `foursquare`: Your [Foursquare](https://foursquare.com) username.
|
||||
- `hackernews`: Your [Y Combinator Hackernews](https://news.ycombinator.com) username.
|
||||
- `kickstarter`: Your [Kickstarter](https://kickstarter.com) username.
|
||||
- `patreon`: Your [Patreon](https://patreon.com) username.
|
||||
- `pintrest`: Your [Pintrest](https://pintrest.com) username.
|
||||
- `steam`: Your [Steam](https://steamcommunity.com) username.
|
||||
- `reddit`: Your [Reddit](https://www.reddit.com) username.
|
||||
- `snapchat`: Your [Snapchat](https://snapchat.com) username.
|
||||
- `keybase`: Your [Keybase](https://keybase.io) username.
|
||||
- `twitch`: Your [Twitch](https://twitch.tv) username.
|
||||
- `youtube`: Your [YouTube](https://youtube.com) channel ID.
|
||||
- `soundcloud`: Your [Soundcloud](https://soundcloud.com) username.
|
||||
- `tumblr`: Your [Tumblr](https://tumblr.com) username.
|
||||
- `strava`: Your [Strava](https://strava.com) username.
|
||||
- `skype`: Your [skype](https://skype.com) username.
|
||||
- `telegram`: Your [Telegram](https://telegram.com) username.
|
||||
- `holopin`: Your [Holopin](https://www.holopin.io) username.
|
||||
- `whatsapp`: Your phone number. Follow the steps [here](https://faq.whatsapp.com/en/26000030/). [Privacy Warning](#privacy-warning)
|
||||
- `email`: Your email. [Privacy Warning](#privacy-warning)
|
||||
- `pgp`: Your PGP key. The value should be set to the key fingerprint, and the public key should pe placed in static/key_fingerprint.txt
|
||||
|
||||
#### Privacy Warning
|
||||
|
||||
It is recommended to keep your private data (phone number/ email) private. Especially if you don't use them for business. Adding it to your public will expose your data to the public. This is irreversible.
|
||||
|
||||
#### Account Details
|
||||
|
||||
##### Google Scholar
|
||||
|
||||
To get this ID, go to Google Scholar, press the "My Profile" tab at the top, then copy the text after the `user=` till the first subsequent `&` (e.g. the `ACCOUNT_ID` part in `https://scholar.google.com/citations?user=ACCOUNT_ID&hl=en`).
|
||||
|
||||
### Extras `[params.extra]`
|
||||
|
||||
These settings for extra features that this site uses.
|
||||
|
||||
- `copyright`: Add a copyright statement to the bottom of the theme. eg. `© 2024. Panjim Goa. [Some Rights Reserved](https://creativecommons.org/licenses/by/3.0/)."`
|
||||
- `rss`: Enable rss icon next to social accounts.
|
||||
- `poweredby`: Help promote this theme and give the authors credit. eg. `true` or `false`.
|
||||
- `highlightjs`: Use highlightJS to highlight code on your site. eg. `true` or `false`.
|
||||
- `socialmarkup`: Adds links that conform to the [Schema.org](schema.org) markup. See this [link](https://developers.google.com/search/docs/data-types/social-profile) for more.
|
||||
|
||||
### Main Menu `[[menu.main]]`
|
||||
|
||||
These settings for the main menu that is displayed on the home page.
|
||||
|
||||
- `name`: Name of menu item. eg. `blog`
|
||||
- `weight`: Weight of this menu item. Higher items go to the bottom. eg. `100`
|
||||
- `url`: Root URL for this section/page. eg. `/blog/`.
|
||||
|
||||
Example:
|
||||
|
||||
```toml
|
||||
[[menu.main]]
|
||||
name = "blog"
|
||||
weight = 100
|
||||
url = "blog/"
|
||||
[[menu.main]]
|
||||
name = "about"
|
||||
weight = 200
|
||||
url = "about/"
|
||||
[[menu.main]]
|
||||
name = "projects"
|
||||
weight = 300
|
||||
url = "projects/"
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
- Responsive
|
||||
- Minimalist
|
||||
- Bootstrap 5
|
||||
- Font Awesome 6
|
||||
- HighlightJS
|
||||
- Disqus support for commenting
|
||||
- Built-in support for 404 pages, Disqus comments and Google Analytics.
|
||||
|
||||
## Screenshots
|
||||
|
||||
### Mobile
|
||||
|
||||
<img src="https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/images/mobile-home.png" alt="Mobile Home" width="200">
|
||||
<img src="https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/images/mobile-page.png" alt="Mobile Page" width="200">
|
||||
<img src="https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/images/mobile-posts.png" alt="Mobile Posts" width="200">
|
||||
<img src="https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/images/mobile-post.png" alt="Mobile Post" width="200">
|
||||
|
||||
### Desktop
|
||||
|
||||
<img src="https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/images/desktop-home.png" alt="Desktop Home" width="600">
|
||||
<img src="https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/images/desktop-page.png" alt="Desktop Page" width="600">
|
||||
<img src="https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/images/desktop-posts.png" alt="Desktop Posts" width="600">
|
||||
<img src="https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/images/desktop-post.png" alt="Desktop Post" width="600">
|
||||
|
||||
## Contributing
|
||||
|
||||
### Bug Reports
|
||||
|
||||
1. Search Github Issues to see if the bug has been previously filed.
|
||||
2. If it has been filed, +1 the post. This helps us in assessing impact and priortitizing the bug.
|
||||
3. If not previously filed, open a new Github Issue and describe in detail. Attach error traces and provide relavant details to help us solve it.
|
||||
4. For Hugo issues, search the Hugo [Forum](https://discuss.gohugo.io/)
|
||||
|
||||
### Feature Requests
|
||||
|
||||
1. Search Github Issues to see if the feature has been previously requested.
|
||||
2. If it has been filed, +1 the post. This helps us in assessing popularity and priortitizing the feature.
|
||||
3. If not previously filed, open a new Github Issue and describe it in detail.
|
||||
|
||||
### Pull Requests
|
||||
|
||||
1. Clone the repository, create the feature/bug branch.
|
||||
2. Code.
|
||||
3. Make sure your code follows the style of the project.
|
||||
4. Test it thoroughly.
|
||||
5. Open a PR requesting for it to be merged.
|
||||
6. Describe the feature or issue your are solving in detail.
|
||||
7. Wait for its approval.
|
||||
8. Merge and Rejoice.
|
||||
|
||||
## Attribution
|
||||
|
||||
The theme's design was inspired by many blogs and themes:
|
||||
|
||||
1. [Hugo Cocoa](https://themes.gohugo.io/cocoa/).
|
||||
2. [Hugo Vec](https://themes.gohugo.io/hugo-theme-vec/).
|
||||
3. [Hugo Agency](https://themes.gohugo.io/agency/).
|
||||
|
||||
## License
|
||||
|
||||
Licensed under the [MIT](https://opensource.org/licenses/MIT) License. See the [LICENSE](https://raw.githubusercontent.com/shenoydotme/hugo-goa/master/LICENSE) file for more details.
|
||||
|
||||
## Authors
|
||||
|
||||
- Raj Shenoy
|
||||
- web: [shenoydotme](https://shenoy.me)
|
||||
- twitter: [@shenoydotme](https://twitter.com/shenoydotme)
|
||||
- Incircle Media
|
||||
- web: [Incircle Media](https://incirclemedia.com)
|
||||
- twitter: [@incirclemedia](https://twitter.com/incirclemedia)
|
10
archetypes/default.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
+++
|
||||
draft = false
|
||||
comments = false
|
||||
slug = ""
|
||||
tags = []
|
||||
categories = []
|
||||
|
||||
showpagemeta = true
|
||||
showcomments = true
|
||||
+++
|
3
config.toml
Normal file
|
@ -0,0 +1,3 @@
|
|||
[module]
|
||||
[module.hugoVersion]
|
||||
min = "0.134.0"
|
5
exampleSite/archetypes/default.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
+++
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
date = {{ .Date }}
|
||||
draft = true
|
||||
+++
|
BIN
exampleSite/assets/images/headshot.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
17
exampleSite/content/about/index.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
+++
|
||||
categories = ["about"]
|
||||
comments = false
|
||||
date = 2024-01-14T07:07:07+01:00
|
||||
draft = false
|
||||
slug = ""
|
||||
tags = ["about"]
|
||||
title = "About"
|
||||
|
||||
showpagemeta = false
|
||||
+++
|
||||
|
||||
Panjim Goa is a visionary leader in the tech industry, known for his innovative approach and dynamic leadership at GoaTech, a leading tech startup. With a background in both technology and business, Panjim has been instrumental in driving the company's growth and success. His journey began with a modest startup in the scenic city of Goa, where his unique ideas and relentless pursuit of excellence set him apart.
|
||||
|
||||
Panjim's philosophy revolves around sustainable and innovative tech solutions that address real-world problems. Under his guidance, GoaTech has developed groundbreaking products that have made a significant impact in the tech world. Despite his achievements, he remains grounded and continues to mentor young tech enthusiasts, fostering a culture of innovation and creativity.
|
||||
|
||||
In his free time, Panjim is an avid reader and enjoys exploring the latest advancements in technology. He's a regular speaker at tech conferences, sharing his insights and experiences to inspire the next generation of tech entrepreneurs. With his forward-thinking vision and dedication, Panjim Goa has become a respected figure in the technology community.
|
37
exampleSite/content/posts/first.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
+++
|
||||
title = 'My First Post'
|
||||
date = 2024-01-14T07:07:07+01:00
|
||||
draft = false
|
||||
+++
|
||||
|
||||
## Introduction
|
||||
|
||||
Welcome to my first post using Hugo! In this post, I'm going to showcase some basic Markdown formatting and discuss why I chose Hugo for my blogging platform.
|
||||
|
||||
This is **bold** text, and this is _emphasized_ text.
|
||||
|
||||
## Why Hugo?
|
||||
|
||||
[Hugo](https://gohugo.io) is a fast and flexible static site generator, perfect for blogs, portfolios, and even company websites. Here's why I love it:
|
||||
|
||||
- **Speed**: Hugo generates pages at an incredibly fast speed.
|
||||
- **Flexibility**: You can create any type of website with Hugo.
|
||||
- **Community**: The Hugo community is supportive and continuously growing.
|
||||
|
||||
## Markdown Basics
|
||||
|
||||
Markdown is a lightweight markup language that you can use to add formatting elements to plaintext text documents. Here are some basics:
|
||||
|
||||
- **Headers**: Use `##` for a secondary header, and `###` for a tertiary header.
|
||||
- **Lists**:
|
||||
- Unordered lists are created using dashes (`-`).
|
||||
- Ordered lists simply use numbers.
|
||||
- **Links**: To add a [link](#), put the text in square brackets and the URL in parentheses.
|
||||
- **Images**: Add images with ``.
|
||||
- **Code**: Use backticks to `highlight` inline code or triple backticks for code blocks.
|
||||
|
||||
## Conclusion
|
||||
|
||||
I hope this post gives you a glimpse into what Hugo and Markdown can do. Stay tuned for more content!
|
||||
|
||||
Visit the [Hugo](https://gohugo.io) website to learn more!
|
35
exampleSite/content/posts/fourth.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
+++
|
||||
title = 'My Fourth Post'
|
||||
date = 2024-02-01T04:56:02+05:30
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# May the Fourth Be with You: A Galactic Pun
|
||||
|
||||
## Introduction
|
||||
|
||||
Greetings, Earthlings and intergalactic travelers! Today, in my fourth post, we venture into a galaxy far, far away to explore a day cherished by rebels, Jedi, and starship enthusiasts alike — May the Fourth. Yes, you've guessed it! It's the unofficial Star Wars Day, and we're here to unravel an elaborate joke that has transcended space and time.
|
||||
|
||||
## The Origin of the Pun
|
||||
|
||||
It all started a long time ago in a galaxy... well, not too far away. The date was May 4, 1979, when Margaret Thatcher became the first woman Prime Minister of the United Kingdom. Her political party placed a congratulatory ad in the London Evening News that read, "May the Fourth Be with You, Maggie. Congratulations." Little did they know, they had just coined a phrase that would become a rallying cry for Star Wars fans for decades to come.
|
||||
|
||||
## The Cultural Phenomenon
|
||||
|
||||
Fast forward to the present, and May the Fourth has become a global phenomenon. It's a day when the force of puns is strong, and Star Wars fans worldwide unite in their love for the saga. From movie marathons and themed parties to epic cosplay and interstellar memes, the day is marked with great enthusiasm, as if millions of voices suddenly cry out in joy and are suddenly silenced by the start of a Star Wars marathon.
|
||||
|
||||
## The Elaborate Joke
|
||||
|
||||
So, what makes "May the Fourth Be with You" an elaborate joke? It's the seamless blend of a historical date with pop culture, creating a pun that resonates across the universe. It plays on the iconic line, "May the Force be with you," transforming it into a calendar-based quip that even Yoda would find amusing.
|
||||
|
||||
Imagine Darth Vader walking into the Galactic Senate and, instead of force-choking someone for incompetence, he just proclaims, "May the Fourth Be with You!" and everyone just pauses, unsure whether to laugh or run for their lives.
|
||||
|
||||
## Conclusion
|
||||
|
||||
As the sun sets on our Star Wars Day celebrations, we realize that the spirit of May the Fourth goes beyond jokes and puns. It's a day that brings together fans, young and old, in their shared love for a saga that has shaped popular culture. It's about community, nostalgia, and the joy of being part of a universe that continues to inspire and amaze.
|
||||
|
||||
So, as we wrap up this post, let's raise our lightsabers (or glow sticks, for the safety-conscious) and say, "May the Fourth Be with You!" - not just today, but every day in our journey through the stars.
|
||||
|
||||
---
|
||||
|
||||
And remember, the next day is Revenge of the Fifth!
|
35
exampleSite/content/posts/second.md
Normal file
|
@ -0,0 +1,35 @@
|
|||
+++
|
||||
title = 'My Second Post'
|
||||
date = 2024-02-01T04:55:54+05:30
|
||||
draft = false
|
||||
+++
|
||||
|
||||
## Heading of the Post
|
||||
|
||||
Start writing your content here. You can add more sections, images, links, and various formatting to enrich your post. Here are some ideas to get started:
|
||||
|
||||
### Subheading for a Section
|
||||
|
||||
Discuss a specific topic in detail here. You can add personal insights, professional tips, or any relevant information.
|
||||
|
||||
#### Example Code Blocks
|
||||
|
||||
##### JavaScript
|
||||
|
||||
```javascript
|
||||
console.log("Welcome to my second post!");
|
||||
```
|
||||
|
||||
##### Go
|
||||
|
||||
```go
|
||||
fmt.Println("Welcome to my second post!")
|
||||
```
|
||||
|
||||
##### Python
|
||||
|
||||
```python
|
||||
for i in range(10):
|
||||
print("Welcome to my second post!")
|
||||
|
||||
```
|
36
exampleSite/content/posts/third.md
Normal file
|
@ -0,0 +1,36 @@
|
|||
+++
|
||||
title = 'My Third Post: We Demonstrate Images'
|
||||
date = 2024-02-01T04:55:59+05:30
|
||||
draft = false
|
||||
+++
|
||||
|
||||
# Reflecting on Carl Sagan's Pale Blue Dot
|
||||
|
||||

|
||||
|
||||
_Photo by [JuniperPhoton]("https://unsplash.com/@juniperphoton?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash")_
|
||||
|
||||
## Introduction
|
||||
|
||||
In 1990, Voyager 1, a tiny spacecraft hurled into the vast expanse of space, turned its camera around at the request of astronomer Carl Sagan and took a photograph of Earth from a distance of about 3.7 billion miles. This image, known as the "Pale Blue Dot," is a humbling depiction of our planet — a tiny, fragile speck suspended in a sunbeam.
|
||||
|
||||
## The Significance of the Pale Blue Dot
|
||||
|
||||
The Pale Blue Dot is more than just a photograph; it's a profound reminder of our place in the universe. In his book, also titled "Pale Blue Dot," Carl Sagan penned an essay reflecting on the photograph's deeper meaning, emphasizing our responsibility to care more kindly for one another and to preserve and cherish the pale blue dot, the only home we've ever known.
|
||||
|
||||

|
||||
_Photo by [Juskteez Vu](https://unsplash.com/@juskteez)_
|
||||
|
||||
### Sagan's Vision
|
||||
|
||||
Sagan's message was clear: our planet is a tiny oasis in the vastness of space. He urged us to move beyond petty differences and to see ourselves as citizens of a single planet, a mote of dust in the great enveloping cosmic dark.
|
||||
|
||||
### Environmental and Philosophical Implications
|
||||
|
||||
The image and Sagan's reflections bring about profound environmental and philosophical implications. It underscores the fragility of our planet and the need for global cooperation to protect our environment and humanity.
|
||||
|
||||
## Conclusion: A Message for Future Generations
|
||||
|
||||
Carl Sagan's Pale Blue Dot remains one of the most powerful messages of our time. It's a message that transcends generations, urging us to look at our planet not just as a place we live in, but as our collective home that needs our care and respect.
|
||||
|
||||
_As we continue to explore the cosmos, let's not forget the lessons from this tiny pale dot we call home._
|
19
exampleSite/content/projects/index.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
+++
|
||||
categories = ["projects"]
|
||||
comments = false
|
||||
date = "2016-10-02T22:55:05-04:00"
|
||||
draft = false
|
||||
slug = ""
|
||||
tags = ["Panjim Goa", "GoaTech", "innovation"]
|
||||
title = "GoaTech's Rise"
|
||||
|
||||
showpagemeta = true
|
||||
+++
|
||||
|
||||
**Notes**: This article originally appeared on [GoaTech Insights](https://incirclemedia.com).
|
||||
|
||||
GoaTech Insights has always been more than just another tech industry blog. Our mission is to be an integral part of the tech community, offering an in-depth and nuanced look at the latest developments in the field. Our ethos is encapsulated in our tagline: "Innovate and Inspire." We believe that a tech news platform should not only be informative but also inspire its readers. We achieve this by being at the heart of the industry we cover. As a part of the dynamic tech ecosystem, GoaTech Insights is constantly evolving.
|
||||
|
||||
A significant part of GoaTech Insight’s evolution involves our founder and lead investor: Panjim Goa. Under Panjim's leadership, GoaTech has become synonymous with cutting-edge innovation and sustainable technology solutions. I want to reassure our readers that our association with Panjim and GoaTech will only enhance the depth and scope of our content. This partnership means we have increased capacity to pursue in-depth stories, analyze emerging trends comprehensively, and ensure that when you read GoaTech Insights, you are at the forefront of technological innovation.
|
||||
|
||||
**Incircle Media** - Editor-in-Chief
|
101
exampleSite/hugo.toml
Normal file
|
@ -0,0 +1,101 @@
|
|||
## Basic Configuration
|
||||
|
||||
baseurl = "https://stephan.hadan.de/hugo-goa/"
|
||||
builddrafts = false
|
||||
canonifyurls = false
|
||||
languageCode = "en-US"
|
||||
|
||||
contentdir = "content"
|
||||
layoutdir = "layouts"
|
||||
publishdir = "public"
|
||||
|
||||
author = "Panjim Goa"
|
||||
title = "Panjim Goa"
|
||||
|
||||
theme = "hugo-goa"
|
||||
|
||||
## Hugo Built-in Features
|
||||
# disqusShortname = "discusShortname" # Enable if you want to use Disqus
|
||||
# googleAnalytics = "UA-XXXXXXXX-X" # Enable if you want to use Google Analytics
|
||||
enableRobotsTXT = true
|
||||
|
||||
## Site Settings
|
||||
[params]
|
||||
author = "Panjim Goa"
|
||||
intro = "Innovative Tech Visionary"
|
||||
description = "Leading the charge at [Incircle Media](https://incirclemedia.com)"
|
||||
authorimage = "headshot.png"
|
||||
dateformat = "Jan 2, 2006"
|
||||
|
||||
## Site Meta Settings
|
||||
[params.meta]
|
||||
description = "Simple minimalist theme"
|
||||
keywords = "minimalist,blog,goa,hugo,developer"
|
||||
|
||||
## Social Accounts
|
||||
[params.social]
|
||||
github = "<username>"
|
||||
instagram = "<username>"
|
||||
linkedin = "<username>"
|
||||
twitter = "<username>"
|
||||
mastodon = "<server>/@<user>"
|
||||
bluesky = "<username>"
|
||||
facebook = "<username>"
|
||||
google = "<username>"
|
||||
googlescholar = "<account_id>"
|
||||
orcid = "0123-4567-8901-2345"
|
||||
stackoverflow = "<username>"
|
||||
lastfm = "<username>"
|
||||
goodreads = "<username>"
|
||||
gitlab = "<username>"
|
||||
bitbucket = "<username>"
|
||||
fivehundredpx = "<username>"
|
||||
flickr = "<username>"
|
||||
foursquare = "<username>"
|
||||
hackernews = "<username>"
|
||||
kickstarter = "<username>"
|
||||
patreon = "<username>"
|
||||
pintrest = "<username>"
|
||||
steam = "<username>"
|
||||
reddit = "<username>"
|
||||
snapchat = "<username>"
|
||||
youtube = "<channelid>"
|
||||
keybase = "<username>"
|
||||
twitch = "<username>"
|
||||
soundcloud = "<username>"
|
||||
tumblr = "<username>"
|
||||
strava = "<username>"
|
||||
skype = "<username>"
|
||||
telegram = "<username>"
|
||||
whatsapp = "<username>"
|
||||
buymeacoffee = "<username>"
|
||||
kaggle = "<username>"
|
||||
holopin = "<username>"
|
||||
email = "you@example.com"
|
||||
pgp = "<key_fingerprint>"
|
||||
|
||||
## Extras
|
||||
[params.extra]
|
||||
copyright = "© 2024. Panjim Goa. [Some Rights Reserved](http://creativecommons.org/licenses/by/3.0/)."
|
||||
poweredby = true
|
||||
highlightjs = true
|
||||
socialmarkup = true
|
||||
toc = true
|
||||
displayrssicon = true
|
||||
|
||||
## Main Menu
|
||||
[[menu.main]]
|
||||
name = "posts"
|
||||
weight = 100
|
||||
identifier = "posts"
|
||||
url = "posts/"
|
||||
[[menu.main]]
|
||||
name = "about"
|
||||
identifier = "about"
|
||||
weight = 200
|
||||
url = "about/"
|
||||
[[menu.main]]
|
||||
name = "projects"
|
||||
identifier = "projects"
|
||||
weight = 300
|
||||
url = "projects/"
|
BIN
images/desktop-home.png
Normal file
After Width: | Height: | Size: 770 KiB |
BIN
images/desktop-page.png
Normal file
After Width: | Height: | Size: 1,017 KiB |
BIN
images/desktop-post.png
Normal file
After Width: | Height: | Size: 1,009 KiB |
BIN
images/desktop-posts.png
Normal file
After Width: | Height: | Size: 542 KiB |
BIN
images/mobile-home.png
Normal file
After Width: | Height: | Size: 566 KiB |
BIN
images/mobile-page.png
Normal file
After Width: | Height: | Size: 688 KiB |
BIN
images/mobile-post.png
Normal file
After Width: | Height: | Size: 594 KiB |
BIN
images/mobile-posts.png
Normal file
After Width: | Height: | Size: 318 KiB |
BIN
images/screenshot.png
Normal file
After Width: | Height: | Size: 770 KiB |
BIN
images/tn.png
Normal file
After Width: | Height: | Size: 85 KiB |
5
layouts/404.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
{{ partial "header.html" . }}
|
||||
|
||||
{{ partial "error.html" . }}
|
||||
|
||||
{{ partial "footer.html" . }}
|
7
layouts/_default/list.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
{{ partial "header.html" . }}
|
||||
|
||||
{{ partial "li.html" . }}
|
||||
|
||||
{{ partial "menu.html" . }}
|
||||
|
||||
{{ partial "footer.html" . }}
|
14
layouts/_default/single.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
{{ partial "header.html" . }}
|
||||
|
||||
{{ partial "content.html" . }}
|
||||
|
||||
{{ if ne .Params.showcomments false }}
|
||||
|
||||
{{ template "_internal/disqus.html" . }}
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ partial "menu.html" . }}
|
||||
|
||||
{{ partial "footer.html" . }}
|
||||
|
11
layouts/index.html
Normal file
|
@ -0,0 +1,11 @@
|
|||
{{ partial "header.html" . }}
|
||||
|
||||
{{ partial "avatar.html" . }}
|
||||
|
||||
{{ partial "info.html" . }}
|
||||
|
||||
{{ partial "social.html" . }}
|
||||
|
||||
{{ partial "main_menu.html" . }}
|
||||
|
||||
{{ partial "footer.html" . }}
|
13
layouts/partials/avatar.html
Normal file
|
@ -0,0 +1,13 @@
|
|||
<header class="text-center header">
|
||||
{{ with .Site.Params.authorimage }}
|
||||
{{ with resources.Get (printf "images/%s" .)}}
|
||||
<img src="{{ .Permalink }}" alt="Author Image" class="img-fluid rounded-circle mx-auto d-block headshot">
|
||||
{{ else }}
|
||||
{{ with resources.Get (printf "img/%s" .)}}
|
||||
<img src="{{ .Permalink }}" alt="Author Image" class="img-fluid rounded-circle mx-auto d-block headshot">
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
<h1 class="author mt-3">{{ .Site.Params.author }}</h1>
|
||||
</header>
|
55
layouts/partials/content.html
Normal file
|
@ -0,0 +1,55 @@
|
|||
<header class="text-start title">
|
||||
<h1 class="title">{{ .Title }}</h1>
|
||||
</header>
|
||||
|
||||
<section id="category-pane" class="meta">
|
||||
{{ if ne .Params.showpagemeta false }}
|
||||
<div class="d-flex flex-column flex-md-row justify-content-between">
|
||||
<h6 class="text-start meta">
|
||||
{{ if not .Date.IsZero }} PUBLISHED ON {{ .Date.Format (default "Jan 2, 2006" .Site.Params.dateformat) | upper }}
|
||||
{{ end }}
|
||||
/ {{ math.Round (div (countwords .Content) 220.0) }} MIN READ
|
||||
{{ if isset .Params "categories" }}
|
||||
{{ $total := len .Params.categories }}
|
||||
{{ if gt $total 0 }}
|
||||
—
|
||||
{{ $total := sub $total 1 }}
|
||||
{{ range $i, $cat := sort $.Params.categories }}
|
||||
<a class="meta"
|
||||
href="{{ "categories/" | relURL }}{{ $cat | urlize }}">{{ $cat | upper }}</a>{{ if lt $i $total }}, {{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</h6>
|
||||
</div>
|
||||
{{ end }}
|
||||
</section>
|
||||
|
||||
<section id="content-pane">
|
||||
<div class="text-justify content">
|
||||
{{ if and (ne .Params.toc false) (gt .WordCount 300) }}
|
||||
{{ .TableOfContents }}
|
||||
{{ end }}
|
||||
{{ .Content }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section id="tag-pane" class="meta">
|
||||
{{ if ne .Params.showpagemeta false }}
|
||||
<div class="d-flex flex-column flex-md-row justify-content-between">
|
||||
<h6 class="text-end meta">
|
||||
{{ if isset .Params "tags" }}
|
||||
{{ $total := len .Params.tags }}
|
||||
{{ if gt $total 0 }}
|
||||
TAGS:
|
||||
{{ $subtotal := sub $total 1 }}
|
||||
{{ range $i, $tag := sort $.Params.tags }}
|
||||
<a class="meta" href="{{ "tags/" | relURL }}{{ $tag | urlize }}">{{ $tag | upper }}</a>{{ if lt $i $subtotal }},
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</h6>
|
||||
</div>
|
||||
{{ end }}
|
||||
</section>
|
5
layouts/partials/error.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
<section id="error-pane" class="text-center error">
|
||||
<h1 class="text-center">404</h1>
|
||||
<p>Sorry! That page does not exist. It may have been removed or moved to a new section on the site. Click <a
|
||||
href="/">here</a> go back to the home page.</p>
|
||||
</section>
|
21
layouts/partials/footer.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
{{ partial "sub_footer.html" . }}
|
||||
</div>
|
||||
|
||||
{{ with .Site.Params.extra }}
|
||||
{{ if .highlightjs }}
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
|
||||
{{ range .highlightjslanguages }}
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/languages/{{.}}.min.js"></script>
|
||||
{{ end }}
|
||||
|
||||
<script>hljs.highlightAll();</script>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ template "_internal/google_analytics.html" . }}
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
|
||||
integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
|
||||
<script src="/js/custom.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
53
layouts/partials/header.html
Normal file
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.LanguageCode }}">
|
||||
|
||||
<head>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
{{ with .Site.Params.meta.description }}
|
||||
<meta name="description" content="{{ . }}">{{ end }}
|
||||
{{ with .Site.Params.meta.keywords }}
|
||||
<meta name="keywords" content="{{.}}">{{ end }}
|
||||
|
||||
<title>
|
||||
{{ $url := replace .Permalink ( printf "%s" .Site.BaseURL) "" }} {{ if eq $url "" }} {{ .Site.Title }}
|
||||
{{ else }} {{ .Site.Title }} - {{ .Title }} {{ end }}
|
||||
</title>
|
||||
|
||||
{{ hugo.Generator }}
|
||||
|
||||
{{ range .AlternativeOutputFormats -}}
|
||||
<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}">
|
||||
{{ end -}}
|
||||
|
||||
{{ if .Site.Params.extra.highlightjs }}
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css">
|
||||
{{ end }}
|
||||
|
||||
<link rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Roboto+Slab:wght@400;700&family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700" />
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC"
|
||||
crossorigin="anonymous" />
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
||||
<link rel="stylesheet" href="{{ "css/main.css" | absURL }}">
|
||||
<link rel="stylesheet" href="{{ "css/custom.css" | absURL }}">
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
{{- with .OutputFormats.Get "RSS" -}}
|
||||
<link rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" href="{{ .RelPermalink }}" />
|
||||
<link rel="alternate" type="application/json" title="{{ $.Site.Title }}" href="{{ "feed.json" | absURL }}" />
|
||||
<link rel="EditURI" type="application/rsd+xml" href="{{ "rsd.xml" | absURL }}" />
|
||||
{{- end -}}
|
||||
|
||||
</head>
|
||||
|
||||
<body lang="{{ .Site.LanguageCode }}">
|
||||
<div class="container my-auto">
|
8
layouts/partials/info.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<section id="info-pane" class="text-center info">
|
||||
{{ with .Site.Params.intro }}
|
||||
<h3 class="intro">{{ . | markdownify }}</h3>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.description }}
|
||||
<h4 class="description">{{ . | markdownify }}</h4>
|
||||
{{ end }}
|
||||
</section>
|
30
layouts/partials/li.html
Normal file
|
@ -0,0 +1,30 @@
|
|||
<section id="list-pane" class="list">
|
||||
<ul class="list-unstyled">
|
||||
{{ range .Data.Pages.ByPublishDate.Reverse }}
|
||||
<li class="list-entry">
|
||||
<a class="list-entry-link" href="{{ .RelPermalink }}">{{ .Title }}</a>
|
||||
<p class="meta">
|
||||
{{ if not .Date.IsZero }} {{ .Date.Format (default "Jan 2, 2006" .Site.Params.dateformat) | upper }} {{ end }}
|
||||
- {{ math.Round (div (countwords .Content) 220.0) }} MIN READ
|
||||
<span class="category">
|
||||
{{ if isset .Params "categories" }}
|
||||
{{ $total := len .Params.categories }}
|
||||
{{ if gt $total 0 }}
|
||||
—
|
||||
{{ $total := sub $total 1 }}
|
||||
{{ range $i, $cat := sort .Params.categories }}
|
||||
<a class="category-link"
|
||||
href="{{ "categories/" | relURL }}{{ $cat | humanize | urlize }}">{{ $cat | upper }}</a>{{ if lt $i $total }},
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</span>
|
||||
</p>
|
||||
<p class="excerpt">
|
||||
{{ .Description }}
|
||||
</p>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
7
layouts/partials/main_menu.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
{{ with .Site.Menus.main }}
|
||||
<section id="main-menu-pane" class="text-center main-menu">
|
||||
{{ range sort . }}
|
||||
<h4><a class="menu-item" href="{{ .URL }}">{{ .Name }}</a></h4>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{ end }}
|
32
layouts/partials/menu.html
Normal file
|
@ -0,0 +1,32 @@
|
|||
<section id="menu-pane" class="menu text-center">
|
||||
{{ if not .IsNode }}
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination justify-content-center">
|
||||
{{ if .Section }}
|
||||
{{ with .PrevInSection }}
|
||||
<li class="menu-item">
|
||||
<a class="menu-item" href="{{ .Permalink }}">< prev</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
<li class="menu-item">
|
||||
{{ if .PrevInSection}}
|
||||
<span class="menu-item"> | </span>
|
||||
{{ end}}
|
||||
<a class="menu-item" href="{{ .Section | relURL }}">{{ .Section | lower }}</a>
|
||||
{{ if .NextInSection}}
|
||||
<span class="menu-item"> | </span>
|
||||
{{ end}}
|
||||
</li>
|
||||
|
||||
{{ with .NextInSection }}
|
||||
<li class="menu-item">
|
||||
<a class="menu-item" href="{{ .Permalink }}">next ></a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</nav>
|
||||
{{ end }}
|
||||
<h4 class="text-center mt-3"><a class="menu-item" href="{{ .Site.BaseURL }}">home</a></h4>
|
||||
</section>
|
183
layouts/partials/social.html
Normal file
|
@ -0,0 +1,183 @@
|
|||
<section id="social-pane" class="text-center social">
|
||||
{{ with .Site.Params.social.twitter }}
|
||||
<a href="https://x.com/{{.}}" aria-label="X" target="_blank"><i class="fab fa-x-twitter" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.bluesky }}
|
||||
<a href="https://bsky.app/profile/{{.}}" aria-label="Bluesky" target="_blank"><i class="fab fa-bluesky" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.mastodon }}
|
||||
<a href="https://{{.}}" aria-label="Mastodon" target="_blank"><i class="fab fa-mastodon" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.google }}
|
||||
<a href="https://plus.google.com/{{.}}/about" aria-label="Google Plus" target="_blank"><i class="fab fa-google-plus" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.googlescholar}}
|
||||
<a href="https://scholar.google.com/citations?user={{.}}" aria-label="Google Scholar" target="_blank"><i class="fas fa-graduation-cap" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.orcid}}
|
||||
<a href="https://orcid.org/{{.}}" aria-label="ORCID" target="_blank"><i class="fab fa-orcid" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.goodreads }}
|
||||
<a href="https://www.goodreads.com/{{.}}" aria-label="Goodreads" target="_blank"><i class="fab fa-goodreads" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.lastfm }}
|
||||
<a href="https://www.last.fm/user/{{.}}/" aria-label="Last.fm" target="_blank"><i class="fab fa-lastfm" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.facebook }}
|
||||
<a href="https://facebook.com/{{.}}" aria-label="Facebook" target="_blank"><i class="fab fa-facebook" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.github }}
|
||||
<a href="https://github.com/{{.}}" aria-label="Github" target="_blank"><i class="fab fa-github" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.instagram }}
|
||||
<a href="https://instagram.com/{{.}}" aria-label="Instagram" target="_blank"><i class="fab fa-instagram" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.linkedin }}
|
||||
<a href="https://linkedin.com/in/{{.}}" aria-label="LinkedIn" target="_blank"><i class="fab fa-linkedin" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.stackoverflow }}
|
||||
<a href="https://stackoverflow.com/users/{{.}}" aria-label="StackOverflow" target="_blank"><i class="fab fa-stack-overflow" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.medium}}
|
||||
<a href="https://medium.com/{{.}}" aria-label="Medium" target="_blank"><i class="fab fa-medium" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.devto}}
|
||||
<a href="https://dev.to/{{.}}" aria-label="Dev.to" target="_blank"><i class="fas fa-terminal" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.angellist}}
|
||||
<a href="https://angel.co/{{.}}" aria-label="AngelList" target="_blank"><i class="fab fa-angellist" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.xing }}
|
||||
<a href="https://www.xing.com/profile/{{.}}" aria-label="Xing" target="_blank"><i class="fab fa-xing" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.gitlab}}
|
||||
<a href="https://gitlab.com/{{.}}" aria-label="Gitlab" target="_blank"><i class="fab fa-gitlab" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.bitbucket}}
|
||||
<a href="https://bitbucket.org/{{.}}" aria-label="Bitbucket" target="_blank"><i class="fab fa-bitbucket" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.fivehundredpx}}
|
||||
<a href="https://500px.com/{{.}}" aria-label="500px" target="_blank"><i class="fab fa-500px" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.flickr}}
|
||||
<a href="https://flickr.com/photos/{{.}}" aria-label="Flickr" target="_blank"><i class="fab fa-flickr" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.foursquare}}
|
||||
<a href="https://foursquare.com/{{.}}" aria-label="Foursquare" target="_blank"><i class="fab fa-foursquare" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.hackernews}}
|
||||
<a href="https://news.ycombinator.com/user?id={{.}}" aria-label="Y Combinator Hackernews" target="_blank"><i class="fab fa-hacker-news" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.kickstarter}}
|
||||
<a href="https://kickstarter.com/profile/{{.}}" aria-label="Kickstarter" target="_blank"><i class="fab fa-kickstarter" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.patreon}}
|
||||
<a href="https://patreon.com/{{.}}" aria-label="Patreon" target="_blank"><i class="fab fa-patreon" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.pintrest}}
|
||||
<a href="https://pintrest.com/{{.}}" aria-label="Pintrest" target="_blank"><i class="fab fa-pintrest" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.steam}}
|
||||
<a href="https://steamcommunity.com/id/{{.}}" aria-label="Steam" target="_blank"><i class="fab fa-steam" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.reddit}}
|
||||
<a href="https://www.reddit.com/user/{{.}}" aria-label="Reddit" target="_blank"><i class="fab fa-reddit" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.snapchat}}
|
||||
<a href="https://snapchat.com/add/{{.}}" aria-label="Snapchat" target="_blank"><i class="fab fa-snapchat" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.youtube}}
|
||||
<a href="https://youtube.com/channel/{{.}}" aria-label="Youtube" target="_blank"><i class="fab fa-youtube" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.keybase}}
|
||||
<a href="https://keybase.io/{{.}}" aria-label="Keybase" target="_blank"><i class="fab fa-keybase" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.twitch}}
|
||||
<a href="https://www.twitch.tv/{{.}}" aria-label="Twitch" target="_blank"><i class="fab fa-twitch" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.soundcloud}}
|
||||
<a href="https://soundcloud.com/{{.}}" aria-label="Soundcloud" target="_blank"><i class="fab fa-soundcloud" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.tumblr}}
|
||||
<a href="https://{{.}}.tumblr.com" aria-label="Tumblr" target="_blank"><i class="fab fa-tumblr" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.strava}}
|
||||
<a href="https://www.strava.com/athletes/{{.}}" aria-label="Strava" target="_blank"><i class="fab fa-strava" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.skype}}
|
||||
<a href="skype:{{.}}" aria-label="Skype" target="_blank"><i class="fab fa-skype" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.telegram}}
|
||||
<a href="https://t.me/{{.}}" aria-label="Telegram" target="_blank"><i class="fab fa-telegram" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.whatsapp}}
|
||||
<a href="https://wa.me/{{.}}" aria-label="Whatsapp" target="_blank"><i class="fab fa-whatsapp" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.buymeacoffee}}
|
||||
<a href="https://www.buymeacoffee.com//{{.}}" aria-label="Buymeacoffee" target="_blank"><i class="fas fa-coffee" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.kaggle}}
|
||||
<a href="https://kaggle.com/{{.}}" aria-label="Kaggle" target="_blank"><i class="fab fa-kaggle" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.holopin}}
|
||||
<a href="https://www.holopin.io/{{.}}" aria-label="Holopin" target="_blank"><i class="fas fa-certificate" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.email }}
|
||||
<a href="mailto:{{.}}" aria-label="Email"><i class="fas fa-envelope" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.social.pgp }}
|
||||
<a href="{{.}}.txt" aria-label="PGP" name="{{.}}"><i class="fas fa-key" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
{{ if and ( .Site.Params.extra.rss ) ( .RSSLink ) }}
|
||||
<a href="{{ .RSSLink }}" aria-label="RSS" target="_blank"><i class="fas fa-rss" aria-hidden="true"></i></a>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{ if .Site.Params.extra.socialmarkup }}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "Person",
|
||||
"name": "{{ .Site.Params.author }}",
|
||||
"url": "{{ .Site.Params.baseURL }}",
|
||||
"sameAs": [
|
||||
{{ with .Site.Params.social.twitter }}"https://twitter.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.google }}"https://plus.google.com/{{.}}/about",{{ end }}
|
||||
{{ with .Site.Params.social.googlescholar}}"https://scholar.google.com/citations?user={{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.orcid}}"https://orcid.org/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.goodreads }}"https://www.goodreads.com/user/show/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.lastfm }}"https://www.last.fm/user/{{.}}/",{{ end }}
|
||||
{{ with .Site.Params.social.facebook }}"https://facebook.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.github }}"https://github.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.instagram }}"https://instagram.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.linkedin }}"https://linkedin.com/in/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.stackoverflow }}"https://stackoverflow.com/users/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.medium}}"https://medium.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.devto}}"https://dev.to/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.angellist}}"https://angel.co/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.xing }}"https://www.xing.com/profile/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.gitlab}}"https://gitlab.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.bitbucket}}"https://bitbucket.org/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.fivehundredpx}}"https://500px.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.flickr}}"https://flickr.com/photos/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.foursquare}}"https://foursquare.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.hackernews}}"https://news.ycombinator.com/user?id={{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.kickstarter}}"https://kickstarter.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.patreon}}"https://patreon.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.pintrest}}"https://pintrest.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.steam}}"https://steamcommunity.com/id/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.reddit}}"https://www.reddit.com/user/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.snapchat}}"https://snapchat.com{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.youtube}}"https://youtube.com/channel/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.keybase}}"https://keybase.io/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.twitch}}"https://www.twitch.tv/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.soundcloud}}"https://soundcloud.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.tumblr}}"https://{{.}}.tumblr.com",{{ end }}
|
||||
{{ with .Site.Params.social.strava}}"https://www.strava.com/athletes/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.buymeacoffee}}"https://www.buymeacoffee.com//{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.kaggle}}"https://www.kaggle.com/{{.}}",{{ end }}
|
||||
{{ with .Site.Params.social.holopin}}"https://www.holopin.io/{{.}}",{{ end }}
|
||||
"{{ .Site.Params.baseURL }}"
|
||||
]
|
||||
}
|
||||
</script>
|
||||
{{ end }}
|
17
layouts/partials/sub_footer.html
Normal file
|
@ -0,0 +1,17 @@
|
|||
<footer class="text-center footer">
|
||||
<hr />
|
||||
{{ with .Site.Params.extra }}
|
||||
<h6 class="text-center copyright">{{ .copyright | markdownify }}</h6>
|
||||
{{ if ne .poweredby false }}
|
||||
<h6 class="text-center powered"><a href="https://gohugo.io/">Hugo</a> <a
|
||||
href="https://github.com/shenoydotme/hugo-goa">Goa</a> by <a href="https://shenoy.me">shenoydotme</a> and <a
|
||||
href="https://incirclemedia.com">Incircle Media</a></h6>
|
||||
{{ end }}
|
||||
{{ if ne .displayrssicon false }}
|
||||
<h6>
|
||||
<a href="{{ "index.xml" | absURL }}" aria-label="RSS Feed"><i class="fas fa-rss" aria-hidden="true"></i></a>
|
||||
</h6>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
</footer>
|
BIN
static/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
static/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
static/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
1
static/css/custom.css
Normal file
|
@ -0,0 +1 @@
|
|||
/* Add custom CSS here. */
|
229
static/css/main.css
Normal file
|
@ -0,0 +1,229 @@
|
|||
@-ms-viewport {
|
||||
width: device-width;
|
||||
}
|
||||
@-o-viewport {
|
||||
width: device-width;
|
||||
}
|
||||
@viewport {
|
||||
width: device-width;
|
||||
}
|
||||
a,
|
||||
a:hover,
|
||||
a:visited,
|
||||
a:link {
|
||||
text-decoration: none;
|
||||
color: rgb(24 24 27);
|
||||
}
|
||||
body {
|
||||
font-family: "Roboto Slab", "Roboto", "Lato", sans-serif;
|
||||
font-size: 20px;
|
||||
font-weight: 400;
|
||||
|
||||
width: auto;
|
||||
height: 100%;
|
||||
min-height: 100%;
|
||||
margin: 0;
|
||||
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
html {
|
||||
position: relative;
|
||||
|
||||
height: 100%;
|
||||
min-height: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
li {
|
||||
text-align: left;
|
||||
}
|
||||
.author {
|
||||
color: #444;
|
||||
}
|
||||
.author h1,
|
||||
.author h2,
|
||||
.author h3,
|
||||
.author h4,
|
||||
.author h5,
|
||||
.author h6,
|
||||
.author p {
|
||||
font-family: "Roboto Slab", serif;
|
||||
}
|
||||
.category {
|
||||
color: #966 !important;
|
||||
}
|
||||
.container {
|
||||
overflow: auto;
|
||||
max-width: 800px;
|
||||
padding: 0 15px;
|
||||
}
|
||||
.content {
|
||||
margin-top: 20px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.content a {
|
||||
text-decoration: none;
|
||||
color: rgb(153 27 27);
|
||||
}
|
||||
div.content {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 18px;
|
||||
font-weight: 300;
|
||||
|
||||
color: #777;
|
||||
}
|
||||
.copyright {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 200;
|
||||
}
|
||||
.description {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-weight: 200;
|
||||
color: rgb(161 161 170);
|
||||
font-size: 16px;
|
||||
}
|
||||
.error {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-weight: 300;
|
||||
margin-top: 100px;
|
||||
}
|
||||
.error a {
|
||||
color: rgb(153 27 27);
|
||||
}
|
||||
.error h1 {
|
||||
font-size: 80px;
|
||||
|
||||
color: #8b8b8b;
|
||||
}
|
||||
.error p {
|
||||
margin-top: 150px;
|
||||
|
||||
color: #777;
|
||||
}
|
||||
.excerpt {
|
||||
font-family: "Lato", sans-serif;
|
||||
font-size: 18px;
|
||||
font-weight: 200;
|
||||
|
||||
color: #555;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.footer {
|
||||
margin-top: 10px;
|
||||
|
||||
color: #8b8b8b;
|
||||
}
|
||||
.header {
|
||||
margin-top: 60px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.headshot {
|
||||
width: 180px;
|
||||
height: 180px;
|
||||
object-fit: cover;
|
||||
}
|
||||
.info {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.intro {
|
||||
font-family: "Roboto Slab", serif;
|
||||
font-weight: 300;
|
||||
font-size: 20px;
|
||||
color: rgb(82 82 91);
|
||||
}
|
||||
h3.intro {
|
||||
margin-top: 0px;
|
||||
}
|
||||
.list {
|
||||
font-family: "Roboto", sans-serif;
|
||||
|
||||
margin-top: 50px;
|
||||
}
|
||||
.list li {
|
||||
list-style: none;
|
||||
}
|
||||
.list-entry {
|
||||
font-family: "Roboto Slab", serif;
|
||||
font-size: 25px;
|
||||
font-weight: 400;
|
||||
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.list-entry-link {
|
||||
padding: 0;
|
||||
}
|
||||
.main-menu {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.menu {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.menu-item {
|
||||
font-family: "Lato", sans-serif;
|
||||
font-size: 20px;
|
||||
font-weight: 300;
|
||||
|
||||
text-decoration: none;
|
||||
|
||||
color: rgb(153 27 27) !important;
|
||||
}
|
||||
.meta {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 200;
|
||||
color: rgb(113 113 122);
|
||||
}
|
||||
a.meta {
|
||||
color: rgb(153 27 27);
|
||||
}
|
||||
h6.meta {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 200;
|
||||
color: rgb(113 113 122);
|
||||
}
|
||||
section.meta {
|
||||
margin-top: ;
|
||||
}
|
||||
.powered {
|
||||
font-family: "Roboto", sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 300;
|
||||
}
|
||||
.social {
|
||||
margin: 20px 10px;
|
||||
}
|
||||
.social a {
|
||||
color: #526d7a;
|
||||
margin: 5px;
|
||||
}
|
||||
.title {
|
||||
font-family: "Roboto Slab", serif;
|
||||
font-weight: 400;
|
||||
|
||||
rgb(24 24 27);
|
||||
}
|
||||
header.title {
|
||||
margin-top: 50px;
|
||||
padding: 0px;
|
||||
}
|
||||
@media (max-width: 991px) {
|
||||
.header {
|
||||
margin-top: 50px;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.list {
|
||||
font-family: "Roboto", sans-serif;
|
||||
|
||||
margin-top: 30px;
|
||||
}
|
||||
}
|
||||
pre > code {
|
||||
white-space: pre;
|
||||
word-wrap: initial;
|
||||
word-break: initial;
|
||||
}
|
BIN
static/favicon-16x16.png
Normal file
After Width: | Height: | Size: 430 B |
BIN
static/favicon-32x32.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
static/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
1
static/js/custom.js
Normal file
|
@ -0,0 +1 @@
|
|||
// Insert custom javascript here.
|
1
static/manifest.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":"hugo-goa","short_name":"goa","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
19
static/site.webmanifest
Normal file
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"name": "hugo-goa",
|
||||
"short_name": "goa",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/android-chrome-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
33
theme.toml
Normal file
|
@ -0,0 +1,33 @@
|
|||
name = "Goa"
|
||||
license = "MIT"
|
||||
licenselink = "https://github.com/stiebke/hugo-goa/blob/master/LICENSE.md"
|
||||
description = "Simple Minimalist Hugo Theme"
|
||||
homepage = "https://github.com/stiebke/hugo-goa"
|
||||
demosite = "https://stephan.hadan.de/hugo-goa-demo/"
|
||||
tags = [
|
||||
"Roboto",
|
||||
"Lato",
|
||||
"Roboto Slab",
|
||||
"bootstrap",
|
||||
"font awesome",
|
||||
"minimal",
|
||||
"clean",
|
||||
]
|
||||
features = [
|
||||
"blog",
|
||||
"pages",
|
||||
"minimal",
|
||||
"responsive",
|
||||
"404",
|
||||
"icons",
|
||||
"disqus",
|
||||
"anlaytics",
|
||||
]
|
||||
|
||||
min_version = "v0.134.0"
|
||||
|
||||
# If the theme has multiple authors
|
||||
authors = [
|
||||
{name = "Rajesh Shenoy", homepage = "https://shenoy.me"},
|
||||
{name = "Stephan Hadan", homepage = "https://stephan.hadan.de"},
|
||||
]
|