remove files, add node files, add submodule
|
@ -9,15 +9,11 @@ jobs:
|
|||
build:
|
||||
runs-on: hugo-latest
|
||||
steps:
|
||||
- name: Grab packages
|
||||
run: apt install -y rsync openssh-client
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
submodules: "true"
|
||||
- name: Run build task
|
||||
run: hugo --minify
|
||||
- name: Test static page
|
||||
run: bash ${{ gitea.workspace }}/bin/test_static_page.sh
|
||||
- name: Deploy to Server
|
||||
uses: https://git.myco.systems/mirrors/ssh-deploy@main
|
||||
env:
|
||||
|
@ -27,10 +23,3 @@ jobs:
|
|||
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
|
||||
REMOTE_USER: ${{ secrets.REMOTE_USER }}
|
||||
TARGET: ${{ secrets.REMOTE_TARGET }}
|
||||
- name: Running Page Speed Insights
|
||||
uses: https://github.com/JakePartusch/psi-action@v1.3
|
||||
id: drafting
|
||||
with:
|
||||
url: "https://web.myco.systems"
|
||||
threshold: 70
|
||||
strategy: desktop
|
3
.gitignore
vendored
|
@ -11,3 +11,6 @@ hugo.linux
|
|||
|
||||
# Temporary lock file while building
|
||||
/.hugo_build.lock
|
||||
|
||||
# node modules
|
||||
node_modules
|
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
[submodule "themes/hugo-maintenance"]
|
||||
path = themes/hugo-maintenance
|
||||
url = https://git.myco.systems/mycosystems/hugo-maintenance.git
|
11
README.md
|
@ -1,14 +1,15 @@
|
|||
# web.myco.systems
|
||||
|
||||
mycosystems client site
|
||||
mycosystems client site, maintenance page
|
||||
|
||||
```
|
||||
git clone https://git.myco.systems/mycosystems/web.myco.systems.git
|
||||
```
|
||||
```
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
|
||||
**When committing changes add "web-myco/public" to gitignore and generate hugo files on the vps.**
|
||||
|
||||
# License:
|
||||
Body text and articles are under https://creativecommons.org/licenses/by/4.0/
|
||||
Everything else is MIT for the extensive use of Blowfish
|
||||
Body text and articles are under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
|
||||
Theme files are under MIT [as licensed by MycoSystems](https://git.myco.systems/mycosystems/hugo-maintenance)
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 1.9 MiB |
Before Width: | Height: | Size: 1.8 MiB |
|
@ -1,76 +0,0 @@
|
|||
var layouts = [
|
||||
"background",
|
||||
"hero",
|
||||
"profile",
|
||||
"page",
|
||||
"card"
|
||||
]
|
||||
|
||||
var currentLayout = 0
|
||||
|
||||
function switchHomeLayout() {
|
||||
|
||||
var old = currentLayout
|
||||
currentLayout = currentLayout == layouts.length - 1 ? 0 : currentLayout + 1
|
||||
|
||||
var oldDiv = document.getElementById(layouts[old])
|
||||
var currentDiv = document.getElementById(layouts[currentLayout])
|
||||
const layoutCode = document.querySelectorAll("code[id=layout]");
|
||||
|
||||
currentDiv.style.display = "block";
|
||||
oldDiv.style.display = "none";
|
||||
layoutCode.forEach(function (el) {
|
||||
el.innerText = layouts[currentLayout];
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
window.addEventListener("DOMContentLoaded", (event) => {
|
||||
document.querySelectorAll("#switch-layout-button").forEach((button) =>
|
||||
button.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
switchHomeLayout();
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
var list_config = [
|
||||
"CardViewProse",
|
||||
"CardViewScreenWidth",
|
||||
"NormalView"
|
||||
]
|
||||
|
||||
var titles = {
|
||||
"CardViewProse" : "card view with constrained width",
|
||||
"CardViewScreenWidth" : "card view with full width",
|
||||
"NormalView" : "standard list view"
|
||||
}
|
||||
|
||||
var currentConfig = 0
|
||||
|
||||
function switchList() {
|
||||
|
||||
var old = currentConfig
|
||||
currentConfig = currentConfig == list_config.length - 1 ? 0 : currentConfig + 1
|
||||
|
||||
var oldDiv = document.getElementById(list_config[old])
|
||||
var currentDiv = document.getElementById(list_config[currentConfig])
|
||||
const configCode = document.querySelectorAll("code[id=config]");
|
||||
|
||||
currentDiv.style.display = "block";
|
||||
oldDiv.style.display = "none";
|
||||
|
||||
configCode.forEach(function (el) {
|
||||
el.innerText = titles[list_config[currentConfig]];
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
window.addEventListener("DOMContentLoaded", (event) => {
|
||||
document.querySelectorAll("#switch-config-button").forEach((button) =>
|
||||
button.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
switchList();
|
||||
})
|
||||
);
|
||||
});
|
|
@ -1,26 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
PORT=21300
|
||||
python3 -m http.server $PORT --directory public/ &
|
||||
SERVER_PID=$!
|
||||
|
||||
# Give it a moment to start
|
||||
sleep 2
|
||||
|
||||
# Check if the server is running
|
||||
if [ ! -d "/proc/$SERVER_PID" ]; then
|
||||
echo "HTTP server failed to start."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check HTTP status
|
||||
status_code=$(curl -o /dev/null -s -w "%{http_code}" http://localhost:$PORT)
|
||||
|
||||
# Kill the http server
|
||||
kill $SERVER_PID
|
||||
|
||||
# Check if status code is 200
|
||||
if [ "$status_code" -ne 200 ]; then
|
||||
echo "Website returned a non-200 status code: $status_code"
|
||||
exit 1
|
||||
fi
|
3
config.yaml
Normal file
|
@ -0,0 +1,3 @@
|
|||
theme: hugo-maintenance
|
||||
baseURL: https://web.myco.systems/
|
||||
defaultContentLanguage: en
|
|
@ -1,57 +0,0 @@
|
|||
theme = "blowfish"
|
||||
baseURL = "https://web.myco.systems/"
|
||||
defaultContentLanguage = "en"
|
||||
|
||||
enableRobotsTXT = true
|
||||
paginate = 100
|
||||
summaryLength = 30
|
||||
|
||||
buildDrafts = false
|
||||
buildFuture = false
|
||||
|
||||
[imaging]
|
||||
anchor = 'Center'
|
||||
|
||||
[taxonomies]
|
||||
tag = "tags"
|
||||
category = "categories"
|
||||
author = "authors"
|
||||
series = "series"
|
||||
|
||||
[sitemap]
|
||||
changefreq = 'always'
|
||||
filename = 'sitemap.xml'
|
||||
priority = 0.5
|
||||
|
||||
[outputs]
|
||||
home = ["HTML", "RSS", "JSON"]
|
||||
|
||||
[related]
|
||||
threshold = 0
|
||||
toLower = false
|
||||
|
||||
[[related.indices]]
|
||||
name = "tags"
|
||||
weight = 100
|
||||
|
||||
[[related.indices]]
|
||||
name = "categories"
|
||||
weight = 100
|
||||
|
||||
[[related.indices]]
|
||||
name = "series"
|
||||
weight = 50
|
||||
|
||||
[[related.indices]]
|
||||
name = "authors"
|
||||
weight = 20
|
||||
|
||||
[[related.indices]]
|
||||
name = "date"
|
||||
weight = 10
|
||||
|
||||
[[related.indices]]
|
||||
applyFilter = false
|
||||
name = 'fragmentrefs'
|
||||
type = 'fragments'
|
||||
weight = 10
|
|
@ -1,25 +0,0 @@
|
|||
languageCode = "en"
|
||||
languageName = "English"
|
||||
weight = 1
|
||||
title = "web.myco.systems"
|
||||
|
||||
[params]
|
||||
displayName = "EN"
|
||||
isoCode = "en"
|
||||
rtl = false
|
||||
dateFormat = "2 January 2006"
|
||||
logo = "img/android-chrome-512x512.png"
|
||||
description = "Hi, welcome to MycoSystems Web!"
|
||||
copyright = "Body text and articles are under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) Everything else is MIT for the extensive use of Blowfish"
|
||||
|
||||
[author]
|
||||
name = "Myco.Systems"
|
||||
image = "img/android-chrome-512x512.png"
|
||||
headline = "Hi, welcome to MycoSystems Web!"
|
||||
bio = "Hi, welcome to MycoSystems Web!"
|
||||
links = [
|
||||
{ mastodon = "https://mastodon.social/@brookeee" },
|
||||
{ github = "https://git.myco.systems/explore" },
|
||||
]
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
# -- Markup --
|
||||
# These settings are required for the theme to function.
|
||||
|
||||
[goldmark]
|
||||
[goldmark.renderer]
|
||||
unsafe = true
|
||||
|
||||
[highlight]
|
||||
noClasses = false
|
||||
|
||||
[tableOfContents]
|
||||
startLevel = 2
|
||||
endLevel = 4
|
|
@ -1,51 +0,0 @@
|
|||
[[main]]
|
||||
name = "Services"
|
||||
pageRef = "services"
|
||||
weight = 10
|
||||
|
||||
[[main]]
|
||||
name = "Showcase"
|
||||
pageRef = "showcase"
|
||||
weight = 20
|
||||
|
||||
[[main]]
|
||||
name = "Stacks"
|
||||
pageRef = "stacks"
|
||||
weight = 30
|
||||
|
||||
#[[main]]
|
||||
# name = "Merch"
|
||||
# url = "http://tee.pub/lic/qwSlWVBL5zc"
|
||||
# weight = 100
|
||||
|
||||
#[[main]]
|
||||
# name = "Test"
|
||||
# pageRef = "pagTest"
|
||||
# weight = 1000
|
||||
|
||||
[[main]]
|
||||
identifier = "mastodon"
|
||||
pre = "mastodon"
|
||||
url = "https://mastodon.social/@brookeee"
|
||||
weight = 300
|
||||
|
||||
[[main]]
|
||||
identifier = "github"
|
||||
pre = "github"
|
||||
url = "https://git.myco.systems/explore"
|
||||
weight = 400
|
||||
|
||||
|
||||
# -- Footer Menu --
|
||||
# The footer menu is displayed at the bottom of the page, just before
|
||||
# the copyright notice. Configure as per the main menu above.
|
||||
|
||||
[[footer]]
|
||||
name = "Services"
|
||||
pageRef = "services"
|
||||
weight = 10
|
||||
|
||||
[[footer]]
|
||||
name = "Showcase"
|
||||
pageRef = "showcase"
|
||||
weight = 30
|
|
@ -1,120 +0,0 @@
|
|||
# -- Theme Options --
|
||||
# These options control how the theme functions and allow you to
|
||||
# customise the display of your website.
|
||||
#
|
||||
# Refer to the theme docs for more details about each of these parameters.
|
||||
# https://blowfish.page/docs/configuration/#theme-parameters
|
||||
|
||||
colorScheme = "forest"
|
||||
defaultAppearance = "dark" # valid options: light or dark
|
||||
autoSwitchAppearance = false
|
||||
|
||||
enableCodeCopy = true
|
||||
|
||||
mainSections = ["services"]
|
||||
# robots = ""
|
||||
|
||||
disableImageOptimization = false
|
||||
|
||||
defaultBackgroundImage = "img/mushroom-1.png"
|
||||
defaultFeaturedImage = "img/mushroom-2.png"
|
||||
|
||||
highlightCurrentMenuArea = true
|
||||
smartTOC = true
|
||||
smartTOCHideUnfocusedChildren = false
|
||||
|
||||
[header]
|
||||
layout = "fixed" # valid options: basic, fixed, fixed-fill, fixed-fill-blur
|
||||
|
||||
[footer]
|
||||
showMenu = true
|
||||
showCopyright = true
|
||||
showThemeAttribution = true
|
||||
showAppearanceSwitcher = true
|
||||
showScrollToTop = true
|
||||
|
||||
[homepage]
|
||||
layout = "background" # valid options: page, profile, hero, card, background, custom
|
||||
# homepageImage = "/img/iceland.jpg" # used in: hero, and card
|
||||
showRecent = true
|
||||
showRecentItems = 6
|
||||
showMoreLink = false
|
||||
showMoreLinkDest = "services"
|
||||
cardView = true
|
||||
cardViewScreenWidth = false
|
||||
layoutBackgroundBlur = true # only used when layout equals background
|
||||
|
||||
[article]
|
||||
showDate = false
|
||||
showViews = false
|
||||
showLikes = false
|
||||
showDateUpdated = false
|
||||
showAuthor = false
|
||||
showHero = true
|
||||
heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
||||
layoutBackgroundBlur = true # only used when heroStyle equals background
|
||||
showBreadcrumbs = true
|
||||
showDraftLabel = true
|
||||
showEdit = false
|
||||
editAppendPath = false
|
||||
seriesOpened = false
|
||||
showHeadingAnchors = true
|
||||
showPagination = true
|
||||
invertPagination = false
|
||||
showReadingTime = true
|
||||
showTableOfContents = true
|
||||
showRelatedContent = true
|
||||
relatedContentLimit = 6
|
||||
showTaxonomies = true
|
||||
showAuthorsBadges = true
|
||||
showWordCount = false
|
||||
showSummary = true
|
||||
sharingLinks = [ "linkedin", "twitter", "reddit", "whatsapp", "telegram", "pinterest", "facebook", "email"]
|
||||
|
||||
[list]
|
||||
showHero = true
|
||||
heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
||||
layoutBackgroundBlur = true # only used when heroStyle equals background
|
||||
layoutBackgroundHeaderSpace = false
|
||||
showBreadcrumbs = false
|
||||
showSummary = false
|
||||
showViews = true
|
||||
showLikes = true
|
||||
showTableOfContents = true
|
||||
showCards = true
|
||||
groupByYear = false
|
||||
cardView = true
|
||||
cardViewScreenWidth = false
|
||||
constrainItemsWidth = true
|
||||
|
||||
[sitemap]
|
||||
excludedKinds = ["taxonomy","term"]
|
||||
|
||||
[taxonomy]
|
||||
showTermCount = true
|
||||
showHero = true
|
||||
heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
||||
showBreadcrumbs = false
|
||||
showViews = true
|
||||
showLikes = true
|
||||
showTableOfContents = true
|
||||
cardView = false
|
||||
|
||||
[term]
|
||||
showHero = true
|
||||
heroStyle = "background" # valid options: basic, big, background, thumbAndBackground
|
||||
showBreadcrumbs = false
|
||||
showViews = true
|
||||
showLikes = true
|
||||
showTableOfContents = true
|
||||
groupByYear = false
|
||||
cardView = true
|
||||
cardViewScreenWidth = false
|
||||
|
||||
[firebase]
|
||||
|
||||
[fathomAnalytics]
|
||||
|
||||
[buymeacoffee]
|
||||
|
||||
[verification]
|
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
title: "Services"
|
||||
description: "Learn what we can do for your company."
|
||||
|
||||
cascade:
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
invertPagination: true
|
||||
showLikes: false
|
||||
showViews: false
|
||||
---
|
||||
|
||||
{{< lead >}}
|
||||
Simple, yet powerful. Learn how to use complex open-source tools.
|
||||
{{< /lead >}}
|
||||
|
||||
Never worry about renewing a license, open-source projects can be incredibly useful for small and medium sized companies/orginizations. Don't just settle for "good enough" we help you get a secure and powerful suite of software running on your own server or managed through our secure cloud.
|
|
@ -1,47 +0,0 @@
|
|||
---
|
||||
title: "Cloud Deployment"
|
||||
draft: false
|
||||
description: "Develop and deploy a personal cloud for home or business."
|
||||
---
|
||||
|
||||
It's time to take control of your data, services, and even your company's online presence with a personal cloud hosted on your own hardware. Whether you're managing servers in your office or at a data center, our company is here to guide you through the process of turning your on-site and collocated hardware into a versatile personal cloud and gateway to your organization's digital ecosystem.
|
||||
|
||||
## Bring Your Own Server or Take A Recommendation
|
||||
|
||||
#### Bring your own server:
|
||||
We provide service "stack" recommendations and support for any hardware you would like to bring into your personal cloud, this could be a collocated server or an old desktop. We will tailor a group of applications for you and/or your employees based on stated need.
|
||||
|
||||
#### Take a recommendation:
|
||||
We have experience building routers, streaming servers/CDNs, compute dedicated machines, and home servers that use less than 20 watts under load. We will help you find exactly what you need for any service without obfuscating any of the important details.
|
||||
|
||||
### We want to help you:
|
||||
- Run a server in your home or office to secure you or your client's data.
|
||||
- Efficiently scale your development process without paying monthly to a cloud provider or wait for provisioning.
|
||||
- Decentralize your cloud and make it accessible anywhere [by using a "mesh" VPN.](#decentralized-systems--security)
|
||||
|
||||
## Decentralized Systems & Security
|
||||
|
||||
> Leverage a "mesh" VPN to connect all of your on-site and off-site hardware.
|
||||
|
||||
A self-hosted virtual private network enables you to connect hardware, say in an office/home or collocation building, securely. With a mesh network tool like [Netmaker](https://github.com/gravitl/netmaker), you can allow all of your servers to think they are on the same subnet, using true P2P connections, without opening any ports.
|
||||
|
||||
Mesh VPNs allow you to completely close off a host's firewall, but still provide a way for internal or external users to access that content. Proxy the content through another server that is protected with [DDoS mitigation](https://github.com/crowdsecurity/crowdsec) or only allow access to users with WireGuard client keys.
|
||||
|
||||
#### Cost-Efficient Scalability:
|
||||
|
||||
> An e-commerce SMB can use decentralized cloud computing to easily scale its website during peak shopping seasons, ensuring optimal performance without overcommitting to expensive infrastructure.
|
||||
|
||||
#### Improved Resilience:
|
||||
|
||||
> A small manufacturing business can use decentralized backup and disaster recovery solutions to protect critical data and systems from unexpected outages or disasters.
|
||||
|
||||
#### Remote Work Support:
|
||||
> Decentralized computing enables employees to work remotely, accessing company data and applications securely from anywhere with an internet connection.
|
||||
|
||||
#### Global Reach:
|
||||
|
||||
> An online education platform can utilize decentralized content delivery networks (CDNs) to ensure fast and reliable access to course materials for students worldwide.
|
||||
|
||||
### Wrapping up
|
||||
|
||||
These examples and more are enabled by decentralizing resources, improving redundancy, which can be achieved quickly and securely by using tools like [Netmaker](https://github.com/gravitl/netmaker), one of the top trusted open source tools used by Myco.Systems. Right now we use [Netmaker](https://github.com/gravitl/netmaker) to create a secure wireguard-based connection from anywhere, even on the road, back to our servers.
|
|
@ -1,44 +0,0 @@
|
|||
---
|
||||
title: "Device Anonymization"
|
||||
draft: false
|
||||
description: "Learn how to build Blowfish manually."
|
||||
---
|
||||
|
||||
# Lorem Ipsum
|
||||
|
||||
Lorem Ipsum is a **dummy text** often used in the **printing** and **typesetting** industry. It has been the industry's standard **dummy text** since the 1500s when an unknown printer took a galley of type and scrambled it to make a **type specimen book**. It has survived not only five centuries but also the leap into electronic typesetting, remaining essentially unchanged.
|
||||
|
||||
## Why Lorem Ipsum?
|
||||
|
||||
- Lorem Ipsum provides a **placeholder** for text content when designing documents, websites, or graphic layouts.
|
||||
- It allows designers and developers to focus on the **visual aspects** of their work without being distracted by the actual content.
|
||||
- It ensures that the layout and formatting are the primary focus during the initial design phase.
|
||||
|
||||
## Lorem Ipsum Variations
|
||||
|
||||
There are many variations of Lorem Ipsum available, but the most common version consists of a passage from Cicero's *De Finibus Bonorum et Malorum* (The Extremes of Good and Evil).
|
||||
|
||||
### Sample Lorem Ipsum Text
|
||||
|
||||
```markdown
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
||||
```
|
||||
|
||||
## Lorem Ipsum Tables
|
||||
|
||||
You can also use Lorem Ipsum in tables:
|
||||
|
||||
| Header 1 | Header 2 |
|
||||
| ---------------| ------------ |
|
||||
| Lorem ipsum | dolor sit |
|
||||
| amet, | consectetur |
|
||||
| adipiscing | elit. |
|
||||
|
||||
## Conclusion
|
||||
|
||||
In summary, Lorem Ipsum is a valuable tool for designers and developers to create aesthetically pleasing layouts without getting bogged down by content creation. It offers flexibility in terms of variations and can be easily integrated into various design projects using Markdown formatting or other markup languages.
|
||||
|
||||
```javascript
|
||||
// Here's a JavaScript snippet
|
||||
console.log("Hello, world!");
|
||||
```
|
|
@ -1,44 +0,0 @@
|
|||
---
|
||||
title: "Server Hardware Deployment"
|
||||
draft: false
|
||||
description: "Learn how to build Blowfish manually."
|
||||
---
|
||||
|
||||
# Lorem Ipsum
|
||||
|
||||
Lorem Ipsum is a **dummy text** often used in the **printing** and **typesetting** industry. It has been the industry's standard **dummy text** since the 1500s when an unknown printer took a galley of type and scrambled it to make a **type specimen book**. It has survived not only five centuries but also the leap into electronic typesetting, remaining essentially unchanged.
|
||||
|
||||
## Why Lorem Ipsum?
|
||||
|
||||
- Lorem Ipsum provides a **placeholder** for text content when designing documents, websites, or graphic layouts.
|
||||
- It allows designers and developers to focus on the **visual aspects** of their work without being distracted by the actual content.
|
||||
- It ensures that the layout and formatting are the primary focus during the initial design phase.
|
||||
|
||||
## Lorem Ipsum Variations
|
||||
|
||||
There are many variations of Lorem Ipsum available, but the most common version consists of a passage from Cicero's *De Finibus Bonorum et Malorum* (The Extremes of Good and Evil).
|
||||
|
||||
### Sample Lorem Ipsum Text
|
||||
|
||||
```markdown
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
||||
```
|
||||
|
||||
## Lorem Ipsum Tables
|
||||
|
||||
You can also use Lorem Ipsum in tables:
|
||||
|
||||
| Header 1 | Header 2 |
|
||||
| ---------------| ------------ |
|
||||
| Lorem ipsum | dolor sit |
|
||||
| amet, | consectetur |
|
||||
| adipiscing | elit. |
|
||||
|
||||
## Conclusion
|
||||
|
||||
In summary, Lorem Ipsum is a valuable tool for designers and developers to create aesthetically pleasing layouts without getting bogged down by content creation. It offers flexibility in terms of variations and can be easily integrated into various design projects using Markdown formatting or other markup languages.
|
||||
|
||||
```javascript
|
||||
// Here's a JavaScript snippet
|
||||
console.log("Hello, world!");
|
||||
```
|
|
@ -1,44 +0,0 @@
|
|||
---
|
||||
title: "Online Privacy Consulting"
|
||||
draft: false
|
||||
description: "Learn how to build Blowfish manually."
|
||||
---
|
||||
|
||||
# Lorem Ipsum
|
||||
|
||||
Lorem Ipsum is a **dummy text** often used in the **printing** and **typesetting** industry. It has been the industry's standard **dummy text** since the 1500s when an unknown printer took a galley of type and scrambled it to make a **type specimen book**. It has survived not only five centuries but also the leap into electronic typesetting, remaining essentially unchanged.
|
||||
|
||||
## Why Lorem Ipsum?
|
||||
|
||||
- Lorem Ipsum provides a **placeholder** for text content when designing documents, websites, or graphic layouts.
|
||||
- It allows designers and developers to focus on the **visual aspects** of their work without being distracted by the actual content.
|
||||
- It ensures that the layout and formatting are the primary focus during the initial design phase.
|
||||
|
||||
## Lorem Ipsum Variations
|
||||
|
||||
There are many variations of Lorem Ipsum available, but the most common version consists of a passage from Cicero's *De Finibus Bonorum et Malorum* (The Extremes of Good and Evil).
|
||||
|
||||
### Sample Lorem Ipsum Text
|
||||
|
||||
```markdown
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
||||
```
|
||||
|
||||
## Lorem Ipsum Tables
|
||||
|
||||
You can also use Lorem Ipsum in tables:
|
||||
|
||||
| Header 1 | Header 2 |
|
||||
| ---------------| ------------ |
|
||||
| Lorem ipsum | dolor sit |
|
||||
| amet, | consectetur |
|
||||
| adipiscing | elit. |
|
||||
|
||||
## Conclusion
|
||||
|
||||
In summary, Lorem Ipsum is a valuable tool for designers and developers to create aesthetically pleasing layouts without getting bogged down by content creation. It offers flexibility in terms of variations and can be easily integrated into various design projects using Markdown formatting or other markup languages.
|
||||
|
||||
```javascript
|
||||
// Here's a JavaScript snippet
|
||||
console.log("Hello, world!");
|
||||
```
|
|
@ -1,23 +0,0 @@
|
|||
---
|
||||
title: "Web Development & Design"
|
||||
draft: false
|
||||
description: "Learn how we can help you build fast and beautiful websites."
|
||||
---
|
||||
|
||||
We present a simple solution for scalable websites that rely on a content management system (CMS), with the use of a static site CMS (i.e. [Decap CMS](https://github.com/decaporg/decap-cms), or it's fork [Static CMS](https://github.com/StaticJsCMS/static-cms)), an optional analytics platform like [Plausible](https://github.com/plausible/analytics), and a static site generator (i.e. [Hugo](https://github.com/gohugoio/hugo) or [Jekyll](https://github.com/jekyll/jekyll)) you can quickly and efficiently deploy new pages to a website with a pipeline that works for you.
|
||||
|
||||
### Why Static Sites? And, why this stack?
|
||||
|
||||
- **Full In-House Control:** Your data, your rules. You don't have to give any monthly fees for Google Analytics or a managed hosting provider. Nothing is obfuscated, and all important details are at your fingertips. No data is collected of you or your users, Plausible is not just GDPR complaint but collects truly generalized data that still allows you to get the information you need without sacrificing user privacy.
|
||||
|
||||
- **Version Control:** All your code resides in a Git repository alongside your content and a static site CMS is built to run CI/CD for your git repository. This means you can easily track all changes made to your website and quickly deploy it to a new server during an outage or upgrade.
|
||||
|
||||
- **Customization:** Hugo brings a world of customization to your fingertips. Choose from a wide array of prebuilt themes or engage our team to draft a theme from scratch, perfectly tailored to you. We want to make it easy for your organization to have a snappy and reliable web presence. [Take a look at the theme we used for this website](https://blowfish.page/).
|
||||
|
||||
- **Usability:** Don't sacrifice the usability afforded by tools like WordPress, most static site content management platforms we use and recommend provide a helpful UI to walk you through the process of managing your website. [Static CMS demo](https://demo.staticcms.org/).
|
||||
|
||||
### Cost Savings
|
||||
|
||||
All of these services can be entirely self-hosted on a VPS that costs less than [5 dollars a month](https://www.hetzner.com/cloud). Less than 15 dollars if your organization requires dedicated resources on your VPS.
|
||||
|
||||
Don't want your Git repository to be running on an off-site server? Separate your pipeline into physically disparate servers by purchasing a machine to function as a local Git repository that is accessible from a public IP using a [decentrialized system](/services/cloud-deploy/#decentralized-systems--security). Better yet, repurpose an old computer to function as your own mini home datacenter.
|
|
@ -1,44 +0,0 @@
|
|||
---
|
||||
title: "Web Hosting"
|
||||
draft: false
|
||||
description: "Learn how to build Blowfish manually."
|
||||
---
|
||||
|
||||
# Lorem Ipsum
|
||||
|
||||
Lorem Ipsum is a **dummy text** often used in the **printing** and **typesetting** industry. It has been the industry's standard **dummy text** since the 1500s when an unknown printer took a galley of type and scrambled it to make a **type specimen book**. It has survived not only five centuries but also the leap into electronic typesetting, remaining essentially unchanged.
|
||||
|
||||
## Why Lorem Ipsum?
|
||||
|
||||
- Lorem Ipsum provides a **placeholder** for text content when designing documents, websites, or graphic layouts.
|
||||
- It allows designers and developers to focus on the **visual aspects** of their work without being distracted by the actual content.
|
||||
- It ensures that the layout and formatting are the primary focus during the initial design phase.
|
||||
|
||||
## Lorem Ipsum Variations
|
||||
|
||||
There are many variations of Lorem Ipsum available, but the most common version consists of a passage from Cicero's *De Finibus Bonorum et Malorum* (The Extremes of Good and Evil).
|
||||
|
||||
### Sample Lorem Ipsum Text
|
||||
|
||||
```markdown
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
||||
```
|
||||
|
||||
## Lorem Ipsum Tables
|
||||
|
||||
You can also use Lorem Ipsum in tables:
|
||||
|
||||
| Header 1 | Header 2 |
|
||||
| ---------------| ------------ |
|
||||
| Lorem ipsum | dolor sit |
|
||||
| amet, | consectetur |
|
||||
| adipiscing | elit. |
|
||||
|
||||
## Conclusion
|
||||
|
||||
In summary, Lorem Ipsum is a valuable tool for designers and developers to create aesthetically pleasing layouts without getting bogged down by content creation. It offers flexibility in terms of variations and can be easily integrated into various design projects using Markdown formatting or other markup languages.
|
||||
|
||||
```javascript
|
||||
// Here's a JavaScript snippet
|
||||
console.log("Hello, world!");
|
||||
```
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
title: "Showcase"
|
||||
description: "Learn what we can do for your company."
|
||||
|
||||
cascade:
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
invertPagination: true
|
||||
showLikes: false
|
||||
showViews: false
|
||||
showTableOfContents: false
|
||||
showBreadcrumbs: true
|
||||
---
|
||||
|
||||
{{< lead >}}
|
||||
Simple, yet powerful. Learn how to use complex open-source tools.
|
||||
{{< /lead >}}
|
||||
|
||||
{{< timeline >}}
|
||||
|
||||
{{< timelineItem icon="link" header="Functional and Accessible Websites" subheader="Click image to expand" >}}
|
||||
<img style="border-radius:5px;margin:0px !important;" src="https://cdn.myco.systems/images/desktop-showcase-2.png"/>
|
||||
{{< /timelineItem >}}
|
||||
|
||||
{{< /timeline >}}
|
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
title: "Stacks"
|
||||
description: "Learn what we can do for your company."
|
||||
|
||||
cascade:
|
||||
showDate: false
|
||||
showAuthor: false
|
||||
invertPagination: true
|
||||
showLikes: false
|
||||
showViews: false
|
||||
---
|
||||
|
||||
{{< lead >}}
|
||||
Simple, yet powerful. Learn how to use complex open-source tools.
|
||||
{{< /lead >}}
|
||||
|
||||
Never worry about renewing a license, open-source projects can be incredibly useful for small and medium sized companies/orginizations. Don't just settle for "good enough" we help you get a secure and powerful suite of software running on your own server or managed through our secure cloud.
|
|
@ -1,108 +0,0 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-language" content="en">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<meta name="generator" content="Hugo 0.111.3">
|
||||
<title>web.myco.systems</title>
|
||||
<meta name="title" content="web.myco.systems">
|
||||
<meta name="description" content="Hi, welcome to MycoSystems Web!">
|
||||
|
||||
{{ with .Params.Tags | default .Site.Params.keywords -}}
|
||||
<meta name="keywords" content="{{ range . }}{{ . }}, {{ end -}}" />
|
||||
{{- end }}
|
||||
{{ with .Site.Params.robots }}
|
||||
<meta name="robots" content="{{ . }}" />
|
||||
{{ end }}
|
||||
{{ with .Params.robots }}
|
||||
<meta name="robots" content="{{ . }}" />
|
||||
{{ end }}
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
{{ range .AlternativeOutputFormats -}}
|
||||
{{ printf `
|
||||
<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .RelPermalink ($.Site.Title | emojify) |
|
||||
safeHTML }}
|
||||
{{ end -}}
|
||||
{{/* Asset bundles */}}
|
||||
{{ $assets := newScratch }}
|
||||
{{ $cssScheme := resources.Get (printf "css/schemes/%s.css" (.Site.Params.colorScheme | default "blowfish")) }}
|
||||
{{ if not $cssScheme }}
|
||||
{{ $cssScheme = resources.Get "css/schemes/blowfish.css" }}
|
||||
{{ end }}
|
||||
{{ $assets.Add "css" (slice $cssScheme) }}
|
||||
{{ $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" }}
|
||||
<link type="text/css" rel="stylesheet" href="{{ $bundleCSS.RelPermalink }}"
|
||||
integrity="{{ $bundleCSS.Data.Integrity }}" />
|
||||
{{ $jsAppearance := resources.Get "js/appearance.js" }}
|
||||
{{ $jsAppearance = $jsAppearance | resources.ExecuteAsTemplate "js/appearance.js" . | resources.Minify | resources.Fingerprint "sha512" }}
|
||||
<script type="text/javascript" src="{{ $jsAppearance.RelPermalink }}"
|
||||
integrity="{{ $jsAppearance.Data.Integrity }}"></script>
|
||||
{{ if .Site.Params.enableSearch | default false }}
|
||||
{{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }}
|
||||
{{ $jsSearch := resources.Get "js/search.js" }}
|
||||
{{ $assets.Add "js" (slice $jsFuse $jsSearch) }}
|
||||
{{ end }}
|
||||
{{ if .Site.Params.enableCodeCopy | default false }}
|
||||
{{ $jsCode := resources.Get "js/code.js" }}
|
||||
{{ $assets.Add "js" (slice $jsCode) }}
|
||||
{{ end }}
|
||||
{{ if .Site.Params.rtl | default false }}
|
||||
{{ $jsRTL := resources.Get "js/rtl.js" }}
|
||||
{{ $assets.Add "js" (slice $jsRTL) }}
|
||||
{{ end }}
|
||||
{{ if $assets.Get "js" }}
|
||||
{{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint
|
||||
"sha512" }}
|
||||
<script defer type="text/javascript" id="script-bundle" src="{{ $bundleJS.RelPermalink }}"
|
||||
integrity="{{ $bundleJS.Data.Integrity }}" data-copy="{{ i18n " code.copy" }}" data-copied="{{ i18n " code.copied"
|
||||
}}"></script>
|
||||
{{ end }}
|
||||
<script src="{{ "js/zoom.min.js" | relURL }}"></script>
|
||||
{{/* Icons */}}
|
||||
{{ if templates.Exists "partials/favicons.html" }}
|
||||
{{ partialCached "favicons.html" .Site }}
|
||||
{{ else }}
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ "apple-touch-icon.png" | relURL }}" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ "favicon-32x32.png" | relURL }}" />
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ "favicon-16x16.png" | relURL }}" />
|
||||
<link rel="manifest" href="{{ "site.webmanifest" | relURL }}" />
|
||||
{{ end }}
|
||||
{{/* Social */}}
|
||||
<meta property="og:title" content="Myco.Systems co-op contracting">
|
||||
<meta property="og:description" content="Hi, welcome to MycoSystems Web!">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="https://web.myco.systems/">
|
||||
<meta property="og:site_name" content="web.myco.systems">
|
||||
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="Myco.Systems co-op contracting">
|
||||
<meta name="twitter:description" content="Hi, welcome to MycoSystems Web!">
|
||||
{{/* Schema */}}
|
||||
{{ partial "schema.html" . }}
|
||||
{{/* Me */}}
|
||||
{{ with .Site.Author.name }}
|
||||
<meta name="author" content="{{ . }}" />{{ end }}
|
||||
{{ with .Site.Author.links }}
|
||||
{{ range $links := . }}
|
||||
{{ range $name, $url := $links }}
|
||||
<link href="{{ $url }}" rel="me" />{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{/* Vendor */}}
|
||||
{{ partial "vendor.html" . }}
|
||||
{{/* Analytics */}}
|
||||
{{ partial "analytics/main.html" .Site }}
|
||||
{{/* Extend head - eg. for custom analytics scripts, etc. */}}
|
||||
{{ if templates.Exists "partials/extend-head.html" }}
|
||||
{{ partialCached "extend-head.html" .Site }}
|
||||
{{ end }}
|
||||
<meta name="theme-color"/>
|
||||
</head>
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
{{ $disableImageOptimization := .Site.Params.disableImageOptimization | default false }}
|
||||
<article class="max-w-full prose dark:prose-invert">
|
||||
<div class="relative">
|
||||
<div class="absolute inset-x-0 bottom-0 h-1/2 bg-gray-100"></div>
|
||||
<div class="mx-auto max-w-7xl p-0">
|
||||
<div class="relative sm:overflow-hidden">
|
||||
<div class="fixed inset-x-0 top-0" style="z-index:-10">
|
||||
{{ $homepageImage := "" }}
|
||||
{{ with .Site.Params.defaultBackgroundImage }}{{ $homepageImage = resources.Get . }}{{ end }}
|
||||
{{ with .Site.Params.homepage.homepageImage }}{{ $homepageImage = resources.Get . }}{{ end }}
|
||||
{{ if not (eq $homepageImage "") }}
|
||||
<img class="w-full h-[1000px] object-cover m-0 nozoom" src="{{ $homepageImage.RelPermalink }}" role="presentation">
|
||||
<div
|
||||
class="absolute inset-0 h-[1000px] bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal">
|
||||
</div>
|
||||
<div
|
||||
class="opacity-60 absolute inset-0 h-[1000px] bg-gradient-to-t from-neutral dark:from-neutral-800 to-neutral-100 dark:to-neutral-800 mix-blend-normal">
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="relative px-8 py-16 flex flex-col items-center justify-center text-center">
|
||||
{{ with .Site.Author.image }}
|
||||
{{ $authorImage := resources.Get . }}
|
||||
{{ if $authorImage }}
|
||||
{{ if not $disableImageOptimization }}
|
||||
{{ $authorImage = $authorImage.Fill "288x288" }}
|
||||
{{ end }}
|
||||
<img class="mb-2 rounded-full h-36 w-36" width="144" height="144"
|
||||
alt="{{ $.Site.Author.name | default " Author" }}" src="{{ $authorImage.RelPermalink }}" />
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
<h1 class="mb-2 text-4xl font-extrabold text-neutral-800 dark:text-neutral-200">
|
||||
{{ .Site.Author.name | default .Site.Title }}
|
||||
</h1>
|
||||
{{ with .Site.Author.headline }}
|
||||
<h2 class="mt-0 mb-0 text-xl text-neutral-800 dark:text-neutral-300">
|
||||
{{ . | markdownify | emojify }}
|
||||
</h2>
|
||||
{{ end }}
|
||||
<div class="mt-3 mb-10 text-2xl">
|
||||
{{ with .Site.Author.links }}
|
||||
<div class="flex flex-wrap">
|
||||
{{ range $links := . }}
|
||||
{{ range $name, $url := $links }}
|
||||
<a class="px-2 hover:text-primary-400 text-primary-800 dark:text-primary-200" href="{{ $url }}" target="_blank"
|
||||
aria-label="{{ $name | title }}" rel="me noopener noreferrer">{{ partial
|
||||
"icon.html" $name }}</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
<section class="prose dark:prose-invert">{{ .Content | emojify }}</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
<section>
|
||||
{{ partial "recent-articles/main.html" . }}
|
||||
</section>
|
||||
{{ if .Site.Params.homepage.layoutBackgroundBlur | default false }}
|
||||
<div id="background-blur" class="fixed opacity-0 inset-x-0 top-0 h-full single_hero_background nozoom backdrop-blur-2xl"></div>
|
||||
<script>
|
||||
window.addEventListener('scroll', function (e) {
|
||||
var scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
|
||||
var background_blur = document.getElementById('background-blur');
|
||||
background_blur.style.opacity = (scroll / 300)
|
||||
});
|
||||
</script>
|
||||
{{ end }}
|
|
@ -1,20 +0,0 @@
|
|||
{{ $jsHome := resources.Get "js/home.js" | resources.Minify | resources.Fingerprint "sha512" }}
|
||||
<div id="background">
|
||||
{{ partial "partials/home/background.html" . }}
|
||||
</div>
|
||||
<div id="hero" style="display:none">
|
||||
{{ partial "partials/home/hero.html" . }}
|
||||
</div>
|
||||
<div id="profile" style="display:none">
|
||||
{{ partial "partials/home/profile.html" . }}
|
||||
</div>
|
||||
<div id="card" style="display:none">
|
||||
{{ partial "partials/home/card.html" . }}
|
||||
</div>
|
||||
<div id="page" style="display:none">
|
||||
{{ partial "partials/home/page.html" . }}
|
||||
</div>
|
||||
<section>
|
||||
{{ partial "recent-articles-demo.html" . }}
|
||||
</section>
|
||||
<script defer type="text/javascript" src="{{ $jsHome.RelPermalink }}" integrity="{{ $jsHome.Data.Integrity }}"></script>
|
|
@ -1,32 +0,0 @@
|
|||
{{ $recentArticles := 5 }}
|
||||
{{ $showMoreLinkDest := "/posts" }}
|
||||
{{ if .Site.Params.homepage.showRecent | default false }}
|
||||
{{ if index .Site.Params.homepage "showRecentItems" }}
|
||||
{{ $recentArticles = .Site.Params.homepage.showRecentItems }}
|
||||
{{ end }}
|
||||
<a href="/services">
|
||||
<h2 class="mt-8 text-2xl font-extrabold mb-10">Services</h2>
|
||||
</a>
|
||||
|
||||
{{ if and .Site.Params.homepage.cardView (not .Site.Params.homepage.cardViewScreenWidth) | default false }}
|
||||
{{ partial "recent-articles/cardview.html" . }}
|
||||
{{ else if and .Site.Params.homepage.cardView .Site.Params.homepage.cardViewScreenWidth | default false }}
|
||||
{{ partial "recent-articles/cardview-fullwidth.html" . }}
|
||||
{{ else }}
|
||||
{{ partial "recent-articles/list.html" . }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .Site.Params.homepage.showMoreLink | default false }}
|
||||
{{ if index .Site.Params.homepage "showRecentItems" }}
|
||||
{{ $showMoreLinkDest = .Site.Params.homepage.showMoreLinkDest }}
|
||||
{{ end }}
|
||||
<div class="mt-10 flex justify-center">
|
||||
<a href="{{ $showMoreLinkDest }}">
|
||||
<button
|
||||
class="bg-transparent hover:text-primary-500 prose dark:prose-invert font-semibold hover:text-white py-2 px-4 border border-primary-500 hover:border-transparent rounded">
|
||||
{{ i18n "recent.show_more" | markdownify | emojify }}
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
55
package-lock.json
generated
Normal file
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"name": "web.myco.systems",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"devDependencies": {
|
||||
"prettier": "^3.3.2",
|
||||
"prettier-plugin-go-template": "^0.0.15"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
|
||||
"integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"prettier": "bin/prettier.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/prettier-plugin-go-template": {
|
||||
"version": "0.0.15",
|
||||
"resolved": "https://registry.npmjs.org/prettier-plugin-go-template/-/prettier-plugin-go-template-0.0.15.tgz",
|
||||
"integrity": "sha512-WqU92E1NokWYNZ9mLE6ijoRg6LtIGdLMePt2C7UBDjXeDH9okcRI3zRqtnWR4s5AloiqyvZ66jNBAa9tmRY5EQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ulid": "^2.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"prettier": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ulid": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz",
|
||||
"integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"ulid": "bin/cli.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
6
package.json
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"devDependencies": {
|
||||
"prettier": "^3.3.2",
|
||||
"prettier-plugin-go-template": "^0.0.15"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 15 KiB |
1
themes/hugo-maintenance
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit db0db52ec5a27e2d9d1aea649fc05fe51cefc6a4
|