diff --git a/.eleventy.js b/.eleventy.js index 9f74866..3386c27 100644 --- a/.eleventy.js +++ b/.eleventy.js @@ -11,18 +11,52 @@ const markdownItFootnote = require("markdown-it-footnote") // Local utilities/data const packageVersion = require("./package.json").version; const pluginTOC = require('eleventy-plugin-toc'); - +const embeds = require("eleventy-plugin-embed-everything"); +const instamarkup = function(url) { + const pattern = /(?=(\s*))\1(?:]*?>)??(?=(\s*))\2(?:https?:\/\/)?(?:w{3}\.)?(?:instagram\.com)\/(?:p\/)?([0-9a-zA-Z-_]{11})(?:\S*)(?=(\s*))\4(?:<\/a>)?(?=(\s*))\5/; + const match = pattern.exec(url) + const id = match ? match[3] : null + let out = '' + if (id) { + out = '
`; + out += '
'; + } else { + out = ``; + } + return out; +}; module.exports = function (eleventyConfig) { + let markdownLibrary = markdownIt({ + html: true, + }).use(markdownItAnchor, { + permalink: markdownItAnchor.permalink.ariaHidden({ + class: "tdbc-anchor", + space: false, + symbol: "🔗", + }), + level: [1, 2, 3], + slugify: (str) => + slugify(str, { + lower: true, + strict: true, + remove: /["]/g, + }), + }).use(markdownItFootnote); + eleventyConfig.setLibrary("md", markdownLibrary); eleventyConfig.addPlugin(socialImages); eleventyConfig.addPlugin(syntaxHighlight); + eleventyConfig.addPlugin(embeds); eleventyConfig.addPlugin(pluginRss); eleventyConfig.addPlugin(pluginTOC, { - tags: ['h2', 'h3', 'h4'], // which heading tags are selected headings must each have an ID attribute - wrapper: 'nav', // element to put around the root `ol`/`ul` - wrapperClass: 'toc', // class for the element around the root `ol`/`ul` - ul: false, // if to use `ul` instead of `ol` - flat: false, // if subheadings should appear as child of parent or as a sibling -}) + tags: ['h2', 'h3', 'h4'], // which heading tags are selected headings must each have an ID attribute + wrapper: 'nav', // element to put around the root `ol`/`ul` + wrapperClass: 'toc', // class for the element around the root `ol`/`ul` + ul: false, // if to use `ul` instead of `ol` + flat: false, // if subheadings should appear as child of parent or as a sibling + }) eleventyConfig.addWatchTarget("./src/sass/"); eleventyConfig.addPassthroughCopy("./src/css"); @@ -45,26 +79,24 @@ module.exports = function (eleventyConfig) { }); }); + eleventyConfig.addFilter("instamarkup", instamarkup); + + eleventyConfig.addPairedShortcode("instagallery", function(content,links) { + let instaEmbeds = links.map((l) => instamarkup(l)); + return `` + }) + /* Markdown Overrides */ - let markdownLibrary = markdownIt({ - html: true, - }).use(markdownItAnchor, { - permalink: markdownItAnchor.permalink.ariaHidden({ - class: "tdbc-anchor", - space: false, - symbol: "🔗", - }), - level: [1, 2, 3], - slugify: (str) => - slugify(str, { - lower: true, - strict: true, - remove: /["]/g, - }), - }).use(markdownItFootnote); - eleventyConfig.setLibrary("md", markdownLibrary); - return { +return { passthroughFileCopy: true, pathPrefix: "/hh-project-11ty-starter-kit", dir: { @@ -73,4 +105,4 @@ module.exports = function (eleventyConfig) { layouts: "_layouts", }, }; -}; +} diff --git a/README.md b/README.md index 55686c5..2e1f02a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ + # Hacking History 11ty starter > Originally created by Stephanie Eckles ([@5t3ph](https://twitter.com/5t3ph)), and modified for use in Hacking History by Matt Price. diff --git a/docs/HackHistoryAssignment/index.html b/docs/HackHistoryAssignment/index.html new file mode 100644 index 0000000..516b31c --- /dev/null +++ b/docs/HackHistoryAssignment/index.html @@ -0,0 +1,121 @@ + + + + + + + Revolution Through Queer Fashion: Eastern Europe + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+

+

+ This is a test page for assignment +

+
+
+ + +
+
+

Here is some uniformative content +templates can stack ontop of eachother

+ +
+
+ + + + + diff --git a/docs/Proposal/index.html b/docs/Proposal/index.html new file mode 100644 index 0000000..a0e85f4 --- /dev/null +++ b/docs/Proposal/index.html @@ -0,0 +1,140 @@ + + + + + + + Post-Soviet Queerness | Revolution Through Queer Fashion: Eastern Europe + + + + + + + + + + + + + + + + + + + + + + +
+
+

Post-Soviet Queerness

+

+ Fashion and Social Media: Finding Community Across Borders +

+
+
+ + +
+
+ +

"All the Things She Said" became a queer anthem accompanied by nearly pornographic performances while singing live and queer baiting in the music video. However, despite Katin and Volkova being heterosexual and anti-LGBTQ, they have become complicated international queer cult legends in both Russia and America, spurring conversations on rights and freedom in both countries in a time where queer visibility in mainstream media was a rare sight and only a few years following Ellen coming out. Vice journalist Daisy Jones sums up the complicated status of "All the Things She Said" as a facilitator of queer mobile zones and world-making writing,

+

"I'm imbuing "All the Things She Said" with an excessive sentimentality here. Honestly, listen back to it now – it fucking slaps – and it also offered us actual queer girls the opportunity to reframe a marketing ploy into something powerful in the process – in spite of Volkova's blatant, wince-worthy homophobia. And while this band are so far from being queer icons (please!), the post-Trump need for girls making out in the rain to the sound of some freaky rock-trance hybrid has never been greater. I, for one, am here for it."

+

Similarily, Ukrainian Eurovision song contestant Verka Serduchka acted as a significant post soviet gay icon on an international stage. While the Eurovision Song Contest is known for its eccentricity and Camp, it functions as geopolitical state power identity politics stringing together the queer identity and politics across Europe. However, none is as recognizable as drag star Verka Serduchka, dressed in a sparking track suit and or stereotypical traditional babushka garb. Her large and comically artificial breasts and camp makeup make her a recognizable and popular queer icon. While not gay herself, Serduchka's song КИСС ПЛИЗ (Kiss Me) is an example of how media subverts anti-LGBTQ politics, essentially making its way into popular culture independent from heteronormative institutional powers as a queer counter-public balancing between power dynamic between public versus private. Her music video features Serduchka dressed in the classic tracksuit with a disco ball star on her head. Her breasts are comically large, followed by her character's babushka mother and surrounded by hot twinks. Serduchka sings "I need your dance" and "kiss me" against an EDM track surrounded by sweaty men in towels and floating cellphones. The song and music video are the definition of Camp, garnering over a million views on youtube. While Serduchka may be recognized as a queer icon in Russia and Ukraine, youtube has allowed her drag persona to be recognizable transnationally across language barriers, even making her way into American films, including Melissa McCarthy's "Spy."

+

Today music and art continue to be at the forefront of subversive queer activism and the media's ability to mobilize queer counter-publics further domestically and transnationally. АНГЕЛ УЛЬЯНОВ (ANGEL ULYANOV) music video for Давай замутим is an example of how media continues to "push against institutional powers and diversionary lines explores the power dynamic between public versus private sex acts that develop based on relationships, cultures, and communities only recognized in intimate and close queer communities separate from any relation to domestic spaces, collective nationhood, and property" (Berlant & Warner, 558). Like Verka Seduchka, the music video for Давай замутим illustrates the complex dynamic between public versus private and the relationship between queer count-publics and nationhood. Various motifs of Russian pop culture are represented in the video, from the shaved heads to the tracksuit, while queer zones and aesthetics are simultaneously depicted. In addition, the video features voguing and scenes that make reference to ballroom culture. The camp imagery may be influenced by Western Queer culture; however, the music video illustrates a uniquely Russian experience of a Queer counter-public in today's Moscow.

+

Furthermore, Давай замутим illustrates the complex dynamic between the public and private in mobile Queer zones amongst the Queer people who exist and operate within it. While he vogues in public, the voguing dancer's experience with the music and its connection with his body is made so in private; his headphones on create a second private queer zone within a mobile queer zone. He dances for an audience; despite his clothing representing a heteronormative style in Russia, his dance indicates his place within the Queer community, a sort of audition for validity and space within the counter-public. It is only after grabbing his judger (the red tracksuit) and death dropping that he is welcomed into the counterpublic; his audience in similar outfits lifts him as the scene quickly changes to him voguing in a house party. The video gets "campier" as it continues with the voguing individual; cropping his jumpsuit and covered in glitter, he dances amongst his peers in the safety of the mobile Queer zone. However, this merging of the public and private is only temporary; as the space Queers itself, it is also increasingly subject to violence. Audience members are shown in rapture covered in blood as lights flash violently until the voguing individual is alone surrounded by bodies strewn across the floor, indicating the violent atmosphere Queer individuals must survive in Russia. The video ends with the voguing individual codifying and assimilating into the hegemonic heteronormative aesthetic, a testament to the temporality and fragility of a Queer counter-public survival and the mobility it must operate on to survive.

+ + + +
+ +
+
+ + + + + diff --git a/docs/about copy/index.html b/docs/about copy/index.html new file mode 100644 index 0000000..31165e4 --- /dev/null +++ b/docs/about copy/index.html @@ -0,0 +1,271 @@ + + + + + + + Queer Soviet Russia | Revolution Through Queer Fashion: Eastern Europe + + + + + + + + + + + + + + + + + + + + + + +
+
+

Queer Soviet Russia

+

+ A brief introduction to this starter kit. +

+
+
+ + +
+
+

Intro to Jumpstart

+

This project starter kit, forked from the original 11ty jumpstart repo, is intended to be just enough to be a functional site using 11ty, and also to introduce essential 11ty features.

+

Review the "Quick Start" on the home page for how to get this starter up and running for your project.

+

Meanwhile, here are the original docs about this starter kit. Most of it you don't have to worry about, but you might want to look at VSCode Tips.

+

Jump to:

+ +

Global Site Data and .env

+

As noted in the Quick Start, there are global site data variables in src/_data/meta.json.

+

Those include:

+ +

.env

+

See .env-sample for the single expected value of URL which should be set to your localhost. The sample uses the default 11ty port, so you can simply rename the file to .env if you haven't changed the port.

+

The URL value is then available via the global data described previously, and can be used in templates with meta.url. You can see this used for the RSS feed and sitemap as well as meta tag links to the social share preview images to create the absolute URLs.

+

Template Languages Used

+

Page templates are created as Nunjucks (.njk), and feature are added that expect Markdown for most page content.

+

The home page - src/index.njk - is set to process first as Markdown followed by Nunjucks. This allows mixing HTML with Markdown, with benefits being code syntax highlighting and ability to include classes on HTML elements. This functionality is provided by the templateEngineOverride: md, njk in the frontmatter.

+

A unique case uses Nunjucks to create the json that is used to generate the social share preview images.

+

Review the list of available templating languages in the 11ty docs.

+

Layout Hierarchy and Features

+

There are two layouts and one partial included.

+

New in v1.1.0 - layouts are customized to be located in src/_layouts.

+ +

The src/index.njk template chains to the base layout and includes a loop that will create "cards" for everything in collections.pages.

+

Expected Frontmatter

+

There are only two fields expected:

+ + +

The default setup expects content - using any template language - within pages/.

+

The pages.json in that directory includes a permalink setting so that the file name is used directly to prevent 'pages' being the base of the URL.

+

You can override permalinks per file.

+

Asset Handling

+

In the .eleventy.js config, there are included "pass-throughs" for an img/ directory as well as favicon.png.

+

You can replace the included favicon, and create an img directory or remove the addPassthroughCopy if you do not have need of images.

+

Creating an img directory and keeping the pass-through directive will make images available at /img/[image-file-path] relative to the site root.

+

Linting

+

For Sass, stylelint is included. If you want to keep it, you may want to do a find/replace for tdbc to the prefix of your choice. If not, you'll want to remove the related files at the project root as well as the related items in the package.json.

+

A prettier config is included, with the only update being printWidth: 100.

+

Sass Framework

+

Review the styling documentation for the included minimal Sass framework, particularly the theme variables, to quickly customize the starter.

+

The only notable differences are:

+
    +
  1. sitenav - adjust the styles for the navigation header that appears on pages
  2. +
  3. tdbc-anchor - styles for the # anchor that appears next to page headings (or turn that feature off) can be adjusted in sass/_utilities
  4. +
  5. Additional article-scoped styling for typography as it appears on pages
  6. +
  7. A theme for the prism syntax highlighting for code blocks. You can adjust or replace the theme in sass/_prism.
  8. +
+

Fonts

+

The default font is Baloo 2 and is locally hosted with files in fonts/. If you swap to a different font, be sure to remove the font files as well as the @font-face rules at the top of sass/_fonts.scss, and update the $tdbc-font-family Sass variable.

+ +

Anchor links next to headings throughout Markdown content are generated by an add-on plugin for markdownIt.

+

This feature can be adjusted or removed in the .eleventy.js config file.

+

Generated Features

+

Sitemap

+

A sitemap.xml is generated from all available content.

+

To exclude non-page or non-public content from the sitemap, include eleventyExcludeFromCollections: true in frontmatter, or create a custom filter.

+

RSS Feed

+

An RSS feed is included, and output at [siteurl]/feed/feed.xml.

+

If publishing from Netlify, the included netlify.toml file will create a redirect so that the feed becomes available at [siteurl]/feed.

+

Social Share Preview Images

+

Upon use of the build command, social share preview images are generated for each page + the home page, and available in docs/previews/[title-as-slug].png.

+

Here's an example of the default template:

+

default social share preview image template

+

As of v0.5.0, these images now use my Eleventy plugin - @11tyrocks/eleventy-plugin-social-images - with the default blue theme and a customized template.

+

Any changes made can be previewed by running the build command and reviewing the contents of docs/previews/.

+

Review the plugin docs for the full details of how to customize the behavior, and read on to learn how this starter is currently setup for the social images.

+

Update social image template HTML

+

HTML can be changed in _generate/socialtemplate.njk - be sure to leave the <style> block and the template tag within so that the plugin can insert your styles.

+

The only requirement for the generator to work is to keep an <h1> to populate with the content title, but the rest of the template is up to you!

+

Update social image template style

+

There are two options:

+
    +
  1. Select a different theme to use from the plugin's predefined theme options and amend the social-images script to set the --theme option
  2. +
  3. Create a custom stylesheet (such as social.scss) and add the included build:sass-social script at the end of the build:sass command
  4. +
+

If choosing to create your own styles for option #2, the CSS will be output in social/style.css with provided stubbed out script. You will need to add this as the value for the --stylesPath option within the social-images script to ensure your custom styles are used.

+

Change included pages OR available data

+

Adjust the collections loop in _generate/pagesjson.njk, but keep the defined keys of title and imgName.

+

Prism Syntax Highlighting

+

Syntax highlighting of inline or code blocks found within Markdown content is provided by Prism via @11ty/eleventy-plugin-syntaxhighlight.

+

You can change the theme used in sass/_prism.scss.

+

Or, remove the plugin if you are not in need of code highlighting.

+

.eleventy.js Config Features

+

Overrides

+ +

Also, markdownLibrary is extended to add the markdownItAnchor plugin for anchor links.

+

Shortcode: year

+

Returns the current YYYY year, used by the footer copyright.

+

Filter: slug

+

Makes the default slug function more strict to ensure things like excluding emojis and enforcing lowercase.

+

VSCode Tips

+

Nunjucks

+

If you haven't previously worked with Nunjucks, you will want a syntax highlighting extension: Nunjucks

+

In addition, you may want to ensure Emmet works on .njk files by updating/adding the following in the settings.json:

+
"emmet.includeLanguages": {
"nunjucks": "html",
},
+

Formatting

+

As noted previously, a prettier config is included, and you may want to get the +Prettier extension and update your VSCode settings to "Format on Save".

+

However, to format template files Prettier doesn't recognize like .njk, you can update the "Language Mode" on the currently open file from "Nunjucks" (or other current templating language) to "HTML" to allow formatting to be applied. Then, flip it back to re-allow the syntax highlighting if needed.

+

This is located in the VSCode bottom toolbar near the right-hand side and will display the value of the current file's detected language. Click the name to open the selector.

+

Colophon

+

this starter kit was originally written by Stephanie Eckles - @5t3ph on Twitter, Github, CodePen, and DEV.

+

Here's what she has to say about herself:

+
+

You may know me as the author of ModernCSS.dev or the creator of StyleStage.dev. I can also be found on egghead as an instructor.

+
+
+

Check out my extended collection of Eleventy resources available on 11ty.Rocks!

+
+
+

I spent a decade creating WordPress themes and plugins then flipped to product development + leading development of a multi-platform enterprise design system. My intro to Jamstack was with Gatsby, but 11ty fills a special place that is so needed for truly static sites. I'm in love, and I think you will be, too.

+
+ +
+
+ + + + + diff --git a/docs/about/index.html b/docs/about/index.html index 5b99ed1..7c8fdcf 100644 --- a/docs/about/index.html +++ b/docs/about/index.html @@ -4,41 +4,39 @@ - About | Hacking History Starter Kit + Out of the Periphery: Queer Soviet Russia | Revolution Through Queer Fashion: Eastern Europe - - - - + + @@ -49,21 +47,28 @@
Hacking History Starter Kit + >Revolution Through Queer Fashion: Eastern Europe @@ -73,9 +78,9 @@
-

About

+

Out of the Periphery: Queer Soviet Russia

- A brief introduction to this starter kit. + Out of the Periphery: Queer Aesthetic and Community in Soviet Russia

@@ -83,153 +88,75 @@

-

Intro to Jumpstart

-

This project starter kit, forked from the original 11ty jumpstart repo, is intended to be just enough to be a functional site using 11ty, and also to introduce essential 11ty features.

-

Review the "Quick Start" on the home page for how to get this starter up and running for your project.

-

Meanwhile, here are the original docs about this starter kit. Most of it you don't have to worry about, but you might want to look at VSCode Tips.

-

Jump to:

+

Queerness in Russia during the late 19th and early 20th centuries saw intense changes in laws, freedom of movement and expression. Additionally, these rapid changes led to significant shifts in cultural attitudes and social and medical reforms surrounding gender expression, transgender and gender studies, and acknowledgement under both laws and society. From Romanov, Lenin, Stalin, and the fall of the USSR, Queerness survived in Russia on similar subversive aesthetic lines to the media loopholes we see contemporary queer communities use today on sites such as Instagram and Twitter. Russia's relationship to Queerness is a long and contentious history from the Lenin's leftist legalizations and the conservative crackdowns of conservative Stalinist governments; queer communities survived on the peripheries of society, building communities around the fashion coding and aesthetic.

+

Queerness in Russia from the Fall of the Romanovs to the Rise of Lenin

+

As discussed by Dan Healy in "Homosexual Desire in Revolutionary Russia: the Regulation of Sexual and Gender Dissent," Healy argues that homosexuality in Russia pre-revolutionary Russia offered more unofficial freedoms than its counterparts in Europe despite its illegal status. Furthermore, he argues that the criminalization of homosexuality is an "imported" law from other parts of Europe by Peter the Great. Under Peter, the Great sodomy (homosexuality) would be outlawed only amongst military men. Still, homosexuality would remain as a de facto legal status due to no law referencing the general public. It was only in 1835 that homosexuality in the general public (men only) became illegal.

+

In Imperial Russia, "all sexuality was regarded with suspicion as a source of impurity." Sodomy was responded with formal penalties, and consensual male same-sex relations, not implicating anal penetration, were deemed no worse than masturbation (Healy). Michel Foucault blames the development of capitalism and utilitarianism as significant components of the West's regulation, medicalization, and suppression of homosexuality, writing, "it becomes an integral part of the bourgeois order" (Foucault, 6). Russia in the 19th century saw very little capitalist growth remaining an agricultural and largely landlord-based system, unlike the industrially growing West, maintaining traditional boundaries and system of society dating back from the 15th century. The 19th century maintained traditional demographics and power systems, with the majority of Russia's population being peasants and serfs, with gentry Landlords holding almost all the power. Healy explores the power Landlords held and their patriarchal role amongst his tenant's sexual relationships that, in some cases, this power dynamic developed into a patron-client sexual hierarchy writing "same-sex eros between males occurred in these enviroments and reflected their characteristics patterns of domination and subordination" (Healy, 22). This patron-client relationship existed everywhere, from exploiting young men for alcohol, cab driver supplementing incomes, teacher apprentice relationships and mutual masturbation with servants. However, nowhere was the patron-client relationship more prevalent and survived the longest than in the bathhouse.

+

The bathhouse, since the 1700s, has been a place of sexual indulgence and exploration, later becoming the center of a queer social community. As medicalization and suppression of sexuality grew, Russian psychiatrists as a space full of prostitution and cruising culture (Healy, 27). The bathhouse functioned under a hierarchical system from patrons to senior servants and junior servants at the bottom. Clothing or lack of clothing denoted one's position in this hierarchy; young junior attendants tended to wear traditional Russian shirts while senior assistants worked in the nude (Healy, 181). Additionally, whether dressed or not, attendants followed a specific aesthetic uniform; beardless youthful attendants staffed bathhouses. Healy states this aesthetic tradition dates back to the 1700s, developed from Russia's patron-client structure. This is evidenced by a seventeenth-century miniature portrait depicting four beardless male youth attendants serving male bathhouse traditions (Healy, 26).

+

Towards the end of the 19th-century, Bathhouses, despite beings popular sights for cruising and male prostitution, went largely unbothered, with even prolific members of the Imperial family frequenting them for cruising. For example, in the private journals of Grand Duke Constantine Constantinovich of Russia (1858-1915), despite marrying young and producing nine children, Constantine was undeniably bisexual; his diaries confessed his affairs with young men and his frequent trips to a male bathhouse/brothel in St. Petersburg, a popular space for cruising, and the inner turmoil he felt for doing so. Typical of traditional hierarchal Bathhouse culture, Grand Duke Constantine Constantinovich found a relationship with a young bathhouse attendant writing about their affair frequently and the turmoil he anguished over having "sinned."

+

-

Global Site Data and .env

-

As noted in the Quick Start, there are global site data variables in src/_data/meta.json.

-

Those include:

+

    -
  • url - should remain unchanged, reads from the single expected .env value of URL
  • -
  • siteName - your "brand" if you will, appended to the <title> tag, shown in the sitenav, displayed in the "hero" for the home layout, in the footer by the copyright, as the "credit" for social share images, and as the identifier throughout the RSS feed
  • -
  • siteDescription - used in the "description" meta tag, and below the siteName on the home layout
  • -
  • authorName - Used in the RSS feed, intended to be your full name
  • -
  • twitterUsername - without the "@", this value is used for the Twitter meta tags, and for the URL of the icon link in the footer
  • +
  • +
      +
    1. Group of Gay men Russia late 19th early 20th century
    2. +
    +
-

.env

-

See .env-sample for the single expected value of URL which should be set to your localhost. The sample uses the default 11ty port, so you can simply rename the file to .env if you haven't changed the port.

-

The URL value is then available via the global data described previously, and can be used in templates with meta.url. You can see this used for the RSS feed and sitemap as well as meta tag links to the social share preview images to create the absolute URLs.

-

Template Languages Used

-

Page templates are created as Nunjucks (.njk), and feature are added that expect Markdown for most page content.

-

The home page - src/index.njk - is set to process first as Markdown followed by Nunjucks. This allows mixing HTML with Markdown, with benefits being code syntax highlighting and ability to include classes on HTML elements. This functionality is provided by the templateEngineOverride: md, njk in the frontmatter.

-

A unique case uses Nunjucks to create the json that is used to generate the social share preview images.

-

Review the list of available templating languages in the 11ty docs.

-

Layout Hierarchy and Features

-

There are two layouts and one partial included.

-

New in v1.1.0 - layouts are customized to be located in src/_layouts.

+

  • -

    _layouts/base.njk includes the standard HTML boilerplate including meta and "og" tags in <head>.

    +
      +
    1. Senior Bathouse attendant with Patron in a tradtional Banya
    2. +
  • +
+

+
  • -

    _layouts/page.njk includes the sitenav.njk partial and chains up to base

    +
      +
    1. A traditional Banya. Senior attendant wash patrons while young clean shaven and semi-clothed junior attends stand in the back.
    2. +
-

The src/index.njk template chains to the base layout and includes a loop that will create "cards" for everything in collections.pages.

-

Expected Frontmatter

-

There are only two fields expected:

+

    -
  • title - essentially required, by default is used in the page <title>, in the layout "hero", in social share preview images, and in social share meta tags.
  • -
  • description - optional, by default appears below the title for the page template and is used as for the "description" meta tag and social share meta tag descriptions.
  • -
- -

The default setup expects content - using any template language - within pages/.

-

The pages.json in that directory includes a permalink setting so that the file name is used directly to prevent 'pages' being the base of the URL.

-

You can override permalinks per file.

-

Asset Handling

-

In the .eleventy.js config, there are included "pass-throughs" for an img/ directory as well as favicon.png.

-

You can replace the included favicon, and create an img directory or remove the addPassthroughCopy if you do not have need of images.

-

Creating an img directory and keeping the pass-through directive will make images available at /img/[image-file-path] relative to the site root.

-

Linting

-

For Sass, stylelint is included. If you want to keep it, you may want to do a find/replace for tdbc to the prefix of your choice. If not, you'll want to remove the related files at the project root as well as the related items in the package.json.

-

A prettier config is included, with the only update being printWidth: 100.

-

Sass Framework

-

Review the styling documentation for the included minimal Sass framework, particularly the theme variables, to quickly customize the starter.

-

The only notable differences are:

-
    -
  1. sitenav - adjust the styles for the navigation header that appears on pages
  2. -
  3. tdbc-anchor - styles for the # anchor that appears next to page headings (or turn that feature off) can be adjusted in sass/_utilities
  4. -
  5. Additional article-scoped styling for typography as it appears on pages
  6. -
  7. A theme for the prism syntax highlighting for code blocks. You can adjust or replace the theme in sass/_prism.
  8. +
  9. +
      +
    1. Grand Duke Constantine Constantinovich of Russia
    -

    Fonts

    -

    The default font is Baloo 2 and is locally hosted with files in fonts/. If you swap to a different font, be sure to remove the font files as well as the @font-face rules at the top of sass/_fonts.scss, and update the $tdbc-font-family Sass variable.

    - -

    Anchor links next to headings throughout Markdown content are generated by an add-on plugin for markdownIt.

    -

    This feature can be adjusted or removed in the .eleventy.js config file.

    -

    Generated Features

    -

    Sitemap

    -

    A sitemap.xml is generated from all available content.

    -

    To exclude non-page or non-public content from the sitemap, include eleventyExcludeFromCollections: true in frontmatter, or create a custom filter.

    -

    RSS Feed

    -

    An RSS feed is included, and output at [siteurl]/feed/feed.xml.

    -

    If publishing from Netlify, the included netlify.toml file will create a redirect so that the feed becomes available at [siteurl]/feed.

    -

    Social Share Preview Images

    -

    Upon use of the build command, social share preview images are generated for each page + the home page, and available in docs/previews/[title-as-slug].png.

    -

    Here's an example of the default template:

    -

    default social share preview image template

    -

    As of v0.5.0, these images now use my Eleventy plugin - @11tyrocks/eleventy-plugin-social-images - with the default blue theme and a customized template.

    -

    Any changes made can be previewed by running the build command and reviewing the contents of docs/previews/.

    -

    Review the plugin docs for the full details of how to customize the behavior, and read on to learn how this starter is currently setup for the social images.

    -

    Update social image template HTML

    -

    HTML can be changed in _generate/socialtemplate.njk - be sure to leave the <style> block and the template tag within so that the plugin can insert your styles.

    -

    The only requirement for the generator to work is to keep an <h1> to populate with the content title, but the rest of the template is up to you!

    -

    Update social image template style

    -

    There are two options:

    -
      -
    1. Select a different theme to use from the plugin's predefined theme options and amend the social-images script to set the --theme option
    2. -
    3. Create a custom stylesheet (such as social.scss) and add the included build:sass-social script at the end of the build:sass command
    4. + + +

      Queer Aesthetic and Community from Lenin to Stalin's Soviet Russia

      +

      Lenin's rise to power saw a small window in time for Queerness to be legalized and thrive, moving more and more out of the periphery and into the mainstream Moscow and St Petersburg (Petrograd/Leningrad). Finally, following the Bolshevik revolution in 1917, homosexuality was defacto legalized by abolishing all imperial laws and governance. While legal, homosexuals under Bolshevik governments were still under threat and discriminated against. Through fashion and coding, Gay men in Russia developed a distinct underground community and language. Looks included red ties or shawls sewn into back pockets and powered faces with heavy mascara. However, this coding was not universal amongst homosexual counter-public and subcultures. Like the bathhouses during the late 18th century, class hierarchy separated homosexual communities into two distinct categories, the rich, the last echos of the fashionable aristocratic nobility class before the revolution, and the poor, the unfashionable working class including soldiers and "ordinary" people. Magnus Hirschfeld, a German scientist, indirectly and directly influenced the Bolsheviks. He founded the Institute of Sexology in Berlin, and his publication "The Third Sex" translated into Russian only a few years after its initial publication in German.

      +

      However, Healy argues to a certain extent, despite the later medicalization of homosexuality under the Bolshevik government, Lenin took a utilitarian approach to sex and suxeuality; considering sex, whether hetero or homo, to be a private affair and sex for pleasure a sacrifice devoted revolutionaries should make. Healy writes,

      +

      "Lenin seemed to be saying that those who suffered from a “personalabnormality . . . in sexual life” ought to do so in silence while working for the revolution. Indulging in transgressive sexual behavior was“really quite bourgeois,” while seeking the sympathy of middle-classmorality was capitulation to the enemy. For the young “queer subject” imagined by Ushakovskii in 1908, the Lenin of 1920, refracted through the even more conservative mood of 1924, proposed an existence of sacrifice of the “personal” to the revolutionary movement (Healy, 113)."

      +

      While homosexuality was tolerated for a short period, conservative movements under Stalin in the 1930s saw the re-criminalization of homosexuality in Russia in the new Criminal Code of 1934. The hierarchal system of homosexuality of two counter publics offering two distinct mobile communities and freedoms came to an end; the aristocratic artistic homosexual community was not exempt from the brutal crackdown. As Stalin's crackdowns took form, so did the penalties for homosexuality; one year before the official criminalization of homosexuality saw the arrest and imprisonment of approximately 175 Gay men in July of 1933. The case continues to be classified; however, most men were charged and imprisoned in the Gulags, sentenced to hard labour, not for homosexuality but bad morality, counter-revolutionary espionage, into-social behaviours, and the corruption of corruption the Red Army.

      +

      Generally, these stringent anti-homosexuality laws remained intact until the 1980s. Some slight movements to decriminalize consensual sodomy in the criminal code in 1959 made waves amongst a jurist committee however was overwhelmingly unsupported by the majority and crushed quickly. Homosexuality continued to function in subversive mobile counter-publics through bathhouse culture, fashion coding, and discrete cruising persisted against the harsh crackdowns and KGB. In the 1980s, under Gorbachov's government, Gay rights and activism discussion on the decriminalization of homosexuality grew. Gorbachov, until his predecessors, welcomed specific discussion and criticism of the Russian Soviet government in addition to the opening of the Soviet Union. Gorbachov's government permitted the first gay rights activist group to operate in addition to their magazine "Tema." Under his government, the first Mcdonald's opened in Moscow in January 1990. However, it was not until Boris Yeltsin in 1993 that homosexuality was legalized.

      +

      The 2000s brought new changes to LBGTQ freedoms and rights, and private counterpublic became public with the introduction of the internet and the re-opening of the Soviet Union to the West. See Post-Soviet Queerness for more information on Queer counter-publics and aesthetic in contemporary Russia +

      +
        +
      • +
          +
        1. Image of Russian sailors with men in drag
        -

        If choosing to create your own styles for option #2, the CSS will be output in social/style.css with provided stubbed out script. You will need to add this as the value for the --stylesPath option within the social-images script to ensure your custom styles are used.

        -

        Change included pages OR available data

        -

        Adjust the collections loop in _generate/pagesjson.njk, but keep the defined keys of title and imgName.

        -

        Prism Syntax Highlighting

        -

        Syntax highlighting of inline or code blocks found within Markdown content is provided by Prism via @11ty/eleventy-plugin-syntaxhighlight.

        -

        You can change the theme used in sass/_prism.scss.

        -

        Or, remove the plugin if you are not in need of code highlighting.

        -

        .eleventy.js Config Features

        -

        Overrides

        +
      • +
      +

        -
      • Input directory: src
      • -
      • Output directory: docs
      • -
      • Layout directory: _layouts
      • +
      • +
          +
        1. A drag party early 20th Century Moscow
        2. +
        +
      -

      Also, markdownLibrary is extended to add the markdownItAnchor plugin for anchor links.

      -

      Shortcode: year

      -

      Returns the current YYYY year, used by the footer copyright.

      -

      Filter: slug

      -

      Makes the default slug function more strict to ensure things like excluding emojis and enforcing lowercase.

      -

      VSCode Tips

      -

      Nunjucks

      -

      If you haven't previously worked with Nunjucks, you will want a syntax highlighting extension: Nunjucks

      -

      In addition, you may want to ensure Emmet works on .njk files by updating/adding the following in the settings.json:

      -
      "emmet.includeLanguages": {
      "nunjucks": "html",
      },
      -

      Formatting

      -

      As noted previously, a prettier config is included, and you may want to get the -Prettier extension and update your VSCode settings to "Format on Save".

      -

      However, to format template files Prettier doesn't recognize like .njk, you can update the "Language Mode" on the currently open file from "Nunjucks" (or other current templating language) to "HTML" to allow formatting to be applied. Then, flip it back to re-allow the syntax highlighting if needed.

      -

      This is located in the VSCode bottom toolbar near the right-hand side and will display the value of the current file's detected language. Click the name to open the selector.

      -

      Colophon

      -

      this starter kit was originally written by Stephanie Eckles - @5t3ph on Twitter, Github, CodePen, and DEV.

      -

      Here's what she has to say about herself:

      -
      -

      You may know me as the author of ModernCSS.dev or the creator of StyleStage.dev. I can also be found on egghead as an instructor.

      -
      -
      -

      Check out my extended collection of Eleventy resources available on 11ty.Rocks!

      -
      -
      -

      I spent a decade creating WordPress themes and plugins then flipped to product development + leading development of a multi-platform enterprise design system. My intro to Jamstack was with Gatsby, but 11ty fills a special place that is so needed for truly static sites. I'm in love, and I think you will be, too.

      -
@@ -238,10 +165,10 @@

Colophon
-

© 2022 Hacking History Starter Kit • v1.2.0

+

© 2022 Revolution Through Queer Fashion: Eastern Europe • v1.2.0

diff --git a/docs/css/style.css b/docs/css/style.css index 25765f3..7557ecd 100644 --- a/docs/css/style.css +++ b/docs/css/style.css @@ -1 +1,939 @@ -@font-face{font-display:swap;font-family:Baloo\ 2;font-style:normal;font-weight:400;src:local("Baloo 2 Regular"),local("Baloo-2-Regular"),url(../fonts/baloo-2-v1-latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Baloo\ 2;font-style:normal;font-weight:500;src:local("Baloo 2 Medium"),local("Baloo-2-Medium"),url(../fonts/baloo-2-v1-latin-500.woff2) format("woff2")}*,:after,:before{box-sizing:border-box}body,h1,h2,h3,h4,h5,h6{margin:0}h1,h2,h3,h4,li,p{word-break:break-word}body,html{overflow-x:hidden}html{scroll-behavior:smooth}body{text-rendering:optimizeSpeed;font-family:sans-serif;font-size:100%;line-height:1.5}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}body{background-color:#f9f9f9;color:#203221;display:flex;flex-direction:column;font-family:Baloo\ 2,sans-serif;min-height:100vh}main,main.tdbc-container{padding-bottom:5vh;padding-top:5vh}footer{margin-top:auto}article{max-width:80ch}.tdbc-container,article>img{margin-left:auto;margin-right:auto}.tdbc-container{display:flex;flex-direction:column;max-width:120ch;padding:1rem;width:100%}.tdbc-column-container{grid-gap:2em;display:grid;grid-template-columns:repeat(auto-fit,minmax(25ch,1fr))}.tbdc-offset-columns{grid-template-columns:1fr 3fr}ul.tdbc-column-container{padding-left:0}.tdbc-section{width:100%}.tdbc-section--padded{padding-bottom:10vh;padding-top:10vh}.tdbc-section :last-child{margin-bottom:0}.tdbc-hero{display:grid;min-height:40vh;padding-bottom:10vh;padding-top:10vh;place-content:center;text-align:center}.tdbc-row{grid-gap:1rem;display:grid}@media (min-width:80ch){.tdbc-row{grid-auto-columns:-webkit-max-content;grid-auto-columns:max-content;grid-auto-flow:column}}.tdbc-row--center-content{justify-content:center}.tdbc-row--center-alignitems{align-items:center}hr{border:1px solid #b9f1ec;margin-bottom:4rem;margin-top:4rem}body.front-page .logo{background-color:green;border:2px solid #000;border-radius:10px;height:12vmax;margin:0 auto 2rem;width:12vmax}body.front-page .logo svg{height:100%;width:100%}body.front-page .tdbc-hero{padding-bottom:5vh;padding-top:5vh}body.front-page #quickstart+ol li:first-child,body.front-page #quickstart+ol li:first-child p{font-size:1.5rem}#tdbc-siteid{font-size:2rem;text-decoration:none}.tdbc-sitenav{background-color:#215423}.tdbc-sitenav__container,.tdbc-sitenav__navlist{align-items:center;display:flex;flex-wrap:wrap}.tdbc-sitenav__container{justify-content:space-between;margin:0 auto;max-width:120ch;padding:.25rem .5rem;width:100%}.tdbc-sitenav__navlist li+li{margin-left:.5rem}.tdbc-sitenav,.tdbc-sitenav a:not(.tdbc-button){color:#fff}.tdbc-sitenav a:not(.tdbc-button):focus{border-radius:4px;box-shadow:0 0 1px 2px #fff;outline-color:transparent;outline-style:solid}.tdbc-h1,.tdbc-h2,.tdbc-h3,.tdbc-h4,h1,h2,h3,h4{font-weight:500;line-height:1.15;margin-bottom:.65em}.tdbc-h1,h1{font-size:4.2rem;font-size:min(max(3rem,5vw),4.2rem)}.tdbc-h2,h2{font-size:3.15rem;font-size:min(max(2.5rem,5vw),3.15rem)}.tdbc-h3,h3{font-size:2rem}.tdbc-h4,h4{color:#5c625d;font-size:1.35rem}li,p{font-size:1.15rem}p{margin:0 0 1rem}article>ol>li+li,article>ul>li+li{margin-top:1rem}article *+h2{margin-top:4rem}article *+h3{margin-top:2rem}strong{font-weight:500}a:not(.tdbc-button){color:#215423}code:not([class*=language]){background-color:#fff;border:1px solid #acb2ad;border-radius:2px;color:#5c625d;display:inline-flex;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:.75em;line-height:1.1;padding:.15em}pre code:not([class*=language]){max-width:calc(100vw - 2rem);overflow-x:auto;width:100%}blockquote{border-left:2px solid #b9f1ec;color:#5c625d;margin-left:0;margin-right:0;padding-left:1.5rem}blockquote,blockquote p{font-size:1.35rem}blockquote+*{margin-top:3rem}blockquote :last-child{margin-bottom:0}.tdbc-lead{font-size:1.35rem;letter-spacing:.01em;line-height:1.3;margin-bottom:1em}.tdbc-list-unstyled{list-style:none;padding:0}.tdbc-button{align-items:center;align-self:start;background-color:#215423;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;font-size:1.125rem;justify-content:center;line-height:1.1;min-height:44px;min-width:10ch;padding:.25em 1em;text-align:center;text-decoration:none;transition:.18s ease-in-out;transition-property:background,border}@media screen and (-ms-high-contrast:active){.tdbc-button{border:2px solid}}.tdbc-button:focus{box-shadow:0 0 0 3px #173b19;outline-color:transparent;outline-style:solid}.tdbc-button--small{font-size:1rem;min-height:34px}.tdbc-button--center{align-self:center;margin-left:auto;margin-right:auto}.tdbc-button__icon{height:1.5em;margin-right:.25em;width:1.5em}.tdbc-button__icon--end{margin-left:.25em;margin-right:0}.tdbc-button__icon svg{fill:currentColor;height:100%;width:100%}.tdbc-button-outlined{background-color:transparent;border:2px solid #215423;color:#215423}.tdbc-button-outlined:focus,.tdbc-button-outlined:hover{background-color:#c7e9c8}.tdbc-button--secondary{background-color:#b9f1ec}.tdbc-button--secondary:focus{box-shadow:0 0 0 3px #4fdccf}.tdbc-button-outlined--secondary{border-color:#cdf7f3;color:#b9f1ec}.tdbc-button-outlined--secondary:focus{box-shadow:0 0 0 3px #4fdccf}.tdbc-button-outlined--secondary:focus,.tdbc-button-outlined--secondary:hover{background-color:#f8fefd}.tdbc-button--light{background-color:#fff;color:rgba(0,0,0,.87)}.tdbc-button--light:focus{box-shadow:0 0 0 3px #b3b3b3}.tdbc-button-outlined--light{border-color:#fff;color:#fff}.tdbc-button-outlined--light:focus{box-shadow:0 0 0 3px #b3b3b3}.tdbc-button-outlined--light:focus,.tdbc-button-outlined--light:hover{background-color:hsla(0,0%,100%,.15)}.tdbc-button--gray{background-color:#5c625d}.tdbc-button--gray:focus{box-shadow:0 0 0 3px #404541}.tdbc-button-outlined--gray{border-color:#7ba382;color:#5c625d}.tdbc-button-outlined--gray:focus{box-shadow:0 0 0 3px #404541}.tdbc-button-outlined--gray:focus,.tdbc-button-outlined--gray:hover{background-color:#eef0ef}.tdbc-button__icon,.tdbc-icon-button{background:transparent;border:none;cursor:pointer;display:inline-flex;font-size:1.5rem;height:1em;padding:0;position:relative;width:1em}.tdbc-button__icon svg,.tdbc-icon-button svg{flex-shrink:0;height:100%;width:100%}.tdbc-icon-button svg{fill:currentColor;opacity:.7}.tdbc-icon-button:focus,.tdbc-icon-button:hover{outline:none}.tdbc-icon-button:focus svg,.tdbc-icon-button:hover svg{opacity:1}.tdbc-icon-button:focus:after{border:1px solid;border-radius:50%;bottom:-.3em;content:"";left:-.3em;position:absolute;right:-.3em;top:-.3em}.tdbc-card{background-color:#fff;border-radius:8px;box-shadow:0 3px 5px rgba(0,0,0,.18);display:flex;flex-direction:column;position:relative;width:100%}.tdbc-card__title{font-size:1.35rem;line-height:1.15;margin-bottom:1rem;text-decoration:none}.tdbc-card a.tdbc-card__title:before{border-radius:8px;content:"";height:100%;left:0;position:absolute;top:0;transition:box-shadow .18s ease-in;width:100%}.tdbc-card a.tdbc-card__title:focus{outline:none}.tdbc-card a.tdbc-card__title:focus:before{box-shadow:0 0 0 3px #215423}.tdbc-card__content{display:flex;flex-direction:column;flex-grow:1;padding:24px;position:relative}.tdbc-card__content a:last-child{align-self:start;margin-top:auto}.tdbc-card__content p{margin:0 0 1rem;position:relative;z-index:1}.tdbc-card__content>ul{list-style-type:disc;padding-left:1rem}.tdbc-card__content>ul li+li{margin-top:.5rem}.tdbc-card:hover a.tdbc-card__title:before{box-shadow:0 0 0 3px #215423}.tdbc-card img:first-child{border-radius:8px 8px 0 0;max-height:10em;-o-object-fit:cover;object-fit:cover}.tdbc-card--outlined{background-color:transparent;border:1px solid #acb2ad;box-shadow:none}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#5c625d;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;-webkit-hyphens:none;hyphens:none;line-height:1.5;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{border-radius:.3em;margin:2rem 0;max-width:calc(100vw - 2rem);overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#fff}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#76747f}.token.punctuation{color:#5c625d}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#4d48e8}.token.boolean,.token.number{color:#348614}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#171392}.language-css .token.string,.language-scss .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#d92d7a}.token.function{color:#6f34a3}.token.atrule,.token.attr-value{color:#6b65e8}.token.keyword{color:#171392}.token.important,.token.regex{color:#348614}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}@media screen and (-ms-high-contrast:active){code[class*=language-],pre[class*=language-]{background:window;color:windowText}:not(pre)>code[class*=language-],pre[class*=language-]{background:window}.token.important{background:highlight;color:window;font-weight:400}.token.atrule,.token.attr-value,.token.function,.token.keyword,.token.operator,.token.selector{font-weight:700}.token.attr-value,.token.comment,.token.doctype,.token.function,.token.keyword,.token.operator,.token.property,.token.string{color:highlight}.token.attr-value,.token.url{font-weight:400}}.tdbc-content-maxlength{max-width:80ch}.tdbc-anchor{display:inline-block;float:left;font-size:.6em;margin-left:-2rem;opacity:.3;text-decoration:none;transition:opacity .18s ease-in-out;vertical-align:bottom}.tdbc-anchor:hover{opacity:1}.tdbc-text-align--left{text-align:left}.tdbc-text-align--center{text-align:center}.tdbc-text-align--center>a{align-self:center!important}.tdbc-text-align--right{text-align:right}.tdbc-background--primary{background-color:#215423}.tdbc-background--secondary{background-color:#b9f1ec}.tdbc-background--background{background-color:#f9f9f9}.tdbc-background--gray{background-color:#5c625d}.tdbc-background--light{background-color:#fff}.tdbc-ink--primary,a.tdbc-ink--primary{color:#215423}.tdbc-ink--primary>a:not(.tdbc-button){color:inherit}.tdbc-ink--secondary,a.tdbc-ink--secondary{color:#b9f1ec}.tdbc-ink--secondary>a:not(.tdbc-button){color:inherit}.tdbc-ink--text,a.tdbc-ink--text{color:#203221}.tdbc-ink--text>a:not(.tdbc-button){color:inherit}.tdbc-ink--gray,a.tdbc-ink--gray{color:#5c625d}.tdbc-ink--gray>a:not(.tdbc-button){color:inherit}.tdbc-ink--light,a.tdbc-ink--light{color:#fff}.tdbc-ink--light>a:not(.tdbc-button){color:inherit}.tdbc-ink--dark,a.tdbc-ink--dark{color:rgba(0,0,0,.87)}.tdbc-ink--dark>a:not(.tdbc-button){color:inherit}.tdbc-mx-auto{margin-left:auto;margin-right:auto}.tdbc-my-sm{margin-bottom:1rem}.tdbc-mt-sm,.tdbc-my-sm{margin-top:1rem}.tdbc-my-md{margin-bottom:3rem}.tdbc-mt-md,.tdbc-my-md{margin-top:3rem}.tdbc-my-lg{margin-bottom:6rem}.tdbc-mt-lg,.tdbc-my-lg{margin-top:6rem}.tdbc-my-xl{margin-bottom:10rem}.tdbc-mt-xl,.tdbc-my-xl{margin-top:10rem}.tdbc-my-auto{margin-bottom:"auto"}.tdbc-mt-auto,.tdbc-my-auto{margin-top:"auto"}.tdbc-mb-none{margin-bottom:0} \ No newline at end of file +@font-face { + font-family: "Baloo 2"; + font-style: normal; + font-weight: normal; + src: local("Baloo 2 Regular"), local("Baloo-2-Regular"), url("../fonts/baloo-2-v1-latin-regular.woff2") format("woff2"); + font-display: swap; +} +@font-face { + font-family: "Baloo 2"; + font-style: normal; + font-weight: 500; + src: local("Baloo 2 Medium"), local("Baloo-2-Medium"), url("../fonts/baloo-2-v1-latin-500.woff2") format("woff2"); + font-display: swap; +} +/* + * [Modified] Modern CSS Reset + * @link https://github.com/hankchizljaw/modern-css-reset +*/ +/* Box sizing rules */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +/* Remove default margin */ +body, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; +} + +p, +li, +h1, +h2, +h3, +h4 { + word-break: break-word; +} + +html, +body { + overflow-x: hidden; +} + +html { + scroll-behavior: smooth; +} + +/* Set core body defaults */ +body { + min-height: 100vh; + font-family: sans-serif; + font-size: 100%; + line-height: 1.5; + text-rendering: optimizeSpeed; +} + +/* Make images easier to work with */ +img { + display: block; + max-width: 100%; +} + +/* Inherit fonts for inputs and buttons */ +input, +button, +textarea, +select { + font: inherit; +} + +/* Remove all animations and transitions for people that prefer not to see them */ +@media (prefers-reduced-motion: reduce) { + *, +*::before, +*::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } + + html { + scroll-behavior: initial; + } +} +body { + display: flex; + flex-direction: column; + min-height: 100vh; + background-color: #f9f9f9; + color: #715559; + font-family: "Baloo 2", sans-serif; +} + +main, +main.tdbc-container { + padding-top: 5vh; + padding-bottom: 5vh; +} + +footer { + margin-top: auto; +} + +article { + max-width: 80ch; +} +article > img { + margin-right: auto; + margin-left: auto; +} + +.tdbc-container { + display: flex; + flex-direction: column; + width: 100%; + max-width: 120ch; + margin-right: auto; + margin-left: auto; + padding: 1rem; +} + +.tdbc-column-container { + display: grid; + grid-gap: 2em; + grid-template-columns: repeat(auto-fit, minmax(25ch, 1fr)); +} + +.tbdc-offset-columns { + grid-template-columns: 1fr 3fr; +} + +ul.tdbc-column-container { + padding-left: 0; +} + +.tdbc-section { + width: 100%; +} +.tdbc-section--padded { + padding-top: 10vh; + padding-bottom: 10vh; +} +.tdbc-section *:last-child { + margin-bottom: 0; +} + +.tdbc-hero { + display: grid; + min-height: 40vh; + place-content: center; + padding-top: 10vh; + padding-bottom: 10vh; + text-align: center; +} + +.tdbc-row { + display: grid; + grid-gap: 1rem; +} +@media (min-width: 80ch) { + .tdbc-row { + grid-auto-flow: column; + grid-auto-columns: max-content; + } +} +.tdbc-row--center-content { + justify-content: center; +} +.tdbc-row--center-alignitems { + align-items: center; +} + +hr { + margin-top: 4rem; + margin-bottom: 4rem; + border: 1px solid #000000; +} + +body.front-page .logo { + width: 12vmax; + height: 12vmax; + margin: 0 auto 2rem; + background-color: green; + border-radius: 10px; + border: black 2px solid; +} +body.front-page .logo svg { + width: 100%; + height: 100%; +} +body.front-page .tdbc-hero { + padding-top: 5vh; + padding-bottom: 5vh; +} +body.front-page #quickstart + ol li:first-child, +body.front-page #quickstart + ol li:first-child p { + font-size: 1.5rem; +} + +#tdbc-siteid { + font-size: 2rem; + text-decoration: none; +} + +.tdbc-sitenav { + background-color: #ad6d76; +} +.tdbc-sitenav__container, .tdbc-sitenav__navlist { + display: flex; + flex-wrap: wrap; + align-items: center; +} +.tdbc-sitenav__container { + justify-content: space-between; + width: 100%; + max-width: 120ch; + margin: 0 auto; + padding: 0.25rem 0.5rem; +} +.tdbc-sitenav__navlist li + li { + margin-left: 0.5rem; +} +.tdbc-sitenav, +.tdbc-sitenav a:not(.tdbc-button) { + color: #fff; +} +.tdbc-sitenav a:not(.tdbc-button):focus { + border-radius: 4px; + outline-color: transparent; + outline-style: solid; + box-shadow: 0 0 1px 2px #fff; +} + +h1, +.tdbc-h1 { + font-weight: 500; + line-height: 1.15; + margin-bottom: 0.65em; +} + +h2, +.tdbc-h2 { + font-weight: 500; + line-height: 1.15; + margin-bottom: 0.65em; +} + +h3, +.tdbc-h3 { + font-weight: 500; + line-height: 1.15; + margin-bottom: 0.65em; +} + +h4, +.tdbc-h4 { + font-weight: 500; + line-height: 1.15; + margin-bottom: 0.65em; +} + +h1, +.tdbc-h1 { + font-size: 4.2rem; + font-size: min(max(3rem, 5vw), 4.2rem); +} + +h2, +.tdbc-h2 { + font-size: 3.15rem; + font-size: min(max(2.5rem, 5vw), 3.15rem); +} + +h3, +.tdbc-h3 { + font-size: 2rem; +} + +h4, +.tdbc-h4 { + font-size: 1.35rem; + color: #756c6d; +} + +p, +li { + font-size: 1.15rem; +} + +p { + margin: 0 0 1rem; +} + +article > ul > li + li, +article > ol > li + li { + margin-top: 1rem; +} +article * + h2 { + margin-top: 4rem; +} +article * + h3 { + margin-top: 2rem; +} + +strong { + font-weight: 500; +} + +a:not(.tdbc-button) { + color: #ad6d76; +} + +code:not([class*=language]) { + display: inline-flex; + padding: 0.15em; + background-color: #fff; + color: #756c6d; + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; + border: 1px solid #bbb5b6; + border-radius: 2px; + font-size: 0.75em; + line-height: 1.1; +} + +pre code:not([class*=language]) { + width: 100%; + max-width: calc(100vw - 2rem); + overflow-x: auto; +} + +blockquote { + margin-left: 0; + margin-right: 0; + padding-left: 1.5rem; + border-left: 2px solid #000000; + color: #756c6d; +} +blockquote, +blockquote p { + font-size: 1.35rem; +} +blockquote + * { + margin-top: 3rem; +} +blockquote :last-child { + margin-bottom: 0; +} + +.tdbc-lead { + font-size: 1.35rem; + letter-spacing: 0.01em; + margin-bottom: 1em; + line-height: 1.3; +} + +.tdbc-list-unstyled { + list-style: none; + padding: 0; +} + +.tdbc-button { + display: inline-flex; + align-items: center; + align-self: start; + justify-content: center; + min-width: 10ch; + min-height: 44px; + padding: 0.25em 1em; + transition: 180ms ease-in-out; + transition-property: background, border; + border-radius: 4px; + background-color: #ad6d76; + color: #fff; + font-size: 1.125rem; + line-height: 1.1; + text-align: center; + text-decoration: none; + cursor: pointer; +} +@media screen and (-ms-high-contrast: active) { + .tdbc-button { + border: 2px solid currentColor; + } +} +.tdbc-button:focus { + outline-color: transparent; + outline-style: solid; + box-shadow: 0 0 0 3px #7e474f; +} +.tdbc-button--small { + min-height: 34px; + font-size: 1rem; +} +.tdbc-button--center { + align-self: center; + margin-right: auto; + margin-left: auto; +} +.tdbc-button__icon { + width: 1.5em; + height: 1.5em; + margin-right: 0.25em; +} +.tdbc-button__icon--end { + margin-right: 0; + margin-left: 0.25em; +} +.tdbc-button__icon svg { + width: 100%; + height: 100%; + fill: currentColor; +} +.tdbc-button-outlined { + border: 2px solid #ad6d76; + background-color: transparent; + color: #ad6d76; +} +.tdbc-button-outlined:hover, .tdbc-button-outlined:focus { + background-color: #efe2e4; +} +.tdbc-button--secondary { + background-color: #000000; +} +.tdbc-button--secondary:focus { + box-shadow: 0 0 0 3px black; +} +.tdbc-button-outlined--secondary { + border-color: #584141; + color: #000000; +} +.tdbc-button-outlined--secondary:focus { + box-shadow: 0 0 0 3px black; +} +.tdbc-button-outlined--secondary:hover, .tdbc-button-outlined--secondary:focus { + background-color: #e6e6e6; +} +.tdbc-button--light { + background-color: #fff; + color: rgba(0, 0, 0, 0.87); +} +.tdbc-button--light:focus { + box-shadow: 0 0 0 3px #b3b3b3; +} +.tdbc-button-outlined--light { + border-color: white; + color: #fff; +} +.tdbc-button-outlined--light:focus { + box-shadow: 0 0 0 3px #b3b3b3; +} +.tdbc-button-outlined--light:hover, .tdbc-button-outlined--light:focus { + background-color: rgba(255, 255, 255, 0.15); +} +.tdbc-button--gray { + background-color: #756c6d; +} +.tdbc-button--gray:focus { + box-shadow: 0 0 0 3px #524c4c; +} +.tdbc-button-outlined--gray { + border-color: #ae898d; + color: #756c6d; +} +.tdbc-button-outlined--gray:focus { + box-shadow: 0 0 0 3px #524c4c; +} +.tdbc-button-outlined--gray:hover, .tdbc-button-outlined--gray:focus { + background-color: #f1f0f0; +} + +.tdbc-button__icon, +.tdbc-icon-button { + display: inline-flex; + position: relative; + width: 1em; + height: 1em; + padding: 0; + border: none; + background: transparent; + font-size: 1.5rem; + cursor: pointer; +} +.tdbc-button__icon svg, +.tdbc-icon-button svg { + flex-shrink: 0; + width: 100%; + height: 100%; +} + +.tdbc-icon-button svg { + fill: currentColor; + opacity: 0.7; +} +.tdbc-icon-button:focus, .tdbc-icon-button:hover { + outline: none; +} +.tdbc-icon-button:focus svg, .tdbc-icon-button:hover svg { + opacity: 1; +} +.tdbc-icon-button:focus::after { + position: absolute; + top: -0.3em; + right: -0.3em; + bottom: -0.3em; + left: -0.3em; + border: 1px solid currentColor; + border-radius: 50%; + content: ""; +} + +.tdbc-card { + display: flex; + position: relative; + flex-direction: column; + width: 100%; + border-radius: 8px; + background-color: #fff; + box-shadow: 0 3px 5px rgba(0, 0, 0, 0.18); + /* stylelint-disable selector-max-type, selector-no-qualifying-type */ +} +.tdbc-card__title { + margin-bottom: 1rem; + font-size: 1.35rem; + line-height: 1.15; + text-decoration: none; +} +.tdbc-card a.tdbc-card__title::before { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + transition: 180ms box-shadow ease-in; + border-radius: 8px; + content: ""; +} +.tdbc-card a.tdbc-card__title:focus { + outline: none; +} +.tdbc-card a.tdbc-card__title:focus::before { + box-shadow: 0 0 0 3px #ad6d76; +} +.tdbc-card__content { + display: flex; + position: relative; + flex-direction: column; + flex-grow: 1; + padding: 24px; +} +.tdbc-card__content a:last-child { + align-self: start; + margin-top: auto; +} +.tdbc-card__content p { + position: relative; + margin: 0 0 1rem; + z-index: 1; +} +.tdbc-card__content > ul { + list-style-type: disc; + padding-left: 1rem; +} +.tdbc-card__content > ul li + li { + margin-top: 0.5rem; +} +.tdbc-card:hover a.tdbc-card__title::before { + box-shadow: 0 0 0 3px #ad6d76; +} +.tdbc-card img:first-child { + object-fit: cover; + max-height: 10em; + border-radius: 8px 8px 0 0; +} +.tdbc-card--outlined { + border: 1px solid #bbb5b6; + background-color: transparent; + box-shadow: none; +} + +/** + * a11y-dark theme for JavaScript, CSS, and HTML + * Based on the okaidia theme: https://github.com/PrismJS/prism/blob/gh-pages/themes/prism-okaidia.css + * @author ericwbailey + */ +code[class*=language-], +pre[class*=language-] { + color: #756c6d; + background: none; + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + tab-size: 4; + hyphens: none; +} + +/* Code blocks */ +pre[class*=language-] { + padding: 1em; + margin: 2rem 0; + overflow: auto; + border-radius: 0.3em; + max-width: calc(100vw - 2rem); +} + +:not(pre) > code[class*=language-], +pre[class*=language-] { + background: #fff; +} + +/* Inline code */ +:not(pre) > code[class*=language-] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: #76747f; +} + +.token.punctuation { + color: #756c6d; +} + +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #4d48e8; +} + +.token.boolean, +.token.number { + color: #348614; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #171392; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.language-scss .token.string, +.style .token.string, +.token.variable { + color: #d92d7a; +} + +.token.function { + color: #6f34a3; +} + +.token.atrule, +.token.attr-value { + color: #6b65e8; +} + +.token.keyword { + color: #171392; +} + +.token.regex, +.token.important { + color: #348614; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} + +@media screen and (-ms-high-contrast: active) { + code[class*=language-], +pre[class*=language-] { + color: windowText; + background: window; + } + + :not(pre) > code[class*=language-], +pre[class*=language-] { + background: window; + } + + .token.important { + background: highlight; + color: window; + font-weight: normal; + } + + .token.atrule, +.token.attr-value, +.token.function, +.token.keyword, +.token.operator, +.token.selector { + font-weight: bold; + } + + .token.attr-value, +.token.comment, +.token.doctype, +.token.function, +.token.keyword, +.token.operator, +.token.property, +.token.string { + color: highlight; + } + + .token.attr-value, +.token.url { + font-weight: normal; + } +} +.tdbc-content-maxlength { + max-width: 80ch; +} + +.tdbc-anchor { + display: inline-block; + margin-left: 0.25em; + transition: 180ms opacity ease-in-out; + opacity: 0.3; + font-size: 0.6em; + float: left; + margin-left: -2rem; + vertical-align: bottom; + text-decoration: none; +} +.tdbc-anchor:hover { + opacity: 1; +} + +.tdbc-text-align--left { + text-align: left; +} + +.tdbc-text-align--center { + text-align: center; +} +.tdbc-text-align--center > a { + align-self: center !important; +} + +.tdbc-text-align--right { + text-align: right; +} + +.tdbc-background--primary { + background-color: #ad6d76; +} + +.tdbc-background--secondary { + background-color: #000000; +} + +.tdbc-background--background { + background-color: #f9f9f9; +} + +.tdbc-background--gray { + background-color: #756c6d; +} + +.tdbc-background--light { + background-color: #fff; +} + +.tdbc-ink--primary, +a.tdbc-ink--primary { + color: #ad6d76; +} + +.tdbc-ink--primary > a:not(.tdbc-button) { + color: inherit; +} + +.tdbc-ink--secondary, +a.tdbc-ink--secondary { + color: #000000; +} + +.tdbc-ink--secondary > a:not(.tdbc-button) { + color: inherit; +} + +.tdbc-ink--text, +a.tdbc-ink--text { + color: #715559; +} + +.tdbc-ink--text > a:not(.tdbc-button) { + color: inherit; +} + +.tdbc-ink--gray, +a.tdbc-ink--gray { + color: #756c6d; +} + +.tdbc-ink--gray > a:not(.tdbc-button) { + color: inherit; +} + +.tdbc-ink--light, +a.tdbc-ink--light { + color: #fff; +} + +.tdbc-ink--light > a:not(.tdbc-button) { + color: inherit; +} + +.tdbc-ink--dark, +a.tdbc-ink--dark { + color: rgba(0, 0, 0, 0.87); +} + +.tdbc-ink--dark > a:not(.tdbc-button) { + color: inherit; +} + +.tdbc-mx-auto { + margin-right: auto; + margin-left: auto; +} + +.tdbc-my-sm { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.tdbc-mt-sm { + margin-top: 1rem; +} + +.tdbc-my-md { + margin-top: 3rem; + margin-bottom: 3rem; +} + +.tdbc-mt-md { + margin-top: 3rem; +} + +.tdbc-my-lg { + margin-top: 6rem; + margin-bottom: 6rem; +} + +.tdbc-mt-lg { + margin-top: 6rem; +} + +.tdbc-my-xl { + margin-top: 10rem; + margin-bottom: 10rem; +} + +.tdbc-mt-xl { + margin-top: 10rem; +} + +.tdbc-my-auto { + margin-top: "auto"; + margin-bottom: "auto"; +} + +.tdbc-mt-auto { + margin-top: "auto"; +} + +.tdbc-mb-none { + margin-bottom: 0; +} + +body.gallery-page .tdbc-container, .trbc-container.gallery-page { + width: 100vw; + max-width: 160ch; + margin: 20px; +} +body.gallery-page .tdbc-container article.tdbc-mx-auto, body.gallery-page .tdbc-container article.gallery, .trbc-container.gallery-page article.tdbc-mx-auto, .trbc-container.gallery-page article.gallery { + max-width: 120ch; +} + +article.gallery { + display: grid; + grid-template-columns: minmax(350px, 2fr) minmax(350px, 1fr); + max-width: 100%; +} +article.gallery section.items { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(326px, 1fr)); +} + +@media screen and (max-width: 600px) { + .tdbc-container.gallery-page article.gallery { + margin-left: auto; + margin-right: auto; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + grid-auto-rows: minmax(100px, auto); + } + .tdbc-container.gallery-page article.gallery section.items { + margin-left: auto; + margin-right: auto; + grid-template-columns: repeat(auto-fill, minmax(326px, 1fr)); + } +} diff --git a/docs/feed/feed.xml b/docs/feed/feed.xml index a63bb7b..ff8f56f 100644 --- a/docs/feed/feed.xml +++ b/docs/feed/feed.xml @@ -1,109 +1,20 @@ - Hacking History Starter Kit + Revolution Through Queer Fashion: Eastern Europe Quickly launch an 11ty-generated static site. Should be simple enough for students to use, but includes a minimal Sass framework, and generated sitemap, RSS feed, and social share preview images. - 2022-03-09T03:21:07Z + 2022-04-06T01:57:38Z https://hackinghistory.github.io/hh-project-11ty-starter-kit/ - Matt Price via @5t3ph + Jade Nelson - - Style Demo - - 2022-03-09T01:50:06Z - https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/ - <blockquote> -<p>Credit for the kitchen sink elements to the <a href="https://github.com/pmarsceill/just-the-docs">&quot;Just the Docs&quot;</a> project by <a href="https://github.com/pmarsceill">pmarsceill</a>, and to the original author of the starterkit.</p> -</blockquote> -<h1 id="introduction" tabindex="-1">Introduction<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#introduction" aria-hidden="true">🔗</a></h1> -<p>Most of your time on this project will be spent writing in markdown. This page lives here as a reminder of how to write in markdown. Please note that I've appended a brief discussion of how to use footnotes here.</p> -<h1 id="header-1" tabindex="-1">Header 1<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#header-1" aria-hidden="true">🔗</a></h1> -<p>This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.</p> -<p>Text can be <strong>bold</strong>, <em>italic</em>, or <s>strikethrough</s>.</p> -<p><a href="https://hackinghistory.github.io/about">Link to another page</a>.</p> -<h2 id="header-2" tabindex="-1">Header 2<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#header-2" aria-hidden="true">🔗</a></h2> -<blockquote> -<p>This is a blockquote following a header.</p> -<p>When something is important enough, you do it even if the odds are not in your favor.</p> -</blockquote> -<h3 id="header-3" tabindex="-1">Header 3<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#header-3" aria-hidden="true">🔗</a></h3> -<pre class="language-js"><code class="language-js"><span class="token comment">// Javascript code with syntax highlighting.</span><br /><span class="token keyword">var</span> <span class="token function-variable function">fun</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token function">lang</span><span class="token punctuation">(</span><span class="token parameter">l</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br /> dateformat<span class="token punctuation">.</span>i18n <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"./lang/"</span> <span class="token operator">+</span> l<span class="token punctuation">)</span><span class="token punctuation">;</span><br /> <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span><br /><span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> -<pre class="language-ruby"><code class="language-ruby"><span class="token comment"># Ruby code with syntax highlighting</span><br />GitHubPages<span class="token double-colon punctuation">::</span>Dependencies<span class="token punctuation">.</span>gems<span class="token punctuation">.</span><span class="token keyword">each</span> <span class="token keyword">do</span> <span class="token operator">|</span>gem<span class="token punctuation">,</span> version<span class="token operator">|</span><br /> s<span class="token punctuation">.</span>add_dependency<span class="token punctuation">(</span>gem<span class="token punctuation">,</span> <span class="token string-literal"><span class="token string">"= </span><span class="token interpolation"><span class="token delimiter punctuation">#{</span><span class="token content">version</span><span class="token delimiter punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><br /><span class="token keyword">end</span></code></pre> -<pre><code>Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. -</code></pre> -<h4>Header 4</h4> -<ul> -<li>This is an unordered list following a header.</li> -<li>This is an unordered list following a header.</li> -<li>This is an unordered list following a header.</li> -</ul> -<h5>Header 5</h5> -<ol> -<li>This is an ordered list following a header.</li> -<li>This is an ordered list following a header.</li> -<li>This is an ordered list following a header.</li> -</ol> -<h3 id="theres-a-horizontal-rule-below-this" tabindex="-1">There's a horizontal rule below this.<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#theres-a-horizontal-rule-below-this" aria-hidden="true">🔗</a></h3> -<hr /> -<h3 id="here-is-an-unordered-list" tabindex="-1">Here is an unordered list:<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#here-is-an-unordered-list" aria-hidden="true">🔗</a></h3> -<ul> -<li>Item foo</li> -<li>Item bar</li> -<li>Item baz</li> -<li>Item zip</li> -</ul> -<h3 id="and-an-ordered-list" tabindex="-1">And an ordered list:<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#and-an-ordered-list" aria-hidden="true">🔗</a></h3> -<ol> -<li>Item one</li> -<li>Item two</li> -<li>Item three</li> -<li>Item four</li> -</ol> -<h3 id="and-a-nested-list" tabindex="-1">And a nested list:<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#and-a-nested-list" aria-hidden="true">🔗</a></h3> -<ul> -<li>level 1 item -<ul> -<li>level 2 item</li> -<li>level 2 item -<ul> -<li>level 3 item</li> -<li>level 3 item</li> -</ul> -</li> -</ul> -</li> -<li>level 1 item -<ul> -<li>level 2 item</li> -<li>level 2 item</li> -<li>level 2 item</li> -</ul> -</li> -<li>level 1 item -<ul> -<li>level 2 item</li> -<li>level 2 item</li> -</ul> -</li> -<li>level 1 item</li> -</ul> -<h3 id="small-image" tabindex="-1">Small Image<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#small-image" aria-hidden="true">🔗</a></h3> -<p><img src="https://picsum.photos/200" alt="" /></p> -<h3 id="large-image" tabindex="-1">Large image<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#large-image" aria-hidden="true">🔗</a></h3> -<p><img src="https://picsum.photos/800/300" alt="" /></p> -<h2 id="footnotes" tabindex="-1">Footnotes<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#footnotes" aria-hidden="true">🔗</a></h2> -<p>We use a <a href="https://github.com/markdown-it/markdown-it-footnote">plugin</a> for rendering simple footnotes. It's not ideal but at lest youu can insert references here, which I find somewhat straightforward to do <a href="https://forums.zotero.org/discussion/93521/available-for-beta-testing-markdown-export-of-notes">using the technique described here</a>. Howver, it could be painful or at least awkward if you're using html format instead.</p> - - - About - 2022-03-09T03:21:07Z + 2022-03-09T19:23:26Z https://hackinghistory.github.io/hh-project-11ty-starter-kit/about/ <h2 id="intro-to-jumpstart" tabindex="-1">Intro to Jumpstart<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/about/#intro-to-jumpstart" aria-hidden="true">🔗</a></h2> <p>This project starter kit, <a href="https://github.com/5t3ph/11ty-netlify-jumpstart">forked from the original 11ty jumpstart repo</a>, is intended to be <em>just enough</em> to be a functional site using 11ty, and also to introduce essential 11ty features.</p> @@ -252,6 +163,144 @@ Prettier extension and update your VSCode settings to &quot;Format on Save&a <blockquote> <p>I spent a decade creating WordPress themes and plugins then flipped to product development + leading development of a multi-platform enterprise design system. My intro to Jamstack was with Gatsby, but 11ty fills a special place that is so needed for truly static sites. I'm in love, and I think you will be, too.</p> </blockquote> + + + + + Style Demo + + 2022-03-09T19:23:26Z + https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/ + <blockquote> +<p>Credit for the kitchen sink elements to the <a href="https://github.com/pmarsceill/just-the-docs">&quot;Just the Docs&quot;</a> project by <a href="https://github.com/pmarsceill">pmarsceill</a>, and to the original author of the starterkit.</p> +</blockquote> +<h1 id="introduction" tabindex="-1">Introduction<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#introduction" aria-hidden="true">🔗</a></h1> +<p>Most of your time on this project will be spent writing in markdown. This page lives here as a reminder of how to write in markdown. Please note that I've appended a brief discussion of how to use footnotes here.</p> +<h1 id="header-1" tabindex="-1">Header 1<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#header-1" aria-hidden="true">🔗</a></h1> +<p>This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.</p> +<p>Text can be <strong>bold</strong>, <em>italic</em>, or <s>strikethrough</s>.</p> +<p><a href="https://hackinghistory.github.io/about">Link to another page</a>.</p> +<h2 id="header-2" tabindex="-1">Header 2<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#header-2" aria-hidden="true">🔗</a></h2> +<blockquote> +<p>This is a blockquote following a header.</p> +<p>When something is important enough, you do it even if the odds are not in your favor.</p> +</blockquote> +<h3 id="header-3" tabindex="-1">Header 3<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#header-3" aria-hidden="true">🔗</a></h3> +<pre class="language-js"><code class="language-js"><span class="token comment">// Javascript code with syntax highlighting.</span><br /><span class="token keyword">var</span> <span class="token function-variable function">fun</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token function">lang</span><span class="token punctuation">(</span><span class="token parameter">l</span><span class="token punctuation">)</span> <span class="token punctuation">{</span><br /> dateformat<span class="token punctuation">.</span>i18n <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">"./lang/"</span> <span class="token operator">+</span> l<span class="token punctuation">)</span><span class="token punctuation">;</span><br /> <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span><br /><span class="token punctuation">}</span><span class="token punctuation">;</span></code></pre> +<pre class="language-ruby"><code class="language-ruby"><span class="token comment"># Ruby code with syntax highlighting</span><br />GitHubPages<span class="token double-colon punctuation">::</span>Dependencies<span class="token punctuation">.</span>gems<span class="token punctuation">.</span><span class="token keyword">each</span> <span class="token keyword">do</span> <span class="token operator">|</span>gem<span class="token punctuation">,</span> version<span class="token operator">|</span><br /> s<span class="token punctuation">.</span>add_dependency<span class="token punctuation">(</span>gem<span class="token punctuation">,</span> <span class="token string-literal"><span class="token string">"= </span><span class="token interpolation"><span class="token delimiter punctuation">#{</span><span class="token content">version</span><span class="token delimiter punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">)</span><br /><span class="token keyword">end</span></code></pre> +<pre><code>Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. +</code></pre> +<h4>Header 4</h4> +<ul> +<li>This is an unordered list following a header.</li> +<li>This is an unordered list following a header.</li> +<li>This is an unordered list following a header.</li> +</ul> +<h5>Header 5</h5> +<ol> +<li>This is an ordered list following a header.</li> +<li>This is an ordered list following a header.</li> +<li>This is an ordered list following a header.</li> +</ol> +<h3 id="theres-a-horizontal-rule-below-this" tabindex="-1">There's a horizontal rule below this.<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#theres-a-horizontal-rule-below-this" aria-hidden="true">🔗</a></h3> +<hr /> +<h3 id="here-is-an-unordered-list" tabindex="-1">Here is an unordered list:<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#here-is-an-unordered-list" aria-hidden="true">🔗</a></h3> +<ul> +<li>Item foo</li> +<li>Item bar</li> +<li>Item baz</li> +<li>Item zip</li> +</ul> +<h3 id="and-an-ordered-list" tabindex="-1">And an ordered list:<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#and-an-ordered-list" aria-hidden="true">🔗</a></h3> +<ol> +<li>Item one</li> +<li>Item two</li> +<li>Item three</li> +<li>Item four</li> +</ol> +<h3 id="and-a-nested-list" tabindex="-1">And a nested list:<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#and-a-nested-list" aria-hidden="true">🔗</a></h3> +<ul> +<li>level 1 item +<ul> +<li>level 2 item</li> +<li>level 2 item +<ul> +<li>level 3 item</li> +<li>level 3 item</li> +</ul> +</li> +</ul> +</li> +<li>level 1 item +<ul> +<li>level 2 item</li> +<li>level 2 item</li> +<li>level 2 item</li> +</ul> +</li> +<li>level 1 item +<ul> +<li>level 2 item</li> +<li>level 2 item</li> +</ul> +</li> +<li>level 1 item</li> +</ul> +<h3 id="small-image" tabindex="-1">Small Image<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#small-image" aria-hidden="true">🔗</a></h3> +<p><img src="https://picsum.photos/200" alt="" /></p> +<h3 id="large-image" tabindex="-1">Large image<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#large-image" aria-hidden="true">🔗</a></h3> +<p><img src="https://picsum.photos/800/300" alt="" /></p> +<h2 id="footnotes" tabindex="-1">Footnotes<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/styledemo/#footnotes" aria-hidden="true">🔗</a></h2> +<p>We use a <a href="https://github.com/markdown-it/markdown-it-footnote">plugin</a> for rendering simple footnotes. It's not ideal but at lest youu can insert references here, which I find somewhat straightforward to do <a href="https://forums.zotero.org/discussion/93521/available-for-beta-testing-markdown-export-of-notes">using the technique described here</a>. Howver, it could be painful or at least awkward if you're using html format instead.</p> + + + + + Proposal Test Page Assignment + + 2022-04-06T01:57:38Z + https://hackinghistory.github.io/hh-project-11ty-starter-kit/Proposal/ + <h2 id="topic-description" tabindex="-1">Topic Description<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/Proposal/#topic-description" aria-hidden="true">🔗</a></h2> +<p>This project will explore how Eastern European indie fashion designers and queer rave subcultures generate an international queer revolution using public forums such as Instagram. I will be primarily be looking at Russian and Ukrainian fashion and their impact on sites like Instagram, I-D, and Vogue. Additionally, I would like to create 2-3 pages including traditional academic information/theory. A second page prioritizes Instagrams, articles, and websites links to different fashion brands. And a third comparative page that has a timeline of different Queer Fashion revolutions from the early years of vogue, the queer liberation movement, to contemporary Eastern Europe.</p> +<h2 id="audience" tabindex="-1">Audience<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/Proposal/#audience" aria-hidden="true">🔗</a></h2> +<p>The intended audience for this project is Queer youth who are interested in fashion, activism, and rave/EDM culture. I believe while this project focuses on the experiences of queer Ukrainians and Russians, this material can be consumable by people regardless of their geographical location. The Calvert Journal (a resource I will draw on regularly) supports this argument. While the journal focuses on eastern Europe, it is available internationally through digital publications. In addition, the journal is published in English and written by journalists from all over eastern Europe. Therefore, I don't feel there will be a serious language barrier with the project.</p> +<h2 id="structure-outline" tabindex="-1">Structure Outline<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/Proposal/#structure-outline" aria-hidden="true">🔗</a></h2> +<p>The website will have one main page structurally and be broken up into three sub-pages. The main page will hold the about/introduction information, information about myself (possibly), some images, and a brief overview of what the rest of the website holds.</p> +<ul> +<li>The first sub-page will hold my thesis and a more traditional academic exploration. It will analyze the data and support the thesis introduced on the main page.</li> +<li>The second sub-page will house images and external digital media such as Instagram posts journal and magazine entries. This page will also be full of links to the different fashion houses mentioned in the first sub-page.</li> +<li>The Third sub-page will again be a writing heavy page about Queer communities and right in Soviet Russia</li> +</ul> +<article class="gallery"> +<section class="items"> +<blockquote class="jade-gallery instagram-media" data-instgrm-permalink="https://www.instagram.com/p/B6scc4ejFzJ"></blockquote><blockquote class="jade-gallery instagram-media" data-instgrm-permalink="https://www.instagram.com/p/CLUBQZknOVc"></blockquote><blockquote class="jade-gallery instagram-media" data-instgrm-permalink="https://www.instagram.com/p/CXOqKRFrQMF"></blockquote><blockquote class="jade-gallery instagram-media" data-instgrm-permalink="https://www.instagram.com/p/B6vr2ZQjYJq"></blockquote><blockquote class="jade-gallery instagram-media" data-instgrm-permalink="https://www.instagram.com/p/BYvEqoUAqBc"></blockquote><blockquote class="jade-gallery instagram-media" data-instgrm-permalink="https://www.instagram.com/p/B8tjuYzBUZL"></blockquote> +</section> +<section class="text"> +<h3 id="contemporary-fashion-art-and-activism-uniting-a-community-across-lines" tabindex="-1">Contemporary Fashion, Art and Activism: Uniting a Community Across Lines<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/Proposal/#contemporary-fashion-art-and-activism-uniting-a-community-across-lines" aria-hidden="true">🔗</a></h3> +<p>Although Queerness itself, such as sexuality, has not been criminalized since 1993 in Russia and 1991 in Ukraine, homosexuality, Queerness, and queer culture have largely disapproved, ostracized, policed and punished by the Russian and Ukrainian communities.</p> +<p>Within Russian same-sex couples and families are not privy to the same social services, legal rights and protections as heterosexual couples. For example, the state does not recognize marriage between same-sex couples, nor are LGBTQ individuals protected against discrimination and hate crimes. Additionally, traditional forms of protest for Queer Rights such as organized public protest, government criticism, blockades, and marches most affiliated with the New York Gay Rights movement are not legal nor transposable within the Russian state or context. Since 2014, protests, freedom of assembly without government officials' expressed approval have been criminalized and punishable in Russia.</p> +<p>Additionally, in 2013 Russia passed a &quot;gay propaganda&quot; law that acts as a political arm to suppress gay rights, education, and community online and physically. Members of parliament argue that the objective of the law is to &quot;protect children&quot; from finding information unnatural and immoral people and simultaneously champion &quot;tradtional&quot; family values and structures.</p> +<p>However, Russian creatives have found a loophole to these laws through international social media giants such as Instagram as a way to network across borders, organizations with the capacity to attract thousands of people. Moreover, social media does not follow the same political lines or organizations; this allows the collaboration and networking between cultural leaders, artistic creatives, political activists, and the unassociated queer population to connect on the commonality of queer.</p> +<h3 id="out-of-the-periphery-queer-aesthetic-and-community-in-soviet-russia" tabindex="-1">Out of the Periphery: Queer Aesthetic and Community in Soviet Russia<a class="tdbc-anchor" href="https://hackinghistory.github.io/hh-project-11ty-starter-kit/Proposal/#out-of-the-periphery-queer-aesthetic-and-community-in-soviet-russia" aria-hidden="true">🔗</a></h3> +<p>Queerness survived in soviet Russia on similar subversive aesthetic lines to the media loopholes contemporary queer communities use today. Russia's relationship to Queerness is a long and contentious history from the Lenin's leftist legalizations and the conservative crackdowns of conservative Stalinist governments; queer communities survived on the peripheries of society, building communities around the fashion coding and aesthetic. In Soviet Russia, fashion became a central figure in finding safety and hierarchy in queer communities, policing and suppressing Queerness, and validating Queerness through its medicalization.</p> +</section> +</article> +<p>As discussed by Dan Healy in &quot;Homosexual Desire in Revolutionary Russia: the Regulation of Sexual and Gender Dissent,&quot; in Orthadox regulated Russia, &quot;all sexuality was regarded with suspicion as a source of impurity.&quot; Sodomy was responded with formal penalties, and consensual male same-sex relations, not implicating anal penetration, were deemed no worse than masturbation. Michel Foucault blames the development of capitalism and utilitarianism as significant components of the West's regulation, medicalization, and suppression of homosexuality, writing, &quot;it becomes an integral part of the bourgeois order&quot; (Foucault, 6). Russia in the 19th century saw very little capitalist growth remaining an agricultural and largely landlord-based system, unlike the industrially growing West. The majority of Russia's population were peasants and serfs, with gentry Landlords holding almost all the power. Healy explores the power Landlords held and their patriarchal role amongst his tenants +sexual relationships that, in some cases, this power dynamic developed into a patron-client sexual hierarchy writing &quot;same-sex eros between males occurred in these enviroments and relfected their characteristics patterns of domination and subordination&quot; (Healy, 22).</p> +<p>This patron-client relationship existed everywhere, from exploiting young men for alcohol, cab driver supplementing incomes, teacher apprentice relationships and mutual masturbation with servants. However, nowhere was the patron-client relationship more prevalent and survived the longest than in the bathhouse. The bathhouse, since the 1700s, has been a place of sexual indulgence and exploration, later becoming the center of a queer social community. As medicalization and suppression of sexuality grew, Russian psychiatrists as a space full of prostitution and cruising culture (Healy, 27). The bathhouse functioned under a hierarchical system from patrons to senior servants and junior servants at the bottom. Clothing or lack of clothing denoted one's position in this hierarchy; young junior attendants tended to wear traditional Russian shirts while senior assistants worked in the nude (Healy, 181). Additionally, whether dressed or not, attendants followed a specific aesthetic uniform; beardless youthful attendants staffed bathhouses. Healy states this aesthetic tradition dates back to the 1700s, developed from Russia's patron-client structure. This is evidenced by a seventeenth-century miniature portrait depicting four beardless male youth attendants serving male bathhouse traditions (Healy, 26).</p> +<h4>Links</h4> +<ul> +<li><a href="https://www.calvertjournal.com/articles/show/11647/russian-queer-creatives-instagram-follow-of-the-week">A Russian queer revolution is in the making and you can now follow it on Instagram</a>.</li> +<li><a href="https://www.vogue.com/article/ukraine-menswear-anton-belinskiy-ivan-frolov">How 2 Erotic-Themed Menswear Labels Are Changing Stereotypes in Eastern Europe</a>.</li> +<li><a href="https://www.calvertjournal.com/features/show/11215/veselka-queer-rave-kyiv-ukraine-nightlife-lgbtq">Party at Kyiv's Momentous Queer Rave and Acceptance Comes First</a>.</li> +<li><a href="https://www.hrw.org/report/2018/12/12/no-support/russias-gay-propaganda-law-imperils-lgbt-youth#">Human Rights Watch: Russia’s “Gay Propaganda” Law Imperils LGBT Youth</a>.</li> +</ul> +<hr /> +<p>https://www.instagram.com/p/B6scc4ejFzJ/</p> +<p>https://www.instagram.com/p/CXOqKRFrQMF/</p> +<p>https://www.instagram.com/p/B6vr2ZQjYJq/</p> +<p>https://www.instagram.com/p/BYvEqoUAqBc/?hl=en</p> +<p>https://www.instagram.com/p/B8tjuYzBUZL/</p> \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 3cf27dd..ceec528 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,7 +4,7 @@ - Hacking History Starter Kit + Revolution Through Queer Fashion: Eastern Europe - - @@ -69,7 +67,7 @@ -

Hacking History Starter Kit

+

Revolution Through Queer Fashion: Eastern Europe

Quickly launch an 11ty-generated static site. Should be simple enough for students to use, but includes a minimal Sass framework, and generated sitemap, RSS feed, and social share preview images.

@@ -79,65 +77,100 @@

Quick Start

-
    +

    This site will explore how Russian queer counter-publics function and survive through fashion generating mobile spaces of queer world-making, producing a queer counterpublic visible to heteronormative powers while remaining independent from heteronormative institutional powers and diversionary lines distinct from domestic spaces, collective nationhood, and property.

    +

    This site will look at the evolution from revolutionary Russia (18th-19th century) to contemporary Russian queer counter-publics. This site will look at 18th and 19th-century bathhouse culture as a mobile queer zone visible to the public but only recognizable to the gay (male) community. Additionally, this site will explore how fashion such as cross-dressing and drag part acted as an extension of early queer coding, subverting the hegemonic heteronormative systemic powers in revolutionary Russia.

    +

    This site will also explore how popular media through youtube and music competitions like Eurovision and fashion acts as a method of queer-world making, informing contemporary queer revolutions and rights activism using public forums such as Instagram to expand these mobile spaces transnationally across borders and languages.

    +

    Finally, this site will look at how popular media through youtube and music competitions like Eurovision and fashion normalizes queer zones visible to heteronormative powers but only recognizable to queer sustained through collective activity.

    +

    Jump to:

    +
    • -

      Clone this repository -to your personal account.

      +

      Queer Counterpublic and the Object of Power

      +
        +
      • This page will discuss what a Queer Counterpublic and world-making project can look like through the lens of fashion. This page will cover Lauren Berlant and Michael Warner's "Sex in Public" to define what a Queer Counterpublic is and how fashion can operate as a form of queer world-making, producing a queer counterpublic functioning as a form of resistance.
      • +
    • -

      Once cloned, run npm install to install 11ty and other dependencies. Then run npm start -to start a server which will (mostly) auto-update as you work. -Use npm run build to run a "production" version, which will also generate -social share preview images.

      +

      Out of the Periphery: Queer Soviet Russia

      +
        +
      • This page will give a brief history of rapid changes affecting Queer culture in Russia from the Fall of the Romanovs to the Rise of Lenin until the beginning of Stalin. This page will primarily focus on the laws and social and political systems informing how Queer counter publics function in Russia during the late 19th and early 20th centuries.
      • +
    • -

      Open src/_data/meta.js, and update the metadata for the site

      +

      Post-Soviet Queerness

      +
        +
      • This page will look at how queer counterpublics surive in contemporary Russia under Putin's introduction of increasingly anti-LGBTQ+ laws. This page will look at how social media functions as a transnational mobile counterpublic givng queer Russians a method to share art, fashion, and education on queer safety and experiences both domestically and internationally across borders and languages.
      • +
    • -
    • -

      start editing the markdown to create your site.

      +
    +

    Links

    +
- + + + + Queer Fashion Before Ukraine | Revolution Through Queer Fashion: Eastern Europe + + + + + + + + + + + + + + + + + + + + + + +
+
+

Queer Fashion Before Ukraine

+

+ +

+
+
+ + +
+ + + +
+
+
+

© 2022 Revolution Through Queer Fashion: Eastern Europe • v1.2.0

+ + + + + +
+
+
+ + diff --git a/docs/staging/two-column/index.html b/docs/staging/two-column/index.html index 9996982..46bce9c 100644 --- a/docs/staging/two-column/index.html +++ b/docs/staging/two-column/index.html @@ -4,7 +4,7 @@ - Two Column Layout | Hacking History Starter Kit + Two Column Layout | Revolution Through Queer Fashion: Eastern Europe - - @@ -49,9 +47,16 @@
Hacking History Starter Kit + >Revolution Through Queer Fashion: Eastern Europe @@ -238,10 +243,10 @@

Formatting
-

© 2022 Hacking History Starter Kit • v1.2.0

+

© 2022 Revolution Through Queer Fashion: Eastern Europe • v1.2.0

diff --git a/docs/styledemo/index.html b/docs/styledemo/index.html index 9f9b3eb..773e32f 100644 --- a/docs/styledemo/index.html +++ b/docs/styledemo/index.html @@ -4,41 +4,39 @@ - Style Demo | Hacking History Starter Kit + Queer Counterpublic and the Object of Power | Revolution Through Queer Fashion: Eastern Europe - - - - + + @@ -49,21 +47,28 @@
Hacking History Starter Kit + >Revolution Through Queer Fashion: Eastern Europe @@ -73,9 +78,9 @@
-

Style Demo

+

Queer Counterpublic and the Object of Power

- A demo of the "Page" template and kitchen sink sample of styled elements. + Queer Counterpublics and Fashion.

@@ -83,87 +88,25 @@

-
-

Credit for the kitchen sink elements to the "Just the Docs" project by pmarsceill, and to the original author of the starterkit.

-
-

Introduction

-

Most of your time on this project will be spent writing in markdown. This page lives here as a reminder of how to write in markdown. Please note that I've appended a brief discussion of how to use footnotes here.

-

Header 1

-

This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.

-

Text can be bold, italic, or strikethrough.

-

Link to another page.

-

Header 2

-
-

This is a blockquote following a header.

-

When something is important enough, you do it even if the odds are not in your favor.

-
-

Header 3

-
// Javascript code with syntax highlighting.
var fun = function lang(l) {
dateformat.i18n = require("./lang/" + l);
return true;
};
-
# Ruby code with syntax highlighting
GitHubPages::Dependencies.gems.each do |gem, version|
s.add_dependency(gem, "= #{version}")
end
-
Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this.
-
-

Header 4

-
    -
  • This is an unordered list following a header.
  • -
  • This is an unordered list following a header.
  • -
  • This is an unordered list following a header.
  • -
-
Header 5
-
    -
  1. This is an ordered list following a header.
  2. -
  3. This is an ordered list following a header.
  4. -
  5. This is an ordered list following a header.
  6. -
-

There's a horizontal rule below this.

-
-

Here is an unordered list:

-
    -
  • Item foo
  • -
  • Item bar
  • -
  • Item baz
  • -
  • Item zip
  • -
-

And an ordered list:

-
    -
  1. Item one
  2. -
  3. Item two
  4. -
  5. Item three
  6. -
  7. Item four
  8. -
-

And a nested list:

-
    -
  • level 1 item -
      -
    • level 2 item
    • -
    • level 2 item -
        -
      • level 3 item
      • -
      • level 3 item
      • -
      -
    • -
    -
  • -
  • level 1 item -
      -
    • level 2 item
    • -
    • level 2 item
    • -
    • level 2 item
    • -
    -
  • -
  • level 1 item -
      -
    • level 2 item
    • -
    • level 2 item
    • -
    -
  • -
  • level 1 item
  • -
-

Small Image

-

-

Large image

-

-

Footnotes

-

We use a plugin for rendering simple footnotes. It's not ideal but at lest youu can insert references here, which I find somewhat straightforward to do using the technique described here. Howver, it could be painful or at least awkward if you're using html format instead.

+

The Queer Counterpublic and World Making (Lauren Berlant and Michael Warner)

+

Sex in Public by Lauren Berlant and Michael Warner explores the concept of queer culture as world-making and counter-publics, which functions as a form of resistance against heteronormative powers and rules of intimacy. This counter-public against institutional powers and diversionary lines explores the power dynamic between public versus private sex acts that develop based on relationships, cultures, and communities only recognized in intimate and close queer communities separate from any relation to domestic spaces, collective nationhood, and property (Berlant & Warner, 558). Berlant and Warner write,

+

"By queer culture we mean a world-making project, where "world," like "public," differs from community or group because it necessarily includes more people than can be identified, more spaces than can be mapped beyond a few reference points, modes of feeling that can be learned rather than experienced as a birthright.”

+

+

Berlant and warner explain through these shared intimacies and spaces that the world-making project forms by acknowledging the different facets in which queer culture forms outside public opinion and state power or even sexuality. Instead, through this counter-public that queer culture is developed through relationships and narratives of intimacy and sexualization found only in queer spaces. One example Berlant and Warner give is describing the act of public vomiting in a sex club. The counter-public rejects the heteronormative private and public diversionary lines when the audience participates in collective intimacy in the event. The audience cannot look away; while the audience does not join in and vomit, they are part of the act, a collective participant in the intimate moment, whistling, stomping and moaning as the climatic vomiting ensues, forming a queered counter-public independent from heteronormative powers and domestic spaces (Berlant & Warner, 558). +Berlant and Warner describe world-making as a counter-public that rejects heteronormative diversionary lines of public versus private. They argue because it was not just two people in an intimate act but everyone engaged in the intimate act with everyone else, the collective

+

"includes more people than can be identified, more spaces than can be mapped beyond a few reference points" (Berlant & Warner, 558)

+

+

Queer counter-publics are an example of resistance to power by redefining the dividing line between public and private; the counter-public also creates a community based on shared principles, challenging heteronormative powers by creating through sex acts that

+

“support forms of affective, erotic and personal living that are public in the sense of accessible, available to memory, and sustained through collective activity” (Berlant & Warner, 562)

+

+

The world-making project, described by Berlant and Warner, acts as a counter-public by rejecting heteronormative powers in its rejection and questioning the private versus public.

+

+

Fashion can operate as a form of queer world-making, producing a queer counterpublic visible to heteronormative powers while remaining independent from heteronormative institutional powers and diversionary lines distinct from domestic spaces, collective nationhood, and property. Fashion is everything; it is a conscious choice you make when putting it on your body while simultaneously being unconscious chooses for you from a larger industrial complex. Whatever form it may come in as art, Avante-Garde, or drag, fashion and design is everywhere, and nobody is exempt; as Miranda Priestly (The Devil Wears Prada) describes the function of fashion best,

+

"However, that blue represents millions of dollars of countless jobs, and it’s sort of comical how you think that you’ve made a choice that exempts you from the fashion industry when in fact, you’re wearing a sweater that was selected for you by the people in this room… from a pile of “stuff.”

+

Like sex, fashion functions as a form of resistance, fluid in nature and untraceable, mapped beyond a few reference points. As much as it can assimilate it, fashion can also " unsettle the garbled but powerful norms supporting that privilege-including the project of normalization that has made heterosexuality hegemonic" (Berlant & Warner 548). As Foucault argues, where there is power, there is resistance; fashion can give clarity to self-identity in these mobile counter publics mediated by the public. Fashion exists as a Berlant and Warner describe a

+

"queer zones and other worlds estranged from heterosexual culture, but also more tacit scenes of sexuality like official national culture, which depends on a notion of privacy to cloak its sexualization of national membership" (547).

+

Through fashion, an individual or group can communicate dissent and dissatisfaction simultaneously with notions and declaration of patriotism and national identity. The image below is an example of fashion that may represent the hierarchal, cultural, and systematic complexities of a queer counterpublic. As discussed in Out of the Periphery: Queer Soviet Russia, mobile queer communities during the early 1900s operated in a two-tier hierarchal system of the leftover aristocracy and the common folk, often soldiers and members of the Navy. Those who crossed dressed were afforded some mobility between these two groups. The image illustrates the complex hierarchal mobile queer zones intersecting with traditional Russian culture. For example, the cross-dressing individuals wear traditional female Russian clothing and hairstyles of that time, blending in with the Russian navy men.

+

@@ -172,10 +115,10 @@

Footnotes
-

© 2022 Hacking History Starter Kit • v1.2.0

+

© 2022 Revolution Through Queer Fashion: Eastern Europe • v1.2.0

diff --git a/package-lock.json b/package-lock.json index d258ce3..9264482 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.2.0", "license": "ISC", "dependencies": { + "eleventy-plugin-embed-everything": "^1.14.0", "eleventy-plugin-toc": "^1.1.5", "markdown-it-footnote": "^3.0.3" }, @@ -90,6 +91,25 @@ "url": "https://opencollective.com/11ty" } }, + "node_modules/@11ty/eleventy-cache-assets": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-cache-assets/-/eleventy-cache-assets-2.3.0.tgz", + "integrity": "sha512-W8tvO00GlWaKt3ccpEStaUBoj9BE3EgzuD8uYChCfYbN2Q4HkEItkiapvIJT0zJwAwoMfnSq6VHPLScYlX2XCg==", + "dependencies": { + "debug": "^4.3.1", + "flat-cache": "^3.0.4", + "node-fetch": "^2.6.1", + "p-queue": "^6.6.2", + "short-hash": "^1.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, "node_modules/@11ty/eleventy-plugin-rss": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.1.2.tgz", @@ -619,8 +639,7 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-arraybuffer": { "version": "0.1.4", @@ -701,7 +720,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -873,7 +891,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -1140,8 +1157,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/condense-newlines": { "version": "0.2.1", @@ -1467,7 +1483,6 @@ "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1511,6 +1526,22 @@ "node": ">=0.10.0" } }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -1789,6 +1820,127 @@ "integrity": "sha512-UtV0xUA/dibCKKP2JMxOpDtXR74zABevuUEH4K0tvduFSIoxRVcYmQsbB51kXsFTX8MmOyWMt8tuZAlmDOqkrQ==", "dev": true }, + "node_modules/eleventy-plugin-embed-everything": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-everything/-/eleventy-plugin-embed-everything-1.14.0.tgz", + "integrity": "sha512-txb1FdHrmfL2epM935MVDdPKq4hQdL9gKmvB2b/obxiwH6RNps8X+UpHqZzwEtw7+1GII3WJTKfnjLExPWgS9w==", + "dependencies": { + "deepmerge": "^4.2.2", + "eleventy-plugin-embed-instagram": "^1.2.3", + "eleventy-plugin-embed-soundcloud": "^1.2.3", + "eleventy-plugin-embed-spotify": "^1.2.3", + "eleventy-plugin-embed-tiktok": "^1.1.3", + "eleventy-plugin-embed-twitch": "^1.2.3", + "eleventy-plugin-embed-twitter": "^1.3.3", + "eleventy-plugin-vimeo-embed": "^1.3.3", + "eleventy-plugin-youtube-embed": "^1.6.5" + } + }, + "node_modules/eleventy-plugin-embed-instagram": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-instagram/-/eleventy-plugin-embed-instagram-1.2.3.tgz", + "integrity": "sha512-ApDlfmzJWYJTqln+dZPtMTE/3h6JfuJ43aobm/D29jmf8shFTwCQK8ITv4eef+v2su9fArZ4Arw7H++VxGmi8g==" + }, + "node_modules/eleventy-plugin-embed-soundcloud": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-soundcloud/-/eleventy-plugin-embed-soundcloud-1.2.3.tgz", + "integrity": "sha512-RSLSIz6lVIOFSeAiaEw8Hy3O+1/h9lC9KRz1xjrfNQ6GV6VSKRS6kjxn4vG7BMjtl8Ks1GOBsmF084oqvZ3bYg==", + "dependencies": { + "@11ty/eleventy-cache-assets": "^2.3.0", + "parse-path": "^4.0.2" + } + }, + "node_modules/eleventy-plugin-embed-spotify": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-spotify/-/eleventy-plugin-embed-spotify-1.2.3.tgz", + "integrity": "sha512-YxOUvKkT96h+fMNkUst/52gxa6IvIPSKtIOXOp9NjGttdQwN73ryAI6ii+L2u6kw0bRrrML+tCZJmubsZUiC9A==" + }, + "node_modules/eleventy-plugin-embed-tiktok": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-tiktok/-/eleventy-plugin-embed-tiktok-1.1.3.tgz", + "integrity": "sha512-Aped7ChbgWJJtM+xPVd9MMTa0JzA6kX7VOQviwnEH0RTlcAkr3nIbZwMvbK0G6sRJCBgeaNy6xQurYomJPlvzQ==" + }, + "node_modules/eleventy-plugin-embed-twitch": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitch/-/eleventy-plugin-embed-twitch-1.2.3.tgz", + "integrity": "sha512-TA//+tZEZ/cI/ECx56dHMhxZx6zzRJl9YhttXh3HXv6iTBRn4RLurbGZ6deFjTtqojbtLSwv/GgOLh8h0ScoMw==", + "dependencies": { + "chalk": "^4.1.2" + } + }, + "node_modules/eleventy-plugin-embed-twitch/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eleventy-plugin-embed-twitch/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eleventy-plugin-embed-twitch/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eleventy-plugin-embed-twitch/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eleventy-plugin-embed-twitch/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eleventy-plugin-embed-twitch/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eleventy-plugin-embed-twitter": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitter/-/eleventy-plugin-embed-twitter-1.3.3.tgz", + "integrity": "sha512-5b/vt3pRUdt+VD5WaaA6MR04NyOGRr/Z9eaG6lPAAINWlT0wWykjgncnPagyMbEcaU34dBvS5EM2YWAXmezOqw==", + "dependencies": { + "@11ty/eleventy-cache-assets": "^2.3.0", + "deepmerge": "^4.2.2" + } + }, "node_modules/eleventy-plugin-toc": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/eleventy-plugin-toc/-/eleventy-plugin-toc-1.1.5.tgz", @@ -1797,6 +1949,20 @@ "cheerio": "^1.0.0-rc.10" } }, + "node_modules/eleventy-plugin-vimeo-embed": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-vimeo-embed/-/eleventy-plugin-vimeo-embed-1.3.3.tgz", + "integrity": "sha512-+DuG/7anCm2WwuOjser+dwUMlLDs2mP7utNfI2S4ZAVnePfbdqrCTW6F5IvGVQvCFSyHU1po7ZfxMfREKlh34w==" + }, + "node_modules/eleventy-plugin-youtube-embed": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eleventy-plugin-youtube-embed/-/eleventy-plugin-youtube-embed-1.7.0.tgz", + "integrity": "sha512-HtcVbPY3dt+7E7rmSlEPKA2m2pdNiNkcbYqi0zg7Tz3DyHlpf2Q62oaqJRtrVuz5oTjAKy4V6qEuKhWm+oGCbg==", + "dependencies": { + "deepmerge": "^4.2.2", + "lite-youtube-embed": "^0.2.0" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -2027,8 +2193,7 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "node_modules/execall": { "version": "2.0.0", @@ -2153,6 +2318,14 @@ "node": ">=8" } }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", @@ -2203,7 +2376,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -2215,8 +2387,7 @@ "node_modules/flatted": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==" }, "node_modules/follow-redirects": { "version": "1.14.7", @@ -2280,8 +2451,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { "version": "2.3.2", @@ -2300,8 +2470,7 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/get-caller-file": { "version": "2.0.5", @@ -2316,7 +2485,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -2373,7 +2541,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -2538,7 +2705,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -2604,7 +2770,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -2627,6 +2792,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hash-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hash-string/-/hash-string-1.0.0.tgz", + "integrity": "sha1-w/oV8Hjd0WvBULQXb95wkWIPLH8=" + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -2852,7 +3022,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -2861,8 +3030,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "1.3.8", @@ -3175,6 +3343,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-ssh": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", + "integrity": "sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ==", + "dependencies": { + "protocols": "^1.1.0" + } + }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -3684,6 +3860,11 @@ "integrity": "sha1-yn3/ZAYGQzysdcvoRGrNhksVv28=", "dev": true }, + "node_modules/lite-youtube-embed": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/lite-youtube-embed/-/lite-youtube-embed-0.2.0.tgz", + "integrity": "sha512-XXXAk5sbvtjjwbie3XG+6HppgTm1HTGL/Uk9z9NkJH53o7puZLur434heHzAjkS60hZB3vT4ls25zl5rMiX4EA==" + }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -4168,7 +4349,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4232,8 +4412,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multimatch": { "version": "5.0.0", @@ -4300,7 +4479,6 @@ "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true, "engines": { "node": "4.x || >=6.0.0" } @@ -4524,7 +4702,6 @@ "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4572,7 +4749,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -4604,6 +4780,14 @@ "node": ">=4" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -4631,6 +4815,32 @@ "node": ">=8" } }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "dependencies": { + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -4665,6 +4875,31 @@ "node": ">=4" } }, + "node_modules/parse-path": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", + "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==", + "dependencies": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0", + "qs": "^6.9.4", + "query-string": "^6.13.8" + } + }, + "node_modules/parse-path/node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", @@ -4718,7 +4953,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5702,6 +5936,11 @@ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", "dev": true }, + "node_modules/protocols": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", + "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==" + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -5953,6 +6192,23 @@ "node": ">=0.6" } }, + "node_modules/query-string": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "dependencies": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -6281,7 +6537,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -6638,11 +6893,18 @@ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", "dev": true }, + "node_modules/short-hash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/short-hash/-/short-hash-1.0.0.tgz", + "integrity": "sha1-P0kdco/Md37GBbuvf4PyNxL0IFA=", + "dependencies": { + "hash-string": "^1.0.0" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -6896,6 +7158,14 @@ "specificity": "bin/specificity" } }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "engines": { + "node": ">=6" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -6939,6 +7209,14 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "engines": { + "node": ">=4" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -7765,8 +8043,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -7939,6 +8216,18 @@ "slugify": "^1.6.5" } }, + "@11ty/eleventy-cache-assets": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-cache-assets/-/eleventy-cache-assets-2.3.0.tgz", + "integrity": "sha512-W8tvO00GlWaKt3ccpEStaUBoj9BE3EgzuD8uYChCfYbN2Q4HkEItkiapvIJT0zJwAwoMfnSq6VHPLScYlX2XCg==", + "requires": { + "debug": "^4.3.1", + "flat-cache": "^3.0.4", + "node-fetch": "^2.6.1", + "p-queue": "^6.6.2", + "short-hash": "^1.0.0" + } + }, "@11ty/eleventy-plugin-rss": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@11ty/eleventy-plugin-rss/-/eleventy-plugin-rss-1.1.2.tgz", @@ -8355,8 +8644,7 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-arraybuffer": { "version": "0.1.4", @@ -8414,7 +8702,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8544,7 +8831,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -8757,8 +9043,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "condense-newlines": { "version": "0.2.1", @@ -9006,7 +9291,6 @@ "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -9035,6 +9319,16 @@ } } }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -9248,6 +9542,108 @@ "integrity": "sha512-UtV0xUA/dibCKKP2JMxOpDtXR74zABevuUEH4K0tvduFSIoxRVcYmQsbB51kXsFTX8MmOyWMt8tuZAlmDOqkrQ==", "dev": true }, + "eleventy-plugin-embed-everything": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-everything/-/eleventy-plugin-embed-everything-1.14.0.tgz", + "integrity": "sha512-txb1FdHrmfL2epM935MVDdPKq4hQdL9gKmvB2b/obxiwH6RNps8X+UpHqZzwEtw7+1GII3WJTKfnjLExPWgS9w==", + "requires": { + "deepmerge": "^4.2.2", + "eleventy-plugin-embed-instagram": "^1.2.3", + "eleventy-plugin-embed-soundcloud": "^1.2.3", + "eleventy-plugin-embed-spotify": "^1.2.3", + "eleventy-plugin-embed-tiktok": "^1.1.3", + "eleventy-plugin-embed-twitch": "^1.2.3", + "eleventy-plugin-embed-twitter": "^1.3.3", + "eleventy-plugin-vimeo-embed": "^1.3.3", + "eleventy-plugin-youtube-embed": "^1.6.5" + } + }, + "eleventy-plugin-embed-instagram": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-instagram/-/eleventy-plugin-embed-instagram-1.2.3.tgz", + "integrity": "sha512-ApDlfmzJWYJTqln+dZPtMTE/3h6JfuJ43aobm/D29jmf8shFTwCQK8ITv4eef+v2su9fArZ4Arw7H++VxGmi8g==" + }, + "eleventy-plugin-embed-soundcloud": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-soundcloud/-/eleventy-plugin-embed-soundcloud-1.2.3.tgz", + "integrity": "sha512-RSLSIz6lVIOFSeAiaEw8Hy3O+1/h9lC9KRz1xjrfNQ6GV6VSKRS6kjxn4vG7BMjtl8Ks1GOBsmF084oqvZ3bYg==", + "requires": { + "@11ty/eleventy-cache-assets": "^2.3.0", + "parse-path": "^4.0.2" + } + }, + "eleventy-plugin-embed-spotify": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-spotify/-/eleventy-plugin-embed-spotify-1.2.3.tgz", + "integrity": "sha512-YxOUvKkT96h+fMNkUst/52gxa6IvIPSKtIOXOp9NjGttdQwN73ryAI6ii+L2u6kw0bRrrML+tCZJmubsZUiC9A==" + }, + "eleventy-plugin-embed-tiktok": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-tiktok/-/eleventy-plugin-embed-tiktok-1.1.3.tgz", + "integrity": "sha512-Aped7ChbgWJJtM+xPVd9MMTa0JzA6kX7VOQviwnEH0RTlcAkr3nIbZwMvbK0G6sRJCBgeaNy6xQurYomJPlvzQ==" + }, + "eleventy-plugin-embed-twitch": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitch/-/eleventy-plugin-embed-twitch-1.2.3.tgz", + "integrity": "sha512-TA//+tZEZ/cI/ECx56dHMhxZx6zzRJl9YhttXh3HXv6iTBRn4RLurbGZ6deFjTtqojbtLSwv/GgOLh8h0ScoMw==", + "requires": { + "chalk": "^4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "eleventy-plugin-embed-twitter": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-embed-twitter/-/eleventy-plugin-embed-twitter-1.3.3.tgz", + "integrity": "sha512-5b/vt3pRUdt+VD5WaaA6MR04NyOGRr/Z9eaG6lPAAINWlT0wWykjgncnPagyMbEcaU34dBvS5EM2YWAXmezOqw==", + "requires": { + "@11ty/eleventy-cache-assets": "^2.3.0", + "deepmerge": "^4.2.2" + } + }, "eleventy-plugin-toc": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/eleventy-plugin-toc/-/eleventy-plugin-toc-1.1.5.tgz", @@ -9256,6 +9652,20 @@ "cheerio": "^1.0.0-rc.10" } }, + "eleventy-plugin-vimeo-embed": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/eleventy-plugin-vimeo-embed/-/eleventy-plugin-vimeo-embed-1.3.3.tgz", + "integrity": "sha512-+DuG/7anCm2WwuOjser+dwUMlLDs2mP7utNfI2S4ZAVnePfbdqrCTW6F5IvGVQvCFSyHU1po7ZfxMfREKlh34w==" + }, + "eleventy-plugin-youtube-embed": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/eleventy-plugin-youtube-embed/-/eleventy-plugin-youtube-embed-1.7.0.tgz", + "integrity": "sha512-HtcVbPY3dt+7E7rmSlEPKA2m2pdNiNkcbYqi0zg7Tz3DyHlpf2Q62oaqJRtrVuz5oTjAKy4V6qEuKhWm+oGCbg==", + "requires": { + "deepmerge": "^4.2.2", + "lite-youtube-embed": "^0.2.0" + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -9446,8 +9856,7 @@ "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "execall": { "version": "2.0.0", @@ -9549,6 +9958,11 @@ "to-regex-range": "^5.0.1" } }, + "filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" + }, "finalhandler": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", @@ -9595,7 +10009,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -9604,8 +10017,7 @@ "flatted": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==" }, "follow-redirects": { "version": "1.14.7", @@ -9645,8 +10057,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", @@ -9658,8 +10069,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-caller-file": { "version": "2.0.5", @@ -9671,7 +10081,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -9707,7 +10116,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -9832,7 +10240,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -9884,8 +10291,7 @@ "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, "has-tostringtag": { "version": "1.0.0", @@ -9896,6 +10302,11 @@ "has-symbols": "^1.0.2" } }, + "hash-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hash-string/-/hash-string-1.0.0.tgz", + "integrity": "sha1-w/oV8Hjd0WvBULQXb95wkWIPLH8=" + }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -10055,7 +10466,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -10064,8 +10474,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "1.3.8", @@ -10285,6 +10694,14 @@ "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", "dev": true }, + "is-ssh": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz", + "integrity": "sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ==", + "requires": { + "protocols": "^1.1.0" + } + }, "is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -10662,6 +11079,11 @@ "integrity": "sha1-yn3/ZAYGQzysdcvoRGrNhksVv28=", "dev": true }, + "lite-youtube-embed": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/lite-youtube-embed/-/lite-youtube-embed-0.2.0.tgz", + "integrity": "sha512-XXXAk5sbvtjjwbie3XG+6HppgTm1HTGL/Uk9z9NkJH53o7puZLur434heHzAjkS60hZB3vT4ls25zl5rMiX4EA==" + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -11042,7 +11464,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -11096,8 +11517,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multimatch": { "version": "5.0.0", @@ -11145,8 +11565,7 @@ "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-releases": { "version": "2.0.1", @@ -11303,8 +11722,7 @@ "object-inspect": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", - "dev": true + "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" }, "object-keys": { "version": "1.1.1", @@ -11337,7 +11755,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -11365,6 +11782,11 @@ } } }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -11383,6 +11805,23 @@ "p-limit": "^2.2.0" } }, + "p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "requires": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } + }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -11408,6 +11847,27 @@ "json-parse-better-errors": "^1.0.1" } }, + "parse-path": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.3.tgz", + "integrity": "sha512-9Cepbp2asKnWTJ9x2kpw6Fe8y9JDbqwahGCTvklzd/cEq5C5JC59x2Xb0Kx+x0QZ8bvNquGO8/BWP0cwBHzSAA==", + "requires": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0", + "qs": "^6.9.4", + "query-string": "^6.13.8" + }, + "dependencies": { + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, "parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", @@ -11454,8 +11914,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -12127,6 +12586,11 @@ "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", "dev": true }, + "protocols": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", + "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==" + }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -12353,6 +12817,17 @@ "integrity": "sha1-HPyyXBCpsrSDBT/zn138kjOQjP4=", "dev": true }, + "query-string": { + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "requires": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -12604,7 +13079,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -12887,11 +13361,18 @@ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", "dev": true }, + "short-hash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/short-hash/-/short-hash-1.0.0.tgz", + "integrity": "sha1-P0kdco/Md37GBbuvf4PyNxL0IFA=", + "requires": { + "hash-string": "^1.0.0" + } + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -13115,6 +13596,11 @@ "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", "dev": true }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -13151,6 +13637,11 @@ } } }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -13786,8 +14277,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "3.0.3", diff --git a/package.json b/package.json index e0f827f..56b8e57 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "not IE 11" ], "dependencies": { + "eleventy-plugin-embed-everything": "^1.14.0", "eleventy-plugin-toc": "^1.1.5", "markdown-it-footnote": "^3.0.3" } diff --git a/src/_data/meta.js b/src/_data/meta.js index 9c76b9a..4359fad 100644 --- a/src/_data/meta.js +++ b/src/_data/meta.js @@ -1,8 +1,8 @@ module.exports = { url: process.env.URL || "https://hackinghistory.github.io/hh-project-11ty-starter-kit/", - siteName: "Hacking History Starter Kit", + siteName: "Revolution Through Queer Fashion: Eastern Europe", siteDescription: "Quickly launch an 11ty-generated static site. Should be simple enough for students to use, but includes a minimal Sass framework, and generated sitemap, RSS feed, and social share preview images.", - authorName: "Matt Price via @5t3ph", - twitterUsername: "mattpriceuoft", // no `@` + authorName: "Jade Nelson ", + instagramUsername: "jb.z.n", // no `@` }; diff --git a/src/_layouts/base.njk b/src/_layouts/base.njk index 491cfdc..c9e483b 100644 --- a/src/_layouts/base.njk +++ b/src/_layouts/base.njk @@ -55,7 +55,7 @@

© {% year %} {{ meta.siteName }} • {% packageVersion %}

diff --git a/src/_layouts/frontpage.njk b/src/_layouts/frontpage.njk index 414741f..2d465ff 100644 --- a/src/_layouts/frontpage.njk +++ b/src/_layouts/frontpage.njk @@ -31,7 +31,7 @@ bodyClass: front-page -

{{ meta.siteName }}

+

{{ meta.siteName }}

{{ meta.siteDescription }}

diff --git a/src/_layouts/gallery-section.njk b/src/_layouts/gallery-section.njk new file mode 100644 index 0000000..d6860a5 --- /dev/null +++ b/src/_layouts/gallery-section.njk @@ -0,0 +1,18 @@ +--- +layout: base.njk +--- +{% include 'sitenav.njk' %} +{% include 'header.njk' %} + +
+ diff --git a/src/index.md b/src/index.md index acc18c9..0059e2d 100644 --- a/src/index.md +++ b/src/index.md @@ -1,32 +1,45 @@ --- layout: frontpage +Title: Revolution Through Queer Fashion in Easter Europe --- -1. [Clone this repository](https://github.com/HackingHistory/hh-project-11ty-starter-kit) -to your **personal** account. +This site will explore how Russian queer counter-publics function and survive through fashion generating mobile spaces of queer world-making, producing a queer counterpublic visible to heteronormative powers while remaining independent from heteronormative institutional powers and diversionary lines distinct from domestic spaces, collective nationhood, and property. -1. Once cloned, run `npm install` to install 11ty and other dependencies. Then run `npm start` -to start a server which will (mostly) auto-update as you work. -Use `npm run build` to run a "production" version, which will also generate -social share preview images. +This site will look at the evolution from revolutionary Russia (18th-19th century) to contemporary Russian queer counter-publics. This site will look at 18th and 19th-century bathhouse culture as a mobile queer zone visible to the public but only recognizable to the gay (male) community. Additionally, this site will explore how fashion such as cross-dressing and drag part acted as an extension of early queer coding, subverting the hegemonic heteronormative systemic powers in revolutionary Russia. -1. Open `src/_data/meta.js`, and update the metadata for the site +This site will also explore how popular media through youtube and music competitions like Eurovision and fashion acts as a method of queer-world making, informing contemporary queer revolutions and rights activism using public forums such as Instagram to expand these mobile spaces transnationally across borders and languages. -1. start editing the markdown to create your site. +Finally, this site will look at how popular media through youtube and music competitions like Eurovision and fashion normalizes queer zones visible to heteronormative powers but only recognizable to queer sustained through collective activity. -1. Review the [styling documentation](https://5t3ph.github.io/html-sass-jumpstart/) -for the included minimal Sass framework, particularly the theme variables, -to quickly customize the starter. +### Jump to: -1. Edit `src/index.njk` to change the home page - including changing the template type if desired - and then create content within `_pages` using any templating format you prefer to add content. +- [Queer Counterpublic and the Object of Power](http://localhost:8080/hh-project-11ty-starter-kit/styledemo/) + + - This page will discuss what a Queer Counterpublic and world-making project can look like through the lens of fashion. This page will cover Lauren Berlant and Michael Warner's "Sex in Public" to define what a Queer Counterpublic is and how fashion can operate as a form of queer world-making, producing a queer counterpublic functioning as a form of resistance. -1. Check out the [About page](/about/) for expanded details on included features of this starter. -1. Review the [11ty documentation](https://11ty.dev) to more deeply apply customizations, including adding custom data sources and reviewing what template languages are available. +- [Out of the Periphery: Queer Soviet Russia](http://localhost:8080/hh-project-11ty-starter-kit/about/) + - This page will give a brief history of rapid changes affecting Queer culture in Russia from the Fall of the Romanovs to the Rise of Lenin until the beginning of Stalin. This page will primarily focus on the laws and social and political systems informing how Queer counter publics function in Russia during the late 19th and early 20th centuries. - +- [Post-Soviet Queerness](http://localhost:8080/hh-project-11ty-starter-kit/Proposal/) -> For more Eleventy resources, check out @5t3ph's extended collection on [11ty.Rocks](https://11ty.rocks)! + - This page will look at how queer counterpublics surive in contemporary Russia under Putin's introduction of increasingly anti-LGBTQ+ laws. This page will look at how social media functions as a transnational mobile counterpublic givng queer Russians a method to share art, fashion, and education on queer safety and experiences both domestically and internationally across borders and languages. + +#### Links +- [A Russian queer revolution is in the making and you can now follow it on Instagram](https://www.calvertjournal.com/articles/show/11647/russian-queer-creatives-instagram-follow-of-the-week). + - This article reports on the Queer Russian Instagram account [@Queer.Russian. Revolution](https://www.instagram.com/russian.queer.revolution/) and their contributions to towards Russian LGBTQ rights. +- [How 2 Erotic-Themed Menswear Labels Are Changing Stereotypes in Eastern Europe](https://www.vogue.com/article/ukraine-menswear-anton-belinskiy-ivan-frolov). + - This article explores how fashion can function as activism and subvert anti-homosexual systems of power both powerfully and subtly through Kyiv-based designer Anton Belinskiy. +- [Party at Kyiv's Momentous Queer Rave and Acceptance Comes First](https://www.calvertjournal.com/features/show/11215/veselka-queer-rave-kyiv-ukraine-nightlife-lgbtq). + - This article explores Ukraine's queer rave subculture as a mobile queer counterpublic (space) separate from heterosexual powers and discrimination for Ukrainian Queers +- [Human Rights Watch: Russia’s “Gay Propaganda” Law Imperils LGBT Youth](https://www.hrw.org/report/2018/12/12/no-support/russias-gay-propaganda-law-imperils-lgbt-youth#). + - This article covers some of the major issues in Russia's newanti-LGBTQ information law and specifically its effects on youth education and safety. +- [Secret Histories: LGBTQ Life in pre-revolutionary Russia](https://www.calvertjournal.com/features/show/9567/being-lgbtq-secret-histories-lgbtq-life-in-pre-revolutionary-russia) + - This article covers pre-revolutionary queer culture and spaces including bathhouse's, cruising and drag parties +- [1917 Russian Revolution: The gay community's brief window of freedom](https://www.bbc.com/news/world-europe-41737330) + - This article covers Queer culture during its brief legalization under Lenin and its re-criminalization in the 1930s +- [No Support: Russia’s “Gay Propaganda” Law Imperils LGBT Youth](https://www.hrw.org/report/2018/12/12/no-support/russias-gay-propaganda-law-imperils-lgbt-youth#) + - This article covers some of the major issues in Russia's newanti-LGBTQ information law and specifically its effects on youth education and safety. +- [In Putin’s Russia, an inconvenient hero at G-20](https://www.washingtonpost.com/world/in-putins-russia-an-inconvenient-hero-at-g-20/2013/09/03/5ea74366-14a2-11e3-b220-2c950c7f3263_story.html) + - This American news article covers contemporary Russian LGBTQ rights and its complex relationship to queer historical military hero Grand Duke Constantine Constantinovich of Russia. \ No newline at end of file diff --git a/src/pages/Proposal.md b/src/pages/Proposal.md new file mode 100644 index 0000000..d7a230b --- /dev/null +++ b/src/pages/Proposal.md @@ -0,0 +1,42 @@ +--- +title: "Post-Soviet Queerness" +description: 'Fashion and Social Media: Finding Community Across Borders' +bodyClass: "gallery-page" +instalinks: ["https://www.instagram.com/p/B6scc4ejFzJ/", "https://www.instagram.com/p/CLUBQZknOVc/","https://www.instagram.com/p/CXOqKRFrQMF/", "https://www.instagram.com/p/B6vr2ZQjYJq/","https://www.instagram.com/p/BYvEqoUAqBc/?hl=en","https://www.instagram.com/p/B8tjuYzBUZL/"] +somevariable: ["https://www.instagram.com/p/B6scc4ejFzJ/", "https://www.instagram.com/p/CLUBQZknOVc/","https://www.instagram.com/p/CXOqKRFrQMF/", "https://www.instagram.com/p/B6vr2ZQjYJq/","https://www.instagram.com/p/BYvEqoUAqBc/?hl=en","https://www.instagram.com/p/B8tjuYzBUZL/"] +--- +{% instagallery instalinks %} +### Contemporary Fashion, Art and Activism: Uniting a Community Across Lines +Although Queerness itself, such as sexuality, has not been criminalized since 1993 in Russia and 1991 in Ukraine, homosexuality, Queerness, and queer culture have largely disapproved, ostracized, policed and punished by the Russian and Ukrainian communities. + +Within Russian same-sex couples and families are not privy to the same social services, legal rights and protections as heterosexual couples. For example, the state does not recognize marriage between same-sex couples, nor are LGBTQ individuals protected against discrimination and hate crimes. Additionally, traditional forms of protest for Queer Rights such as organized public protest, government criticism, blockades, and marches most affiliated with the New York Gay Rights movement are not legal nor transposable within the Russian state or context. Since 2014, protests, freedom of assembly without government officials' expressed approval have been criminalized and punishable in Russia. + +Additionally, in 2013 Russia passed a "gay propaganda" law that acts as a political arm to suppress gay rights, education, and community online and physically. Members of parliament argue that the objective of the law is to "protect children" from finding information unnatural and immoral people and simultaneously champion "tradtional" family values and structures. + + +However, Russian creatives have found a loophole to these laws through international social media giants such as Instagram as a way to network across borders, organizations with the capacity to attract thousands of people. Moreover, social media does not follow the same political lines or organizations; this allows the collaboration and networking between cultural leaders, artistic creatives, political activists, and the unassociated queer population to connect on the commonality of queer. + +As pop and EDM culture and the age of television and the internet popularized, the ability to find queer iconographies and symbols across Russia has never been more accessible and, most crucial, transportable across borders and language barriers. Artists (while not queer) like Russian pop duo T.aT.u and 2007 Ukrainian Eurovision contestant Verka Serduchka have become transnational icons of queerness transnationally despite neither being queer. Russian pop duo T.aT.u Lena Katina and Julia Volkova released the Queer cult classic "All the Things She Said" in 2002, rising in the charts and landing their late-night debut on the Late Late Show with Craig Kilborn. + +{% endinstagallery %} + +"All the Things She Said" became a queer anthem accompanied by nearly pornographic performances while singing live and queer baiting in the music video. However, despite Katin and Volkova being heterosexual and anti-LGBTQ, they have become complicated international queer cult legends in both Russia and America, spurring conversations on rights and freedom in both countries in a time where queer visibility in mainstream media was a rare sight and only a few years following Ellen coming out. Vice journalist Daisy Jones sums up the complicated status of "All the Things She Said" as a facilitator of queer mobile zones and world-making writing, + +#### "I'm imbuing "All the Things She Said" with an excessive sentimentality here. Honestly, listen back to it now – it fucking slaps – and it also offered us actual queer girls the opportunity to reframe a marketing ploy into something powerful in the process – in spite of Volkova's blatant, wince-worthy homophobia. And while this band are so far from being queer icons (please!), the post-Trump need for girls making out in the rain to the sound of some freaky rock-trance hybrid has never been greater. I, for one, am here for it." + +Similarily, Ukrainian Eurovision song contestant Verka Serduchka acted as a significant post soviet gay icon on an international stage. While the Eurovision Song Contest is known for its eccentricity and Camp, it functions as geopolitical state power identity politics stringing together the queer identity and politics across Europe. However, none is as recognizable as drag star Verka Serduchka, dressed in a sparking track suit and or stereotypical traditional babushka garb. Her large and comically artificial breasts and camp makeup make her a recognizable and popular queer icon. While not gay herself, Serduchka's song КИСС ПЛИЗ (Kiss Me) is an example of how media subverts anti-LGBTQ politics, essentially making its way into popular culture independent from heteronormative institutional powers as a queer counter-public balancing between power dynamic between public versus private. Her music video features Serduchka dressed in the classic tracksuit with a disco ball star on her head. Her breasts are comically large, followed by her character's babushka mother and surrounded by hot twinks. Serduchka sings "I need your dance" and "kiss me" against an EDM track surrounded by sweaty men in towels and floating cellphones. The song and music video are the definition of Camp, garnering over a million views on youtube. While Serduchka may be recognized as a queer icon in Russia and Ukraine, youtube has allowed her drag persona to be recognizable transnationally across language barriers, even making her way into American films, including Melissa McCarthy's "Spy." + +Today music and art continue to be at the forefront of subversive queer activism and the media's ability to mobilize queer counter-publics further domestically and transnationally. [АНГЕЛ УЛЬЯНОВ](https://www.instagram.com/angel_ulyanov/) (ANGEL ULYANOV) music video for [Давай замутим](https://www.youtube.com/watch?v=NetBsW8hIok&ab_channel=%D0%90%D0%9D%D0%93%D0%95%D0%9B%D0%A3%D0%9B%D0%AC%D0%AF%D0%9D%D0%9E%D0%92) is an example of how media continues to "push against institutional powers and diversionary lines explores the power dynamic between public versus private sex acts that develop based on relationships, cultures, and communities only recognized in intimate and close queer communities separate from any relation to domestic spaces, collective nationhood, and property" (Berlant & Warner, 558). Like Verka Seduchka, the music video for Давай замутим illustrates the complex dynamic between public versus private and the relationship between queer count-publics and nationhood. Various motifs of Russian pop culture are represented in the video, from the shaved heads to the tracksuit, while queer zones and aesthetics are simultaneously depicted. In addition, the video features voguing and scenes that make reference to ballroom culture. The camp imagery may be influenced by Western Queer culture; however, the music video illustrates a uniquely Russian experience of a Queer counter-public in today's Moscow. + +Furthermore, Давай замутим illustrates the complex dynamic between the public and private in mobile Queer zones amongst the Queer people who exist and operate within it. While he vogues in public, the voguing dancer's experience with the music and its connection with his body is made so in private; his headphones on create a second private queer zone within a mobile queer zone. He dances for an audience; despite his clothing representing a heteronormative style in Russia, his dance indicates his place within the Queer community, a sort of audition for validity and space within the counter-public. It is only after grabbing his judger (the red tracksuit) and death dropping that he is welcomed into the counterpublic; his audience in similar outfits lifts him as the scene quickly changes to him voguing in a house party. The video gets "campier" as it continues with the voguing individual; cropping his jumpsuit and covered in glitter, he dances amongst his peers in the safety of the mobile Queer zone. However, this merging of the public and private is only temporary; as the space Queers itself, it is also increasingly subject to violence. Audience members are shown in rapture covered in blood as lights flash violently until the voguing individual is alone surrounded by bodies strewn across the floor, indicating the violent atmosphere Queer individuals must survive in Russia. The video ends with the voguing individual codifying and assimilating into the hegemonic heteronormative aesthetic, a testament to the temporality and fragility of a Queer counter-public survival and the mobility it must operate on to survive. + + + + + + + + +--- + + diff --git a/src/pages/about.md b/src/pages/about.md index c77a3ab..cfe48a9 100644 --- a/src/pages/about.md +++ b/src/pages/about.md @@ -1,228 +1,53 @@ --- -title: "About" -description: "A brief introduction to this starter kit." +title: "Out of the Periphery: Queer Soviet Russia" +description: "Out of the Periphery: Queer Aesthetic and Community in Soviet Russia" --- -## Intro to Jumpstart +#### Queerness in Russia during the late 19th and early 20th centuries saw intense changes in laws, freedom of movement and expression. Additionally, these rapid changes led to significant shifts in cultural attitudes and social and medical reforms surrounding gender expression, transgender and gender studies, and acknowledgement under both laws and society. From Romanov, Lenin, Stalin, and the fall of the USSR, Queerness survived in Russia on similar subversive aesthetic lines to the media loopholes we see contemporary queer communities use today on sites such as Instagram and Twitter. Russia's relationship to Queerness is a long and contentious history from the Lenin's leftist legalizations and the conservative crackdowns of conservative Stalinist governments; queer communities survived on the peripheries of society, building communities around the fashion coding and aesthetic. + +### Queerness in Russia from the Fall of the Romanovs to the Rise of Lenin -This project starter kit, [forked from the original 11ty jumpstart repo](https://github.com/5t3ph/11ty-netlify-jumpstart), is intended to be _just enough_ to be a functional site using 11ty, and also to introduce essential 11ty features. +As discussed by Dan Healy in "Homosexual Desire in Revolutionary Russia: the Regulation of Sexual and Gender Dissent," Healy argues that homosexuality in Russia pre-revolutionary Russia offered more unofficial freedoms than its counterparts in Europe despite its illegal status. Furthermore, he argues that the criminalization of homosexuality is an "imported" law from other parts of Europe by Peter the Great. Under Peter, the Great sodomy (homosexuality) would be outlawed only amongst military men. Still, homosexuality would remain as a de facto legal status due to no law referencing the general public. It was only in 1835 that homosexuality in the general public (men only) became illegal. -[**Review the "Quick Start"**](/index.html#quickstart) on the home page for how to get this starter up and running for your project. +In Imperial Russia, "all sexuality was regarded with suspicion as a source of impurity." Sodomy was responded with formal penalties, and consensual male same-sex relations, not implicating anal penetration, were deemed no worse than masturbation (Healy). Michel Foucault blames the development of capitalism and utilitarianism as significant components of the West's regulation, medicalization, and suppression of homosexuality, writing, "it becomes an integral part of the bourgeois order" (Foucault, 6). Russia in the 19th century saw very little capitalist growth remaining an agricultural and largely landlord-based system, unlike the industrially growing West, maintaining traditional boundaries and system of society dating back from the 15th century. The 19th century maintained traditional demographics and power systems, with the majority of Russia's population being peasants and serfs, with gentry Landlords holding almost all the power. Healy explores the power Landlords held and their patriarchal role amongst his tenant's sexual relationships that, in some cases, this power dynamic developed into a patron-client sexual hierarchy writing "same-sex eros between males occurred in these enviroments and reflected their characteristics patterns of domination and subordination" (Healy, 22). This patron-client relationship existed everywhere, from exploiting young men for alcohol, cab driver supplementing incomes, teacher apprentice relationships and mutual masturbation with servants. However, nowhere was the patron-client relationship more prevalent and survived the longest than in the bathhouse. -Meanwhile, here are the original docs about this starter kit. Most of it you don't have to worry about, but you might want to look at VSCode Tips. +The bathhouse, since the 1700s, has been a place of sexual indulgence and exploration, later becoming the center of a queer social community. As medicalization and suppression of sexuality grew, Russian psychiatrists as a space full of prostitution and cruising culture (Healy, 27). The bathhouse functioned under a hierarchical system from patrons to senior servants and junior servants at the bottom. Clothing or lack of clothing denoted one's position in this hierarchy; young junior attendants tended to wear traditional Russian shirts while senior assistants worked in the nude (Healy, 181). Additionally, whether dressed or not, attendants followed a specific aesthetic uniform; beardless youthful attendants staffed bathhouses. Healy states this aesthetic tradition dates back to the 1700s, developed from Russia's patron-client structure. This is evidenced by a seventeenth-century miniature portrait depicting four beardless male youth attendants serving male bathhouse traditions (Healy, 26). -### Jump to: +Towards the end of the 19th-century, Bathhouses, despite beings popular sights for cruising and male prostitution, went largely unbothered, with even prolific members of the Imperial family frequenting them for cruising. For example, in the private journals of Grand Duke Constantine Constantinovich of Russia (1858-1915), despite marrying young and producing nine children, Constantine was undeniably bisexual; his diaries confessed his affairs with young men and his frequent trips to a male bathhouse/brothel in St. Petersburg, a popular space for cruising, and the inner turmoil he felt for doing so. Typical of traditional hierarchal Bathhouse culture, Grand Duke Constantine Constantinovich found a relationship with a young bathhouse attendant writing about their affair frequently and the turmoil he anguished over having "sinned." -- [Global Site Data and .env](#global-site-data-and-env) -- [Template Languages Used](#template-languages-used) -- [Layout Hierarchy and Features](#layout-hierarchy-and-features) -- [Expected Frontmatter](#expected-frontmatter) -- [Permalink Style](#permalink-style) -- [Asset Handling](#asset-handling) -- [Linting](#linting) -- [Sass Framework](#sass-framework) -- [Anchor links](#anchor-links) -- [Sitemap](#sitemap) -- [RSS Feed](#rss-feed) -- [Social Share Preview Images](#social-share-preview-images) -- [Prism Syntax Highlighting](#prism-syntax-highlighting) -- [.eleventy.js Config Features](#eleventyjs-config-features) -- [VSCode Tips](#vscode-tips) +![](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR9l5LihmwkC8KeUGHdaIYydNdznwDY_1-LVHep9fxKzX7FITS1dR_cFa6Ap1aZIoAHnCc&usqp=CAU) +- 1. Russian Style Banya (bathhouse) early 20th century -## Global Site Data and .env +![](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSJK5E_B8RqtsTg8Z33gEKyMqxkfb97DRchBg&usqp=CAU) +- 2. Group of Gay men Russia late 19th early 20th century -As noted in the [Quick Start](/#quickstart), there are global site data variables in `src/_data/meta.json`. +![](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) +- 3. Senior Bathouse attendant with Patron in a tradtional Banya -Those include: +![](https://www.marxist.com/images/stories/history/Egorov_bathhouse_in_Saint-Petersburg_Russia_about_1910_Image_public_domain.jpg) +- 4. A traditional Banya. Senior attendant wash patrons while young clean shaven and semi-clothed junior attends stand in the back. -- `url` - should remain unchanged, reads from the single expected `.env` value of `URL` -- `siteName` - your "brand" if you will, appended to the `` tag, shown in the `sitenav`, displayed in the "hero" for the `home` layout, in the footer by the copyright, as the "credit" for social share images, and as the identifier throughout the RSS feed -- `siteDescription` - used in the "description" meta tag, and below the `siteName` on the `home` layout -- `authorName` - Used in the RSS feed, intended to be your full name -- `twitterUsername` - without the "@", this value is used for the Twitter meta tags, and for the URL of the icon link in the footer +![](https://upload.wikimedia.org/wikipedia/commons/1/11/Grand_Duke_Constantine_Constantinovich_of_Russia.jpg) +- 5. Grand Duke Constantine Constantinovich of Russia +### Queer Aesthetic and Community from Lenin to Stalin's Soviet Russia +Lenin's rise to power saw a small window in time for Queerness to be legalized and thrive, moving more and more out of the periphery and into the mainstream Moscow and St Petersburg (Petrograd/Leningrad). Finally, following the Bolshevik revolution in 1917, homosexuality was defacto legalized by abolishing all imperial laws and governance. While legal, homosexuals under Bolshevik governments were still under threat and discriminated against. Through fashion and coding, Gay men in Russia developed a distinct underground community and language. Looks included red ties or shawls sewn into back pockets and powered faces with heavy mascara. However, this coding was not universal amongst homosexual counter-public and subcultures. Like the bathhouses during the late 18th century, class hierarchy separated homosexual communities into two distinct categories, the rich, the last echos of the fashionable aristocratic nobility class before the revolution, and the poor, the unfashionable working class including soldiers and "ordinary" people. Magnus Hirschfeld, a German scientist, indirectly and directly influenced the Bolsheviks. He founded the Institute of Sexology in Berlin, and his publication "The Third Sex" translated into Russian only a few years after its initial publication in German. -### .env +However, Healy argues to a certain extent, despite the later medicalization of homosexuality under the Bolshevik government, Lenin took a utilitarian approach to sex and suxeuality; considering sex, whether hetero or homo, to be a private affair and sex for pleasure a sacrifice devoted revolutionaries should make. Healy writes, -See `.env-sample` for the single expected value of `URL` which should be set to your localhost. The sample uses the default 11ty port, so you can simply rename the file to `.env` if you haven't changed the port. +#### "Lenin seemed to be saying that those who suffered from a “personalabnormality . . . in sexual life” ought to do so in silence while working for the revolution. Indulging in transgressive sexual behavior was“really quite bourgeois,” while seeking the sympathy of middle-classmorality was capitulation to the enemy. For the young “queer subject” imagined by Ushakovskii in 1908, the Lenin of 1920, refracted through the even more conservative mood of 1924, proposed an existence of sacrifice of the “personal” to the revolutionary movement (Healy, 113)." -The `URL` value is then available via the global data described previously, and can be used in templates with `meta.url`. You can see this used for the RSS feed and sitemap as well as meta tag links to the social share preview images to create the absolute URLs. +While homosexuality was tolerated for a short period, conservative movements under Stalin in the 1930s saw the re-criminalization of homosexuality in Russia in the new Criminal Code of 1934. The hierarchal system of homosexuality of two counter publics offering two distinct mobile communities and freedoms came to an end; the aristocratic artistic homosexual community was not exempt from the brutal crackdown. As Stalin's crackdowns took form, so did the penalties for homosexuality; one year before the official criminalization of homosexuality saw the arrest and imprisonment of approximately 175 Gay men in July of 1933. The case continues to be classified; however, most men were charged and imprisoned in the Gulags, sentenced to hard labour, not for homosexuality but bad morality, counter-revolutionary espionage, into-social behaviours, and the corruption of corruption the Red Army. -## Template Languages Used +Generally, these stringent anti-homosexuality laws remained intact until the 1980s. Some slight movements to decriminalize consensual sodomy in the criminal code in 1959 made waves amongst a jurist committee however was overwhelmingly unsupported by the majority and crushed quickly. Homosexuality continued to function in subversive mobile counter-publics through bathhouse culture, fashion coding, and discrete cruising persisted against the harsh crackdowns and KGB. In the 1980s, under Gorbachov's government, Gay rights and activism discussion on the decriminalization of homosexuality grew. Gorbachov, until his predecessors, welcomed specific discussion and criticism of the Russian Soviet government in addition to the opening of the Soviet Union. Gorbachov's government permitted the first gay rights activist group to operate in addition to their magazine "Tema." Under his government, the first Mcdonald's opened in Moscow in January 1990. However, it was not until Boris Yeltsin in 1993 that homosexuality was legalized. -Page templates are created as Nunjucks (`.njk`), and feature are added that expect Markdown for most page content. +The 2000s brought new changes to LBGTQ freedoms and rights, and private counterpublic became public with the introduction of the internet and the re-opening of the Soviet Union to the West. See [Post-Soviet Queerness](http://localhost:8080/hh-project-11ty-starter-kit/Proposal/) for more information on Queer counter-publics and aesthetic in contemporary Russia +![](https://ichef.bbci.co.uk/news/976/cpsprodpb/1652C/production/_98463419_1161e954-e74a-425f-a038-4388c54ce52b.jpg) +- 6. Image of Russian sailors with men in drag -The home page - `src/index.njk` - is set to process first as Markdown followed by Nunjucks. This allows mixing HTML with Markdown, with benefits being code syntax highlighting and ability to include classes on HTML elements. This functionality is provided by the `templateEngineOverride: md, njk` in the frontmatter. -A unique case uses Nunjucks to create the `json` that is used to generate the [social share preview images](#social-share-preview-images). -Review the list of [available templating languages](https://www.11ty.dev/docs/languages/) in the 11ty docs. +![](https://cdn2.opendemocracy.net/media/images/Archives_Roldugina_2_UlJJB61.width-800.jpg) + - 7. A drag party early 20th Century Moscow -## Layout Hierarchy and Features -There are two layouts and one partial included. -**New in v1.1.0** - layouts are customized to be located in `src/_layouts`. -- `_layouts/base.njk` includes the standard HTML boilerplate including meta and "og" tags in `<head>`. - -- `_layouts/page.njk` includes the `sitenav.njk` partial and chains up to `base` - -The `src/index.njk` template chains to the `base` layout and includes a loop that will create "cards" for everything in `collections.pages`. - -## Expected Frontmatter - -There are only two fields expected: - -- `title` - essentially required, by default is used in the page `<title>`, in the layout "hero", in social share preview images, and in social share meta tags. -- `description` - optional, by default appears below the title for the `page` template and is used as for the "description" meta tag and social share meta tag descriptions. - -## Permalink Style - -The default setup expects content - using any template language - within `pages/`. - -The `pages.json` in that directory includes a `permalink` setting so that the file name is used directly to prevent 'pages' being the base of the URL. - -You can [override permalinks per file](https://www.11ty.dev/docs/permalinks/). - -## Asset Handling - -In the `.eleventy.js` config, there are included "pass-throughs" for an `img/` directory as well as `favicon.png`. - -You can replace the included favicon, and create an `img` directory or remove the `addPassthroughCopy` if you do not have need of images. - -Creating an `img` directory and keeping the pass-through directive will make images available at `/img/[image-file-path]` relative to the site root. - -## Linting - -For Sass, [stylelint](https://stylelint.io/) is included. If you want to keep it, you may want to do a find/replace for `tdbc` to the prefix of your choice. If not, you'll want to remove the related files at the project root as well as the related items in the `package.json`. - -A `prettier` config is included, with the only update being `printWidth: 100`. - -## Sass Framework - -Review the [styling documentation](https://5t3ph.github.io/html-sass-jumpstart/) for the included minimal Sass framework, particularly the theme variables, to quickly customize the starter. - -The only notable differences are: - -1. `sitenav` - adjust the styles for the navigation header that appears on pages -1. `tdbc-anchor` - styles for the `#` anchor that appears next to page headings ([or turn that feature off](#anchor-links)) can be adjusted in `sass/_utilities` -1. Additional `article`-scoped styling for typography as it appears on `pages` -1. A theme for the [`prism` syntax highlighting](#prism-syntax-highlighting) for code blocks. You can adjust or replace the theme in `sass/_prism`. - -### Fonts - -The default font is [Baloo 2](https://fonts.google.com/specimen/Baloo+2) and is locally hosted with files in `fonts/`. If you swap to a different font, be sure to remove the font files as well as the `@font-face` rules at the top of `sass/_fonts.scss`, and update the `$tdbc-font-family` Sass variable. - -## Anchor Links - -Anchor links next to headings throughout Markdown content are generated by an add-on plugin for `markdownIt`. - -This feature can be adjusted or removed in the `.eleventy.js` config file. - -## Generated Features - -### Sitemap - -A `sitemap.xml` is generated from all available content. - -To exclude non-page or non-public content from the sitemap, include `eleventyExcludeFromCollections: true` in frontmatter, or [create a custom filter](https://www.11ty.dev/docs/collections/#advanced-custom-filtering-and-sorting). - -### RSS Feed - -An RSS feed is included, and output at `[siteurl]/feed/feed.xml`. - -If publishing from Netlify, the included `netlify.toml` file will create a redirect so that the feed becomes available at `[siteurl]/feed`. - -### Social Share Preview Images - -Upon use of the build command, social share preview images are generated for each page + the home page, and available in `docs/previews/[title-as-slug].png`. - -Here's an example of the default template: - -![default social share preview image template](/previews/hello-world.png) - -As of v0.5.0, these images now use my Eleventy plugin - `@11tyrocks/eleventy-plugin-social-images` - with the default blue theme and a customized template. - -Any changes made can be previewed by running the build command and reviewing the contents of `docs/previews/`. - -[Review the plugin docs](https://www.npmjs.com/package/@11tyrocks/eleventy-plugin-social-images) for the full details of how to customize the behavior, and read on to learn how this starter is currently setup for the social images. - -#### Update social image template HTML - -HTML can be changed in `_generate/socialtemplate.njk` - be sure to leave the `<style>` block and the template tag within so that the plugin can insert your styles. - -The only requirement for the generator to work is to keep an `<h1>` to populate with the content title, but the rest of the template is up to you! - -#### Update social image template style - -There are two options: - -1. Select a different theme to use from the plugin's [predefined theme options](https://github.com/5t3ph/eleventy-plugin-social-images/tree/main/themes) and amend the `social-images` script to set the `--theme` option -2. Create a custom stylesheet (such as social.scss) and add the included `build:sass-social` script at the end of the `build:sass` command - -If choosing to create your own styles for option #2, the CSS will be output in `social/style.css` with provided stubbed out script. You will need to add this as the value for the `--stylesPath` option within the `social-images` script to ensure your custom styles are used. - -#### Change included pages OR available data - -Adjust the collections loop in `_generate/pagesjson.njk`, but keep the defined keys of `title` and `imgName`. - -## Prism Syntax Highlighting - -Syntax highlighting of inline or code blocks found within Markdown content is provided by Prism via `@11ty/eleventy-plugin-syntaxhighlight`. - -You can change the theme used in `sass/_prism.scss`. - -Or, remove the plugin if you are not in need of code highlighting. - -## .eleventy.js Config Features - -### Overrides - -- **Input directory**: `src` -- **Output directory**: `docs` -- **Layout directory**: `_layouts` - -Also, `markdownLibrary` is extended to add the `markdownItAnchor` plugin for [anchor links](#anchor-links). - -### Shortcode: `year` - -Returns the current `YYYY` year, used by the footer copyright. - -### Filter: `slug` - -Makes the default `slug` function more strict to ensure things like excluding emojis and enforcing lowercase. - -## VSCode Tips - -### Nunjucks - -If you haven't previously worked with Nunjucks, you will want a syntax highlighting extension: [Nunjucks](https://marketplace.visualstudio.com/items?itemName=ronnidc.nunjucks) - -In addition, you may want to ensure Emmet works on `.njk` files by updating/adding the following in the `settings.json`: - -```json -"emmet.includeLanguages": { - "nunjucks": "html", -}, -``` - -### Formatting - -As noted previously, a `prettier` config is included, and you may want to get the -Prettier extension and update your VSCode settings to "Format on Save". - -However, to format template files Prettier doesn't recognize like `.njk`, you can update the "Language Mode" on the currently open file from "Nunjucks" (or other current templating language) to "HTML" to allow formatting to be applied. Then, flip it back to re-allow the syntax highlighting if needed. - -This is located in the VSCode bottom toolbar near the right-hand side and will display the value of the current file's detected language. Click the name to open the selector. - -### Colophon - -this starter kit was originally written by Stephanie Eckles - @5t3ph on [Twitter](https://twitter.com/5t3ph), [Github](https://github.com/5t3ph), [CodePen](https://codepen.com/5t3ph), and [DEV](https://dev.to/5t3ph). - -Here's what she has to say about herself: - - -> You may know me as the author of [ModernCSS.dev](https://moderncss.dev) or the creator of [StyleStage.dev](https://stylestage.dev). I can also be found on [egghead as an instructor](https://egghead.io/instructors/stephanie-eckles?af=2s65ms). - -> Check out my extended collection of Eleventy resources available on [11ty.Rocks](https://11ty.rocks)! - -> I spent a decade creating WordPress themes and plugins then flipped to product development + leading development of a multi-platform enterprise design system. My intro to Jamstack was with Gatsby, but 11ty fills a special place that is so needed for truly static sites. I'm in love, and I think you will be, too. diff --git a/src/pages/styledemo.md b/src/pages/styledemo.md index b178fab..070d4fe 100644 --- a/src/pages/styledemo.md +++ b/src/pages/styledemo.md @@ -1,102 +1,41 @@ --- -title: "Style Demo" -description: 'A demo of the "Page" template and kitchen sink sample of styled elements.' +title: "Queer Counterpublic and the Object of Power" +description: 'Queer Counterpublics and Fashion.' --- -> Credit for the kitchen sink elements to the ["Just the Docs"](https://github.com/pmarsceill/just-the-docs) project by [pmarsceill](https://github.com/pmarsceill), and to the original author of the starterkit. +## The Queer Counterpublic and World Making (Lauren Berlant and Michael Warner) +Sex in Public by Lauren Berlant and Michael Warner explores the concept of queer culture as world-making and counter-publics, which functions as a form of resistance against heteronormative powers and rules of intimacy. This counter-public against institutional powers and diversionary lines explores the power dynamic between public versus private sex acts that develop based on relationships, cultures, and communities only recognized in intimate and close queer communities separate from any relation to domestic spaces, collective nationhood, and property (Berlant & Warner, 558). Berlant and Warner write, -# Introduction +### "By queer culture we mean a world-making project, where "world," like "public," differs from community or group because it necessarily includes more people than can be identified, more spaces than can be mapped beyond a few reference points, modes of feeling that can be learned rather than experienced as a birthright.” -Most of your time on this project will be spent writing in markdown. This page lives here as a reminder of how to write in markdown. Please note that I've appended a brief discussion of how to use footnotes here. +![](https://dazedimg-dazedgroup.netdna-ssl.com/1280/azure/dazed-prod/1250/6/1256574.jpg) -# Header 1 +Berlant and warner explain through these shared intimacies and spaces that the world-making project forms by acknowledging the different facets in which queer culture forms outside public opinion and state power or even sexuality. Instead, through this counter-public that queer culture is developed through relationships and narratives of intimacy and sexualization found only in queer spaces. One example Berlant and Warner give is describing the act of public vomiting in a sex club. The counter-public rejects the heteronormative private and public diversionary lines when the audience participates in collective intimacy in the event. The audience cannot look away; while the audience does not join in and vomit, they are part of the act, a collective participant in the intimate moment, whistling, stomping and moaning as the climatic vomiting ensues, forming a queered counter-public independent from heteronormative powers and domestic spaces (Berlant & Warner, 558). +Berlant and Warner describe world-making as a counter-public that rejects heteronormative diversionary lines of public versus private. They argue because it was not just two people in an intimate act but everyone engaged in the intimate act with everyone else, the collective +#### "includes more people than can be identified, more spaces than can be mapped beyond a few reference points" (Berlant & Warner, 558) -This is a normal paragraph following a header. GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere. +![](https://dazedimg-dazedgroup.netdna-ssl.com/1280/azure/dazed-prod/1250/6/1256584.jpg) -Text can be **bold**, _italic_, or ~~strikethrough~~. +Queer counter-publics are an example of resistance to power by redefining the dividing line between public and private; the counter-public also creates a community based on shared principles, challenging heteronormative powers by creating through sex acts that -[Link to another page](/about). +#### “support forms of affective, erotic and personal living that are public in the sense of accessible, available to memory, and sustained through collective activity” (Berlant & Warner, 562) -## Header 2 +![](https://dazedimg-dazedgroup.netdna-ssl.com/1280/azure/dazed-prod/1250/6/1256596.jpg) -> This is a blockquote following a header. -> -> When something is important enough, you do it even if the odds are not in your favor. +The world-making project, described by Berlant and Warner, acts as a counter-public by rejecting heteronormative powers in its rejection and questioning the private versus public. -### Header 3 +![](https://img.theculturetrip.com/1440x807/smart/wp-content/uploads/2017/08/kiev2.jpg) -```js -// Javascript code with syntax highlighting. -var fun = function lang(l) { - dateformat.i18n = require("./lang/" + l); - return true; -}; -``` +Fashion can operate as a form of queer world-making, producing a queer counterpublic visible to heteronormative powers while remaining independent from heteronormative institutional powers and diversionary lines distinct from domestic spaces, collective nationhood, and property. Fashion is everything; it is a conscious choice you make when putting it on your body while simultaneously being unconscious chooses for you from a larger industrial complex. Whatever form it may come in as art, Avante-Garde, or drag, fashion and design is everywhere, and nobody is exempt; as Miranda Priestly (The Devil Wears Prada) describes the function of fashion best, -```ruby -# Ruby code with syntax highlighting -GitHubPages::Dependencies.gems.each do |gem, version| - s.add_dependency(gem, "= #{version}") -end -``` +### "However, that blue represents millions of dollars of countless jobs, and it’s sort of comical how you think that you’ve made a choice that exempts you from the fashion industry when in fact, you’re wearing a sweater that was selected for you by the people in this room… from a pile of “stuff.” -``` -Long, single-line code blocks should not wrap. They should horizontally scroll if they are too long. This line should be long enough to demonstrate this. -``` +Like sex, fashion functions as a form of resistance, fluid in nature and untraceable, mapped beyond a few reference points. As much as it can assimilate it, fashion can also " unsettle the garbled but powerful norms supporting that privilege-including the project of normalization that has made heterosexuality hegemonic" (Berlant & Warner 548). As Foucault argues, where there is power, there is resistance; fashion can give clarity to self-identity in these mobile counter publics mediated by the public. Fashion exists as a Berlant and Warner describe a -#### Header 4 +### "queer zones and other worlds estranged from heterosexual culture, but also more tacit scenes of sexuality like official national culture, which depends on a notion of privacy to cloak its sexualization of national membership" (547). -- This is an unordered list following a header. -- This is an unordered list following a header. -- This is an unordered list following a header. +Through fashion, an individual or group can communicate dissent and dissatisfaction simultaneously with notions and declaration of patriotism and national identity. The image below is an example of fashion that may represent the hierarchal, cultural, and systematic complexities of a queer counterpublic. As discussed in [Out of the Periphery: Queer Soviet Russia](http://localhost:8080/hh-project-11ty-starter-kit/about/), mobile queer communities during the early 1900s operated in a two-tier hierarchal system of the leftover aristocracy and the common folk, often soldiers and members of the Navy. Those who crossed dressed were afforded some mobility between these two groups. The image illustrates the complex hierarchal mobile queer zones intersecting with traditional Russian culture. For example, the cross-dressing individuals wear traditional female Russian clothing and hairstyles of that time, blending in with the Russian navy men. -##### Header 5 -1. This is an ordered list following a header. -2. This is an ordered list following a header. -3. This is an ordered list following a header. +![](https://ichef.bbci.co.uk/news/976/cpsprodpb/1652C/production/_98463419_1161e954-e74a-425f-a038-4388c54ce52b.jpg) -### There's a horizontal rule below this. - ---- - -### Here is an unordered list: - -- Item foo -- Item bar -- Item baz -- Item zip - -### And an ordered list: - -1. Item one -1. Item two -1. Item three -1. Item four - -### And a nested list: - -- level 1 item - - level 2 item - - level 2 item - - level 3 item - - level 3 item -- level 1 item - - level 2 item - - level 2 item - - level 2 item -- level 1 item - - level 2 item - - level 2 item -- level 1 item - -### Small Image - -![](https://picsum.photos/200) - -### Large image - -![](https://picsum.photos/800/300) - -## Footnotes -We use a [plugin](https://github.com/markdown-it/markdown-it-footnote) for rendering simple footnotes. It's not ideal but at lest youu can insert references here, which I find somewhat straightforward to do [using the technique described here](https://forums.zotero.org/discussion/93521/available-for-beta-testing-markdown-export-of-notes). Howver, it could be painful or at least awkward if you're using html format instead. diff --git a/src/sass/_gallery.scss b/src/sass/_gallery.scss new file mode 100644 index 0000000..a5c8d52 --- /dev/null +++ b/src/sass/_gallery.scss @@ -0,0 +1,35 @@ +body.gallery-page .tdbc-container, .trbc-container.gallery-page { + width: 100vw; + max-width: 160ch; + margin: 20px; + article.tdbc-mx-auto, article.gallery { + max-width: 120ch; + } +} + +article.gallery { + display: grid; + grid-template-columns: minmax(350px, 2fr) minmax(350px, 1fr); + max-width: 100%; + section.items { + display: grid; + grid-template-columns: repeat( auto-fill, minmax(326px, 1fr) ); + } +} + +@media screen and (max-width: 600px) { + + .tdbc-container.gallery-page article.gallery { + margin-left: auto; + margin-right: auto; + + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + grid-auto-rows: minmax(100px, auto); + section.items { + margin-left: auto; + margin-right: auto; + grid-template-columns: repeat( auto-fill, minmax(326px, 1fr) ); + } + + } +} diff --git a/src/sass/_theme.scss b/src/sass/_theme.scss index f14db10..4ada9f1 100644 --- a/src/sass/_theme.scss +++ b/src/sass/_theme.scss @@ -1,7 +1,7 @@ -$tdbc-color-primary: #215423 !default; -$tdbc-color-secondary: #b9f1ec !default; -// $tdbc-color-primary: #171392 !default; -$tdbc-color-secondary: #db0a76 !default; +$tdbc-color-primary: #ad6d76 !default; +$tdbc-color-secondary: #000000 !default; +// $tdbc-color-primary: black !default; +$tdbc-color-secondary: Black !default; $tdbc-color-background: #f9f9f9 !default; $tdbc-brand-colors: ( diff --git a/src/sass/style.scss b/src/sass/style.scss index 17b5d5b..c4a2abe 100644 --- a/src/sass/style.scss +++ b/src/sass/style.scss @@ -7,3 +7,4 @@ @use "card"; @use "prism"; @use "utilities"; +@use "gallery"; diff --git a/src/socialmedia/example.md b/src/socialmedia/example.md new file mode 100644 index 0000000..e93acd5 --- /dev/null +++ b/src/socialmedia/example.md @@ -0,0 +1,17 @@ +--- +title: "Queer Fashion Before Ukraine" +instalinks: ["https://www.instagram.com/p/B6scc4ejFzJ/", "https://www.instagram.com/p/CLUBQZknOVc/","https://www.instagram.com/p/CXOqKRFrQMF/", "https://www.instagram.com/p/B6vr2ZQjYJq/","https://www.instagram.com/p/BYvEqoUAqBc/?hl=en","https://www.instagram.com/p/B8tjuYzBUZL/"] +tags: ["fashion"] +layout: "gallery-section.njk" +--- + +Now I'm writing some markdown to describe and analyze the image. whatever I write here is going to be displayed next to the image. + +### Contemporary Fashion, Art and Activism: Uniting a Community Across Lines +Although Queerness itself, such as sexuality, has not been criminalized since 1993 in Russia and 1991 in Ukraine, homosexuality, Queerness, and queer culture have largely disapproved, ostracized, policed and punished by the Russian and Ukrainian communities. + +Within Russian same-sex couples and families are not privy to the same social services, legal rights and protections as heterosexual couples. For example, the state does not recognize marriage between same-sex couples, nor are LGBTQ individuals protected against discrimination and hate crimes. Additionally, traditional forms of protest for Queer Rights such as organized public protest, government criticism, blockades, and marches most affiliated with the New York Gay Rights movement are not legal nor transposable within the Russian state or context. + +Additionally, in 2013 Russia passed a "gay propaganda" law that acts as a political arm to suppress gay rights, education, and community online and physically. Members of parliament argue that the objective of the law is to "protect children" from finding information unnatural and immoral people and simultaneously champion "tradtional" family values and structures. The law also has been applied to online resources and websites that share LGBTQ education, activism, and services accessible to teenagers. + +However, Russian creatives have found a loophole to these laws through international social media giants such as Instagram as a way to network across borders, organizations with the capacity to attract thousands of people. Moreover, social media does not follow the same political lines or organizations; this allows the collaboration and networking between cultural leaders, artistic creatives, political activists, and the unassociated queer population to connect on the commonality of queer.