Initial migration to new theme
This commit is contained in:
parent
5ce643146c
commit
83e5d66863
27 changed files with 224 additions and 511 deletions
17
.github/workflows/build.yml
vendored
17
.github/workflows/build.yml
vendored
|
@ -17,18 +17,15 @@ jobs:
|
||||||
- name: Setup Hugo
|
- name: Setup Hugo
|
||||||
uses: peaceiris/actions-hugo@v2
|
uses: peaceiris/actions-hugo@v2
|
||||||
with:
|
with:
|
||||||
hugo-version: '0.72.0'
|
hugo-version: '0.74.2'
|
||||||
extended: true
|
extended: true
|
||||||
|
|
||||||
- name: Configure AWS Credentials
|
|
||||||
uses: aws-actions/configure-aws-credentials@v1
|
|
||||||
with:
|
|
||||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
||||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
||||||
aws-region: us-east-1
|
|
||||||
|
|
||||||
- name: Hugo Build
|
- name: Hugo Build
|
||||||
run: hugo --minify
|
run: hugo --minify
|
||||||
|
|
||||||
- name: Deploy to S3
|
- name: Deploy
|
||||||
run: hugo deploy --maxDeletes -1 --invalidateCDN
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ./public
|
||||||
|
cname: www.softinio.com
|
||||||
|
|
6
.gitmodules
vendored
6
.gitmodules
vendored
|
@ -1,3 +1,3 @@
|
||||||
[submodule "themes/jane"]
|
[submodule "themes/hugo-clarity"]
|
||||||
path = themes/jane
|
path = themes/hugo-clarity
|
||||||
url = https://github.com/xianmin/hugo-theme-jane.git
|
url = https://github.com/chipzoller/hugo-clarity
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
+++
|
|
||||||
title = "{{ replace .TranslationBaseName "-" " " | title }}"
|
|
||||||
date = {{ .Date }}
|
|
||||||
draft = false
|
|
||||||
+++
|
|
||||||
|
|
|
@ -1,11 +1,18 @@
|
||||||
+++
|
+++
|
||||||
title = "{{ replace .TranslationBaseName "-" " " | title }}"
|
title = "{{ replace .Name "-" " " | title }}"
|
||||||
date = {{ .Date }}
|
date = {{ .Date }}
|
||||||
draft = false
|
|
||||||
keywords = []
|
|
||||||
description = ""
|
description = ""
|
||||||
|
featured = false
|
||||||
|
draft = false
|
||||||
|
toc = false
|
||||||
|
featureImage = ""
|
||||||
|
thumbnail = ""
|
||||||
|
shareImage = ""
|
||||||
|
codeMaxLines = 10
|
||||||
|
codeLineNumbers = false
|
||||||
|
figurePositionShow = false
|
||||||
|
keywords = []
|
||||||
tags = []
|
tags = []
|
||||||
categories = []
|
categories = []
|
||||||
lastmod = {{ .Date }}
|
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
|
162
config.toml
162
config.toml
|
@ -1,140 +1,58 @@
|
||||||
baseurl = "https://www.softinio.com/"
|
baseurl = "https://www.softinio.com/"
|
||||||
title = "Salar Rahmanian"
|
title = "Salar Rahmanian"
|
||||||
|
author = "Salar Rahmanian"
|
||||||
enableRobotsTXT = true
|
enableRobotsTXT = true
|
||||||
enableEmoji = true
|
enableEmoji = true
|
||||||
theme = "jane"
|
theme = "hugo-clarity"
|
||||||
|
paginate = 10
|
||||||
|
|
||||||
# language support # en / zh-cn / other...
|
[markup]
|
||||||
defaultContentLanguage = "en"
|
[markup.highlight]
|
||||||
[Languages.en]
|
codeFences = true
|
||||||
languageCode = "en"
|
guessSyntax = true
|
||||||
|
hl_Lines = "--"
|
||||||
|
lineNoStart = 1
|
||||||
|
lineNos = true # always set to true # else line numbers won't show at all! even when you toggle them on in the UI
|
||||||
|
lineNumbersInTable = false # toggling this on (i.e to true) or deleting this line will break the code blocks functionality. Will
|
||||||
|
noClasses = false
|
||||||
|
# style = "monokai"
|
||||||
|
tabWidth = 2
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
hardWraps = false
|
||||||
|
unsafe = false # change to true to enable inclusion of rawHTML and math functions
|
||||||
|
xhtml = false
|
||||||
|
|
||||||
hasCJKLanguage = false
|
[params]
|
||||||
paginate = 5
|
author = "Salar Rahmanian"
|
||||||
rssLimit = 20
|
twitter = "@SalarRahmanian"
|
||||||
googleAnalytics = "UA-47014432-1"
|
largeTwitterCard = false
|
||||||
copyright = ""
|
introDescription = "Software Engineer based in San Francisco Bay with interests in Scala, Java"
|
||||||
|
ga_analytics = "UA-47014432-1"
|
||||||
|
numberOfTagsShown = 14
|
||||||
|
fallBackOgImage = "salar.jpg"
|
||||||
|
codeMaxLines = 10
|
||||||
|
codeLineNumbers = false
|
||||||
|
mainSections = ["post"]
|
||||||
|
centerLogo = false
|
||||||
|
# logo = "salar.jpg"
|
||||||
|
figurePositionShow = false
|
||||||
|
figurePositionLabel = "Figure"
|
||||||
|
mobileNavigation = "left"
|
||||||
|
|
||||||
# Highlight options.
|
description = "Salar Rahmanian"
|
||||||
# See https://gohugo.io/content-management/syntax-highlighting/
|
keywords = ["Salar", "Rahmanian", "Salar Rahmanian", "Blog", "python", "scala", "haskell", "nix", "NixOS"]
|
||||||
PygmentsCodeFences = true # Enable syntax highlighting with GitHub flavoured code fences
|
|
||||||
PygmentsUseClasses = true # Use CSS classes to format highlighted code
|
|
||||||
PygmentsCodefencesGuessSyntax = true
|
|
||||||
PygmentsOptions = "linenos=table"
|
|
||||||
|
|
||||||
[author]
|
[params.utteranc]
|
||||||
name = "Salar Rahmanian"
|
enable = true
|
||||||
|
repo = "softinio/softinio.com"
|
||||||
[permalinks]
|
issueTerm = "url"
|
||||||
post = "/post/:slug"
|
|
||||||
page = "/page/:slug"
|
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
changefreq = "weekly"
|
changefreq = "weekly"
|
||||||
priority = 0.5
|
priority = 0.5
|
||||||
filename = "sitemap.xml"
|
filename = "sitemap.xml"
|
||||||
|
|
||||||
[[menu.main]] # config your menu # 配置目录
|
|
||||||
name = "Home"
|
|
||||||
weight = 10
|
|
||||||
identifier = "home"
|
|
||||||
url = "/"
|
|
||||||
[[menu.main]]
|
|
||||||
name = "Archives"
|
|
||||||
weight = 20
|
|
||||||
identifier = "archives"
|
|
||||||
url = "/post/"
|
|
||||||
[[menu.main]]
|
|
||||||
name = "Tags"
|
|
||||||
weight = 30
|
|
||||||
identifier = "tags"
|
|
||||||
url = "/tags/"
|
|
||||||
[[menu.main]]
|
|
||||||
name = "Categories"
|
|
||||||
weight = 40
|
|
||||||
identifier = "categories"
|
|
||||||
url = "/categories/"
|
|
||||||
|
|
||||||
[[menu.main]]
|
|
||||||
name = "Family Blog"
|
|
||||||
url = "https://www.rahmanian.xyz/"
|
|
||||||
weight = 50
|
|
||||||
|
|
||||||
[params]
|
|
||||||
debug = false # If true, load `eruda.min.js`. See https://github.com/liriliri/eruda
|
|
||||||
|
|
||||||
since = "2012" # Site creation time # 站点建立时间
|
|
||||||
homeFullContent = false # if false, show post summaries on home page. Othewise show full content.
|
|
||||||
rssFullContent = true # if false, Rss feed instead of the summary
|
|
||||||
|
|
||||||
# site info (optional) # 站点信息(可选,不需要的可以直接注释掉)
|
|
||||||
logoTitle = "Salar Rahmanian"
|
|
||||||
description = "Salar Rahmanian"
|
|
||||||
keywords = ["Salar, Rahmanian, Blog, python, scala, haskell, swiftlang, nix, NixOS"]
|
|
||||||
|
|
||||||
# paginate of archives, tags and categories # 归档、标签、分类每页显示的文章数目,建议修改为一个较大的值
|
|
||||||
archive-paginate = 3
|
|
||||||
|
|
||||||
# paginate style, default use numbered pagination links
|
|
||||||
# if true, use original "Previous" and "Next" links.
|
|
||||||
# paginateOriginalStyle = true
|
|
||||||
|
|
||||||
# The date format to use; for a list of valid formats, see https://gohugo.io/functions/format/
|
|
||||||
dateFormatToUse = "2006-01-02"
|
|
||||||
|
|
||||||
# show word count and read time ? # 是否显示字数统计与阅读时间
|
|
||||||
moreMeta = true
|
|
||||||
|
|
||||||
# 一些全局开关,你也可以在每一篇内容的 front matter 中针对单篇内容关闭或开启某些功能,在 archetypes/default.md 查看更多信息。
|
|
||||||
# Some global options, you can also close or open something in front matter for a single post, see more information from `archetypes/default.md`.
|
|
||||||
toc = true # 是否开启目录
|
|
||||||
autoCollapseToc = false # Auto expand and collapse toc # 目录自动展开/折叠
|
|
||||||
fancybox = true # see https://github.com/fancyapps/fancybox # 是否启用fancybox(图片可点击)
|
|
||||||
bootcdn = false # In china. @Deprecated: use [params.publicCDN] # 是否使用bootcdn(@Deprecated: 请使用[params.publicCDN])
|
|
||||||
mathjax = false # see https://www.mathjax.org/ # 是否使用mathjax(数学公式)
|
|
||||||
contentCopyright = '<a rel="license noopener" href="https://creativecommons.org/licenses/by-nc-nd/4.0/" target="_blank">CC BY-NC-ND 4.0</a>'
|
|
||||||
|
|
||||||
google_verification = "" # Google_Verification # 谷歌
|
|
||||||
|
|
||||||
# Link custom CSS and JS assets
|
|
||||||
# (relative to /static/css and /static/js respectively)
|
|
||||||
customCSS = [] # if ['custom.css'], load '/static/css/custom.css' file
|
|
||||||
customJS = [] # if ['custom.js'], load '/static/js/custom.js' file
|
|
||||||
|
|
||||||
[params.publicCDN] # load these files from public cdn # 启用公共CDN,需自行定义
|
|
||||||
enable = false
|
|
||||||
jquery = '<script src="https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>'
|
|
||||||
slideout = '<script src="https://cdn.jsdelivr.net/npm/slideout@1.0.1/dist/slideout.min.js" integrity="sha256-t+zJ/g8/KXIJMjSVQdnibt4dlaDxc9zXr/9oNPeWqdg=" crossorigin="anonymous"></script>'
|
|
||||||
fancyboxJs = '<script src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.1.20/dist/jquery.fancybox.min.js" integrity="sha256-XVLffZaxoWfGUEbdzuLi7pwaUJv1cecsQJQqGLe7axY=" crossorigin="anonymous"></script>'
|
|
||||||
fancyboxCss = '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.1.20/dist/jquery.fancybox.min.css" integrity="sha256-7TyXnr2YU040zfSP+rEcz29ggW4j56/ujTPwjMzyqFY=" crossorigin="anonymous">'
|
|
||||||
gitmentJS = '<script src="https://cdn.jsdelivr.net/npm/gitment@0.0.3/dist/gitment.browser.min.js" crossorigin="anonymous"></script>'
|
|
||||||
gitmentCSS = '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gitment@0.0.3/style/default.min.css" crossorigin="anonymous">'
|
|
||||||
|
|
||||||
[params.utteranc] # utteranc is a comment system based on GitHub issues. see https://utteranc.es
|
|
||||||
enable = true
|
|
||||||
repo = "softinio/softinio.com" # The repo to store comments
|
|
||||||
issueTerm = "url"
|
|
||||||
|
|
||||||
[params.gitment] # Gitment is a comment system based on GitHub issues. see https://github.com/imsun/gitment
|
|
||||||
owner = "" # Your GitHub ID
|
|
||||||
repo = "" # The repo to store comments
|
|
||||||
clientId = "" # Your client ID
|
|
||||||
clientSecret = "" # Your client secret
|
|
||||||
|
|
||||||
|
|
||||||
[params.reward] # 文章打赏
|
|
||||||
enable = false
|
|
||||||
wechat = "/path/to/your/wechat-qr-code.png" # 微信二维码
|
|
||||||
alipay = "/path/to/your/alipay-qr-code.png" # 支付宝二维码
|
|
||||||
|
|
||||||
[params.social] # 社交链接
|
|
||||||
# a-email = "mailto:your@email.com"
|
|
||||||
b-stack-overflow = "http://stackoverflow.com/users/1930869/softinio"
|
|
||||||
c-twitter = "https://twitter.com/SalarRahmanian"
|
|
||||||
e-linkedin = "https://www.linkedin.com/in/salarrahmanian/"
|
|
||||||
g-github = "https://github.com/softinio"
|
|
||||||
n-gitlab = "https://gitlab.com/softinio"
|
|
||||||
# o-goodreads = "http://en.xianmin.org/hugo-theme-jane/"
|
|
||||||
|
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ["html", "jsonfeed","rss"]
|
home = ["html", "jsonfeed","rss"]
|
||||||
|
|
28
configTaxo.toml
Normal file
28
configTaxo.toml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
timeout = 30000
|
||||||
|
enableInlineShortcodes = true
|
||||||
|
footnoteReturnLinkContents = "^"
|
||||||
|
|
||||||
|
[taxonomies]
|
||||||
|
category = "categories"
|
||||||
|
tag = "tags"
|
||||||
|
series = "series"
|
||||||
|
|
||||||
|
[privacy]
|
||||||
|
|
||||||
|
[privacy.vimeo]
|
||||||
|
disabled = false
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.twitter]
|
||||||
|
disabled = false
|
||||||
|
enableDNT = true
|
||||||
|
simple = true
|
||||||
|
disableInlineCSS = true
|
||||||
|
|
||||||
|
[privacy.instagram]
|
||||||
|
disabled = false
|
||||||
|
simple = true
|
||||||
|
|
||||||
|
[privacy.youtube]
|
||||||
|
disabled = false
|
||||||
|
privacyEnhanced = true
|
3
content/_index.md
Normal file
3
content/_index.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
+++
|
||||||
|
author = "Salar Rahmanian"
|
||||||
|
+++
|
6
content/post/_index.md
Normal file
6
content/post/_index.md
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
+++
|
||||||
|
aliases = ["posts", "articles", "blog", "showcase", "docs"]
|
||||||
|
title = "Posts"
|
||||||
|
author = "Salar Rahmanian"
|
||||||
|
tags = ["index"]
|
||||||
|
+++
|
|
@ -1,14 +1,15 @@
|
||||||
+++
|
+++
|
||||||
title = "Life changes and announcing SFBayAreaTech"
|
title = "Life changes and announcing SFBayAreaTech"
|
||||||
date = 2018-08-10T07:29:10-07:00
|
date = 2018-08-10T07:29:10-07:00
|
||||||
|
description = "Me and family moved, I changed jobs and announcing SFBayAreaTech a slack community for anyone working in tech who are based in the San Francisco Bay Area California"
|
||||||
draft = false
|
draft = false
|
||||||
keywords = ["sfbayareatech", "slack", "community", "san francisco", "bay area", "california"]
|
keywords = ["sfbayareatech", "slack", "community", "san francisco", "bay area", "california"]
|
||||||
description = "Me and family moved, I changed jobs and announcing SFBayAreaTech a slack community for anyone working in tech who are based in the San Francisco Bay Area California"
|
tags = ["sfbayareatechies"]
|
||||||
tags = ["general", "sfbayareatech"]
|
|
||||||
categories = ["general"]
|
categories = ["general"]
|
||||||
lastmod = 2018-08-10T07:29:10-07:00
|
|
||||||
+++
|
+++
|
||||||
|
|
||||||
|
#### Update: Since writing this blog, I have changed jobs and SFBayAreaTech has changed to <https://www.sfbayareatechies.com> ####
|
||||||
|
|
||||||
2018 has been a fabulous year so far. Me and [family moved to the San Francisco bay area](https://www.rahmanian.xyz/post/goodbye-virginia-and-hello-san-fransisco-bay-area/) realizing my life long dream and our family goals.
|
2018 has been a fabulous year so far. Me and [family moved to the San Francisco bay area](https://www.rahmanian.xyz/post/goodbye-virginia-and-hello-san-fransisco-bay-area/) realizing my life long dream and our family goals.
|
||||||
|
|
||||||
It is absolutely an awesome experience living in the Bay Area amongst so many super smart techies and great startups. On arrival I had two initial goals, namely, meet everyone in tech and make friends and find a new awesome job with a startup that has a great future and potential solving problems that line up well with my interests and technical interests.
|
It is absolutely an awesome experience living in the Bay Area amongst so many super smart techies and great startups. On arrival I had two initial goals, namely, meet everyone in tech and make friends and find a new awesome job with a startup that has a great future and potential solving problems that line up well with my interests and technical interests.
|
||||||
|
|
|
@ -1,263 +0,0 @@
|
||||||
+++
|
|
||||||
Topics = ["development"]
|
|
||||||
date = "2014-01-09T08:54:57-05:00"
|
|
||||||
Description = "Overview of what is involved in getting your Laravel 4 apps authentication system to integrate with Get Satisfaction Fastpass for single sign on."
|
|
||||||
Keywords = ["laravel", "php", "fastpass"]
|
|
||||||
Tags = ["laravel", "php", "fastpass"]
|
|
||||||
Slug = "integrating-get-satisfaction-fastpass-with-laravel"
|
|
||||||
Title = "Integrating Get Satisfaction Fastpass with Laravel"
|
|
||||||
+++
|
|
||||||
|
|
||||||
Here is an overview of what is involved in getting your Laravel 4 apps authentication system to integrate with Get Satisfaction Fastpass for single sign on.
|
|
||||||
|
|
||||||
## What I am using
|
|
||||||
* [Laravel 4.0][2]
|
|
||||||
* [Cartalyst Sentry 2][3] (for authentication)
|
|
||||||
* [Former][4]
|
|
||||||
* [Fastpass PHP SDK][1]
|
|
||||||
|
|
||||||
## Install the Fastpass PHP SDK
|
|
||||||
|
|
||||||
**Create a folder to install the library in**
|
|
||||||
```
|
|
||||||
$ mkdir app/lib
|
|
||||||
$ mkdir app/lib/getsatisfaction
|
|
||||||
```
|
|
||||||
**Download & untar/unzip the Fastpass PHP SDK**
|
|
||||||
```
|
|
||||||
cd app/lib/getsatisfaction
|
|
||||||
wget "https://getsatisfaction.com/fastpass/php.tar.gz"
|
|
||||||
tar -zxvf php.tar.gz .
|
|
||||||
```
|
|
||||||
|
|
||||||
**Update** *composer.json* **adding the location of the library**
|
|
||||||
|
|
||||||
In the *autoload* section add the path *app/lib/getsatisfaction*
|
|
||||||
|
|
||||||
```json
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"app/commands",
|
|
||||||
"app/controllers",
|
|
||||||
"app/models",
|
|
||||||
"app/database/migrations",
|
|
||||||
"app/database/seeds",
|
|
||||||
"app/tests/TestCase.php",
|
|
||||||
"app/lib/getsatisfaction"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
```
|
|
||||||
|
|
||||||
**In the console run**
|
|
||||||
```
|
|
||||||
$ composer update
|
|
||||||
$ php artisan dump-autoload
|
|
||||||
```
|
|
||||||
|
|
||||||
**Create a configuration file (e.g. app/config/getsatisfaction.php ) to hold your API tokens for the Fastpass service**
|
|
||||||
|
|
||||||
```php
|
|
||||||
<?php
|
|
||||||
|
|
||||||
return array(
|
|
||||||
'key' => '<your fastpass key>',
|
|
||||||
'secret' => '<your fastpass secret>',
|
|
||||||
'domain' => '<your domain for your get satisfaction commmunity>',
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
The above information can be found in the admin section once you log in as administrator on <http://getsatisfaction.com>.
|
|
||||||
|
|
||||||
## Create a login screen for Single Sign on
|
|
||||||
|
|
||||||
We now need to create a login form to be used by the Fastpass service to use our authentication service provided by sentry to log users into Get Satisfaction.
|
|
||||||
|
|
||||||
**First we create a new controller** *app/controllers/SatisfactionController.php*
|
|
||||||
|
|
||||||
```php
|
|
||||||
<?php
|
|
||||||
|
|
||||||
use App\Services\Validators\UserValidator;
|
|
||||||
use Cartalyst\Sentry\Users;
|
|
||||||
|
|
||||||
class SatisfactionController extends BaseController
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Authenticate the user
|
|
||||||
*
|
|
||||||
* @author Salar Rahmanian
|
|
||||||
* @link http://www.softinio.com
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function postLogin()
|
|
||||||
{
|
|
||||||
$remember = Input::get('remember_me', false);
|
|
||||||
$userdata = array(
|
|
||||||
Config::get('cartalyst/sentry::users.login_attribute') => Input::get('login_attribute'),
|
|
||||||
'password' => Input::get('password')
|
|
||||||
);
|
|
||||||
try {
|
|
||||||
// Log user in
|
|
||||||
$user = Sentry::authenticate($userdata, $remember);
|
|
||||||
} catch (LoginRequiredException $e) {
|
|
||||||
return Redirect::back()->withInput()->with('error', $e->getMessage());
|
|
||||||
} catch (PasswordRequiredException $e) {
|
|
||||||
return Redirect::back()->withInput()->with('error', $e->getMessage());
|
|
||||||
} catch (WrongPasswordException $e) {
|
|
||||||
return Redirect::back()->withInput()->with('error', $e->getMessage());
|
|
||||||
} catch (UserNotActivatedException $e) {
|
|
||||||
return Redirect::back()->withInput()->with('error', $e->getMessage());
|
|
||||||
} catch (UserNotFoundException $e) {
|
|
||||||
return Redirect::back()->withInput()->with('error', $e->getMessage());
|
|
||||||
} catch (UserSuspendedException $e) {
|
|
||||||
return Redirect::back()->withInput()->with('error', $e->getMessage());
|
|
||||||
} catch (UserBannedException $e) {
|
|
||||||
return Redirect::back()->withInput()->with('error', $e->getMessage());
|
|
||||||
} catch (Exception $e) {
|
|
||||||
return Redirect::back()->withInput()->with('error', $e->getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
Event::fire('users.login', array($user));
|
|
||||||
|
|
||||||
// Log user into Get Satisfaction service
|
|
||||||
return View::make('satisfaction.index', compact('user'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the login form
|
|
||||||
*
|
|
||||||
* @author Salar Rahmanian
|
|
||||||
* @link http://www.softinio.com
|
|
||||||
*
|
|
||||||
* @return Response
|
|
||||||
*/
|
|
||||||
public function getLogin()
|
|
||||||
{
|
|
||||||
// Check to see if user logged in, if not show login form
|
|
||||||
if (!\Sentry::check()) {
|
|
||||||
$login_attribute = Config::get('cartalyst/sentry::users.login_attribute');
|
|
||||||
return View::make('satisfaction.login', compact('login_attribute'));
|
|
||||||
}
|
|
||||||
|
|
||||||
// user already logged in so log them into Get Satisfaction service
|
|
||||||
$user = \Sentry::getUser();
|
|
||||||
|
|
||||||
return View::make('satisfaction.index', compact('user'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
Now we need to create the two views used by this controller, one with a login form and one view which logs the user into the get satisfaction service.
|
|
||||||
|
|
||||||
For the login form we create the view *app/views/satisfaction/login.blade.php*
|
|
||||||
|
|
||||||
This can be a copy of the login form you currently use within your Laravel app but with the form action changed to use the new *SatisfactionController*.
|
|
||||||
|
|
||||||
```
|
|
||||||
@extends('layouts.master')
|
|
||||||
|
|
||||||
@section('h1')
|
|
||||||
<h1>Sign In</h1>
|
|
||||||
@stop
|
|
||||||
|
|
||||||
@section('crumb')
|
|
||||||
<li><a href="{{ url('/satisfaction/index') }}">User</a></li>
|
|
||||||
<li class="active">Login</li>
|
|
||||||
@stop
|
|
||||||
|
|
||||||
@section('title')
|
|
||||||
Sign In -
|
|
||||||
@stop
|
|
||||||
|
|
||||||
@section('container')
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-offset-2 col-lg-6 col-md-offset-2 col-md-6">
|
|
||||||
{{ Former::horizontal_open(url('/satisfaction/login')) }}
|
|
||||||
|
|
||||||
{{ Former::text('login_attribute', 'User Name',Input::old('login_attribute'))->required() }}
|
|
||||||
|
|
||||||
{{ Former::password('password', 'Password')->required() }}
|
|
||||||
{{ Former::checkbox('remember_me',' ')->text('Remember me on this computer') }}
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-lg-offset-3 col-sm-offset-4 col-lg-9 col-sm-8">
|
|
||||||
{{ Former::primary_submit('Log in') }}
|
|
||||||
<a href="{{ URL::route('user.register') }}" class="pull-right">Register Here</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@stop
|
|
||||||
```
|
|
||||||
|
|
||||||
**We create the view that logs user into Get Satisfaction** *app/views/satisfaction/index.blade.php*
|
|
||||||
|
|
||||||
This is in effect a blank html document which calls the php class from the Fastpass library to log the current user into the Get Satisfaction service.
|
|
||||||
|
|
||||||
```
|
|
||||||
<!DOCTYPE html>
|
|
||||||
|
|
||||||
|
|
||||||
{{ \FastPass::$domain = \Config::get('getsatisfaction.domain'); }}
|
|
||||||
{{ \FastPass::script(\Config::get('getsatisfaction.key'),
|
|
||||||
\Config::get('getsatisfaction.secret'),
|
|
||||||
$user->email,
|
|
||||||
$user->username,
|
|
||||||
$user->id,
|
|
||||||
true
|
|
||||||
); }}
|
|
||||||
|
|
||||||
<html lang="en" class="env_<?php echo App::environment(); ?>">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="description" content="">
|
|
||||||
<meta name="author" content="">
|
|
||||||
<link rel="shortcut icon" href="/assets/ico/favicon.png">
|
|
||||||
|
|
||||||
<title>@yield('title') softinio.com </title>
|
|
||||||
|
|
||||||
<!-- Bootstrap core CSS -->
|
|
||||||
{{ basset_stylesheets('bootstrap','application') }}
|
|
||||||
|
|
||||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
{{ basset_javascripts('html5') }}
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
```
|
|
||||||
The users email , username and user id provided by Sentry are used to create and log user into the Get Satisfaction service. The username is what will be displayed as the logged in user on Get Satisfaction website so if you prefer something else you can substitute username for what you prefer.
|
|
||||||
|
|
||||||
**Update your** *app/routes.php* **file**
|
|
||||||
|
|
||||||
```php
|
|
||||||
Route::get('satisfaction/login', 'SatisfactionController@getLogin');
|
|
||||||
Route::post('satisfaction/login','SatisfactionController@postLogin');
|
|
||||||
```
|
|
||||||
|
|
||||||
## Update Get Satisfaction with your login URL
|
|
||||||
|
|
||||||
Based on the new route you created for the *SatisfactionController* your URL to your single sign on should be
|
|
||||||
```
|
|
||||||
http://<yourdomain where your laravel app is>/satisfaction/login
|
|
||||||
```
|
|
||||||
|
|
||||||
Log into Get Satifaction as admin, click the wheel settings menu, select Configure then select Fastpass. Here set your *External Login URL* to this and click save.
|
|
||||||
|
|
||||||
Whilst you are logged in as admin you can also click login options and select Fastpass as your preferred login method.
|
|
||||||
|
|
||||||
|
|
||||||
[1]: https://getsatisfaction.com/fastpass/php.tar.gz
|
|
||||||
[2]: http://laravel.com
|
|
||||||
[3]: https://cartalyst.com/manual/sentry
|
|
||||||
[4]: http://anahkiasen.github.io/former
|
|
|
@ -1,11 +1,11 @@
|
||||||
+++
|
+++
|
||||||
Topics = ["development"]
|
title = "Migrating from Pelican to Hugo"
|
||||||
date = "2015-11-29T07:16:53-05:00"
|
date = "2015-11-29T07:16:53-05:00"
|
||||||
Description = "In this post I will discuss the steps I took to migrate my blog from Pelican to Hugo."
|
description = "In this post I will discuss the steps I took to migrate my blog from Pelican to Hugo."
|
||||||
Keywords = ["pelican", "hugo", "golang", "go", "python", "blog"]
|
toc = true
|
||||||
Slug = "migrating-from-pelican-to-hugo"
|
keywords = ["pelican", "hugo", "golang", "go", "python", "blog"]
|
||||||
Tags = ["pelican", "hugo", "golang", "go", "python", "blog"]
|
tags = ["hugo", "golang", "blog"]
|
||||||
Title = "Migrating from Pelican to Hugo"
|
categories = ["development"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
In this post I will discuss the steps I took to migrate my blog from [Pelican](http://blog.getpelican.com/) to [Hugo](http://gohugo.io/).
|
In this post I will discuss the steps I took to migrate my blog from [Pelican](http://blog.getpelican.com/) to [Hugo](http://gohugo.io/).
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
+++
|
+++
|
||||||
title = "Moving from Homebrew to Nix Package Manager"
|
title = "Moving from Homebrew to Nix Package Manager"
|
||||||
date = 2019-02-16T18:30:40-07:00
|
date = 2019-02-16T18:30:40-07:00
|
||||||
draft = false
|
|
||||||
keywords = ["nix", "nixos", "macos", "macbook", "package manager", "functional programming"]
|
|
||||||
description = "Moving from Homebrew to Nix Package manager on my macbook pro"
|
description = "Moving from Homebrew to Nix Package manager on my macbook pro"
|
||||||
|
featured = true
|
||||||
|
draft = false
|
||||||
|
toc = true
|
||||||
|
keywords = ["nix", "nixos", "macos", "macbook", "package manager", "functional programming"]
|
||||||
tags = ["nix", "nixos", "macos", "functional programming"]
|
tags = ["nix", "nixos", "macos", "functional programming"]
|
||||||
categories = ["nix", "nixos", "macos", "macbook"]
|
categories = ["nix", "nixos", "macos"]
|
||||||
lastmod = 2019-02-16T18:30:40-07:00
|
|
||||||
+++
|
+++
|
||||||
|
|
||||||
![Nix](https://via.softinio.com/Screen-Shot-2019-02-17-13-04-16.png)
|
![Nix](https://via.softinio.com/Screen-Shot-2019-02-17-13-04-16.png)
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
+++
|
+++
|
||||||
title = "PyBay 2018 San Francisco"
|
title = "PyBay 2018 San Francisco"
|
||||||
date = 2018-10-25T18:30:40-07:00
|
date = 2018-10-25T18:30:40-07:00
|
||||||
|
description = "Highlights of PyBay 2018 conference a Python event based in the San Francisco Bay Area California"
|
||||||
draft = false
|
draft = false
|
||||||
keywords = ["python", "pybay", "sfpython", "pycon", "san francisco", "bay area", "california", "conference"]
|
keywords = ["python", "pybay", "sfpython", "pycon", "san francisco", "bay area", "california", "conference"]
|
||||||
description = "Highlights of PyBay 2018 conference a Python event based in the San Francisco Bay Area California"
|
|
||||||
tags = ["python", "conference"]
|
tags = ["python", "conference"]
|
||||||
categories = ["python", "conference"]
|
categories = ["python", "conference"]
|
||||||
lastmod = 2018-10-25T18:30:40-07:00
|
|
||||||
+++
|
+++
|
||||||
As you read in my [last blog](https://www.softinio.com/post/life-changes-and-announcing-sfbayareatech/)
|
As you read in my [last blog](https://www.softinio.com/post/life-changes-and-announcing-sfbayareatech/)
|
||||||
I was lucky enough to finally move to the bay area. If you know me you will
|
I was lucky enough to finally move to the bay area. If you know me you will
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
+++
|
+++
|
||||||
title = "Scale By The Bay 2018 San Francisco"
|
title = "Scale By The Bay 2018 San Francisco"
|
||||||
date = 2019-05-02T18:30:40-07:00
|
date = 2019-05-02T18:30:40-07:00
|
||||||
|
description = "Highlights of Scale By The Bay 2018 San Francisco conference an event based in the San Francisco Bay Area California with major focus on Functional Programming, Reactive programming and Data Science"
|
||||||
draft = false
|
draft = false
|
||||||
keywords = ["scala", "bythebay", "sfscala", "functional programming", "san francisco", "bay area", "california", "conference"]
|
keywords = ["scala", "bythebay", "sfscala", "functional programming", "san francisco", "bay area", "california", "conference"]
|
||||||
description = "Highlights of Scale By The Bay 2018 San Francisco conference an event based in the San Francisco Bay Area California with major focus on Functional Programming, Reactive programming and Data Science"
|
|
||||||
tags = ["scala", "conference", "functional programming"]
|
tags = ["scala", "conference", "functional programming"]
|
||||||
categories = ["scala", "conference", "functional programming"]
|
categories = ["scala", "conference", "functional programming"]
|
||||||
lastmod = 2019-05-02T18:30:40-07:00
|
|
||||||
+++
|
+++
|
||||||
|
|
||||||
One of the highlights of 2018 was attending and being part of the Scale By the bay 2018 conference in San Francisco. This by far was the best conference I have ever attended.
|
One of the highlights of 2018 was attending and being part of the Scale By the bay 2018 conference in San Francisco. This by far was the best conference I have ever attended.
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
+++
|
+++
|
||||||
Topics = ["development"]
|
title = "Using pyenv for Python projects"
|
||||||
date = "2015-04-13T09:06:03-05:00"
|
date = "2015-04-13T09:06:03-05:00"
|
||||||
Description = "Using pyenv to manage your virtual environments makes working on multiple projects, each using a different version of python a breeze."
|
draft = false
|
||||||
Slug = "using-pyenv-for-python-projects"
|
toc = true
|
||||||
Tags = ["python", "pyenv", "centos"]
|
description = "Using pyenv to manage your virtual environments makes working on multiple projects, each using a different version of python a breeze."
|
||||||
Keywords = ["python", "pyenv", "centos"]
|
keywords = ["python", "pyenv", "centos", "macos"]
|
||||||
Title = "Using pyenv for Python projects"
|
tags = ["python", "pyenv", "centos", "macos"]
|
||||||
|
categories = ["development"]
|
||||||
+++
|
+++
|
||||||
|
|
||||||
Using [pyenv][3] to manage your virtual environments makes working on multiple projects, each using a different version of python a breeze.
|
Using [pyenv][3] to manage your virtual environments makes working on multiple projects, each using a different version of python a breeze.
|
||||||
|
|
|
@ -1,11 +1,8 @@
|
||||||
+++
|
+++
|
||||||
date = "2018-04-16T09:16:07-05:00"
|
|
||||||
lastmod = "2020-07-27"
|
|
||||||
Description = "Salar Rahmanian Resume"
|
|
||||||
keywords = ["Salar", "Rahmanian", "Salar Rahmanian", "Resume", "CV"]
|
|
||||||
menu = "main"
|
|
||||||
slug = "salar-rahmanian-resume"
|
|
||||||
title = "Resume"
|
title = "Resume"
|
||||||
|
date = "2018-04-16T09:16:07-05:00"
|
||||||
|
description = "Salar Rahmanian Resume"
|
||||||
|
keywords = ["Salar", "Rahmanian", "Salar Rahmanian", "Resume", "CV"]
|
||||||
+++
|
+++
|
||||||
# Salar Rahmanian #
|
# Salar Rahmanian #
|
||||||
## My Location ##
|
## My Location ##
|
|
@ -1,10 +1,8 @@
|
||||||
+++
|
+++
|
||||||
|
title = "Salar Rahmanian"
|
||||||
date = "2015-11-26T09:16:07-05:00"
|
date = "2015-11-26T09:16:07-05:00"
|
||||||
Description = "About Salar Rahmanian"
|
description = "About Salar Rahmanian"
|
||||||
keywords = ["Salar", "Rahmanian", "Salar Rahmanian"]
|
keywords = ["Salar", "Rahmanian", "Salar Rahmanian"]
|
||||||
menu = "main"
|
|
||||||
slug = "salar-rahmanian"
|
|
||||||
title = "About Me"
|
|
||||||
+++
|
+++
|
||||||
|
|
||||||
I , [Salar Rahmanian](https://www.softinio.com), am a software developer based in San Francisco Bay area, California.
|
I , [Salar Rahmanian](https://www.softinio.com), am a software developer based in San Francisco Bay area, California.
|
8
data/menu.yaml
Normal file
8
data/menu.yaml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
- name: About
|
||||||
|
link: salar-rahmanian
|
||||||
|
- name: Resumé
|
||||||
|
link: resume
|
||||||
|
- name: Family
|
||||||
|
link: https://www.rahmanian.xyz
|
||||||
|
- name: Events
|
||||||
|
link: https://www.sfbayareatechies.com
|
9
data/social.yaml
Normal file
9
data/social.yaml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
- item: "github"
|
||||||
|
url: "https://github.com/softinio"
|
||||||
|
- item: "twitter"
|
||||||
|
url: "https://twitter.com/SalarRahmanian"
|
||||||
|
- item: "linkedin"
|
||||||
|
url: "https://www.linkedin.com/in/salarrahmanian/"
|
||||||
|
- item: "rss"
|
||||||
|
url: "index.xml"
|
||||||
|
internal: true
|
|
@ -1,32 +1,28 @@
|
||||||
{{ define "content" -}}
|
{{- define "main" }}
|
||||||
<article class="post bg-white">
|
{{- $scratch := newScratch }}
|
||||||
<!-- post-header -->
|
{{- if isset .Params "image" }}
|
||||||
<header class="post-header">
|
{{- $scratch.Set "image" .Params.image }}
|
||||||
<h1 class="post-title">{{ .Title }}</h1>
|
{{- else }}
|
||||||
{{ partial "post/i18nlist.html" . }}
|
{{ $scratch.Set "image" .Site.Params.fallBackOgImage }}
|
||||||
<div class="post-meta">
|
{{- end }}
|
||||||
<!-- <time datetime="{{ .Date.Format "2006-01-02" }}" class="post-time"> -->
|
{{- $image := $scratch.Get "image" }}
|
||||||
<!-- <!-1- {{ .Date.Format (.Site.Params.dateFormatToUse | default "2006-01-02") }} -1-> -->
|
{{- $bg := (path.Join "images" $image | absLangURL) }}
|
||||||
<!-- </time> -->
|
<div class = 'grid-inverse wrap content'>
|
||||||
</div>
|
<article class='post_content'>
|
||||||
</header>
|
<h1 class='post_title'>{{ .Title }}</h1>
|
||||||
|
{{- partial "post-meta" . }}
|
||||||
<!-- TOC -->
|
{{ partial "share" . }}
|
||||||
{{ partial "post/toc.html" . }}
|
{{ with .Params.featureImage }}
|
||||||
|
<img src = '{{ . }}' class="image_featured">
|
||||||
<!-- Content -->
|
{{ end }}
|
||||||
<div class="post-content">
|
{{ if .Params.toc }}
|
||||||
{{ .Content }}
|
<h2>Overview</h2>
|
||||||
</div>
|
{{ .TableOfContents }}
|
||||||
|
{{ end }}
|
||||||
<!-- Copyright -->
|
{{- .Content }}
|
||||||
{{ partial "post/copyright.html" . }}
|
</article>
|
||||||
|
{{- partial "sidebar" . }}
|
||||||
<!-- Reward -->
|
<!-- Comments -->
|
||||||
{{ partial "post/reward.html" . }}
|
{{ partial "comments.html" . }}
|
||||||
</article>
|
</div>
|
||||||
|
|
||||||
<!-- Comments -->
|
|
||||||
{{ partial "comments.html" . }}
|
|
||||||
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
12
layouts/partials/comments.html
Normal file
12
layouts/partials/comments.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<!-- utteranc -->
|
||||||
|
{{ if .Site.Params.utteranc.enable }}
|
||||||
|
<div class="post bg-white">
|
||||||
|
<script src="https://utteranc.es/client.js"
|
||||||
|
repo= "{{ .Site.Params.utteranc.repo }}"
|
||||||
|
issue-term="{{ .Site.Params.utteranc.issueTerm }}"
|
||||||
|
theme="{{ default "github-light" .Site.Params.utteranc.theme }}"
|
||||||
|
crossorigin="anonymous"
|
||||||
|
async>
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
|
@ -1,40 +1,10 @@
|
||||||
<div class="icon-links">
|
<footer class = 'footer'>
|
||||||
{{ partial "social_links.html" . }}
|
<div class = 'footer_inner wrap pale'>
|
||||||
</div>
|
<img src = '{{ absURL "softinio.jpg" }}' class = 'icon icon_2 transparent'>
|
||||||
|
<p>Copyright © <span class = 'year'></span> {{ .Site.Title | upper }}. <span>
|
||||||
<div class="copyright">
|
|
||||||
<span class="power-by">
|
|
||||||
Powered by <a class="hexo-link" href="https://gohugo.io">Hugo</a>
|
|
||||||
</span>
|
|
||||||
<span class="copyright-year">
|
|
||||||
{{- $current := now.Format "2006" }}
|
|
||||||
©
|
|
||||||
{{ if ne .Site.Params.since $current }}
|
|
||||||
{{ .Site.Params.since }} -
|
|
||||||
{{ end }}
|
|
||||||
{{- $current }}
|
|
||||||
<span class="heart">
|
|
||||||
{{/* icon heart */}}
|
|
||||||
<i class="iconfont">
|
|
||||||
{{ partial "svg/heart.svg" }}
|
|
||||||
</i>
|
|
||||||
</span>
|
|
||||||
{{- if or .Site.Copyright .Site.Author.name -}}
|
|
||||||
<span class="author">
|
|
||||||
{{if .Site.Copyright }}{{ .Site.Copyright | safeHTML }}
|
|
||||||
{{ else }}{{ .Site.Author.name | safeHTML }}
|
|
||||||
{{ end }}
|
|
||||||
</span>
|
|
||||||
<span>
|
|
||||||
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a><br />This work by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Salar Rahmanian</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
|
<a rel="license" href="http://creativecommons.org/licenses/by/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/4.0/80x15.png" /></a><br />This work by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Salar Rahmanian</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</a>.
|
||||||
Please attribute properly and link back. <br/>
|
Please attribute properly and link back. <br/>
|
||||||
</span>
|
</span></p>
|
||||||
{{- end -}}
|
{{- partial "top" .}}
|
||||||
</span>
|
</div>
|
||||||
|
</footer>
|
||||||
{{ if .Site.Params.customFooter }}
|
|
||||||
<span>
|
|
||||||
{{ .Site.Params.customFooter | safeHTML }}
|
|
||||||
</span>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
|
|
32
layouts/partials/head.html
Normal file
32
layouts/partials/head.html
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<title>{{ if and .Title (ne (trim (lower .Site.Title) "") (trim (lower .Title) "")) }}{{ .Title }} | {{ end }}{{ .Site.Title }}</title>
|
||||||
|
<meta charset='utf-8'>
|
||||||
|
{{ hugo.Generator }}
|
||||||
|
{{- with .Site.Params.ga_verify }}
|
||||||
|
<meta name="google-site-verification" content="{{ . }}" />
|
||||||
|
{{- end }}
|
||||||
|
<meta name = 'viewport' content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no'>
|
||||||
|
<meta http-equiv = 'X-UA-Compatible' content = 'IE=edge'>
|
||||||
|
{{- if (ne hugo.Environment "development") }}
|
||||||
|
{{- partial "analytics.html" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- partial "opengraph.html" . }}
|
||||||
|
{{- partial "favicon.html" . }}
|
||||||
|
<link rel='canonical' href='{{ .Permalink }}'>
|
||||||
|
<!-- author & description & keywords -->
|
||||||
|
<meta name="author" content="{{ .Site.Params.author | safeHTML }}" />
|
||||||
|
|
||||||
|
{{- if .Description -}}
|
||||||
|
<meta name="description" content="{{ .Description | safeHTML }}" />
|
||||||
|
{{ else if .IsPage }}
|
||||||
|
<meta name="description" content="{{ .Summary | plainify }}" />
|
||||||
|
{{ else if .Site.Params.description }}
|
||||||
|
<meta name="description" content="{{ .Site.Params.description | safeHTML }}" />
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- if .Keywords -}}
|
||||||
|
{{ $length := len .Keywords | add -1 -}}
|
||||||
|
<meta name="keywords" content="{{ range $index, $element := .Keywords }}{{ $element | safeHTML }}{{if ne $index $length }}, {{ end }}{{ end }}" />
|
||||||
|
{{ else if .Site.Params.keywords }}
|
||||||
|
{{ $length := len .Site.Params.keywords | add -1 -}}
|
||||||
|
<meta name="keywords" content="{{ range $index, $element := .Site.Params.keywords }}{{ $element | safeHTML }}{{if ne $index $length }}, {{ end }}{{ end }}" />
|
||||||
|
{{- end }}
|
BIN
static/salar.jpg
Normal file
BIN
static/salar.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 75 KiB |
BIN
static/softinio.jpg
Normal file
BIN
static/softinio.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
1
themes/hugo-clarity
Submodule
1
themes/hugo-clarity
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit fc4c5812b0ad0a79c5cf367f6e525f89b9014435
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 88bc8ad05dbf978eaae1ab6359a81acae4bfd034
|
|
Loading…
Reference in a new issue