did some more mining off camera
also posts can be hidden by prepending a _
This commit is contained in:
parent
302d405cc3
commit
63644ecc7f
|
@ -284,7 +284,36 @@ const tokens2html = (tokens, title) => {
|
|||
for (let token of tokens) {
|
||||
switch (token.type) {
|
||||
case "toc":
|
||||
output += "TABLE LE CONTENTOS"
|
||||
let headers = tokens.filter(x => x.type == "header");
|
||||
|
||||
let listHTML = '';
|
||||
let currentLevel = 0;
|
||||
|
||||
headers.forEach(header => {
|
||||
let indent = ' '.repeat(header.level - 1); // Indentation based on header level
|
||||
|
||||
// Check if we need to create a new <ul> for this level
|
||||
if (header.level > currentLevel) {
|
||||
listHTML += '<ul>'; // New nested list
|
||||
} else if (header.level < currentLevel) {
|
||||
listHTML += '</ul>'.repeat(currentLevel - header.level); // Close previous <ul>s
|
||||
}
|
||||
|
||||
// Add the list item
|
||||
listHTML += `
|
||||
${indent}<li><a href="#${header.content.replace(/\s+/g, '-')}">${header.content}</a></li>
|
||||
`;
|
||||
|
||||
currentLevel = header.level; // Update the current level
|
||||
});
|
||||
|
||||
// Close any remaining <ul> elements
|
||||
if (currentLevel > 0) {
|
||||
listHTML += '</ul>'.repeat(currentLevel-1);
|
||||
}
|
||||
|
||||
|
||||
output += "<div class=\"toc\"><h2>Table of Contents</h2>" + listHTML + "</div>";
|
||||
break;
|
||||
case "title":
|
||||
output += `<h1>${title}</h1>`
|
||||
|
|
|
@ -3,10 +3,10 @@ Functions Vectors Evaluate Isolate Solve Matrix Tensor Calculus Derivation Limit
|
|||
# Openbirch
|
||||
Cool fucking cas tool.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
2
|
||||
Minecraft Rust Async Networking Proxy CRIU
|
||||
\title
|
||||
\toc
|
||||
# Minecraft servers are HUNGRY
|
||||
|
||||
They hunger for your ram and your cpu. This makes it either expensive or
|
||||
|
@ -46,7 +48,7 @@ an internal port based on the subdomain. I quickly found out that this did
|
|||
some research I decided on creating my own reverse proxy that spoke the
|
||||
minecraft protocol instead of HTTP.
|
||||
|
||||
# The Minecraft protocol
|
||||
## The Minecraft protocol
|
||||
|
||||
Minecraft implements its own protocol consistent of packets. My first idea was to see if anybody had created a
|
||||
rust library for dealing with minecraft packets.
|
||||
|
@ -56,7 +58,7 @@ was useful for seeing how an implementation of parsing packets was done, but ult
|
|||
|
||||
*images of minecraft protocol*
|
||||
|
||||
# Detecting the subdomain
|
||||
## Detecting the subdomain
|
||||
|
||||
Luckily for me, the Minecraft procotol sends the full address it is trying to connect to during the handshake. This meant that I simply
|
||||
had to parse the handshake and extract the subdomain from the address, see if it matches any configured server, and then redirect all
|
||||
|
@ -76,7 +78,7 @@ but the sockets are connected on the kernel level.
|
|||
|
||||
After hours of debugging I found the solution. `stream.set_nodelay(true)`
|
||||
|
||||
## ...
|
||||
**...**
|
||||
|
||||
**All this time the problem was as simple as saying ** `if (slow) { dont(); }`!
|
||||
|
||||
|
|
17
public/posts/_toc.md
Normal file
17
public/posts/_toc.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
0
|
||||
Tick Tock Cock
|
||||
\title
|
||||
|
||||
\toc
|
||||
|
||||
# Big Chapter
|
||||
|
||||
## Sub-chapter
|
||||
|
||||
## Sub-chapter 2
|
||||
|
||||
# Another big chapter
|
||||
|
||||
## Sub-Chapter again
|
||||
|
||||
### Third sub chapter :O
|
|
@ -20,6 +20,12 @@
|
|||
text-justify: auto;
|
||||
}
|
||||
|
||||
.toc {
|
||||
background: var(--background-text);
|
||||
border-radius: var(--radius);
|
||||
padding: var(--padding);
|
||||
}
|
||||
|
||||
pre.quote {
|
||||
font: inherit;
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
0
|
||||
Tick Tock Cock
|
||||
# Table of Contents test
|
||||
|
||||
\toc
|
|
@ -125,6 +125,8 @@ fn handle_connection(mut stream: TcpStream) {
|
|||
if y.is_some() {
|
||||
if y.unwrap().ends_with(".html") {
|
||||
false
|
||||
} else if y.unwrap().starts_with("_") {
|
||||
false
|
||||
} else {
|
||||
true
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue