New post in drafts and almost ready. Also on a new computer, so had to re-download all the theme and submodules. Thinking of just converting the box submodule to be native to my blog for easier maintenence. Need to proof this last post on google sheets and publish tomorrow morning.
6
.gitmodules
vendored
@ -1,3 +1,9 @@
|
||||
[submodule "themes/hugo-shortcode-roneo-collection"]
|
||||
path = themes/hugo-shortcode-roneo-collection
|
||||
url = https://gitlab.com/Roneo/hugo-shortcode-roneo-collection.git
|
||||
[submodule "themes/PaperMod"]
|
||||
path = themes/PaperMod
|
||||
url = https://github.com/adityatelange/hugo-PaperMod.git
|
||||
[submodule "themes/themes/hugo-shortcode-roneo-collection"]
|
||||
path = themes/themes/hugo-shortcode-roneo-collection
|
||||
url = https://gitlab.com/Roneo/hugo-shortcode-roneo-collection.git
|
||||
|
||||
79
READ_FIRST.md
Normal file
@ -0,0 +1,79 @@
|
||||
# Build Notes for Hugo
|
||||
|
||||
## _ALL OF THESE COMMANDS SHOULD BE RUN FROM YOUR MAIN FOLDER - THE SAME ONE THAT CONTAINS THE HUGO.YAML_
|
||||
|
||||
TODO: Create script that loads submodules and theme after downloading git repo for first time.
|
||||
|
||||
Upon first git clone AND if you want to build the submodules from scratch:
|
||||
|
||||
```bash
|
||||
git rm -rf --caches themes/
|
||||
git submodule add https://gitlab.com/Roneo/hugo-shortcode-roneo-collection.git themes/hugo-shortcode-roneo-collection
|
||||
git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod
|
||||
```
|
||||
|
||||
You can also try to run the git submodule update command, but this hasn't worked for me in the past.
|
||||
|
||||
```bash
|
||||
git submodule update --init --recursive # needed when you reclone your repo (submodules may not get cloned automatically)
|
||||
```
|
||||
|
||||
For some Macs (for instance the 8GB M1), you have to run this to prevent the "too many open files" error:
|
||||
|
||||
```bash
|
||||
hugo check ulimit
|
||||
sudo sysctl -w kern.maxfiles=65536
|
||||
sudo sysctl -w kern.maxfilesperproc=65536
|
||||
ulimit -n 65536 65536
|
||||
```
|
||||
|
||||
Run local:
|
||||
|
||||
```bash
|
||||
hugo server --baseURL 'localhost' --bind 'localhost'
|
||||
```
|
||||
|
||||
And run local with drafts:
|
||||
|
||||
```bash
|
||||
hugo server --buildDrafts --baseURL 'localhost' --bind 'localhost'
|
||||
```
|
||||
|
||||
Build to public folder ready for git push:
|
||||
|
||||
```bash
|
||||
hugo -s ./ -d ./public/
|
||||
```
|
||||
|
||||
## CONTENT
|
||||
|
||||
Create content with the most used settings
|
||||
FEAT: Shouldn't this just become the default one instead of having a more specific command?
|
||||
```bash
|
||||
hugo new content --kind page posts/name_of_post.md
|
||||
```
|
||||
|
||||
## DESIGN
|
||||
|
||||
When using the shortcodes from Roneo for Box and/or the detail (drop down/accordion style menu), the formatting can clash
|
||||
with the theme. So you'll want to remove box shadow, border, background, padding, etc. Here's the basic setup I insert at the
|
||||
end of each MD post that needs these changes.
|
||||
```html
|
||||
<style>
|
||||
.box-shortcode {
|
||||
color: #e8e8e8;
|
||||
border: none;
|
||||
}
|
||||
.post-content img {
|
||||
margin: auto
|
||||
}
|
||||
details {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
```
|
||||
456
content/posts/google_scripts_sheets_to_slides.md
Normal file
@ -0,0 +1,456 @@
|
||||
---
|
||||
title: 'Google Sheets to Slides with Scripts: an Automation'
|
||||
date: 2024-02-25T10:14:30-05:00
|
||||
tags: ["google", "scripts", "sheets"]
|
||||
categories: ["Tutorial"]
|
||||
author: "Me"
|
||||
showToc: true
|
||||
TocOpen: false
|
||||
draft: true
|
||||
hidemeta: false
|
||||
description: "Learn about running a quick automation that turns rows in your Google Sheets and plugs it into a Google [Slide](2024-02-26_slide.md) template to easily share more attractive content."
|
||||
disableHLJS: true # to disable highlightjs
|
||||
disableShare: false
|
||||
disableHLJS: false
|
||||
hideSummary: false
|
||||
searchHidden: true
|
||||
ShowReadingTime: true
|
||||
ShowBreadCrumbs: true
|
||||
ShowPostNavLinks: true
|
||||
ShowWordCount: true
|
||||
ShowRssButtonInSectionTermList: true
|
||||
UseHugoToc: true
|
||||
cover:
|
||||
image: "<image path/url>"
|
||||
alt: "<alt text>"
|
||||
caption: "<text>"
|
||||
relative: false
|
||||
hidden: true
|
||||
---
|
||||
# Overview
|
||||
|
||||
Recently, my wife needed help in sharing weekly content with a group of people. The original way this group was sharing
|
||||
content was a PDF export of a Google Doc. From a User Experience perspective, it wasn't great. Someone would received this
|
||||
long PDF, they would have to scroll to find the date or topic of the next additional_notes, and overall didn't look great.
|
||||
|
||||
While she had developed the Google Sheets and Google Slide system to make everything a bit more legible and navigable, there
|
||||
was still an element of copy and paste from the Sheet to the Slide. She had asked if I knew of any ways to make this process
|
||||
easier. This was a perfect mini-project for Google Apps Scripts!
|
||||
|
||||
{{< box info >}}
|
||||
In case you haven't heard of Google Apps Scripts, it is a built in Google IDE that uses Javascript to make various
|
||||
Google products available via automation and scripting. While Google saves the files as `.gs` files, it's just javascript,
|
||||
don't worry! You can learn more about it [here](https://www.google.com/script/start/) and [here](https://developers.google.com/apps-script/overview).
|
||||
{{< /box >}}
|
||||
|
||||
Below, I'll share the pieces of the script to explain what is going on. If you know what you're doing and just want the
|
||||
script, feel free to head to the bottom of the page to see the [full script]({{<relref "#full-script">}}).
|
||||
|
||||
# Goal
|
||||
|
||||
The goal here was pretty straight forward. I wanted to add a button on the Google Sheet that allows the user to create a
|
||||
Slides presentation from a subset of data within the sheet. The data will be date based, as this is what most end users need,
|
||||
and the user will be able to pick from the currently available dates & populated data.
|
||||
|
||||
# Setup
|
||||
|
||||
Getting setup, you need both a Sheet with a few headings and an empty Slide presentation with a few empty text boxes. The
|
||||
empty text boxes will be key to helping us connect the data in the sheet to the correct placement in the slide. Here are two
|
||||
screenshots of what this looks like for my example:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Sheets Setup
|
||||
|
||||
Ignoring any design from my screenshots - all credit goes to my much more creative wife - the setup for the sheet is fairly
|
||||
simple. You need various headings in Row A of the sheet which we will be using to reference data. In this tutorial, our
|
||||
headings are `Date, Topic 1, Topic 2, Topic 3, Additional Notes`. Whether you start on Row 1 or after that doesn't matter too
|
||||
much.
|
||||
|
||||
For the date column, we'll be formatting our date like this: "February 26, 2024". You'll see why in a little bit.
|
||||
|
||||
On top of the actual data in the Sheet, the Apps Script is going to live in this document and just push data to the Slide. To
|
||||
access your App Scripts, click Extensions > Apps Scripts. A new tab will open with a blank IDE style interface and an empty
|
||||
`myFunction`.
|
||||
|
||||
## Slides Setup
|
||||
|
||||
Don't worry too much about the design for Slides, you can change that later. But the important step is creating the empty
|
||||
text boxes. After you create your text boxes (4 will be used in this tutorial), right click one of them and select "Format
|
||||
Options". A panel on the left hand-side should slide out. Click the "Alt Text" drop down, and then "Advanced Options". That
|
||||
little text box is the title for your text box; it is not used in the visual representation of the box, we will just be using
|
||||
it as a reference point.
|
||||
|
||||
For ease of this tutorial, make the Title of the text box the same as the Header row from when we set up the Sheet, above.
|
||||
Once you've added title to each of the text boxes, let's head into the code.
|
||||
|
||||
## onOpen Function
|
||||
|
||||
The first function you need for creating a UI change in the Google Sheet is an `onOpen` function that will setup the UI when
|
||||
the Sheet is open.
|
||||
|
||||
```js {linenos=true}
|
||||
function onOpen(e) {
|
||||
SpreadsheetApp.getUi()
|
||||
.createMenu('Create Presentation')
|
||||
.addItem('Create Presentation', 'askDate' )
|
||||
.addToUi();
|
||||
}
|
||||
```
|
||||
|
||||
In this function (which we'll later trigger in the script settings), when someone opens up the Sheet, it will create the UI
|
||||
button in the top level menu. Here's what's happening:
|
||||
|
||||
* `SpreadsheetApp.getUi()` --> Instantiate class and get available methods for `getUi()`.
|
||||
* `createMenu()` --> Creates a menu item called "Create Presentation".
|
||||
* `addItem()` --> Adds an item to that menu that when pressed, calls the `askDate` function.
|
||||
* `addtoUi()` --> Add it! Now people can see and click on it.
|
||||
|
||||

|
||||
|
||||
## askDate Function
|
||||
|
||||
This is the main function and a bit long, so I'll split it up into a few sections.
|
||||
|
||||
### Section 1
|
||||
|
||||
```js {linenos=true}
|
||||
var ui = SpreadsheetApp.getUi();
|
||||
var sheet = SpreadsheetApp.getActiveSheet();
|
||||
var lastRow = sheet.getLastRow();
|
||||
var dates = sheet.getRange(2,2,lastRow,1).getDisplayValues();
|
||||
|
||||
// get today's epoch time for easier calculations
|
||||
const epochDate = new Date().getTime()
|
||||
```
|
||||
|
||||
This first section we're just getting the sheet ready for analysis. With the `dates` variable, we're just looking at the
|
||||
second column. The reason we're using the `getDisplayValues()` method is because Google will automatically convert the dates
|
||||
to include time zone, time, etc. We want to keep the date in the same format for a better user experience.
|
||||
|
||||
For that last line, we're getting the current date & time in epoch time so we can run a comparison further down the script.
|
||||
For this use case, we don't need to include any dates in the past.
|
||||
|
||||
### Section 2
|
||||
|
||||
```javascript {linenos=true}
|
||||
menuOptions = []
|
||||
const re = new RegExp("^[A-Za-z]{3,15}\\s\\d{1,2},\\s\\d{2,4}")
|
||||
for (let i = 0; i < dates.length; i++ ) {
|
||||
var date = dates[i][0];
|
||||
var epochSheetDate = new Date(date).getTime();
|
||||
if (date != "") {
|
||||
var dateMatch = re.test(date)
|
||||
if (dateMatch == true) {
|
||||
if (epochDate < epochSheetDate) {
|
||||
menuOptions.push(date)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
In this section we're creating an empty array and instantiating a RegExp to ensure we have an actual date in the cell. See
|
||||
[Regex101](https://regex101.com) to learn more about Regex and test different regex syntax.
|
||||
|
||||
{{< box tip >}}
|
||||
Something that threw me off when first writing this regex function was the way the Google IDE manages escape character and
|
||||
slashes. If you take the second line above and input it into [Regex101](https://regex101.com) you'll see the `\s` or `\d`
|
||||
become dark gray, basically skipping over that token. However, for Google, you'll need an additional backslash to escape and
|
||||
make the token become used by the function.
|
||||
|
||||
Here's the "correct" RegExp string for Regex101.com: `^[A-Za-z]{3,15}\s\d{1,2},\s\d{2,4}`
|
||||
{{< /box >}}
|
||||
|
||||
Next, we dive into a for loop, looping through the `dates` column of values (which we just called earlier). After attributing
|
||||
each value to the `var date` variable, we also convert that same value into epoch time (by creating a new `Date().getTime()`)
|
||||
so that we can compare it with today's date.
|
||||
|
||||
After the variables are setup we need to check that the date isn't empty; we don't need any rows where a date hasn't been assigned to it
|
||||
yet. If we have a non-empty date value, let's compare it using the regex string. All we're doing here is asking "Is this date
|
||||
in the format I'm expecting it?" If true, let's keep the value and continue using it. If not, just ignore it.
|
||||
|
||||
So we've now found a value that's in the date format we expect, let's now take that same value in epoch time (referenced by
|
||||
the `epochSheetDate` variable) and compare it to today's epoch time date. If today's date is less than the value in the
|
||||
sheet, that means the date in the sheet is in the future.
|
||||
|
||||
So now we have a date in the correct format and that is at some future date from today. Fantastic! Once we've gone through
|
||||
those checks, we're ready to add the date to the array we created at the top of this section. Push on!
|
||||
|
||||
### Section 3
|
||||
|
||||
```javascript {linenos=true}
|
||||
if (menuOptions.length > 0) {
|
||||
let stringList = menuOptions.toString();
|
||||
var formattedDates = stringList.replaceAll("2024,", "2024 \n ");
|
||||
var response = ui.prompt('Which date would you like to create a presentation for? Please copy and paste the date exactly as you see it in the options below. Options: \n \n'+formattedDates);
|
||||
if (response.getSelectedButton() == ui.Button.OK) {
|
||||
var dateChosen = response.getResponseText();
|
||||
if (dateChosen != "") {
|
||||
ui.alert("Woohoo! Let's make a presentation!")
|
||||
for(var y = 0; y<dates.length;y++){
|
||||
if (dates[y][0] == dateChosen) {
|
||||
// Logger.log("Row:"+(y+2));
|
||||
var presRow = y+2
|
||||
var presData = sheet.getRange(presRow,3,1,4).getValues();
|
||||
for (presCopy of presData) {
|
||||
var topic1 = presCopy[0];
|
||||
var topic2 = presCopy[1];
|
||||
var topic3 = presCopy[2];
|
||||
var additional_notes = presCopy[3];
|
||||
}
|
||||
createPresentation(dateChosen, topic1, topic2, topic3, additional_notes)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ui.alert("Ouch. Looks like you entered something incorrectly (i.e. you entered nothing). Try again.")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ui.alert("No Dates Available. Check Spreadsheet")
|
||||
}
|
||||
```
|
||||
|
||||
This next section might feel long, but it's really easy to follow, don't worry. It's a lot of data organization to ensure
|
||||
we're giving the users a smooth experience & to make sure when the data hits the Slide, it's in the right spot.
|
||||
|
||||
First things first - let's only run this if we actually have items in the `menuOptions` array! No need to give the user an
|
||||
affirmative message when there's no data to process. If there are no dates available, we call the else of this if, which is
|
||||
the 3rd to last line in this section.
|
||||
|
||||
{{< box tip >}}
|
||||
A `ui.alert` is just a modal that offers no interaction to the user.
|
||||
{{< /box >}}
|
||||
|
||||
The next few lines are for processing that array of dates we grabbed from the sheet to making them presentable to the user.
|
||||
Without the `stringList` and `formattedDates` variables, Google's modal just shows a wall of text of dates which makes it
|
||||
difficult to parse for the user. By using `replaceAll()` we remove the comma and insert a new line after every portion of the
|
||||
string that contains 2024 and a comma.
|
||||
|
||||
So now, instead of the modal showing:
|
||||
|
||||
```
|
||||
February 2, 2024,February 3, 2024,February 4,2024... etc
|
||||
```
|
||||
|
||||
We now see the much easier to read:
|
||||
|
||||
```
|
||||
February 2, 2024
|
||||
February 3, 2024
|
||||
February 4, 2024
|
||||
```
|
||||
|
||||
After that's formatted nicely, we can now have the prompt show for the user which asks them what date they would like to
|
||||
process into a Slide presentation. Since we haven't visited any ui options since the top of this tutorial, this is the modal
|
||||
that will show up after a user clicks "Create Presentation" in the top level menu in Google Sheets.
|
||||
|
||||
Ok, so now moving onto line 5, we need to get the text for what the user enters into the modal box. If they don't enter
|
||||
anything, we should let them know that nothing will be done. That message comes from the second to last `else` statement in
|
||||
this section. Instead, if they enter some data let's parse it!
|
||||
|
||||
{{< box warning >}}
|
||||
If you want to test yourself by adding in some new code try this exercise:
|
||||
|
||||
_How can we ensure that the user entered a date in the format we expect? Tip: It is something reusable from another portion
|
||||
of the script._
|
||||
{{< /box >}}
|
||||
|
||||
For lines 9 and 10, we're now looping back through the same set of rows that we did in section 2. The reason we're
|
||||
re-entering this for loop is because we've already exited the loop. So we have to get the values again. Once we have them,
|
||||
let's match the date that the user entered to the correct row. We're able to do that by grabbing the index and adding 2 to
|
||||
it.
|
||||
|
||||
{{< box info >}}
|
||||
I haven't fully looked into _why_ we need to add 2 to get the correct row number. As we loop through the dates, the array
|
||||
length (`dates.length`) is all the available rows in the sheet. So you would think that `y` is the row that the value is on;
|
||||
but it's not.
|
||||
|
||||
My only guess so far has to do with the frozen row at the top that I have in my Sheet. So the frozen row is not used, and row
|
||||
2 is now index 0. Which means index 41 is technically row 43, and why we have to add 2 to the value to get the _visually
|
||||
correct_ row number. We need this number to be correct so that we can get the rest of the values int he sheet.
|
||||
{{< /box >}}
|
||||
|
||||
Now that we have the correct row number, we're going to shift from getting values from each row and getting them from each
|
||||
column. By calling `var presData = sheet.getRange(presRow,3,1,4).getValues();` we are grabbing an array. `getRange` is
|
||||
looking for the following values, in the following order:
|
||||
|
||||
* Row number (which we got from the `y+2`)
|
||||
* Column Number (which is Column C in this case)
|
||||
* Number of Rows (we only need this row)
|
||||
* Number of Columns (we know how many more columns we need).
|
||||
|
||||
Next up, we're jumping into another for loop, now for all the data we just pulled from the column. This part is just parsing
|
||||
each column's data into it's own variable for easier management when we create the presentation. We've also grabbed the
|
||||
additional notes column, but we're not using it right now. This column's data may be valuable by adding it to the speaker
|
||||
notes of the Slide Presentation. Check out these two resources:
|
||||
|
||||
* [Working with Speaker Notes](https://developers.google.com/slides/api/guides/notes)
|
||||
* [Notes Properties API](https://developers.google.com/slides/api/reference/rest/v1/presentations.pages#Page.NotesProperties)
|
||||
|
||||
Once that's done, call the next function: `createPresentation()`! We're almost done.
|
||||
|
||||
## createPresentation Function
|
||||
|
||||
```js {linenos=true}
|
||||
function createPresentation(dateChosen, topic1, topic2, topic3, additionalNotes) {
|
||||
const slides = SlidesApp.openById('ENTER_ID_OF_SLIDE_PRESENTATION');
|
||||
let slide = slides.getSlides()[0];
|
||||
let elements = slide.getPageElements();
|
||||
for (let i = 0; i < elements.length; i++) {
|
||||
var titles = elements[i].getTitle()
|
||||
if (titles == "Date") {
|
||||
var dateText = elements[i].asShape().getText();
|
||||
dateText.clear();
|
||||
dateText.setText(dateChosen);
|
||||
} if (titles == "Topic 1") {
|
||||
const topic1Text = elements[i].asShape().getText();
|
||||
topic1Text.clear();
|
||||
topic1Text.setText(topic1);
|
||||
} if (titles == "Topic 2") {
|
||||
const topic2Text = elements[i].asShape().getText();
|
||||
topic2Text.clear();
|
||||
topic2Text.setText(topic2);
|
||||
} if (titles == "Topic 3") {
|
||||
const topic3Text = elements[i].asShape().getText();
|
||||
topic3Text.clear();
|
||||
topic3Text.setText(topic3);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
This function may be the shortest to explain. All we are doing is taking those variables from the previous function (the
|
||||
variables that contain each topic's text value) and doing the following:
|
||||
|
||||
1. Opening the Presentation (line 2)
|
||||
2. Getting the first slide (line 3)
|
||||
3. Grabbing all the [page elements](https://developers.google.com/apps-script/reference/slides/slides/page-element) (line 4)
|
||||
4. Looping through the page elements & grabbing all the titles that we set during [setup]({{<relref "#slides-setup">}}) (line
|
||||
5 & 6)
|
||||
5. Then we compare the title of the Slide text box to the expected string (Topic 1-3), and if we get a match, retrieve the text
|
||||
of the box as a variable, clear the text, and input our new text with the variables we created in the previous function.
|
||||
|
||||
And just like that, you should have all your boxes filled in with the data you input to the Google Sheet!
|
||||
|
||||
{{< box tip >}}
|
||||
**Bonus exercises:**
|
||||
|
||||
* Instead of overwriting this presentation each time, how can you add a new slide with the same text boxes? How would you
|
||||
find that slide since we're right now grabbing the first slide?
|
||||
* How can you change the name of this Slide Presentation to the date from the Sheet?
|
||||
* Could you automatically export this Slide as a PDF and save it to a user's Drive?
|
||||
{{< /box >}}
|
||||
|
||||
{{< details "## Full Script:" >}}
|
||||
|
||||
```js {linenos=true}
|
||||
function onOpen(e) {
|
||||
SpreadsheetApp.getUi()
|
||||
.createMenu('Create Presentation')
|
||||
.addItem('Create Presentation', 'askDate' )
|
||||
.addToUi();
|
||||
}
|
||||
|
||||
function askDate() {
|
||||
var ui = SpreadsheetApp.getUi();
|
||||
var sheet = SpreadsheetApp.getActiveSheet();
|
||||
var lastRow = sheet.getLastRow();
|
||||
var dates = sheet.getRange(2,2,lastRow,1).getDisplayValues();
|
||||
|
||||
// get today's epoch time for easier calculations
|
||||
const epochDate = new Date().getTime()
|
||||
|
||||
menuOptions = []
|
||||
const re = new RegExp("^[A-Za-z]{3,15}\\s\\d{1,2},\\s\\d{2,4}")
|
||||
for (let i = 0; i < dates.length; i++ ) {
|
||||
var date = dates[i][0];
|
||||
var epochSheetDate = new Date(date).getTime();
|
||||
if (date != "") {
|
||||
var dateMatch = re.test(date)
|
||||
if (dateMatch == true) {
|
||||
if (epochDate < epochSheetDate) {
|
||||
menuOptions.push(date)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (menuOptions.length > 0) {
|
||||
let stringList = menuOptions.toString();
|
||||
var stringlist = stringList.replaceAll("2024,", "2024 \n ");
|
||||
var response = ui.prompt('Which date would you like to create a presentation for? Please copy and paste the date exactly as you see it in the options below. Options: \n \n'+stringlist);
|
||||
if (response.getSelectedButton() == ui.Button.OK) {
|
||||
var dateChosen = response.getResponseText();
|
||||
if (dateChosen != "") {
|
||||
ui.alert("Woohoo! Let's make a presentation!")
|
||||
for(var y = 0; y<dates.length;y++){
|
||||
if (dates[y][0] == dateChosen) {
|
||||
// Logger.log("Row:"+(y+2));
|
||||
var presRow = y+2
|
||||
var presData = sheet.getRange(presRow,3,1,4).getValues();
|
||||
for (presCopy of presData) {
|
||||
var topic1 = presCopy[0];
|
||||
var topic2 = presCopy[1];
|
||||
var topic3 = presCopy[2];
|
||||
var additional_notes = presCopy[3];
|
||||
}
|
||||
createPresentation(dateChosen, topic1, topic2, topic3, additionalNotes)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ui.alert("Ouch. Looks like you entered something incorrectly (i.e. you entered nothing). Try again.")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ui.alert("No Dates Available. Check Spreadsheet")
|
||||
}
|
||||
}
|
||||
|
||||
function createPresentation(dateChosen, topic1, topic2, topic3, additionalNotes) {
|
||||
const slides = SlidesApp.openById('ENTER_ID_OF_SLIDE_PRESENTATION');
|
||||
let slide = slides.getSlides()[0];
|
||||
let elements = slide.getPageElements();
|
||||
for (let i = 0; i < elements.length; i++) {
|
||||
var titles = elements[i].getTitle()
|
||||
if (titles == "Date") {
|
||||
var dateText = elements[i].asShape().getText();
|
||||
dateText.clear();
|
||||
dateText.setText(dateChosen);
|
||||
} if (titles == "topic1") {
|
||||
const topic1Text = elements[i].asShape().getText();
|
||||
topic1Text.clear();
|
||||
topic1Text.setText(topic1);
|
||||
} if (titles == "topic2") {
|
||||
const topic2Text = elements[i].asShape().getText();
|
||||
topic2Text.clear();
|
||||
topic2Text.setText(topic2);
|
||||
} if (titles == "topic3") {
|
||||
const topic3Text = elements[i].asShape().getText();
|
||||
topic3Text.clear();
|
||||
topic3Text.setText(topic3);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
{{< /details >}}
|
||||
|
||||
<style>
|
||||
.box-shortcode {
|
||||
color: #e8e8e8;
|
||||
border: none;
|
||||
}
|
||||
.post-content img {
|
||||
margin: auto
|
||||
}
|
||||
details {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
</style>
|
||||
BIN
content/posts/img/google_sheets_for_scripts_example.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
content/posts/img/google_sheets_menu_example.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
content/posts/img/google_sheets_menu_example_2.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
content/posts/img/google_slides_for_scripts_example.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
@ -4,7 +4,9 @@ relativeURLs: true
|
||||
languageCode: 'en-us'
|
||||
title: "Norm-working Packets \U0001F4BE"
|
||||
subtitle: 'A semi-technical blog & series of experiences working in tech and my homelab'
|
||||
theme: "PaperMod"
|
||||
theme:
|
||||
- hugo-shortcode-roneo-collection
|
||||
- PaperMod
|
||||
themesDir: './themes/'
|
||||
paginate: 7
|
||||
|
||||
@ -19,6 +21,10 @@ taxonomies:
|
||||
|
||||
# Allow html to be rendered in Markdown files
|
||||
markup:
|
||||
highlight:
|
||||
lineNoStart: 1
|
||||
lineNos: true
|
||||
style: vim
|
||||
goldmark:
|
||||
renderer:
|
||||
unsafe: true
|
||||
@ -39,6 +45,7 @@ params:
|
||||
defaultTheme: dark
|
||||
ShowShareButtons: true
|
||||
ShowBreadCrumbs: true
|
||||
ShowCodeCopyButtons: true
|
||||
assets:
|
||||
favicon: "favicon.ico"
|
||||
favicon32x32: "rsmsncircles.ico"
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="./404.html">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="./favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="./rsmsncircles.ico">
|
||||
@ -18,8 +18,7 @@
|
||||
<link rel="mask-icon" href="./safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="./404.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -72,6 +71,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -88,7 +89,7 @@
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="./categories.html">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="./favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="./rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="./categories/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="./categories.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -97,7 +98,7 @@
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -6,15 +6,14 @@
|
||||
<description>Recent content in Categories on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 04 Oct 2023 10:35:23 -0400</lastBuildDate><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Wed, 04 Oct 2023 10:35:23 -0400</lastBuildDate>
|
||||
<atom:link href="/categories/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Tutorial</title>
|
||||
<link>/categories/tutorial.html</link>
|
||||
<pubDate>Wed, 04 Oct 2023 10:35:23 -0400</pubDate>
|
||||
|
||||
<guid>/categories/tutorial.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../categories/tutorial.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../categories/tutorial/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../categories/tutorial.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,7 +86,7 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../categories.html">Categories</a></div>
|
||||
<h1>
|
||||
Tutorial
|
||||
</h1>
|
||||
@ -93,7 +94,7 @@
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>BirdNET-PI & HomeAssistant: Part 2
|
||||
<h2 class="entry-hint-parent">BirdNET-PI & HomeAssistant: Part 2
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -106,7 +107,7 @@ The best way to do this is by just type e from any screen in the HomeAssistant U
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -6,15 +6,14 @@
|
||||
<description>Recent content in Tutorial on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 04 Oct 2023 10:35:23 -0400</lastBuildDate><atom:link href="/categories/tutorial/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Wed, 04 Oct 2023 10:35:23 -0400</lastBuildDate>
|
||||
<atom:link href="/categories/tutorial/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>BirdNET-PI & HomeAssistant: Part 2</title>
|
||||
<link>/posts/birdnet_homeassistant_part2.html</link>
|
||||
<pubDate>Wed, 04 Oct 2023 10:35:23 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant_part2.html</guid>
|
||||
<description>A Follow up from the previous post, this tutorial takes all the sensors we created and loads them into a beautiful dashboard!</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head>
|
||||
<meta name="generator" content="Hugo 0.120.4"><meta charset="utf-8">
|
||||
<meta name="generator" content="Hugo 0.123.3"><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
@ -11,7 +11,7 @@
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="./">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="./favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="./rsmsncircles.ico">
|
||||
@ -20,8 +20,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="./index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="./">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -87,6 +86,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -107,8 +108,9 @@
|
||||
Welcome to my running collection of tips, tricks, and scripts about self-hosting and DIY. Outwardly, this is my “living resume” to showcase how I leverage my technical abilities in non-technical roles. Inwardly, this is something I can refer back to for items that don’t quite belong in my internal documentation, but are more in depth than a Mastodon post.
|
||||
</div>
|
||||
<footer class="entry-footer">
|
||||
<div class="social-icons">
|
||||
<a href="https://fosstodon.org/@notnorm" target="_blank" rel="noopener noreferrer me" title="Mastodon">
|
||||
<div class="social-icons" >
|
||||
<a href="https://fosstodon.org/@notnorm" target="_blank" rel="noopener noreferrer me"
|
||||
title="Mastodon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path
|
||||
@ -119,7 +121,8 @@
|
||||
fill="currentColor" stroke="none" />
|
||||
</svg>
|
||||
</a>
|
||||
<a href="https://github.com/Normanras" target="_blank" rel="noopener noreferrer me" title="Github">
|
||||
<a href="https://github.com/Normanras" target="_blank" rel="noopener noreferrer me"
|
||||
title="Github">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round">
|
||||
<path
|
||||
@ -134,7 +137,7 @@
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>QuickHits: OpenResty and Package Updates
|
||||
<h2 class="entry-hint-parent">QuickHits: OpenResty and Package Updates
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -147,7 +150,7 @@ The last two times I’ve run apt update && apt upgrade -y on my web ser
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Neovim Subtitute Magic
|
||||
<h2 class="entry-hint-parent">Neovim Subtitute Magic
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -160,7 +163,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Mini Neovim
|
||||
<h2 class="entry-hint-parent">Mini Neovim
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -172,7 +175,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>ESP8266 Medicine Indicator Light
|
||||
<h2 class="entry-hint-parent">ESP8266 Medicine Indicator Light
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -184,7 +187,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>BirdNET-PI & HomeAssistant: Part 2
|
||||
<h2 class="entry-hint-parent">BirdNET-PI & HomeAssistant: Part 2
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -197,7 +200,7 @@ The best way to do this is by just type e from any screen in the HomeAssistant U
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
<h2 class="entry-hint-parent">Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -211,7 +214,7 @@ What you will need BirdNET-Pi HomeAssistant AppDaemon MQTT Broker (I use Mosquit
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
<h2 class="entry-hint-parent">Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -230,7 +233,7 @@ I really enjoy self-hosting services that I use everyday. One of those includes
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -6,96 +6,77 @@
|
||||
<description>Recent content on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate>
|
||||
<atom:link href="/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>QuickHits: OpenResty and Package Updates</title>
|
||||
<link>/posts/openresty_and_package_update_issues.html</link>
|
||||
<pubDate>Mon, 04 Dec 2023 10:32:58 -0500</pubDate>
|
||||
|
||||
<guid>/posts/openresty_and_package_update_issues.html</guid>
|
||||
<description>Every time my OpenResty package tries to update, I can&#39;t restart the service with weird errors that don&#39;t point exactly to the problem. Here&#39;s how I&#39;ve learned to fix it.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Neovim Subtitute Magic</title>
|
||||
<link>/posts/find_and_replace_in_neovim.html</link>
|
||||
<pubDate>Wed, 15 Nov 2023 08:08:49 -0500</pubDate>
|
||||
|
||||
<guid>/posts/find_and_replace_in_neovim.html</guid>
|
||||
<description>I was able to speed up some of my workflows by learning how to search and replace specifics in Neovim!</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Mini Neovim</title>
|
||||
<link>/posts/mini_neovim.html</link>
|
||||
<pubDate>Fri, 20 Oct 2023 18:38:13 -0400</pubDate>
|
||||
|
||||
<guid>/posts/mini_neovim.html</guid>
|
||||
<description>Neovim is already super efficient and lightweight, but sometimes I need a barebones config for my servers and remote, miniature development environments.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>ESP8266 Medicine Indicator Light</title>
|
||||
<link>/posts/medicine_indicator_light.html</link>
|
||||
<pubDate>Mon, 16 Oct 2023 11:34:14 -0400</pubDate>
|
||||
|
||||
<guid>/posts/medicine_indicator_light.html</guid>
|
||||
<description>Learn how to make an ESP8266 and a few simple components into an indicator light.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>BirdNET-PI & HomeAssistant: Part 2</title>
|
||||
<link>/posts/birdnet_homeassistant_part2.html</link>
|
||||
<pubDate>Wed, 04 Oct 2023 10:35:23 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant_part2.html</guid>
|
||||
<description>A Follow up from the previous post, this tutorial takes all the sensors we created and loads them into a beautiful dashboard!</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</title>
|
||||
<link>/posts/birdnet_homeassistant.html</link>
|
||||
<pubDate>Sat, 30 Sep 2023 11:21:55 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant.html</guid>
|
||||
<description>Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Pushing a Single Local Git Repo to Multiple Remote Repos</title>
|
||||
<link>/posts/multiple_git_remotes.html</link>
|
||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
||||
|
||||
<guid>/posts/multiple_git_remotes.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Trouble Hosting Hugo with Nginx</title>
|
||||
<link>/posts/hosting_hugo_troubles.html</link>
|
||||
<pubDate>Wed, 20 Sep 2023 11:33:22 -0400</pubDate>
|
||||
|
||||
<guid>/posts/hosting_hugo_troubles.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Tutorial: Move from NginxProxyManager to Nginx</title>
|
||||
<link>/posts/npm_to_nginx_tutorial.html</link>
|
||||
<pubDate>Sat, 05 Aug 2023 15:23:51 -0500</pubDate>
|
||||
|
||||
<guid>/posts/npm_to_nginx_tutorial.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>My First Merged PR!</title>
|
||||
<link>/posts/whiptail-first-merged-pr.html</link>
|
||||
<pubDate>Thu, 01 Sep 2022 13:25:02 -0400</pubDate>
|
||||
|
||||
<guid>/posts/whiptail-first-merged-pr.html</guid>
|
||||
<description>Child like joy of having my first merged PR! I recently was using Whiptail library and fixed a bug.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head>
|
||||
<meta name="generator" content="Hugo 0.120.4"><meta charset="utf-8">
|
||||
<meta name="generator" content="Hugo 0.123.3"><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
@ -11,7 +11,7 @@
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +20,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -87,6 +86,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -104,7 +105,7 @@
|
||||
<figure class="entry-cover"><img loading="lazy" src="../hugo-nginx-trouble.png" alt="Hugo Logo, Nginx Logo, Tired Face emoji">
|
||||
</figure>
|
||||
<header class="entry-header">
|
||||
<h2>Trouble Hosting Hugo with Nginx
|
||||
<h2 class="entry-hint-parent">Trouble Hosting Hugo with Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -116,7 +117,7 @@
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Tutorial: Move from NginxProxyManager to Nginx
|
||||
<h2 class="entry-hint-parent">Tutorial: Move from NginxProxyManager to Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -129,7 +130,7 @@ To give clear instructions to help users migrate from using Nginx Proxy Manager
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>My First Merged PR!
|
||||
<h2 class="entry-hint-parent">My First Merged PR!
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -148,7 +149,7 @@ To give clear instructions to help users migrate from using Nginx Proxy Manager
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
207
public/page/3.html
Normal file
@ -0,0 +1,207 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head>
|
||||
<meta name="generator" content="Hugo 0.123.3"><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="Blog, Website, Resume, Interests, Portfolio, Selfhosted, DIY">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="//localhost:1313/">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Norm-working Packets 💾" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="//localhost:1313/" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Norm-working Packets 💾"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "Norm-working Packets 💾",
|
||||
"url": "//localhost:1313/",
|
||||
"description": "A semi-technical blog \u0026amp; series of experiences working in tech and my homelab",
|
||||
"thumbnailUrl": "//localhost:1313/favicon.ico",
|
||||
"sameAs": [
|
||||
"https://fosstodon.org/@notnorm", "https://github.com/Normanras"
|
||||
]
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="list dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Tutorial: Move from NginxProxyManager to Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Goal A Tutorial Repo for migrating your Nginx Proxy Manager proxy setup to Nginx. I wrote this originally for this reddit post and to post this my Github profile. Thought my website would also be a good place to share it for any passers-by.
|
||||
To give clear instructions to help users migrate from using Nginx Proxy Manager (NPM) to standard Nginx. This tutorial is not exhaustive and there are many other implementations of this transition....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2023-08-05 15:23:51 -0500 -0500'>August 5, 2023</span> · 8 min · 1635 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to Tutorial: Move from NginxProxyManager to Nginx" href="//localhost:1313/posts/npm_to_nginx_tutorial.html"></a>
|
||||
</article>
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">My First Merged PR!
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Admittedly, I feel a bit like a child sharing something like this, as there are so many devs that pull and merge requests from contributors on a regular basis. However, while I’ve contributed to documentation and/or tutorials and other non-coding portions of repositories, I feel a tiny bit proud that this was the first instance where I was using a library, found a bug, created an issue, cloned the repo to my local machine, found and fixed the code, and opened a pull request....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2022-09-01 13:25:02 -0400 EDT'>September 1, 2022</span> · 2 min · 328 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to My First Merged PR!" href="//localhost:1313/posts/whiptail-first-merged-pr.html"></a>
|
||||
</article>
|
||||
<footer class="page-footer">
|
||||
<nav class="pagination">
|
||||
<a class="prev" href="//localhost:1313/page/2.html">
|
||||
« Prev
|
||||
</a>
|
||||
</nav>
|
||||
</footer>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -10,7 +10,7 @@
|
||||
<meta name="description" content="Posts - Norm-working Packets 💾">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="./posts.html">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="./favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="./rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="./posts/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="./posts.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -88,6 +87,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -108,7 +109,7 @@
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>QuickHits: OpenResty and Package Updates
|
||||
<h2 class="entry-hint-parent">QuickHits: OpenResty and Package Updates
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -121,7 +122,7 @@ The last two times I’ve run apt update && apt upgrade -y on my web ser
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Neovim Subtitute Magic
|
||||
<h2 class="entry-hint-parent">Neovim Subtitute Magic
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -134,7 +135,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Mini Neovim
|
||||
<h2 class="entry-hint-parent">Mini Neovim
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -146,7 +147,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>ESP8266 Medicine Indicator Light
|
||||
<h2 class="entry-hint-parent">ESP8266 Medicine Indicator Light
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -158,7 +159,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>BirdNET-PI & HomeAssistant: Part 2
|
||||
<h2 class="entry-hint-parent">BirdNET-PI & HomeAssistant: Part 2
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -171,7 +172,7 @@ The best way to do this is by just type e from any screen in the HomeAssistant U
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
<h2 class="entry-hint-parent">Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -185,7 +186,7 @@ What you will need BirdNET-Pi HomeAssistant AppDaemon MQTT Broker (I use Mosquit
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
<h2 class="entry-hint-parent">Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -204,7 +205,7 @@ I really enjoy self-hosting services that I use everyday. One of those includes
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/birdnet_homeassistant.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/birdnet_homeassistant.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -577,9 +582,9 @@ look at Home Assistant, see what these sensors look like, and create a rudimenta
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/homeassistant.html">homeassistant</a></li>
|
||||
<li><a href="../tags/python.html">python</a></li>
|
||||
<li><a href="../tags/diy.html">diy</a></li>
|
||||
<li><a href="../tags/homeassistant.html">Homeassistant</a></li>
|
||||
<li><a href="../tags/python.html">Python</a></li>
|
||||
<li><a href="../tags/diy.html">Diy</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/birdnet_homeassistant_part2.html">
|
||||
@ -595,65 +600,79 @@ look at Home Assistant, see what these sensors look like, and create a rudimenta
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on x"
|
||||
href="https://x.com/intent/tweet/?text=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&url=%2fposts%2fbirdnet_homeassistant.html&hashtags=homeassistant%2cpython%2cdiy">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fbirdnet_homeassistant.html&title=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&summary=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&source=%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fbirdnet_homeassistant.html&title=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201%20-%20%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on telegram"
|
||||
href="https://telegram.me/share/url?text=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&url=%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&u=%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on x"
|
||||
href="https://x.com/intent/tweet/?text=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&url=%2fposts%2fbirdnet_homeassistant.html&hashtags=homeassistant%2cpython%2cdiy">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fbirdnet_homeassistant.html&title=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&summary=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&source=%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fbirdnet_homeassistant.html&title=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201%20-%20%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on telegram"
|
||||
href="https://telegram.me/share/url?text=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&url=%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Creating a BirdNetPi Dashboard in HomeAssistant - Part 1 on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Creating%20a%20BirdNetPi%20Dashboard%20in%20HomeAssistant%20-%20Part%201&u=%2fposts%2fbirdnet_homeassistant.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -720,6 +739,53 @@ look at Home Assistant, see what these sensors look like, and create a rudimenta
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="A Follow up from the previous post, this tutorial takes all the sensors we created and loads them into a beautiful dashboard!">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/birdnet_homeassistant_part2.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/birdnet_homeassistant_part2.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
BirdNET-PI & HomeAssistant: Part 2
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -808,9 +813,9 @@ anywhere!</p>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/homeassistant.html">homeassistant</a></li>
|
||||
<li><a href="../tags/diy.html">diy</a></li>
|
||||
<li><a href="../tags/selfhosted.html">selfhosted</a></li>
|
||||
<li><a href="../tags/homeassistant.html">Homeassistant</a></li>
|
||||
<li><a href="../tags/diy.html">Diy</a></li>
|
||||
<li><a href="../tags/selfhosted.html">Selfhosted</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/medicine_indicator_light.html">
|
||||
@ -826,65 +831,79 @@ anywhere!</p>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on x"
|
||||
href="https://x.com/intent/tweet/?text=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&url=%2fposts%2fbirdnet_homeassistant_part2.html&hashtags=homeassistant%2cdiy%2cselfhosted">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fbirdnet_homeassistant_part2.html&title=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&summary=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&source=%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fbirdnet_homeassistant_part2.html&title=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202%20-%20%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on telegram"
|
||||
href="https://telegram.me/share/url?text=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&url=%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&u=%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on x"
|
||||
href="https://x.com/intent/tweet/?text=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&url=%2fposts%2fbirdnet_homeassistant_part2.html&hashtags=homeassistant%2cdiy%2cselfhosted">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fbirdnet_homeassistant_part2.html&title=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&summary=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&source=%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fbirdnet_homeassistant_part2.html&title=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202%20-%20%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on telegram"
|
||||
href="https://telegram.me/share/url?text=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&url=%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share BirdNET-PI & HomeAssistant: Part 2 on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=BirdNET-PI%20%26%20HomeAssistant%3a%20Part%202&u=%2fposts%2fbirdnet_homeassistant_part2.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -951,6 +970,53 @@ anywhere!</p>
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="I was able to speed up some of my workflows by learning how to search and replace specifics in Neovim!">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/find_and_replace_in_neovim.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/find_and_replace_in_neovim.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Neovim Subtitute Magic
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -265,8 +270,8 @@ already read through anything in <a href="https://neovim.io/doc/user/">Neovim&rs
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/snippet.html">snippet</a></li>
|
||||
<li><a href="../tags/neovim.html">neovim</a></li>
|
||||
<li><a href="../tags/snippet.html">Snippet</a></li>
|
||||
<li><a href="../tags/neovim.html">Neovim</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/openresty_and_package_update_issues.html">
|
||||
@ -282,65 +287,79 @@ already read through anything in <a href="https://neovim.io/doc/user/">Neovim&rs
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on x"
|
||||
href="https://x.com/intent/tweet/?text=Neovim%20Subtitute%20Magic&url=%2fposts%2ffind_and_replace_in_neovim.html&hashtags=snippet%2cneovim">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2ffind_and_replace_in_neovim.html&title=Neovim%20Subtitute%20Magic&summary=Neovim%20Subtitute%20Magic&source=%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2ffind_and_replace_in_neovim.html&title=Neovim%20Subtitute%20Magic">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Neovim%20Subtitute%20Magic%20-%20%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on telegram"
|
||||
href="https://telegram.me/share/url?text=Neovim%20Subtitute%20Magic&url=%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Neovim%20Subtitute%20Magic&u=%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on x"
|
||||
href="https://x.com/intent/tweet/?text=Neovim%20Subtitute%20Magic&url=%2fposts%2ffind_and_replace_in_neovim.html&hashtags=snippet%2cneovim">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2ffind_and_replace_in_neovim.html&title=Neovim%20Subtitute%20Magic&summary=Neovim%20Subtitute%20Magic&source=%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2ffind_and_replace_in_neovim.html&title=Neovim%20Subtitute%20Magic">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Neovim%20Subtitute%20Magic%20-%20%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on telegram"
|
||||
href="https://telegram.me/share/url?text=Neovim%20Subtitute%20Magic&url=%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim Subtitute Magic on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Neovim%20Subtitute%20Magic&u=%2fposts%2ffind_and_replace_in_neovim.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -407,6 +426,53 @@ already read through anything in <a href="https://neovim.io/doc/user/">Neovim&rs
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
1135
public/posts/google_scripts_sheets_to_slides.html
Normal file
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="Learn one way to push your git changes to multiple remote repositories.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/hosting_hugo_troubles.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/hosting_hugo_troubles.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Trouble Hosting Hugo with Nginx
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -152,7 +157,7 @@
|
||||
|
||||
</div>
|
||||
</header>
|
||||
<figure class="entry-cover"><img loading="lazy" src="../hugo-nginx-trouble.png" alt="Hugo Logo, Nginx Logo, Tired Face emoji">
|
||||
<figure class="entry-cover"><img loading="eager" src="../hugo-nginx-trouble.png" alt="Hugo Logo, Nginx Logo, Tired Face emoji">
|
||||
<p>Hosting Hugo on a self-hosted nginx server brought some troubles!</p>
|
||||
</figure><div class="toc">
|
||||
<details >
|
||||
@ -286,9 +291,9 @@ server {
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/git.html">git</a></li>
|
||||
<li><a href="../tags/backups.html">backups</a></li>
|
||||
<li><a href="../tags/commandline.html">commandline</a></li>
|
||||
<li><a href="../tags/git.html">Git</a></li>
|
||||
<li><a href="../tags/backups.html">Backups</a></li>
|
||||
<li><a href="../tags/commandline.html">Commandline</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/multiple_git_remotes.html">
|
||||
@ -304,65 +309,79 @@ server {
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on x"
|
||||
href="https://x.com/intent/tweet/?text=Trouble%20Hosting%20Hugo%20with%20Nginx&url=%2fposts%2fhosting_hugo_troubles.html&hashtags=git%2cbackups%2ccommandline">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fhosting_hugo_troubles.html&title=Trouble%20Hosting%20Hugo%20with%20Nginx&summary=Trouble%20Hosting%20Hugo%20with%20Nginx&source=%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fhosting_hugo_troubles.html&title=Trouble%20Hosting%20Hugo%20with%20Nginx">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Trouble%20Hosting%20Hugo%20with%20Nginx%20-%20%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on telegram"
|
||||
href="https://telegram.me/share/url?text=Trouble%20Hosting%20Hugo%20with%20Nginx&url=%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Trouble%20Hosting%20Hugo%20with%20Nginx&u=%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on x"
|
||||
href="https://x.com/intent/tweet/?text=Trouble%20Hosting%20Hugo%20with%20Nginx&url=%2fposts%2fhosting_hugo_troubles.html&hashtags=git%2cbackups%2ccommandline">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fhosting_hugo_troubles.html&title=Trouble%20Hosting%20Hugo%20with%20Nginx&summary=Trouble%20Hosting%20Hugo%20with%20Nginx&source=%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fhosting_hugo_troubles.html&title=Trouble%20Hosting%20Hugo%20with%20Nginx">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Trouble%20Hosting%20Hugo%20with%20Nginx%20-%20%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on telegram"
|
||||
href="https://telegram.me/share/url?text=Trouble%20Hosting%20Hugo%20with%20Nginx&url=%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Trouble Hosting Hugo with Nginx on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Trouble%20Hosting%20Hugo%20with%20Nginx&u=%2fposts%2fhosting_hugo_troubles.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -429,6 +448,53 @@ server {
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
BIN
public/posts/img/google_sheets_for_scripts_example.png
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
public/posts/img/google_sheets_menu_example.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
public/posts/img/google_sheets_menu_example_2.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
public/posts/img/google_slides_for_scripts_example.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
@ -6,96 +6,77 @@
|
||||
<description>Recent content in Posts on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate>
|
||||
<atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>QuickHits: OpenResty and Package Updates</title>
|
||||
<link>/posts/openresty_and_package_update_issues.html</link>
|
||||
<pubDate>Mon, 04 Dec 2023 10:32:58 -0500</pubDate>
|
||||
|
||||
<guid>/posts/openresty_and_package_update_issues.html</guid>
|
||||
<description>Every time my OpenResty package tries to update, I can&#39;t restart the service with weird errors that don&#39;t point exactly to the problem. Here&#39;s how I&#39;ve learned to fix it.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Neovim Subtitute Magic</title>
|
||||
<link>/posts/find_and_replace_in_neovim.html</link>
|
||||
<pubDate>Wed, 15 Nov 2023 08:08:49 -0500</pubDate>
|
||||
|
||||
<guid>/posts/find_and_replace_in_neovim.html</guid>
|
||||
<description>I was able to speed up some of my workflows by learning how to search and replace specifics in Neovim!</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Mini Neovim</title>
|
||||
<link>/posts/mini_neovim.html</link>
|
||||
<pubDate>Fri, 20 Oct 2023 18:38:13 -0400</pubDate>
|
||||
|
||||
<guid>/posts/mini_neovim.html</guid>
|
||||
<description>Neovim is already super efficient and lightweight, but sometimes I need a barebones config for my servers and remote, miniature development environments.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>ESP8266 Medicine Indicator Light</title>
|
||||
<link>/posts/medicine_indicator_light.html</link>
|
||||
<pubDate>Mon, 16 Oct 2023 11:34:14 -0400</pubDate>
|
||||
|
||||
<guid>/posts/medicine_indicator_light.html</guid>
|
||||
<description>Learn how to make an ESP8266 and a few simple components into an indicator light.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>BirdNET-PI & HomeAssistant: Part 2</title>
|
||||
<link>/posts/birdnet_homeassistant_part2.html</link>
|
||||
<pubDate>Wed, 04 Oct 2023 10:35:23 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant_part2.html</guid>
|
||||
<description>A Follow up from the previous post, this tutorial takes all the sensors we created and loads them into a beautiful dashboard!</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</title>
|
||||
<link>/posts/birdnet_homeassistant.html</link>
|
||||
<pubDate>Sat, 30 Sep 2023 11:21:55 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant.html</guid>
|
||||
<description>Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Pushing a Single Local Git Repo to Multiple Remote Repos</title>
|
||||
<link>/posts/multiple_git_remotes.html</link>
|
||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
||||
|
||||
<guid>/posts/multiple_git_remotes.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Trouble Hosting Hugo with Nginx</title>
|
||||
<link>/posts/hosting_hugo_troubles.html</link>
|
||||
<pubDate>Wed, 20 Sep 2023 11:33:22 -0400</pubDate>
|
||||
|
||||
<guid>/posts/hosting_hugo_troubles.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Tutorial: Move from NginxProxyManager to Nginx</title>
|
||||
<link>/posts/npm_to_nginx_tutorial.html</link>
|
||||
<pubDate>Sat, 05 Aug 2023 15:23:51 -0500</pubDate>
|
||||
|
||||
<guid>/posts/npm_to_nginx_tutorial.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>My First Merged PR!</title>
|
||||
<link>/posts/whiptail-first-merged-pr.html</link>
|
||||
<pubDate>Thu, 01 Sep 2022 13:25:02 -0400</pubDate>
|
||||
|
||||
<guid>/posts/whiptail-first-merged-pr.html</guid>
|
||||
<description>Child like joy of having my first merged PR! I recently was using Whiptail library and fixed a bug.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="Learn how to make an ESP8266 and a few simple components into an indicator light.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/medicine_indicator_light.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/medicine_indicator_light.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
ESP8266 Medicine Indicator Light
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -468,9 +473,9 @@ img {
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/diy.html">diy</a></li>
|
||||
<li><a href="../tags/tutorial.html">tutorial</a></li>
|
||||
<li><a href="../tags/esp.html">esp</a></li>
|
||||
<li><a href="../tags/diy.html">Diy</a></li>
|
||||
<li><a href="../tags/tutorial.html">Tutorial</a></li>
|
||||
<li><a href="../tags/esp.html">Esp</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/mini_neovim.html">
|
||||
@ -486,65 +491,79 @@ img {
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on x"
|
||||
href="https://x.com/intent/tweet/?text=ESP8266%20Medicine%20Indicator%20Light&url=%2fposts%2fmedicine_indicator_light.html&hashtags=diy%2ctutorial%2cesp">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fmedicine_indicator_light.html&title=ESP8266%20Medicine%20Indicator%20Light&summary=ESP8266%20Medicine%20Indicator%20Light&source=%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fmedicine_indicator_light.html&title=ESP8266%20Medicine%20Indicator%20Light">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=ESP8266%20Medicine%20Indicator%20Light%20-%20%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on telegram"
|
||||
href="https://telegram.me/share/url?text=ESP8266%20Medicine%20Indicator%20Light&url=%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=ESP8266%20Medicine%20Indicator%20Light&u=%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on x"
|
||||
href="https://x.com/intent/tweet/?text=ESP8266%20Medicine%20Indicator%20Light&url=%2fposts%2fmedicine_indicator_light.html&hashtags=diy%2ctutorial%2cesp">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fmedicine_indicator_light.html&title=ESP8266%20Medicine%20Indicator%20Light&summary=ESP8266%20Medicine%20Indicator%20Light&source=%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fmedicine_indicator_light.html&title=ESP8266%20Medicine%20Indicator%20Light">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=ESP8266%20Medicine%20Indicator%20Light%20-%20%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on telegram"
|
||||
href="https://telegram.me/share/url?text=ESP8266%20Medicine%20Indicator%20Light&url=%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share ESP8266 Medicine Indicator Light on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=ESP8266%20Medicine%20Indicator%20Light&u=%2fposts%2fmedicine_indicator_light.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -611,6 +630,53 @@ img {
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="Neovim is already super efficient and lightweight, but sometimes I need a barebones config for my servers and remote, miniature development environments.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/mini_neovim.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/mini_neovim.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Mini Neovim
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -315,8 +320,8 @@ want to use the curly brackets in the final string that you use.</p>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/neovim.html">neovim</a></li>
|
||||
<li><a href="../tags/tools.html">tools</a></li>
|
||||
<li><a href="../tags/neovim.html">Neovim</a></li>
|
||||
<li><a href="../tags/tools.html">Tools</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/find_and_replace_in_neovim.html">
|
||||
@ -332,65 +337,79 @@ want to use the curly brackets in the final string that you use.</p>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on x"
|
||||
href="https://x.com/intent/tweet/?text=Mini%20Neovim&url=%2fposts%2fmini_neovim.html&hashtags=neovim%2ctools">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fmini_neovim.html&title=Mini%20Neovim&summary=Mini%20Neovim&source=%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fmini_neovim.html&title=Mini%20Neovim">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Mini%20Neovim%20-%20%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on telegram"
|
||||
href="https://telegram.me/share/url?text=Mini%20Neovim&url=%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Mini%20Neovim&u=%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on x"
|
||||
href="https://x.com/intent/tweet/?text=Mini%20Neovim&url=%2fposts%2fmini_neovim.html&hashtags=neovim%2ctools">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fmini_neovim.html&title=Mini%20Neovim&summary=Mini%20Neovim&source=%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fmini_neovim.html&title=Mini%20Neovim">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Mini%20Neovim%20-%20%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on telegram"
|
||||
href="https://telegram.me/share/url?text=Mini%20Neovim&url=%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Mini Neovim on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Mini%20Neovim&u=%2fposts%2fmini_neovim.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -457,6 +476,53 @@ want to use the curly brackets in the final string that you use.</p>
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="Learn one way to push your git changes to multiple remote repositories.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/multiple_git_remotes.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/multiple_git_remotes.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -207,9 +212,9 @@ there twice, once for <code>(push)</code> and once for <code>(fetch)</code>.</p>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/git.html">git</a></li>
|
||||
<li><a href="../tags/backups.html">backups</a></li>
|
||||
<li><a href="../tags/commandline.html">commandline</a></li>
|
||||
<li><a href="../tags/git.html">Git</a></li>
|
||||
<li><a href="../tags/backups.html">Backups</a></li>
|
||||
<li><a href="../tags/commandline.html">Commandline</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/birdnet_homeassistant.html">
|
||||
@ -225,65 +230,79 @@ there twice, once for <code>(push)</code> and once for <code>(fetch)</code>.</p>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on x"
|
||||
href="https://x.com/intent/tweet/?text=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&url=%2fposts%2fmultiple_git_remotes.html&hashtags=git%2cbackups%2ccommandline">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fmultiple_git_remotes.html&title=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&summary=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&source=%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fmultiple_git_remotes.html&title=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos%20-%20%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on telegram"
|
||||
href="https://telegram.me/share/url?text=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&url=%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&u=%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on x"
|
||||
href="https://x.com/intent/tweet/?text=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&url=%2fposts%2fmultiple_git_remotes.html&hashtags=git%2cbackups%2ccommandline">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fmultiple_git_remotes.html&title=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&summary=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&source=%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fmultiple_git_remotes.html&title=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos%20-%20%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on telegram"
|
||||
href="https://telegram.me/share/url?text=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&url=%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Pushing a Single Local Git Repo to Multiple Remote Repos on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Pushing%20a%20Single%20Local%20Git%20Repo%20to%20Multiple%20Remote%20Repos&u=%2fposts%2fmultiple_git_remotes.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -350,6 +369,53 @@ there twice, once for <code>(push)</code> and once for <code>(fetch)</code>.</p>
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
373
public/posts/neovim-a-config-debug-tale.html
Normal file
@ -0,0 +1,373 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Neovim: A Config Debugging Tale | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="If you have used Neovim and it's massive plugin ecosystem for any length of time, then you're aware that debugging just comes with the territory. Here's my tale. Warning: It hasn't been solved at the time of writing.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="//localhost:1313/posts/neovim-a-config-debug-tale.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/posts/neovim-a-config-debug-tale.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Neovim: A Config Debugging Tale" />
|
||||
<meta property="og:description" content="If you have used Neovim and it's massive plugin ecosystem for any length of time, then you're aware that debugging just comes with the territory. Here's my tale. Warning: It hasn't been solved at the time of writing." />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="//localhost:1313/posts/neovim-a-config-debug-tale.html" />
|
||||
<meta property="og:image" content="//localhost:1313/neovim-debug-config-tale.png" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2023-10-30T14:03:21-04:00" />
|
||||
<meta property="article:modified_time" content="2023-10-30T14:03:21-04:00" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="//localhost:1313/neovim-debug-config-tale.png" />
|
||||
<meta name="twitter:title" content="Neovim: A Config Debugging Tale"/>
|
||||
<meta name="twitter:description" content="If you have used Neovim and it's massive plugin ecosystem for any length of time, then you're aware that debugging just comes with the territory. Here's my tale. Warning: It hasn't been solved at the time of writing."/>
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "//localhost:1313/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Neovim: A Config Debugging Tale",
|
||||
"item": "//localhost:1313/posts/neovim-a-config-debug-tale.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": "Neovim: A Config Debugging Tale",
|
||||
"name": "Neovim: A Config Debugging Tale",
|
||||
"description": "If you have used Neovim and it's massive plugin ecosystem for any length of time, then you're aware that debugging just comes with the territory. Here's my tale. Warning: It hasn't been solved at the time of writing.",
|
||||
"keywords": [
|
||||
""
|
||||
],
|
||||
"articleBody": "",
|
||||
"wordCount" : "0",
|
||||
"inLanguage": "en",
|
||||
"image":"//localhost:1313/neovim-debug-config-tale.png","datePublished": "2023-10-30T14:03:21-04:00",
|
||||
"dateModified": "2023-10-30T14:03:21-04:00",
|
||||
"author":{
|
||||
"@type": "Person",
|
||||
"name": "Me"
|
||||
},
|
||||
"mainEntityOfPage": {
|
||||
"@type": "WebPage",
|
||||
"@id": "//localhost:1313/posts/neovim-a-config-debug-tale.html"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Norm-working Packets 💾",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "//localhost:1313/favicon.ico"
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class=" dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Neovim: A Config Debugging Tale
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
If you have used Neovim and it's massive plugin ecosystem for any length of time, then you're aware that debugging just comes with the territory. Here's my tale. Warning: It hasn't been solved at the time of writing.
|
||||
</div>
|
||||
<div class="post-meta"><span title='2023-10-30 14:03:21 -0400 EDT'>October 30, 2023</span> · 0 min · 0 words · Me
|
||||
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="//localhost:1313/posts/parsing_files_with_python.html">
|
||||
<span class="title">« Prev</span>
|
||||
<br>
|
||||
<span>Using Python to Parse File Contents</span>
|
||||
</a>
|
||||
<a class="next" href="//localhost:1313/posts/mini_neovim.html">
|
||||
<span class="title">Next »</span>
|
||||
<br>
|
||||
<span>Mini Neovim</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim: A Config Debugging Tale on x"
|
||||
href="https://x.com/intent/tweet/?text=Neovim%3a%20A%20Config%20Debugging%20Tale&url=%2f%2flocalhost%3a1313%2fposts%2fneovim-a-config-debug-tale.html&hashtags=">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim: A Config Debugging Tale on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2f%2flocalhost%3a1313%2fposts%2fneovim-a-config-debug-tale.html&title=Neovim%3a%20A%20Config%20Debugging%20Tale&summary=Neovim%3a%20A%20Config%20Debugging%20Tale&source=%2f%2flocalhost%3a1313%2fposts%2fneovim-a-config-debug-tale.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim: A Config Debugging Tale on reddit"
|
||||
href="https://reddit.com/submit?url=%2f%2flocalhost%3a1313%2fposts%2fneovim-a-config-debug-tale.html&title=Neovim%3a%20A%20Config%20Debugging%20Tale">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim: A Config Debugging Tale on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2f%2flocalhost%3a1313%2fposts%2fneovim-a-config-debug-tale.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim: A Config Debugging Tale on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Neovim%3a%20A%20Config%20Debugging%20Tale%20-%20%2f%2flocalhost%3a1313%2fposts%2fneovim-a-config-debug-tale.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim: A Config Debugging Tale on telegram"
|
||||
href="https://telegram.me/share/url?text=Neovim%3a%20A%20Config%20Debugging%20Tale&url=%2f%2flocalhost%3a1313%2fposts%2fneovim-a-config-debug-tale.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Neovim: A Config Debugging Tale on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Neovim%3a%20A%20Config%20Debugging%20Tale&u=%2f%2flocalhost%3a1313%2fposts%2fneovim-a-config-debug-tale.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><meta charset="utf-8">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
@ -9,17 +9,16 @@
|
||||
<meta name="keywords" content="resources, shell, commandline">
|
||||
<meta name="description" content="Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/new-favorite-website.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="../apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<link rel="canonical" href="//localhost:1313/posts/new-favorite-website.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/posts/new-favorite-website.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -28,27 +27,16 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-X8VR5M0K20"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
if (!doNotTrack) {
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-X8VR5M0K20', { 'anonymize_ip': false });
|
||||
}
|
||||
</script>
|
||||
<meta property="og:title" content="New Favorite Website!" />
|
||||
</noscript><meta property="og:title" content="New Favorite Website!" />
|
||||
<meta property="og:description" content="Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!." />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="/posts/new-favorite-website.html" />
|
||||
<meta property="og:image" content="/new-website-cover.png" /><meta property="article:section" content="posts" />
|
||||
<meta property="og:url" content="//localhost:1313/posts/new-favorite-website.html" />
|
||||
<meta property="og:image" content="//localhost:1313/new-website-cover.png" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2023-09-27T10:07:01-04:00" />
|
||||
<meta property="article:modified_time" content="2023-09-27T10:07:01-04:00" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="/new-website-cover.png" />
|
||||
<meta name="twitter:image" content="//localhost:1313/new-website-cover.png" />
|
||||
<meta name="twitter:title" content="New Favorite Website!"/>
|
||||
<meta name="twitter:description" content="Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!."/>
|
||||
|
||||
@ -58,11 +46,17 @@ if (!doNotTrack) {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "//localhost:1313/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "New Favorite Website!",
|
||||
"item": "/posts/new-favorite-website.html"
|
||||
"item": "//localhost:1313/posts/new-favorite-website.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -80,7 +74,7 @@ if (!doNotTrack) {
|
||||
"articleBody": "For the longest time, I had Regex101 as a bookmarked website for (almost) daily use. Not only does it help me build muscle memory for using regex queries without banging my head against the wall with a bunch of print and debug statements, but if I happen to be in a different language - say in javascript instead of python - it gives you the correct syntax for using regex in that language. There are even spin-off projects to use this tool while offline.\nYou can even test it again the strings you do (or don’t!) want to verify against. This website is beyond cool.\nSo this morning, when I saw Jérémy Garniaux ask if there was an “explain shell” for Vim or Neovim, this was the Regex101 but for shell commands.\nSide Note: it took me way too long how to figure out how to embed an iframe directly into Hugo without creating a new shortcode template and other suggestions. I’ll be sure to post about that in the future.\nWhen you first load ExplainShell.com, you’re greeted with a clean, minimal interface with some explanation and a very obvious search bar.\nFor those new to the command line, it also shares some suggested queries to search with. As you read over the results, you can hover on the different elements of the command and it will highlight the explanation below. I mean, look at how clean and nice that is!\nAs many other command line users are apt to do, I use the man page all the time for commands and flags I’m unsure of, or need a refresher on. While knowing what a certain flag is and what it does for a specific command is supremely helpful, I find the man pages a tad bit overwhelming. You can always grep for what you’re looking for, but even then I’ve found times where it only pulls out half of the full description, or even just the line the definition is on.\nSo the fact that this resources can extract exactly what you need in your command from a man page without digging through every line, is extremely useful! Going back to Jérémy’s original toot and question… who is going to make this same tool for Neovim?\n",
|
||||
"wordCount" : "377",
|
||||
"inLanguage": "en",
|
||||
"image":"/new-website-cover.png","datePublished": "2023-09-27T10:07:01-04:00",
|
||||
"image":"//localhost:1313/new-website-cover.png","datePublished": "2023-09-27T10:07:01-04:00",
|
||||
"dateModified": "2023-09-27T10:07:01-04:00",
|
||||
"author":{
|
||||
"@type": "Person",
|
||||
@ -88,14 +82,14 @@ if (!doNotTrack) {
|
||||
},
|
||||
"mainEntityOfPage": {
|
||||
"@type": "WebPage",
|
||||
"@id": "/posts/new-favorite-website.html"
|
||||
"@id": "//localhost:1313/posts/new-favorite-website.html"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Norm-working Packets 💾",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "/favicon.ico"
|
||||
"url": "//localhost:1313/favicon.ico"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -113,7 +107,7 @@ if (!doNotTrack) {
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="../" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
@ -135,9 +129,16 @@ if (!doNotTrack) {
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
@ -145,9 +146,15 @@ if (!doNotTrack) {
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
New Favorite Website!
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.
|
||||
@ -298,24 +305,97 @@ Neovim?</p>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/resources.html">resources</a></li>
|
||||
<li><a href="../tags/shell.html">shell</a></li>
|
||||
<li><a href="../tags/commandline.html">commandline</a></li>
|
||||
<li><a href="//localhost:1313/tags/resources.html">Resources</a></li>
|
||||
<li><a href="//localhost:1313/tags/shell.html">Shell</a></li>
|
||||
<li><a href="//localhost:1313/tags/commandline.html">Commandline</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="next" href="../posts/multiple_git_remotes.html">
|
||||
<a class="prev" href="//localhost:1313/posts/birdnet_homeassistant.html">
|
||||
<span class="title">« Prev</span>
|
||||
<br>
|
||||
<span>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</span>
|
||||
</a>
|
||||
<a class="next" href="//localhost:1313/posts/useful-commands.html">
|
||||
<span class="title">Next »</span>
|
||||
<br>
|
||||
<span>Pushing a Single Local Git Repo to Multiple Remote Repos</span>
|
||||
<span>Useful Commands</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share New Favorite Website! on x"
|
||||
href="https://x.com/intent/tweet/?text=New%20Favorite%20Website%21&url=%2f%2flocalhost%3a1313%2fposts%2fnew-favorite-website.html&hashtags=resources%2cshell%2ccommandline">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share New Favorite Website! on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2f%2flocalhost%3a1313%2fposts%2fnew-favorite-website.html&title=New%20Favorite%20Website%21&summary=New%20Favorite%20Website%21&source=%2f%2flocalhost%3a1313%2fposts%2fnew-favorite-website.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share New Favorite Website! on reddit"
|
||||
href="https://reddit.com/submit?url=%2f%2flocalhost%3a1313%2fposts%2fnew-favorite-website.html&title=New%20Favorite%20Website%21">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share New Favorite Website! on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2f%2flocalhost%3a1313%2fposts%2fnew-favorite-website.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share New Favorite Website! on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=New%20Favorite%20Website%21%20-%20%2f%2flocalhost%3a1313%2fposts%2fnew-favorite-website.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share New Favorite Website! on telegram"
|
||||
href="https://telegram.me/share/url?text=New%20Favorite%20Website%21&url=%2f%2flocalhost%3a1313%2fposts%2fnew-favorite-website.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share New Favorite Website! on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=New%20Favorite%20Website%21&u=%2f%2flocalhost%3a1313%2fposts%2fnew-favorite-website.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -382,6 +462,53 @@ Neovim?</p>
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="Learn one way to push your git changes to multiple remote repositories.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/npm_to_nginx_tutorial.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/npm_to_nginx_tutorial.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Tutorial: Move from NginxProxyManager to Nginx
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -443,9 +448,9 @@ paste them from the <a href="https://github.com/NginxProxyManager/nginx-proxy-ma
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/git.html">git</a></li>
|
||||
<li><a href="../tags/backups.html">backups</a></li>
|
||||
<li><a href="../tags/commandline.html">commandline</a></li>
|
||||
<li><a href="../tags/git.html">Git</a></li>
|
||||
<li><a href="../tags/backups.html">Backups</a></li>
|
||||
<li><a href="../tags/commandline.html">Commandline</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/hosting_hugo_troubles.html">
|
||||
@ -461,65 +466,79 @@ paste them from the <a href="https://github.com/NginxProxyManager/nginx-proxy-ma
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on x"
|
||||
href="https://x.com/intent/tweet/?text=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&url=%2fposts%2fnpm_to_nginx_tutorial.html&hashtags=git%2cbackups%2ccommandline">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fnpm_to_nginx_tutorial.html&title=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&summary=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&source=%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fnpm_to_nginx_tutorial.html&title=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx%20-%20%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on telegram"
|
||||
href="https://telegram.me/share/url?text=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&url=%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&u=%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on x"
|
||||
href="https://x.com/intent/tweet/?text=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&url=%2fposts%2fnpm_to_nginx_tutorial.html&hashtags=git%2cbackups%2ccommandline">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fnpm_to_nginx_tutorial.html&title=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&summary=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&source=%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fnpm_to_nginx_tutorial.html&title=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx%20-%20%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on telegram"
|
||||
href="https://telegram.me/share/url?text=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&url=%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Tutorial: Move from NginxProxyManager to Nginx on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Tutorial%3a%20Move%20from%20NginxProxyManager%20to%20Nginx&u=%2fposts%2fnpm_to_nginx_tutorial.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -586,6 +605,53 @@ paste them from the <a href="https://github.com/NginxProxyManager/nginx-proxy-ma
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="Every time my OpenResty package tries to update, I can't restart the service with weird errors that don't point exactly to the problem. Here's how I've learned to fix it.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/openresty_and_package_update_issues.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/openresty_and_package_update_issues.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -47,6 +44,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -124,6 +127,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -139,8 +144,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
QuickHits: OpenResty and Package Updates
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -186,9 +191,9 @@ OpenResty being installed on top of it?</p>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/quick-hits.html">quick hits</a></li>
|
||||
<li><a href="../tags/selfhosted.html">selfhosted</a></li>
|
||||
<li><a href="../tags/nginx.html">nginx</a></li>
|
||||
<li><a href="../tags/quick-hits.html">Quick Hits</a></li>
|
||||
<li><a href="../tags/selfhosted.html">Selfhosted</a></li>
|
||||
<li><a href="../tags/nginx.html">Nginx</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="next" href="../posts/find_and_replace_in_neovim.html">
|
||||
@ -199,65 +204,79 @@ OpenResty being installed on top of it?</p>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on x"
|
||||
href="https://x.com/intent/tweet/?text=QuickHits%3a%20OpenResty%20and%20Package%20Updates&url=%2fposts%2fopenresty_and_package_update_issues.html&hashtags=quickhits%2cselfhosted%2cnginx">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fopenresty_and_package_update_issues.html&title=QuickHits%3a%20OpenResty%20and%20Package%20Updates&summary=QuickHits%3a%20OpenResty%20and%20Package%20Updates&source=%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fopenresty_and_package_update_issues.html&title=QuickHits%3a%20OpenResty%20and%20Package%20Updates">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=QuickHits%3a%20OpenResty%20and%20Package%20Updates%20-%20%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on telegram"
|
||||
href="https://telegram.me/share/url?text=QuickHits%3a%20OpenResty%20and%20Package%20Updates&url=%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=QuickHits%3a%20OpenResty%20and%20Package%20Updates&u=%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on x"
|
||||
href="https://x.com/intent/tweet/?text=QuickHits%3a%20OpenResty%20and%20Package%20Updates&url=%2fposts%2fopenresty_and_package_update_issues.html&hashtags=quickhits%2cselfhosted%2cnginx">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fopenresty_and_package_update_issues.html&title=QuickHits%3a%20OpenResty%20and%20Package%20Updates&summary=QuickHits%3a%20OpenResty%20and%20Package%20Updates&source=%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fopenresty_and_package_update_issues.html&title=QuickHits%3a%20OpenResty%20and%20Package%20Updates">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=QuickHits%3a%20OpenResty%20and%20Package%20Updates%20-%20%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on telegram"
|
||||
href="https://telegram.me/share/url?text=QuickHits%3a%20OpenResty%20and%20Package%20Updates&url=%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share QuickHits: OpenResty and Package Updates on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=QuickHits%3a%20OpenResty%20and%20Package%20Updates&u=%2fposts%2fopenresty_and_package_update_issues.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -324,6 +343,53 @@ OpenResty being installed on top of it?</p>
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<meta name="description" content="Posts - Norm-working Packets 💾">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../../posts.html">
|
||||
<link crossorigin="anonymous" href="../../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../../posts/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../../posts.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -88,6 +87,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -110,7 +111,7 @@
|
||||
<figure class="entry-cover"><img loading="lazy" src="../../hugo-nginx-trouble.png" alt="Hugo Logo, Nginx Logo, Tired Face emoji">
|
||||
</figure>
|
||||
<header class="entry-header">
|
||||
<h2>Trouble Hosting Hugo with Nginx
|
||||
<h2 class="entry-hint-parent">Trouble Hosting Hugo with Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -122,7 +123,7 @@
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Tutorial: Move from NginxProxyManager to Nginx
|
||||
<h2 class="entry-hint-parent">Tutorial: Move from NginxProxyManager to Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -135,7 +136,7 @@ To give clear instructions to help users migrate from using Nginx Proxy Manager
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2>My First Merged PR!
|
||||
<h2 class="entry-hint-parent">My First Merged PR!
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -154,7 +155,7 @@ To give clear instructions to help users migrate from using Nginx Proxy Manager
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
213
public/posts/page/3.html
Normal file
@ -0,0 +1,213 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Posts | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="Posts - Norm-working Packets 💾">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="//localhost:1313/posts.html">
|
||||
<link crossorigin="anonymous" href="../../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/posts/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/posts.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Posts" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="//localhost:1313/posts.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Posts"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "//localhost:1313/posts.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="list dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="//localhost:1313/">Home</a></div>
|
||||
<h1>
|
||||
Posts
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Tutorial: Move from NginxProxyManager to Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Goal A Tutorial Repo for migrating your Nginx Proxy Manager proxy setup to Nginx. I wrote this originally for this reddit post and to post this my Github profile. Thought my website would also be a good place to share it for any passers-by.
|
||||
To give clear instructions to help users migrate from using Nginx Proxy Manager (NPM) to standard Nginx. This tutorial is not exhaustive and there are many other implementations of this transition....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2023-08-05 15:23:51 -0500 -0500'>August 5, 2023</span> · 8 min · 1635 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to Tutorial: Move from NginxProxyManager to Nginx" href="//localhost:1313/posts/npm_to_nginx_tutorial.html"></a>
|
||||
</article>
|
||||
|
||||
<article class="post-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">My First Merged PR!
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Admittedly, I feel a bit like a child sharing something like this, as there are so many devs that pull and merge requests from contributors on a regular basis. However, while I’ve contributed to documentation and/or tutorials and other non-coding portions of repositories, I feel a tiny bit proud that this was the first instance where I was using a library, found a bug, created an issue, cloned the repo to my local machine, found and fixed the code, and opened a pull request....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2022-09-01 13:25:02 -0400 EDT'>September 1, 2022</span> · 2 min · 328 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to My First Merged PR!" href="//localhost:1313/posts/whiptail-first-merged-pr.html"></a>
|
||||
</article>
|
||||
<footer class="page-footer">
|
||||
<nav class="pagination">
|
||||
<a class="prev" href="//localhost:1313/posts/page/2.html">
|
||||
« Prev
|
||||
</a>
|
||||
</nav>
|
||||
</footer>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
439
public/posts/parsing_files_with_python.html
Normal file
@ -0,0 +1,439 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Using Python to Parse File Contents | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="I often find myself with various files that need to be parsed and transferred to a CSV. This is how I use python to parse a long and convoluted file.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="//localhost:1313/posts/parsing_files_with_python.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/posts/parsing_files_with_python.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Using Python to Parse File Contents" />
|
||||
<meta property="og:description" content="I often find myself with various files that need to be parsed and transferred to a CSV. This is how I use python to parse a long and convoluted file." />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="//localhost:1313/posts/parsing_files_with_python.html" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2023-11-02T13:57:07-04:00" />
|
||||
<meta property="article:modified_time" content="2023-11-02T13:57:07-04:00" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Using Python to Parse File Contents"/>
|
||||
<meta name="twitter:description" content="I often find myself with various files that need to be parsed and transferred to a CSV. This is how I use python to parse a long and convoluted file."/>
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "//localhost:1313/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Using Python to Parse File Contents",
|
||||
"item": "//localhost:1313/posts/parsing_files_with_python.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": "Using Python to Parse File Contents",
|
||||
"name": "Using Python to Parse File Contents",
|
||||
"description": "I often find myself with various files that need to be parsed and transferred to a CSV. This is how I use python to parse a long and convoluted file.",
|
||||
"keywords": [
|
||||
""
|
||||
],
|
||||
"articleBody": "Full Script import csv import pandas as pd import re LISTTUPLE = [] LINELIST = [] COUNT = 0 DOMAIN_DICT = {} df = pd.DataFrame() with open('./Workflows_js_nodes.js', 'r') as file: for num, line in enumerate(file, 1): if \"\u003c\u003c\u003c\" in line: LINELIST.append(num) if \"\u003e\u003e\u003e\" in line: LINELIST.append(num) LINELIST = sorted(LINELIST) # print(LINELIST) x = len(LINELIST) try: while COUNT in range(x): COUNT += 1 temp_tupe = (LINELIST[0], LINELIST[1]) LISTTUPLE.append(temp_tupe) LINELIST = LINELIST[2:] # LINELIST.pop(1) except IndexError as e: pass for pagetuple in LISTTUPLE: res_list = [] domain_line = int(pagetuple[0]-2) seg_start = int(pagetuple[0]-1) seg_end = int(pagetuple[1]-1) with open('./Workflows_js_nodes.js', 'r') as file: lines = file.readlines() title = lines[domain_line][4:-1] segment = lines[seg_start:seg_end] for line in segment: result = re.search(r\"(?:'@[a-z|.]+.[a-z]{3})\", line) if result: res = result.group()[1:] res_list.append(res) DOMAIN_DICT[title] = res_list df = df.from_dict(DOMAIN_DICT, orient='index') df.to_csv('~/export_file.csv') ",
|
||||
"wordCount" : "129",
|
||||
"inLanguage": "en",
|
||||
"datePublished": "2023-11-02T13:57:07-04:00",
|
||||
"dateModified": "2023-11-02T13:57:07-04:00",
|
||||
"author":{
|
||||
"@type": "Person",
|
||||
"name": "Me"
|
||||
},
|
||||
"mainEntityOfPage": {
|
||||
"@type": "WebPage",
|
||||
"@id": "//localhost:1313/posts/parsing_files_with_python.html"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Norm-working Packets 💾",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "//localhost:1313/favicon.ico"
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class=" dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Using Python to Parse File Contents
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
I often find myself with various files that need to be parsed and transferred to a CSV. This is how I use python to parse a long and convoluted file.
|
||||
</div>
|
||||
<div class="post-meta"><span title='2023-11-02 13:57:07 -0400 EDT'>November 2, 2023</span> · 1 min · 129 words · Me
|
||||
|
||||
</div>
|
||||
</header> <div class="toc">
|
||||
<details >
|
||||
<summary accesskey="c" title="(Alt + C)">
|
||||
<span class="details">Table of Contents</span>
|
||||
</summary>
|
||||
|
||||
<div class="inner"><nav id="TableOfContents">
|
||||
<ul>
|
||||
<li>
|
||||
<ul>
|
||||
<li><a href="#full-script">Full Script</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<div class="post-content"><h3 id="full-script">Full Script<a hidden class="anchor" aria-hidden="true" href="#full-script">#</a></h3>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">import</span> csv
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> pandas <span style="color:#66d9ef">as</span> pd
|
||||
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> re
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>LISTTUPLE <span style="color:#f92672">=</span> []
|
||||
</span></span><span style="display:flex;"><span>LINELIST <span style="color:#f92672">=</span> []
|
||||
</span></span><span style="display:flex;"><span>COUNT <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>
|
||||
</span></span><span style="display:flex;"><span>DOMAIN_DICT <span style="color:#f92672">=</span> {}
|
||||
</span></span><span style="display:flex;"><span>df <span style="color:#f92672">=</span> pd<span style="color:#f92672">.</span>DataFrame()
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">with</span> open(<span style="color:#e6db74">'./Workflows_js_nodes.js'</span>, <span style="color:#e6db74">'r'</span>) <span style="color:#66d9ef">as</span> file:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> num, line <span style="color:#f92672">in</span> enumerate(file, <span style="color:#ae81ff">1</span>):
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#e6db74">"<<<"</span> <span style="color:#f92672">in</span> line:
|
||||
</span></span><span style="display:flex;"><span> LINELIST<span style="color:#f92672">.</span>append(num)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> <span style="color:#e6db74">">>>"</span> <span style="color:#f92672">in</span> line:
|
||||
</span></span><span style="display:flex;"><span> LINELIST<span style="color:#f92672">.</span>append(num)
|
||||
</span></span><span style="display:flex;"><span>LINELIST <span style="color:#f92672">=</span> sorted(LINELIST)
|
||||
</span></span><span style="display:flex;"><span><span style="color:#75715e"># print(LINELIST)</span>
|
||||
</span></span><span style="display:flex;"><span>x <span style="color:#f92672">=</span> len(LINELIST)
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span>:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">while</span> COUNT <span style="color:#f92672">in</span> range(x):
|
||||
</span></span><span style="display:flex;"><span> COUNT <span style="color:#f92672">+=</span> <span style="color:#ae81ff">1</span>
|
||||
</span></span><span style="display:flex;"><span> temp_tupe <span style="color:#f92672">=</span> (LINELIST[<span style="color:#ae81ff">0</span>], LINELIST[<span style="color:#ae81ff">1</span>])
|
||||
</span></span><span style="display:flex;"><span> LISTTUPLE<span style="color:#f92672">.</span>append(temp_tupe)
|
||||
</span></span><span style="display:flex;"><span> LINELIST <span style="color:#f92672">=</span> LINELIST[<span style="color:#ae81ff">2</span>:]
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#75715e"># LINELIST.pop(1)</span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">except</span> <span style="color:#a6e22e">IndexError</span> <span style="color:#66d9ef">as</span> e:
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">pass</span>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">for</span> pagetuple <span style="color:#f92672">in</span> LISTTUPLE:
|
||||
</span></span><span style="display:flex;"><span> res_list <span style="color:#f92672">=</span> []
|
||||
</span></span><span style="display:flex;"><span> domain_line <span style="color:#f92672">=</span> int(pagetuple[<span style="color:#ae81ff">0</span>]<span style="color:#f92672">-</span><span style="color:#ae81ff">2</span>)
|
||||
</span></span><span style="display:flex;"><span> seg_start <span style="color:#f92672">=</span> int(pagetuple[<span style="color:#ae81ff">0</span>]<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)
|
||||
</span></span><span style="display:flex;"><span> seg_end <span style="color:#f92672">=</span> int(pagetuple[<span style="color:#ae81ff">1</span>]<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">with</span> open(<span style="color:#e6db74">'./Workflows_js_nodes.js'</span>, <span style="color:#e6db74">'r'</span>) <span style="color:#66d9ef">as</span> file:
|
||||
</span></span><span style="display:flex;"><span> lines <span style="color:#f92672">=</span> file<span style="color:#f92672">.</span>readlines()
|
||||
</span></span><span style="display:flex;"><span> title <span style="color:#f92672">=</span> lines[domain_line][<span style="color:#ae81ff">4</span>:<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>]
|
||||
</span></span><span style="display:flex;"><span> segment <span style="color:#f92672">=</span> lines[seg_start:seg_end]
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">for</span> line <span style="color:#f92672">in</span> segment:
|
||||
</span></span><span style="display:flex;"><span> result <span style="color:#f92672">=</span> re<span style="color:#f92672">.</span>search(<span style="color:#e6db74">r</span><span style="color:#e6db74">"(?:'@[a-z|.]+.[a-z]</span><span style="color:#e6db74">{3}</span><span style="color:#e6db74">)"</span>, line)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">if</span> result:
|
||||
</span></span><span style="display:flex;"><span> res <span style="color:#f92672">=</span> result<span style="color:#f92672">.</span>group()[<span style="color:#ae81ff">1</span>:]
|
||||
</span></span><span style="display:flex;"><span> res_list<span style="color:#f92672">.</span>append(res)
|
||||
</span></span><span style="display:flex;"><span> DOMAIN_DICT[title] <span style="color:#f92672">=</span> res_list
|
||||
</span></span><span style="display:flex;"><span>df <span style="color:#f92672">=</span> df<span style="color:#f92672">.</span>from_dict(DOMAIN_DICT, orient<span style="color:#f92672">=</span><span style="color:#e6db74">'index'</span>)
|
||||
</span></span><span style="display:flex;"><span>df<span style="color:#f92672">.</span>to_csv(<span style="color:#e6db74">'~/export_file.csv'</span>)
|
||||
</span></span></code></pre></div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="//localhost:1313/posts/find_and_replace_in_neovim.html">
|
||||
<span class="title">« Prev</span>
|
||||
<br>
|
||||
<span>Neovim Subtitute Magic</span>
|
||||
</a>
|
||||
<a class="next" href="//localhost:1313/posts/neovim-a-config-debug-tale.html">
|
||||
<span class="title">Next »</span>
|
||||
<br>
|
||||
<span>Neovim: A Config Debugging Tale</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Using Python to Parse File Contents on x"
|
||||
href="https://x.com/intent/tweet/?text=Using%20Python%20to%20Parse%20File%20Contents&url=%2f%2flocalhost%3a1313%2fposts%2fparsing_files_with_python.html&hashtags=">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Using Python to Parse File Contents on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2f%2flocalhost%3a1313%2fposts%2fparsing_files_with_python.html&title=Using%20Python%20to%20Parse%20File%20Contents&summary=Using%20Python%20to%20Parse%20File%20Contents&source=%2f%2flocalhost%3a1313%2fposts%2fparsing_files_with_python.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Using Python to Parse File Contents on reddit"
|
||||
href="https://reddit.com/submit?url=%2f%2flocalhost%3a1313%2fposts%2fparsing_files_with_python.html&title=Using%20Python%20to%20Parse%20File%20Contents">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Using Python to Parse File Contents on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2f%2flocalhost%3a1313%2fposts%2fparsing_files_with_python.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Using Python to Parse File Contents on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Using%20Python%20to%20Parse%20File%20Contents%20-%20%2f%2flocalhost%3a1313%2fposts%2fparsing_files_with_python.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Using Python to Parse File Contents on telegram"
|
||||
href="https://telegram.me/share/url?text=Using%20Python%20to%20Parse%20File%20Contents&url=%2f%2flocalhost%3a1313%2fposts%2fparsing_files_with_python.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Using Python to Parse File Contents on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Using%20Python%20to%20Parse%20File%20Contents&u=%2f%2flocalhost%3a1313%2fposts%2fparsing_files_with_python.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
411
public/posts/useful-commands.html
Normal file
@ -0,0 +1,411 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Useful Commands | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="shell, script, command line">
|
||||
<meta name="description" content="A collection and living document of useful shell commands that I use.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="//localhost:1313/posts/useful-commands.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/posts/useful-commands.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Useful Commands" />
|
||||
<meta property="og:description" content="A collection and living document of useful shell commands that I use." />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="//localhost:1313/posts/useful-commands.html" />
|
||||
<meta property="og:image" content="//localhost:1313/useful_commands.png" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2023-09-26T12:04:05-04:00" />
|
||||
<meta property="article:modified_time" content="2023-09-26T12:04:05-04:00" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:image" content="//localhost:1313/useful_commands.png" />
|
||||
<meta name="twitter:title" content="Useful Commands"/>
|
||||
<meta name="twitter:description" content="A collection and living document of useful shell commands that I use."/>
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "//localhost:1313/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Useful Commands",
|
||||
"item": "//localhost:1313/posts/useful-commands.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": "Useful Commands",
|
||||
"name": "Useful Commands",
|
||||
"description": "A collection and living document of useful shell commands that I use.",
|
||||
"keywords": [
|
||||
"shell", "script", "command line"
|
||||
],
|
||||
"articleBody": "This post will act a bit like a living document of all the useful commands and short scripts that I use regularly. Some will be as simple as ls | wc -l which counts the number of files in your current working directory, and others will be better suited to small scripts. As this grows, I will hopefully break these into more logical categories.\nFind by File type This command will find every file in your current working directory by the specified file extension.\nfind . -type f -name '*.txt' As a bonus, if you wanted find everything except that file extension, you can add a ! before name. In other words:\nfind . type -f ! -name '*.txt' I usually use commands like this to clean up files that I don’t need, be it file extensions I don’t need anymore, or anything with a specific word in its file name, so adding -delete at the end of the command lets me delete those files.\nfind . type -f -name '*.txt' -delete List Files \u0026 Dir + Using ls is a key command for anyone that works within a command line. If you’ve used ls before, then you’ve also likely used or created an alias for ls -la which will display the files, their user:group ownership, permissions (drwxrwxrwx) and dates created + modified.\nWhat if you just want to found the number of files? Not measuring disk usage or free space, but the equivalent of len for an array, the array being your current working directory. Enter wc!\nls | wc- l ",
|
||||
"wordCount" : "262",
|
||||
"inLanguage": "en",
|
||||
"image":"//localhost:1313/useful_commands.png","datePublished": "2023-09-26T12:04:05-04:00",
|
||||
"dateModified": "2023-09-26T12:04:05-04:00",
|
||||
"author":{
|
||||
"@type": "Person",
|
||||
"name": "Me"
|
||||
},
|
||||
"mainEntityOfPage": {
|
||||
"@type": "WebPage",
|
||||
"@id": "//localhost:1313/posts/useful-commands.html"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Norm-working Packets 💾",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "//localhost:1313/favicon.ico"
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class=" dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Useful Commands
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
A collection and living document of useful shell commands that I use.
|
||||
</div>
|
||||
<div class="post-meta"><span title='2023-09-26 12:04:05 -0400 EDT'>September 26, 2023</span> · 2 min · 262 words · Me
|
||||
|
||||
</div>
|
||||
</header> <div class="toc">
|
||||
<details >
|
||||
<summary accesskey="c" title="(Alt + C)">
|
||||
<span class="details">Table of Contents</span>
|
||||
</summary>
|
||||
|
||||
<div class="inner"><nav id="TableOfContents">
|
||||
<ul>
|
||||
<li><a href="#find-by-file-type">Find by File type</a></li>
|
||||
<li><a href="#list-files--dir-">List Files & Dir +</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
|
||||
<div class="post-content"><p>This post will act a bit like a living document of all the useful commands and short scripts that I use regularly. Some will
|
||||
be as simple as <code>ls | wc -l</code> which counts the number of files in your current working directory, and others will be better
|
||||
suited to small scripts. As this grows, I will hopefully break these into more logical categories.</p>
|
||||
<h2 id="find-by-file-type">Find by File type<a hidden class="anchor" aria-hidden="true" href="#find-by-file-type">#</a></h2>
|
||||
<p>This command will find every file in your current working directory by the specified file extension.</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>find . -type f -name <span style="color:#e6db74">'*.txt'</span>
|
||||
</span></span></code></pre></div><p>As a bonus, if you wanted find everything <em>except</em> that file extension, you can add a <code>!</code> before name. In other words:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>find . type -f ! -name <span style="color:#e6db74">'*.txt'</span>
|
||||
</span></span></code></pre></div><p>I usually use commands like this to clean up files that I don’t need, be it file extensions I don’t need anymore, or anything
|
||||
with a specific word in its file name, so adding <code>-delete</code> at the end of the command lets me delete those files.</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>find . type -f -name <span style="color:#e6db74">'*.txt'</span> -delete
|
||||
</span></span></code></pre></div><h2 id="list-files--dir-">List Files & Dir +<a hidden class="anchor" aria-hidden="true" href="#list-files--dir-">#</a></h2>
|
||||
<p>Using <code>ls</code> is a <em>key</em> command for anyone that works within a command line. If you’ve used <code>ls</code> before, then you’ve also
|
||||
likely used or created an alias for <code>ls -la</code> which will display the files, their user:group ownership, permissions
|
||||
(<code>drwxrwxrwx</code>) and dates created + modified.</p>
|
||||
<p>What if you just want to found the number of files? Not measuring disk usage or free space, but the equivalent of <code>len</code> for
|
||||
an array, the array being your current working directory. Enter <code>wc</code>!</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>ls | wc- l
|
||||
</span></span></code></pre></div>
|
||||
|
||||
</div>
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="//localhost:1313/tags/shell.html">Shell</a></li>
|
||||
<li><a href="//localhost:1313/tags/script.html">Script</a></li>
|
||||
<li><a href="//localhost:1313/tags/command-line.html">Command Line</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="//localhost:1313/posts/new-favorite-website.html">
|
||||
<span class="title">« Prev</span>
|
||||
<br>
|
||||
<span>New Favorite Website!</span>
|
||||
</a>
|
||||
<a class="next" href="//localhost:1313/posts/multiple_git_remotes.html">
|
||||
<span class="title">Next »</span>
|
||||
<br>
|
||||
<span>Pushing a Single Local Git Repo to Multiple Remote Repos</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Useful Commands on x"
|
||||
href="https://x.com/intent/tweet/?text=Useful%20Commands&url=%2f%2flocalhost%3a1313%2fposts%2fuseful-commands.html&hashtags=shell%2cscript%2ccommandline">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Useful Commands on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2f%2flocalhost%3a1313%2fposts%2fuseful-commands.html&title=Useful%20Commands&summary=Useful%20Commands&source=%2f%2flocalhost%3a1313%2fposts%2fuseful-commands.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Useful Commands on reddit"
|
||||
href="https://reddit.com/submit?url=%2f%2flocalhost%3a1313%2fposts%2fuseful-commands.html&title=Useful%20Commands">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Useful Commands on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2f%2flocalhost%3a1313%2fposts%2fuseful-commands.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Useful Commands on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Useful%20Commands%20-%20%2f%2flocalhost%3a1313%2fposts%2fuseful-commands.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Useful Commands on telegram"
|
||||
href="https://telegram.me/share/url?text=Useful%20Commands&url=%2f%2flocalhost%3a1313%2fposts%2fuseful-commands.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Useful Commands on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Useful%20Commands&u=%2f%2flocalhost%3a1313%2fposts%2fuseful-commands.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -10,9 +10,7 @@
|
||||
<meta name="description" content="Child like joy of having my first merged PR! I recently was using Whiptail library and fixed a bug.">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="../posts/whiptail-first-merged-pr.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<script defer crossorigin="anonymous" src="../assets/js/highlight.f413e19d0714851f6474e7ee9632408e58ac146fbdbe62747134bea2fa3415e0.js" integrity="sha256-9BPhnQcUhR9kdOfuljJAjlisFG+9vmJ0cTS+ovo0FeA="
|
||||
onload="hljs.initHighlightingOnLoad();"></script>
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -20,8 +18,7 @@
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../posts/whiptail-first-merged-pr.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -49,6 +46,12 @@
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
@ -126,6 +129,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -141,8 +146,8 @@
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<h1 class="post-title">
|
||||
<div class="breadcrumbs"><a href="../">Home</a> » <a href="../posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
My First Merged PR!
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
@ -174,9 +179,9 @@ such a regular basis, I need to ensure the project pulls from Meshtastic command
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
<li><a href="../tags/git.html">git</a></li>
|
||||
<li><a href="../tags/opensource.html">opensource</a></li>
|
||||
<li><a href="../tags/diy.html">diy</a></li>
|
||||
<li><a href="../tags/git.html">Git</a></li>
|
||||
<li><a href="../tags/opensource.html">Opensource</a></li>
|
||||
<li><a href="../tags/diy.html">Diy</a></li>
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="../posts/npm_to_nginx_tutorial.html">
|
||||
@ -187,65 +192,79 @@ such a regular basis, I need to ensure the project pulls from Meshtastic command
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on x"
|
||||
href="https://x.com/intent/tweet/?text=My%20First%20Merged%20PR%21&url=%2fposts%2fwhiptail-first-merged-pr.html&hashtags=git%2copensource%2cdiy">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z"/>
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fwhiptail-first-merged-pr.html&title=My%20First%20Merged%20PR%21&summary=My%20First%20Merged%20PR%21&source=%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fwhiptail-first-merged-pr.html&title=My%20First%20Merged%20PR%21">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=My%20First%20Merged%20PR%21%20-%20%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on telegram"
|
||||
href="https://telegram.me/share/url?text=My%20First%20Merged%20PR%21&url=%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=My%20First%20Merged%20PR%21&u=%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on x"
|
||||
href="https://x.com/intent/tweet/?text=My%20First%20Merged%20PR%21&url=%2fposts%2fwhiptail-first-merged-pr.html&hashtags=git%2copensource%2cdiy">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2fposts%2fwhiptail-first-merged-pr.html&title=My%20First%20Merged%20PR%21&summary=My%20First%20Merged%20PR%21&source=%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on reddit"
|
||||
href="https://reddit.com/submit?url=%2fposts%2fwhiptail-first-merged-pr.html&title=My%20First%20Merged%20PR%21">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=My%20First%20Merged%20PR%21%20-%20%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on telegram"
|
||||
href="https://telegram.me/share/url?text=My%20First%20Merged%20PR%21&url=%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share My First Merged PR! on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=My%20First%20Merged%20PR%21&u=%2fposts%2fwhiptail-first-merged-pr.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
@ -312,6 +331,53 @@ such a regular basis, I need to ensure the project pulls from Meshtastic command
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
371
public/posts/zyxel_vlan_setup.html
Normal file
@ -0,0 +1,371 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Zyxel_vlan_setup | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="zyxel_vlan_setup">
|
||||
<meta name="author" content="Me">
|
||||
<link rel="canonical" href="//localhost:1313/posts/zyxel_vlan_setup.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/posts/zyxel_vlan_setup.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Zyxel_vlan_setup" />
|
||||
<meta property="og:description" content="zyxel_vlan_setup" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:url" content="//localhost:1313/posts/zyxel_vlan_setup.html" /><meta property="article:section" content="posts" />
|
||||
<meta property="article:published_time" content="2023-10-04T10:35:41-04:00" />
|
||||
<meta property="article:modified_time" content="2023-10-04T10:35:41-04:00" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Zyxel_vlan_setup"/>
|
||||
<meta name="twitter:description" content="zyxel_vlan_setup"/>
|
||||
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Posts",
|
||||
"item": "//localhost:1313/posts.html"
|
||||
}
|
||||
{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Zyxel_vlan_setup",
|
||||
"item": "//localhost:1313/posts/zyxel_vlan_setup.html"
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "BlogPosting",
|
||||
"headline": "Zyxel_vlan_setup",
|
||||
"name": "Zyxel_vlan_setup",
|
||||
"description": "zyxel_vlan_setup",
|
||||
"keywords": [
|
||||
""
|
||||
],
|
||||
"articleBody": "",
|
||||
"wordCount" : "0",
|
||||
"inLanguage": "en",
|
||||
"datePublished": "2023-10-04T10:35:41-04:00",
|
||||
"dateModified": "2023-10-04T10:35:41-04:00",
|
||||
"author":{
|
||||
"@type": "Person",
|
||||
"name": "Me"
|
||||
},
|
||||
"mainEntityOfPage": {
|
||||
"@type": "WebPage",
|
||||
"@id": "//localhost:1313/posts/zyxel_vlan_setup.html"
|
||||
},
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Norm-working Packets 💾",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "//localhost:1313/favicon.ico"
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class=" dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
|
||||
<article class="post-single">
|
||||
<header class="post-header">
|
||||
<div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/posts.html">Posts</a></div>
|
||||
<h1 class="post-title entry-hint-parent">
|
||||
Zyxel_vlan_setup
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="35" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h1>
|
||||
<div class="post-description">
|
||||
zyxel_vlan_setup
|
||||
</div>
|
||||
<div class="post-meta"><span title='2023-10-04 10:35:41 -0400 EDT'>October 4, 2023</span> · 0 min · 0 words · Me
|
||||
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
<footer class="post-footer">
|
||||
<ul class="post-tags">
|
||||
</ul>
|
||||
<nav class="paginav">
|
||||
<a class="prev" href="//localhost:1313/posts/medicine_indicator_light.html">
|
||||
<span class="title">« Prev</span>
|
||||
<br>
|
||||
<span>ESP8266 Medicine Indicator Light</span>
|
||||
</a>
|
||||
<a class="next" href="//localhost:1313/posts/birdnet_homeassistant_part2.html">
|
||||
<span class="title">Next »</span>
|
||||
<br>
|
||||
<span>BirdNET-PI & HomeAssistant: Part 2</span>
|
||||
</a>
|
||||
</nav>
|
||||
|
||||
|
||||
<ul class="share-buttons">
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Zyxel_vlan_setup on x"
|
||||
href="https://x.com/intent/tweet/?text=Zyxel_vlan_setup&url=%2f%2flocalhost%3a1313%2fposts%2fzyxel_vlan_setup.html&hashtags=">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M512 62.554 L 512 449.446 C 512 483.97 483.97 512 449.446 512 L 62.554 512 C 28.03 512 0 483.97 0 449.446 L 0 62.554 C 0 28.03 28.029 0 62.554 0 L 449.446 0 C 483.971 0 512 28.03 512 62.554 Z M 269.951 190.75 L 182.567 75.216 L 56 75.216 L 207.216 272.95 L 63.9 436.783 L 125.266 436.783 L 235.9 310.383 L 332.567 436.783 L 456 436.783 L 298.367 228.367 L 432.367 75.216 L 371.033 75.216 Z M 127.633 110 L 164.101 110 L 383.481 400.065 L 349.5 400.065 Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Zyxel_vlan_setup on linkedin"
|
||||
href="https://www.linkedin.com/shareArticle?mini=true&url=%2f%2flocalhost%3a1313%2fposts%2fzyxel_vlan_setup.html&title=Zyxel_vlan_setup&summary=Zyxel_vlan_setup&source=%2f%2flocalhost%3a1313%2fposts%2fzyxel_vlan_setup.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-288.985,423.278l0,-225.717l-75.04,0l0,225.717l75.04,0Zm270.539,0l0,-129.439c0,-69.333 -37.018,-101.586 -86.381,-101.586c-39.804,0 -57.634,21.891 -67.617,37.266l0,-31.958l-75.021,0c0.995,21.181 0,225.717 0,225.717l75.02,0l0,-126.056c0,-6.748 0.486,-13.492 2.474,-18.315c5.414,-13.475 17.767,-27.434 38.494,-27.434c27.135,0 38.007,20.707 38.007,51.037l0,120.768l75.024,0Zm-307.552,-334.556c-25.674,0 -42.448,16.879 -42.448,39.002c0,21.658 16.264,39.002 41.455,39.002l0.484,0c26.165,0 42.452,-17.344 42.452,-39.002c-0.485,-22.092 -16.241,-38.954 -41.943,-39.002Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Zyxel_vlan_setup on reddit"
|
||||
href="https://reddit.com/submit?url=%2f%2flocalhost%3a1313%2fposts%2fzyxel_vlan_setup.html&title=Zyxel_vlan_setup">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-3.446,265.638c0,-22.964 -18.616,-41.58 -41.58,-41.58c-11.211,0 -21.361,4.457 -28.841,11.666c-28.424,-20.508 -67.586,-33.757 -111.204,-35.278l18.941,-89.121l61.884,13.157c0.756,15.734 13.642,28.29 29.56,28.29c16.407,0 29.706,-13.299 29.706,-29.701c0,-16.403 -13.299,-29.702 -29.706,-29.702c-11.666,0 -21.657,6.792 -26.515,16.578l-69.105,-14.69c-1.922,-0.418 -3.939,-0.042 -5.585,1.036c-1.658,1.073 -2.811,2.761 -3.224,4.686l-21.152,99.438c-44.258,1.228 -84.046,14.494 -112.837,35.232c-7.468,-7.164 -17.589,-11.591 -28.757,-11.591c-22.965,0 -41.585,18.616 -41.585,41.58c0,16.896 10.095,31.41 24.568,37.918c-0.639,4.135 -0.99,8.328 -0.99,12.576c0,63.977 74.469,115.836 166.33,115.836c91.861,0 166.334,-51.859 166.334,-115.836c0,-4.218 -0.347,-8.387 -0.977,-12.493c14.564,-6.47 24.735,-21.034 24.735,-38.001Zm-119.474,108.193c-20.27,20.241 -59.115,21.816 -70.534,21.816c-11.428,0 -50.277,-1.575 -70.522,-21.82c-3.007,-3.008 -3.007,-7.882 0,-10.889c3.003,-2.999 7.882,-3.003 10.885,0c12.777,12.781 40.11,17.317 59.637,17.317c19.522,0 46.86,-4.536 59.657,-17.321c3.016,-2.999 7.886,-2.995 10.885,0.008c3.008,3.011 3.003,7.882 -0.008,10.889Zm-5.23,-48.781c-16.373,0 -29.701,-13.324 -29.701,-29.698c0,-16.381 13.328,-29.714 29.701,-29.714c16.378,0 29.706,13.333 29.706,29.714c0,16.374 -13.328,29.698 -29.706,29.698Zm-160.386,-29.702c0,-16.381 13.328,-29.71 29.714,-29.71c16.369,0 29.689,13.329 29.689,29.71c0,16.373 -13.32,29.693 -29.689,29.693c-16.386,0 -29.714,-13.32 -29.714,-29.693Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Zyxel_vlan_setup on facebook"
|
||||
href="https://facebook.com/sharer/sharer.php?u=%2f%2flocalhost%3a1313%2fposts%2fzyxel_vlan_setup.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-106.468,0l0,-192.915l66.6,0l12.672,-82.621l-79.272,0l0,-53.617c0,-22.603 11.073,-44.636 46.58,-44.636l36.042,0l0,-70.34c0,0 -32.71,-5.582 -63.982,-5.582c-65.288,0 -107.96,39.569 -107.96,111.204l0,62.971l-72.573,0l0,82.621l72.573,0l0,192.915l-191.104,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Zyxel_vlan_setup on whatsapp"
|
||||
href="https://api.whatsapp.com/send?text=Zyxel_vlan_setup%20-%20%2f%2flocalhost%3a1313%2fposts%2fzyxel_vlan_setup.html">
|
||||
<svg version="1.1" viewBox="0 0 512 512" xml:space="preserve" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M449.446,0c34.525,0 62.554,28.03 62.554,62.554l0,386.892c0,34.524 -28.03,62.554 -62.554,62.554l-386.892,0c-34.524,0 -62.554,-28.03 -62.554,-62.554l0,-386.892c0,-34.524 28.029,-62.554 62.554,-62.554l386.892,0Zm-58.673,127.703c-33.842,-33.881 -78.847,-52.548 -126.798,-52.568c-98.799,0 -179.21,80.405 -179.249,179.234c-0.013,31.593 8.241,62.428 23.927,89.612l-25.429,92.884l95.021,-24.925c26.181,14.28 55.659,21.807 85.658,21.816l0.074,0c98.789,0 179.206,-80.413 179.247,-179.243c0.018,-47.895 -18.61,-92.93 -52.451,-126.81Zm-126.797,275.782l-0.06,0c-26.734,-0.01 -52.954,-7.193 -75.828,-20.767l-5.441,-3.229l-56.386,14.792l15.05,-54.977l-3.542,-5.637c-14.913,-23.72 -22.791,-51.136 -22.779,-79.287c0.033,-82.142 66.867,-148.971 149.046,-148.971c39.793,0.014 77.199,15.531 105.329,43.692c28.128,28.16 43.609,65.592 43.594,105.4c-0.034,82.149 -66.866,148.983 -148.983,148.984Zm81.721,-111.581c-4.479,-2.242 -26.499,-13.075 -30.604,-14.571c-4.105,-1.495 -7.091,-2.241 -10.077,2.241c-2.986,4.483 -11.569,14.572 -14.182,17.562c-2.612,2.988 -5.225,3.364 -9.703,1.12c-4.479,-2.241 -18.91,-6.97 -36.017,-22.23c-13.314,-11.876 -22.304,-26.542 -24.916,-31.026c-2.612,-4.484 -0.279,-6.908 1.963,-9.14c2.016,-2.007 4.48,-5.232 6.719,-7.847c2.24,-2.615 2.986,-4.484 4.479,-7.472c1.493,-2.99 0.747,-5.604 -0.374,-7.846c-1.119,-2.241 -10.077,-24.288 -13.809,-33.256c-3.635,-8.733 -7.327,-7.55 -10.077,-7.688c-2.609,-0.13 -5.598,-0.158 -8.583,-0.158c-2.986,0 -7.839,1.121 -11.944,5.604c-4.105,4.484 -15.675,15.32 -15.675,37.364c0,22.046 16.048,43.342 18.287,46.332c2.24,2.99 31.582,48.227 76.511,67.627c10.685,4.615 19.028,7.371 25.533,9.434c10.728,3.41 20.492,2.929 28.209,1.775c8.605,-1.285 26.499,-10.833 30.231,-21.295c3.732,-10.464 3.732,-19.431 2.612,-21.298c-1.119,-1.869 -4.105,-2.99 -8.583,-5.232Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Zyxel_vlan_setup on telegram"
|
||||
href="https://telegram.me/share/url?text=Zyxel_vlan_setup&url=%2f%2flocalhost%3a1313%2fposts%2fzyxel_vlan_setup.html">
|
||||
<svg version="1.1" xml:space="preserve" viewBox="2 2 28 28" height="30px" width="30px" fill="currentColor">
|
||||
<path
|
||||
d="M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a target="_blank" rel="noopener noreferrer" aria-label="share Zyxel_vlan_setup on ycombinator"
|
||||
href="https://news.ycombinator.com/submitlink?t=Zyxel_vlan_setup&u=%2f%2flocalhost%3a1313%2fposts%2fzyxel_vlan_setup.html">
|
||||
<svg version="1.1" xml:space="preserve" width="30px" height="30px" viewBox="0 0 512 512" fill="currentColor"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape">
|
||||
<path
|
||||
d="M449.446 0C483.971 0 512 28.03 512 62.554L512 449.446C512 483.97 483.97 512 449.446 512L62.554 512C28.03 512 0 483.97 0 449.446L0 62.554C0 28.03 28.029 0 62.554 0L449.446 0ZM183.8767 87.9921H121.8427L230.6673 292.4508V424.0079H281.3328V292.4508L390.1575 87.9921H328.1233L256 238.2489z" />
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</footer>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.querySelectorAll('pre > code').forEach((codeblock) => {
|
||||
const container = codeblock.parentNode.parentNode;
|
||||
|
||||
const copybutton = document.createElement('button');
|
||||
copybutton.classList.add('copy-code');
|
||||
copybutton.innerHTML = 'copy';
|
||||
|
||||
function copyingDone() {
|
||||
copybutton.innerHTML = 'copied!';
|
||||
setTimeout(() => {
|
||||
copybutton.innerHTML = 'copy';
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
copybutton.addEventListener('click', (cb) => {
|
||||
if ('clipboard' in navigator) {
|
||||
navigator.clipboard.writeText(codeblock.textContent);
|
||||
copyingDone();
|
||||
return;
|
||||
}
|
||||
|
||||
const range = document.createRange();
|
||||
range.selectNodeContents(codeblock);
|
||||
const selection = window.getSelection();
|
||||
selection.removeAllRanges();
|
||||
selection.addRange(range);
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
copyingDone();
|
||||
} catch (e) { };
|
||||
selection.removeRange(range);
|
||||
});
|
||||
|
||||
if (container.classList.contains("highlight")) {
|
||||
container.appendChild(copybutton);
|
||||
} else if (container.parentNode.firstChild == container) {
|
||||
|
||||
} else if (codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "TABLE") {
|
||||
|
||||
codeblock.parentNode.parentNode.parentNode.parentNode.parentNode.appendChild(copybutton);
|
||||
} else {
|
||||
|
||||
codeblock.parentNode.appendChild(copybutton);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -10,7 +10,7 @@
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="./series.html">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="./favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="./rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="./series/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="./series.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -94,7 +95,7 @@
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
<link>/series.html</link>
|
||||
<description>Recent content in Series on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language><atom:link href="/series/index.xml" rel="self" type="application/rss+xml" />
|
||||
<language>en-us</language>
|
||||
<atom:link href="/series/index.xml" rel="self" type="application/rss+xml" />
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -2,13 +2,13 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
<url>
|
||||
<loc>/tags/nginx.html</loc>
|
||||
<lastmod>2023-12-04T10:32:58-05:00</lastmod>
|
||||
</url><url>
|
||||
<loc>/</loc>
|
||||
<lastmod>2023-12-04T10:32:58-05:00</lastmod>
|
||||
<lastmod>2024-02-25T10:14:30-05:00</lastmod>
|
||||
</url><url>
|
||||
<loc>/posts.html</loc>
|
||||
<lastmod>2024-02-25T10:14:30-05:00</lastmod>
|
||||
</url><url>
|
||||
<loc>/tags/nginx.html</loc>
|
||||
<lastmod>2023-12-04T10:32:58-05:00</lastmod>
|
||||
</url><url>
|
||||
<loc>/tags/quick-hits.html</loc>
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="./tags.html">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="./assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="./favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="./rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="./tags/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="./tags.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -139,7 +140,7 @@
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="./">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>backups | Norm-working Packets 💾</title>
|
||||
<title>Backups | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/backups.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/backups/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/backups.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="backups" />
|
||||
</noscript><meta property="og:title" content="Backups" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/backups.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="backups"/>
|
||||
<meta name="twitter:title" content="Backups"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
backups
|
||||
Backups
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
<h2 class="entry-hint-parent">Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -108,7 +109,7 @@ I really enjoy self-hosting services that I use everyday. One of those includes
|
||||
<figure class="entry-cover"><img loading="lazy" src="../hugo-nginx-trouble.png" alt="Hugo Logo, Nginx Logo, Tired Face emoji">
|
||||
</figure>
|
||||
<header class="entry-header">
|
||||
<h2>Trouble Hosting Hugo with Nginx
|
||||
<h2 class="entry-hint-parent">Trouble Hosting Hugo with Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -120,7 +121,7 @@ I really enjoy self-hosting services that I use everyday. One of those includes
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Tutorial: Move from NginxProxyManager to Nginx
|
||||
<h2 class="entry-hint-parent">Tutorial: Move from NginxProxyManager to Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -133,7 +134,7 @@ To give clear instructions to help users migrate from using Nginx Proxy Manager
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,38 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>backups on Norm-working Packets 💾</title>
|
||||
<title>Backups on Norm-working Packets 💾</title>
|
||||
<link>/tags/backups.html</link>
|
||||
<description>Recent content in backups on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Backups on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Fri, 22 Sep 2023 15:07:10 -0400</lastBuildDate><atom:link href="/tags/backups/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Fri, 22 Sep 2023 15:07:10 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/backups/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Pushing a Single Local Git Repo to Multiple Remote Repos</title>
|
||||
<link>/posts/multiple_git_remotes.html</link>
|
||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
||||
|
||||
<guid>/posts/multiple_git_remotes.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Trouble Hosting Hugo with Nginx</title>
|
||||
<link>/posts/hosting_hugo_troubles.html</link>
|
||||
<pubDate>Wed, 20 Sep 2023 11:33:22 -0400</pubDate>
|
||||
|
||||
<guid>/posts/hosting_hugo_troubles.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Tutorial: Move from NginxProxyManager to Nginx</title>
|
||||
<link>/posts/npm_to_nginx_tutorial.html</link>
|
||||
<pubDate>Sat, 05 Aug 2023 15:23:51 -0500</pubDate>
|
||||
|
||||
<guid>/posts/npm_to_nginx_tutorial.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
185
public/tags/command-line.html
Normal file
@ -0,0 +1,185 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Command Line | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="//localhost:1313/tags/command-line.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/tags/command-line/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/tags/command-line.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Command Line" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="//localhost:1313/tags/command-line.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Command Line"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="list dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/tags.html">Tags</a></div>
|
||||
<h1>
|
||||
Command Line
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Useful Commands
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>This post will act a bit like a living document of all the useful commands and short scripts that I use regularly. Some will be as simple as ls | wc -l which counts the number of files in your current working directory, and others will be better suited to small scripts. As this grows, I will hopefully break these into more logical categories.
|
||||
Find by File type This command will find every file in your current working directory by the specified file extension....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2023-09-26 12:04:05 -0400 EDT'>September 26, 2023</span> · 2 min · 262 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to Useful Commands" href="//localhost:1313/posts/useful-commands.html"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
19
public/tags/command-line/index.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>Command Line on Norm-working Packets 💾</title>
|
||||
<link>//localhost:1313/tags/command-line.html</link>
|
||||
<description>Recent content in Command Line on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Tue, 26 Sep 2023 12:04:05 -0400</lastBuildDate>
|
||||
<atom:link href="//localhost:1313/tags/command-line/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Useful Commands</title>
|
||||
<link>//localhost:1313/posts/useful-commands.html</link>
|
||||
<pubDate>Tue, 26 Sep 2023 12:04:05 -0400</pubDate>
|
||||
<guid>//localhost:1313/posts/useful-commands.html</guid>
|
||||
<description>A collection and living document of useful shell commands that I use.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
10
public/tags/command-line/page/1.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>//localhost:1313/tags/command-line.html</title>
|
||||
<link rel="canonical" href="//localhost:1313/tags/command-line.html">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=//localhost:1313/tags/command-line.html">
|
||||
</head>
|
||||
</html>
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>commandline | Norm-working Packets 💾</title>
|
||||
<title>Commandline | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/commandline.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/commandline/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/commandline.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="commandline" />
|
||||
</noscript><meta property="og:title" content="Commandline" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/commandline.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="commandline"/>
|
||||
<meta name="twitter:title" content="Commandline"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
commandline
|
||||
Commandline
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
<h2 class="entry-hint-parent">Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -108,7 +109,7 @@ I really enjoy self-hosting services that I use everyday. One of those includes
|
||||
<figure class="entry-cover"><img loading="lazy" src="../hugo-nginx-trouble.png" alt="Hugo Logo, Nginx Logo, Tired Face emoji">
|
||||
</figure>
|
||||
<header class="entry-header">
|
||||
<h2>Trouble Hosting Hugo with Nginx
|
||||
<h2 class="entry-hint-parent">Trouble Hosting Hugo with Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -120,7 +121,7 @@ I really enjoy self-hosting services that I use everyday. One of those includes
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Tutorial: Move from NginxProxyManager to Nginx
|
||||
<h2 class="entry-hint-parent">Tutorial: Move from NginxProxyManager to Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -133,7 +134,7 @@ To give clear instructions to help users migrate from using Nginx Proxy Manager
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,38 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>commandline on Norm-working Packets 💾</title>
|
||||
<title>Commandline on Norm-working Packets 💾</title>
|
||||
<link>/tags/commandline.html</link>
|
||||
<description>Recent content in commandline on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Commandline on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Fri, 22 Sep 2023 15:07:10 -0400</lastBuildDate><atom:link href="/tags/commandline/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Fri, 22 Sep 2023 15:07:10 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/commandline/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Pushing a Single Local Git Repo to Multiple Remote Repos</title>
|
||||
<link>/posts/multiple_git_remotes.html</link>
|
||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
||||
|
||||
<guid>/posts/multiple_git_remotes.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Trouble Hosting Hugo with Nginx</title>
|
||||
<link>/posts/hosting_hugo_troubles.html</link>
|
||||
<pubDate>Wed, 20 Sep 2023 11:33:22 -0400</pubDate>
|
||||
|
||||
<guid>/posts/hosting_hugo_troubles.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Tutorial: Move from NginxProxyManager to Nginx</title>
|
||||
<link>/posts/npm_to_nginx_tutorial.html</link>
|
||||
<pubDate>Sat, 05 Aug 2023 15:23:51 -0500</pubDate>
|
||||
|
||||
<guid>/posts/npm_to_nginx_tutorial.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>diy | Norm-working Packets 💾</title>
|
||||
<title>Diy | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/diy.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/diy/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/diy.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="diy" />
|
||||
</noscript><meta property="og:title" content="Diy" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/diy.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="diy"/>
|
||||
<meta name="twitter:title" content="Diy"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
diy
|
||||
Diy
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>ESP8266 Medicine Indicator Light
|
||||
<h2 class="entry-hint-parent">ESP8266 Medicine Indicator Light
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -105,7 +106,7 @@
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>BirdNET-PI & HomeAssistant: Part 2
|
||||
<h2 class="entry-hint-parent">BirdNET-PI & HomeAssistant: Part 2
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -118,7 +119,7 @@ The best way to do this is by just type e from any screen in the HomeAssistant U
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
<h2 class="entry-hint-parent">Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -132,7 +133,7 @@ What you will need BirdNET-Pi HomeAssistant AppDaemon MQTT Broker (I use Mosquit
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>My First Merged PR!
|
||||
<h2 class="entry-hint-parent">My First Merged PR!
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -144,7 +145,7 @@ What you will need BirdNET-Pi HomeAssistant AppDaemon MQTT Broker (I use Mosquit
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,47 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>diy on Norm-working Packets 💾</title>
|
||||
<title>Diy on Norm-working Packets 💾</title>
|
||||
<link>/tags/diy.html</link>
|
||||
<description>Recent content in diy on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Diy on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 16 Oct 2023 11:34:14 -0400</lastBuildDate><atom:link href="/tags/diy/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 16 Oct 2023 11:34:14 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/diy/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>ESP8266 Medicine Indicator Light</title>
|
||||
<link>/posts/medicine_indicator_light.html</link>
|
||||
<pubDate>Mon, 16 Oct 2023 11:34:14 -0400</pubDate>
|
||||
|
||||
<guid>/posts/medicine_indicator_light.html</guid>
|
||||
<description>Learn how to make an ESP8266 and a few simple components into an indicator light.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>BirdNET-PI & HomeAssistant: Part 2</title>
|
||||
<link>/posts/birdnet_homeassistant_part2.html</link>
|
||||
<pubDate>Wed, 04 Oct 2023 10:35:23 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant_part2.html</guid>
|
||||
<description>A Follow up from the previous post, this tutorial takes all the sensors we created and loads them into a beautiful dashboard!</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</title>
|
||||
<link>/posts/birdnet_homeassistant.html</link>
|
||||
<pubDate>Sat, 30 Sep 2023 11:21:55 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant.html</guid>
|
||||
<description>Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>My First Merged PR!</title>
|
||||
<link>/posts/whiptail-first-merged-pr.html</link>
|
||||
<pubDate>Thu, 01 Sep 2022 13:25:02 -0400</pubDate>
|
||||
|
||||
<guid>/posts/whiptail-first-merged-pr.html</guid>
|
||||
<description>Child like joy of having my first merged PR! I recently was using Whiptail library and fixed a bug.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>esp | Norm-working Packets 💾</title>
|
||||
<title>Esp | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/esp.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/esp/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/esp.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="esp" />
|
||||
</noscript><meta property="og:title" content="Esp" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/esp.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="esp"/>
|
||||
<meta name="twitter:title" content="Esp"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
esp
|
||||
Esp
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>ESP8266 Medicine Indicator Light
|
||||
<h2 class="entry-hint-parent">ESP8266 Medicine Indicator Light
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -105,7 +106,7 @@
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>esp on Norm-working Packets 💾</title>
|
||||
<title>Esp on Norm-working Packets 💾</title>
|
||||
<link>/tags/esp.html</link>
|
||||
<description>Recent content in esp on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Esp on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 16 Oct 2023 11:34:14 -0400</lastBuildDate><atom:link href="/tags/esp/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 16 Oct 2023 11:34:14 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/esp/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>ESP8266 Medicine Indicator Light</title>
|
||||
<link>/posts/medicine_indicator_light.html</link>
|
||||
<pubDate>Mon, 16 Oct 2023 11:34:14 -0400</pubDate>
|
||||
|
||||
<guid>/posts/medicine_indicator_light.html</guid>
|
||||
<description>Learn how to make an ESP8266 and a few simple components into an indicator light.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>git | Norm-working Packets 💾</title>
|
||||
<title>Git | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/git.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/git/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/git.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="git" />
|
||||
</noscript><meta property="og:title" content="Git" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/git.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="git"/>
|
||||
<meta name="twitter:title" content="Git"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
git
|
||||
Git
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
<h2 class="entry-hint-parent">Pushing a Single Local Git Repo to Multiple Remote Repos
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -108,7 +109,7 @@ I really enjoy self-hosting services that I use everyday. One of those includes
|
||||
<figure class="entry-cover"><img loading="lazy" src="../hugo-nginx-trouble.png" alt="Hugo Logo, Nginx Logo, Tired Face emoji">
|
||||
</figure>
|
||||
<header class="entry-header">
|
||||
<h2>Trouble Hosting Hugo with Nginx
|
||||
<h2 class="entry-hint-parent">Trouble Hosting Hugo with Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -120,7 +121,7 @@ I really enjoy self-hosting services that I use everyday. One of those includes
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Tutorial: Move from NginxProxyManager to Nginx
|
||||
<h2 class="entry-hint-parent">Tutorial: Move from NginxProxyManager to Nginx
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -133,7 +134,7 @@ To give clear instructions to help users migrate from using Nginx Proxy Manager
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>My First Merged PR!
|
||||
<h2 class="entry-hint-parent">My First Merged PR!
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -145,7 +146,7 @@ To give clear instructions to help users migrate from using Nginx Proxy Manager
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,47 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>git on Norm-working Packets 💾</title>
|
||||
<title>Git on Norm-working Packets 💾</title>
|
||||
<link>/tags/git.html</link>
|
||||
<description>Recent content in git on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Git on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Fri, 22 Sep 2023 15:07:10 -0400</lastBuildDate><atom:link href="/tags/git/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Fri, 22 Sep 2023 15:07:10 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/git/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Pushing a Single Local Git Repo to Multiple Remote Repos</title>
|
||||
<link>/posts/multiple_git_remotes.html</link>
|
||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
||||
|
||||
<guid>/posts/multiple_git_remotes.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Trouble Hosting Hugo with Nginx</title>
|
||||
<link>/posts/hosting_hugo_troubles.html</link>
|
||||
<pubDate>Wed, 20 Sep 2023 11:33:22 -0400</pubDate>
|
||||
|
||||
<guid>/posts/hosting_hugo_troubles.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Tutorial: Move from NginxProxyManager to Nginx</title>
|
||||
<link>/posts/npm_to_nginx_tutorial.html</link>
|
||||
<pubDate>Sat, 05 Aug 2023 15:23:51 -0500</pubDate>
|
||||
|
||||
<guid>/posts/npm_to_nginx_tutorial.html</guid>
|
||||
<description>Learn one way to push your git changes to multiple remote repositories.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>My First Merged PR!</title>
|
||||
<link>/posts/whiptail-first-merged-pr.html</link>
|
||||
<pubDate>Thu, 01 Sep 2022 13:25:02 -0400</pubDate>
|
||||
|
||||
<guid>/posts/whiptail-first-merged-pr.html</guid>
|
||||
<description>Child like joy of having my first merged PR! I recently was using Whiptail library and fixed a bug.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
185
public/tags/google.html
Normal file
@ -0,0 +1,185 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Google | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="//localhost:1313/tags/google.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/tags/google/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/tags/google.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Google" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="//localhost:1313/tags/google.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Google"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="list dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/tags.html">Tags</a></div>
|
||||
<h1>
|
||||
Google
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Google Sheets to Slides with Scripts: an Automation
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Overview Recently, my wife needed help in sharing weekly content with a group of people. The original way this group was sharing content was a PDF export of a Google Doc. From a User Experience perspective, it wasn’t great. Someone would received this long PDF, they would have to scroll to find the date or topic of the next additional_notes, and overall didn’t look great.
|
||||
While she had developed the Google Sheets and Google Slide system to make everything a bit more legible and navigable, there was still an element of copy and paste from the Sheet to the Slide....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2024-02-25 10:14:30 -0500 EST'>February 25, 2024</span> · 14 min · 2795 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to Google Sheets to Slides with Scripts: an Automation" href="//localhost:1313/posts/google_scripts_sheets_to_slides.html"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
19
public/tags/google/index.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>Google on Norm-working Packets 💾</title>
|
||||
<link>//localhost:1313/tags/google.html</link>
|
||||
<description>Recent content in Google on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Sun, 25 Feb 2024 10:14:30 -0500</lastBuildDate>
|
||||
<atom:link href="//localhost:1313/tags/google/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Google Sheets to Slides with Scripts: an Automation</title>
|
||||
<link>//localhost:1313/posts/google_scripts_sheets_to_slides.html</link>
|
||||
<pubDate>Sun, 25 Feb 2024 10:14:30 -0500</pubDate>
|
||||
<guid>//localhost:1313/posts/google_scripts_sheets_to_slides.html</guid>
|
||||
<description>Learn about running a quick automation that turns rows in your Google Sheets and plugs it into a Google [Slide](2024-02-26_slide.md) template to easily share more attractive content.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
10
public/tags/google/page/1.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>//localhost:1313/tags/google.html</title>
|
||||
<link rel="canonical" href="//localhost:1313/tags/google.html">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=//localhost:1313/tags/google.html">
|
||||
</head>
|
||||
</html>
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>homeassistant | Norm-working Packets 💾</title>
|
||||
<title>Homeassistant | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/homeassistant.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/homeassistant/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/homeassistant.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="homeassistant" />
|
||||
</noscript><meta property="og:title" content="Homeassistant" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/homeassistant.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="homeassistant"/>
|
||||
<meta name="twitter:title" content="Homeassistant"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
homeassistant
|
||||
Homeassistant
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>BirdNET-PI & HomeAssistant: Part 2
|
||||
<h2 class="entry-hint-parent">BirdNET-PI & HomeAssistant: Part 2
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -106,7 +107,7 @@ The best way to do this is by just type e from any screen in the HomeAssistant U
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
<h2 class="entry-hint-parent">Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -120,7 +121,7 @@ What you will need BirdNET-Pi HomeAssistant AppDaemon MQTT Broker (I use Mosquit
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,29 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>homeassistant on Norm-working Packets 💾</title>
|
||||
<title>Homeassistant on Norm-working Packets 💾</title>
|
||||
<link>/tags/homeassistant.html</link>
|
||||
<description>Recent content in homeassistant on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Homeassistant on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 04 Oct 2023 10:35:23 -0400</lastBuildDate><atom:link href="/tags/homeassistant/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Wed, 04 Oct 2023 10:35:23 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/homeassistant/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>BirdNET-PI & HomeAssistant: Part 2</title>
|
||||
<link>/posts/birdnet_homeassistant_part2.html</link>
|
||||
<pubDate>Wed, 04 Oct 2023 10:35:23 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant_part2.html</guid>
|
||||
<description>A Follow up from the previous post, this tutorial takes all the sensors we created and loads them into a beautiful dashboard!</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</title>
|
||||
<link>/posts/birdnet_homeassistant.html</link>
|
||||
<pubDate>Sat, 30 Sep 2023 11:21:55 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant.html</guid>
|
||||
<description>Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -6,141 +6,112 @@
|
||||
<description>Recent content in Tags on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate><atom:link href="/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate>
|
||||
<atom:link href="/tags/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>nginx</title>
|
||||
<title>Nginx</title>
|
||||
<link>/tags/nginx.html</link>
|
||||
<pubDate>Mon, 04 Dec 2023 10:32:58 -0500</pubDate>
|
||||
|
||||
<guid>/tags/nginx.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>quick hits</title>
|
||||
<title>Quick Hits</title>
|
||||
<link>/tags/quick-hits.html</link>
|
||||
<pubDate>Mon, 04 Dec 2023 10:32:58 -0500</pubDate>
|
||||
|
||||
<guid>/tags/quick-hits.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>selfhosted</title>
|
||||
<title>Selfhosted</title>
|
||||
<link>/tags/selfhosted.html</link>
|
||||
<pubDate>Mon, 04 Dec 2023 10:32:58 -0500</pubDate>
|
||||
|
||||
<guid>/tags/selfhosted.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>neovim</title>
|
||||
<title>Neovim</title>
|
||||
<link>/tags/neovim.html</link>
|
||||
<pubDate>Wed, 15 Nov 2023 08:08:49 -0500</pubDate>
|
||||
|
||||
<guid>/tags/neovim.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>snippet</title>
|
||||
<title>Snippet</title>
|
||||
<link>/tags/snippet.html</link>
|
||||
<pubDate>Wed, 15 Nov 2023 08:08:49 -0500</pubDate>
|
||||
|
||||
<guid>/tags/snippet.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>tools</title>
|
||||
<title>Tools</title>
|
||||
<link>/tags/tools.html</link>
|
||||
<pubDate>Fri, 20 Oct 2023 18:38:13 -0400</pubDate>
|
||||
|
||||
<guid>/tags/tools.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>diy</title>
|
||||
<title>Diy</title>
|
||||
<link>/tags/diy.html</link>
|
||||
<pubDate>Mon, 16 Oct 2023 11:34:14 -0400</pubDate>
|
||||
|
||||
<guid>/tags/diy.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>esp</title>
|
||||
<title>Esp</title>
|
||||
<link>/tags/esp.html</link>
|
||||
<pubDate>Mon, 16 Oct 2023 11:34:14 -0400</pubDate>
|
||||
|
||||
<guid>/tags/esp.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>tutorial</title>
|
||||
<title>Tutorial</title>
|
||||
<link>/tags/tutorial.html</link>
|
||||
<pubDate>Mon, 16 Oct 2023 11:34:14 -0400</pubDate>
|
||||
|
||||
<guid>/tags/tutorial.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>homeassistant</title>
|
||||
<title>Homeassistant</title>
|
||||
<link>/tags/homeassistant.html</link>
|
||||
<pubDate>Wed, 04 Oct 2023 10:35:23 -0400</pubDate>
|
||||
|
||||
<guid>/tags/homeassistant.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>python</title>
|
||||
<title>Python</title>
|
||||
<link>/tags/python.html</link>
|
||||
<pubDate>Sat, 30 Sep 2023 11:21:55 -0400</pubDate>
|
||||
|
||||
<guid>/tags/python.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>backups</title>
|
||||
<title>Backups</title>
|
||||
<link>/tags/backups.html</link>
|
||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
||||
|
||||
<guid>/tags/backups.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>commandline</title>
|
||||
<title>Commandline</title>
|
||||
<link>/tags/commandline.html</link>
|
||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
||||
|
||||
<guid>/tags/commandline.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>git</title>
|
||||
<title>Git</title>
|
||||
<link>/tags/git.html</link>
|
||||
<pubDate>Fri, 22 Sep 2023 15:07:10 -0400</pubDate>
|
||||
|
||||
<guid>/tags/git.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>opensource</title>
|
||||
<title>Opensource</title>
|
||||
<link>/tags/opensource.html</link>
|
||||
<pubDate>Thu, 01 Sep 2022 13:25:02 -0400</pubDate>
|
||||
|
||||
<guid>/tags/opensource.html</guid>
|
||||
<description></description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>neovim | Norm-working Packets 💾</title>
|
||||
<title>Neovim | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/neovim.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/neovim/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/neovim.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="neovim" />
|
||||
</noscript><meta property="og:title" content="Neovim" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/neovim.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="neovim"/>
|
||||
<meta name="twitter:title" content="Neovim"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
neovim
|
||||
Neovim
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Neovim Subtitute Magic
|
||||
<h2 class="entry-hint-parent">Neovim Subtitute Magic
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -106,7 +107,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Mini Neovim
|
||||
<h2 class="entry-hint-parent">Mini Neovim
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -118,7 +119,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,29 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>neovim on Norm-working Packets 💾</title>
|
||||
<title>Neovim on Norm-working Packets 💾</title>
|
||||
<link>/tags/neovim.html</link>
|
||||
<description>Recent content in neovim on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Neovim on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 15 Nov 2023 08:08:49 -0500</lastBuildDate><atom:link href="/tags/neovim/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Wed, 15 Nov 2023 08:08:49 -0500</lastBuildDate>
|
||||
<atom:link href="/tags/neovim/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Neovim Subtitute Magic</title>
|
||||
<link>/posts/find_and_replace_in_neovim.html</link>
|
||||
<pubDate>Wed, 15 Nov 2023 08:08:49 -0500</pubDate>
|
||||
|
||||
<guid>/posts/find_and_replace_in_neovim.html</guid>
|
||||
<description>I was able to speed up some of my workflows by learning how to search and replace specifics in Neovim!</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Mini Neovim</title>
|
||||
<link>/posts/mini_neovim.html</link>
|
||||
<pubDate>Fri, 20 Oct 2023 18:38:13 -0400</pubDate>
|
||||
|
||||
<guid>/posts/mini_neovim.html</guid>
|
||||
<description>Neovim is already super efficient and lightweight, but sometimes I need a barebones config for my servers and remote, miniature development environments.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>nginx | Norm-working Packets 💾</title>
|
||||
<title>Nginx | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/nginx.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/nginx/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/nginx.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="nginx" />
|
||||
</noscript><meta property="og:title" content="Nginx" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/nginx.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="nginx"/>
|
||||
<meta name="twitter:title" content="Nginx"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
nginx
|
||||
Nginx
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>QuickHits: OpenResty and Package Updates
|
||||
<h2 class="entry-hint-parent">QuickHits: OpenResty and Package Updates
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -106,7 +107,7 @@ The last two times I’ve run apt update && apt upgrade -y on my web ser
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>nginx on Norm-working Packets 💾</title>
|
||||
<title>Nginx on Norm-working Packets 💾</title>
|
||||
<link>/tags/nginx.html</link>
|
||||
<description>Recent content in nginx on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Nginx on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate><atom:link href="/tags/nginx/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate>
|
||||
<atom:link href="/tags/nginx/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>QuickHits: OpenResty and Package Updates</title>
|
||||
<link>/posts/openresty_and_package_update_issues.html</link>
|
||||
<pubDate>Mon, 04 Dec 2023 10:32:58 -0500</pubDate>
|
||||
|
||||
<guid>/posts/openresty_and_package_update_issues.html</guid>
|
||||
<description>Every time my OpenResty package tries to update, I can&#39;t restart the service with weird errors that don&#39;t point exactly to the problem. Here&#39;s how I&#39;ve learned to fix it.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>opensource | Norm-working Packets 💾</title>
|
||||
<title>Opensource | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/opensource.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/opensource/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/opensource.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="opensource" />
|
||||
</noscript><meta property="og:title" content="Opensource" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/opensource.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="opensource"/>
|
||||
<meta name="twitter:title" content="Opensource"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
opensource
|
||||
Opensource
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>My First Merged PR!
|
||||
<h2 class="entry-hint-parent">My First Merged PR!
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -105,7 +106,7 @@
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>opensource on Norm-working Packets 💾</title>
|
||||
<title>Opensource on Norm-working Packets 💾</title>
|
||||
<link>/tags/opensource.html</link>
|
||||
<description>Recent content in opensource on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Opensource on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Thu, 01 Sep 2022 13:25:02 -0400</lastBuildDate><atom:link href="/tags/opensource/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Thu, 01 Sep 2022 13:25:02 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/opensource/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>My First Merged PR!</title>
|
||||
<link>/posts/whiptail-first-merged-pr.html</link>
|
||||
<pubDate>Thu, 01 Sep 2022 13:25:02 -0400</pubDate>
|
||||
|
||||
<guid>/posts/whiptail-first-merged-pr.html</guid>
|
||||
<description>Child like joy of having my first merged PR! I recently was using Whiptail library and fixed a bug.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>python | Norm-working Packets 💾</title>
|
||||
<title>Python | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/python.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/python/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/python.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="python" />
|
||||
</noscript><meta property="og:title" content="Python" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/python.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="python"/>
|
||||
<meta name="twitter:title" content="Python"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
python
|
||||
Python
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
<h2 class="entry-hint-parent">Creating a BirdNetPi Dashboard in HomeAssistant - Part 1
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -107,7 +108,7 @@ What you will need BirdNET-Pi HomeAssistant AppDaemon MQTT Broker (I use Mosquit
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>python on Norm-working Packets 💾</title>
|
||||
<title>Python on Norm-working Packets 💾</title>
|
||||
<link>/tags/python.html</link>
|
||||
<description>Recent content in python on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Python on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Sat, 30 Sep 2023 11:21:55 -0400</lastBuildDate><atom:link href="/tags/python/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Sat, 30 Sep 2023 11:21:55 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/python/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Creating a BirdNetPi Dashboard in HomeAssistant - Part 1</title>
|
||||
<link>/posts/birdnet_homeassistant.html</link>
|
||||
<pubDate>Sat, 30 Sep 2023 11:21:55 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant.html</guid>
|
||||
<description>Learn how to take BirdNET-Pi Detections to create and display entities in HomeAssistant.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>quick hits | Norm-working Packets 💾</title>
|
||||
<title>Quick Hits | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/quick-hits.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/quick-hits/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/quick-hits.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="quick hits" />
|
||||
</noscript><meta property="og:title" content="Quick Hits" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/quick-hits.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="quick hits"/>
|
||||
<meta name="twitter:title" content="Quick Hits"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
quick hits
|
||||
Quick Hits
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>QuickHits: OpenResty and Package Updates
|
||||
<h2 class="entry-hint-parent">QuickHits: OpenResty and Package Updates
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -106,7 +107,7 @@ The last two times I’ve run apt update && apt upgrade -y on my web ser
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>quick hits on Norm-working Packets 💾</title>
|
||||
<title>Quick Hits on Norm-working Packets 💾</title>
|
||||
<link>/tags/quick-hits.html</link>
|
||||
<description>Recent content in quick hits on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Quick Hits on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate><atom:link href="/tags/quick-hits/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate>
|
||||
<atom:link href="/tags/quick-hits/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>QuickHits: OpenResty and Package Updates</title>
|
||||
<link>/posts/openresty_and_package_update_issues.html</link>
|
||||
<pubDate>Mon, 04 Dec 2023 10:32:58 -0500</pubDate>
|
||||
|
||||
<guid>/posts/openresty_and_package_update_issues.html</guid>
|
||||
<description>Every time my OpenResty package tries to update, I can&#39;t restart the service with weird errors that don&#39;t point exactly to the problem. Here&#39;s how I&#39;ve learned to fix it.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -1,24 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><meta charset="utf-8">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>resources | Norm-working Packets 💾</title>
|
||||
<title>Resources | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/resources.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="../apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<link rel="canonical" href="//localhost:1313/tags/resources.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/resources/index.xml">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/tags/resources/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/tags/resources.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -27,24 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-X8VR5M0K20"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
if (!doNotTrack) {
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-X8VR5M0K20', { 'anonymize_ip': false });
|
||||
}
|
||||
</script>
|
||||
<meta property="og:title" content="resources" />
|
||||
</noscript><meta property="og:title" content="Resources" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/resources.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
<meta property="og:url" content="//localhost:1313/tags/resources.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="resources"/>
|
||||
<meta name="twitter:title" content="Resources"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -60,7 +50,7 @@ if (!doNotTrack) {
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="../" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
@ -82,36 +72,47 @@ if (!doNotTrack) {
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/tags.html">Tags</a></div>
|
||||
<h1>
|
||||
resources
|
||||
Resources
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<figure class="entry-cover"><img loading="lazy" src="../new-website-cover.png" alt="Add explainshell.com to your list of favorite websites! Right behind regex101.com.">
|
||||
</figure>
|
||||
<header class="entry-header">
|
||||
<h2>New Favorite Website!
|
||||
<h2 class="entry-hint-parent">New Favorite Website!
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>For the longest time, I had Regex101 as a bookmarked website for (almost) daily use. Not only does it help me build muscle memory for using regex queries without banging my head against the wall with a bunch of print and debug statements, but if I happen to be in a different language - say in javascript instead of python - it gives you the correct syntax for using regex in that language....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2023-09-27 10:07:01 -0400 EDT'>September 27, 2023</span> · 2 min · 377 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to New Favorite Website!" href="../posts/new-favorite-website.html"></a>
|
||||
<a class="entry-link" aria-label="post link to New Favorite Website!" href="//localhost:1313/posts/new-favorite-website.html"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>resources on Norm-working Packets 💾</title>
|
||||
<link>/tags/resources.html</link>
|
||||
<description>Recent content in resources on Norm-working Packets 💾</description>
|
||||
<title>Resources on Norm-working Packets 💾</title>
|
||||
<link>//localhost:1313/tags/resources.html</link>
|
||||
<description>Recent content in Resources on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate><atom:link href="/tags/resources/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate>
|
||||
<atom:link href="//localhost:1313/tags/resources/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>New Favorite Website!</title>
|
||||
<link>/posts/new-favorite-website.html</link>
|
||||
<link>//localhost:1313/posts/new-favorite-website.html</link>
|
||||
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||
|
||||
<guid>/posts/new-favorite-website.html</guid>
|
||||
<guid>//localhost:1313/posts/new-favorite-website.html</guid>
|
||||
<description>Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>/tags/resources.html</title>
|
||||
<link rel="canonical" href="../../../tags/resources.html">
|
||||
<title>//localhost:1313/tags/resources.html</title>
|
||||
<link rel="canonical" href="//localhost:1313/tags/resources.html">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=../../../tags/resources.html">
|
||||
<meta http-equiv="refresh" content="0; url=//localhost:1313/tags/resources.html">
|
||||
</head>
|
||||
</html>
|
||||
|
||||
185
public/tags/script.html
Normal file
@ -0,0 +1,185 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Script | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="//localhost:1313/tags/script.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/tags/script/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/tags/script.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Script" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="//localhost:1313/tags/script.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Script"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="list dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/tags.html">Tags</a></div>
|
||||
<h1>
|
||||
Script
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Useful Commands
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>This post will act a bit like a living document of all the useful commands and short scripts that I use regularly. Some will be as simple as ls | wc -l which counts the number of files in your current working directory, and others will be better suited to small scripts. As this grows, I will hopefully break these into more logical categories.
|
||||
Find by File type This command will find every file in your current working directory by the specified file extension....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2023-09-26 12:04:05 -0400 EDT'>September 26, 2023</span> · 2 min · 262 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to Useful Commands" href="//localhost:1313/posts/useful-commands.html"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
19
public/tags/script/index.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>Script on Norm-working Packets 💾</title>
|
||||
<link>//localhost:1313/tags/script.html</link>
|
||||
<description>Recent content in Script on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Tue, 26 Sep 2023 12:04:05 -0400</lastBuildDate>
|
||||
<atom:link href="//localhost:1313/tags/script/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Useful Commands</title>
|
||||
<link>//localhost:1313/posts/useful-commands.html</link>
|
||||
<pubDate>Tue, 26 Sep 2023 12:04:05 -0400</pubDate>
|
||||
<guid>//localhost:1313/posts/useful-commands.html</guid>
|
||||
<description>A collection and living document of useful shell commands that I use.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
10
public/tags/script/page/1.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>//localhost:1313/tags/script.html</title>
|
||||
<link rel="canonical" href="//localhost:1313/tags/script.html">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=//localhost:1313/tags/script.html">
|
||||
</head>
|
||||
</html>
|
||||
185
public/tags/scripts.html
Normal file
@ -0,0 +1,185 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Scripts | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="//localhost:1313/tags/scripts.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/tags/scripts/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/tags/scripts.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Scripts" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="//localhost:1313/tags/scripts.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Scripts"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="list dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/tags.html">Tags</a></div>
|
||||
<h1>
|
||||
Scripts
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Google Sheets to Slides with Scripts: an Automation
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Overview Recently, my wife needed help in sharing weekly content with a group of people. The original way this group was sharing content was a PDF export of a Google Doc. From a User Experience perspective, it wasn’t great. Someone would received this long PDF, they would have to scroll to find the date or topic of the next additional_notes, and overall didn’t look great.
|
||||
While she had developed the Google Sheets and Google Slide system to make everything a bit more legible and navigable, there was still an element of copy and paste from the Sheet to the Slide....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2024-02-25 10:14:30 -0500 EST'>February 25, 2024</span> · 14 min · 2795 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to Google Sheets to Slides with Scripts: an Automation" href="//localhost:1313/posts/google_scripts_sheets_to_slides.html"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
19
public/tags/scripts/index.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>Scripts on Norm-working Packets 💾</title>
|
||||
<link>//localhost:1313/tags/scripts.html</link>
|
||||
<description>Recent content in Scripts on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Sun, 25 Feb 2024 10:14:30 -0500</lastBuildDate>
|
||||
<atom:link href="//localhost:1313/tags/scripts/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Google Sheets to Slides with Scripts: an Automation</title>
|
||||
<link>//localhost:1313/posts/google_scripts_sheets_to_slides.html</link>
|
||||
<pubDate>Sun, 25 Feb 2024 10:14:30 -0500</pubDate>
|
||||
<guid>//localhost:1313/posts/google_scripts_sheets_to_slides.html</guid>
|
||||
<description>Learn about running a quick automation that turns rows in your Google Sheets and plugs it into a Google [Slide](2024-02-26_slide.md) template to easily share more attractive content.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
10
public/tags/scripts/page/1.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>//localhost:1313/tags/scripts.html</title>
|
||||
<link rel="canonical" href="//localhost:1313/tags/scripts.html">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=//localhost:1313/tags/scripts.html">
|
||||
</head>
|
||||
</html>
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>selfhosted | Norm-working Packets 💾</title>
|
||||
<title>Selfhosted | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/selfhosted.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/selfhosted/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/selfhosted.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="selfhosted" />
|
||||
</noscript><meta property="og:title" content="Selfhosted" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/selfhosted.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="selfhosted"/>
|
||||
<meta name="twitter:title" content="Selfhosted"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
selfhosted
|
||||
Selfhosted
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>QuickHits: OpenResty and Package Updates
|
||||
<h2 class="entry-hint-parent">QuickHits: OpenResty and Package Updates
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -106,7 +107,7 @@ The last two times I’ve run apt update && apt upgrade -y on my web ser
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>BirdNET-PI & HomeAssistant: Part 2
|
||||
<h2 class="entry-hint-parent">BirdNET-PI & HomeAssistant: Part 2
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -119,7 +120,7 @@ The best way to do this is by just type e from any screen in the HomeAssistant U
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,29 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>selfhosted on Norm-working Packets 💾</title>
|
||||
<title>Selfhosted on Norm-working Packets 💾</title>
|
||||
<link>/tags/selfhosted.html</link>
|
||||
<description>Recent content in selfhosted on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Selfhosted on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate><atom:link href="/tags/selfhosted/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 04 Dec 2023 10:32:58 -0500</lastBuildDate>
|
||||
<atom:link href="/tags/selfhosted/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>QuickHits: OpenResty and Package Updates</title>
|
||||
<link>/posts/openresty_and_package_update_issues.html</link>
|
||||
<pubDate>Mon, 04 Dec 2023 10:32:58 -0500</pubDate>
|
||||
|
||||
<guid>/posts/openresty_and_package_update_issues.html</guid>
|
||||
<description>Every time my OpenResty package tries to update, I can&#39;t restart the service with weird errors that don&#39;t point exactly to the problem. Here&#39;s how I&#39;ve learned to fix it.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>BirdNET-PI & HomeAssistant: Part 2</title>
|
||||
<link>/posts/birdnet_homeassistant_part2.html</link>
|
||||
<pubDate>Wed, 04 Oct 2023 10:35:23 -0400</pubDate>
|
||||
|
||||
<guid>/posts/birdnet_homeassistant_part2.html</guid>
|
||||
<description>A Follow up from the previous post, this tutorial takes all the sensors we created and loads them into a beautiful dashboard!</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
185
public/tags/sheets.html
Normal file
@ -0,0 +1,185 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Sheets | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="//localhost:1313/tags/sheets.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/tags/sheets/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/tags/sheets.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
.top-link {
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="Sheets" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="//localhost:1313/tags/sheets.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="Sheets"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
|
||||
<body class="list dark" id="top">
|
||||
<script>
|
||||
if (localStorage.getItem("pref-theme") === "light") {
|
||||
document.body.classList.remove('dark')
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
|
||||
</svg>
|
||||
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
|
||||
stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="5"></circle>
|
||||
<line x1="12" y1="1" x2="12" y2="3"></line>
|
||||
<line x1="12" y1="21" x2="12" y2="23"></line>
|
||||
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
|
||||
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
|
||||
<line x1="1" y1="12" x2="3" y2="12"></line>
|
||||
<line x1="21" y1="12" x2="23" y2="12"></line>
|
||||
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/tags.html">Tags</a></div>
|
||||
<h1>
|
||||
Sheets
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Google Sheets to Slides with Scripts: an Automation
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>Overview Recently, my wife needed help in sharing weekly content with a group of people. The original way this group was sharing content was a PDF export of a Google Doc. From a User Experience perspective, it wasn’t great. Someone would received this long PDF, they would have to scroll to find the date or topic of the next additional_notes, and overall didn’t look great.
|
||||
While she had developed the Google Sheets and Google Slide system to make everything a bit more legible and navigable, there was still an element of copy and paste from the Sheet to the Slide....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2024-02-25 10:14:30 -0500 EST'>February 25, 2024</span> · 14 min · 2795 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to Google Sheets to Slides with Scripts: an Automation" href="//localhost:1313/posts/google_scripts_sheets_to_slides.html"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
|
||||
</span>
|
||||
</footer>
|
||||
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
|
||||
<path d="M12 6H0l6-6z" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
<script>
|
||||
let menu = document.getElementById('menu')
|
||||
if (menu) {
|
||||
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
|
||||
menu.onscroll = function () {
|
||||
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
|
||||
}
|
||||
}
|
||||
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener("click", function (e) {
|
||||
e.preventDefault();
|
||||
var id = this.getAttribute("href").substr(1);
|
||||
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
|
||||
behavior: "smooth"
|
||||
});
|
||||
} else {
|
||||
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
|
||||
}
|
||||
if (id === "top") {
|
||||
history.replaceState(null, null, " ");
|
||||
} else {
|
||||
history.pushState(null, null, `#${id}`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<script>
|
||||
var mybutton = document.getElementById("top-link");
|
||||
window.onscroll = function () {
|
||||
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
|
||||
mybutton.style.visibility = "visible";
|
||||
mybutton.style.opacity = "1";
|
||||
} else {
|
||||
mybutton.style.visibility = "hidden";
|
||||
mybutton.style.opacity = "0";
|
||||
}
|
||||
};
|
||||
|
||||
</script>
|
||||
<script>
|
||||
document.getElementById("theme-toggle").addEventListener("click", () => {
|
||||
if (document.body.className.includes("dark")) {
|
||||
document.body.classList.remove('dark');
|
||||
localStorage.setItem("pref-theme", 'light');
|
||||
} else {
|
||||
document.body.classList.add('dark');
|
||||
localStorage.setItem("pref-theme", 'dark');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
19
public/tags/sheets/index.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>Sheets on Norm-working Packets 💾</title>
|
||||
<link>//localhost:1313/tags/sheets.html</link>
|
||||
<description>Recent content in Sheets on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Sun, 25 Feb 2024 10:14:30 -0500</lastBuildDate>
|
||||
<atom:link href="//localhost:1313/tags/sheets/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Google Sheets to Slides with Scripts: an Automation</title>
|
||||
<link>//localhost:1313/posts/google_scripts_sheets_to_slides.html</link>
|
||||
<pubDate>Sun, 25 Feb 2024 10:14:30 -0500</pubDate>
|
||||
<guid>//localhost:1313/posts/google_scripts_sheets_to_slides.html</guid>
|
||||
<description>Learn about running a quick automation that turns rows in your Google Sheets and plugs it into a Google [Slide](2024-02-26_slide.md) template to easily share more attractive content.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
10
public/tags/sheets/page/1.html
Normal file
@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>//localhost:1313/tags/sheets.html</title>
|
||||
<link rel="canonical" href="//localhost:1313/tags/sheets.html">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=//localhost:1313/tags/sheets.html">
|
||||
</head>
|
||||
</html>
|
||||
@ -1,24 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" dir="auto">
|
||||
|
||||
<head><meta charset="utf-8">
|
||||
<head><script src="/livereload.js?mindelay=10&v=2&port=1313&path=livereload" data-no-instant defer></script><meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>shell | Norm-working Packets 💾</title>
|
||||
<title>Shell | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/shell.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="../apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="../safari-pinned-tab.svg">
|
||||
<link rel="canonical" href="//localhost:1313/tags/shell.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="//localhost:1313/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="//localhost:1313/favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="//localhost:1313/rsmsncircles.ico">
|
||||
<link rel="apple-touch-icon" href="//localhost:1313/apple-touch-icon.png">
|
||||
<link rel="mask-icon" href="//localhost:1313/safari-pinned-tab.svg">
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/shell/index.xml">
|
||||
<link rel="alternate" type="application/rss+xml" href="//localhost:1313/tags/shell/index.xml">
|
||||
<link rel="alternate" hreflang="en" href="//localhost:1313/tags/shell.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -27,24 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript>
|
||||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-X8VR5M0K20"></script>
|
||||
<script>
|
||||
var doNotTrack = false;
|
||||
if (!doNotTrack) {
|
||||
window.dataLayer = window.dataLayer || [];
|
||||
function gtag(){dataLayer.push(arguments);}
|
||||
gtag('js', new Date());
|
||||
gtag('config', 'G-X8VR5M0K20', { 'anonymize_ip': false });
|
||||
}
|
||||
</script>
|
||||
<meta property="og:title" content="shell" />
|
||||
</noscript><meta property="og:title" content="Shell" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/shell.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
<meta property="og:url" content="//localhost:1313/tags/shell.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="shell"/>
|
||||
<meta name="twitter:title" content="Shell"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -60,7 +50,7 @@ if (!doNotTrack) {
|
||||
<header class="header">
|
||||
<nav class="nav">
|
||||
<div class="logo">
|
||||
<a href="../" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<a href="//localhost:1313/" accesskey="h" title="Norm-working Packets 💾 (Alt + H)">Norm-working Packets 💾</a>
|
||||
<div class="logo-switches">
|
||||
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
|
||||
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
|
||||
@ -82,36 +72,66 @@ if (!doNotTrack) {
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
<li>
|
||||
<a href="//localhost:1313/posts.html" title="Posts">
|
||||
<span>Posts</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="//localhost:1313/">Home</a> » <a href="//localhost:1313/tags.html">Tags</a></div>
|
||||
<h1>
|
||||
shell
|
||||
Shell
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<figure class="entry-cover"><img loading="lazy" src="../new-website-cover.png" alt="Add explainshell.com to your list of favorite websites! Right behind regex101.com.">
|
||||
</figure>
|
||||
<header class="entry-header">
|
||||
<h2>New Favorite Website!
|
||||
<h2 class="entry-hint-parent">New Favorite Website!
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>For the longest time, I had Regex101 as a bookmarked website for (almost) daily use. Not only does it help me build muscle memory for using regex queries without banging my head against the wall with a bunch of print and debug statements, but if I happen to be in a different language - say in javascript instead of python - it gives you the correct syntax for using regex in that language....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2023-09-27 10:07:01 -0400 EDT'>September 27, 2023</span> · 2 min · 377 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to New Favorite Website!" href="../posts/new-favorite-website.html"></a>
|
||||
<a class="entry-link" aria-label="post link to New Favorite Website!" href="//localhost:1313/posts/new-favorite-website.html"></a>
|
||||
</article>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2 class="entry-hint-parent">Useful Commands
|
||||
<span class="entry-hint" title="Draft">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 -960 960 960" fill="currentColor">
|
||||
<path
|
||||
d="M160-410v-60h300v60H160Zm0-165v-60h470v60H160Zm0-165v-60h470v60H160Zm360 580v-123l221-220q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q9 9 13 20t4 22q0 11-4.5 22.5T862.09-380L643-160H520Zm300-263-37-37 37 37ZM580-220h38l121-122-18-19-19-18-122 121v38Zm141-141-19-18 37 37-18-19Z" />
|
||||
</svg>
|
||||
</span>
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
<p>This post will act a bit like a living document of all the useful commands and short scripts that I use regularly. Some will be as simple as ls | wc -l which counts the number of files in your current working directory, and others will be better suited to small scripts. As this grows, I will hopefully break these into more logical categories.
|
||||
Find by File type This command will find every file in your current working directory by the specified file extension....</p>
|
||||
</div>
|
||||
<footer class="entry-footer"><span title='2023-09-26 12:04:05 -0400 EDT'>September 26, 2023</span> · 2 min · 262 words · Me</footer>
|
||||
<a class="entry-link" aria-label="post link to Useful Commands" href="//localhost:1313/posts/useful-commands.html"></a>
|
||||
</article>
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="//localhost:1313/">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>shell on Norm-working Packets 💾</title>
|
||||
<link>/tags/shell.html</link>
|
||||
<description>Recent content in shell on Norm-working Packets 💾</description>
|
||||
<title>Shell on Norm-working Packets 💾</title>
|
||||
<link>//localhost:1313/tags/shell.html</link>
|
||||
<description>Recent content in Shell on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate><atom:link href="/tags/shell/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Wed, 27 Sep 2023 10:07:01 -0400</lastBuildDate>
|
||||
<atom:link href="//localhost:1313/tags/shell/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>New Favorite Website!</title>
|
||||
<link>/posts/new-favorite-website.html</link>
|
||||
<link>//localhost:1313/posts/new-favorite-website.html</link>
|
||||
<pubDate>Wed, 27 Sep 2023 10:07:01 -0400</pubDate>
|
||||
|
||||
<guid>/posts/new-favorite-website.html</guid>
|
||||
<guid>//localhost:1313/posts/new-favorite-website.html</guid>
|
||||
<description>Regex101 has long been one of my favorite reference tools. As of today, I will be adding ExplainShell to the list of must-use tools!.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Useful Commands</title>
|
||||
<link>//localhost:1313/posts/useful-commands.html</link>
|
||||
<pubDate>Tue, 26 Sep 2023 12:04:05 -0400</pubDate>
|
||||
<guid>//localhost:1313/posts/useful-commands.html</guid>
|
||||
<description>A collection and living document of useful shell commands that I use.</description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<title>/tags/shell.html</title>
|
||||
<link rel="canonical" href="../../../tags/shell.html">
|
||||
<title>//localhost:1313/tags/shell.html</title>
|
||||
<link rel="canonical" href="//localhost:1313/tags/shell.html">
|
||||
<meta name="robots" content="noindex">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="refresh" content="0; url=../../../tags/shell.html">
|
||||
<meta http-equiv="refresh" content="0; url=//localhost:1313/tags/shell.html">
|
||||
</head>
|
||||
</html>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>snippet | Norm-working Packets 💾</title>
|
||||
<title>Snippet | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/snippet.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/snippet/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/snippet.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="snippet" />
|
||||
</noscript><meta property="og:title" content="Snippet" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/snippet.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="snippet"/>
|
||||
<meta name="twitter:title" content="Snippet"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
snippet
|
||||
Snippet
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Neovim Subtitute Magic
|
||||
<h2 class="entry-hint-parent">Neovim Subtitute Magic
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -106,7 +107,7 @@ In order to greatly reduce the number of nodes needed in the single recipe, I cr
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>snippet on Norm-working Packets 💾</title>
|
||||
<title>Snippet on Norm-working Packets 💾</title>
|
||||
<link>/tags/snippet.html</link>
|
||||
<description>Recent content in snippet on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Snippet on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Wed, 15 Nov 2023 08:08:49 -0500</lastBuildDate><atom:link href="/tags/snippet/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Wed, 15 Nov 2023 08:08:49 -0500</lastBuildDate>
|
||||
<atom:link href="/tags/snippet/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Neovim Subtitute Magic</title>
|
||||
<link>/posts/find_and_replace_in_neovim.html</link>
|
||||
<pubDate>Wed, 15 Nov 2023 08:08:49 -0500</pubDate>
|
||||
|
||||
<guid>/posts/find_and_replace_in_neovim.html</guid>
|
||||
<description>I was able to speed up some of my workflows by learning how to search and replace specifics in Neovim!</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>tools | Norm-working Packets 💾</title>
|
||||
<title>Tools | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/tools.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/tools/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/tools.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="tools" />
|
||||
</noscript><meta property="og:title" content="Tools" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/tools.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="tools"/>
|
||||
<meta name="twitter:title" content="Tools"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
tools
|
||||
Tools
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>Mini Neovim
|
||||
<h2 class="entry-hint-parent">Mini Neovim
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -105,7 +106,7 @@
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>tools on Norm-working Packets 💾</title>
|
||||
<title>Tools on Norm-working Packets 💾</title>
|
||||
<link>/tags/tools.html</link>
|
||||
<description>Recent content in tools on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Tools on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Fri, 20 Oct 2023 18:38:13 -0400</lastBuildDate><atom:link href="/tags/tools/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Fri, 20 Oct 2023 18:38:13 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/tools/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>Mini Neovim</title>
|
||||
<link>/posts/mini_neovim.html</link>
|
||||
<pubDate>Fri, 20 Oct 2023 18:38:13 -0400</pubDate>
|
||||
|
||||
<guid>/posts/mini_neovim.html</guid>
|
||||
<description>Neovim is already super efficient and lightweight, but sometimes I need a barebones config for my servers and remote, miniature development environments.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||
@ -5,12 +5,12 @@
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>tutorial | Norm-working Packets 💾</title>
|
||||
<title>Tutorial | Norm-working Packets 💾</title>
|
||||
<meta name="keywords" content="">
|
||||
<meta name="description" content="A semi-technical blog & series of experiences working in tech and my homelab">
|
||||
<meta name="author" content="Norm Rasmussen">
|
||||
<link rel="canonical" href="../tags/tutorial.html">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.5cfc680b1eeaeef9efbced92d46c2a9e876b72ee14fba85846afc4cff9e6e6f8.css" integrity="sha256-XPxoCx7q7vnvvO2S1Gwqnodrcu4U+6hYRq/Ez/nm5vg=" rel="preload stylesheet" as="style">
|
||||
<link crossorigin="anonymous" href="../assets/css/stylesheet.b609c58d5c11bb90b1a54e04005d74ad1ddf22165eb79f5533967e57df9c3b50.css" integrity="sha256-tgnFjVwRu5CxpU4EAF10rR3fIhZet59VM5Z+V9+cO1A=" rel="preload stylesheet" as="style">
|
||||
<link rel="icon" href="../favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="../rsmsncircles.ico">
|
||||
@ -19,8 +19,7 @@
|
||||
<meta name="theme-color" content="#2e2e33">
|
||||
<meta name="msapplication-TileColor" content="#2e2e33">
|
||||
<link rel="alternate" type="application/rss+xml" href="../tags/tutorial/index.xml">
|
||||
<script defer data-domain="selfhosted.rsmsn.co" src="https://analytics.rsmsn.co/js/script.js"></script>
|
||||
|
||||
<link rel="alternate" hreflang="en" href="../tags/tutorial.html">
|
||||
<noscript>
|
||||
<style>
|
||||
#theme-toggle,
|
||||
@ -29,13 +28,13 @@
|
||||
}
|
||||
|
||||
</style>
|
||||
</noscript><meta property="og:title" content="tutorial" />
|
||||
</noscript><meta property="og:title" content="Tutorial" />
|
||||
<meta property="og:description" content="A semi-technical blog & series of experiences working in tech and my homelab" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content="/tags/tutorial.html" /><meta property="og:site_name" content="Norm-working Packets" />
|
||||
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
<meta name="twitter:title" content="tutorial"/>
|
||||
<meta name="twitter:title" content="Tutorial"/>
|
||||
<meta name="twitter:description" content="A semi-technical blog & series of experiences working in tech and my homelab"/>
|
||||
|
||||
</head>
|
||||
@ -73,6 +72,8 @@
|
||||
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
|
||||
</svg>
|
||||
</button>
|
||||
<ul class="lang-switch"><li>|</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<ul id="menu">
|
||||
@ -85,15 +86,15 @@
|
||||
</nav>
|
||||
</header>
|
||||
<main class="main">
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a></div>
|
||||
<header class="page-header"><div class="breadcrumbs"><a href="../">Home</a> » <a href="../tags.html">Tags</a></div>
|
||||
<h1>
|
||||
tutorial
|
||||
Tutorial
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<article class="post-entry tag-entry">
|
||||
<header class="entry-header">
|
||||
<h2>ESP8266 Medicine Indicator Light
|
||||
<h2 class="entry-hint-parent">ESP8266 Medicine Indicator Light
|
||||
</h2>
|
||||
</header>
|
||||
<div class="entry-content">
|
||||
@ -105,7 +106,7 @@
|
||||
</main>
|
||||
|
||||
<footer class="footer">
|
||||
<span>© 2023 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>© 2024 <a href="../">Norm-working Packets 💾</a></span>
|
||||
<span>
|
||||
Powered by
|
||||
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
|
||||
<channel>
|
||||
<title>tutorial on Norm-working Packets 💾</title>
|
||||
<title>Tutorial on Norm-working Packets 💾</title>
|
||||
<link>/tags/tutorial.html</link>
|
||||
<description>Recent content in tutorial on Norm-working Packets 💾</description>
|
||||
<description>Recent content in Tutorial on Norm-working Packets 💾</description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-us</language>
|
||||
<lastBuildDate>Mon, 16 Oct 2023 11:34:14 -0400</lastBuildDate><atom:link href="/tags/tutorial/index.xml" rel="self" type="application/rss+xml" />
|
||||
<lastBuildDate>Mon, 16 Oct 2023 11:34:14 -0400</lastBuildDate>
|
||||
<atom:link href="/tags/tutorial/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>ESP8266 Medicine Indicator Light</title>
|
||||
<link>/posts/medicine_indicator_light.html</link>
|
||||
<pubDate>Mon, 16 Oct 2023 11:34:14 -0400</pubDate>
|
||||
|
||||
<guid>/posts/medicine_indicator_light.html</guid>
|
||||
<description>Learn how to make an ESP8266 and a few simple components into an indicator light.</description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
||||
|
||||