xiaohongshu
xiaohongshu
jekyll-research-theme
Create production-grade, accessible Jekyll themes for researchers conducting "research in public." Generates complete lab notebook-style themes with Tufte-inspired sidenotes, KaTeX math rendering, and WCAG 2.1 AA compliance. Use when building Jekyll themes for scientific journals, experiment logs...
Full skill instructions
Generate a complete, production-ready Jekyll theme designed for researchers who work in public. The theme prioritizes accessibility, elegant typography, and scientific workflows with Tufte-style sidenotes and math rendering.
Create a lab notebook aesthetic that feels like a refined scientist's journal:
Generate a complete Jekyll theme with this directory structure:
theme-name/
├── _layouts/
│ ├── default.html
│ ├── experiment.html
│ ├── field-note.html
│ └── home.html
├── _includes/
│ ├── head.html
│ ├── header.html
│ ├── footer.html
│ ├── sidenote.html
│ └── math.html
├── _sass/
│ ├── _base.scss
│ ├── _typography.scss
│ ├── _layout.scss
│ ├── _sidenotes.scss
│ ├── _accessibility.scss
│ └── main.scss
├── assets/
│ ├── css/
│ │ └── main.scss
│ └── js/
│ └── sidenotes.js
├── _config.yml
├── index.html
└── README.md
In _config.yml, define collections for content types:
collections:
experiments:
output: true
permalink: /experiments/:title/
field_notes:
output: true
permalink: /notes/:title/
defaults:
- scope:
path: ""
type: "experiments"
values:
layout: "experiment"
full_width: false
- scope:
path: ""
type: "field_notes"
values:
layout: "field-note"
full_width: false
Implement responsive sidenotes that adapt to viewport:
HTML Pattern (_includes/sidenote.html):
<label for="sn-{{ include.id }}" class="margin-toggle sidenote-number"></label>
<input type="checkbox" id="sn-{{ include.id }}" class="margin-toggle"/>
<span class="sidenote">{{ include.content }}</span>
CSS Requirements (_sass/_sidenotes.scss):
.sidenote-number has proper ARIA labels for screen readerscounter-reset and counter-increment for automatic numberingJavaScript Enhancement (assets/js/sidenotes.js):
In layout files, check for full_width frontmatter:
{% if page.full_width %}
<article class="content-full-width">
{% else %}
<article class="content-sidenotes">
{% endif %}
CSS handles width constraints:
.content-sidenotes {
max-width: 55%; // Leaves room for sidenotes
}
.content-full-width {
max-width: 90%; // Full reading width
}
In _includes/math.html:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.body, {
delimiters: [
{left: "$$", right: "$$", display: true},
{left: "$", right: "$", display: false}
]
});
});
</script>
Include in <head> of layouts that need math support.
_layouts/experiment.html should include:
_layouts/field-note.html should include:
<main>, <nav>, <article>, <aside> for structure<figure> and <figcaption> for images and diagramsaria-label for icon buttonsaria-current="page" for current navigation itemrole="navigation" for nav elementsaria-describedby for sidenote referencesaria-hidden="true" or .visually-hidden class<caption> and header markupChoose distinctive, characterful fonts:
Use modular scale for hierarchy:
$base-font-size: 18px;
$scale-ratio: 1.25; // Major third
h1: $base-font-size * $scale-ratio * $scale-ratio * $scale-ratio;
h2: $base-font-size * $scale-ratio * $scale-ratio;
h3: $base-font-size * $scale-ratio;
body: $base-font-size;
small: $base-font-size / $scale-ratio;
Lab notebook aesthetic with muted, sophisticated tones:
In _config.yml:
tag_page_layout: tag
tag_page_dir: tags
Create tags/index.html to list all tags.
For each tag, generate filtered collections view:
{% for post in site.experiments %}
{% if post.tags contains page.tag %}
<!-- Display post -->
{% endif %}
{% endfor %}
Provide sensible defaults in _config.yml:
title: Research Log
description: Public research and experimentation journal
author: [Your Name]
url: https://example.com
baseurl: ""
# Theme settings
sidenotes: true
math_rendering: true
font_headings: "Crimson Pro"
font_body: "Lora"
# Accessibility
skip_to_content: true
high_contrast_mode: false
# Collections (defined above)
# Defaults (defined above)
# Build settings
markdown: kramdown
kramdown:
input: GFM
syntax_highlighter: rouge
Include comprehensive README with:
$x$ and display $$x$$)---
layout: experiment
title: "Hypothesis Testing: Neural Network Convergence"
date: 2024-01-15
tags: [machine-learning, optimization, neural-networks]
status: ongoing
full_width: false
---
---
layout: field-note
title: "Initial Observations on Dataset Bias"
date: 2024-01-15T14:30:00
tags: [data-quality, machine-learning]
related_experiment: neural-network-convergence
---
Before considering the theme complete, verify:
Install the package via pip:
pip install color-contrast-linter
Start by creating a configuration file. Run the init command to generate a .color_pairs.yml file in your project root:
cc-lint init
This file allows you to define the minimum contrast standard (AA or AAA) and list the color pairs you want to test.
Example .color_pairs.yml:
min_contrast: AA
pairs:
- foreground: "#000000"
background: "#ffffff"
- foreground: "#767676" # Might fail AA for normal text
background: "#ffffff"
Execute the lint command to check your configured color pairs for accessibility issues:
cc-lint lint
The tool will analyze each pair and report:
min_contrast setting.This theme prioritizes researchers who think in experiments and observations. Every design decision should support scientific workflows: hypothesis documentation, iterative refinement, cross-referencing notes, and mathematical notation. The aesthetic should feel like a well-maintained lab notebook—professional, organized, and inviting for long-form reading.
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience