Posts

Meta

Lorem Ipsum

  • 2865 words

This is a page in which I test and trial formatting, features, and typography by seeing how they interact in complex arrangements to catch edge cases. If you’d like to read the logic behind all of this, check out my posts on both The Design of This Site and The Implementation of This Site.

Text Formatting

Escaping markdown can be done with *some slashes* (like so \*some slashes\*).

Normal text. Italic text. Bold text. Bold italic text. Strikethrough text. Italic strikethrough text. Bold strikethrough text. Bold italic strikethrough text. Code text. Code italic text. Code bold text. Code bold italic text. Code strikethrough text. Code bold italic strikethrough text.

Normal superscriptsup. Normal subscriptsub. Italic superscriptsup. Italic subscriptsub. Bold superscriptsup. Bold subscriptsub. Bold italic superscriptsup. Bold italic subscriptsub. Strikethrough superscriptsub. Strikethrough subscriptsub. Bold italic strikethrough superscriptsup. Bold italic strikethrough subscriptsub.

Superscript and subscript togethersupsub.

You can define structure with HTML and then style it with CSS. You can do more interactive stuff with JS.

These are abbreviations that aren’t actually formatted like abbreviations but should be handled during building. NASA. DVD. GIF. 200MB.

You can do a hard refresh on a webpage using Ctrl + Shift + R

pneumonoultramicroscopicsilicovolcanoconiosisisaverylongwordpneumonoultramicroscopicsilicovolcanoconiosisisaverylongwordpneumonoultramicroscopicsilicovolcanoconiosisisaverylongword

Maths

100⁄200 158⁄851

≈ ~ = ≠ ∙ ÷ − + ± × ∕ > ≥ ∞ < ≤ % √

I present: numbers. 10, 20, 30, 40, 800. Threw you off there. 1000. 2500. 95837593756191234567890. That’s some numbers for ya.

Swashes

A Á Ă Â Ä À Ā Ą Ã E É Ě Ê Ë Ė È Ē Ę E É Ě Ê Ë Ė È Ē Ę F L Ĺ Ľ Ļ Ł M M N Ń Ň Ņ Ñ R Ŕ Ř Ŗ R Ŕ Ř Ŗ S T Ť Ţ Ț W n ń ň ņ ñ r ŕ ř ŗ t ť ţ ț y ý ÿ

Heading Levels

Quod provident corporis natus. Voluptatem sunt magnam nobis quo quas repudiandae magnam. Qui maxime dolor harum. Aspernatur tempore ea id sed fugit. Dolores cum tenetur in quisquam et maiores quam. Suscipit est aperiam rerum consectetur velit officiis.

Heading Level 4

Aliquam non sed beatae. Deleniti laborum ut eveniet autem. Aut incidunt sint ex ut occaecati. Praesentium et ut cumque beatae.

Heading Level 5

Quaerat deleniti quos accusamus sit qui. Est temporibus fugiat cupiditate aut sit hic ex cum. Ea quaerat non dolor et iure repellendus velit. Nihil ea tempore ut libero aperiam nulla aut necessitatibus. Est praesentium fuga rerum aut ipsa et aut id.

Heading Level 6

Aliquam laborum voluptate molestiae illo sunt dolorum. Qui fuga qui fuga impedit libero tenetur ex aliquam. Sit molestiae ut sint nulla deserunt molestiae eos veritatis. Neque perferendis culpa ad omnis. Ipsum nisi facere cum molestiae aut possimus exercitationem repellat. Voluptatum blanditiis optio officiis et quo.

Normal internal link. Code internal link. Bold italic strikethrough subscript internal linksub. Bold italic strikethrough superscript external linksup.

Anchor link. Code anchor link. Bold italic strikethrough subscript anchor linksub. Bold italic strikethrough superscript external linksup.

External link. Code external link. Bold italic strikethrough subscript external linksub. Bold italic strikethrough superscript external linksup.

Here is an abbreviation with a link: AM.

(Links specified with <>)
https://vale.rocks
example@example.com

Lists

Unordered List

  • Item one
    • Item one’s child
      • Item one’s child’s child
        • Item one’s child’s child’s child
  • Item two
  • Item three

Ordered List

  1. Item one
    1. Item one’s child
      1. Item one’s child’s child
      2. Item one’s child’s child’s sibling
        1. Item one’s child’s child’s sibling’s child
  2. Item two
  3. Item three

Task List

  • Completed task
  • Task left to do

Blockquotes

Normal text. Italic text. Bold text. Bold italic text. Strikethrough text. Italic strikethrough text. Bold strikethrough text. Bold italic strikethrough text. Code text. Code italic text. Code bold text. Code bold italic text. Code strikethrough text. Code bold italic strikethrough text.

Id deleniti eveniet non placeat quia libero. Non soluta consequatur sit accusamus illum veniam. Animi ab ab omnis iusto aut. Porro tempora fugit placeat perspiciatis et rem consectetur sequi.

Normal text. Italic text. Bold text. Bold italic text. Strikethrough text. Italic strikethrough text. Bold strikethrough text. Bold italic strikethrough text. Code text. Code italic text. Code bold text. Code bold italic text. Code strikethrough text. Code bold italic strikethrough text.

Id deleniti eveniet non placeat quia libero. Non soluta consequatur sit accusamus illum veniam. Animi ab ab omnis iusto aut. Porro tempora fugit placeat perspiciatis et rem consectetur sequi.

Normal text. Italic text. Bold text. Bold italic text. Strikethrough text. Italic strikethrough text. Bold strikethrough text. Bold italic strikethrough text. Code text. Code italic text. Code bold text. Code bold italic text. Code strikethrough text. Code bold italic strikethrough text.

Id deleniti eveniet non placeat quia libero. Non soluta consequatur sit accusamus illum veniam. Animi ab ab omnis iusto aut. Porro tempora fugit placeat perspiciatis et rem consectetur sequi.

Normal text. Italic text. Bold text. Bold italic text. Strikethrough text. Italic strikethrough text. Bold strikethrough text. Bold italic strikethrough text. Code text. Code italic text. Code bold text. Code bold italic text. Code strikethrough text. Code bold italic strikethrough text.

Id deleniti eveniet non placeat quia libero. Non soluta consequatur sit accusamus illum veniam. Animi ab ab omnis iusto aut. Porro tempora fugit placeat perspiciatis et rem consectetur sequi.

Details

Details element

Quis voluptatem nisi minima eaque molestiae non magnam tempora. Deleniti aut doloremque ut illum et enim sit blanditiis. Sequi facere voluptas et voluptas rerum maiores qui. Et nobis et dolor ipsum nihil debitis. Voluptates id esse officia aut est nulla.

Open details element

This details element defaults to open.

Quis voluptatem nisi minima eaque molestiae non magnam tempora. Deleniti aut doloremque ut illum et enim sit blanditiis. Sequi facere voluptas et voluptas rerum maiores qui. Et nobis et dolor ipsum nihil debitis. Voluptates id esse officia aut est nulla.

Tables

Vehicle Name Primary User Vehicle Type Key Features Special Functions
Thunderbird 1 Scott Tracy Rocket-Powered VTOL Jet Sleek design, vertical take-off and landing (VTOL) High-speed, rescue operations, aerial manoeuvrability
Thunderbird 2 Virgil Tracy Transport Aircraft Large cargo hold, modular design, green colour Carries vehicles for land and sea rescues
Thunderbird 3 Alan Tracy Space Rocket Red design, space travel capabilities Space missions, long-range travel
Thunderbird 4 Gordon Tracy Submarine Yellow, compact, built for underwater exploration Submarine for underwater rescue and exploration
Thunderbird 5 John Tracy Space Station Satellite orbiting Earth, advanced communication Monitoring global distress signals from space
Large table presenting the various Thunderbirds vehicles.
ID Value A Value B Value C Value D
Text One 12.5 88.2 45.1 73.4
Text Two 19.8 67.4 52.3 81.7
Text Three 15.3 90.1 39.8 60.2
Small table presenting numeric data.

Admonitions

Note

Important info users should be aware of, even when skimming.

Tip

Practical advice for improving or simplifying tasks.

Important

Critical info for achieving the desired outcome.

Warning

Urgent info requiring immediate attention to prevent issues.

Caution

Alerts about potential risks or negative consequences.

Codeblocks

<!doctype html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<title>Lorem Ipsum Generator</title>
		<link rel="stylesheet" href="styles.css" />
	</head>
	<body>
		<main class="container">
			<h1>Lorem Ipsum Generator</h1>
			<div class="controls">
				<button id="generate">Generate Text</button>
				<select id="paragraphs">
					<option value="1">1 Paragraph</option>
					<option value="3">3 Paragraphs</option>
					<option value="5">5 Paragraphs</option>
				</select>
			</div>
		</main>
		<script src="script.js"></script>
	</body>
</html>
/* Example comment */

:root {
	--accent-color: #e74c3c;
	--text-color: #333;
}

.controls {
	margin: 0 auto;
}

button,
select {
	padding: 0.5rem 1rem;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	transition: all 0.3s ease;
}

button {
	background: var(--accent-color);
	color: var(--text-color);

	&:hover {
		transform: translateY(-2px);
		box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
	}
}
class LoremIpsumGenerator {
	constructor() {
		this.words = ["lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "sed", "do", "eiusmod", "tempor"];
	}

	generateSentence() {
		const length = 8 + Math.floor(Math.random() * 8);
		return (
			Array(length)
				.fill()
				.map(() => this.words[Math.floor(Math.random() * this.words.length)])
				.join(" ")
				.charAt(0)
				.toUpperCase() +
			this.words.slice(1) +
			"."
		);
	}

	generateParagraph() {
		const sentences = 3 + Math.floor(Math.random() * 4);
		return Array(sentences)
			.fill()
			.map(() => this.generateSentence())
			.join(" ");
	}
}

const generator = new LoremIpsumGenerator();
document.getElementById("generate").addEventListener("click", () => {
	const paragraphs = document.getElementById("paragraphs").value;
	const output = Array(parseInt(paragraphs))
		.fill()
		.map(() => generator.generateParagraph())
		.join("\n\n");
	document.getElementById("output").textContent = output;
});
use rand::Rng;
use std::collections::HashMap;

struct LoremIpsum {
    words: Vec<String>,
    cache: HashMap<usize, String>,
}

impl LoremIpsum {
    fn new() -> Self {
        let words = vec![
            "lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit"
        ]
        .iter()
        .map(|&s| s.to_string())
        .collect();

        LoremIpsum {
            words,
            cache: HashMap::new(),
        }
    }

    fn generate_paragraph(&mut self, seed: usize) -> String {
        if let Some(cached) = self.cache.get(&seed) {
            return cached.clone();
        }

        let mut rng = rand::thread_rng();
        let sentence_count = rng.gen_range(3..7);

        let paragraph: String = (0..sentence_count)
            .map(|_| self.generate_sentence(&mut rng))
            .collect::<Vec<_>>()
            .join(" ");

        self.cache.insert(seed, paragraph.clone());
        paragraph
    }

    fn generate_sentence(&self, rng: &mut impl rand::Rng) -> String {
        let word_count = rng.gen_range(6..12);
        let mut sentence: String = (0..word_count)
            .map(|_| {
                let word = &self.words[rng.gen_range(0..self.words.len())];
                word.to_string()
            })
            .collect::<Vec<_>>()
            .join(" ");

        sentence.chars().next().unwrap().to_uppercase().to_string() + &sentence[1..] + "."
    }
}

Inputs


Checkboxes:



End/Side Notes

There is a note after this 1.

There is not a note after this.

This is just some text.

Here are a lot of them, to see if they break… 2 3 4 5 6 7 8.

Definitions

Frood
Someone who is really amazingly together.
Defenestration
The act of throwing someone or something out of a window.
Schlock
Something that is low-quality, junky, or tacky.
Flibbertigibbet
A scatterbrained, silly person.
Doozy
Some unusual. Usually troublesome.

Figures

Standard image not in a figure: A picture of a Flipper Zero sitting on a table.

A picture of a Flipper Zero sitting on a table.
Right floated figure with caption.
A picture of a Flipper Zero sitting on a table.
Left floated figure with caption.

Some placeholder text for presenting figure placements. Hopefully things float where they should. If they don’t, that’ll be wickedly annoying.

Really annoying. I spend a lot of time trying to get things to look correct on this godforsaken site, and then I go to take a break and check out Hacker News only to find number one on the front page is some rando’s default WordPress template.

At least the super-ugly websites made by hackers are stylised, even if ugly. I’d take an ugly design built with intent any day over a template with no care put into it.

‘Yo, your site is broken.’ ‘On what browser?’ ‘Samsung Internet.’ ‘Sounds about right.’

Genuine interaction I have fairly frequently. What an awful excuse for a browser. Did they forget how to update Chromium?

Y’know what, maybe I should just give up. Maybe the real lesson we’ve learnt along the way is that people don’t notice good design but hate design that is different. Different and good? Bad. Different and bad? Unique.

If this site were a book, rather than a web page, I’d rip up the pages, type everything out on a typewriter, and run it through a photocopier. Then I’d staple all the pages together haphazardly and just start throwing it at people like a madman.

They’d lock me up, sure, but at least nobody would be confused by small caps. I mean, seriously, guys. Small caps. They aren’t difficult to get a grasp on.

Colour Palette

Black Dark Grey Grey Bright Grey White Bright White Red Bright Red Orange Bright Orange Yellow Bright Yellow Green Bright Green Blue Bright Blue Cyan Bright Cyan Magenta Bright Magenta

Black Dark Grey Grey Bright Grey White Bright White Red Bright Red Orange Bright Orange Yellow Bright Yellow Green Bright Green Blue Bright Blue Cyan Bright Cyan Magenta Bright Magenta

Horizontal Rule

And finally, a nice horizontal rule…


Footnotes

  1. This is a footnote, but more accurately it’s an endnote, and it’ll appear as a sidenote on larger screens.

  2. This is more of the same. The issue with this set of close-together footnote/endnote/sidenote/whatever references is that they’re a bit hard to target, especially on a phone. Shouldn’t happen often though, so I’ll ignore it.

  3. Id ex ipsum rerum tempore. Sunt ab deserunt impedit architecto reprehenderit ex. Corporis dolores qui accusamus dolorem. Laudantium optio voluptatem eum id qui. Est ut laborum unde.

  4. These should move down the screen, due to their references being so close that they’d otherwise overlap. Of course, if you’re on a narrow viewport, then I may as well be speaking to a wall, because it doesn’t matter.

  5. Now I think about it further, it doesn’t really matter if you’re lacking JavaScript or if I broke the script that handles sidenotes and popovers. Oh well. I tried.

  6. Similique laboriosam quas ipsam molestias quia. Earum maxime quo veniam modi. Exercitationem et odit cum. Aspernatur et ad dolor voluptatem aperiam nihil et ut.

  7. This footnote is sandwiched between a few others, but it should still look alright.

  8. Eaque perferendis eos illo. Cum quos qui aut commodi. Et cumque quaerat molestiae. Quo laboriosam itaque odit dolorem perferendis eius.