Compare commits

..

1 Commits
main ... v1.0.0

Author SHA1 Message Date
James Panther
8a18aaa6f7
🔨 Preparing release v1.0.0
Some checks failed
Test Build / build (push) Failing after 14s
2021-11-01 13:40:40 +11:00
56 changed files with 2929 additions and 2147 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
github: jpanther

47
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@ -0,0 +1,47 @@
name: 🐛 Bug Report
description: Report a new problem encountered using the theme
labels: [bug]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report! Before proceeding, please check that a similar issue has not already been reported. [View open issues](https://github.com/jpanther/lynx/issues)
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Describe the issue and how to reproduce it, including what you expected to happen.
validations:
required: true
- type: input
id: theme-version
attributes:
label: Theme version
description: What version of the theme are you using?
placeholder: eg. v1.1.0
validations:
required: true
- type: input
id: hugo-version
attributes:
label: Hugo version
description: What version of Hugo are you using?
placeholder: eg. v0.86.1
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- type: textarea
id: logs
attributes:
label: Relevant Hugo log output
description: Please copy and paste any relevant Hugo log output. This will be automatically formatted into code, so no need for backticks.
render: shell

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: 💡 Feature Request
url: https://github.com/jpanther/lynx/discussions
about: Request and discuss enhancements using GitHub Discussions
- name: 🙋‍♀️ Question
url: https://github.com/jpanther/lynx/discussions
about: Please ask and answer general questions using GitHub Discussions

45
.github/ISSUE_TEMPLATE/i18n-issue.yml vendored Normal file
View File

@ -0,0 +1,45 @@
name: 💬 i18n Issue
description: Report an issue with i18n or translations
labels: [i18n]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this issue report!
- type: input
id: language
attributes:
label: Language
description: Which language are you using?
placeholder: eg. English
validations:
required: true
- type: textarea
id: issue
attributes:
label: What's the issue?
description: Describe the translation issue and how to reproduce it.
validations:
required: true
- type: input
id: theme-version
attributes:
label: Theme version
description: What version of the theme are you using?
placeholder: eg. v1.1.0
validations:
required: true
- type: input
id: hugo-version
attributes:
label: Hugo version
description: What version of Hugo are you using?
placeholder: eg. v0.86.1
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant Hugo log output
description: Please copy and paste any relevant Hugo log output. This will be automatically formatted into code, so no need for backticks.
render: shell

6
.github/labeller.yml vendored Normal file
View File

@ -0,0 +1,6 @@
i18n:
- i18n/*
documentation:
- "*.md"
- exampleSite/content/*

35
.github/workflows/gh-pages.yml vendored Normal file
View File

@ -0,0 +1,35 @@
name: GitHub Pages
on:
push:
branches:
- stable
jobs:
build-deploy:
runs-on: ubuntu-20.04
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
fetch-depth: 0
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
- name: Build
working-directory: ./exampleSite
run: hugo --minify --themesDir ../.. --baseURL https://jpanther.github.io/lynx/
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: ${{ github.ref == 'refs/heads/stable' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: ./exampleSite/public

17
.github/workflows/label.yml vendored Normal file
View File

@ -0,0 +1,17 @@
name: Labeller
on: [pull_request_target]
jobs:
label:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Label
uses: actions/labeler@v3
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/labeller.yml

24
.github/workflows/test-build.yml vendored Normal file
View File

@ -0,0 +1,24 @@
name: Test Build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-20.04
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
fetch-depth: 0
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
- name: Build
working-directory: ./exampleSite
run: hugo --minify --themesDir ../.. --baseURL https://jpanther.github.io/lynx/

143
.gitignore vendored
View File

@ -1,23 +1,144 @@
# Created by https://www.toptal.com/developers/gitignore/api/node,
# Edit at https://www.toptal.com/developers/gitignore?templates=node,
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
.env.production
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# End of https://www.toptal.com/developers/gitignore/api/node,
# Created by https://www.toptal.com/developers/gitignore/api/hugo
# Edit at https://www.toptal.com/developers/gitignore?templates=hugo
### Hugo ###
# Generated files by hugo
**/public/
**/resources/_gen/
/public/
/resources/_gen/
# Executable may be added to repository
hugo.exe
hugo.darwin
hugo.linux
# Temporary lock file while building
.hugo_build.lock
### Congo ###
# Lighthouse generated output
.lighthouseci
# Project specific files
TODO
# End of https://www.toptal.com/developers/gitignore/api/hugo

View File

@ -1,3 +0,0 @@
/assets/css/compiled/
/layouts/_default/_markup/*.html

View File

@ -1,11 +1,8 @@
{
"plugins": ["prettier-plugin-go-template", "prettier-plugin-tailwindcss"],
"goTemplateBracketSpacing": true,
"htmlWhitespaceSensitivity": "css",
"printWidth": 100,
"singleQuote": false,
"tabWidth": 2,
"useTabs": false,
"trailingComma": "es5",
"overrides": [
{

View File

@ -1,106 +1,12 @@
# Changelog
All notable changes to Lynx will be documented in this file. Things that need particular attention when upgrading from a prior version are marked ⚠️.
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [1.4.0] - 2024-05-01
### Added
- Support for Bandcamp, Bluesky, Spotify and Threads
- Support for X (Twitter) ([#107](https://github.com/jpanther/lynx/pull/107))
### Changed
- ⚠️ Author param block in site config moved to `params.author` to align with recent deprecations in the Hugo project
- Upgrade to Tailwind v3.4.3 ([#138](https://github.com/jpanther/lynx/pull/138))
- Upgrade to Typography v0.5.11 ([#137](https://github.com/jpanther/lynx/pull/137))
## [1.3.1] - 2023-09-10
### Changed
- Upgrade to Tailwind v3.3.3 ([#77](https://github.com/jpanther/lynx/pull/77))
- Upgrade to Typography v0.5.10 ([#90](https://github.com/jpanther/lynx/pull/90))
## [1.3.0] - 2023-06-04
### Added
- Support for Stack Exchange and Stack Overflow ([#52](https://github.com/jpanther/lynx/pull/52))
### Changed
- Updated GitLab icon
- Upgrade to Tailwind v3.3.2 ([#74](https://github.com/jpanther/lynx/pull/74))
### Fixed
- Error building site when using Hugo v0.112.0 or later ([#73](https://github.com/jpanther/lynx/issues/73))
## [1.2.4] - 2023-01-18
### Changed
- Upgrade to Typography v0.5.9 ([#41](https://github.com/jpanther/lynx/pull/41))
## [1.2.3] - 2023-01-09
### Changed
- Updated Mastodon link colour in line with branding changes ([#36](https://github.com/jpanther/lynx/pull/36))
## [1.2.2] - 2022-11-22
### Changed
- Upgrade to Tailwind v3.2.4 ([#30](https://github.com/jpanther/lynx/pull/30))
- Upgrade to Typography v0.5.8 ([#23](https://github.com/jpanther/lynx/pull/23), [#27](https://github.com/jpanther/lynx/pull/27))
## [1.2.1] - 2022-08-19
### Changed
- Upgrade to Tailwind v3.1.8 ([#12](https://github.com/jpanther/lynx/pull/12), [#18](https://github.com/jpanther/lynx/pull/18))
- Upgrade to Typography v0.5.4 ([#16](https://github.com/jpanther/lynx/pull/16))
### Fixed
- Home link not pointing to correct URL when site deployed in a sub-directory
## [1.2.0] - 2022-06-17
### Added
- Support for new author `headline` parameter
- Automatic author image resizing when image is provided as a Hugo asset
- Alt text to author image ([#8](https://github.com/jpanther/lynx/pull/8))
- Expanded Emoji support in page titles
### Changed
- Upgrade to Tailwind v3.1.3 and Typography v0.5.2
- Adjusted contrast of certain text to improve accessibility
- All CSS is now bundled into a single file for better performance
## [1.1.0] - 2021-11-06
### Added
- Support for Amazon, Apple, Flickr, Google, Kickstarter, Microsoft, Patreon, Telegram, Tumblr and WhatsApp
- Ability to override individual link parameters
- Support for basic content pages
- French translation ([#2](https://github.com/jpanther/lynx/pull/2))
### Fixed
- Typo in GitLab link text
- Minor styling issues
## [1.0.0] - 2021-11-01
### Added
@ -113,14 +19,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fathom Analytics and Google Analytics support
- Favicons support
[Unreleased]: https://github.com/jpanther/lynx/compare/v1.4.0...HEAD
[1.4.0]: https://github.com/jpanther/lynx/compare/v1.3.1...v1.4.0
[1.3.1]: https://github.com/jpanther/lynx/compare/v1.3.0...v1.3.1
[1.3.0]: https://github.com/jpanther/lynx/compare/v1.2.4...v1.3.0
[1.2.4]: https://github.com/jpanther/lynx/compare/v1.2.3...v1.2.4
[1.2.3]: https://github.com/jpanther/lynx/compare/v1.2.2...v1.2.3
[1.2.2]: https://github.com/jpanther/lynx/compare/v1.2.1...v1.2.2
[1.2.1]: https://github.com/jpanther/lynx/compare/v1.2.0...v1.2.1
[1.2.0]: https://github.com/jpanther/lynx/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/jpanther/lynx/compare/v1.0.0...v1.1.0
[unreleased]: https://github.com/jpanther/lynx/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/jpanther/lynx/releases/tags/v1.0.0

View File

@ -10,7 +10,8 @@ Lynx is designed to be a simple links page powered by [Hugo](https://gohugo.io).
## Features
- Fully responsive layout built with Tailwind CSS 3.0
- Built with Tailwind CSS JIT for minified stylesheets without any excess code
- Fully responsive layout
- Dark mode (auto-switching based upon browser)
- SVG icons from FontAwesome 5
- HTML and Emoji support
@ -46,7 +47,7 @@ Below is a quick start guide using Hugo modules.
4. In the root folder of your website, replace the `config.toml` file that was generated by Hugo with the one from Lynx. You will find the theme config file in the Hugo cache directory, or [download a copy](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/jpanther/lynx/tree/stable/config.toml) from GitHub.
5. Follow the [configuration instructions](#configuration) below.
5. Edit the settings in the `config.toml` file to suit your needs. You can also create a `content/_index.md` file to add additional text to your site.
### Installing theme updates
@ -54,78 +55,6 @@ As new releases are posted, you can update the theme using Hugo. Simply run `hug
---
## Configuration
The main theme configuration is managed in the `config.toml` file. Most parameters are self explanatory and the default config contains some basic examples.
The author name and image are displayed at the top of the page. Both are optional and will default to the site title with no image when not provided.
Links can either be a simple string containing the URL for the link, or an object that defines the link parameters. Links are displayed in the order provided in the config file.
Acceptable link parameters are:
- `href` = the URL the link should point to (required)
- `icon` = the name of the icon to use for this link
- `text` = the link text
- `target` = the target of the link (default: `_blank`)
- `title` = the HTML title of the link
```toml
[params.author]
links = {
# Simple link
{ github = "https://github.com/jpanther/lynx" }
# Custom link
{ github = { href = "https://github.com/jpanther/lynx", text = "GitHub Project" } }
}
```
Additional page content can be provided by creating a Markdown file at `content/_index.md`. The contents of this file will be displayed between the title and links. Check out the exampleSite to see this in practice.
Basic content pages can also be created by placing Markdown files in the `content` directory. These can then be linked to using links in the config file or through the homepage content.
### Adding custom icons and link styles
Lynx supports adding your own SVG icons and link styles to fully customise your links page. In the **root of your Hugo project**, simply create an `assets` folder and add your assets. Icons should be placed in an `icons` folder and any CSS should be in a file named `css/custom.css`.
The custom CSS file will automatically be included and minified when the site is built. The styles can be as creative as you wish and anything in your custom CSS will override the default theme.
If you need icons, you can find free SVG icons for many services at [FontAwesome](https://fontawesome.com/icons?d=gallery&p=2&s=brands).
#### Example
Let's make a custom link for FontAwesome using the FA flag as the link icon and a gradient background as the link style.
> If you prefer to inspect the code, the exampleSite contains a custom link to FontAwesome that demonstrates this process.
1. Place the SVG icon in the icons folder `/assets/icons/font-awesome.svg`.
2. Create the CSS file at `/assets/css/custom.css` and add in a rule to style the link:
```css
.link-font-awesome {
background: rgb(131, 58, 180);
background: linear-gradient(
90deg,
rgba(131, 58, 180, 1) 0%,
rgba(253, 29, 29, 1) 50%,
rgba(252, 176, 69, 1) 100%
);
}
```
_Note: The CSS class name should be the icon name prefixed with `link-`._
3. Finally, in the `config.toml` file, create the link by referencing the new icon:
```toml
font-awesome = { href = "https://fontawesome.com", text = "FontAwesome" }
```
When the site is rebuilt, the new custom link will appear.
---
## Contributing
Lynx is expected to evolve over time. I intend to keep adding features and making changes as required.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,13 @@
/*! Lynx v1.4.0 | MIT License | https://github.com/jpanther/lynx */
/*! Lynx v1.0.0 | MIT License | https://github.com/jpanther/lynx */
@tailwind base;
@tailwind components;
body a,
body button {
/* @apply transition; */
}
/* Scale SVG icons to text size */
.icon svg {
height: 1em;
@ -11,23 +16,9 @@
/* Links */
.link {
@apply bg-primary-700 text-white hover:brightness-90;
@apply text-white bg-primary-700 hover:brightness-90;
}
.link-amazon {
@apply text-neutral-900;
background-color: #ff9900;
}
.link-apple {
background-color: #333;
}
.link-bandcamp {
background-color: #1da0c3;
}
.link-bluesky {
background: #0084ff;
background: linear-gradient(2.35619rad, #5a72fa 0%, #0084ff 100%);
}
.link-codepen {
background-color: #1e1f26;
}
@ -43,9 +34,6 @@
.link-facebook {
background-color: #1877f2;
}
.link-flickr {
background-color: #ff0184;
}
.link-foursquare {
background-color: #0732a2;
}
@ -55,9 +43,6 @@
.link-gitlab {
background-color: #554488;
}
.link-google {
background-color: #4285f4;
}
.link-instagram {
background-color: #c13584;
background: linear-gradient(45deg, #405de6, #5851db, #833ab4, #c13584, #e1306c, #fd1d1d);
@ -65,10 +50,6 @@
.link-keybase {
background-color: #33a0ff;
}
.link-kickstarter {
@apply text-neutral-900;
background-color: #06ce78;
}
.link-lastfm {
background-color: #d51007;
}
@ -76,20 +57,14 @@
background-color: #0077b5;
}
.link-mastodon {
background-color: #6364ff;
background-color: #338cd4;
}
.link-medium {
background-color: #00ab6c;
}
.link-microsoft {
background-color: #08a6f0;
}
.link-orcid {
background-color: #a6ce39;
}
.link-patreon {
background-color: #ff434d;
}
.link-pinterest {
background-color: #e60023;
}
@ -110,51 +85,20 @@
background-color: #ff8800;
background: linear-gradient(120deg, #ff8800, #ff3300);
}
.link-spotify {
background-color: #1db954;
}
.link-steam {
background-color: #000;
}
.link-telegram {
background-color: #25a3e1;
}
.link-threads {
background-color: #000;
}
.link-tiktok {
background-color: #fe2d55;
}
.link-tumblr {
background-color: #001935;
}
.link-twitch {
background-color: #9146ff;
}
.link-twitter {
background-color: rgb(63, 136, 222);
}
.link-whatsapp {
background-color: #45d82c;
background: linear-gradient(120deg, #12990b, #45d82c);
}
.link-x {
background-color: #000;
background-color: #1da1f2;
}
.link-youtube {
background-color: #ff0000;
}
.link-stack-exchange {
background-color: #0095ff;
}
.link-stack-overflow {
background-color: #f48024;
}
/* -- Chroma Highlight -- */
/* Background */
.prose .chroma {
@apply rounded-md bg-neutral-50 text-neutral-700 dark:bg-neutral-700 dark:text-neutral-200;
}
@tailwind utilities;

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="amazon" class="svg-inline--fa fa-amazon fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"></path></svg>

Before

Width:  |  Height:  |  Size: 872 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="apple" class="svg-inline--fa fa-apple fa-w-12" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"></path></svg>

Before

Width:  |  Height:  |  Size: 665 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="currentColor" d="M256 8C119 8 8 119 8 256S119 504 256 504 504 393 504 256 393 8 256 8zm48.2 326.1h-181L207.9 178h181z"/></svg>

Before

Width:  |  Height:  |  Size: 352 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path fill="currentColor" d="M407.8 294.7c-3.3-.4-6.7-.8-10-1.3c3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3C61.6-9.4 37.5-1.7 21.6 5.5C3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7c3.3-.5 6.6-.9 10-1.4c-3.3 .5-6.6 1-10 1.4C74.3 308.6-9.1 342.8 100.3 464.5C220.6 589.1 265.1 437.8 288 361.1c22.9 76.7 49.2 222.5 185.6 103.4c102.4-103.4 28.1-156-65.8-169.9c-3.3-.4-6.7-.8-10-1.3c3.4 .4 6.7 .9 10 1.3c64.1 7.1 133.6-15.1 153.2-80.7C566.9 194 576 75 576 58.4s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8C385.1 81.9 314.1 176.4 288 227.1z"/></svg>

Before

Width:  |  Height:  |  Size: 807 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="flickr" class="svg-inline--fa fa-flickr fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z"></path></svg>

Before

Width:  |  Height:  |  Size: 531 B

View File

@ -1 +1 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="gitlab" class="svg-inline--fa fa-gitlab fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z"></path></svg>
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="gitlab" class="svg-inline--fa fa-gitlab fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M105.2 24.9c-3.1-8.9-15.7-8.9-18.9 0L29.8 199.7h132c-.1 0-56.6-174.8-56.6-174.8zM.9 287.7c-2.6 8 .3 16.9 7.1 22l247.9 184-226.2-294zm160.8-88l94.3 294 94.3-294zm349.4 88l-28.8-88-226.3 294 247.9-184c6.9-5.1 9.7-14 7.2-22zM425.7 24.9c-3.1-8.9-15.7-8.9-18.9 0l-56.6 174.8h132z"></path></svg>

Before

Width:  |  Height:  |  Size: 997 B

After

Width:  |  Height:  |  Size: 506 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="google" class="svg-inline--fa fa-google fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 488 512"><path fill="currentColor" d="M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"></path></svg>

Before

Width:  |  Height:  |  Size: 479 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="kickstarter-k" class="svg-inline--fa fa-kickstarter-k fa-w-12" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z"></path></svg>

Before

Width:  |  Height:  |  Size: 538 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="microsoft" class="svg-inline--fa fa-microsoft fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z"></path></svg>

Before

Width:  |  Height:  |  Size: 345 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="patreon" class="svg-inline--fa fa-patreon fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z"></path></svg>

Before

Width:  |  Height:  |  Size: 391 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><path fill="currentColor" d="M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"/></svg>

Before

Width:  |  Height:  |  Size: 890 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="stack-exchange" class="svg-inline--fa fa-stack-exchange fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z"/></svg>

Before

Width:  |  Height:  |  Size: 463 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="stack-overflow" class="svg-inline--fa fa-stack-overflow fa-w-20" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z"/></svg>

Before

Width:  |  Height:  |  Size: 462 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="telegram-plane" class="svg-inline--fa fa-telegram-plane fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z"></path></svg>

Before

Width:  |  Height:  |  Size: 488 B

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="tumblr" class="svg-inline--fa fa-tumblr fa-w-10" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path fill="currentColor" d="M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1.8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5.9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"></path></svg>

Before

Width:  |  Height:  |  Size: 597 B

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="whatsapp" class="svg-inline--fa fa-whatsapp fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z"></path></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="x" class="svg-inline--fa fa-x fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"/></svg>

Before

Width:  |  Height:  |  Size: 372 B

View File

@ -1,22 +1,43 @@
# baseURL = "https://your_domain.com/"
languageCode = "zh-cn"
defaultContentLanguage = "zh-cn"
languageCode = "en"
defaultContentLanguage = "en"
title = "xiushen"
title = "Lynx"
# copyright = "Copy, _right?_ :thinking_face:"
enableEmoji = true
disableKinds = ["taxonomy", "term"]
[params.author]
name = "xiushen"
headline = "有趣的灵魂只此一人"
image = "avatar.jpeg"
[author]
# name = "Your name here"
# image = "img/author.jpg"
links = [
{ email = "mailto:alyenc@outlook.com" },
{ github = "https://github.com/alyenc" },
{ gitlab = "https://gitlab.com/alyenc" }
# { email = "mailto:hello@your_domain.com" },
# { link = "https://link-to-some-website.com/" },
# { codepen = "https://codepen.io/username" },
# { dev = "https://dev.to/username" },
# { discord = "https://discord.gg/invitecode" },
# { dribbble = "https://dribbble.com/username" },
# { facebook = "https://facebook.com/username" },
# { foursquare = "https://foursquare.com/username" },
# { github = "https://github.com/username" },
# { gitlab = "https://gitlab.com/username" },
# { instagram = "https://instagram.com/username" },
# { keybase = "https://keybase.io/username" },
# { lastfm = "https://lastfm.com/user/username" },
# { linkedin = "https://linkedin.com/in/username" },
# { mastodon = "https://mastodon.instance/@username" },
# { medium = "https://medium.com/username" },
# { pinterest = "https://pinterest.com/username" },
# { reddit = "https://reddit.com/user/username" },
# { slack = "https://workspace.url/team/userid" },
# { snapchat = "https://snapchat.com/add/username" },
# { soundcloud = "https://soundcloud.com/username" },
# { steam = "https://steamcommunity.com/profiles/userid" },
# { tiktok = "https://tiktok.com/@username" },
# { twitch = "https://twitch.tv/username" },
# { twitter = "https://twitter.com/username" },
# { youtube = "https://youtube.com/username" },
]
[module]

20
exampleSite/config.toml Normal file
View File

@ -0,0 +1,20 @@
theme = "lynx"
languageCode = "en-au"
defaultContentLanguage = "en"
title = "Lynx"
# copyright = "Copy, _right?_ :thinking_face:"
enableEmoji = true
disableKinds = ["taxonomy", "term"]
[author]
name = "Lynx"
image = "author.jpg"
links = [
{ github = "https://github.com/jpanther/lynx" },
{ discord = "https://discord.gg/invitecode" },
{ instagram = "https://instagram.com/username" },
{ soundcloud = "https://soundcloud.com/username" },
{ twitter = "https://twitter.com/username" },
]

View File

@ -0,0 +1,5 @@
---
description: "This is a demo of the Lynx theme for Hugo."
---
A simple links theme for Hugo built with Tailwind CSS.

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -1,52 +1,32 @@
link:
amazon: Amazon
apple: Apple
bandcamp: Bandcamp
bluesky: Bluesky
codepen: CodePen
dev: DEV
discord: Discord
dribbble: Dribbble
email: Email
facebook: Facebook
flickr: Flickr
foursquare: Foursquare
github: GitHub
gitlab: GitLab
google: Google
gitlab: Gitlab
instagram: Instagram
keybase: Keybase
kickstarter: Kickstarter
lastfm: Last.fm
link: Website
linkedin: LinkedIn
mastodon: Mastodon
medium: Medium
microsoft: Microsoft
orcid: ORCiD
patreon: Patreon
pinterest: Pinterest
reddit: Reddit
researchgate: ResearchGate
slack: Slack
snapchat: Snapchat
soundcloud: Soundcloud
spotify: Spotify
steam: Steam
telegram: Telegram
threads: Threads
tiktok: TikTok
tumblr: Tumblr
twitch: Twitch
twitter: Twitter
whatsapp: WhatsApp
x: 𝕏
youtube: YouTube
stack-exchange: Stack Exchange
stack-overflow: Stack Overflow
nav:
home: Home
footer:
powered_by: "Powered by {{ .Hugo }} &amp; {{ .Lynx }}"

View File

@ -1,50 +0,0 @@
link:
amazon: Amazon
apple: Apple
bandcamp: Bandcamp
bluesky: Bluesky
codepen: CodePen
dev: DEV
discord: Discord
dribbble: Dribbble
email: Email
facebook: Facebook
flickr: Flickr
foursquare: Foursquare
github: GitHub
gitlab: GitLab
google: Google
instagram: Instagram
keybase: Keybase
kickstarter: Kickstarter
lastfm: Last.fm
link: "Site internet"
linkedin: LinkedIn
mastodon: Mastodon
medium: Medium
microsoft: Microsoft
orcid: ORCiD
patreon: Patreon
pinterest: Pinterest
reddit: Reddit
researchgate: ResearchGate
slack: Slack
snapchat: Snapchat
soundcloud: Soundcloud
spotify: Spotify
steam: Steam
telegram: Telegram
threads: Threads
tiktok: TikTok
tumblr: Tumblr
twitch: Twitch
twitter: Twitter
whatsapp: WhatsApp
x: 𝕏
youtube: YouTube
# nav:
# home: Home
footer:
powered_by: "Propulsé par {{ .Hugo }} &amp; {{ .Lynx }}"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

@ -1,8 +1,8 @@
<!doctype html>
<!DOCTYPE html>
<html lang="{{ with .Site.LanguageCode }}{{ . }}{{ else }}en{{ end }}">
{{- partial "head.html" . -}}
<body
class="bg-neutral m-auto flex h-screen max-w-7xl flex-col px-6 text-lg leading-7 text-neutral-900 sm:px-14 md:px-24 lg:px-32 dark:bg-neutral-800 dark:text-white"
class="flex flex-col h-screen px-6 m-auto text-lg leading-7 bg-neutral text-neutral-900 sm:px-14 md:px-24 lg:px-32 dark:bg-neutral-800 dark:text-neutral max-w-7xl"
>
<main class="flex-grow">{{- block "main" . }}{{- end }}</main>
{{- partial "footer.html" . -}}

View File

@ -1,15 +0,0 @@
{{ define "main" }}
<article class="mt-10 flex flex-col items-center justify-center">
<nav class="place-self-start">
<a href="{{ "" | relURL }}" class="text-neutral-500">&larr; {{ i18n "nav.home" }}</a>
</nav>
<header>
<h1 class="mb-6 mt-2 text-center text-4xl font-extrabold text-neutral-800 dark:text-white">
{{ .Title | emojify }}
</h1>
</header>
<section class="prose dark:prose-invert">
{{ .Content | emojify }}
</section>
</article>
{{ end }}

View File

@ -1,68 +1,35 @@
{{ define "main" }}
<article class="mt-10 flex h-full flex-col items-center justify-center text-center">
<header class="mb-3 flex flex-col items-center">
{{ with .Site.Params.Author.image }}
{{ $src := . }}
{{ $resource := "" }}
{{ if $.Page.Resources.GetMatch $src }}
{{ $resource = $.Page.Resources.GetMatch $src }}
{{ else if resources.GetMatch $src }}
{{ $resource = resources.Get $src }}
{{ end }}
{{ with $resource }}
{{ $src = (.Fill "288x288").RelPermalink }}
{{ end }}
<img
class="mb-2 h-36 w-36 rounded-full"
width="144"
height="144"
alt="{{ $.Site.Params.Author.name | default "Author" }}"
src="{{ $src }}"
/>
<article class="flex flex-col items-center justify-center h-full mt-10 text-center">
<header class="flex flex-col items-center mb-3">
{{ with .Site.Author.image }}
<img class="mb-2 rounded-full w-36 h-36" src="{{ . | relURL }}" />
{{ end }}
<h1 class="text-4xl font-extrabold dark:text-white">
{{ .Params.title | default .Site.Params.Author.name | default .Site.Title | emojify }}
{{ .Params.title | default .Site.Author.name | default .Site.Title | emojify }}
</h1>
{{ with .Site.Params.Author.headline }}
<h2 class="text-xl text-neutral-500 dark:text-neutral-400">
{{ . | markdownify | emojify }}
</h2>
{{ end }}
{{ with .Content }}
<section class="prose pt-5 dark:prose-invert">{{ . | emojify }}</section>
<section class="pt-5 prose dark:prose-light">{{ . | emojify }}</section>
{{ end }}
</header>
{{ with .Site.Params.Author.links }}
<div class="mt-4 flex min-w-full flex-col flex-wrap sm:min-w-0">
{{ with .Site.Author.links }}
<div class="flex flex-col flex-wrap min-w-full mt-4 sm:min-w-0">
{{ range $links := . }}
{{ range $type, $data := $links }}
{{ $href := $data }}
{{ $icon := $type }}
{{ $text := i18n (printf "link.%s" $type) }}
{{ $target := "_blank" }}
{{ $title := "" }}
{{ if reflect.IsMap $data }}
{{ with $data.href }}{{ $href = . }}{{ end }}
{{ with $data.icon }}{{ $icon = . }}{{ end }}
{{ with $data.text }}{{ $text = . }}{{ end }}
{{ with $data.target }}{{ $target = . }}{{ end }}
{{ with $data.title }}{{ $title = . }}{{ end }}
{{ end }}
{{ range $name, $url := $links }}
<a
class="link link-{{ $type }} mb-3 min-w-full rounded py-2 text-lg sm:px-24"
href="{{ $href }}"
target="{{ $target }}"
{{ with $title }}title="{{ . }}"{{ end }}
class="link link-{{ $name }} sm:px-24 min-w-full py-2 mb-3 text-lg rounded"
href="{{ $url }}"
target="_blank"
alt="{{ $name | title }}"
rel="me noopener noreferrer"
><div class="">
<span class="mr-1">{{ partial "icon.html" $name }}</span
>{{ i18n (printf "link.%s" $name) }}
</div></a
>
{{- with $icon -}}
<span class="mr-1">{{ partial "icon.html" . }}</span>
{{- end -}}
{{ $text | emojify }}
</a>
{{ end }}
{{ end }}
</div>
{{ end }}
</article>
{{ end }}

View File

@ -1,6 +1,10 @@
{{ if hugo.IsProduction }}
{{ if not .Site.IsServer }}
{{ with .Site.Params.fathomAnalytics.site }}
{{ if isset $.Site.Params.fathomanalytics "domain" }}
<script defer src="https://{{ $.Site.Params.fathomanalytics.domain }}/script.js" data-site="{{ . }}"></script>
{{ else }}
<script defer src="https://cdn.usefathom.com/script.js" data-site="{{ . }}"></script>
{{ end }}
{{ end }}
{{ template "_internal/google_analytics.html" . }}
{{ end }}

View File

@ -1,7 +1,7 @@
<footer class="py-10">
<div class="text-center">
{{/* Copyright */}}
<p class="text-sm text-neutral-500 dark:text-neutral-400">
<p class="text-sm text-neutral-400 dark:text-neutral-500">
{{- with .Site.Copyright }}
{{ . | emojify | markdownify }}
{{- else }}
@ -12,11 +12,11 @@
</p>
{{/* Theme attribution */}}
{{ if .Site.Params.attribution | default true }}
<p class="text-xs text-neutral-500 dark:text-neutral-400">
{{ $hugo := printf `<a class="hover:underline hover:decoration-primary-400 hover:text-primary-500"
<p class="text-xs text-neutral-300 dark:text-neutral-600">
{{ $hugo := printf `<a class="hover:underline hover:underline-primary-300 hover:text-primary-400"
href="https://gohugo.io/" target="_blank" rel="noopener noreferrer">Hugo</a>`
}}
{{ $lynx := printf `<a class="hover:underline hover:decoration-primary-400 hover:text-primary-500" href="https://git.io/hugo-lynx" target="_blank" rel="noopener noreferrer">Lynx</a>` }}
{{ $lynx := printf `<a class="hover:underline hover:underline-primary-300 hover:text-primary-400" href="https://git.io/hugo-lynx" target="_blank" rel="noopener noreferrer">Lynx</a>` }}
{{ i18n "footer.powered_by" (dict "Hugo" $hugo "Lynx" $lynx) | safeHTML }}
</p>
{{ end }}

View File

@ -10,8 +10,8 @@
<title>{{ .Site.Title }}</title>
<meta name="title" content="{{ .Site.Title }}" />
{{- else -}}
<title>{{ .Title | emojify }} &middot; {{ .Site.Title | emojify }}</title>
<meta name="title" content="{{ .Title | emojify }} &middot; {{ .Site.Title | emojify }}" />
<title>{{ .Title }} &middot; {{ .Site.Title }}</title>
<meta name="title" content="{{ .Title }} &middot; {{ .Site.Title }}" />
{{- end }}
{{/* Metadata */}}
{{ with .Params.Description -}}
@ -32,21 +32,25 @@
{{ range .AlternativeOutputFormats -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }}
{{ end -}}
{{/* Asset bundles */}}
{{ $assets := newScratch }}
{{ $cssMain := resources.Get "css/compiled/main.css" }}
{{ $assets.Add "css" (slice $cssMain) }}
{{ $cssCustom := resources.Get "css/custom.css" }}
{{ if $cssCustom }}
{{ $assets.Add "css" (slice $cssCustom) }}
{{ end }}
{{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint "sha512" }}
{{/* Styles */}}
{{ $mainCSS := resources.Get "css/compiled/main.css" }}
{{ $mainStyles := $mainCSS | resources.Minify | resources.Fingerprint "sha512" }}
<link
type="text/css"
rel="stylesheet"
href="{{ $bundleCSS.RelPermalink }}"
integrity="{{ $bundleCSS.Data.Integrity }}"
href="{{ $mainStyles.RelPermalink }}"
integrity="{{ $mainStyles.Data.Integrity }}"
/>
{{ $customCSS := resources.Get "css/custom.css" }}
{{ if $customCSS }}
{{ $customStyles := $customCSS | resources.Minify | resources.Fingerprint "sha512" }}
<link
type="text/css"
rel="stylesheet"
href="{{ $customStyles.RelPermalink }}"
integrity="{{ $customStyles.Data.Integrity }}"
/>
{{ end }}
{{/* Icons */}}
{{ if templates.Exists "partials/favicons.html" }}
{{ partialCached "favicons.html" .Site }}
@ -84,7 +88,7 @@
{{ end }}
{{ end }}
{{/* Analytics */}}
{{ partialCached "analytics.html" . }}
{{ partialCached "analytics.html" .Site }}
{{/* Extend head - eg. for custom analytics scripts, etc. */}}
{{ if templates.Exists "partials/extend-head.html" }}
{{ partialCached "extend-head.html" .Site }}

View File

@ -1,6 +1,6 @@
{{ $icon := resources.Get (print "icons/" . ".svg") }}
{{ if $icon }}
<span class="icon relative inline-block align-text-bottom">
<span class="relative inline-block align-text-bottom icon">
{{ $icon := resources.Get (print "icons/" . ".svg") }}
{{ if $icon }}
{{ $icon.Content | safeHTML }}
</span>
{{ end }}
{{ end }}
</span>

View File

@ -1,4 +1,4 @@
<span class="icon relative inline-block align-text-bottom">
<span class="relative inline-block align-text-bottom icon">
{{ $icon := resources.Get (printf "icons/%s.svg" ($.Get 0)) }}
{{ if $icon }}
{{ $icon.Content | safeHTML }}

View File

@ -1,15 +0,0 @@
module.exports = {
ci: {
collect: {
startServerCommand: "npm run example -- --disableLiveReload --minify",
startServerReadyPattern: "Web Server is available",
url: ["http://localhost:8008/lynx/"],
settings: {
skipAudits: ["uses-text-compression", "uses-long-cache-ttl"],
},
},
upload: {
target: "temporary-public-storage",
},
},
};

View File

@ -1,18 +0,0 @@
[build]
command = "cd exampleSite && hugo --gc --minify -D -b $URL"
publish = "exampleSite/public"
[build.environment]
HUGO_VERSION = "0.118.2"
HUGO_THEMESDIR = "../.."
HUGO_THEME = "repo"
TZ = "Australia/Melbourne"
[context.production.environment]
HUGO_ENV = "production"
[context.deploy-preview]
command = "cd exampleSite && hugo --gc --minify -D -b $DEPLOY_PRIME_URL"
[context.branch-deploy]
command = "cd exampleSite && hugo --gc --minify -D -b $DEPLOY_PRIME_URL"

2315
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,11 @@
{
"name": "hugo-lynx-theme",
"version": "1.4.0",
"version": "1.0.0",
"description": "Lynx theme for Hugo",
"scripts": {
"dev": "NODE_ENV=development ./node_modules/tailwindcss/lib/cli.js -i ./assets/css/main.css -o ./assets/css/compiled/main.css --jit -w",
"build": "NODE_ENV=production ./node_modules/tailwindcss/lib/cli.js -i ./assets/css/main.css -o ./assets/css/compiled/main.css --jit",
"example": "hugo server --source exampleSite --themesDir ../.. --buildDrafts -b http://localhost/lynx/ -p 8008",
"lighthouse": "lhci autorun"
"example": "hugo server --source exampleSite --themesDir ../.. --buildDrafts -b http://localhost/lynx/ -p 8008"
},
"repository": {
"type": "git",
@ -25,10 +24,9 @@
},
"homepage": "https://github.com/jpanther/lynx#readme",
"devDependencies": {
"@tailwindcss/typography": "^0.5.11",
"prettier": "^3.2.5",
"prettier-plugin-go-template": "^0.0.15",
"prettier-plugin-tailwindcss": "^0.5.14",
"tailwindcss": "^3.4.3"
"@tailwindcss/typography": "^0.4.1",
"prettier": "^2.4.1",
"prettier-plugin-go-template": "^0.0.11",
"tailwindcss": "^2.2.19"
}
}

View File

@ -1,11 +1 @@
{
"name": "Lynx",
"short_name": "Lynx",
"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"
}
{"name":"","short_name":"","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"}

View File

@ -1,12 +1,15 @@
const colors = require("tailwindcss/colors");
module.exports = {
mode: "jit",
purge: {
content: [
"./layouts/**/*.html",
"./content/**/*.{html,md}",
"./themes/lynx/layouts/**/*.html",
"./themes/lynx/content/**/*.{html,md}",
],
},
darkMode: "media",
theme: {
colors: {
@ -17,52 +20,72 @@ module.exports = {
extend: {
typography: (theme) => ({
DEFAULT: {
css: {
"--tw-prose-body": theme("colors.neutral.700"),
"--tw-prose-headings": theme("colors.neutral.800"),
"--tw-prose-lead": theme("colors.neutral.500"),
"--tw-prose-links": theme("colors.primary.700"),
"--tw-prose-bold": theme("colors.neutral.900"),
"--tw-prose-counters": theme("colors.neutral.800"),
"--tw-prose-bullets": theme("colors.neutral.500"),
"--tw-prose-hr": theme("colors.neutral.200"),
"--tw-prose-quotes": theme("colors.neutral.700"),
"--tw-prose-quote-borders": theme("colors.primary.200"),
"--tw-prose-captions": theme("colors.neutral.500"),
"--tw-prose-code": theme("colors.primary.700"),
"--tw-prose-pre-code": theme("colors.neutral.700"),
"--tw-prose-pre-bg": theme("colors.neutral.50"),
"--tw-prose-th-borders": theme("colors.neutral.500"),
"--tw-prose-td-borders": theme("colors.neutral.300"),
"--tw-prose-invert-body": theme("colors.neutral.300"),
"--tw-prose-invert-headings": theme("colors.neutral.50"),
"--tw-prose-invert-lead": theme("colors.neutral.500"),
"--tw-prose-invert-links": theme("colors.primary.400"),
"--tw-prose-invert-bold": theme("colors.neutral.DEFAULT"),
"--tw-prose-invert-counters": theme("colors.neutral.400"),
"--tw-prose-invert-bullets": theme("colors.neutral.600"),
"--tw-prose-invert-hr": theme("colors.neutral.500"),
"--tw-prose-invert-quotes": theme("colors.neutral.200"),
"--tw-prose-invert-quote-borders": theme("colors.primary.900"),
"--tw-prose-invert-captions": theme("colors.neutral.400"),
"--tw-prose-invert-code": theme("colors.primary.400"),
"--tw-prose-invert-pre-code": theme("colors.neutral.200"),
"--tw-prose-invert-pre-bg": theme("colors.neutral.700"),
"--tw-prose-invert-th-borders": theme("colors.neutral.500"),
"--tw-prose-invert-td-borders": theme("colors.neutral.700"),
css: [
{
color: theme("colors.neutral.700"),
a: {
color: theme("colors.primary.700"),
textDecoration: "underline",
textDecorationColor: theme("colors.primary.300"),
fontWeight: "500",
"&:hover": {
color: theme("colors.neutral.DEFAULT"),
textDecoration: "none",
backgroundColor: theme("colors.primary.600"),
borderRadius: "0.09rem",
color: theme("colors.white"),
textDecoration: "none",
},
},
"a code": {
color: "var(--tw-prose-code)",
strong: {
color: theme("colors.neutral.900"),
},
"ol > li::before": {
color: theme("colors.neutral.800"),
},
"ul > li::before": {
backgroundColor: theme("colors.neutral.500"),
},
hr: {
borderColor: theme("colors.neutral.200"),
},
blockquote: {
color: theme("colors.neutral.800"),
borderLeftColor: theme("colors.primary.200"),
},
h1: {
color: theme("colors.neutral.800"),
position: "relative",
},
h2: {
color: theme("colors.neutral.800"),
position: "relative",
},
h3: {
color: theme("colors.neutral.800"),
position: "relative",
},
h4: {
color: theme("colors.neutral.800"),
position: "relative",
},
code: {
color: theme("colors.secondary.700"),
},
"pre code": {
color: theme("colors.neutral.700"),
},
pre: {
color: theme("colors.neutral.700"),
backgroundColor: theme("colors.neutral.50"),
},
"pre code": {
color: theme("colors.neutral.700"),
},
thead: {
color: theme("colors.neutral.800"),
borderBottomColor: theme("colors.neutral.500"),
},
"tbody tr": {
borderBottomColor: theme("colors.neutral.300"),
},
kbd: {
backgroundColor: theme("colors.neutral.200"),
@ -72,29 +95,89 @@ module.exports = {
fontWeight: "600",
},
mark: {
color: theme("colors.neutral.800"),
backgroundColor: theme("colors.primary.200"),
backgroundColor: theme("colors.secondary.200"),
padding: "0.1rem 0.2rem",
borderRadius: "0.12rem",
},
},
],
},
invert: {
css: {
light: {
css: [
{
color: theme("colors.neutral.400"),
a: {
textDecorationColor: theme("colors.neutral.600"),
color: theme("colors.primary.400"),
textDecorationColor: theme("colors.neutral.500"),
},
kbd: {
strong: {
color: theme("colors.white"),
},
"ol > li::before": {
color: theme("colors.neutral.400"),
},
"ul > li::before": {
backgroundColor: theme("colors.neutral.600"),
},
hr: {
borderColor: theme("colors.neutral.500"),
},
blockquote: {
color: theme("colors.neutral.200"),
borderLeftColor: theme("colors.primary.900"),
},
h1: {
color: theme("colors.white"),
},
h2: {
color: theme("colors.white"),
},
h3: {
color: theme("colors.white"),
},
h4: {
color: theme("colors.white"),
},
"figure figcaption": {
color: theme("colors.neutral.400"),
},
code: {
color: theme("colors.secondary.400"),
},
"a code": {
color: theme("colors.white"),
},
pre: {
color: theme("colors.neutral.200"),
backgroundColor: theme("colors.neutral.700"),
},
"pre code": {
color: theme("colors.neutral.200"),
},
thead: {
color: theme("colors.white"),
borderBottomColor: theme("colors.neutral.500"),
},
"tbody tr": {
borderBottomColor: theme("colors.neutral.700"),
},
kbd: {
backgroundColor: theme("colors.neutral.700"),
color: theme("colors.neutral.300"),
},
mark: {
backgroundColor: theme("colors.primary.400"),
backgroundColor: theme("colors.secondary.400"),
},
},
],
},
}),
},
},
variants: {
extend: {
typography: ["dark"],
},
},
plugins: [require("@tailwindcss/typography")],
};