cli + tui to publish to leaflet (wip) & manage tasks, notes & watch/read lists 🍃
charm leaflet readability golang

feat: add article repository and validation services

- Introduced an ArticleRepository in the repo package to manage articles.
- Created validation services for various data types including strings, URLs, emails, dates, and file paths.
- Implemented a Validator struct for fluent validation checks and error handling.

+2178 -13
+5 -2
go.mod
··· 15 15 golang.org/x/time v0.12.0 16 16 ) 17 17 18 - require github.com/gomarkdown/markdown v0.0.0-20250810172220-2e2c11897d1a // indirect 18 + require ( 19 + github.com/gomarkdown/markdown v0.0.0-20250810172220-2e2c11897d1a 20 + github.com/jaswdr/faker/v2 v2.8.0 21 + ) 19 22 20 23 require ( 21 24 github.com/PuerkitoBio/goquery v1.10.3 22 25 github.com/andybalholm/cascadia v1.3.3 // indirect 23 - github.com/antchfx/htmlquery v1.3.4 // indirect 26 + github.com/antchfx/htmlquery v1.3.4 24 27 github.com/antchfx/xmlquery v1.4.4 // indirect 25 28 github.com/antchfx/xpath v1.3.3 // indirect 26 29 github.com/bits-and-blooms/bitset v1.22.0 // indirect
+2
go.sum
··· 89 89 github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= 90 90 github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= 91 91 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= 92 + github.com/jaswdr/faker/v2 v2.8.0 h1:3AxdXW9U7dJmWckh/P0YgRbNlCcVsTyrUNUnLVP9b3Q= 93 + github.com/jaswdr/faker/v2 v2.8.0/go.mod h1:jZq+qzNQr8/P+5fHd9t3txe2GNPnthrTfohtnJ7B+68= 92 94 github.com/kennygrant/sanitize v1.2.4 h1:gN25/otpP5vAsO2djbMhF/LQX6R7+O1TB4yv8NzpJ3o= 93 95 github.com/kennygrant/sanitize v1.2.4/go.mod h1:LGsjYYtgxbetdg5owWB2mpgUL6e2nfw2eObZ0u0qvak= 94 96 github.com/lucasb-eyer/go-colorful v1.3.0 h1:2/yBRLdWBZKrf7gB40FoiKfAWYQ0lqNcbuQwVHXptag=
+392
internal/articles/articles.go
··· 1 + package articles 2 + 3 + import ( 4 + "bufio" 5 + "embed" 6 + "fmt" 7 + "io" 8 + "net/http" 9 + "net/url" 10 + "os" 11 + "path/filepath" 12 + "regexp" 13 + "strings" 14 + "time" 15 + 16 + "github.com/antchfx/htmlquery" 17 + "github.com/gomarkdown/markdown" 18 + "github.com/gomarkdown/markdown/html" 19 + "github.com/gomarkdown/markdown/parser" 20 + "github.com/stormlightlabs/noteleaf/internal/models" 21 + ) 22 + 23 + //go:embed rules/*.txt 24 + var rulesFS embed.FS 25 + 26 + // ParsedContent represents the extracted content from a web page 27 + type ParsedContent struct { 28 + Title string 29 + Author string 30 + Date string 31 + Content string 32 + URL string 33 + } 34 + 35 + // ParsingRule represents XPath rules for extracting content from a specific domain 36 + type ParsingRule struct { 37 + Domain string 38 + Title string 39 + Author string 40 + Date string 41 + Body string 42 + Strip []string // XPath selectors for elements to remove 43 + TestURLs []string 44 + } 45 + 46 + // Parser interface defines methods for parsing articles from URLs 47 + type Parser interface { 48 + // ParseURL extracts article content from a given URL 49 + ParseURL(url string) (*ParsedContent, error) 50 + // Convert HTML content directly to markdown using domain-specific rules 51 + Convert(htmlContent, domain, sourceURL string) (string, error) 52 + // GetSupportedDomains returns a list of domains that have parsing rules 53 + GetSupportedDomains() []string 54 + // SaveArticle saves the parsed content to filesystem and returns file paths 55 + SaveArticle(content *ParsedContent, storageDir string) (markdownPath, htmlPath string, err error) 56 + } 57 + 58 + // ArticleParser implements the Parser interface 59 + type ArticleParser struct { 60 + rules map[string]*ParsingRule 61 + } 62 + 63 + // NewArticleParser creates a new ArticleParser with loaded rules 64 + func NewArticleParser() (*ArticleParser, error) { 65 + parser := &ArticleParser{ 66 + rules: make(map[string]*ParsingRule), 67 + } 68 + 69 + if err := parser.loadRules(); err != nil { 70 + return nil, fmt.Errorf("failed to load parsing rules: %w", err) 71 + } 72 + 73 + return parser, nil 74 + } 75 + 76 + func (p *ArticleParser) loadRules() error { 77 + entries, err := rulesFS.ReadDir("rules") 78 + if err != nil { 79 + return fmt.Errorf("failed to read rules directory: %w", err) 80 + } 81 + 82 + for _, entry := range entries { 83 + if !strings.HasSuffix(entry.Name(), ".txt") { 84 + continue 85 + } 86 + 87 + domain := strings.TrimSuffix(entry.Name(), ".txt") 88 + 89 + content, err := rulesFS.ReadFile(filepath.Join("rules", entry.Name())) 90 + if err != nil { 91 + return fmt.Errorf("failed to read rule file %s: %w", entry.Name(), err) 92 + } 93 + 94 + rule, err := p.parseRuleFile(domain, string(content)) 95 + if err != nil { 96 + return fmt.Errorf("failed to parse rule file %s: %w", entry.Name(), err) 97 + } 98 + 99 + p.rules[domain] = rule 100 + } 101 + 102 + return nil 103 + } 104 + 105 + func (p *ArticleParser) parseRuleFile(domain, content string) (*ParsingRule, error) { 106 + rule := &ParsingRule{Domain: domain, Strip: []string{}} 107 + scanner := bufio.NewScanner(strings.NewReader(content)) 108 + for scanner.Scan() { 109 + line := strings.TrimSpace(scanner.Text()) 110 + 111 + if line == "" || strings.HasPrefix(line, "#") { 112 + continue 113 + } 114 + 115 + parts := strings.SplitN(line, ":", 2) 116 + if len(parts) != 2 { 117 + continue 118 + } 119 + 120 + key := strings.TrimSpace(parts[0]) 121 + value := strings.TrimSpace(parts[1]) 122 + 123 + switch key { 124 + case "title": 125 + rule.Title = value 126 + case "author": 127 + rule.Author = value 128 + case "date": 129 + rule.Date = value 130 + case "body": 131 + rule.Body = value 132 + case "strip": 133 + rule.Strip = append(rule.Strip, value) 134 + case "test_url": 135 + rule.TestURLs = append(rule.TestURLs, value) 136 + } 137 + } 138 + 139 + if err := scanner.Err(); err != nil { 140 + return nil, fmt.Errorf("error reading rule file: %w", err) 141 + } 142 + 143 + return rule, nil 144 + } 145 + 146 + // ParseURL extracts article content from a given URL 147 + func (p *ArticleParser) ParseURL(urlStr string) (*ParsedContent, error) { 148 + parsedURL, err := url.Parse(urlStr) 149 + if err != nil { 150 + return nil, fmt.Errorf("invalid URL: %w", err) 151 + } 152 + 153 + domain := parsedURL.Hostname() 154 + 155 + resp, err := http.Get(urlStr) 156 + if err != nil { 157 + return nil, fmt.Errorf("failed to fetch URL: %w", err) 158 + } 159 + defer resp.Body.Close() 160 + 161 + if resp.StatusCode != http.StatusOK { 162 + return nil, fmt.Errorf("HTTP error: %d", resp.StatusCode) 163 + } 164 + 165 + htmlBytes, err := io.ReadAll(resp.Body) 166 + if err != nil { 167 + return nil, fmt.Errorf("failed to read response body: %w", err) 168 + } 169 + 170 + return p.Parse(string(htmlBytes), domain, urlStr) 171 + } 172 + 173 + // ParseHTML extracts article content from HTML string using domain-specific rules 174 + func (p *ArticleParser) Parse(htmlContent, domain, sourceURL string) (*ParsedContent, error) { 175 + var rule *ParsingRule 176 + for ruleDomain, r := range p.rules { 177 + if strings.Contains(domain, ruleDomain) { 178 + rule = r 179 + break 180 + } 181 + } 182 + 183 + if rule == nil { 184 + return nil, fmt.Errorf("no parsing rule found for domain: %s", domain) 185 + } 186 + 187 + doc, err := htmlquery.Parse(strings.NewReader(htmlContent)) 188 + if err != nil { 189 + return nil, fmt.Errorf("failed to parse HTML: %w", err) 190 + } 191 + 192 + content := &ParsedContent{URL: sourceURL} 193 + 194 + if rule.Title != "" { 195 + if titleNode := htmlquery.FindOne(doc, rule.Title); titleNode != nil { 196 + content.Title = strings.TrimSpace(htmlquery.InnerText(titleNode)) 197 + } 198 + } 199 + 200 + if rule.Author != "" { 201 + if authorNode := htmlquery.FindOne(doc, rule.Author); authorNode != nil { 202 + content.Author = strings.TrimSpace(htmlquery.InnerText(authorNode)) 203 + } 204 + } 205 + 206 + if rule.Date != "" { 207 + if dateNode := htmlquery.FindOne(doc, rule.Date); dateNode != nil { 208 + content.Date = strings.TrimSpace(htmlquery.InnerText(dateNode)) 209 + } 210 + } 211 + 212 + if rule.Body != "" { 213 + if bodyNode := htmlquery.FindOne(doc, rule.Body); bodyNode != nil { 214 + for _, stripXPath := range rule.Strip { 215 + stripNodes := htmlquery.Find(bodyNode, stripXPath) 216 + for _, node := range stripNodes { 217 + node.Parent.RemoveChild(node) 218 + } 219 + } 220 + 221 + content.Content = strings.TrimSpace(htmlquery.InnerText(bodyNode)) 222 + } 223 + } 224 + 225 + if content.Title == "" { 226 + return nil, fmt.Errorf("could not extract title from HTML") 227 + } 228 + 229 + return content, nil 230 + } 231 + 232 + // Convert HTML content directly to markdown using domain-specific rules 233 + func (p *ArticleParser) Convert(htmlContent, domain, sourceURL string) (string, error) { 234 + content, err := p.Parse(htmlContent, domain, sourceURL) 235 + if err != nil { 236 + return "", err 237 + } 238 + 239 + return p.createMarkdown(content), nil 240 + } 241 + 242 + // GetSupportedDomains returns a list of domains that have parsing rules 243 + func (p *ArticleParser) GetSupportedDomains() []string { 244 + var domains []string 245 + for domain := range p.rules { 246 + domains = append(domains, domain) 247 + } 248 + return domains 249 + } 250 + 251 + // SaveArticle saves the parsed content to filesystem and returns file paths 252 + func (p *ArticleParser) SaveArticle(content *ParsedContent, storageDir string) (markdownPath, htmlPath string, err error) { 253 + if err := os.MkdirAll(storageDir, 0755); err != nil { 254 + return "", "", fmt.Errorf("failed to create storage directory: %w", err) 255 + } 256 + 257 + slug := p.slugify(content.Title) 258 + if slug == "" { 259 + slug = "article" 260 + } 261 + 262 + baseMarkdownPath := filepath.Join(storageDir, slug+".md") 263 + baseHTMLPath := filepath.Join(storageDir, slug+".html") 264 + 265 + markdownPath = baseMarkdownPath 266 + htmlPath = baseHTMLPath 267 + 268 + counter := 1 269 + for { 270 + if _, err := os.Stat(markdownPath); os.IsNotExist(err) { 271 + if _, err := os.Stat(htmlPath); os.IsNotExist(err) { 272 + break 273 + } 274 + } 275 + markdownPath = filepath.Join(storageDir, fmt.Sprintf("%s_%d.md", slug, counter)) 276 + htmlPath = filepath.Join(storageDir, fmt.Sprintf("%s_%d.html", slug, counter)) 277 + counter++ 278 + } 279 + 280 + markdownContent := p.createMarkdown(content) 281 + 282 + if err := os.WriteFile(markdownPath, []byte(markdownContent), 0644); err != nil { 283 + return "", "", fmt.Errorf("failed to write markdown file: %w", err) 284 + } 285 + 286 + htmlContent := p.createHTML(content, markdownContent) 287 + 288 + if err := os.WriteFile(htmlPath, []byte(htmlContent), 0644); err != nil { 289 + os.Remove(markdownPath) 290 + return "", "", fmt.Errorf("failed to write HTML file: %w", err) 291 + } 292 + 293 + return markdownPath, htmlPath, nil 294 + } 295 + 296 + func (p *ArticleParser) slugify(title string) string { 297 + slug := strings.ToLower(title) 298 + 299 + reg := regexp.MustCompile(`[^a-z0-9]+`) 300 + slug = reg.ReplaceAllString(slug, "-") 301 + 302 + slug = strings.Trim(slug, "-") 303 + 304 + if len(slug) > 100 { 305 + slug = slug[:100] 306 + slug = strings.Trim(slug, "-") 307 + } 308 + 309 + return slug 310 + } 311 + 312 + func (p *ArticleParser) createMarkdown(content *ParsedContent) string { 313 + var builder strings.Builder 314 + 315 + builder.WriteString(fmt.Sprintf("# %s\n\n", content.Title)) 316 + 317 + if content.Author != "" { 318 + builder.WriteString(fmt.Sprintf("**Author:** %s\n\n", content.Author)) 319 + } 320 + 321 + if content.Date != "" { 322 + builder.WriteString(fmt.Sprintf("**Date:** %s\n\n", content.Date)) 323 + } 324 + 325 + builder.WriteString(fmt.Sprintf("**Source:** %s\n\n", content.URL)) 326 + builder.WriteString(fmt.Sprintf("**Saved:** %s\n\n", time.Now().Format("2006-01-02 15:04:05"))) 327 + 328 + builder.WriteString("---\n\n") 329 + builder.WriteString(content.Content) 330 + 331 + return builder.String() 332 + } 333 + 334 + func (p *ArticleParser) createHTML(content *ParsedContent, markdownContent string) string { 335 + extensions := parser.CommonExtensions | parser.AutoHeadingIDs | parser.NoEmptyLineBeforeBlock 336 + mdParser := parser.NewWithExtensions(extensions) 337 + doc := mdParser.Parse([]byte(markdownContent)) 338 + 339 + htmlFlags := html.CommonFlags | html.HrefTargetBlank 340 + opts := html.RendererOptions{Flags: htmlFlags} 341 + renderer := html.NewRenderer(opts) 342 + 343 + htmlBody := markdown.Render(doc, renderer) 344 + 345 + var builder strings.Builder 346 + builder.WriteString("<!DOCTYPE html>\n") 347 + builder.WriteString("<html>\n<head>\n") 348 + builder.WriteString(fmt.Sprintf(" <title>%s</title>\n", content.Title)) 349 + builder.WriteString(" <meta charset=\"UTF-8\">\n") 350 + builder.WriteString(" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n") 351 + builder.WriteString(" <style>\n") 352 + builder.WriteString(" body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }\n") 353 + builder.WriteString(" pre { background-color: #f4f4f4; padding: 10px; border-radius: 4px; overflow-x: auto; }\n") 354 + builder.WriteString(" blockquote { border-left: 4px solid #ccc; padding-left: 16px; margin-left: 0; }\n") 355 + builder.WriteString(" </style>\n") 356 + builder.WriteString("</head>\n<body>\n") 357 + builder.Write(htmlBody) 358 + builder.WriteString("\n</body>\n</html>") 359 + 360 + return builder.String() 361 + } 362 + 363 + // CreateArticleFromURL is a convenience function that parses a URL and creates an instance of [models.Article] 364 + func CreateArticleFromURL(url, dir string) (*models.Article, error) { 365 + parser, err := NewArticleParser() 366 + if err != nil { 367 + return nil, fmt.Errorf("failed to create parser: %w", err) 368 + } 369 + 370 + content, err := parser.ParseURL(url) 371 + if err != nil { 372 + return nil, fmt.Errorf("failed to parse URL: %w", err) 373 + } 374 + 375 + mdPath, htmlPath, err := parser.SaveArticle(content, dir) 376 + if err != nil { 377 + return nil, fmt.Errorf("failed to save article: %w", err) 378 + } 379 + 380 + article := &models.Article{ 381 + URL: url, 382 + Title: content.Title, 383 + Author: content.Author, 384 + Date: content.Date, 385 + MarkdownPath: mdPath, 386 + HTMLPath: htmlPath, 387 + Created: time.Now(), 388 + Modified: time.Now(), 389 + } 390 + 391 + return article, nil 392 + }
+246
internal/articles/articles_test.go
··· 1 + package articles 2 + 3 + import ( 4 + "fmt" 5 + "os" 6 + "strings" 7 + "testing" 8 + ) 9 + 10 + // ExampleParser_Convert demonstrates parsing a local HTML file using Wikipedia rules. 11 + func ExampleParser_Convert() { 12 + parser, err := NewArticleParser() 13 + if err != nil { 14 + fmt.Printf("Failed to create parser: %v\n", err) 15 + return 16 + } 17 + 18 + htmlPath := "examples/christopher-lloyd.html" 19 + htmlContent, err := os.ReadFile(htmlPath) 20 + if err != nil { 21 + fmt.Printf("Local HTML file not found: %v\n", err) 22 + return 23 + } 24 + 25 + markdown, err := parser.Convert(string(htmlContent), ".wikipedia.org", "https://en.wikipedia.org/wiki/Christopher_Lloyd") 26 + if err != nil { 27 + fmt.Printf("Failed to convert HTML: %v\n", err) 28 + return 29 + } 30 + 31 + parts := strings.Split(markdown, "\n---\n") 32 + if len(parts) > 0 { 33 + frontmatter := strings.TrimSpace(parts[0]) 34 + lines := strings.Split(frontmatter, "\n") 35 + 36 + for i, line := range lines { 37 + if i >= 4 { 38 + break 39 + } 40 + 41 + if !strings.Contains(line, "**Saved:**") { 42 + fmt.Println(line) 43 + } 44 + } 45 + } 46 + 47 + // Output: # Christopher Lloyd 48 + // 49 + // **Source:** https://en.wikipedia.org/wiki/Christopher_Lloyd 50 + } 51 + 52 + func TestArticleParser(t *testing.T) { 53 + t.Run("New", func(t *testing.T) { 54 + t.Run("successfully creates parser", func(t *testing.T) { 55 + parser, err := NewArticleParser() 56 + if err != nil { 57 + t.Fatalf("Expected no error, got %v", err) 58 + } 59 + if parser == nil { 60 + t.Fatal("Expected parser to be created, got nil") 61 + } 62 + if len(parser.rules) == 0 { 63 + t.Error("Expected rules to be loaded") 64 + } 65 + }) 66 + 67 + t.Run("loads expected domains", func(t *testing.T) { 68 + parser, err := NewArticleParser() 69 + if err != nil { 70 + t.Fatalf("Failed to create parser: %v", err) 71 + } 72 + 73 + domains := parser.GetSupportedDomains() 74 + expectedDomains := []string{".wikipedia.org", "arxiv.org", "baseballprospectus.com"} 75 + 76 + if len(domains) != len(expectedDomains) { 77 + t.Errorf("Expected %d domains, got %d", len(expectedDomains), len(domains)) 78 + } 79 + 80 + domainMap := make(map[string]bool) 81 + for _, domain := range domains { 82 + domainMap[domain] = true 83 + } 84 + 85 + for _, expected := range expectedDomains { 86 + if !domainMap[expected] { 87 + t.Errorf("Expected domain %s not found in supported domains", expected) 88 + } 89 + } 90 + }) 91 + }) 92 + 93 + t.Run("parseRuleFile", func(t *testing.T) { 94 + parser := &ArticleParser{rules: make(map[string]*ParsingRule)} 95 + 96 + t.Run("parses valid rule file", func(t *testing.T) { 97 + content := `title: //h1 98 + author: //span[@class='author'] 99 + date: //time 100 + body: //article 101 + strip: //nav 102 + strip: //footer 103 + test_url: https://example.com/article` 104 + 105 + rule, err := parser.parseRuleFile("example.com", content) 106 + if err != nil { 107 + t.Fatalf("Expected no error, got %v", err) 108 + } 109 + 110 + if rule.Domain != "example.com" { 111 + t.Errorf("Expected domain 'example.com', got %s", rule.Domain) 112 + } 113 + if rule.Title != "//h1" { 114 + t.Errorf("Expected title '//h1', got %s", rule.Title) 115 + } 116 + if rule.Author != "//span[@class='author']" { 117 + t.Errorf("Expected author '//span[@class='author']', got %s", rule.Author) 118 + } 119 + if len(rule.Strip) != 2 { 120 + t.Errorf("Expected 2 strip rules, got %d", len(rule.Strip)) 121 + } 122 + if len(rule.TestURLs) != 1 { 123 + t.Errorf("Expected 1 test URL, got %d", len(rule.TestURLs)) 124 + } 125 + }) 126 + 127 + t.Run("handles empty lines and comments", func(t *testing.T) { 128 + content := `# This is a comment 129 + title: //h1 130 + 131 + # Another comment 132 + body: //article 133 + ` 134 + 135 + rule, err := parser.parseRuleFile("test.com", content) 136 + if err != nil { 137 + t.Fatalf("Expected no error, got %v", err) 138 + } 139 + 140 + if rule.Title != "//h1" { 141 + t.Errorf("Expected title '//h1', got %s", rule.Title) 142 + } 143 + if rule.Body != "//article" { 144 + t.Errorf("Expected body '//article', got %s", rule.Body) 145 + } 146 + }) 147 + }) 148 + 149 + t.Run("slugify", func(t *testing.T) { 150 + parser := &ArticleParser{} 151 + 152 + testCases := []struct { 153 + input string 154 + expected string 155 + }{ 156 + {"Simple Title", "simple-title"}, 157 + {"Title with Numbers 123", "title-with-numbers-123"}, 158 + {"Title-with-Hyphens", "title-with-hyphens"}, 159 + {"Title with Spaces and Multiple Spaces", "title-with-spaces-and-multiple-spaces"}, 160 + {"Title!@#$%^&*()with Special Characters", "title-with-special-characters"}, 161 + {"", ""}, 162 + {strings.Repeat("a", 150), strings.Repeat("a", 100)}, 163 + } 164 + 165 + for _, tc := range testCases { 166 + t.Run(fmt.Sprintf("slugify '%s'", tc.input), func(t *testing.T) { 167 + result := parser.slugify(tc.input) 168 + if result != tc.expected { 169 + t.Errorf("Expected '%s', got '%s'", tc.expected, result) 170 + } 171 + }) 172 + } 173 + }) 174 + 175 + t.Run("Convert", func(t *testing.T) { 176 + parser, err := NewArticleParser() 177 + if err != nil { 178 + t.Fatalf("Failed to create parser: %v", err) 179 + } 180 + 181 + t.Run("fails with unsupported domain", func(t *testing.T) { 182 + htmlContent := "<html><head><title>Test</title></head><body><p>Content</p></body></html>" 183 + _, err := parser.Convert(htmlContent, "unsupported.com", "https://unsupported.com/article") 184 + 185 + if err == nil { 186 + t.Error("Expected error for unsupported domain") 187 + } 188 + if !strings.Contains(err.Error(), "no parsing rule found") { 189 + t.Errorf("Expected 'no parsing rule found' error, got %v", err) 190 + } 191 + }) 192 + 193 + t.Run("fails with invalid HTML", func(t *testing.T) { 194 + invalidHTML := "<html><head><title>Test</head></body>" 195 + _, err := parser.Convert(invalidHTML, ".wikipedia.org", "https://en.wikipedia.org/wiki/Test") 196 + 197 + if err == nil { 198 + t.Error("Expected error for invalid HTML") 199 + } 200 + }) 201 + 202 + t.Run("fails when no title extracted", func(t *testing.T) { 203 + htmlContent := "<html><head><title>Test</title></head><body><p>Content</p></body></html>" 204 + _, err := parser.Convert(htmlContent, ".wikipedia.org", "https://en.wikipedia.org/wiki/Test") 205 + 206 + if err == nil { 207 + t.Error("Expected error when no title can be extracted") 208 + } 209 + if !strings.Contains(err.Error(), "could not extract title") { 210 + t.Errorf("Expected 'could not extract title' error, got %v", err) 211 + } 212 + }) 213 + 214 + t.Run("successfully converts valid Wikipedia HTML", func(t *testing.T) { 215 + htmlContent := `<html> 216 + <head><title>Test Article</title></head> 217 + <body> 218 + <h1 id="firstHeading">Test Article Title</h1> 219 + <div id="bodyContent"> 220 + <p>This is the main content of the article.</p> 221 + <div class="noprint">This should be stripped</div> 222 + <p>More content here.</p> 223 + </div> 224 + </body> 225 + </html>` 226 + 227 + markdown, err := parser.Convert(htmlContent, ".wikipedia.org", "https://en.wikipedia.org/wiki/Test") 228 + if err != nil { 229 + t.Fatalf("Expected no error, got %v", err) 230 + } 231 + 232 + if !strings.Contains(markdown, "# Test Article Title") { 233 + t.Error("Expected markdown to contain title") 234 + } 235 + if !strings.Contains(markdown, "**Source:** https://en.wikipedia.org/wiki/Test") { 236 + t.Error("Expected markdown to contain source URL") 237 + } 238 + if !strings.Contains(markdown, "This is the main content") { 239 + t.Error("Expected markdown to contain article content") 240 + } 241 + if strings.Contains(markdown, "This should be stripped") { 242 + t.Error("Expected stripped content to be removed from markdown") 243 + } 244 + }) 245 + }) 246 + }
+1
internal/articles/examples/christopher-lloyd.html
··· 1 + <!DOCTYPE html><html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"><head><meta charset="UTF-8"><title>Christopher Lloyd - Wikipedia</title><script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"ac03574d-9008-43f6-99ae-c884d818af2f","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Christopher_Lloyd","wgTitle":"Christopher Lloyd","wgCurRevisionId":1312904724,"wgRevisionId":1312904724,"wgArticleId":256406,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["CS1 maint: postscript","Articles with short description","Short description matches Wikidata","Wikipedia pages semi-protected against vandalism","Use American English from September 2021","All Wikipedia articles written in American English","Use mdy dates from February 2023","Articles with hCards","Commons category link is on Wikidata","Internet Broadway Database person ID same as Wikidata","Internet Off-Broadway Database person ID same as Wikidata","TCMDb name template using non-numeric ID from Wikidata","1938 births","Living people","20th-century American male actors","21st-century American male actors","American male film actors","American male television actors","American male video game actors","American male voice actors","American people of English descent","American people of Welsh descent","Audiobook narrators","Darrow School alumni","Best Supporting Male Independent Spirit Award winners","Male actors from Santa Barbara County, California","Male actors from Stamford, Connecticut","Male Western (genre) film actors","Neighborhood Playhouse School of the Theatre alumni","Obie Award recipients","Outstanding Performance by a Lead Actor in a Drama Series Primetime Emmy Award winners","Outstanding Performance by a Supporting Actor in a Comedy Series Primetime Emmy Award winners","People from Montecito, California","Lapham family"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Christopher_Lloyd","wgRelevantArticleId":256406,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["autoconfirmed"],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":70000,"wgMetricsPlatformUserExperiments":{"active_experiments":[],"overrides":[],"enrolled":[],"assigned":[],"subject_ids":[],"sampling_units":[]},"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q109324","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGESuggestedEditsTaskTypes":{"taskTypes":["copyedit","link-recommendation"],"unavailableTaskTypes":[]},"wgGETopicsMatchModeEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.wikimediamessages.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.tablesorter.styles":"ready","jquery.makeCollapsible.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready"};RLPAGEMODULES=["ext.xLab","ext.cite.ux-enhancements","mediawiki.page.media","ext.scribunto.logs","site","mediawiki.page.ready","jquery.tablesorter","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.quicksurveys.init","ext.growthExperiments.SuggestedEditSession"];</script><script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});}];});});</script><link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cjquery.tablesorter.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"><script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script><meta name="ResourceLoaderDynamicStyles" content=""><link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"><meta name="generator" content="MediaWiki 1.45.0-wmf.19"><meta name="referrer" content="origin"><meta name="referrer" content="origin-when-cross-origin"><meta name="robots" content="max-image-preview:standard"><meta name="format-detection" content="telephone=no"><meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/c/cf/ChristopherLloyd2022.jpg/960px-ChristopherLloyd2022.jpg"><meta property="og:image:width" content="800"><meta property="og:image:height" content="1200"><meta name="viewport" content="width=1120"><meta property="og:title" content="Christopher Lloyd - Wikipedia"><meta property="og:type" content="website"><link rel="preconnect" href="//upload.wikimedia.org"><link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Christopher_Lloyd"><link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"><link rel="icon" href="/static/favicon/wikipedia.ico"><link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"><link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"><link rel="canonical" href="https://en.wikipedia.org/wiki/Christopher_Lloyd"><link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"><link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"><link rel="dns-prefetch" href="//meta.wikimedia.org" /><link rel="dns-prefetch" href="auth.wikimedia.org"></head><body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Christopher_Lloyd rootpage-Christopher_Lloyd skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a><div class="vector-header-container"><header class="vector-header mw-header no-font-mode-scale"><div class="vector-header-start"><nav class="vector-main-menu-landmark" aria-label="Site"><div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" ><input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" ><label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span><span class="vector-dropdown-label-text">Main menu</span></label><div class="vector-dropdown-content"><div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"><div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"><div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container"><div class="vector-pinnable-header-label">Main menu</div><button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button><button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button></div><div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" ><div class="vector-menu-heading"> Navigation </div><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li></ul></div></div><div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" ><div class="vector-menu-heading"> Contribute </div><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages"><span>Special pages</span></a></li></ul></div></div></div></div></div></div></nav><a href="/wiki/Main_Page" class="mw-logo"><img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"><span class="mw-logo-container skin-invert"><img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"><img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"></span></a></div><div class="vector-header-end"><div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"><a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span><span>Search</span></a><div class="vector-typeahead-search-container"><div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"><form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"><div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"><div class="cdx-text-input cdx-text-input--has-start-icon"><input class="cdx-text-input__input mw-searchInput" autocomplete="off" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" spellcheck="false" title="Search Wikipedia [f]" accesskey="f" id="searchInput" ><span class="cdx-text-input__icon cdx-text-input__start-icon"></span></div><input type="hidden" name="title" value="Special:Search"></div><button class="cdx-button cdx-search-input__end-button">Search</button></form></div></div></div><nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"><div class="vector-user-links-main"><div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" ><div class="vector-menu-content"><ul class="vector-menu-content-list"></ul></div></div><div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" ><div class="vector-menu-content"><ul class="vector-menu-content-list"></ul></div></div><nav class="vector-appearance-landmark" aria-label="Appearance"><div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" ><input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" ><label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span><span class="vector-dropdown-label-text">Appearance</span></label><div class="vector-dropdown-content"><div id="vector-appearance-unpinned-container" class="vector-unpinned-container"></div></div></div></nav><div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" ><div class="vector-menu-content"><ul class="vector-menu-content-list"></ul></div></div><div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" ><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a></li><li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Christopher+Lloyd" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a></li><li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Christopher+Lloyd" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a></li></ul></div></div></div><div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" ><input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" ><label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span><span class="vector-dropdown-label-text">Personal tools</span></label><div class="vector-dropdown-content"><div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" ><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Christopher+Lloyd" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span><span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Christopher+Lloyd" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span><span>Log in</span></a></li></ul></div></div><div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" ><div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a></div><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li></ul></div></div></div></div></nav></div></header></div><div class="mw-page-container"><div class="mw-page-container-inner"><div class="vector-sitenotice-container"><div id="siteNotice"><!-- CentralNotice --></div></div><div class="vector-column-start"><div class="vector-main-menu-container"><div id="mw-navigation"><nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"><div id="vector-main-menu-pinned-container" class="vector-pinned-container"></div></nav></div></div><div class="vector-sticky-pinned-container"><nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"><div id="vector-toc-pinned-container" class="vector-pinned-container"><div id="vector-toc" class="vector-toc vector-pinnable-element"><div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" ><h2 class="vector-pinnable-header-label">Contents</h2><button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button><button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button></div><ul class="vector-toc-contents" id="mw-panel-toc-list"><li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"><a href="#" class="vector-toc-link"><div class="vector-toc-text">(Top)</div></a></li><li id="toc-Early_life" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"><a class="vector-toc-link" href="#Early_life"><div class="vector-toc-text"><span class="vector-toc-numb">1</span><span>Early life</span></div></a><ul id="toc-Early_life-sublist" class="vector-toc-list"></ul></li><li id="toc-Career" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"><a class="vector-toc-link" href="#Career"><div class="vector-toc-text"><span class="vector-toc-numb">2</span><span>Career</span></div></a><ul id="toc-Career-sublist" class="vector-toc-list"></ul></li><li id="toc-Personal_life" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"><a class="vector-toc-link" href="#Personal_life"><div class="vector-toc-text"><span class="vector-toc-numb">3</span><span>Personal life</span></div></a><ul id="toc-Personal_life-sublist" class="vector-toc-list"></ul></li><li id="toc-Filmography" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"><a class="vector-toc-link" href="#Filmography"><div class="vector-toc-text"><span class="vector-toc-numb">4</span><span>Filmography</span></div></a><button aria-controls="toc-Filmography-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"><span class="vector-icon mw-ui-icon-wikimedia-expand"></span><span>Toggle Filmography subsection</span></button><ul id="toc-Filmography-sublist" class="vector-toc-list"><li id="toc-Film" class="vector-toc-list-item vector-toc-level-2"><a class="vector-toc-link" href="#Film"><div class="vector-toc-text"><span class="vector-toc-numb">4.1</span><span>Film</span></div></a><ul id="toc-Film-sublist" class="vector-toc-list"></ul></li><li id="toc-Television" class="vector-toc-list-item vector-toc-level-2"><a class="vector-toc-link" href="#Television"><div class="vector-toc-text"><span class="vector-toc-numb">4.2</span><span>Television</span></div></a><ul id="toc-Television-sublist" class="vector-toc-list"></ul></li><li id="toc-Theatre" class="vector-toc-list-item vector-toc-level-2"><a class="vector-toc-link" href="#Theatre"><div class="vector-toc-text"><span class="vector-toc-numb">4.3</span><span>Theatre</span></div></a><ul id="toc-Theatre-sublist" class="vector-toc-list"></ul></li><li id="toc-Video_games" class="vector-toc-list-item vector-toc-level-2"><a class="vector-toc-link" href="#Video_games"><div class="vector-toc-text"><span class="vector-toc-numb">4.4</span><span>Video games</span></div></a><ul id="toc-Video_games-sublist" class="vector-toc-list"></ul></li><li id="toc-Music_videos" class="vector-toc-list-item vector-toc-level-2"><a class="vector-toc-link" href="#Music_videos"><div class="vector-toc-text"><span class="vector-toc-numb">4.5</span><span>Music videos</span></div></a><ul id="toc-Music_videos-sublist" class="vector-toc-list"></ul></li><li id="toc-Other" class="vector-toc-list-item vector-toc-level-2"><a class="vector-toc-link" href="#Other"><div class="vector-toc-text"><span class="vector-toc-numb">4.6</span><span>Other</span></div></a><ul id="toc-Other-sublist" class="vector-toc-list"></ul></li></ul></li><li id="toc-Awards" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"><a class="vector-toc-link" href="#Awards"><div class="vector-toc-text"><span class="vector-toc-numb">5</span><span>Awards</span></div></a><ul id="toc-Awards-sublist" class="vector-toc-list"></ul></li><li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"><a class="vector-toc-link" href="#References"><div class="vector-toc-text"><span class="vector-toc-numb">6</span><span>References</span></div></a><ul id="toc-References-sublist" class="vector-toc-list"></ul></li><li id="toc-Further_reading" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"><a class="vector-toc-link" href="#Further_reading"><div class="vector-toc-text"><span class="vector-toc-numb">7</span><span>Further reading</span></div></a><ul id="toc-Further_reading-sublist" class="vector-toc-list"></ul></li><li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"><a class="vector-toc-link" href="#External_links"><div class="vector-toc-text"><span class="vector-toc-numb">8</span><span>External links</span></div></a><ul id="toc-External_links-sublist" class="vector-toc-list"></ul></li></ul></div></div></nav></div></div><div class="mw-content-container"><main id="content" class="mw-body"><header class="mw-body-header vector-page-titlebar no-font-mode-scale"><nav aria-label="Contents" class="vector-toc-landmark"><div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" ><input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" ><label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span><span class="vector-dropdown-label-text">Toggle the table of contents</span></label><div class="vector-dropdown-content"><div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"></div></div></div></nav><h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Christopher Lloyd</span></h1><div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" ><input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 59 languages" ><label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-59" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span><span class="vector-dropdown-label-text">59 languages</span></label><div class="vector-dropdown-content"><div class="vector-menu-content"><ul class="vector-menu-content-list"><li class="interlanguage-link interwiki-af mw-list-item"><a href="https://af.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Afrikaans" lang="af" hreflang="af" data-title="Christopher Lloyd" data-language-autonym="Afrikaans" data-language-local-name="Afrikaans" class="interlanguage-link-target"><span>Afrikaans</span></a></li><li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%83%D8%B1%D9%8A%D8%B3%D8%AA%D9%88%D9%81%D8%B1_%D9%84%D9%88%D9%8A%D8%AF" title="كريستوفر لويد – Arabic" lang="ar" hreflang="ar" data-title="كريستوفر لويد" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Asturian" lang="ast" hreflang="ast" data-title="Christopher Lloyd" data-language-autonym="Asturianu" data-language-local-name="Asturian" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Kristofer_Lloyd" title="Kristofer Lloyd – Azerbaijani" lang="az" hreflang="az" data-title="Kristofer Lloyd" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-zh-min-nan mw-list-item"><a href="https://zh-min-nan.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Minnan" lang="nan" hreflang="nan" data-title="Christopher Lloyd" data-language-autonym="閩南語 / Bân-lâm-gí" data-language-local-name="Minnan" class="interlanguage-link-target"><span>閩南語 / Bân-lâm-gí</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%9A%D1%80%D1%8B%D1%81%D1%82%D0%B0%D1%84%D0%B5%D1%80_%D0%9B%D0%BE%D0%B9%D0%B4" title="Крыстафер Лойд – Belarusian" lang="be" hreflang="be" data-title="Крыстафер Лойд" data-language-autonym="Беларуская" data-language-local-name="Belarusian" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D1%81%D1%82%D0%BE%D1%84%D1%8A%D1%80_%D0%9B%D0%BE%D0%B9%D0%B4" title="Кристофър Лойд – Bulgarian" lang="bg" hreflang="bg" data-title="Кристофър Лойд" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Catalan" lang="ca" hreflang="ca" data-title="Christopher Lloyd" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Czech" lang="cs" hreflang="cs" data-title="Christopher Lloyd" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-co mw-list-item"><a href="https://co.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Corsican" lang="co" hreflang="co" data-title="Christopher Lloyd" data-language-autonym="Corsu" data-language-local-name="Corsican" class="interlanguage-link-target"><span>Corsu</span></a></li><li class="interlanguage-link interwiki-cy mw-list-item"><a href="https://cy.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Welsh" lang="cy" hreflang="cy" data-title="Christopher Lloyd" data-language-autonym="Cymraeg" data-language-local-name="Welsh" class="interlanguage-link-target"><span>Cymraeg</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Danish" lang="da" hreflang="da" data-title="Christopher Lloyd" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Christopher_Lloyd_(Schauspieler)" title="Christopher Lloyd (Schauspieler) – German" lang="de" hreflang="de" data-title="Christopher Lloyd (Schauspieler)" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Estonian" lang="et" hreflang="et" data-title="Christopher Lloyd" data-language-autonym="Eesti" data-language-local-name="Estonian" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/%CE%9A%CF%81%CE%AF%CF%83%CF%84%CE%BF%CF%86%CE%B5%CF%81_%CE%9B%CF%8C%CE%B9%CE%BD%CF%84" title="Κρίστοφερ Λόιντ – Greek" lang="el" hreflang="el" data-title="Κρίστοφερ Λόιντ" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Spanish" lang="es" hreflang="es" data-title="Christopher Lloyd" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Basque" lang="eu" hreflang="eu" data-title="Christopher Lloyd" data-language-autonym="Euskara" data-language-local-name="Basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%DA%A9%D8%B1%DB%8C%D8%B3%D8%AA%D9%88%D9%81%D8%B1_%D9%84%D9%88%DB%8C%D8%AF" title="کریستوفر لوید – Persian" lang="fa" hreflang="fa" data-title="کریستوفر لوید" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – French" lang="fr" hreflang="fr" data-title="Christopher Lloyd" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-gd mw-list-item"><a href="https://gd.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Scottish Gaelic" lang="gd" hreflang="gd" data-title="Christopher Lloyd" data-language-autonym="Gàidhlig" data-language-local-name="Scottish Gaelic" class="interlanguage-link-target"><span>Gàidhlig</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Galician" lang="gl" hreflang="gl" data-title="Christopher Lloyd" data-language-autonym="Galego" data-language-local-name="Galician" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%86%A0%ED%8D%BC_%EB%A1%9C%EC%9D%B4%EB%93%9C" title="크리스토퍼 로이드 – Korean" lang="ko" hreflang="ko" data-title="크리스토퍼 로이드" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D5%94%D6%80%D5%AB%D5%BD%D5%BF%D5%B8%D6%86%D5%A5%D6%80_%D4%BC%D5%AC%D5%B8%D5%B5%D5%A4" title="Քրիստոֆեր Լլոյդ – Armenian" lang="hy" hreflang="hy" data-title="Քրիստոֆեր Լլոյդ" data-language-autonym="Հայերեն" data-language-local-name="Armenian" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Indonesian" lang="id" hreflang="id" data-title="Christopher Lloyd" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Italian" lang="it" hreflang="it" data-title="Christopher Lloyd" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%9B%D7%A8%D7%99%D7%A1%D7%98%D7%95%D7%A4%D7%A8_%D7%9C%D7%95%D7%99%D7%93" title="כריסטופר לויד – Hebrew" lang="he" hreflang="he" data-title="כריסטופר לויד" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/%E1%83%99%E1%83%A0%E1%83%98%E1%83%A1%E1%83%A2%E1%83%9D%E1%83%A4%E1%83%94%E1%83%A0_%E1%83%9A%E1%83%9D%E1%83%98%E1%83%93%E1%83%98" title="კრისტოფერ ლოიდი – Georgian" lang="ka" hreflang="ka" data-title="კრისტოფერ ლოიდი" data-language-autonym="ქართული" data-language-local-name="Georgian" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Kristofers_Loids" title="Kristofers Loids – Latvian" lang="lv" hreflang="lv" data-title="Kristofers Loids" data-language-autonym="Latviešu" data-language-local-name="Latvian" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Hungarian" lang="hu" hreflang="hu" data-title="Christopher Lloyd" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-arz mw-list-item"><a href="https://arz.wikipedia.org/wiki/%D9%83%D8%B1%D9%8A%D8%B3%D8%AA%D9%88%D9%81%D8%B1_%D9%84%D9%88%D9%8A%D8%AF" title="كريستوفر لويد – Egyptian Arabic" lang="arz" hreflang="arz" data-title="كريستوفر لويد" data-language-autonym="مصرى" data-language-local-name="Egyptian Arabic" class="interlanguage-link-target"><span>مصرى</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Malay" lang="ms" hreflang="ms" data-title="Christopher Lloyd" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D1%81%D1%82%D0%BE%D1%84%D0%B5%D1%80_%D0%9B%D0%BB%D0%BE%D0%B9%D0%B4" title="Кристофер Ллойд – Mongolian" lang="mn" hreflang="mn" data-title="Кристофер Ллойд" data-language-autonym="Монгол" data-language-local-name="Mongolian" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Dutch" lang="nl" hreflang="nl" data-title="Christopher Lloyd" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%83%BC%E3%83%BB%E3%83%AD%E3%82%A4%E3%83%89" title="クリストファー・ロイド – Japanese" lang="ja" hreflang="ja" data-title="クリストファー・ロイド" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Christopher Lloyd" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-oc mw-list-item"><a href="https://oc.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Occitan" lang="oc" hreflang="oc" data-title="Christopher Lloyd" data-language-autonym="Occitan" data-language-local-name="Occitan" class="interlanguage-link-target"><span>Occitan</span></a></li><li class="interlanguage-link interwiki-nds mw-list-item"><a href="https://nds.wikipedia.org/wiki/Christopher_Lloyd_(Schauspeler)" title="Christopher Lloyd (Schauspeler) – Low German" lang="nds" hreflang="nds" data-title="Christopher Lloyd (Schauspeler)" data-language-autonym="Plattdüütsch" data-language-local-name="Low German" class="interlanguage-link-target"><span>Plattdüütsch</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Polish" lang="pl" hreflang="pl" data-title="Christopher Lloyd" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Portuguese" lang="pt" hreflang="pt" data-title="Christopher Lloyd" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Romanian" lang="ro" hreflang="ro" data-title="Christopher Lloyd" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9B%D0%BB%D0%BE%D0%B9%D0%B4,_%D0%9A%D1%80%D0%B8%D1%81%D1%82%D0%BE%D1%84%D0%B5%D1%80" title="Ллойд, Кристофер – Russian" lang="ru" hreflang="ru" data-title="Ллойд, Кристофер" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sco mw-list-item"><a href="https://sco.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Scots" lang="sco" hreflang="sco" data-title="Christopher Lloyd" data-language-autonym="Scots" data-language-local-name="Scots" class="interlanguage-link-target"><span>Scots</span></a></li><li class="interlanguage-link interwiki-scn mw-list-item"><a href="https://scn.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Sicilian" lang="scn" hreflang="scn" data-title="Christopher Lloyd" data-language-autonym="Sicilianu" data-language-local-name="Sicilian" class="interlanguage-link-target"><span>Sicilianu</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Simple English" lang="en-simple" hreflang="en-simple" data-title="Christopher Lloyd" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Slovak" lang="sk" hreflang="sk" data-title="Christopher Lloyd" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Slovenian" lang="sl" hreflang="sl" data-title="Christopher Lloyd" data-language-autonym="Slovenščina" data-language-local-name="Slovenian" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-ckb mw-list-item"><a href="https://ckb.wikipedia.org/wiki/%DA%A9%D8%B1%DB%8C%D8%B3%D8%AA%DB%86%D9%81%DB%95%D8%B1_%D9%84%DB%86%DB%8C%D8%AF" title="کریستۆفەر لۆید – Central Kurdish" lang="ckb" hreflang="ckb" data-title="کریستۆفەر لۆید" data-language-autonym="کوردی" data-language-local-name="Central Kurdish" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D1%81%D1%82%D0%BE%D1%84%D0%B5%D1%80_%D0%9B%D0%BE%D1%98%D0%B4" title="Кристофер Лојд – Serbian" lang="sr" hreflang="sr" data-title="Кристофер Лојд" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Serbo-Croatian" lang="sh" hreflang="sh" data-title="Christopher Lloyd" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="Serbo-Croatian" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Finnish" lang="fi" hreflang="fi" data-title="Christopher Lloyd" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Swedish" lang="sv" hreflang="sv" data-title="Christopher Lloyd" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%84%E0%B8%A3%E0%B8%B4%E0%B8%AA%E0%B9%82%E0%B8%95%E0%B9%80%E0%B8%9F%E0%B8%AD%E0%B8%A3%E0%B9%8C_%E0%B8%A5%E0%B8%AD%E0%B8%A2%E0%B8%94%E0%B9%8C" title="คริสโตเฟอร์ ลอยด์ – Thai" lang="th" hreflang="th" data-title="คริสโตเฟอร์ ลอยด์" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Turkish" lang="tr" hreflang="tr" data-title="Christopher Lloyd" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%9A%D1%80%D1%96%D1%81%D1%82%D0%BE%D1%84%D0%B5%D1%80_%D0%9B%D0%BB%D0%BE%D0%B9%D0%B4" title="Крістофер Ллойд – Ukrainian" lang="uk" hreflang="uk" data-title="Крістофер Ллойд" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%DA%A9%D8%B1%D8%B3%D9%B9%D9%88%D9%81%D8%B1_%D9%84%D8%A7%D8%A6%DB%8C%DA%88" title="کرسٹوفر لائیڈ – Urdu" lang="ur" hreflang="ur" data-title="کرسٹوفر لائیڈ" data-language-autonym="اردو" data-language-local-name="Urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Christopher_Lloyd" title="Christopher Lloyd – Vietnamese" lang="vi" hreflang="vi" data-title="Christopher Lloyd" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-vo mw-list-item"><a href="https://vo.wikipedia.org/wiki/Christopher_Lloyd_(dramatan)" title="Christopher Lloyd (dramatan) – Volapük" lang="vo" hreflang="vo" data-title="Christopher Lloyd (dramatan)" data-language-autonym="Volapük" data-language-local-name="Volapük" class="interlanguage-link-target"><span>Volapük</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E5%9F%BA%E6%96%AF%E6%9D%9C%E5%8C%96%E8%90%8A" title="基斯杜化萊 – Cantonese" lang="yue" hreflang="yue" data-title="基斯杜化萊" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%85%8B%E9%87%8C%E6%96%AF%E6%89%98%E5%BC%97%C2%B7%E5%8A%B3%E5%9F%83%E5%BE%B7" title="克里斯托弗·劳埃德 – Chinese" lang="zh" hreflang="zh" data-title="克里斯托弗·劳埃德" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li></ul><div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q109324#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div></div></div></div></header><div class="vector-page-toolbar vector-feature-custom-font-size-clientpref--excluded"><div class="vector-page-toolbar-container"><div id="left-navigation"><nav aria-label="Namespaces"><div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" ><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Christopher_Lloyd" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Christopher_Lloyd" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li></ul></div></div><div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" ><input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" ><label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span></label><div class="vector-dropdown-content"><div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" ><div class="vector-menu-content"><ul class="vector-menu-content-list"></ul></div></div></div></div></nav></div><div id="right-navigation" class="vector-collapsible"><nav aria-label="Views"><div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" ><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Christopher_Lloyd"><span>Read</span></a></li><li id="ca-viewsource" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Christopher_Lloyd&amp;action=edit" title="This page is protected.&#10;You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Christopher_Lloyd&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li></ul></div></div></nav><nav class="vector-page-tools-landmark" aria-label="Page tools"><div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" ><input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" ><label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span></label><div class="vector-dropdown-content"><div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"><div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"><div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container"><div class="vector-pinnable-header-label">Tools</div><button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button><button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button></div><div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" ><div class="vector-menu-heading"> Actions </div><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Christopher_Lloyd"><span>Read</span></a></li><li id="ca-more-viewsource" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Christopher_Lloyd&amp;action=edit"><span>View source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Christopher_Lloyd&amp;action=history"><span>View history</span></a></li></ul></div></div><div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" ><div class="vector-menu-heading"> General </div><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Christopher_Lloyd" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Christopher_Lloyd" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Christopher_Lloyd&amp;oldid=1312904724" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Christopher_Lloyd&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Christopher_Lloyd&amp;id=1312904724&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FChristopher_Lloyd"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FChristopher_Lloyd"><span>Download QR code</span></a></li></ul></div></div><div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" ><div class="vector-menu-heading"> Print/export </div><div class="vector-menu-content"><ul class="vector-menu-content-list"><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Christopher_Lloyd&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Christopher_Lloyd&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li></ul></div></div><div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" ><div class="vector-menu-heading"> In other projects </div><div class="vector-menu-content"><ul class="vector-menu-content-list"><li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Christopher_Lloyd" hreflang="en"><span>Wikimedia Commons</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiquote mw-list-item"><a href="https://en.wikiquote.org/wiki/Christopher_Lloyd" hreflang="en"><span>Wikiquote</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q109324" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li></ul></div></div></div></div></div></div></nav></div></div></div><div class="vector-column-end no-font-mode-scale"><div class="vector-sticky-pinned-container"><nav class="vector-page-tools-landmark" aria-label="Page tools"><div id="vector-page-tools-pinned-container" class="vector-pinned-container"></div></nav><nav class="vector-appearance-landmark" aria-label="Appearance"><div id="vector-appearance-pinned-container" class="vector-pinned-container"><div id="vector-appearance" class="vector-appearance vector-pinnable-element"><div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container"><div class="vector-pinnable-header-label">Appearance</div><button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button><button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button></div></div></div></nav></div></div><div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container><div class="vector-body-before-content"><div class="mw-indicators"><div id="mw-indicator-pp-default" class="mw-indicator"><div class="mw-parser-output"><span typeof="mw:File"><a href="/wiki/Wikipedia:Protection_policy#semi" title="This article is semi-protected until January 22, 2027 at 22:03 UTC, due to vandalism"><img alt="Page semi-protected" src="//upload.wikimedia.org/wikipedia/en/thumb/1/1b/Semi-protection-shackle.svg/20px-Semi-protection-shackle.svg.png" decoding="async" width="20" height="20" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/1/1b/Semi-protection-shackle.svg/40px-Semi-protection-shackle.svg.png 1.5x" data-file-width="512" data-file-height="512" /></a></span></div></div></div><div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div></div><div id="contentSub"><div id="mw-content-subtitle"></div></div><div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">American actor (born 1938)</div><p class="mw-empty-elt"></p><style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">This article is about the actor. For other people with the same name, see <a href="/wiki/Christopher_Lloyd_(disambiguation)" class="mw-disambig" title="Christopher Lloyd (disambiguation)">Christopher Lloyd (disambiguation)</a>.</div><p class="mw-empty-elt"></p><style data-mw-deduplicate="TemplateStyles:r1295905060">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox biography vcard"><tbody><tr><th colspan="2" class="infobox-above" style="font-size:125%;"><div class="fn">Christopher Lloyd</div></th></tr><tr><td colspan="2" class="infobox-image"><span class="mw-default-size" typeof="mw:File/Frameless"><a href="/wiki/File:ChristopherLloyd2022.jpg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/ChristopherLloyd2022.jpg/250px-ChristopherLloyd2022.jpg" decoding="async" width="250" height="375" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/ChristopherLloyd2022.jpg/500px-ChristopherLloyd2022.jpg 1.5x" data-file-width="2666" data-file-height="4000" /></a></span><div class="infobox-caption">Lloyd in 2022</div></td></tr><tr><th scope="row" class="infobox-label">Born</th><td class="infobox-data"><div style="display:inline" class="nickname">Christopher Allen Lloyd</div><br /><span style="display:none"> (<span class="bday">1938-10-22</span>) </span>October 22, 1938<span class="noprint ForceAgeToShow"> (age&#160;86)</span><br /><div style="display:inline" class="birthplace"><a href="/wiki/Stamford,_Connecticut" title="Stamford, Connecticut">Stamford, Connecticut</a>, U.S.</div></td></tr><tr><th scope="row" class="infobox-label">Occupation</th><td class="infobox-data role">Actor</td></tr><tr><th scope="row" class="infobox-label">Years&#160;active</th><td class="infobox-data">1961–present</td></tr><tr><th scope="row" class="infobox-label">Spouses</th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style><div class="plainlist"><ul><li><style data-mw-deduplicate="TemplateStyles:r1298804929">.mw-parser-output .marriage-line-margin2px{line-height:0;margin-bottom:-2px}.mw-parser-output .marriage-line-margin3px{line-height:0;margin-bottom:-3px}.mw-parser-output .marriage-display-inline{display:inline}</style></li></ul><div class="marriage-display-inline"><div style="display:inline-block;line-height:normal;margin-top:1px;white-space:normal;">Catherine Boyd</div><div class="marriage-line-margin2px">&#8203;</div>&#32;<div style="display:inline-block;margin-bottom:1px;">&#8203;</div>&#40;<abbr title="married">m.</abbr>&#160;1959&#59;&#32;<abbr title="divorced">div.</abbr>&#160;1971&#41;<wbr />&#8203;</div><ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1298804929" /></li></ul><div class="marriage-display-inline"><div style="display:inline-block;line-height:normal;margin-top:1px;white-space:normal;">Kay Tornborg</div><div class="marriage-line-margin2px">&#8203;</div>&#32;<div style="display:inline-block;margin-bottom:1px;">&#8203;</div>&#40;<abbr title="married">m.</abbr>&#160;1974&#59;&#32;<abbr title="divorced">div.</abbr>&#160;1987&#41;<wbr />&#8203;</div><ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1298804929" /></li></ul><div class="marriage-display-inline"><div style="display:inline-block;line-height:normal;margin-top:1px;white-space:normal;">Carol Ann Vanek</div><div class="marriage-line-margin2px">&#8203;</div>&#32;<div style="display:inline-block;margin-bottom:1px;">&#8203;</div>&#40;<abbr title="married">m.</abbr>&#160;1988&#59;&#32;<abbr title="divorced">div.</abbr>&#160;1991&#41;<wbr />&#8203;</div><ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1298804929" /></li></ul><div class="marriage-display-inline"><div style="display:inline-block;line-height:normal;margin-top:1px;white-space:normal;">Jane Walker Wood</div><div class="marriage-line-margin2px">&#8203;</div>&#32;<div style="display:inline-block;margin-bottom:1px;">&#8203;</div>&#40;<abbr title="married">m.</abbr>&#160;1992&#59;&#32;<abbr title="divorced">div.</abbr>&#160;2005&#41;<wbr />&#8203;</div><ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1298804929" /></li></ul><div class="marriage-display-inline"><div style="display:inline-block;line-height:normal;">Lisa Loiacono</div>&#32;<div style="display:inline-block;">&#8203;</div>&#40;<abbr title="married">m.</abbr>&#160;2016&#41;<wbr />&#8203;</div></div></td></tr><tr><th scope="row" class="infobox-label">Relatives</th><td class="infobox-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1126788409" /><div class="plainlist"><ul><li><a href="/wiki/Sam_Lloyd" title="Sam Lloyd">Sam Lloyd</a> (nephew)</li><li><a href="/wiki/Lewis_Henry_Lapham" title="Lewis Henry Lapham">Lewis Henry Lapham</a> (maternal grandfather)</li></ul></div></td></tr></tbody></table><p><b>Christopher Allen Lloyd</b> (born October 22, 1938)<sup id="cite_ref-biography.com_1-0" class="reference"><a href="#cite_note-biography.com-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> is an American actor. He has appeared in many theater productions, films, and television shows since the 1960s. He is known for portraying <a href="/wiki/Emmett_Brown" title="Emmett Brown">Emmett Brown</a> in the <a href="/wiki/Back_to_the_Future_(franchise)" title="Back to the Future (franchise)"><i>Back to the Future</i> trilogy</a> (1985–1990) and <a href="/wiki/Jim_Ignatowski" title="Jim Ignatowski">Jim Ignatowski</a> in the comedy series <i><a href="/wiki/Taxi_(TV_series)" title="Taxi (TV series)">Taxi</a></i> (1978–1983), for which he won two <a href="/wiki/Emmy_Award" class="mw-redirect" title="Emmy Award">Emmy Awards</a>.</p><p>Lloyd came to public attention in <a href="/wiki/Northeastern_United_States" title="Northeastern United States">Northeastern</a> theater productions during the 1960s and early 1970s, earning <a href="/wiki/Drama_Desk_Award" class="mw-redirect" title="Drama Desk Award">Drama Desk</a> and <a href="/wiki/Obie_Award" title="Obie Award">Obie</a> awards for his work. He made his cinematic debut in <i><a href="/wiki/One_Flew_Over_the_Cuckoo%27s_Nest_(film)" title="One Flew Over the Cuckoo&#39;s Nest (film)">One Flew Over the Cuckoo's Nest</a></i> (1975) and went on to appear as Commander Kruge in <i><a href="/wiki/Star_Trek_III:_The_Search_for_Spock" title="Star Trek III: The Search for Spock">Star Trek III: The Search for Spock</a></i> (1984), Professor Plum in <i><a href="/wiki/Clue_(film)" title="Clue (film)">Clue</a></i> (1985), <a href="/wiki/Judge_Doom" title="Judge Doom">Judge Doom</a> in <i><a href="/wiki/Who_Framed_Roger_Rabbit" title="Who Framed Roger Rabbit">Who Framed Roger Rabbit</a></i> (1988), <a href="/wiki/Uncle_Fester" title="Uncle Fester">Uncle Fester</a> in <i><a href="/wiki/The_Addams_Family_(1991_film)" title="The Addams Family (1991 film)">The Addams Family</a></i> (1991) and its sequel <i><a href="/wiki/Addams_Family_Values" title="Addams Family Values">Addams Family Values</a></i> (1993), Switchblade Sam in <i><a href="/wiki/Dennis_the_Menace_(1993_film)" title="Dennis the Menace (1993 film)">Dennis the Menace</a></i> (1993), Mr. Goodman in <i><a href="/wiki/Piranha_3D" title="Piranha 3D">Piranha 3D</a></i> (2010), Bill Crowley in <i><a href="/wiki/I_Am_Not_a_Serial_Killer_(film)" title="I Am Not a Serial Killer (film)">I Am Not a Serial Killer</a></i> (2016) and David Mansell in <i><a href="/wiki/Nobody_(2021_film)" title="Nobody (2021 film)">Nobody</a></i> (2021).</p><p>Lloyd earned a third Emmy for his 1992 guest appearance as Alistair Dimple in <i><a href="/wiki/Road_to_Avonlea" title="Road to Avonlea">Road to Avonlea</a></i>, and won an <a href="/wiki/Independent_Spirit_Awards" class="mw-redirect" title="Independent Spirit Awards">Independent Spirit Award</a> for his performance in <i><a href="/wiki/Twenty_Bucks" title="Twenty Bucks">Twenty Bucks</a></i>. He has done extensive voice work, including Merlock in <i><a href="/wiki/DuckTales_the_Movie:_Treasure_of_the_Lost_Lamp" title="DuckTales the Movie: Treasure of the Lost Lamp">DuckTales the Movie: Treasure of the Lost Lamp</a></i>, <a href="/wiki/Grigori_Rasputin" title="Grigori Rasputin">Grigori Rasputin</a> in <i><a href="/wiki/Anastasia_(1997_film)" title="Anastasia (1997 film)">Anastasia</a></i>, the Hacker in <a href="/wiki/PBS_Kids" title="PBS Kids">PBS Kids</a>' <i><a href="/wiki/Cyberchase" title="Cyberchase">Cyberchase</a></i>, which earned him <a href="/wiki/Daytime_Emmy" class="mw-redirect" title="Daytime Emmy">Daytime Emmy</a> nominations, and the Woodsman in <a href="/wiki/Cartoon_Network" title="Cartoon Network">Cartoon Network</a>'s <i><a href="/wiki/Over_the_Garden_Wall" title="Over the Garden Wall">Over the Garden Wall</a></i>.</p><meta property="mw:PageProp/toc" /><div class="mw-heading mw-heading2"><h2 id="Early_life">Early life</h2></div><p>Lloyd was born on October 22, 1938, in <a href="/wiki/Stamford,_Connecticut" title="Stamford, Connecticut">Stamford, Connecticut</a>, the son of Ruth Lloyd (née Lapham; 1896–1984), a singer and sister of San Francisco mayor <a href="/wiki/Roger_Lapham" title="Roger Lapham">Roger Lapham</a>,<sup id="cite_ref-biography.com_1-1" class="reference"><a href="#cite_note-biography.com-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> and her lawyer husband Samuel R. Lloyd Jr. (1897–1959). He is the youngest of six siblings, with two brothers and three sisters.<sup id="cite_ref-NEA_3-0" class="reference"><a href="#cite_note-NEA-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> Lloyd's maternal grandfather, <a href="/wiki/Lewis_Henry_Lapham" title="Lewis Henry Lapham">Lewis Henry Lapham</a>, was one of the founders of the <a href="/wiki/Texaco" title="Texaco">Texaco</a> oil company<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> and Lloyd is also a descendant of <i><a href="/wiki/Mayflower" title="Mayflower">Mayflower</a></i><a href="/wiki/Mayflower#Passengers" title="Mayflower">passenger</a><a href="/wiki/John_Howland" title="John Howland">John Howland</a>.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> Lloyd was raised in <a href="/wiki/Westport,_Connecticut" title="Westport, Connecticut">Westport, Connecticut</a>, where he attended <a href="/wiki/Staples_High_School" title="Staples High School">Staples High School</a> and was involved in founding the high school's theater company, the Staples Players.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup></p><div class="mw-heading mw-heading2"><h2 id="Career">Career</h2></div><figure class="mw-default-size mw-halign-left" typeof="mw:File/Thumb"><a href="/wiki/File:Christopher_Lloyd_HS_yearbook.jpg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Christopher_Lloyd_HS_yearbook.jpg/190px-Christopher_Lloyd_HS_yearbook.jpg" decoding="async" width="190" height="262" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/c/ca/Christopher_Lloyd_HS_yearbook.jpg 1.5x" data-file-width="200" data-file-height="276" /></a><figcaption>Lloyd as a high school senior, 1958</figcaption></figure><p>Lloyd began his career apprenticing at summer theaters in <a href="/wiki/Mount_Kisco,_New_York" title="Mount Kisco, New York">Mount Kisco, New York</a>, and <a href="/wiki/Hyannis,_Massachusetts" title="Hyannis, Massachusetts">Hyannis, Massachusetts</a>.<sup id="cite_ref-NYT060759_7-0" class="reference"><a href="#cite_note-NYT060759-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> He took acting classes in New York City at age 19—some at the <a href="/wiki/Neighborhood_Playhouse_School_of_the_Theatre" title="Neighborhood Playhouse School of the Theatre">Neighborhood Playhouse School of the Theatre</a> with <a href="/wiki/Sanford_Meisner" title="Sanford Meisner">Sanford Meisner</a><sup id="cite_ref-NEA_3-1" class="reference"><a href="#cite_note-NEA-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup>—and he recalled making his New York theater debut in a 1961 production of <a href="/wiki/Fernando_Arrabal" title="Fernando Arrabal">Fernando Arrabal</a>'s play <i>And They Put Handcuffs on the Flowers</i>, saying, "I was a replacement and it was my first sort of job in New York."<sup id="cite_ref-NEA_3-2" class="reference"><a href="#cite_note-NEA-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> He made his <a href="/wiki/Broadway_theatre" title="Broadway theatre">Broadway</a> debut in the short-lived <i><a href="/wiki/Red,_White_and_Maddox" title="Red, White and Maddox">Red, White and Maddox</a></i> (1969), and went on to <a href="/wiki/Off-Broadway" title="Off-Broadway">Off-Broadway</a> roles in <i><a href="/wiki/A_Midsummer_Night%27s_Dream" title="A Midsummer Night&#39;s Dream">A Midsummer Night's Dream</a></i>, <i><a href="/wiki/Kaspar_(play)" title="Kaspar (play)">Kaspar</a></i> (February 1973),<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup><i>The Harlot and the Hunted</i>, <i><a href="/wiki/The_Seagull" title="The Seagull">The Seagull</a></i> (January 1974),<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup><i>Total Eclipse</i> (February 1974),<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup><i><a href="/wiki/Macbeth" title="Macbeth">Macbeth</a></i>, <i><a href="/wiki/In_the_Boom_Boom_Room" title="In the Boom Boom Room">In the Boom Boom Room</a></i>, <i>Cracks</i>, <i>Professional Resident Company</i>, <i><a href="/wiki/What_Every_Woman_Knows_(play)" title="What Every Woman Knows (play)">What Every Woman Knows</a></i>, <i>The Father</i>, <i><a href="/wiki/King_Lear" title="King Lear">King Lear</a></i>, <i>Power Failure</i> and, in mid-1972, appeared in a <a href="/wiki/Jean_Cocteau" title="Jean Cocteau">Jean Cocteau</a> double bill, <i><a href="/wiki/Orpheus_(play)" title="Orpheus (play)">Orphée</a></i> and <i><a href="/wiki/The_Human_Voice" title="The Human Voice">The Human Voice</a></i>, at the Jean Cocteau Theater at 43 Bond Street.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup></p><p>In 1977, Lloyd returned to Broadway for the musical <i><a href="/wiki/Happy_End_(musical)" title="Happy End (musical)">Happy End</a></i>.<sup id="cite_ref-NEA_3-3" class="reference"><a href="#cite_note-NEA-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> He performed in <a href="/wiki/Andrzej_Wajda" title="Andrzej Wajda">Andrzej Wajda</a>'s adaptation of <a href="/wiki/Fyodor_Dostoevsky" title="Fyodor Dostoevsky">Fyodor Dostoevsky</a>'s <i>The Possessed</i> at <a href="/wiki/Yale_Repertory_Theater" class="mw-redirect" title="Yale Repertory Theater">Yale Repertory Theater</a>,<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">&#91;</span>12<span class="cite-bracket">&#93;</span></a></sup> and in Jay Broad's premiere of <i>White Pelican</i> at the P.A.F. Playhouse in <a href="/wiki/Huntington_Station,_New_York" title="Huntington Station, New York">Huntington Station, New York</a>, on <a href="/wiki/Long_Island" title="Long Island">Long Island</a>.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup></p><p>In 1977, he said of his training at the Neighborhood Playhouse under Meisner, "My work up to then had been very uneven. I would be good one night, dull the next. Meisner made me aware of how to be consistent in using the best that I have to offer. But I guess nobody can teach you the knack, or whatever it is, that helps you come to life on stage."<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">&#91;</span>14<span class="cite-bracket">&#93;</span></a></sup></p><p>His first film role was psychiatric patient Max Taber in <i><a href="/wiki/One_Flew_Over_the_Cuckoo%27s_Nest_(film)" title="One Flew Over the Cuckoo&#39;s Nest (film)">One Flew Over the Cuckoo's Nest</a></i> (1975), alongside future co-star <a href="/wiki/Danny_DeVito" title="Danny DeVito">Danny DeVito</a>.<sup id="cite_ref-avclub_15-0" class="reference"><a href="#cite_note-avclub-15"><span class="cite-bracket">&#91;</span>15<span class="cite-bracket">&#93;</span></a></sup> He is known for his work as <a href="/wiki/Jim_Ignatowski" title="Jim Ignatowski">"Reverend" Jim Ignatowski</a>, the ex-<a href="/wiki/Hippie" title="Hippie">hippie</a> cabbie on the sitcom <i><a href="/wiki/Taxi_(TV_series)" title="Taxi (TV series)">Taxi</a></i>, for which he won two <a href="/wiki/Primetime_Emmy_Award_for_Outstanding_Supporting_Actor_in_a_Comedy_Series" title="Primetime Emmy Award for Outstanding Supporting Actor in a Comedy Series">Primetime Emmy Awards for Outstanding Supporting Actor in a Comedy Series</a>;<sup id="cite_ref-emmys_16-0" class="reference"><a href="#cite_note-emmys-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup> and the eccentric inventor <a href="/wiki/Emmett_Brown" title="Emmett Brown">Emmett "Doc" Brown</a> in the <i><a href="/wiki/Back_to_the_Future_(franchise)" title="Back to the Future (franchise)">Back to the Future</a></i> trilogy for which he was nominated for a <a href="/wiki/Saturn_Award" class="mw-redirect" title="Saturn Award">Saturn Award</a>. In 1985, he appeared in the pilot episode of <i><a href="/wiki/Street_Hawk" title="Street Hawk">Street Hawk</a></i>. The following year, he played the reviled Professor B.O. Beanes on the television series <i><a href="/wiki/Amazing_Stories_(1985_TV_series)" title="Amazing Stories (1985 TV series)">Amazing Stories</a></i>. Other roles include <a href="/wiki/Klingon" title="Klingon">Klingon</a> Commander Kruge in <i><a href="/wiki/Star_Trek_III:_The_Search_for_Spock" title="Star Trek III: The Search for Spock">Star Trek III: The Search for Spock</a></i> (1984) (on suggestion of fellow actor and friend <a href="/wiki/Leonard_Nimoy" title="Leonard Nimoy">Leonard Nimoy</a>), Professor Plum in <i><a href="/wiki/Clue_(film)" title="Clue (film)">Clue</a></i> (1985), Professor Dimple in an episode of <i><a href="/wiki/Road_to_Avonlea" title="Road to Avonlea">Road to Avonlea</a></i> (for which he won a <a href="/wiki/Primetime_Emmy_Award_for_Outstanding_Lead_Actor_in_a_Drama_Series" title="Primetime Emmy Award for Outstanding Lead Actor in a Drama Series">Primetime Emmy Award for Outstanding Lead Actor in a Drama Series</a>),<sup id="cite_ref-emmys_16-1" class="reference"><a href="#cite_note-emmys-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup> the villain <a href="/wiki/Judge_Doom" title="Judge Doom">Judge Doom</a> in <i><a href="/wiki/Who_Framed_Roger_Rabbit" title="Who Framed Roger Rabbit">Who Framed Roger Rabbit</a></i> (1988), Merlock the Sorcerer in <i><a href="/wiki/DuckTales_the_Movie" class="mw-redirect" title="DuckTales the Movie">DuckTales the Movie</a></i> (1990), Switchblade Sam in <i><a href="/wiki/Dennis_the_Menace_(1993_film)" title="Dennis the Menace (1993 film)">Dennis the Menace</a></i> (1993), Zoltan in <i><a href="/wiki/Radioland_Murders" title="Radioland Murders">Radioland Murders</a></i> (1994), and <a href="/wiki/Uncle_Fester" title="Uncle Fester">Uncle Fester</a> in <i><a href="/wiki/The_Addams_Family_(1991_film)" title="The Addams Family (1991 film)">The Addams Family</a></i> (1991) and <i><a href="/wiki/Addams_Family_Values" title="Addams Family Values">Addams Family Values</a></i> (1993).</p><p>Lloyd portrayed the star character in the adventure game <i><a href="/wiki/Toonstruck" title="Toonstruck">Toonstruck</a></i>, released in November 1996. In 1999, he was reunited onscreen with <a href="/wiki/Michael_J._Fox" title="Michael J. Fox">Michael J. Fox</a> in an episode of <i><a href="/wiki/Spin_City" title="Spin City">Spin City</a></i> entitled "Back to the Future IV&#160;— Judgment Day", in which Lloyd plays Owen Kingston, the former mentor of Fox's character, <a href="/wiki/Mike_Flaherty" class="mw-redirect" title="Mike Flaherty">Mike Flaherty</a>, who stopped by City Hall to see Kingston, only to proclaim himself God. That same year, Lloyd starred in the <a href="/wiki/My_Favorite_Martian_(film)" title="My Favorite Martian (film)">film remake</a> of the 1960s series <i><a href="/wiki/My_Favorite_Martian" title="My Favorite Martian">My Favorite Martian</a></i>. He starred on the television series <i><a href="/wiki/Deadly_Games_(TV_series)" title="Deadly Games (TV series)">Deadly Games</a></i> in the mid-1990s and was a regular on the sitcom <i><a href="/wiki/Stacked" title="Stacked">Stacked</a></i> in the mid-2000s. In 2003, he guest-starred in three of the 13 produced episodes of <i><a href="/wiki/Tremors_(TV_series)" title="Tremors (TV series)">Tremors: The Series</a></i> as the character Cletus Poffenburger. In November 2007, Lloyd was reunited onscreen with his former <i>Taxi</i> co-star <a href="/wiki/Judd_Hirsch" title="Judd Hirsch">Judd Hirsch</a> in the season-four episode "Graphic" of the television series <i><a href="/wiki/Numbers_(TV_series)" title="Numbers (TV series)">Numb3rs</a></i> as Ross Moore. He then played the role of <a href="/wiki/Ebenezer_Scrooge" title="Ebenezer Scrooge">Ebenezer Scrooge</a> in a 2008 production of <i><a href="/wiki/A_Christmas_Carol" title="A Christmas Carol">A Christmas Carol</a></i> at the <a href="/wiki/Kodak_Theatre" class="mw-redirect" title="Kodak Theatre">Kodak Theatre</a> with <a href="/wiki/John_Goodman" title="John Goodman">John Goodman</a> and <a href="/wiki/Jane_Leeves" title="Jane Leeves">Jane Leeves</a>.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup> In 2009, he appeared in a comedic trailer for a faux horror film version of <i><a href="/wiki/Willy_Wonka_%26_the_Chocolate_Factory" title="Willy Wonka &amp; the Chocolate Factory">Willy Wonka &amp; the Chocolate Factory</a></i> entitled <i>Gobstopper</i>, in which he played <a href="/wiki/Willy_Wonka" title="Willy Wonka">Willy Wonka</a> as a horror film-style villain.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">&#91;</span>18<span class="cite-bracket">&#93;</span></a></sup></p><p>In 2010, the Vermont-based <a href="/wiki/Weston_Playhouse" class="mw-redirect" title="Weston Playhouse">Weston Playhouse</a>, of which Lloyd's brother Sam was an active member, asked if there was a role Lloyd would be interested in taking on. Lloyd chose <a href="/wiki/Willy_Loman" title="Willy Loman">Willy Loman</a> in <i><a href="/wiki/Death_of_a_Salesman" title="Death of a Salesman">Death of a Salesman</a></i>, which played at Weston and at other venues throughout <a href="/wiki/Vermont" title="Vermont">Vermont</a> that fall.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">&#91;</span>19<span class="cite-bracket">&#93;</span></a></sup> Also that September, he reprised his role as <a href="/wiki/Emmett_Brown" title="Emmett Brown">Dr. Emmett "Doc" Brown</a> in <i><a href="/wiki/Back_to_the_Future:_The_Game" title="Back to the Future: The Game">Back to the Future: The Game</a></i>, an episodic adventure game series developed by <a href="/wiki/Telltale_Games" title="Telltale Games">Telltale Games</a>.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">&#91;</span>20<span class="cite-bracket">&#93;</span></a></sup> That same month, the production company 3D Entertainment Films announced Lloyd would star as an eccentric professor who with his lab assistant explore the various dimensions in <i>Time, the Fourth Dimension</i>, an approximately 45-minute <a href="/wiki/Imax" class="mw-redirect" title="Imax">Imax</a><a href="/wiki/3D_film" title="3D film">3D film</a> that was planned for release in 2012.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">&#91;</span>21<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">&#91;</span>22<span class="cite-bracket">&#93;</span></a></sup></p><p>On January 21, 2011, he appeared in "<a href="/wiki/The_Firefly_(Fringe)" title="The Firefly (Fringe)">The Firefly</a>" episode of the <a href="/wiki/J._J._Abrams" title="J. J. Abrams">J. J. Abrams</a> television series <i><a href="/wiki/Fringe_(TV_series)" title="Fringe (TV series)">Fringe</a></i> as Roscoe Joyce.<sup id="cite_ref-ew_review_23-0" class="reference"><a href="#cite_note-ew_review-23"><span class="cite-bracket">&#91;</span>23<span class="cite-bracket">&#93;</span></a></sup> That August, he reprised the role of Dr. <a href="/wiki/Emmett_Brown" title="Emmett Brown">Emmett Brown</a> (from <i><a href="/wiki/Back_to_the_Future" title="Back to the Future">Back to the Future</a></i>) as part of an advertising campaign for Garbarino,<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">&#91;</span>24<span class="cite-bracket">&#93;</span></a></sup> an <a href="/wiki/Argentina" title="Argentina">Argentine</a> appliance company, and also as part of Nike's "Back For the Future" campaign for the benefit of <a href="/wiki/The_Michael_J._Fox_Foundation" title="The Michael J. Fox Foundation">The Michael J. Fox Foundation</a>. In 2012 and 2013, Lloyd voiced Doc Brown in two episodes of <i><a href="/wiki/Robot_Chicken" title="Robot Chicken">Robot Chicken</a></i>. He was a guest star on the 100th episode of the <a href="/wiki/USA_Network" title="USA Network">USA Network</a> sitcom <i><a href="/wiki/Psych" title="Psych">Psych</a></i> as Martin Khan in 2013.</p><p>In May 2013, Lloyd appeared as the narrator and the character Azdak in the <a href="/wiki/Bertold_Brecht" class="mw-redirect" title="Bertold Brecht">Bertolt Brecht</a> play <i><a href="/wiki/The_Caucasian_Chalk_Circle" title="The Caucasian Chalk Circle">The Caucasian Chalk Circle</a></i>, produced by the <a href="/wiki/Classic_Stage_Company" title="Classic Stage Company">Classic Stage Company</a> in New York.<sup id="cite_ref-caucasian_circle_25-0" class="reference"><a href="#cite_note-caucasian_circle-25"><span class="cite-bracket">&#91;</span>25<span class="cite-bracket">&#93;</span></a></sup></p><p>On the October 21, 2015, episode of <i><a href="/wiki/Jimmy_Kimmel_Live" class="mw-redirect" title="Jimmy Kimmel Live">Jimmy Kimmel Live</a></i>, Lloyd and <a href="/wiki/Michael_J._Fox" title="Michael J. Fox">Michael J. Fox</a> appeared in a <i>Back to the Future</i> skit to commemorate the date in the <a href="/wiki/Back_to_the_Future_Part_II" title="Back to the Future Part II">second installment of the film trilogy</a>.<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">&#91;</span>26<span class="cite-bracket">&#93;</span></a></sup></p><p>In May 2018, Lloyd made a cameo appearance in the episode titled "No Country for Old Women" of <i><a href="/wiki/Roseanne_(season_10)" class="mw-redirect" title="Roseanne (season 10)">Roseanne</a></i>, where he played the role of Lou, the boyfriend to the mother of Roseanne and Jackie. He is set to reprise the role in an episode of its spin-off, <i>The Conners</i>, airing May 4, 2022.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">&#91;</span>27<span class="cite-bracket">&#93;</span></a></sup> In late 2019, he provided the voice of <a href="/wiki/Xehanort" title="Xehanort">Xehanort</a> in the "Re Mind" downloadable content of <i><a href="/wiki/Kingdom_Hearts_III" title="Kingdom Hearts III">Kingdom Hearts III</a></i>, taking over the role from the late <a href="/wiki/Leonard_Nimoy" title="Leonard Nimoy">Leonard Nimoy</a> and <a href="/wiki/Rutger_Hauer" title="Rutger Hauer">Rutger Hauer</a>, and reprised the role in the 2020 video game <i><a href="/wiki/Kingdom_Hearts:_Melody_of_Memory" title="Kingdom Hearts: Melody of Memory">Kingdom Hearts: Melody of Memory</a></i>.</p><p>By July 2020, Lloyd was cast as The Alchemist in <i>Man &amp; Witch</i>, a family-friendly fantasy-adventure film directed by <a href="/wiki/Rob_Margolies" title="Rob Margolies">Rob Margolies</a>, with <a href="/wiki/Jim_Henson%27s_Creature_Shop" title="Jim Henson&#39;s Creature Shop">Jim Henson's Creature Shop</a> set to create the puppets for the film.<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">&#91;</span>28<span class="cite-bracket">&#93;</span></a></sup></p><p>In March 2021, Lloyd played the best friend of <a href="/wiki/William_Shatner" title="William Shatner">William Shatner</a> in the romantic comedy film <i><a href="/wiki/Senior_Moment" title="Senior Moment">Senior Moment</a></i>, also starring <a href="/wiki/Jean_Smart" title="Jean Smart">Jean Smart</a>.<sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">&#91;</span>29<span class="cite-bracket">&#93;</span></a></sup></p><figure class="mw-default-size mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:Christopher_Lloyd_C2E2_2024_6.jpg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/4/42/Christopher_Lloyd_C2E2_2024_6.jpg/250px-Christopher_Lloyd_C2E2_2024_6.jpg" decoding="async" width="190" height="285" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/42/Christopher_Lloyd_C2E2_2024_6.jpg/330px-Christopher_Lloyd_C2E2_2024_6.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/42/Christopher_Lloyd_C2E2_2024_6.jpg/500px-Christopher_Lloyd_C2E2_2024_6.jpg 2x" data-file-width="1972" data-file-height="2954" /></a><figcaption>Lloyd at the <a href="/wiki/Chicago_Comic_%26_Entertainment_Expo" title="Chicago Comic &amp; Entertainment Expo">Chicago Comic &amp; Entertainment Expo</a> in 2024</figcaption></figure><p>In September 2021, Lloyd portrayed <a href="/wiki/Rick_Sanchez" title="Rick Sanchez">Rick Sanchez</a> in a series of promotional interstitials directed by Paul B. Cummings for the two-part <a href="/wiki/Rick_and_Morty_(season_5)" class="mw-redirect" title="Rick and Morty (season 5)">fifth season</a> finale of <i><a href="/wiki/Rick_and_Morty" title="Rick and Morty">Rick and Morty</a></i>, a character inspired by Lloyd's portrayal of Dr. Emmett "Doc" Brown from <i>Back to the Future</i>, alongside <a href="/wiki/Jaeden_Martell" title="Jaeden Martell">Jaeden Martell</a> as <a href="/wiki/Morty_Smith" title="Morty Smith">Morty Smith</a>.<sup id="cite_ref-RickSanchez_30-0" class="reference"><a href="#cite_note-RickSanchez-30"><span class="cite-bracket">&#91;</span>30<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-RickSanchez2_31-0" class="reference"><a href="#cite_note-RickSanchez2-31"><span class="cite-bracket">&#91;</span>31<span class="cite-bracket">&#93;</span></a></sup></p><p>In March 2022, Lloyd appeared in a promotion for the <a href="/wiki/Time_travel" title="Time travel">time travel</a> film <i><a href="/wiki/The_Adam_Project" title="The Adam Project">The Adam Project</a></i> along with two of its stars, <a href="/wiki/Ryan_Reynolds" title="Ryan Reynolds">Ryan Reynolds</a> and <a href="/wiki/Mark_Ruffalo" title="Mark Ruffalo">Mark Ruffalo</a>.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">&#91;</span>32<span class="cite-bracket">&#93;</span></a></sup></p><p>In April 2022, it was announced that Lloyd would star in <i><a href="/wiki/Spirit_Halloween:_The_Movie" title="Spirit Halloween: The Movie">Spirit Halloween: The Movie</a></i>, a film produced in partnership with the <a href="/wiki/Spirit_Halloween" title="Spirit Halloween">Spirit Halloween</a> retailer.<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">&#91;</span>33<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">&#91;</span>34<span class="cite-bracket">&#93;</span></a></sup> He plays Alec Windsor, a wealthy land developer who disappeared one Halloween night, and whose spirit is said to haunt the town in which the film is set each year on Halloween.<sup id="cite_ref-Panaligan_2022_35-0" class="reference"><a href="#cite_note-Panaligan_2022-35"><span class="cite-bracket">&#91;</span>35<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Yossman_2022_36-0" class="reference"><a href="#cite_note-Yossman_2022-36"><span class="cite-bracket">&#91;</span>36<span class="cite-bracket">&#93;</span></a></sup> The film was released on <a href="/wiki/Video-on-demand" class="mw-redirect" title="Video-on-demand">video-on-demand</a> (VOD) on October 11, 2022.<sup id="cite_ref-Panaligan_2022_35-1" class="reference"><a href="#cite_note-Panaligan_2022-35"><span class="cite-bracket">&#91;</span>35<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">&#91;</span>37<span class="cite-bracket">&#93;</span></a></sup></p><p>In April 2023, Lloyd guest starred in an episode of the <a href="/wiki/The_Mandalorian_(season_3)" class="mw-redirect" title="The Mandalorian (season 3)">third season</a> of <i><a href="/wiki/The_Mandalorian" title="The Mandalorian">The Mandalorian</a></i>, portraying the role of Commissioner Helgait.<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">&#91;</span>38<span class="cite-bracket">&#93;</span></a></sup> In June 2023, Lloyd was announced to be starring in the live-action <i><a href="/wiki/Knuckles_(TV_series)" title="Knuckles (TV series)">Knuckles</a></i> series, which premiered in April 2024.<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">&#91;</span>39<span class="cite-bracket">&#93;</span></a></sup></p><div class="mw-heading mw-heading2"><h2 id="Personal_life">Personal life</h2></div><figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:Christopher_Lloyd_Being_Awesome_(and_Introducing_the_Dodgers_Starting_Lineup),_Dodger_Stadium,_Los_Angeles,_California_(14331452247).jpg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Christopher_Lloyd_Being_Awesome_%28and_Introducing_the_Dodgers_Starting_Lineup%29%2C_Dodger_Stadium%2C_Los_Angeles%2C_California_%2814331452247%29.jpg/250px-Christopher_Lloyd_Being_Awesome_%28and_Introducing_the_Dodgers_Starting_Lineup%29%2C_Dodger_Stadium%2C_Los_Angeles%2C_California_%2814331452247%29.jpg" decoding="async" width="250" height="188" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Christopher_Lloyd_Being_Awesome_%28and_Introducing_the_Dodgers_Starting_Lineup%29%2C_Dodger_Stadium%2C_Los_Angeles%2C_California_%2814331452247%29.jpg/500px-Christopher_Lloyd_Being_Awesome_%28and_Introducing_the_Dodgers_Starting_Lineup%29%2C_Dodger_Stadium%2C_Los_Angeles%2C_California_%2814331452247%29.jpg 1.5x" data-file-width="4000" data-file-height="3000" /></a><figcaption>Lloyd on the scoreboard of Dodger Stadium in 2014</figcaption></figure><p>Lloyd married Catharine Dallas Dixon Boyd on June 6, 1959.<sup id="cite_ref-NYT060759_7-1" class="reference"><a href="#cite_note-NYT060759-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> They divorced in 1971.<sup id="cite_ref-AP-Sept25_2002_40-0" class="reference"><a href="#cite_note-AP-Sept25_2002-40"><span class="cite-bracket">&#91;</span>40<span class="cite-bracket">&#93;</span></a></sup> He married actress Kay Tornborg in 1974, divorcing her circa 1987.<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">&#91;</span>41<span class="cite-bracket">&#93;</span></a></sup> Lloyd's third marriage, to Carol Ann Vanek, had lasted more than two years when they were in the process of divorce in July 1991.<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">&#91;</span>42<span class="cite-bracket">&#93;</span></a></sup> His fourth marriage, to screenwriter Jane Walker Wood, lasted from 1992 to 2005.<sup id="cite_ref-biography.com_1-2" class="reference"><a href="#cite_note-biography.com-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-AP-Sept25_2002_40-1" class="reference"><a href="#cite_note-AP-Sept25_2002-40"><span class="cite-bracket">&#91;</span>40<span class="cite-bracket">&#93;</span></a></sup>In 2016, he married Lisa Loiacono,<sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite-bracket">&#91;</span>43<span class="cite-bracket">&#93;</span></a></sup> who was Lloyd's real estate agent when he sold his house in <a href="/wiki/Montecito,_California" title="Montecito, California">Montecito, California</a>, in 2012.<sup id="cite_ref-LATimes_Montecito_44-0" class="reference"><a href="#cite_note-LATimes_Montecito-44"><span class="cite-bracket">&#91;</span>44<span class="cite-bracket">&#93;</span></a></sup> His former house on that lot was destroyed in the <a href="/wiki/Tea_Fire" title="Tea Fire">Tea Fire</a> of November 2008.<sup id="cite_ref-LATimes_Montecito_44-1" class="reference"><a href="#cite_note-LATimes_Montecito-44"><span class="cite-bracket">&#91;</span>44<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Stars_45-0" class="reference"><a href="#cite_note-Stars-45"><span class="cite-bracket">&#91;</span>45<span class="cite-bracket">&#93;</span></a></sup></p><p>Lloyd's philanthropist mother, Ruth Lapham Lloyd, died in 1984 at age 88. Her other surviving children were Donald L. Mygatt (who died in 2003), Antoinette L. Mygatt Lucas, Samuel Lloyd III (who later died in 2017), Ruth Lloyd Scott, Ax Lloyd, and Adele L. Kinney.<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">&#91;</span>46<span class="cite-bracket">&#93;</span></a></sup> Lloyd's nephew, <a href="/wiki/Sam_Lloyd" title="Sam Lloyd">Sam Lloyd</a> (1963–2020), was known for playing lawyer Ted Buckland on <i><a href="/wiki/Scrubs_(TV_series)" title="Scrubs (TV series)">Scrubs</a></i>.</p><div class="mw-heading mw-heading2"><h2 id="Filmography">Filmography</h2></div><div class="mw-heading mw-heading3"><h3 id="Film">Film</h3></div><table class="wikitable sortable"><tbody><tr style="background:#b0c4de; text-align:center;"><th>Year</th><th>Title</th><th>Role</th><th class="unsortable">Notes</th></tr><tr><td>1975</td><td><i><a href="/wiki/One_Flew_Over_the_Cuckoo%27s_Nest_(film)" title="One Flew Over the Cuckoo&#39;s Nest (film)">One Flew Over the Cuckoo's Nest</a></i></td><td>Max Taber</td><td></td></tr><tr><td>1977</td><td><i><a href="/wiki/Another_Man,_Another_Chance" title="Another Man, Another Chance">Another Man, Another Chance</a></i></td><td>Jesse James</td><td>Uncredited<sup id="cite_ref-47" class="reference"><a href="#cite_note-47"><span class="cite-bracket">&#91;</span>47<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">1978</td><td><i><a href="/wiki/Three_Warriors" title="Three Warriors">Three Warriors</a></i></td><td>Steve Chaffey</td><td></td></tr><tr><td><i><a href="/wiki/Goin%27_South" title="Goin&#39; South">Goin' South</a></i></td><td>Deputy Towfield</td><td></td></tr><tr><td rowspan="3">1979</td><td><i><a href="/wiki/Butch_and_Sundance:_The_Early_Days" title="Butch and Sundance: The Early Days">Butch and Sundance: The Early Days</a></i></td><td>Bill Tod Carver</td><td></td></tr><tr><td data-sort-value="Lady in Red, The"><i><a href="/wiki/The_Lady_in_Red_(1979_film)" title="The Lady in Red (1979 film)">The Lady in Red</a></i></td><td>Frognose</td><td></td></tr><tr><td data-sort-value="Onion Field, The"><i><a href="/wiki/The_Onion_Field_(film)" title="The Onion Field (film)">The Onion Field</a></i></td><td>Jailhouse lawyer</td><td></td></tr><tr><td rowspan="2">1980</td><td data-sort-value="Black Marble, The"><i><a href="/wiki/The_Black_Marble" title="The Black Marble">The Black Marble</a></i></td><td>Arnold's Collector</td><td></td></tr><tr><td><i><a href="/wiki/Schizoid_(film)" title="Schizoid (film)">Schizoid</a></i></td><td>Gilbert</td><td></td></tr><tr><td rowspan="3">1981</td><td data-sort-value="Legend of the Lone Ranger, The"><i><a href="/wiki/The_Legend_of_the_Lone_Ranger" title="The Legend of the Lone Ranger">The Legend of the Lone Ranger</a></i></td><td>Maj. Bartholomew "Butch" Cavendish</td><td></td></tr><tr><td data-sort-value="Postman Always Rings Twice, The"><i><a href="/wiki/The_Postman_Always_Rings_Twice_(1981_film)" title="The Postman Always Rings Twice (1981 film)">The Postman Always Rings Twice</a></i></td><td>The Salesman</td><td></td></tr><tr><td><i><a href="/wiki/National_Lampoon%27s_Movie_Madness" title="National Lampoon&#39;s Movie Madness">National Lampoon's Movie Madness</a></i></td><td>Samuel Starkman</td><td>Segment: "Municipalians"</td></tr><tr><td rowspan="2">1983</td><td><i><a href="/wiki/Mr._Mom" title="Mr. Mom">Mr. Mom</a></i></td><td>Larry</td><td></td></tr><tr><td><i><a href="/wiki/To_Be_or_Not_to_Be_(1983_film)" title="To Be or Not to Be (1983 film)">To Be or Not to Be</a></i></td><td>S.S. Captain Schultz</td><td></td></tr><tr><td rowspan="3">1984</td><td><i><a href="/wiki/Star_Trek_III:_The_Search_for_Spock" title="Star Trek III: The Search for Spock">Star Trek III: The Search for Spock</a></i></td><td>Cmdr. Kruge</td><td></td></tr><tr><td data-sort-value="Adventures of Buckaroo Banzai Across the 8th Dimension, The"><i><a href="/wiki/The_Adventures_of_Buckaroo_Banzai_Across_the_8th_Dimension" title="The Adventures of Buckaroo Banzai Across the 8th Dimension">The Adventures of Buckaroo Banzai Across the 8th Dimension</a></i></td><td>John Bigbooté</td><td></td></tr><tr><td><i><a href="/wiki/Joy_of_Sex_(film)" title="Joy of Sex (film)">National Lampoon's Joy of Sex</a></i></td><td>Coach Hindenberg</td><td></td></tr><tr><td rowspan="2">1985</td><td><i><a href="/wiki/Back_to_the_Future" title="Back to the Future">Back to the Future</a></i></td><td><a href="/wiki/Emmett_Brown" title="Emmett Brown">Dr. Emmett "Doc" Brown</a></td><td></td></tr><tr><td><i><a href="/wiki/Clue_(film)" title="Clue (film)">Clue</a></i></td><td><a href="/wiki/Professor_Plum" class="mw-redirect" title="Professor Plum">Prof. Plum</a></td><td></td></tr><tr><td>1986</td><td><i><a href="/wiki/Miracles_(1986_film)" title="Miracles (1986 film)">Miracles</a></i></td><td>Harry</td><td></td></tr><tr><td rowspan="2">1987</td><td><i><a href="/wiki/Walk_Like_a_Man_(1987_film)" title="Walk Like a Man (1987 film)">Walk Like a Man</a></i></td><td>Reggie Shand / Henry Shand</td><td></td></tr><tr><td><i><a href="/wiki/Legend_of_the_White_Horse" title="Legend of the White Horse">Legend of the White Horse</a></i></td><td>Jim Martin</td><td></td></tr><tr><td rowspan="3">1988</td><td><i><a href="/wiki/Track_29" title="Track 29">Track 29</a></i></td><td>Henry Henry</td><td></td></tr><tr><td><i><a href="/wiki/Who_Framed_Roger_Rabbit" title="Who Framed Roger Rabbit">Who Framed Roger Rabbit</a></i></td><td><a href="/wiki/Judge_Doom" title="Judge Doom">Judge Doom</a></td><td></td></tr><tr><td><i><a href="/wiki/Eight_Men_Out" title="Eight Men Out">Eight Men Out</a></i></td><td><a href="/wiki/Bill_Burns_(baseball)" title="Bill Burns (baseball)">Bill Burns</a></td><td></td></tr><tr><td rowspan="2">1989</td><td data-sort-value="Dream Team, The"><i><a href="/wiki/The_Dream_Team_(1989_film)" title="The Dream Team (1989 film)">The Dream Team</a></i></td><td>Henry Sikorsky</td><td></td></tr><tr><td><i><a href="/wiki/Back_to_the_Future_Part_II" title="Back to the Future Part II">Back to the Future Part II</a></i></td><td rowspan="2">Dr. Emmett "Doc" Brown</td><td></td></tr><tr><td rowspan="3">1990</td><td><i><a href="/wiki/Back_to_the_Future_Part_III" title="Back to the Future Part III">Back to the Future Part III</a></i></td><td></td></tr><tr><td><i><a href="/wiki/Why_Me%3F_(1990_film)" title="Why Me? (1990 film)">Why Me?</a></i></td><td>Bruno Daley</td><td></td></tr><tr><td><i><a href="/wiki/DuckTales_the_Movie:_Treasure_of_the_Lost_Lamp" title="DuckTales the Movie: Treasure of the Lost Lamp">DuckTales the Movie: Treasure of the Lost Lamp</a></i></td><td>Merlock</td><td>Voice<sup id="cite_ref-btva_48-0" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">1991</td><td><i><a href="/wiki/Suburban_Commando" title="Suburban Commando">Suburban Commando</a></i></td><td>Charlie Wilcox</td><td></td></tr><tr><td data-sort-value="Addams Family, The"><i><a href="/wiki/The_Addams_Family_(1991_film)" title="The Addams Family (1991 film)">The Addams Family</a></i></td><td><a href="/wiki/Uncle_Fester" title="Uncle Fester">Uncle Fester</a>/Gordon Craven</td><td></td></tr><tr><td rowspan="3">1993</td><td><i><a href="/wiki/Twenty_Bucks" title="Twenty Bucks">Twenty Bucks</a></i></td><td>Jimmy</td><td></td></tr><tr><td><i><a href="/wiki/Dennis_the_Menace_(1993_film)" title="Dennis the Menace (1993 film)">Dennis the Menace</a></i></td><td>Switchblade Sam</td><td></td></tr><tr><td><i><a href="/wiki/Addams_Family_Values" title="Addams Family Values">Addams Family Values</a></i></td><td>Uncle Fester Addams</td><td></td></tr><tr><td rowspan="4">1994</td><td><i><a href="/wiki/Angels_in_the_Outfield_(1994_film)" title="Angels in the Outfield (1994 film)">Angels in the Outfield</a></i></td><td>Al "The Boss" Angel</td><td></td></tr><tr><td><i><a href="/wiki/Camp_Nowhere" title="Camp Nowhere">Camp Nowhere</a></i></td><td>Dennis Van Welker</td><td></td></tr><tr><td><i><a href="/wiki/Radioland_Murders" title="Radioland Murders">Radioland Murders</a></i></td><td>Zoltan</td><td></td></tr><tr><td data-sort-value="Pagemaster, The"><i><a href="/wiki/The_Pagemaster" title="The Pagemaster">The Pagemaster</a></i></td><td>Mr. Dewey / The Pagemaster</td><td><sup id="cite_ref-btva_48-1" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">1995</td><td><i><a href="/wiki/Mr._Payback:_An_Interactive_Movie" title="Mr. Payback: An Interactive Movie">Mr. Payback: An Interactive Movie</a></i></td><td>Ed Jarvis</td><td>Short subject</td></tr><tr><td><i><a href="/wiki/Things_to_Do_in_Denver_When_You%27re_Dead" title="Things to Do in Denver When You&#39;re Dead">Things to Do in Denver When You're Dead</a></i></td><td>Pieces</td><td></td></tr><tr><td rowspan="1">1996</td><td><i><a href="/wiki/Cadillac_Ranch_(film)" title="Cadillac Ranch (film)">Cadillac Ranch</a></i></td><td>Wood Grimes</td><td><sup id="cite_ref-49" class="reference"><a href="#cite_note-49"><span class="cite-bracket">&#91;</span>49<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="3">1997</td><td><i>Changing Habits</i></td><td>Theo Teagarden</td><td></td></tr><tr><td><i>Dinner at Fred's</i></td><td>Dad</td><td></td></tr><tr><td><i><a href="/wiki/Anastasia_(1997_film)" title="Anastasia (1997 film)">Anastasia</a></i></td><td><a href="/wiki/Grigori_Rasputin" title="Grigori Rasputin">Grigori Rasputin</a></td><td>Voice<sup id="cite_ref-btva_48-2" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">1998</td><td data-sort-value="Real Blonde, The"><i><a href="/wiki/The_Real_Blonde" title="The Real Blonde">The Real Blonde</a></i></td><td>Ernst</td><td></td></tr><tr><td data-sort-value="Animated Adventures of Tom Sawyer, The"><i>The Animated Adventures of Tom Sawyer</i></td><td>Judge Thatcher</td><td>Voice<sup id="cite_ref-btva_48-3" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-TCM_50-0" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="4">1999</td><td><i><a href="/wiki/My_Favorite_Martian_(film)" title="My Favorite Martian (film)">My Favorite Martian</a></i></td><td>Uncle Martin</td><td></td></tr><tr><td><i><a href="/wiki/Baby_Geniuses" title="Baby Geniuses">Baby Geniuses</a></i></td><td>Heep</td><td></td></tr><tr><td><i>Convergence</i></td><td>Morley Allen</td><td><sup id="cite_ref-51" class="reference"><a href="#cite_note-51"><span class="cite-bracket">&#91;</span>51<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Man_on_the_Moon_(film)" title="Man on the Moon (film)">Man on the Moon</a></i></td><td>Himself - <i>Taxi</i> actor</td><td><a href="/wiki/Cameo_appearance" title="Cameo appearance">Cameo</a></td></tr><tr><td rowspan="2">2001</td><td><i><a href="/wiki/Kids_World_(film)" title="Kids World (film)">Kids World</a></i></td><td>Leo</td><td></td></tr><tr><td><i>On the Edge</i></td><td>Attorney Bum</td><td>Segment: "Happy Birthday"<sup id="cite_ref-52" class="reference"><a href="#cite_note-52"><span class="cite-bracket">&#91;</span>52<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="3">2002</td><td><i><a href="/wiki/Interstate_60" title="Interstate 60">Interstate 60</a></i></td><td>Ray</td><td></td></tr><tr><td><i>Wish You Were Dead</i></td><td>Bruce</td><td></td></tr><tr><td><i><a href="/wiki/Hey_Arnold!:_The_Movie" title="Hey Arnold!: The Movie">Hey Arnold!: The Movie</a></i></td><td>Coroner</td><td>Voice<sup id="cite_ref-btva_48-4" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>2003</td><td><i><a href="/wiki/Haunted_Lighthouse" title="Haunted Lighthouse">Haunted Lighthouse</a></i></td><td>Cap'n Jack</td><td>Short subject</td></tr><tr><td>2004</td><td><i>Admissions</i></td><td>Stewart Worthy</td><td><sup id="cite_ref-53" class="reference"><a href="#cite_note-53"><span class="cite-bracket">&#91;</span>53<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="3">2005</td><td><i>Here Comes Peter Cottontail: The Movie</i></td><td>Seymour S. Sassafras</td><td>Voice<sup id="cite_ref-btva_48-5" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Bad_Girls_from_Valley_High" title="Bad Girls from Valley High">Bad Girls from Valley High</a></i></td><td>Mr. Chauncey</td><td></td></tr><tr><td><i>Enfants Terribles</i></td><td>Reverend Burr</td><td><sup id="cite_ref-TCM_50-1" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>2007</td><td><i><a href="/wiki/Flakes_(film)" title="Flakes (film)">Flakes</a></i></td><td>Willie</td><td></td></tr><tr><td rowspan="2">2008</td><td><i><a href="/wiki/Fly_Me_to_the_Moon_(2008_film)" title="Fly Me to the Moon (2008 film)">Fly Me to the Moon</a></i></td><td>Amos</td><td>Voice<sup id="cite_ref-btva_48-6" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td data-sort-value="Tale of Despereaux, The"><i><a href="/wiki/The_Tale_of_Despereaux_(film)" title="The Tale of Despereaux (film)">The Tale of Despereaux</a></i></td><td>Hovis</td><td>Voice<sup id="cite_ref-btva_48-7" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">2009</td><td><i><a href="/wiki/Call_of_the_Wild_(2009_film)" title="Call of the Wild (2009 film)">Call of the Wild</a></i></td><td>"Grandpa" Bill Hale</td><td></td></tr><tr><td><i><a href="/wiki/Santa_Buddies" title="Santa Buddies">Santa Buddies</a></i></td><td>Stan Cruge</td><td></td></tr><tr><td rowspan="3">2010</td><td><i><a href="/wiki/Snowmen_(film)" title="Snowmen (film)">Snowmen</a></i></td><td>The Caretaker</td><td></td></tr><tr><td><i><a href="/wiki/Jack_and_the_Beanstalk_(2009_film)" title="Jack and the Beanstalk (2009 film)">Jack and the Beanstalk</a></i></td><td>Headmaster</td><td></td></tr><tr><td><i><a href="/wiki/Piranha_3D" title="Piranha 3D">Piranha 3D</a></i></td><td>Mr. Goodman</td><td></td></tr><tr><td rowspan="5">2011</td><td><i><a href="/wiki/Love,_Wedding,_Marriage" title="Love, Wedding, Marriage">Love, Wedding, Marriage</a></i></td><td>Dr. George</td><td></td></tr><tr><td><i>InSight</i></td><td>Shep</td><td></td></tr><tr><td><i><a href="/wiki/Adventures_of_Serial_Buddies" title="Adventures of Serial Buddies">Adventures of Serial Buddies</a></i></td><td>Dr. Von Gearheart</td><td></td></tr><tr><td><i><a href="/wiki/Snowflake,_the_White_Gorilla" title="Snowflake, the White Gorilla">Snowflake, the White Gorilla</a></i></td><td>Dr. Archibald Pepper</td><td>Voice, English dub</td></tr><tr><td data-sort-value="Chateau Meroux, The"><i>The Chateau Meroux</i></td><td>Nathan</td><td><sup id="cite_ref-54" class="reference"><a href="#cite_note-54"><span class="cite-bracket">&#91;</span>54<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="13">2012</td><td><i><a href="/wiki/Foodfight!" title="Foodfight!">Foodfight!</a></i></td><td>Mr. Clipboard</td><td>Voice</td></tr><tr><td><i>Cadaver</i></td><td>Cadaver</td><td>Voice; short subject<sup id="cite_ref-55" class="reference"><a href="#cite_note-55"><span class="cite-bracket">&#91;</span>55<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Piranha_3DD" title="Piranha 3DD">Piranha 3DD</a></i></td><td>Mr. Goodman</td><td></td></tr><tr><td><i><a href="/wiki/Delhi_Safari" title="Delhi Safari">Delhi Safari</a></i></td><td>Pigeon</td><td>Voice, English dub<sup id="cite_ref-btva_48-8" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i>Axe Boat 2012</i></td><td>Night Watchman</td><td>Short subject<sup id="cite_ref-56" class="reference"><a href="#cite_note-56"><span class="cite-bracket">&#91;</span>56<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td data-sort-value="Oogieloves in the Big Balloon Adventure, The"><i><a href="/wiki/The_Oogieloves_in_the_Big_Balloon_Adventure" title="The Oogieloves in the Big Balloon Adventure">The Oogieloves in the Big Balloon Adventure</a></i></td><td>Lero Sombrero</td><td></td></tr><tr><td data-sort-value="Illusionauts, The"><i><a href="/wiki/The_Illusionauts" title="The Illusionauts">The Illusionauts</a></i></td><td>Teacher</td><td>English dub</td></tr><tr><td><i><a href="/wiki/Mickey_Matson_and_the_Copperhead_Conspiracy" title="Mickey Matson and the Copperhead Conspiracy">Mickey Matson and the Copperhead Conspiracy</a></i></td><td>Grandpa Jack</td><td></td></tr><tr><td><i><a href="/wiki/Dead_Before_Dawn" title="Dead Before Dawn">Dead Before Dawn</a></i></td><td>Horus Galloway</td><td></td></tr><tr><td><i><a href="/wiki/Excuse_Me_for_Living" title="Excuse Me for Living">Excuse Me for Living</a></i></td><td>Lars</td><td></td></tr><tr><td><i><a href="/wiki/Sid_the_Science_Kid" title="Sid the Science Kid">Sid the Science Kid</a>: The Movie</i></td><td>Dr. Bonanodon</td><td>Voice<sup id="cite_ref-btva_48-9" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Last_Call_(2012_film)" title="Last Call (2012 film)">Last Call</a></i></td><td>Pete</td><td></td></tr><tr><td><i>Freedom Force</i></td><td>Professor</td><td>Voice, English dub<sup id="cite_ref-57" class="reference"><a href="#cite_note-57"><span class="cite-bracket">&#91;</span>57<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">2013</td><td><i><a href="/wiki/Jungle_Master" title="Jungle Master">Jungle Master</a></i></td><td>Dr. Sedgwick</td><td>Voice<sup id="cite_ref-btva_48-10" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td data-sort-value="Coin, The"><i>The Coin</i></td><td>William</td><td>Short subject</td></tr><tr><td rowspan="3">2014</td><td data-sort-value="Million Ways to Die in the West, A"><i><a href="/wiki/A_Million_Ways_to_Die_in_the_West" title="A Million Ways to Die in the West">A Million Ways to Die in the West</a></i></td><td>Doc Brown</td><td>Cameo</td></tr><tr><td><i><a href="/wiki/Sin_City:_A_Dame_to_Kill_For" title="Sin City: A Dame to Kill For">Sin City: A Dame to Kill For</a></i></td><td>Kroenig</td><td></td></tr><tr><td data-sort-value="One I Wrote for You, The"><i><a href="/wiki/The_One_I_Wrote_for_You" title="The One I Wrote for You">The One I Wrote for You</a></i></td><td>Pop</td><td><sup id="cite_ref-58" class="reference"><a href="#cite_note-58"><span class="cite-bracket">&#91;</span>58<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="4">2015</td><td><i><a href="/wiki/88_(film)" title="88 (film)">88</a></i></td><td>Cyrus</td><td></td></tr><tr><td><i><a href="/wiki/Back_in_Time_(2015_film)" title="Back in Time (2015 film)">Back in Time</a></i></td><td>Himself</td><td>Documentary</td></tr><tr><td><i><a href="/wiki/Doc_Brown_Saves_the_World" class="mw-redirect" title="Doc Brown Saves the World">Doc Brown Saves the World</a></i></td><td>Dr. Emmett "Doc" Brown</td><td>Short subject</td></tr><tr><td data-sort-value="Boat Builder, The"><i><a href="/wiki/The_Boat_Builder" title="The Boat Builder">The Boat Builder</a></i></td><td>Abner</td><td></td></tr><tr><td rowspan="3">2016</td><td><i><a href="/wiki/I_Am_Not_a_Serial_Killer_(film)" title="I Am Not a Serial Killer (film)">I Am Not a Serial Killer</a></i></td><td>Mr. Crowley</td><td></td></tr><tr><td><i><a href="/wiki/Donald_Trump%27s_The_Art_of_the_Deal:_The_Movie" title="Donald Trump&#39;s The Art of the Deal: The Movie">Donald Trump's The Art of the Deal: The Movie</a></i></td><td>Dr. Emmett "Doc" Brown</td><td>Cameo</td></tr><tr><td><i><a href="/wiki/Cold_Moon_(2016_film)" title="Cold Moon (2016 film)">Cold Moon</a></i></td><td>James Redfield</td><td></td></tr><tr><td rowspan="3">2017</td><td><i><a href="/wiki/Going_in_Style_(2017_film)" title="Going in Style (2017 film)">Going in Style</a></i></td><td>Milton Kupchak</td><td></td></tr><tr><td><i><a href="/wiki/Muse_(2017_film)" title="Muse (2017 film)">Muse</a></i></td><td>Bernard Rauschen</td><td></td></tr><tr><td data-sort-value="Sound, The"><i><a href="/wiki/The_Sound_(film)" title="The Sound (film)">The Sound</a></i></td><td>Clinton Jones</td><td></td></tr><tr><td rowspan="3">2018</td><td><i><a href="/wiki/Boundaries_(2018_film)" title="Boundaries (2018 film)">Boundaries</a></i></td><td>Stanley</td><td></td></tr><tr><td><i><a href="/wiki/Making_a_Killing" title="Making a Killing">Making a Killing</a></i></td><td>Lloyd Mickey</td><td></td></tr><tr><td><i><a href="/wiki/Rerun_(film)" title="Rerun (film)">Rerun</a></i></td><td>Future George Benson</td><td><sup id="cite_ref-59" class="reference"><a href="#cite_note-59"><span class="cite-bracket">&#91;</span>59<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>2019</td><td data-sort-value="Haunted Swordsman, The"><i>The Haunted Swordsman</i></td><td>The Black Monk</td><td>Voice; short subject<sup id="cite_ref-60" class="reference"><a href="#cite_note-60"><span class="cite-bracket">&#91;</span>60<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="4">2021</td><td><i><a href="/wiki/Nobody_(2021_film)" title="Nobody (2021 film)">Nobody</a></i></td><td>David Mansell</td><td></td></tr><tr><td><i><a href="/wiki/Senior_Moment" title="Senior Moment">Senior Moment</a></i></td><td>Sal Spinelli</td><td><sup id="cite_ref-61" class="reference"><a href="#cite_note-61"><span class="cite-bracket">&#91;</span>61<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-62" class="reference"><a href="#cite_note-62"><span class="cite-bracket">&#91;</span>62<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Queen_Bees_(film)" title="Queen Bees (film)">Queen Bees</a></i></td><td>Arthur Lane</td><td></td></tr><tr><td data-sort-value="Tender Bar, The"><i><a href="/wiki/The_Tender_Bar_(film)" title="The Tender Bar (film)">The Tender Bar</a></i></td><td>Grandpa Moehringer</td><td></td></tr><tr><td rowspan="2">2022</td><td><i><a href="/wiki/Spirit_Halloween:_The_Movie" title="Spirit Halloween: The Movie">Spirit Halloween: The Movie</a></i></td><td>Alec Windsor</td><td><sup id="cite_ref-Panaligan_2022_35-2" class="reference"><a href="#cite_note-Panaligan_2022-35"><span class="cite-bracket">&#91;</span>35<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-Yossman_2022_36-1" class="reference"><a href="#cite_note-Yossman_2022-36"><span class="cite-bracket">&#91;</span>36<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Tankhouse_(film)" title="Tankhouse (film)">Tankhouse</a></i></td><td>Buford</td><td><sup id="cite_ref-63" class="reference"><a href="#cite_note-63"><span class="cite-bracket">&#91;</span>63<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-64" class="reference"><a href="#cite_note-64"><span class="cite-bracket">&#91;</span>64<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-65" class="reference"><a href="#cite_note-65"><span class="cite-bracket">&#91;</span>65<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="3">2023</td><td><i><a href="/wiki/Self_Reliance_(film)" title="Self Reliance (film)">Self Reliance</a></i></td><td>Dennis Walcott</td><td><sup id="cite_ref-66" class="reference"><a href="#cite_note-66"><span class="cite-bracket">&#91;</span>66<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Nandor_Fodor_and_the_Talking_Mongoose" title="Nandor Fodor and the Talking Mongoose">Nandor Fodor and the Talking Mongoose</a></i></td><td>Dr. <a href="/wiki/Harry_Price" title="Harry Price">Harry Price</a></td><td></td></tr><tr><td><i><a href="/wiki/Camp_Hideout" title="Camp Hideout">Camp Hideout</a></i></td><td>Falco</td><td></td></tr><tr><td rowspan="2">2024</td><td><i><a href="/wiki/Man_and_Witch:_The_Dance_of_a_Thousand_Steps" title="Man and Witch: The Dance of a Thousand Steps">Man and Witch: The Dance of a Thousand Steps</a></i></td><td>Alchemist</td><td></td></tr><tr><td><i><a href="/wiki/Guns_%26_Moses" title="Guns &amp; Moses">Guns &amp; Moses</a></i></td><td>Sol Fassbinder</td><td></td></tr><tr><td>2025</td><td><i><a href="/wiki/Nobody_2" title="Nobody 2">Nobody 2</a></i></td><td>David Mansell</td><td><sup id="cite_ref-67" class="reference"><a href="#cite_note-67"><span class="cite-bracket">&#91;</span>67<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>TBA</td><td data-sort-value="Movers, The"><i><a href="/wiki/The_Movers" title="The Movers">The Movers</a></i></td><td>Henry Solomon</td><td>Post-production</td></tr></tbody></table><div class="mw-heading mw-heading3"><h3 id="Television">Television</h3></div><table class="wikitable sortable"><tbody><tr style="background:#b0c4de; text-align:center;"><th>Year</th><th>Title</th><th>Role</th><th class="unsortable">Notes</th></tr><tr><td>1976</td><td data-sort-value="Adams Chronicles, The"><i><a href="/wiki/The_Adams_Chronicles" title="The Adams Chronicles">The Adams Chronicles</a></i></td><td><a href="/wiki/Alexander_I_of_Russia" title="Alexander I of Russia">Tsar Alexandre</a></td><td>Episode: "Chapter VIII: <a href="/wiki/John_Quincy_Adams" title="John Quincy Adams">John Quincy Adams</a>, Secretary of State"</td></tr><tr><td rowspan="2">1978</td><td><i>Lacy and the Mississippi Queen</i></td><td>Jennings</td><td>Television film<sup id="cite_ref-TCM_50-2" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td data-sort-value="Word, The"><i><a href="/wiki/The_Word_(TV_miniseries)" class="mw-redirect" title="The Word (TV miniseries)">The Word</a></i></td><td>Hans Bogardus</td><td><a href="/wiki/Miniseries" title="Miniseries">Television miniseries</a></td></tr><tr><td>1978–1979</td><td><i><a href="/wiki/Barney_Miller" title="Barney Miller">Barney Miller</a></i></td><td>Arnold Scully / Vincent Carew</td><td>2 episodes</td></tr><tr><td>1978–1983</td><td><i><a href="/wiki/Taxi_(TV_series)" title="Taxi (TV series)">Taxi</a></i></td><td>Reverend <a href="/wiki/Jim_Ignatowski" title="Jim Ignatowski">Jim Ignatowski</a></td><td>84 episodes</td></tr><tr><td>1979</td><td><i>Stunt Seven</i> a.k.a. <i>The Fantastic Seven</i></td><td>Skip Hartman</td><td>Television film<sup id="cite_ref-68" class="reference"><a href="#cite_note-68"><span class="cite-bracket">&#91;</span>68<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-69" class="reference"><a href="#cite_note-69"><span class="cite-bracket">&#91;</span>69<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="3">1982</td><td><i><a href="/wiki/Best_of_the_West" title="Best of the West">Best of the West</a></i></td><td>The Calico Kid</td><td>3 episodes</td></tr><tr><td><i><a href="/wiki/American_Playhouse" title="American Playhouse">American Playhouse</a></i></td><td>Paul</td><td>Episode: "Pilgrim, Farewell"</td></tr><tr><td><i><a href="/wiki/Money_on_the_Side" title="Money on the Side">Money on the Side</a></i></td><td>Sergeant Stampone</td><td>Television film</td></tr><tr><td>1983</td><td><i>September Gun</i></td><td>Jack Brian</td><td>Television film<sup id="cite_ref-TCM_50-3" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="3">1984</td><td><i><a href="/wiki/Cheers" title="Cheers">Cheers</a></i></td><td>Phillip Semenko</td><td>2 episodes</td></tr><tr><td><i>Old Friends</i></td><td>Jerry Forbes</td><td>Pilot<sup id="cite_ref-TCM_50-4" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td data-sort-value="Cowboy and the Ballerina, The"><i>The Cowboy and the Ballerina</i></td><td>Woody</td><td>Television film<sup id="cite_ref-TCM_50-5" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>1985</td><td><i><a href="/wiki/Street_Hawk" title="Street Hawk">Street Hawk</a></i></td><td>Anthony Corrido</td><td>Episode: "Pilot"</td></tr><tr><td>1986</td><td><i><a href="/wiki/Amazing_Stories_(1985_TV_series)" title="Amazing Stories (1985 TV series)">Amazing Stories</a></i></td><td>Prof. Beanes</td><td>Episode: "Go to the Head of the Class"</td></tr><tr><td>1987</td><td><i><a href="/wiki/Tales_from_the_Hollywood_Hills:_Pat_Hobby_Teamed_with_Genius" title="Tales from the Hollywood Hills: Pat Hobby Teamed with Genius">Tales from the Hollywood Hills: <br /> Pat Hobby Teamed with Genius</a></i></td><td>Pat Hobby</td><td>Television film</td></tr><tr><td>1990</td><td data-sort-value="Earth Day Special, The"><i><a href="/wiki/The_Earth_Day_Special" title="The Earth Day Special">The Earth Day Special</a></i></td><td><a href="/wiki/Emmett_Brown" title="Emmett Brown">Dr. Emmett "Doc" Brown</a></td><td>Television special<sup id="cite_ref-70" class="reference"><a href="#cite_note-70"><span class="cite-bracket">&#91;</span>70<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>1991–1992</td><td><i><a href="/wiki/Back_to_the_Future_(TV_series)" title="Back to the Future (TV series)">Back to the Future: The Animated Series</a></i></td><td>Dr. Emmett "Doc" Brown</td><td>Live action; 26 episodes</td></tr><tr><td rowspan="3">1992</td><td><i><a href="/wiki/T_Bone_N_Weasel" title="T Bone N Weasel">T Bone N Weasel</a></i></td><td>William "Weasel" Weasler</td><td>Television film</td></tr><tr><td><i><a href="/wiki/Dead_Ahead:_The_Exxon_Valdez_Disaster" title="Dead Ahead: The Exxon Valdez Disaster">Dead Ahead: The Exxon Valdez Disaster</a></i></td><td>Frank Iarossi</td><td>Television film</td></tr><tr><td><i><a href="/wiki/Road_to_Avonlea" title="Road to Avonlea">Road to Avonlea</a></i></td><td>Alistair Dimple</td><td>Episode: "Another Point of View"</td></tr><tr><td>1994</td><td><i><a href="/wiki/In_Search_of_Dr._Seuss" title="In Search of Dr. Seuss">In Search of Dr. Seuss</a></i></td><td>Mr. Hunch</td><td>Television film</td></tr><tr><td rowspan="2">1995</td><td><i><a href="/wiki/Fallen_Angels_(American_TV_series)" title="Fallen Angels (American TV series)">Fallen Angels</a></i></td><td><a href="/wiki/The_Continental_Op" title="The Continental Op">The Continental Op</a></td><td>Episode: "Fly Paper"</td></tr><tr><td><i><a href="/wiki/Rent-a-Kid" title="Rent-a-Kid">Rent-a-Kid</a></i></td><td>Lawrence 'Larry' Kayvey</td><td>Television film</td></tr><tr><td>1995–1996</td><td><i><a href="/wiki/Deadly_Games_(TV_series)" title="Deadly Games (TV series)">Deadly Games</a></i></td><td>Sebastian Jackal / <br /> Jordan Kenneth Lloyd</td><td>13 episodes</td></tr><tr><td>1996</td><td data-sort-value="Right to Remain Silent, The"><i><a href="/wiki/The_Right_to_Remain_Silent" title="The Right to Remain Silent">The Right to Remain Silent</a></i></td><td>Johnny Benjamin</td><td>Television film</td></tr><tr><td rowspan="2">1997</td><td><i><a href="/wiki/Quicksilver_Highway" title="Quicksilver Highway">Quicksilver Highway</a></i></td><td>Aaron Quicksilver</td><td>Television film</td></tr><tr><td><i><a href="/wiki/Angels_in_the_Endzone" title="Angels in the Endzone">Angels in the Endzone</a></i></td><td>Al "The Boss" Angel</td><td>Television film</td></tr><tr><td>1998</td><td data-sort-value="Ransom of Red Chief, The"><i>The Ransom of Red Chief</i></td><td>Sam Howard</td><td>Television film<sup id="cite_ref-TCM_50-6" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="3">1999</td><td><i><a href="/wiki/Spin_City" title="Spin City">Spin City</a></i></td><td>Owen Kingston</td><td>Episode: "Back to the Future IV"</td></tr><tr><td><i><a href="/wiki/Alice_in_Wonderland_(1999_film)" title="Alice in Wonderland (1999 film)">Alice in Wonderland</a></i></td><td><a href="/wiki/White_Knight_(Through_the_Looking-Glass)" title="White Knight (Through the Looking-Glass)">The White Knight</a></td><td>Television film</td></tr><tr><td><i><a href="/wiki/It_Came_from_the_Sky" title="It Came from the Sky">It Came from the Sky</a></i></td><td>Jarvis Moody</td><td>Television film</td></tr><tr><td rowspan="4">2001</td><td data-sort-value="Tick, The"><i><a href="/wiki/The_Tick_(2001_TV_series)" title="The Tick (2001 TV series)">The Tick</a></i></td><td>Mr. Fishladder</td><td>Uncredited<br />Episode: "Pilot"</td></tr><tr><td><i><a href="/wiki/Wit_(film)" title="Wit (film)">Wit</a></i></td><td>Dr. Harvey Kelekian</td><td>Television film</td></tr><tr><td><i>Chasing Destiny</i></td><td>Jet James</td><td>Television film</td></tr><tr><td><i><a href="/wiki/When_Good_Ghouls_Go_Bad" title="When Good Ghouls Go Bad">When Good Ghouls Go Bad</a></i></td><td>Uncle Fred Walker</td><td>Television film</td></tr><tr><td>2002–present</td><td><i><a href="/wiki/Cyberchase" title="Cyberchase">Cyberchase</a></i></td><td>The Hacker</td><td>Voice, 134 episodes<sup id="cite_ref-btva_48-11" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">2002</td><td><i><a href="/wiki/Malcolm_in_the_Middle" title="Malcolm in the Middle">Malcolm in the Middle</a></i></td><td>Walter</td><td>Episode: "<a href="/wiki/List_of_Malcolm_in_the_Middle_episodes#ep66" title="List of Malcolm in the Middle episodes">Family Reunion</a>"</td></tr><tr><td data-sort-value="Big Time, The"><i>The Big Time</i></td><td>Doc Powers</td><td>Television film</td></tr><tr><td rowspan="2">2003</td><td><i><a href="/wiki/Ed_(TV_series)" title="Ed (TV series)">Ed</a></i></td><td>Burt Kiffle</td><td>Episode: "The Move"</td></tr><tr><td><i><a href="/wiki/Tremors_(TV_series)" title="Tremors (TV series)">Tremors</a></i></td><td>Dr. Cletus Poffenberger</td><td>3 episodes</td></tr><tr><td rowspan="2">2004</td><td data-sort-value="Grim Adventures of Billy &amp; Mandy, The"><i><a href="/wiki/The_Grim_Adventures_of_Billy_%26_Mandy" title="The Grim Adventures of Billy &amp; Mandy">The Grim Adventures of Billy &amp; Mandy</a></i></td><td>Snail</td><td>Voice, episode: "Dumb Luck"</td></tr><tr><td><i><a href="/wiki/I_Dream" title="I Dream">I Dream</a></i></td><td>Prof. Toone</td><td>13 episodes</td></tr><tr><td>2004–2005</td><td><i><a href="/wiki/Clubhouse_(TV_series)" title="Clubhouse (TV series)">Clubhouse</a></i></td><td>Lou Russo</td><td>11 episodes</td></tr><tr><td rowspan="3">2005</td><td data-sort-value="West Wing, The"><i><a href="/wiki/The_West_Wing" title="The West Wing">The West Wing</a></i></td><td>Prof. <a href="/wiki/Lawrence_Lessig" title="Lawrence Lessig">Lawrence Lessig</a></td><td>Episode: "The Wake Up Call"</td></tr><tr><td><i><a href="/wiki/King_of_the_Hill_(TV_series)" class="mw-redirect" title="King of the Hill (TV series)">King of the Hill</a></i></td><td>Smitty</td><td>Voice, episode: "<a href="/wiki/King_of_the_Hill_(season_9)#ep180" class="mw-redirect" title="King of the Hill (season 9)">Care-Takin' Care of Business</a>"</td></tr><tr><td><i>Detectives</i></td><td>Anderson in Launderette</td><td>Television film</td></tr><tr><td>2005–2006</td><td><i><a href="/wiki/Stacked" title="Stacked">Stacked</a></i></td><td>Harold March</td><td>19 episodes</td></tr><tr><td rowspan="2">2006</td><td><i><a href="/wiki/Masters_of_Horror" title="Masters of Horror">Masters of Horror</a></i></td><td>Everett Neely</td><td>Episode: "<a href="/wiki/Valerie_on_the_Stairs" title="Valerie on the Stairs">Valerie on the Stairs</a>"</td></tr><tr><td data-sort-value="Perfect Day, A"><i><a href="/wiki/A_Perfect_Day_(2006_film)" title="A Perfect Day (2006 film)">A Perfect Day</a></i></td><td>Michael</td><td>Television film</td></tr><tr><td>2007</td><td><i><a href="/wiki/Numbers_(TV_series)" title="Numbers (TV series)">Numbers</a></i></td><td>Ross Moore</td><td>Episode: "Graphic"</td></tr><tr><td rowspan="2">2008</td><td><i><a href="/wiki/Live_from_Lincoln_Center" title="Live from Lincoln Center">Live from Lincoln Center</a></i></td><td><a href="/wiki/Pellinore" class="mw-redirect" title="Pellinore">King Pellinore</a></td><td>Episode: "Camelot"</td></tr><tr><td><i><a href="/wiki/Law_%26_Order:_Criminal_Intent" title="Law &amp; Order: Criminal Intent">Law &amp; Order: Criminal Intent</a></i></td><td>Carmine</td><td>Episode: "Vanishing Act"</td></tr><tr><td rowspan="2">2009</td><td><i><a href="/wiki/Meteor_(TV_miniseries)" class="mw-redirect" title="Meteor (TV miniseries)">Meteor</a></i></td><td>Prof. Daniel Lehman</td><td>2 episodes</td></tr><tr><td><i><a href="/wiki/Knights_of_Bloodsteel" title="Knights of Bloodsteel">Knights of Bloodsteel</a></i></td><td>Tesselink</td><td>2 episodes</td></tr><tr><td>2010</td><td><i><a href="/wiki/Chuck_(TV_series)" title="Chuck (TV series)">Chuck</a></i></td><td>Dr. Leo Dreyfus</td><td>Episode: "Chuck versus the Tooth"</td></tr><tr><td rowspan="2">2011</td><td><i><a href="/wiki/Fringe_(TV_series)" title="Fringe (TV series)">Fringe</a></i></td><td>Roscoe Joyce</td><td>Episode: "<a href="/wiki/The_Firefly_(Fringe)" title="The Firefly (Fringe)">The Firefly</a>"</td></tr><tr><td><i>Family Practice</i></td><td>Robert Passion Foote</td><td>Unaired pilot</td></tr><tr><td>2011–2013</td><td><i><a href="/wiki/Robot_Chicken" title="Robot Chicken">Robot Chicken</a></i></td><td>Dr. Emmett "Doc" Brown / <br /> Early Hacker / Schlomo</td><td>Voice, 2 episodes</td></tr><tr><td rowspan="3">2012</td><td><i><a href="/wiki/Dorothy_and_the_Witches_of_Oz" title="Dorothy and the Witches of Oz">Dorothy and the Witches of Oz</a></i></td><td><a href="/wiki/Wizard_of_Oz_(character)" title="Wizard of Oz (character)">Wizard of Oz</a></td><td>Television film</td></tr><tr><td><i><a href="/wiki/R.L._Stine%27s_The_Haunting_Hour" class="mw-redirect" title="R.L. Stine&#39;s The Haunting Hour">R.L. Stine's The Haunting Hour</a></i></td><td>Grandpa</td><td>Episode: "Grampires: Part 1"</td></tr><tr><td><i>Anything But Christmas</i></td><td>Harry</td><td>Television film<sup id="cite_ref-TCM_50-7" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">2013</td><td><i><a href="/wiki/Raising_Hope" title="Raising Hope">Raising Hope</a></i></td><td>Dennis Powers</td><td>Episode: " Credit Where Credit Is Due"</td></tr><tr><td><i><a href="/wiki/Psych" title="Psych">Psych</a></i></td><td>Martin Kahn</td><td>Episode: "100 Clues"</td></tr><tr><td rowspan="4">2014</td><td data-sort-value="Michael J. Fox Show, The"><i><a href="/wiki/The_Michael_J._Fox_Show" title="The Michael J. Fox Show">The Michael J. Fox Show</a></i></td><td>Principal McTavish</td><td>Episode: "Health"</td></tr><tr><td><i><a href="/wiki/Blood_Lake:_Attack_of_the_Killer_Lampreys" title="Blood Lake: Attack of the Killer Lampreys">Blood Lake: Attack of the Killer Lampreys</a></i></td><td>Mayor Akerman</td><td>Television film</td></tr><tr><td><i><a href="/wiki/Zodiac:_Signs_of_the_Apocalypse" title="Zodiac: Signs of the Apocalypse">Zodiac: Signs of the Apocalypse</a></i></td><td>Harry Setag</td><td>Television film</td></tr><tr><td><i><a href="/wiki/Over_the_Garden_Wall" title="Over the Garden Wall">Over the Garden Wall</a></i></td><td>The Woodsman</td><td>Voice, 4 episodes<sup id="cite_ref-btva_48-12" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>2014–2015</td><td><i><a href="/wiki/Granite_Flats" title="Granite Flats">Granite Flats</a></i></td><td>Professor Hargraves</td><td>12 episodes</td></tr><tr><td rowspan="2">2015</td><td data-sort-value="Simpsons, The"><i><a href="/wiki/The_Simpsons" title="The Simpsons">The Simpsons</a></i></td><td>Rev. Jim Ignatowski</td><td>Voice, episode: "<a href="/wiki/My_Fare_Lady" title="My Fare Lady">My Fare Lady</a>"</td></tr><tr><td><i>Just in Time for Christmas</i></td><td>Grandpa Bob</td><td>Television film<sup id="cite_ref-TCM_50-8" class="reference"><a href="#cite_note-TCM-50"><span class="cite-bracket">&#91;</span>50<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>2016</td><td data-sort-value="Big Bang Theory, The"><i><a href="/wiki/The_Big_Bang_Theory" title="The Big Bang Theory">The Big Bang Theory</a></i></td><td>Theodore</td><td>Episode: "The Property Division Collision"</td></tr><tr><td>2017–2018</td><td><i><a href="/wiki/12_Monkeys_(TV_series)" title="12 Monkeys (TV series)">12 Monkeys</a></i></td><td>The Missionary / Zalmon Shaw</td><td>3 episodes</td></tr><tr><td rowspan="2">2018</td><td><i><a href="/wiki/Roseanne" title="Roseanne">Roseanne</a></i></td><td>Lou</td><td>Episode: "No Country for Old Women"</td></tr><tr><td><i><a href="/wiki/Guess_Who_Died" title="Guess Who Died">Guess Who Died</a></i></td><td>Mort</td><td>Unaired pilot</td></tr><tr><td rowspan="2">2019</td><td><i><a href="/wiki/A.P._Bio" title="A.P. Bio">A.P. Bio</a></i></td><td>Melvin</td><td>Episode: "Melvin"</td></tr><tr><td><i><a href="/wiki/Big_City_Greens" title="Big City Greens">Big City Greens</a></i></td><td><a href="/wiki/Santa_Claus" title="Santa Claus">Santa Claus</a></td><td>Voice, episode: "Green Christmas"</td></tr><tr><td rowspan="2">2020</td><td><i><a href="/wiki/Prop_Culture" title="Prop Culture">Prop Culture</a></i></td><td>Self</td><td>Episode: "Who Framed Roger Rabbit"</td></tr><tr><td><i><a href="/wiki/NCIS_(TV_series)" title="NCIS (TV series)">NCIS</a></i></td><td>Joseph "Joe" Smith</td><td>Episode: "The <i>Arizona</i>"</td></tr><tr><td>2021</td><td><i>Next Stop, Christmas</i></td><td>Train Conductor</td><td>Hallmark television film</td></tr><tr><td>2022</td><td data-sort-value="Conners, The"><i><a href="/wiki/The_Conners" title="The Conners">The Conners</a></i></td><td>Lou</td><td>Episode: "The Best Laid Plans, A Contrabassoon and A Sinking Feeling"</td></tr><tr><td rowspan="2">2023</td><td data-sort-value="Mandalorian, The"><i><a href="/wiki/The_Mandalorian" title="The Mandalorian">The Mandalorian</a></i></td><td>Commissioner Helgait</td><td>Episode: "<a href="/wiki/Chapter_22:_Guns_for_Hire" class="mw-redirect" title="Chapter 22: Guns for Hire">Chapter 22: Guns for Hire</a>"</td></tr><tr><td data-sort-value="Million Little Things, A"><i><a href="/wiki/A_Million_Little_Things" title="A Million Little Things">A Million Little Things</a></i></td><td>Himself</td><td>Episode: "Father's Day"</td></tr><tr><td rowspan="2">2024</td><td><i><a href="/wiki/Knuckles_(TV_series)" title="Knuckles (TV series)">Knuckles</a></i></td><td>Pachacamac</td><td>Voice, 2 episodes<sup id="cite_ref-71" class="reference"><a href="#cite_note-71"><span class="cite-bracket">&#91;</span>71<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Hacks_(TV_series)" title="Hacks (TV series)">Hacks</a></i></td><td>Larry Arbuckle</td><td>Episode: "The Deborah Vance Christmas Spectacular"</td></tr><tr><td rowspan="2">2025</td><td><i><a href="/wiki/Everybody%27s_Live_with_John_Mulaney" title="Everybody&#39;s Live with John Mulaney">Everybody's Live with John Mulaney</a></i></td><td><a href="/wiki/Willy_Loman" title="Willy Loman">Willy Loman</a> / Himself</td><td>Episode: "Lending People Money"</td></tr><tr><td><i><a href="/wiki/Wednesday_(TV_series)" title="Wednesday (TV series)">Wednesday</a></i></td><td>Professor Orloff</td><td>4 episodes<sup id="cite_ref-72" class="reference"><a href="#cite_note-72"><span class="cite-bracket">&#91;</span>72<span class="cite-bracket">&#93;</span></a></sup></td></tr></tbody></table><div class="mw-heading mw-heading3"><h3 id="Theatre">Theatre</h3></div><table class="wikitable sortable"><tbody><tr style="background:#b0c4de; text-align:center;"><th>Year</th><th>Title</th><th>Role</th><th>Venue</th></tr><tr><td>1961</td><td><i>And They Put Handcuffs on Flowers</i></td><td></td><td>New York</td></tr><tr><td>1969</td><td><i><a href="/wiki/Red,_White_and_Maddox" title="Red, White and Maddox">Red, White and Maddox</a></i></td><td>Bombardier</td><td><a href="/wiki/James_Earl_Jones_Theatre" title="James Earl Jones Theatre">Cort Theatre</a>, Broadway</td></tr><tr><td rowspan="2">1973</td><td><i><a href="/wiki/Kaspar_(play)" title="Kaspar (play)">Kaspar</a></i></td><td><a href="/wiki/Kaspar_Hauser" title="Kaspar Hauser">Kaspar</a></td><td><a href="/wiki/Chelsea_Theater_Center" title="Chelsea Theater Center">Chelsea Theater Center</a>, Off-Broadway</td></tr><tr><td><i><a href="/wiki/The_Seagull" title="The Seagull">The Seagull</a></i></td><td>Konstantin Treplev</td><td><a href="/wiki/Roundabout_Theatre_Company" title="Roundabout Theatre Company">Roundabout Stage II</a>, Off-Broadway</td></tr><tr><td rowspan="3">1974</td><td><i><a href="/wiki/Macbeth" title="Macbeth">Macbeth</a></i></td><td><a href="/wiki/Banquo" title="Banquo">Banquo</a> / Cathness</td><td><a href="/wiki/Mitzi_E._Newhouse_Theater" class="mw-redirect" title="Mitzi E. Newhouse Theater">Mitzi E. Newhouse Theater</a>, Off-Broadway</td></tr><tr><td><i>Total Eclipse</i></td><td>Verlaine</td><td><a href="/wiki/Chelsea_Theater_Center" title="Chelsea Theater Center">Chelsea Theater Center</a>, Off-Broadway</td></tr><tr><td><i><a href="/wiki/In_the_Boom_Boom_Room" title="In the Boom Boom Room">In the Boom Boom Room</a></i></td><td>Al</td><td><a href="/wiki/The_Public_Theater" title="The Public Theater">The Public Theater</a>, Off-Broadway</td></tr><tr><td>1977</td><td><i><a href="/wiki/Happy_End_(musical)" title="Happy End (musical)">Happy End</a></i></td><td>Bill Cracker</td><td><a href="/wiki/Martin_Beck_Theatre" class="mw-redirect" title="Martin Beck Theatre">Martin Beck Theatre</a>, Broadway</td></tr><tr><td>1990</td><td data-sort-value="Father, The"><i>The Father</i></td><td>Captain Lassen</td><td><a href="/wiki/American_Repertory_Theater" title="American Repertory Theater">American Repertory Theater</a>, Massachusetts</td></tr><tr><td>1998</td><td><i><a href="/wiki/Waiting_for_Godot" title="Waiting for Godot">Waiting for Godot</a></i></td><td>Pozzo</td><td><a href="/wiki/Classic_Stage_Company" title="Classic Stage Company">CSC Theatre</a>, Off-Broadway</td></tr><tr><td>2001</td><td data-sort-value="Unexpected Man, The"><i><a href="/wiki/The_Unexpected_Man" title="The Unexpected Man">The Unexpected Man</a></i></td><td>Parsky</td><td><a href="/wiki/Geffen_Playhouse" title="Geffen Playhouse">Geffen Playhouse</a>, Los Angeles</td></tr><tr><td rowspan="2">2002</td><td><i><a href="/wiki/Morning%27s_at_Seven" title="Morning&#39;s at Seven">Morning's at Seven</a></i></td><td>Carl Bolton</td><td><a href="/wiki/Lyceum_Theatre_(Broadway)" title="Lyceum Theatre (Broadway)">Broadway</a>, Broadway</td></tr><tr><td><i><a href="/wiki/Twelfth_Night" title="Twelfth Night">Twelfth Night</a></i></td><td><a href="/wiki/Malvolio" title="Malvolio">Malvolio</a></td><td><a href="/wiki/Delacorte_Theatre" class="mw-redirect" title="Delacorte Theatre">Delacorte Theatre</a>, Off-Broadway</td></tr><tr><td>2003</td><td><i>Trumbo: Red, White and Blacklisted</i></td><td><a href="/wiki/Dalton_Trumbo" title="Dalton Trumbo">Dalton Trumbo</a></td><td><a href="/wiki/Westside_Theatre" title="Westside Theatre">Westside Theatre</a>, Off-Broadway</td></tr><tr><td>2008</td><td><i><a href="/wiki/Camelot_(musical)" title="Camelot (musical)">Camelot</a></i></td><td>Pellinore</td><td><a href="/wiki/Avery_Fisher_Hall" class="mw-redirect" title="Avery Fisher Hall">Avery Fisher Hall</a></td></tr><tr><td>2008</td><td data-sort-value="Christmas Carol, A"><i><a href="/wiki/A_Christmas_Carol" title="A Christmas Carol">A Christmas Carol</a></i></td><td><a href="/wiki/Ebeneezer_Scrooge" class="mw-redirect" title="Ebeneezer Scrooge">Scrooge</a></td><td><a href="/wiki/Kodak_Theatre" class="mw-redirect" title="Kodak Theatre">Kodak Theatre</a>, Los Angeles</td></tr><tr><td>2010</td><td><i><a href="/wiki/Death_of_a_Salesman" title="Death of a Salesman">Death of a Salesman</a></i></td><td><a href="/wiki/Willy_Loman" title="Willy Loman">Willy Loman</a></td><td><a href="/wiki/Weston_Playhouse_Theatre_Company" title="Weston Playhouse Theatre Company">Weston Playhouse</a>, Vermont</td></tr><tr><td>2013</td><td data-sort-value="Caucasian Chalk Circle, The"><i><a href="/wiki/The_Caucasian_Chalk_Circle" title="The Caucasian Chalk Circle">The Caucasian Chalk Circle</a></i></td><td>The Singer / Azdak</td><td><a href="/wiki/Classic_Stage_Company" title="Classic Stage Company">CSC Theatre</a>, Off-Broadway</td></tr><tr><td>2018</td><td><i><a href="/wiki/Our_Town" title="Our Town">Our Town</a></i></td><td>Stage Manager</td><td><a href="/wiki/Weston_Playhouse_Theatre_Company" title="Weston Playhouse Theatre Company">Weston Playhouse</a>, Vermont</td></tr><tr><td>2018</td><td><i>Pound</i></td><td>Ezra Pound</td><td><a href="/wiki/Theatre_Row_Building" title="Theatre Row Building">Theatre Row</a>, Off-Broadway</td></tr><tr><td>2021</td><td><i><a href="/wiki/King_Lear" title="King Lear">King Lear</a></i></td><td><a href="/wiki/Leir_of_Britain" title="Leir of Britain">King Lear</a></td><td><a href="/wiki/Shakespeare_%26_Company_(Massachusetts)" title="Shakespeare &amp; Company (Massachusetts)">New Spruce Theater</a>, Lenox, Massachusetts</td></tr></tbody></table><div class="mw-heading mw-heading3"><h3 id="Video_games">Video games</h3></div><table class="wikitable sortable"><tbody><tr style="background:#b0c4de; text-align:center;"><th>Year</th><th>Title</th><th>Role</th><th class="unsortable">Notes</th></tr><tr><td>1994</td><td><i><a href="/wiki/Redwood_Games" class="mw-redirect" title="Redwood Games">Rescue the Scientists</a></i></td><td>Lieutenant Jack Tempus</td><td>Also likeness</td></tr><tr><td>1996</td><td><i><a href="/wiki/Toonstruck" title="Toonstruck">Toonstruck</a></i></td><td>Drew Blanc</td><td>Also likeness and live action sequences<sup id="cite_ref-btva_48-13" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td>2006</td><td><i><a href="/wiki/List_of_Back_to_the_Future_video_games" title="List of Back to the Future video games">Back to the Future Video Slots</a></i></td><td rowspan="4">Dr. Emmett "Doc" Brown</td><td><i><sup id="cite_ref-btva_48-14" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></i></td></tr><tr><td>2010–2011</td><td><i><a href="/wiki/Back_to_the_Future:_The_Game" title="Back to the Future: The Game">Back to the Future: The Game</a></i></td><td><i><sup id="cite_ref-btva_48-15" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></i></td></tr><tr><td>2013</td><td><i><a href="/wiki/List_of_Back_to_the_Future_video_games" title="List of Back to the Future video games">Back to the Future Back in Time Video Slots</a></i></td><td></td></tr><tr><td rowspan="2">2015</td><td><i><a href="/wiki/Lego_Dimensions" title="Lego Dimensions">Lego Dimensions</a></i></td><td><sup id="cite_ref-73" class="reference"><a href="#cite_note-73"><span class="cite-bracket">&#91;</span>73<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-74" class="reference"><a href="#cite_note-74"><span class="cite-bracket">&#91;</span>74<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/King%27s_Quest_(2015_video_game)" title="King&#39;s Quest (2015 video game)">King's Quest</a></i></td><td>Elderly King Graham</td><td><sup id="cite_ref-75" class="reference"><a href="#cite_note-75"><span class="cite-bracket">&#91;</span>75<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td rowspan="2">2020</td><td><i><a href="/wiki/Kingdom_Hearts_III" title="Kingdom Hearts III">Kingdom Hearts III</a> Re:Mind</i></td><td rowspan="2"><a href="/wiki/Xehanort" title="Xehanort">Xehanort</a></td><td><sup id="cite_ref-btva_48-16" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr><tr><td><i><a href="/wiki/Kingdom_Hearts:_Melody_of_Memory" title="Kingdom Hearts: Melody of Memory">Kingdom Hearts: Melody of Memory</a></i></td><td><sup id="cite_ref-btva_48-17" class="reference"><a href="#cite_note-btva-48"><span class="cite-bracket">&#91;</span>48<span class="cite-bracket">&#93;</span></a></sup></td></tr></tbody></table><div class="mw-heading mw-heading3"><h3 id="Music_videos">Music videos</h3></div><table class="wikitable"><tbody><tr style="background:#b0c4de; text-align:center;"><th>Year</th><th>Artist</th><th>Title</th><th>Role</th></tr><tr><td>1985</td><td><a href="/wiki/Huey_Lewis_and_the_News" title="Huey Lewis and the News">Huey Lewis and the News</a></td><td align="left">"<a href="/wiki/The_Power_of_Love_(Huey_Lewis_and_the_News_song)" title="The Power of Love (Huey Lewis and the News song)">The Power of Love</a>"</td><td rowspan="2">Dr. Emmett "Doc" Brown</td></tr><tr><td>2008</td><td>O'Neal McKnight</td><td>"Check Your Coat"</td></tr></tbody></table><div class="mw-heading mw-heading3"><h3 id="Other">Other</h3></div><table class="wikitable sortable"><tbody><tr><th>Year</th><th>Title</th><th>Role</th><th class="unsortable">Notes</th></tr><tr><td>1990</td><td><i><a href="/wiki/Back_to_the_Future:_The_Pinball" title="Back to the Future: The Pinball">Back to the Future: The Pinball</a></i></td><td rowspan="3"><a href="/wiki/Emmett_Brown" title="Emmett Brown">Dr. Emmett "Doc" Brown</a></td><td><a href="/wiki/Pinball_machine" class="mw-redirect" title="Pinball machine">Pinball machine</a></td></tr><tr><td>1991</td><td><i><a href="/wiki/Back_to_the_Future:_The_Ride" title="Back to the Future: The Ride">Back to the Future: The Ride</a></i></td><td rowspan="2"><a href="/wiki/Simulator_ride" title="Simulator ride">Simulator ride</a></td></tr><tr><td>2008</td><td data-sort-value="Simpsons Ride, The"><i><a href="/wiki/The_Simpsons_Ride" title="The Simpsons Ride">The Simpsons Ride</a></i></td></tr><tr><td>2010</td><td><i><a href="/wiki/Nostalgia_Critic" title="Nostalgia Critic">Nostalgia Critic</a></i></td><td>Himself</td><td><a href="/wiki/Web_series" title="Web series">Web series</a>; episode: "Bio-Dome"</td></tr></tbody></table><div class="mw-heading mw-heading2"><h2 id="Awards">Awards</h2></div><table class="wikitable"><tbody><tr><th>Year</th><th>Award</th><th>Category</th><th>Production / Role</th><th>Result</th></tr><tr><td rowspan="2">1973</td><td><a href="/wiki/Obie_Award" title="Obie Award">Obie Award</a></td><td>Distinguished Performance<sup id="cite_ref-76" class="reference"><a href="#cite_note-76"><span class="cite-bracket">&#91;</span>76<span class="cite-bracket">&#93;</span></a></sup></td><td rowspan="2"><i><a href="/wiki/Kaspar_(play)" title="Kaspar (play)">Kaspar</a></i></td><td rowspan="4" style="background: #9EFF9E; color: #000; vertical-align: middle; text-align: center;" class="yes table-yes2 notheme">Won</td></tr><tr><td><a href="/wiki/Drama_Desk_Award" class="mw-redirect" title="Drama Desk Award">Drama Desk Award</a></td><td>Best Performance</td></tr><tr><td>1982</td><td rowspan="2"><a href="/wiki/Primetime_Emmy_Award" class="mw-redirect" title="Primetime Emmy Award">Primetime Emmy Award</a></td><td rowspan="2"><a href="/wiki/Primetime_Emmy_Award_for_Outstanding_Supporting_Actor_in_a_Comedy_Series" title="Primetime Emmy Award for Outstanding Supporting Actor in a Comedy Series">Outstanding Supporting Actor in a Comedy Series</a><sup id="cite_ref-emmys_16-2" class="reference"><a href="#cite_note-emmys-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup></td><td rowspan="2"><i><a href="/wiki/Taxi_(TV_series)" title="Taxi (TV series)">Taxi</a></i></td></tr><tr><td>1983</td></tr><tr><td>1986</td><td rowspan="2"><a href="/wiki/Saturn_Award" class="mw-redirect" title="Saturn Award">Saturn Award</a></td><td rowspan="2"><a href="/wiki/Saturn_Award_for_Best_Supporting_Actor" title="Saturn Award for Best Supporting Actor">Best Supporting Actor</a></td><td><i><a href="/wiki/Back_to_the_Future" title="Back to the Future">Back to the Future</a></i></td><td rowspan="2" style="background: #FFE3E3; color: black; vertical-align: middle; text-align: center;" class="no table-no2 notheme">Nominated</td></tr><tr><td>1990</td><td><i><a href="/wiki/Who_Framed_Roger_Rabbit" title="Who Framed Roger Rabbit">Who Framed Roger Rabbit</a></i></td></tr><tr><td>1992</td><td><a href="/wiki/Primetime_Emmy_Award" class="mw-redirect" title="Primetime Emmy Award">Primetime Emmy Award</a></td><td><a href="/wiki/Primetime_Emmy_Award_for_Outstanding_Lead_Actor_in_a_Drama_Series" title="Primetime Emmy Award for Outstanding Lead Actor in a Drama Series">Outstanding Lead Actor in a Drama Series</a><sup id="cite_ref-emmys_16-3" class="reference"><a href="#cite_note-emmys-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup></td><td><i><a href="/wiki/Road_to_Avonlea" title="Road to Avonlea">Road to Avonlea</a></i><small>(Episode: "<a href="/wiki/List_of_Road_to_Avonlea_episodes" title="List of Road to Avonlea episodes">Another Point of View</a>")</small></td><td rowspan="2" style="background: #9EFF9E; color: #000; vertical-align: middle; text-align: center;" class="yes table-yes2 notheme">Won</td></tr><tr><td>1994</td><td><a href="/wiki/Independent_Spirit_Awards" class="mw-redirect" title="Independent Spirit Awards">Independent Spirit Awards</a></td><td><a href="/wiki/Independent_Spirit_Award_for_Best_Supporting_Male" title="Independent Spirit Award for Best Supporting Male">Best Supporting Male</a><sup id="cite_ref-77" class="reference"><a href="#cite_note-77"><span class="cite-bracket">&#91;</span>77<span class="cite-bracket">&#93;</span></a></sup></td><td><i><a href="/wiki/Twenty_Bucks" title="Twenty Bucks">Twenty Bucks</a></i></td></tr><tr><td>2008</td><td><a href="/wiki/Daytime_Emmy_Awards" title="Daytime Emmy Awards">Daytime Emmy Awards</a></td><td><a href="/wiki/Daytime_Emmy_Award_for_Outstanding_Performer_In_An_Animated_Program" class="mw-redirect" title="Daytime Emmy Award for Outstanding Performer In An Animated Program">Outstanding Performer in an Animated Program</a></td><td><i><a href="/wiki/Cyberchase" title="Cyberchase">Cyberchase</a></i></td><td rowspan="4" style="background: #FFE3E3; color: black; vertical-align: middle; text-align: center;" class="no table-no2 notheme">Nominated</td></tr><tr><td>2013</td><td><a href="/wiki/Golden_Raspberry_Awards" title="Golden Raspberry Awards">Golden Raspberry Awards</a></td><td><a href="/wiki/Golden_Raspberry_Award_for_Worst_Screen_Couple/Ensemble" class="mw-redirect" title="Golden Raspberry Award for Worst Screen Couple/Ensemble">Worst Screen Ensemble</a><small>(shared with the entire cast)</small><sup id="cite_ref-78" class="reference"><a href="#cite_note-78"><span class="cite-bracket">&#91;</span>78<span class="cite-bracket">&#93;</span></a></sup></td><td><i><a href="/wiki/The_Oogieloves_in_the_Big_Balloon_Adventure" title="The Oogieloves in the Big Balloon Adventure">The Oogieloves in the Big Balloon Adventure</a></i></td></tr><tr><td>2015</td><td><a href="/wiki/Daytime_Emmy_Awards" title="Daytime Emmy Awards">Daytime Emmy Awards</a></td><td><a href="/wiki/Daytime_Emmy_Award_for_Outstanding_Performer_In_An_Animated_Program" class="mw-redirect" title="Daytime Emmy Award for Outstanding Performer In An Animated Program">Outstanding Performer in an Animated Program</a></td><td><i><a href="/wiki/Cyberchase" title="Cyberchase">Cyberchase</a></i></td></tr><tr><td rowspan="2">2016</td><td><a href="/wiki/British_Independent_Film_Awards" title="British Independent Film Awards">British Independent Film Awards</a></td><td><a href="/wiki/BIFA_Award_for_Best_Supporting_Actor" class="mw-redirect" title="BIFA Award for Best Supporting Actor">Best Supporting Actor</a><sup id="cite_ref-79" class="reference"><a href="#cite_note-79"><span class="cite-bracket">&#91;</span>79<span class="cite-bracket">&#93;</span></a></sup></td><td><i><a href="/wiki/I_Am_Not_a_Serial_Killer_(film)" title="I Am Not a Serial Killer (film)">I Am Not a Serial Killer</a></i></td></tr><tr><td>NAVGTR Awards</td><td>Performance in a Comedy, Lead<sup id="cite_ref-80" class="reference"><a href="#cite_note-80"><span class="cite-bracket">&#91;</span>80<span class="cite-bracket">&#93;</span></a></sup></td><td><i><a href="/wiki/King%27s_Quest_(2015_video_game)#Chapter_V:_The_Good_Knight" title="King&#39;s Quest (2015 video game)">King's Quest: The Good Knight</a></i></td><td style="background: #9EFF9E; color: #000; vertical-align: middle; text-align: center;" class="yes table-yes2 notheme">Won</td></tr><tr><td>2024</td><td><a href="/wiki/Primetime_Emmy_Award" class="mw-redirect" title="Primetime Emmy Award">Primetime Emmy Award</a></td><td><a href="/wiki/Primetime_Emmy_Award_for_Outstanding_Guest_Actor_in_a_Comedy_Series" title="Primetime Emmy Award for Outstanding Guest Actor in a Comedy Series">Outstanding Guest Actor in a Comedy Series</a><sup id="cite_ref-emmys_16-4" class="reference"><a href="#cite_note-emmys-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup></td><td><i><a href="/wiki/Hacks_(TV_series)" title="Hacks (TV series)">Hacks</a></i><small>(Episode: "The Deborah Vance Christmas Spectacular")</small></td><td style="background: #FFE3E3; color: black; vertical-align: middle; text-align: center;" class="no table-no2 notheme">Nominated</td></tr></tbody></table><div class="mw-heading mw-heading2"><h2 id="References">References</h2></div><style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"><div class="mw-references-wrap mw-references-columns"><ol class="references"><li id="cite_note-biography.com-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-biography.com_1-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-biography.com_1-1"><sup><i><b>b</b></i></sup></a><a href="#cite_ref-biography.com_1-2"><sup><i><b>c</b></i></sup></a></span><span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.biography.com/people/christopher-lloyd-21215619">"Christopher Lloyd Biography: Actor (1938–)"</a>. <i><a href="/wiki/Biography.com" class="mw-redirect" title="Biography.com">Biography.com</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160414130339/http://www.biography.com/people/christopher-lloyd-21215619">Archived</a> from the original on April 14, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">November 1,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Biography.com&amp;rft.atitle=Christopher+Lloyd+Biography%3A+Actor+%281938%E2%80%93%29&amp;rft_id=http%3A%2F%2Fwww.biography.com%2Fpeople%2Fchristopher-lloyd-21215619&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFCroft2013" class="citation web cs1">Croft, Amy, ed. (Spring 2013). <a rel="nofollow" class="external text" href="http://www.oac.cdlib.org/findaid/ark:/13030/c8jm2c1f/entire_text/">"A guide to the Roger D. Lapham photograph collection, 1892–1956"</a>. San Francisco Maritime National Historical Park via Online Archive of California. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160314042100/http://www.oac.cdlib.org/findaid/ark%3A/13030/c8jm2c1f/entire_text/">Archived</a> from the original on March 14, 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">November 1,</span> 2016</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=A+guide+to+the+Roger+D.+Lapham+photograph+collection%2C+1892%E2%80%931956&amp;rft.pub=San+Francisco+Maritime+National+Historical+Park+via+Online+Archive+of+California&amp;rft.date=2013&amp;rft_id=http%3A%2F%2Fwww.oac.cdlib.org%2Ffindaid%2Fark%3A%2F13030%2Fc8jm2c1f%2Fentire_text%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-NEA-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-NEA_3-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-NEA_3-1"><sup><i><b>b</b></i></sup></a><a href="#cite_ref-NEA_3-2"><sup><i><b>c</b></i></sup></a><a href="#cite_ref-NEA_3-3"><sup><i><b>d</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFLovece1991" class="citation news cs1"><a href="/wiki/Frank_Lovece" title="Frank Lovece">Lovece, Frank</a> (December 2, 1991). <a rel="nofollow" class="external text" href="https://news.google.com/newspapers?nid=1696&amp;dat=19911202&amp;id=PvkaAAAAIBAJ&amp;pg=4437,1085766">"Christopher Lloyd Is as Mysterious as Character"</a>. <i><a href="/wiki/The_Daily_News_(Kentucky)" title="The Daily News (Kentucky)">The Daily News</a></i>. <a href="/wiki/Bowling_Green,_Kentucky" title="Bowling Green, Kentucky">Bowling Green, Kentucky</a>). <a href="/wiki/United_Media" title="United Media">United Media</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+Daily+News&amp;rft.atitle=Christopher+Lloyd+Is+as+Mysterious+as+Character&amp;rft.date=1991-12-02&amp;rft.aulast=Lovece&amp;rft.aufirst=Frank&amp;rft_id=https%3A%2F%2Fnews.google.com%2Fnewspapers%3Fnid%3D1696%26dat%3D19911202%26id%3DPvkaAAAAIBAJ%26pg%3D4437%2C1085766&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1934/06/11/archives/lewis-h-lapham-financier-76-dies-retired-leather-merchant-was-a.html">"Lewis H. Lapham, Financier, 76, Dies; Retired Leather Merchant Was a Founder of Texas Corporation, an Oil Concern"</a>. <i><a href="/wiki/The_New_York_Times" title="The New York Times">The New York Times</a></i>. June 11, 1934<span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>. <q>The near relatives who survive [include] ... two daughters, Mrs. Elinor Ford of Washington, D.C.., and Mrs. Samuel Lloyd of Stamford, Conn., and two sons [including] Roger D. Lapham of San Francisco, president of the American Hawaiian Steamship Company....</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=Lewis+H.+Lapham%2C+Financier%2C+76%2C+Dies%3B+Retired+Leather+Merchant+Was+a+Founder+of+Texas+Corporation%2C+an+Oil+Concern&amp;rft.date=1934-06-11&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1934%2F06%2F11%2Farchives%2Flewis-h-lapham-financier-76-dies-retired-leather-merchant-was-a.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPratt2015" class="citation news cs1">Pratt, Mark (November 26, 2015). <a rel="nofollow" class="external text" href="https://apnews.com/article/0d370c58d0034038b6a16c3f57c22af4">"Meet John Howland, a lucky Pilgrim — and maybe your ancestor"</a>. <i><a href="/wiki/Associated_Press" title="Associated Press">Associated Press</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 1,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Associated+Press&amp;rft.atitle=Meet+John+Howland%2C+a+lucky+Pilgrim+%E2%80%94+and+maybe+your+ancestor&amp;rft.date=2015-11-26&amp;rft.aulast=Pratt&amp;rft.aufirst=Mark&amp;rft_id=https%3A%2F%2Fapnews.com%2Farticle%2F0d370c58d0034038b6a16c3f57c22af4&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://06880danwoog.com/tag/christopher-lloyd/">"Christopher Lloyd"</a>. <i>06880</i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 8,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=06880&amp;rft.atitle=Christopher+Lloyd&amp;rft_id=https%3A%2F%2F06880danwoog.com%2Ftag%2Fchristopher-lloyd%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-NYT060759-7"><span class="mw-cite-backlink">^ <a href="#cite_ref-NYT060759_7-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-NYT060759_7-1"><sup><i><b>b</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation news cs1"><span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1959/06/07/archives/catharine-boyd-attended-by-six-at-hermarriage-church-in-westport-is.html">"Catharine Boyd Attended by Six At Her Marriage"</a></span>. <i>The New York Times</i>. June 7, 1959<span class="reference-accessdate">. Retrieved <span class="nowrap">October 22,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=Catharine+Boyd+Attended+by+Six+At+Her+Marriage&amp;rft.date=1959-06-07&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1959%2F06%2F07%2Farchives%2Fcatharine-boyd-attended-by-six-at-hermarriage-church-in-westport-is.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFBarnes1973" class="citation news cs1"><a href="/wiki/Clive_Barnes" title="Clive Barnes">Barnes, Clive</a> (February 16, 1973). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1973/02/16/archives/theater-handkes-kaspar-is-staged-in-brooklyn-the-cast.html">"Theater: Handke's 'Kaspar' Is Staged in Brooklyn"</a></span>. <i><a href="/wiki/The_New_York_Times" title="The New York Times">The New York Times</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=Theater%3A+Handke%27s+%27Kaspar%27+Is+Staged+in+Brooklyn&amp;rft.date=1973-02-16&amp;rft.aulast=Barnes&amp;rft.aufirst=Clive&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1973%2F02%2F16%2Farchives%2Ftheater-handkes-kaspar-is-staged-in-brooklyn-the-cast.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFBarnes1974" class="citation news cs1">Barnes, Clive (January 24, 1974). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://select.nytimes.com/gst/abstract.html?res=F30817FC3E59127A93C6AB178AD85F408785F9">"Theater: Good 'Seagull'; Chekhov Play Staged by the Roundabout"</a></span>. <i>The New York Times</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 22,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=Theater%3A+Good+%27Seagull%27%3B+Chekhov+Play+Staged+by+the+Roundabout&amp;rft.date=1974-01-24&amp;rft.aulast=Barnes&amp;rft.aufirst=Clive&amp;rft_id=http%3A%2F%2Fselect.nytimes.com%2Fgst%2Fabstract.html%3Fres%3DF30817FC3E59127A93C6AB178AD85F408785F9&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFBarnes1974" class="citation news cs1">Barnes, Clive (February 25, 1974). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1974/02/25/archives/stage-total-eclipse-by-the-chelsea.html">"Stage: 'Total Eclipse' by the Chelsea"</a></span>. <i>The New York Times</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=Stage%3A+%27Total+Eclipse%27+by+the+Chelsea&amp;rft.date=1974-02-25&amp;rft.aulast=Barnes&amp;rft.aufirst=Clive&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1974%2F02%2F25%2Farchives%2Fstage-total-eclipse-by-the-chelsea.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFGilbert1972" class="citation news cs1">Gilbert, Ruth, ed. (August 14, 1972). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=xOYCAAAAMBAJ&amp;q=%22And+They+Put+Handcuffs+on+the+Flowers%22+nyc+%22christopher+lloyd%22&amp;pg=PA13">"In and Around Town: Theater &gt; Off and Off-Off Broadway &gt; Current"</a>. <i><a href="/wiki/New_York_(magazine)" title="New York (magazine)">New York</a></i>. p.&#160;13.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=New+York&amp;rft.atitle=In+and+Around+Town%3A+Theater+%3E+Off+and+Off-Off+Broadway+%3E+Current&amp;rft.pages=13&amp;rft.date=1972-08-14&amp;rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DxOYCAAAAMBAJ%26q%3D%2522And%2BThey%2BPut%2BHandcuffs%2Bon%2Bthe%2BFlowers%2522%2Bnyc%2B%2522christopher%2Blloyd%2522%26pg%3DPA13&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFGussow1974" class="citation news cs1"><a href="/wiki/Mel_Gussow" title="Mel Gussow">Gussow, Mel</a> (October 12, 1974). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1974/10/12/archives/stage-the-possessed-clear-vision-of-torment-the-cast.html">"Stage: 'The Possessed,' Clear Vision of Torment"</a></span>. <i>The New York Times</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 22,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=Stage%3A+%27The+Possessed%2C%27+Clear+Vision+of+Torment&amp;rft.date=1974-10-12&amp;rft.aulast=Gussow&amp;rft.aufirst=Mel&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1974%2F10%2F12%2Farchives%2Fstage-the-possessed-clear-vision-of-torment-the-cast.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFDelatiner1976" class="citation news cs1">Delatiner, Barbara (April 25, 1976). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1976/04/25/archives/new-jersey-opinion-new-lines-old-trouper.html">"New Lines, Old Trouper"</a></span>. <i>The New York Times</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 22,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=New+Lines%2C+Old+Trouper&amp;rft.date=1976-04-25&amp;rft.aulast=Delatiner&amp;rft.aufirst=Barbara&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1976%2F04%2F25%2Farchives%2Fnew-jersey-opinion-new-lines-old-trouper.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFBerkvist1977" class="citation news cs1">Berkvist, Robert (June 24, 1977). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1977/06/24/archives/new-face-christopher-lloyd-a-real-happy-end.html">"New Face: Christopher Lloyd; A Real 'Happy End'<span class="cs1-kern-right"></span>"</a></span>. <i>The New York Times</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=New+Face%3A+Christopher+Lloyd%3B+A+Real+%27Happy+End%27&amp;rft.date=1977-06-24&amp;rft.aulast=Berkvist&amp;rft.aufirst=Robert&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1977%2F06%2F24%2Farchives%2Fnew-face-christopher-lloyd-a-real-happy-end.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-avclub-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-avclub_15-0">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFHarris2012" class="citation news cs1">Harris, Will (October 12, 2012). <a rel="nofollow" class="external text" href="https://www.avclub.com/christopher-lloyd-on-playing-a-vampire-a-taxi-driver-1798234109">"Christopher Lloyd on playing a vampire, a taxi driver, a toon, and more"</a>. <i><a href="/wiki/The_A.V._Club" title="The A.V. Club">The A.V. Club</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20121025064038/http://www.avclub.com/articles/random-roles-christopher-lloyd%2C86582/">Archived</a> from the original on October 25, 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+A.V.+Club&amp;rft.atitle=Christopher+Lloyd+on+playing+a+vampire%2C+a+taxi+driver%2C+a+toon%2C+and+more&amp;rft.date=2012-10-12&amp;rft.aulast=Harris&amp;rft.aufirst=Will&amp;rft_id=https%3A%2F%2Fwww.avclub.com%2Fchristopher-lloyd-on-playing-a-vampire-a-taxi-driver-1798234109&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-emmys-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-emmys_16-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-emmys_16-1"><sup><i><b>b</b></i></sup></a><a href="#cite_ref-emmys_16-2"><sup><i><b>c</b></i></sup></a><a href="#cite_ref-emmys_16-3"><sup><i><b>d</b></i></sup></a><a href="#cite_ref-emmys_16-4"><sup><i><b>e</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.emmys.com/celebrities/christopher-lloyd">"Emmys &gt; Christopher Lloyd: Awards &amp; Nominations"</a>. <i><a href="/wiki/Academy_of_Television_Arts_%26_Sciences" title="Academy of Television Arts &amp; Sciences">Academy of Television Arts &amp; Sciences</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">January 31,</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Academy+of+Television+Arts+%26+Sciences&amp;rft.atitle=Emmys+%3E+Christopher+Lloyd%3A+Awards+%26+Nominations&amp;rft_id=http%3A%2F%2Fwww.emmys.com%2Fcelebrities%2Fchristopher-lloyd&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFMorgan2008" class="citation news cs1">Morgan, Terry (December 29, 2008). <a rel="nofollow" class="external text" href="https://variety.com/2008/legit/markets-festivals/charles-dickens-a-christmas-carol-1200472622/">"Charles Dickens' A Christmas Carol"</a>. <i><a href="/wiki/Variety_(magazine)" title="Variety (magazine)">Variety</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Variety&amp;rft.atitle=Charles+Dickens%27+A+Christmas+Carol&amp;rft.date=2008-12-29&amp;rft.aulast=Morgan&amp;rft.aufirst=Terry&amp;rft_id=https%3A%2F%2Fvariety.com%2F2008%2Flegit%2Fmarkets-festivals%2Fcharles-dickens-a-christmas-carol-1200472622%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090321002620/http://www.gobstoppermovie.com/cast.html">"Cast &amp; Crew"</a>. <i>GobstopperMovie.com</i>. Archived from <a rel="nofollow" class="external text" href="http://gobstoppermovie.com/">the original</a> on March 21, 2009<span class="reference-accessdate">. Retrieved <span class="nowrap">October 17,</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=GobstopperMovie.com&amp;rft.atitle=Cast+%26+Crew&amp;rft_id=http%3A%2F%2Fgobstoppermovie.com%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFItzkoff2010" class="citation news cs1">Itzkoff, Dave (August 25, 2010). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/2010/08/26/theater/26lloyd.html?pagewanted=1&amp;_r=1">"Christopher Lloyd stars in 'Death of a Salesman'<span class="cs1-kern-right"></span>"</a></span>. <i>The New York Times</i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 8,</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=Christopher+Lloyd+stars+in+%27Death+of+a+Salesman%27&amp;rft.date=2010-08-25&amp;rft.aulast=Itzkoff&amp;rft.aufirst=Dave&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F2010%2F08%2F26%2Ftheater%2F26lloyd.html%3Fpagewanted%3D1%26_r%3D1&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFSnider2010" class="citation news cs1">Snider, Mike (September 1, 2010). <a rel="nofollow" class="external text" href="http://content.usatoday.com/communities/gamehunters/post/2010/08/telltale-games-times-back-to-the-future-project/1">"Telltale Games times 'Back to the Future' project"</a>. <i><a href="/wiki/USA_Today" title="USA Today">USA Today</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 1,</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=USA+Today&amp;rft.atitle=Telltale+Games+times+%27Back+to+the+Future%27+project&amp;rft.date=2010-09-01&amp;rft.aulast=Snider&amp;rft.aufirst=Mike&amp;rft_id=http%3A%2F%2Fcontent.usatoday.com%2Fcommunities%2Fgamehunters%2Fpost%2F2010%2F08%2Ftelltale-games-times-back-to-the-future-project%2F1&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation pressrelease cs1"><a rel="nofollow" class="external text" href="https://www.prnewswire.com/news-releases/christopher-lloyd-is-back-in-time-the-fourth-dimension-a-new-imax-theatre-film-103718234.html">"Christopher Lloyd is Back in 'Time, the Fourth Dimension', a New IMAX Theatre Film"</a> (Press release). 3D Entertainment Films. September 24, 2010. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100928121422/http://www.prnewswire.com/news-releases/christopher-lloyd-is-back-in-time-the-fourth-dimension-a-new-imax-theatre-film-103718234.html">Archived</a> from the original on September 28, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span> &#8211; via <a href="/wiki/PR_Newswire" title="PR Newswire">PR Newswire</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Christopher+Lloyd+is+Back+in+%27Time%2C+the+Fourth+Dimension%27%2C+a+New+IMAX+Theatre+Film&amp;rft.pub=3D+Entertainment+Films&amp;rft.date=2010-09-24&amp;rft_id=https%3A%2F%2Fwww.prnewswire.com%2Fnews-releases%2Fchristopher-lloyd-is-back-in-time-the-fourth-dimension-a-new-imax-theatre-film-103718234.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFMcNary2010" class="citation magazine cs1">McNary, Dave (September 24, 2010). <a rel="nofollow" class="external text" href="https://variety.com/2010/film/news/christopher-lloyd-goes-back-in-time-1118024582/">"Christopher Lloyd goes back in 'Time'<span class="cs1-kern-right"></span>"</a>. <i>Variety</i>. <a rel="nofollow" class="external text" href="https://archive.today/20200727000025/https://variety.com/2010/film/news/christopher-lloyd-goes-back-in-time-1118024582/">Archived</a> from the original on July 27, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 27,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Variety&amp;rft.atitle=Christopher+Lloyd+goes+back+in+%27Time%27&amp;rft.date=2010-09-24&amp;rft.aulast=McNary&amp;rft.aufirst=Dave&amp;rft_id=https%3A%2F%2Fvariety.com%2F2010%2Ffilm%2Fnews%2Fchristopher-lloyd-goes-back-in-time-1118024582%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-ew_review-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-ew_review_23-0">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFTucker2011" class="citation web cs1">Tucker, Ken (January 21, 2011). <a rel="nofollow" class="external text" href="https://ew.com/article/2011/01/21/fringe-firefly-season-3-episode-10/">"The return of 'Fringe' recap: 'The Firefly' glowed with love, loss, and Christopher Lloyd"</a>. <i><a href="/wiki/Entertainment_Weekly" title="Entertainment Weekly">Entertainment Weekly</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">January 25,</span> 2011</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Entertainment+Weekly&amp;rft.atitle=The+return+of+%27Fringe%27+recap%3A+%27The+Firefly%27+glowed+with+love%2C+loss%2C+and+Christopher+Lloyd&amp;rft.date=2011-01-21&amp;rft.aulast=Tucker&amp;rft.aufirst=Ken&amp;rft_id=https%3A%2F%2Few.com%2Farticle%2F2011%2F01%2F21%2Ffringe-firefly-season-3-episode-10%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation news cs1"><a rel="nofollow" class="external text" href="http://www.lagaceta.com.ar/nota/454208/Tucumanos/Campa%C3%B1a-publicitaria-Doc-Emmet-Brown-exito-YouTube.html">"Campaña publicitaria del Doc Emmet Brown es un éxito en YouTube"</a> &#91;Advertising campaign with "Doc" Emmett Brown is a hit on YouTube&#93;. <i><a href="/wiki/La_Gaceta_(Tucum%C3%A1n)" title="La Gaceta (Tucumán)">La Gaceta</a></i>. <a href="/wiki/Tucum%C3%A1n,_Argentina" class="mw-redirect" title="Tucumán, Argentina">Tucumán, Argentina</a>. September 8, 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">June 14,</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=La+Gaceta&amp;rft.atitle=Campa%C3%B1a+publicitaria+del+Doc+Emmet+Brown+es+un+%C3%A9xito+en+YouTube&amp;rft.date=2011-09-08&amp;rft_id=http%3A%2F%2Fwww.lagaceta.com.ar%2Fnota%2F454208%2FTucumanos%2FCampa%25C3%25B1a-publicitaria-Doc-Emmet-Brown-exito-YouTube.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-caucasian_circle-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-caucasian_circle_25-0">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFIsherwood2013" class="citation news cs1">Isherwood, Charles (May 30, 2013). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/2013/05/31/theater/reviews/the-caucasian-chalk-circle-at-classic-stage-company.html">"A Little Groucho Marx, a Little King Solomon"</a></span>. <i>The New York Times</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=A+Little+Groucho+Marx%2C+a+Little+King+Solomon&amp;rft.date=2013-05-30&amp;rft.aulast=Isherwood&amp;rft.aufirst=Charles&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F2013%2F05%2F31%2Ftheater%2Freviews%2Fthe-caucasian-chalk-circle-at-classic-stage-company.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.facebook.com/watch/?v=10156689301233374">"Marty McFly &amp; Doc Brown Visit Jimmy Kimmel Live"</a>. <i>Facebook</i>. October 21, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">September 8,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Facebook&amp;rft.atitle=Marty+McFly+%26+Doc+Brown+Visit+Jimmy+Kimmel+Live&amp;rft.date=2015-10-21&amp;rft_id=https%3A%2F%2Fwww.facebook.com%2Fwatch%2F%3Fv%3D10156689301233374&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFCordero2022" class="citation web cs1">Cordero, Rosy (April 14, 2022). <a rel="nofollow" class="external text" href="https://deadline.com/2022/04/the-conners-christopher-lloyd-lou-1235002433/">"<span class="cs1-kern-left"></span>'The Conners': Christopher Lloyd To Reprise 'Roseanne' Character Lou In ABC Spinoff"</a>. <i><a href="/wiki/Deadline_Hollywood" title="Deadline Hollywood">Deadline Hollywood</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 14,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Deadline+Hollywood&amp;rft.atitle=%27The+Conners%27%3A+Christopher+Lloyd+To+Reprise+%27Roseanne%27+Character+Lou+In+ABC+Spinoff&amp;rft.date=2022-04-14&amp;rft.aulast=Cordero&amp;rft.aufirst=Rosy&amp;rft_id=https%3A%2F%2Fdeadline.com%2F2022%2F04%2Fthe-conners-christopher-lloyd-lou-1235002433%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation magazine cs1"><a rel="nofollow" class="external text" href="https://www.hollywoodreporter.com/news/general-news/neverending-story-queen-tami-stronach-star-fantasy-man-witch-1302386/">"<span class="cs1-kern-left"></span>'NeverEnding Story' Queen Tami Stronach to Star in Fantasy Film With Sean Astin, Christopher Lloyd (Exclusive)"</a>. <i><a href="/wiki/The_Hollywood_Reporter" title="The Hollywood Reporter">The Hollywood Reporter</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">March 18,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+Hollywood+Reporter&amp;rft.atitle=%27NeverEnding+Story%27+Queen+Tami+Stronach+to+Star+in+Fantasy+Film+With+Sean+Astin%2C+Christopher+Lloyd+%28Exclusive%29&amp;rft_id=https%3A%2F%2Fwww.hollywoodreporter.com%2Fnews%2Fgeneral-news%2Fneverending-story-queen-tami-stronach-star-fantasy-man-witch-1302386%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://variety.com/2017/film/news/christopher-lloyd-william-shatner-senior-moment-1202028883/">"Christopher Lloyd Joins William Shatner in Comedy 'Senior Moment' (EXCLUSIVE)"</a>. <i>Variety</i>. April 12, 2017.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Variety&amp;rft.atitle=Christopher+Lloyd+Joins+William+Shatner+in+Comedy+%27Senior+Moment%27+%28EXCLUSIVE%29&amp;rft.date=2017-04-12&amp;rft_id=https%3A%2F%2Fvariety.com%2F2017%2Ffilm%2Fnews%2Fchristopher-lloyd-william-shatner-senior-moment-1202028883%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-RickSanchez-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-RickSanchez_30-0">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPulliam-Moore2021" class="citation web cs1">Pulliam-Moore, Charles (September 3, 2021). <a rel="nofollow" class="external text" href="https://io9.gizmodo.com/rick-and-morty-this-is-heavy-1847613393">"<i>Rick and Morty</i>…This Is Heavy"</a>. <i><a href="/wiki/Gizmodo" title="Gizmodo">Gizmodo</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 3,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Gizmodo&amp;rft.atitle=Rick+and+Morty%E2%80%A6This+Is+Heavy&amp;rft.date=2021-09-03&amp;rft.aulast=Pulliam-Moore&amp;rft.aufirst=Charles&amp;rft_id=https%3A%2F%2Fio9.gizmodo.com%2Frick-and-morty-this-is-heavy-1847613393&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-RickSanchez2-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-RickSanchez2_31-0">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFGuttmann2021" class="citation web cs1">Guttmann, Graeme (September 5, 2021). <a rel="nofollow" class="external text" href="https://screenrant.com/rick-morty-live-action-christopher-lloyd-pickle-video">"New <i>Rick &amp; Morty</i> Live-Action Clip Has Christopher Lloyd Eat a Pickle"</a>. <i><a href="/wiki/Screen_Rant" title="Screen Rant">Screen Rant</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">September 5,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Screen+Rant&amp;rft.atitle=New+Rick+%26+Morty+Live-Action+Clip+Has+Christopher+Lloyd+Eat+a+Pickle&amp;rft.date=2021-09-05&amp;rft.aulast=Guttmann&amp;rft.aufirst=Graeme&amp;rft_id=https%3A%2F%2Fscreenrant.com%2Frick-morty-live-action-christopher-lloyd-pickle-video&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFWalsh2022" class="citation web cs1">Walsh, Michael (March 11, 2022). <a rel="nofollow" class="external text" href="https://nerdist.com/article/christopher-lloyd-time-psa-ryan-reynolds-mark-ruffalo-the-adam-project/">"Christopher Lloyd Shares a Time PSA with Ryan Reynolds and Mark Ruffalo"</a>. <i><a href="/wiki/Nerdist" title="Nerdist">Nerdist</a></i>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Nerdist&amp;rft.atitle=Christopher+Lloyd+Shares+a+Time+PSA+with+Ryan+Reynolds+and+Mark+Ruffalo&amp;rft.date=2022-03-11&amp;rft.aulast=Walsh&amp;rft.aufirst=Michael&amp;rft_id=https%3A%2F%2Fnerdist.com%2Farticle%2Fchristopher-lloyd-time-psa-ryan-reynolds-mark-ruffalo-the-adam-project%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFYossman2022" class="citation web cs1">Yossman, K.J. (April 11, 2022). <a rel="nofollow" class="external text" href="https://variety.com/2022/film/news/spirit-halloween-movie-christopher-lloyd-1235230046/">"Spirit Halloween Store Film in the Works Starring Christopher Lloyd, Rachael Leigh Cook (Exclusive)"</a>. <i><a href="/wiki/Variety_(magazine)" title="Variety (magazine)">Variety</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 12,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Variety&amp;rft.atitle=Spirit+Halloween+Store+Film+in+the+Works+Starring+Christopher+Lloyd%2C+Rachael+Leigh+Cook+%28Exclusive%29&amp;rft.date=2022-04-11&amp;rft.aulast=Yossman&amp;rft.aufirst=K.J.&amp;rft_id=https%3A%2F%2Fvariety.com%2F2022%2Ffilm%2Fnews%2Fspirit-halloween-movie-christopher-lloyd-1235230046%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPlant2022" class="citation web cs1">Plant, Logan (April 11, 2022). <a rel="nofollow" class="external text" href="https://www.ign.com/articles/spirit-halloween-movie-christopher-lloyd-rachael-leigh-cook">"Christopher Lloyd to Star in Movie Based On Spirit Halloween Store"</a>. <i><a href="/wiki/IGN" title="IGN">IGN</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">April 12,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=IGN&amp;rft.atitle=Christopher+Lloyd+to+Star+in+Movie+Based+On+Spirit+Halloween+Store&amp;rft.date=2022-04-11&amp;rft.aulast=Plant&amp;rft.aufirst=Logan&amp;rft_id=https%3A%2F%2Fwww.ign.com%2Farticles%2Fspirit-halloween-movie-christopher-lloyd-rachael-leigh-cook&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-Panaligan_2022-35"><span class="mw-cite-backlink">^ <a href="#cite_ref-Panaligan_2022_35-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-Panaligan_2022_35-1"><sup><i><b>b</b></i></sup></a><a href="#cite_ref-Panaligan_2022_35-2"><sup><i><b>c</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPanaligan2022" class="citation web cs1">Panaligan, EJ (August 1, 2022). <a rel="nofollow" class="external text" href="https://variety.com/2022/film/news/spirit-halloween-movie-trailer-1235330745/">"<span class="cs1-kern-left"></span>'Spirit Halloween: The Movie' Brings Costume Store to Life in Spooky Trailer"</a>. <i><a href="/wiki/Variety_(magazine)" title="Variety (magazine)">Variety</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">August 2,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Variety&amp;rft.atitle=%27Spirit+Halloween%3A+The+Movie%27+Brings+Costume+Store+to+Life+in+Spooky+Trailer&amp;rft.date=2022-08-01&amp;rft.aulast=Panaligan&amp;rft.aufirst=EJ&amp;rft_id=https%3A%2F%2Fvariety.com%2F2022%2Ffilm%2Fnews%2Fspirit-halloween-movie-trailer-1235330745%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-Yossman_2022-36"><span class="mw-cite-backlink">^ <a href="#cite_ref-Yossman_2022_36-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-Yossman_2022_36-1"><sup><i><b>b</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFYossman2022" class="citation web cs1">Yossman, K.J. (May 20, 2022). <a rel="nofollow" class="external text" href="https://variety.com/2022/film/news/spirit-halloween-movie-images-plot-1235271762/">"<span class="cs1-kern-left"></span>'Spirit Halloween': First Photos, Plot Details From Movie Inspired by Costume Store (Exclusive)"</a>. <i><a href="/wiki/Variety_(magazine)" title="Variety (magazine)">Variety</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">August 4,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Variety&amp;rft.atitle=%27Spirit+Halloween%27%3A+First+Photos%2C+Plot+Details+From+Movie+Inspired+by+Costume+Store+%28Exclusive%29&amp;rft.date=2022-05-20&amp;rft.aulast=Yossman&amp;rft.aufirst=K.J.&amp;rft_id=https%3A%2F%2Fvariety.com%2F2022%2Ffilm%2Fnews%2Fspirit-halloween-movie-images-plot-1235271762%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFEddy2022" class="citation web cs1">Eddy, Cheryl (August 1, 2022). <a rel="nofollow" class="external text" href="https://gizmodo.com/spirit-halloween-the-movie-teaser-christopher-lloyd-1849355470">"<i>Spirit Halloween: The Movie</i> Is Real, and Has the Teaser to Prove It"</a>. <i><a href="/wiki/Gizmodo" title="Gizmodo">Gizmodo</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">August 2,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Gizmodo&amp;rft.atitle=Spirit+Halloween%3A+The+Movie+Is+Real%2C+and+Has+the+Teaser+to+Prove+It&amp;rft.date=2022-08-01&amp;rft.aulast=Eddy&amp;rft.aufirst=Cheryl&amp;rft_id=https%3A%2F%2Fgizmodo.com%2Fspirit-halloween-the-movie-teaser-christopher-lloyd-1849355470&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFKitCouch2022" class="citation magazine cs1">Kit, Borys; Couch, Aaron (March 18, 2022). <a rel="nofollow" class="external text" href="https://www.hollywoodreporter.com/tv/tv-news/mandalorian-season-3-casts-christopher-lloyd-1235112715/">"<span class="cs1-kern-left"></span>'Star Wars': Christopher Lloyd Joins 'The Mandalorian' Season 3 (Exclusive)"</a>. <i>The Hollywood Reporter</i><span class="reference-accessdate">. Retrieved <span class="nowrap">March 18,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+Hollywood+Reporter&amp;rft.atitle=%27Star+Wars%27%3A+Christopher+Lloyd+Joins+%27The+Mandalorian%27+Season+3+%28Exclusive%29&amp;rft.date=2022-03-18&amp;rft.aulast=Kit&amp;rft.aufirst=Borys&amp;rft.au=Couch%2C+Aaron&amp;rft_id=https%3A%2F%2Fwww.hollywoodreporter.com%2Ftv%2Ftv-news%2Fmandalorian-season-3-casts-christopher-lloyd-1235112715%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPetski2023" class="citation web cs1">Petski, Denise (June 14, 2023). <a rel="nofollow" class="external text" href="https://deadline.com/2023/06/cary-elwes-stockard-channing-christopher-lloyd-paul-scheer-rob-huebel-sonic-the-hedgehog-spinoff-knuckles-1235417410/">"Cary Elwes, Stockard Channing, Christopher Lloyd, Paul Scheer &amp; Rob Huebel Join 'Sonic The Hedgehog' Spinoff Series 'Knuckles'<span class="cs1-kern-right"></span>"</a>. <i><a href="/wiki/Deadline_Hollywood" title="Deadline Hollywood">Deadline Hollywood</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 14,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Deadline+Hollywood&amp;rft.atitle=Cary+Elwes%2C+Stockard+Channing%2C+Christopher+Lloyd%2C+Paul+Scheer+%26+Rob+Huebel+Join+%27Sonic+The+Hedgehog%27+Spinoff+Series+%27Knuckles%27&amp;rft.date=2023-06-14&amp;rft.aulast=Petski&amp;rft.aufirst=Denise&amp;rft_id=https%3A%2F%2Fdeadline.com%2F2023%2F06%2Fcary-elwes-stockard-channing-christopher-lloyd-paul-scheer-rob-huebel-sonic-the-hedgehog-spinoff-knuckles-1235417410%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-AP-Sept25_2002-40"><span class="mw-cite-backlink">^ <a href="#cite_ref-AP-Sept25_2002_40-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-AP-Sept25_2002_40-1"><sup><i><b>b</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://apnews.com/16b9089614a10f3f4fe0c15ecd354eb6">"Ex-wife sues actor Lloyd for unpaid alimony"</a>. <i><a href="/wiki/Associated_Press" title="Associated Press">Associated Press</a></i>. September 25, 2002. <a rel="nofollow" class="external text" href="https://archive.today/20200621191659/https://apnews.com/16b9089614a10f3f4fe0c15ecd354eb6">Archived</a> from the original on June 21, 2020. <q>Catherine Boyd Lloyd of Manhattan says ... related to their 1971 divorce after 12 years of marriage. Lloyd ... is now married to screenwriter Jane Walker Wood.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Associated+Press&amp;rft.atitle=Ex-wife+sues+actor+Lloyd+for+unpaid+alimony&amp;rft.date=2002-09-25&amp;rft_id=https%3A%2F%2Fapnews.com%2F16b9089614a10f3f4fe0c15ecd354eb6&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFHillier1987" class="citation news cs1">Hillier, Bevin (March 22, 1987). <a rel="nofollow" class="external text" href="https://www.latimes.com/archives/la-xpm-1987-03-22-tm-14729-story.html">"Always on Sunday: The Making of a Flea-Market Fanatic"</a>. <i><a href="/wiki/Los_Angeles_Times" title="Los Angeles Times">Los Angeles Times</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200621195104/https://www.latimes.com/archives/la-xpm-1987-03-22-tm-14729-story.html">Archived</a> from the original on June 21, 2020. <q>In 1974 she married actor Christopher Lloyd.... (They are now in the process of getting a divorce.)</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Los+Angeles+Times&amp;rft.atitle=Always+on+Sunday%3A+The+Making+of+a+Flea-Market+Fanatic&amp;rft.date=1987-03-22&amp;rft.aulast=Hillier&amp;rft.aufirst=Bevin&amp;rft_id=https%3A%2F%2Fwww.latimes.com%2Farchives%2Fla-xpm-1987-03-22-tm-14729-story.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPodolsky1991" class="citation journal cs1">Podolsky, J. D. (July 8, 1991). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20131203005822/http://www.people.com/people/article/0,,20115481,00.html">"Passages"</a>. <i><a href="/wiki/People_(magazine)" title="People (magazine)">People</a></i>. Archived from <a rel="nofollow" class="external text" href="http://www.people.com/people/article/0,,20115481,00.html">the original</a> on December 3, 2013. <q>Actor Christopher Lloyd ... and his wife, homemaker Carol Ann Vanek Lloyd, are divorcing after more than two years of marriage...</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=People&amp;rft.atitle=Passages&amp;rft.date=1991-07-08&amp;rft.aulast=Podolsky&amp;rft.aufirst=J.+D.&amp;rft_id=http%3A%2F%2Fwww.people.com%2Fpeople%2Farticle%2F0%2C%2C20115481%2C00.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-43">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFNardino2021" class="citation news cs1">Nardino, Meredith (July 3, 2021). <a rel="nofollow" class="external text" href="https://www.usmagazine.com/entertainment/pictures/back-to-the-future-cast-where-are-they-now/lea-thompson-lorraine-baines/">"<span class="cs1-kern-left"></span>'Back to the Future' Cast: Where Are They Now?"</a>. <i><a href="/wiki/US_Weekly" class="mw-redirect" title="US Weekly">US Weekly</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210207204341/https://www.usmagazine.com/entertainment/pictures/back-to-the-future-cast-where-are-they-now/lea-thompson-lorraine-baines/">Archived</a> from the original on February 7, 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=US+Weekly&amp;rft.atitle=%27Back+to+the+Future%27+Cast%3A+Where+Are+They+Now%3F&amp;rft.date=2021-07-03&amp;rft.aulast=Nardino&amp;rft.aufirst=Meredith&amp;rft_id=https%3A%2F%2Fwww.usmagazine.com%2Fentertainment%2Fpictures%2Fback-to-the-future-cast-where-are-they-now%2Flea-thompson-lorraine-baines%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-LATimes_Montecito-44"><span class="mw-cite-backlink">^ <a href="#cite_ref-LATimes_Montecito_44-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-LATimes_Montecito_44-1"><sup><i><b>b</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFBeale2012" class="citation news cs1">Beale, Lauren (March 23, 2012). <a rel="nofollow" class="external text" href="https://www.latimes.com/business/realestate/la-fi-hotprop-christopher-lloyd-20120323-story.html">"Actor Christopher Lloyd lists Montecito home at $6.45 million"</a>. <i>Los Angeles Times</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170224211410/http://www.latimes.com/business/realestate/la-fi-hotprop-christopher-lloyd-20120323-story.html">Archived</a> from the original on February 24, 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">February 23,</span> 2017</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Los+Angeles+Times&amp;rft.atitle=Actor+Christopher+Lloyd+lists+Montecito+home+at+%246.45+million&amp;rft.date=2012-03-23&amp;rft.aulast=Beale&amp;rft.aufirst=Lauren&amp;rft_id=https%3A%2F%2Fwww.latimes.com%2Fbusiness%2Frealestate%2Fla-fi-hotprop-christopher-lloyd-20120323-story.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-Stars-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-Stars_45-0">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://www.accessonline.com/articles/stars-homes-destroyed-threatened-by-montecito-fire-66244">"Stars' Homes Destroyed &amp; Threatened By Montecito Fire"</a>. <i><a href="/wiki/Access_Hollywood" title="Access Hollywood">Access Hollywood</a></i>. November 14, 2008. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100814052213/http://www.accesshollywood.com/stars-homes-destroyed-and-threatened-by-montecito-fire_article_12191">Archived</a> from the original on August 14, 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Access+Hollywood&amp;rft.atitle=Stars%27+Homes+Destroyed+%26+Threatened+By+Montecito+Fire&amp;rft.date=2008-11-14&amp;rft_id=https%3A%2F%2Fwww.accessonline.com%2Farticles%2Fstars-homes-destroyed-threatened-by-montecito-fire-66244&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1984/10/12/obituaries/ruth-lapham-lloyd-88-dies-aided-metropolitan-museum.html">"Ruth Lapham Lloyd, 88, Dies; Aided Metropolitan Museum"</a>. <i>The New York Times</i>. October 12, 1984<span class="reference-accessdate">. Retrieved <span class="nowrap">October 22,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=Ruth+Lapham+Lloyd%2C+88%2C+Dies%3B+Aided+Metropolitan+Museum&amp;rft.date=1984-10-12&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1984%2F10%2F12%2Fobituaries%2Fruth-lapham-lloyd-88-dies-aided-metropolitan-museum.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPaul2014" class="citation book cs1">Paul, Louis (2014). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=6NQ-Y8lbGAsC&amp;dq=christopher+lloyd+%22another+man,+another+chance%22&amp;pg=PA27"><i>Tales from the Cult Film Trenches: Interviews with 36 Actors from Horror, Science Fiction and Exploitation Cinema</i></a>. Jefferson, North Carolina: <a href="/wiki/McFarland_%26_Company" title="McFarland &amp; Company">McFarland &amp; Company</a>. p.&#160;27. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0-7864-8402-7" title="Special:BookSources/978-0-7864-8402-7"><bdi>978-0-7864-8402-7</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Tales+from+the+Cult+Film+Trenches%3A+Interviews+with+36+Actors+from+Horror%2C+Science+Fiction+and+Exploitation+Cinema&amp;rft.place=Jefferson%2C+North+Carolina&amp;rft.pages=27&amp;rft.pub=McFarland+%26+Company&amp;rft.date=2014&amp;rft.isbn=978-0-7864-8402-7&amp;rft.aulast=Paul&amp;rft.aufirst=Louis&amp;rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3D6NQ-Y8lbGAsC%26dq%3Dchristopher%2Blloyd%2B%2522another%2Bman%2C%2Banother%2Bchance%2522%26pg%3DPA27&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-btva-48"><span class="mw-cite-backlink">^ <a href="#cite_ref-btva_48-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-btva_48-1"><sup><i><b>b</b></i></sup></a><a href="#cite_ref-btva_48-2"><sup><i><b>c</b></i></sup></a><a href="#cite_ref-btva_48-3"><sup><i><b>d</b></i></sup></a><a href="#cite_ref-btva_48-4"><sup><i><b>e</b></i></sup></a><a href="#cite_ref-btva_48-5"><sup><i><b>f</b></i></sup></a><a href="#cite_ref-btva_48-6"><sup><i><b>g</b></i></sup></a><a href="#cite_ref-btva_48-7"><sup><i><b>h</b></i></sup></a><a href="#cite_ref-btva_48-8"><sup><i><b>i</b></i></sup></a><a href="#cite_ref-btva_48-9"><sup><i><b>j</b></i></sup></a><a href="#cite_ref-btva_48-10"><sup><i><b>k</b></i></sup></a><a href="#cite_ref-btva_48-11"><sup><i><b>l</b></i></sup></a><a href="#cite_ref-btva_48-12"><sup><i><b>m</b></i></sup></a><a href="#cite_ref-btva_48-13"><sup><i><b>n</b></i></sup></a><a href="#cite_ref-btva_48-14"><sup><i><b>o</b></i></sup></a><a href="#cite_ref-btva_48-15"><sup><i><b>p</b></i></sup></a><a href="#cite_ref-btva_48-16"><sup><i><b>q</b></i></sup></a><a href="#cite_ref-btva_48-17"><sup><i><b>r</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.behindthevoiceactors.com/Christopher-Lloyd/">"Christopher Lloyd (visual voices guide)"</a>. <i>Behind The Voice Actors</i><span class="reference-accessdate">. Retrieved <span class="nowrap">October 19,</span> 2023</span>. A green check mark indicates that a role has been confirmed using a screenshot (or collage of screenshots) of a title's list of voice actors and their respective characters found in its credits or other reliable sources of information.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Behind+The+Voice+Actors&amp;rft.atitle=Christopher+Lloyd+%28visual+voices+guide%29&amp;rft_id=https%3A%2F%2Fwww.behindthevoiceactors.com%2FChristopher-Lloyd%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span><span class="cs1-maint citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: CS1 maint: postscript (<a href="/wiki/Category:CS1_maint:_postscript" title="Category:CS1 maint: postscript">link</a>)</span></span></li><li id="cite_note-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFVonler2005" class="citation book cs1">Vonler, Veva (2005). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=yjCLTrrrSx0C&amp;pg=PA22"><i>The Movie Lover's Tour of Texas: Reel-life Rambles Through the Lone Star State</i></a>. Taylor Trade Publishing. p.&#160;22. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-1-5897-9242-5" title="Special:BookSources/978-1-5897-9242-5"><bdi>978-1-5897-9242-5</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=The+Movie+Lover%27s+Tour+of+Texas%3A+Reel-life+Rambles+Through+the+Lone+Star+State&amp;rft.pages=22&amp;rft.pub=Taylor+Trade+Publishing&amp;rft.date=2005&amp;rft.isbn=978-1-5897-9242-5&amp;rft.aulast=Vonler&amp;rft.aufirst=Veva&amp;rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DyjCLTrrrSx0C%26pg%3DPA22&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-TCM-50"><span class="mw-cite-backlink">^ <a href="#cite_ref-TCM_50-0"><sup><i><b>a</b></i></sup></a><a href="#cite_ref-TCM_50-1"><sup><i><b>b</b></i></sup></a><a href="#cite_ref-TCM_50-2"><sup><i><b>c</b></i></sup></a><a href="#cite_ref-TCM_50-3"><sup><i><b>d</b></i></sup></a><a href="#cite_ref-TCM_50-4"><sup><i><b>e</b></i></sup></a><a href="#cite_ref-TCM_50-5"><sup><i><b>f</b></i></sup></a><a href="#cite_ref-TCM_50-6"><sup><i><b>g</b></i></sup></a><a href="#cite_ref-TCM_50-7"><sup><i><b>h</b></i></sup></a><a href="#cite_ref-TCM_50-8"><sup><i><b>i</b></i></sup></a></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.tcm.com/tcmdb/person/115116%7C0/christopher-lloyd#filmography">"Christopher Lloyd &gt; Complete Filmography"</a>. <i><a href="/wiki/Turner_Classic_Movies" title="Turner Classic Movies">Turner Classic Movies</a></i>. <a rel="nofollow" class="external text" href="https://archive.today/20200726201918/http://www.tcm.com/tcmdb/person/115116%7C0/Christopher-Lloyd/filmography.html">Archived</a> from the original on July 26, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Turner+Classic+Movies&amp;rft.atitle=Christopher+Lloyd+%3E+Complete+Filmography&amp;rft_id=https%3A%2F%2Fwww.tcm.com%2Ftcmdb%2Fperson%2F115116%257C0%2Fchristopher-lloyd%23filmography&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFStratton1999" class="citation magazine cs1">Stratton, David (April 5, 1999). <a rel="nofollow" class="external text" href="https://variety.com/1999/film/reviews/convergence-1200457480/">"Convergence"</a>. <i>Variety</i>. <a rel="nofollow" class="external text" href="https://archive.today/20200726205049/https://variety.com/1999/film/reviews/convergence-1200457480/">Archived</a> from the original on July 26, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Variety&amp;rft.atitle=Convergence&amp;rft.date=1999-04-05&amp;rft.aulast=Stratton&amp;rft.aufirst=David&amp;rft_id=https%3A%2F%2Fvariety.com%2F1999%2Ffilm%2Freviews%2Fconvergence-1200457480%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-52">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFOxman2001" class="citation magazine cs1">Oxman, Steven (June 27, 2001). <a rel="nofollow" class="external text" href="https://variety.com/2001/tv/reviews/on-the-edge-4-1200468624/">"On the Edge"</a>. <i>Variety</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190426022404/https://variety.com/2001/tv/reviews/on-the-edge-4-1200468624/">Archived</a> from the original on April 26, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Variety&amp;rft.atitle=On+the+Edge&amp;rft.date=2001-06-27&amp;rft.aulast=Oxman&amp;rft.aufirst=Steven&amp;rft_id=https%3A%2F%2Fvariety.com%2F2001%2Ftv%2Freviews%2Fon-the-edge-4-1200468624%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-53">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://woodstockfilmfestival.com/archives/2004schedule/features_2004.php">"East Coast Premiere: <i>Admissions</i>"</a>. <i><a href="/wiki/Woodstock_Film_Festival" title="Woodstock Film Festival">Woodstock Film Festival</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20181210125154/http://woodstockfilmfestival.com/archives/2004schedule/features_2004.php">Archived</a> from the original on December 10, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Woodstock+Film+Festival&amp;rft.atitle=East+Coast+Premiere%3A+Admissions&amp;rft_id=http%3A%2F%2Fwoodstockfilmfestival.com%2Farchives%2F2004schedule%2Ffeatures_2004.php&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-54">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation magazine cs1"><a rel="nofollow" class="external text" href="https://www.radiotimes.com/film/p9tg9/the-chateau-meroux/">"<i>The Chateau Meroux</i>"</a>. <i><a href="/wiki/RadioTimes" class="mw-redirect" title="RadioTimes">RadioTimes</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200726210502/https://www.radiotimes.com/film/p9tg9/the-chateau-meroux/">Archived</a> from the original on July 26, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=RadioTimes&amp;rft.atitle=The+Chateau+Meroux&amp;rft_id=https%3A%2F%2Fwww.radiotimes.com%2Ffilm%2Fp9tg9%2Fthe-chateau-meroux%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-55">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFMilligan2013" class="citation magazine cs1">Milligan, Mercedes (January 17, 2013). <a rel="nofollow" class="external text" href="https://www.animationmagazine.net/features/cadaver-alive-and-kicking/">"<span class="cs1-kern-left"></span>'Cadaver' Alive and Kicking"</a>. <i><a href="/wiki/Animation_Magazine" title="Animation Magazine">Animation Magazine</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190530031526/https://www.animationmagazine.net/features/cadaver-alive-and-kicking/">Archived</a> from the original on May 30, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Animation+Magazine&amp;rft.atitle=%27Cadaver%27+Alive+and+Kicking&amp;rft.date=2013-01-17&amp;rft.aulast=Milligan&amp;rft.aufirst=Mercedes&amp;rft_id=https%3A%2F%2Fwww.animationmagazine.net%2Ffeatures%2Fcadaver-alive-and-kicking%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-56">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation audio-visual cs1">Marelli, Stéphane (director), Christopher Lloyd, Carmen Electra, Keenan Cahill, Eric Judor (2012). <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=R5oabbrcXj0"><i>Axe Boat 2012</i></a>. Keenan Cahill<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Axe+Boat+2012&amp;rft.pub=Keenan+Cahill&amp;rft.date=2012&amp;rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DR5oabbrcXj0&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span><a rel="nofollow" class="external text" href="https://archive.org/details/axe-boat-2012-keenan-cahill-vs-carmen-electra-eric-judor">Alt URL</a></span></li><li id="cite_note-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-57">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFMontgomery2016" class="citation web cs1">Montgomery, Grace (January 7, 2016). <a rel="nofollow" class="external text" href="https://www.commonsensemedia.org/movie-reviews/freedom-force">"<i>Freedom Force</i>"</a>. <i><a href="/wiki/Common_Sense_Media" title="Common Sense Media">Common Sense Media</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190430062936/https://www.commonsensemedia.org/movie-reviews/freedom-force">Archived</a> from the original on April 30, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Common+Sense+Media&amp;rft.atitle=Freedom+Force&amp;rft.date=2016-01-07&amp;rft.aulast=Montgomery&amp;rft.aufirst=Grace&amp;rft_id=https%3A%2F%2Fwww.commonsensemedia.org%2Fmovie-reviews%2Ffreedom-force&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-58">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFBaumgarten2014" class="citation news cs1">Baumgarten, Marjorie (December 5, 2014). <a rel="nofollow" class="external text" href="https://www.austinchronicle.com/events/film/2014-12-05/the-one-i-wrote-for-you/">"The One I Wrote for You"</a>. <i><a href="/wiki/The_Austin_Chronicle" title="The Austin Chronicle">The Austin Chronicle</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200726233049/https://www.austinchronicle.com/events/film/2014-12-05/the-one-i-wrote-for-you/">Archived</a> from the original on July 26, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 25,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+Austin+Chronicle&amp;rft.atitle=The+One+I+Wrote+for+You&amp;rft.date=2014-12-05&amp;rft.aulast=Baumgarten&amp;rft.aufirst=Marjorie&amp;rft_id=https%3A%2F%2Fwww.austinchronicle.com%2Fevents%2Ffilm%2F2014-12-05%2Fthe-one-i-wrote-for-you%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-59">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFJames2018" class="citation magazine cs1"><a href="/wiki/Caryn_James" title="Caryn James">James, Caryn</a> (October 18, 2018). <a rel="nofollow" class="external text" href="https://www.hollywoodreporter.com/review/rerun-review-1152567">"<span class="cs1-kern-left"></span>'ReRun': Film Review"</a>. <i><a href="/wiki/The_Hollywood_Reporter" title="The Hollywood Reporter">The Hollywood Reporter</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190502174119/https://www.hollywoodreporter.com/review/rerun-review-1152567">Archived</a> from the original on May 2, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+Hollywood+Reporter&amp;rft.atitle=%27ReRun%27%3A+Film+Review&amp;rft.date=2018-10-18&amp;rft.aulast=James&amp;rft.aufirst=Caryn&amp;rft_id=https%3A%2F%2Fwww.hollywoodreporter.com%2Freview%2Frerun-review-1152567&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-60">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPerry2020" class="citation magazine cs1">Perry, Joseph (June 27, 2020). <a rel="nofollow" class="external text" href="https://gruesomemagazine.com/2020/06/27/review-the-haunted-swordsman-portland-horror-film-festival-supernatural-stop-motion-masterpiece-sees-a-samurai-make-a-perilous-quest/">"&#91;Review&#93; The Haunted Swordsman (Portland Horror Film Festival): Supernatural Stop-Motion Masterpiece Sees A Samurai Make A Perilous Quest"</a>. <i>Gruesome Magazine</i>. <a rel="nofollow" class="external text" href="https://archive.today/20200726234511/https://gruesomemagazine.com/2020/06/27/review-the-haunted-swordsman-portland-horror-film-festival-supernatural-stop-motion-masterpiece-sees-a-samurai-make-a-perilous-quest/">Archived</a> from the original on July 26, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Gruesome+Magazine&amp;rft.atitle=%5BReview%5D+The+Haunted+Swordsman+%28Portland+Horror+Film+Festival%29%3A+Supernatural+Stop-Motion+Masterpiece+Sees+A+Samurai+Make+A+Perilous+Quest&amp;rft.date=2020-06-27&amp;rft.aulast=Perry&amp;rft.aufirst=Joseph&amp;rft_id=https%3A%2F%2Fgruesomemagazine.com%2F2020%2F06%2F27%2Freview-the-haunted-swordsman-portland-horror-film-festival-supernatural-stop-motion-masterpiece-sees-a-samurai-make-a-perilous-quest%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-61">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFMcNary2017" class="citation magazine cs1">McNary, Dave (April 11, 2017). <a rel="nofollow" class="external text" href="https://variety.com/2017/film/news/christopher-lloyd-william-shatner-senior-moment-1202028883/">"Christopher Lloyd Joins William Shatner in Comedy 'Senior Moment' (Exclusive)"</a>. <i>Variety</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20191122160054/https://variety.com/2017/film/news/christopher-lloyd-william-shatner-senior-moment-1202028883/">Archived</a> from the original on November 22, 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">July 27,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Variety&amp;rft.atitle=Christopher+Lloyd+Joins+William+Shatner+in+Comedy+%27Senior+Moment%27+%28Exclusive%29&amp;rft.date=2017-04-11&amp;rft.aulast=McNary&amp;rft.aufirst=Dave&amp;rft_id=https%3A%2F%2Fvariety.com%2F2017%2Ffilm%2Fnews%2Fchristopher-lloyd-william-shatner-senior-moment-1202028883%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-62">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPena2017" class="citation news cs1">Pena, Xochitl (October 23, 2017). <a rel="nofollow" class="external text" href="https://www.desertsun.com/story/life/entertainment/movies/2017/10/23/want-help-produce-film-william-shatner-film-senior-moment-needs-investors-finish/786153001/">"William Shatner movie 'Senior Moment' shot in Palm Springs could be a hit, says producer. It just needs to be edited"</a>. <i><a href="/wiki/Palm_Springs_Desert_Sun" class="mw-redirect" title="Palm Springs Desert Sun">Palm Springs Desert Sun</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180104005036/http://www.desertsun.com/story/life/entertainment/movies/2017/10/23/want-help-produce-film-william-shatner-film-senior-moment-needs-investors-finish/786153001/?from=new-cookie">Archived</a> from the original on January 4, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">July 27,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Palm+Springs+Desert+Sun&amp;rft.atitle=William+Shatner+movie+%27Senior+Moment%27+shot+in+Palm+Springs+could+be+a+hit%2C+says+producer.+It+just+needs+to+be+edited&amp;rft.date=2017-10-23&amp;rft.aulast=Pena&amp;rft.aufirst=Xochitl&amp;rft_id=https%3A%2F%2Fwww.desertsun.com%2Fstory%2Flife%2Fentertainment%2Fmovies%2F2017%2F10%2F23%2Fwant-help-produce-film-william-shatner-film-senior-moment-needs-investors-finish%2F786153001%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-63">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.filmindependent.org/programs/fiscal-sponsorship/tankhouse/">"<i>Tankhouse</i>"</a>. <i><a href="/wiki/Film_Independent" class="mw-redirect" title="Film Independent">Film Independent</a></i>. n.d. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200606173517/https://www.filmindependent.org/programs/fiscal-sponsorship/tankhouse/">Archived</a> from the original on June 6, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 27,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Film+Independent&amp;rft.atitle=Tankhouse&amp;rft_id=https%3A%2F%2Fwww.filmindependent.org%2Fprograms%2Ffiscal-sponsorship%2Ftankhouse%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-64">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFN&#39;Duka2019" class="citation magazine cs1">N'Duka, Amanda (December 16, 2019). <a rel="nofollow" class="external text" href="https://deadline.com/2019/12/christopher-lloyd-richard-kind-tankhouse-sydney-sweeney-finlay-macmillan-the-prince-of-soho-1202810921/">"Christopher Lloyd, Richard Kind Star In 'Tankhouse'; Sydney Sweeney, Finlay MacMillan Topline 'The Prince of Soho'<span class="cs1-kern-right"></span>"</a>. <i>Deadline Hollywood</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200408000646/https://deadline.com/2019/12/christopher-lloyd-richard-kind-tankhouse-sydney-sweeney-finlay-macmillan-the-prince-of-soho-1202810921/">Archived</a> from the original on April 8, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 27,</span> 2020</span>. <q>Production is currently underway with plans to film in both Fargo and Los Angeles.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Deadline+Hollywood&amp;rft.atitle=Christopher+Lloyd%2C+Richard+Kind+Star+In+%27Tankhouse%27%3B+Sydney+Sweeney%2C+Finlay+MacMillan+Topline+%27The+Prince+of+Soho%27&amp;rft.date=2019-12-16&amp;rft.aulast=N%27Duka&amp;rft.aufirst=Amanda&amp;rft_id=https%3A%2F%2Fdeadline.com%2F2019%2F12%2Fchristopher-lloyd-richard-kind-tankhouse-sydney-sweeney-finlay-macmillan-the-prince-of-soho-1202810921%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-65">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFVatnsdal2019" class="citation news cs1">Vatnsdal, Emma (September 12, 2019). <a rel="nofollow" class="external text" href="https://www.grandforksherald.com/entertainment/movies/4657971-Feature-film-begins-shooting-in-Fargo-next-week">"Feature film begins shooting in Fargo next week"</a>. <i><a href="/wiki/Grand_Forks_Herald" title="Grand Forks Herald">Grand Forks Herald</a></i>. Forum News Service. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190914101313/https://www.grandforksherald.com/entertainment/movies/4657971-Feature-film-begins-shooting-in-Fargo-next-week">Archived</a> from the original on September 14, 2019.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Grand+Forks+Herald&amp;rft.atitle=Feature+film+begins+shooting+in+Fargo+next+week&amp;rft.date=2019-09-12&amp;rft.aulast=Vatnsdal&amp;rft.aufirst=Emma&amp;rft_id=https%3A%2F%2Fwww.grandforksherald.com%2Fentertainment%2Fmovies%2F4657971-Feature-film-begins-shooting-in-Fargo-next-week&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-66">^</a></b></span><span class="reference-text"><a rel="nofollow" class="external text" href="https://deadline.com/2023/01/2023-sxsw-film-lineup-dungeons-and-dragons-opening-movie-1235218171/">SXSW 2023 Lineup Includes 'Dungeons &amp; Dragons' Opening Night World Premiere; 'Evil Dead Rise', Eva Longoria's 'Flamin' Hot', A24's 'Problemista' &amp; More</a></span></li><li id="cite_note-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-67">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFWiseman2024" class="citation web cs1">Wiseman, Andreas (July 31, 2024). <a rel="nofollow" class="external text" href="https://deadline.com/2024/07/christopher-lloyd-returns-nobody-2-universal-87-north-1236027449/">"Christopher Lloyd To Return For Universal &amp; 87North's Action Sequel 'Nobody 2'<span class="cs1-kern-right"></span>"</a>. <i><a href="/wiki/Deadline_Hollywood" title="Deadline Hollywood">Deadline Hollywood</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">July 31,</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Deadline+Hollywood&amp;rft.atitle=Christopher+Lloyd+To+Return+For+Universal+%26+87North%27s+Action+Sequel+%27Nobody+2%27&amp;rft.date=2024-07-31&amp;rft.aulast=Wiseman&amp;rft.aufirst=Andreas&amp;rft_id=https%3A%2F%2Fdeadline.com%2F2024%2F07%2Fchristopher-lloyd-returns-nobody-2-universal-87-north-1236027449%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-68">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.tcm.com/tcmdb/title/479864/stunt-seven">"<i>Stunt Seven</i>"</a>. <i>Turner Classic Movies</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170624211300/http://www.tcm.com/tcmdb/title/479864/Stunt-Seven/">Archived</a> from the original on June 24, 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Turner+Classic+Movies&amp;rft.atitle=Stunt+Seven&amp;rft_id=https%3A%2F%2Fwww.tcm.com%2Ftcmdb%2Ftitle%2F479864%2Fstunt-seven&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-69">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20200508064554/https://www.bfi.org.uk/films-tv-people/4ce2b7742582d">"<i>The Fantastic Seven</i> (1979)"</a>. <i><a href="/wiki/British_Film_Institute" title="British Film Institute">British Film Institute</a></i>. Archived from <a rel="nofollow" class="external text" href="https://www.bfi.org.uk/films-tv-people/4ce2b7742582d">the original</a> on May 8, 2020<span class="reference-accessdate">. Retrieved <span class="nowrap">July 26,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=British+Film+Institute&amp;rft.atitle=The+Fantastic+Seven+%281979%29&amp;rft_id=https%3A%2F%2Fwww.bfi.org.uk%2Ffilms-tv-people%2F4ce2b7742582d&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-70">^</a></b></span><span class="reference-text"><i>A Matter of Time: The Unauthorized Back to the Future Lexicon</i> p. 300</span></li><li id="cite_note-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-71">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPetski2023" class="citation web cs1">Petski, Denise (June 14, 2023). <a rel="nofollow" class="external text" href="https://deadline.com/2023/06/cary-elwes-stockard-channing-christopher-lloyd-paul-scheer-rob-huebel-sonic-the-hedgehog-spinoff-knuckles-1235417410/">"Cary Elwes, Stockard Channing, Christopher Lloyd, Paul Scheer &amp; Rob Huebel Join 'Sonic The Hedgehog' Spinoff Series 'Knuckles'<span class="cs1-kern-right"></span>"</a>. <i><a href="/wiki/Deadline_Hollywood" title="Deadline Hollywood">Deadline</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 14,</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Deadline&amp;rft.atitle=Cary+Elwes%2C+Stockard+Channing%2C+Christopher+Lloyd%2C+Paul+Scheer+%26+Rob+Huebel+Join+%27Sonic+The+Hedgehog%27+Spinoff+Series+%27Knuckles%27&amp;rft.date=2023-06-14&amp;rft.aulast=Petski&amp;rft.aufirst=Denise&amp;rft_id=https%3A%2F%2Fdeadline.com%2F2023%2F06%2Fcary-elwes-stockard-channing-christopher-lloyd-paul-scheer-rob-huebel-sonic-the-hedgehog-spinoff-knuckles-1235417410%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-72">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFAndreeva2024" class="citation web cs1">Andreeva, Nellie (May 7, 2024). <a rel="nofollow" class="external text" href="https://deadline.com/2024/05/wednesday-season-2-cast-billie-piper-steve-buscemi-catherine-zeta-jones-luis-guzman-promoted-1235906537/">"<span class="cs1-kern-left"></span>'Wednesday': Billie Piper Among Season 2 Cast Additions, Catherine Zeta-Jones &amp; Luis Guzmán Upped To Series Regulars As Production Starts"</a>. <i>Deadline</i><span class="reference-accessdate">. Retrieved <span class="nowrap">May 1,</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Deadline&amp;rft.atitle=%27Wednesday%27%3A+Billie+Piper+Among+Season+2+Cast+Additions%2C+Catherine+Zeta-Jones+%26+Luis+Guzm%C3%A1n+Upped+To+Series+Regulars+As+Production+Starts&amp;rft.date=2024-05-07&amp;rft.aulast=Andreeva&amp;rft.aufirst=Nellie&amp;rft_id=https%3A%2F%2Fdeadline.com%2F2024%2F05%2Fwednesday-season-2-cast-billie-piper-steve-buscemi-catherine-zeta-jones-luis-guzman-promoted-1235906537%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-73"><span class="mw-cite-backlink"><b><a href="#cite_ref-73">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20170401185955/https://www.youtube.com/watch?v=0qwZjv_DB6c">"Lego Dimensions Voice Actors Interviews"</a>. CoinOpTV. September 16, 2015. Archived from <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=0qwZjv_DB6c">the original</a> on April 1, 2017 &#8211; via YouTube. <q>Lego Dimensions features the voice talents of Chris Pratt, Alison Brie, Michael J. Fox, Gary Oldman, Irrfan Khan, Charlie Day, Ellen McLain, Stephen Merchant, Christopher Lloyd, Peter Capaldi, Jenna Coleman, Michelle Gomez, Troy Baker, Tom Kane, Joel McHale, Elizabeth Banks, Tara Strong and More!</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Lego+Dimensions+Voice+Actors+Interviews&amp;rft.pub=CoinOpTV&amp;rft.date=2015-09-16&amp;rft_id=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D0qwZjv_DB6c&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-74"><span class="mw-cite-backlink"><b><a href="#cite_ref-74">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFTraveller&#39;s_Tales" class="citation book cs1"><a href="/wiki/Traveller%27s_Tales" title="Traveller&#39;s Tales">Traveller's Tales</a>. <i><a href="/wiki/Lego_Dimensions" title="Lego Dimensions">Lego Dimensions</a></i>. <a href="/wiki/Warner_Bros._Interactive_Entertainment" class="mw-redirect" title="Warner Bros. Interactive Entertainment">Warner Bros. Interactive Entertainment</a>. Scene: Closing credits, 4:45 in, Voiceover Talent.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Lego+Dimensions&amp;rft.pages=Scene%3A+Closing+credits%2C+4%3A45+in%2C+Voiceover+Talent&amp;rft.pub=Warner+Bros.+Interactive+Entertainment&amp;rft.au=Traveller%27s+Tales&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-75"><span class="mw-cite-backlink"><b><a href="#cite_ref-75">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFThe_Odd_Gentlemen" class="citation book cs1"><a href="/wiki/The_Odd_Gentlemen" title="The Odd Gentlemen">The Odd Gentlemen</a>. <i><a href="/wiki/King%27s_Quest_(2015_video_game)" title="King&#39;s Quest (2015 video game)">King's Quest - Chapter III: Once Upon A Climb</a></i>. <a href="/wiki/Sierra_Entertainment" title="Sierra Entertainment">Sierra Entertainment</a>. Scene: Closing credits, 1 min in, Cast.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=King%27s+Quest+-+Chapter+III%3A+Once+Upon+A+Climb&amp;rft.pages=Scene%3A+Closing+credits%2C+1+min+in%2C+Cast&amp;rft.pub=Sierra+Entertainment&amp;rft.au=The+Odd+Gentlemen&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-76"><span class="mw-cite-backlink"><b><a href="#cite_ref-76">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation news cs1"><span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nytimes.com/1973/05/23/archives/-the-hot-i-baltimore-shares-obie-award-with-river-niger.html">"<span class="cs1-kern-left"></span>'The Not 1 Baltimore' Shares Obie Award With 'River Niger'<span class="cs1-kern-right"></span>"</a></span>. <i>The New York Times</i>. May 23, 1973<span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+New+York+Times&amp;rft.atitle=%27The+Not+1+Baltimore%27+Shares+Obie+Award+With+%27River+Niger%27&amp;rft.date=1973-05-23&amp;rft_id=https%3A%2F%2Fwww.nytimes.com%2F1973%2F05%2F23%2Farchives%2F-the-hot-i-baltimore-shares-obie-award-with-river-niger.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-77"><span class="mw-cite-backlink"><b><a href="#cite_ref-77">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://s3.amazonaws.com/SA_SubForm_etc/2016_SA_NomsWinners_031316.pdf">"31 Years of Nominees and Winners — Film"</a><span class="cs1-format">(PDF)</span>. <i><a href="/wiki/Independent_Spirit_Awards" class="mw-redirect" title="Independent Spirit Awards">Independent Spirit Awards</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">November 2,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Independent+Spirit+Awards&amp;rft.atitle=31+Years+of+Nominees+and+Winners+%E2%80%94+Film&amp;rft_id=https%3A%2F%2Fs3.amazonaws.com%2FSA_SubForm_etc%2F2016_SA_NomsWinners_031316.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-78"><span class="mw-cite-backlink"><b><a href="#cite_ref-78">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130402154806/http://www.razzies.com/history/2012-worst-screen-ensemble.asp">"The 33rd Annual RAZZIE Award Nominees fir 2012"</a>. <i>Razzies.com</i>. Archived from <a rel="nofollow" class="external text" href="http://razzies.com/history/2012-worst-screen-ensemble.asp">the original</a> on April 2, 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">April 5,</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Razzies.com&amp;rft.atitle=The+33rd+Annual+RAZZIE+Award+Nominees+fir+2012&amp;rft_id=http%3A%2F%2Frazzies.com%2Fhistory%2F2012-worst-screen-ensemble.asp&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-79"><span class="mw-cite-backlink"><b><a href="#cite_ref-79">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.bifa.film/awards/nominations">"Nominations"</a>. <i><a href="/wiki/British_Independent_Film_Awards" title="British Independent Film Awards">British Independent Film Awards</a></i>. October 24, 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">November 2,</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=British+Independent+Film+Awards&amp;rft.atitle=Nominations&amp;rft.date=2018-10-24&amp;rft_id=https%3A%2F%2Fwww.bifa.film%2Fawards%2Fnominations&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li><li id="cite_note-80"><span class="mw-cite-backlink"><b><a href="#cite_ref-80">^</a></b></span><span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFThomas_J.2017" class="citation pressrelease cs1">Thomas J., Allen (March 20, 2017). <a rel="nofollow" class="external text" href="https://navgtr.org/2016-awards/">"2016 Awards"</a> (Press release). San Francisco, CA: National Academy of Video Game Trade Reviewers Corp<span class="reference-accessdate">. Retrieved <span class="nowrap">December 9,</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=2016+Awards&amp;rft.place=San+Francisco%2C+CA&amp;rft.pub=National+Academy+of+Video+Game+Trade+Reviewers+Corp.&amp;rft.date=2017-03-20&amp;rft.aulast=Thomas+J.&amp;rft.aufirst=Allen&amp;rft_id=https%3A%2F%2Fnavgtr.org%2F2016-awards%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span></span></li></ol></div></div><div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div><ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFNapoleon1991" class="citation book cs1"><a href="/wiki/Davi_Napoleon" title="Davi Napoleon">Napoleon, Davi</a> (1991). <a href="/wiki/Chelsea_on_the_Edge:_The_Adventures_of_an_American_Theater" class="mw-redirect" title="Chelsea on the Edge: The Adventures of an American Theater"><i>Chelsea on the Edge: The Adventures of an American Theater</i></a>. Iowa State University Press. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0-8138-1713-2" title="Special:BookSources/978-0-8138-1713-2"><bdi>978-0-8138-1713-2</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Chelsea+on+the+Edge%3A+The+Adventures+of+an+American+Theater&amp;rft.pub=Iowa+State+University+Press&amp;rft.date=1991&amp;rft.isbn=978-0-8138-1713-2&amp;rft.aulast=Napoleon&amp;rft.aufirst=Davi&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AChristopher+Lloyd" class="Z3988"></span> Contains discussion of his early work <a href="/wiki/Off-Broadway" title="Off-Broadway">Off-Broadway</a>, including the production of <i>Happy End</i> at the <a href="/wiki/Chelsea_Theater_Center" title="Chelsea Theater Center">Chelsea Theater Center</a>, and on Broadway, <i>Kaspar</i> and <i>Total Eclipse</i>.</li></ul><div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div><style data-mw-deduplicate="TemplateStyles:r1308029216">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:640px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><style data-mw-deduplicate="TemplateStyles:r1311551236">@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{filter:invert(1)brightness(55%)contrast(250%)hue-rotate(180deg)}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{filter:invert(1)brightness(55%)contrast(250%)hue-rotate(180deg)}}</style><div class="side-box side-box-right plainlinks sistersitebox"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1126788409" /><div class="side-box-flex"><div class="side-box-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Commons-logo.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/40px-Commons-logo.svg.png" decoding="async" width="30" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/60px-Commons-logo.svg.png 1.5x" data-file-width="1024" data-file-height="1376" /></a></span></div><div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:Christopher_Lloyd" class="extiw" title="commons:Category:Christopher Lloyd">Christopher Lloyd</a></span>.</div></div></div><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1308029216" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1311551236" /><div class="side-box side-box-right plainlinks sistersitebox"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1126788409" /><div class="side-box-flex"><div class="side-box-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Wikiquote-logo.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/40px-Wikiquote-logo.svg.png" decoding="async" width="34" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/60px-Wikiquote-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/120px-Wikiquote-logo.svg.png 2x" data-file-width="300" data-file-height="355" /></a></span></div><div class="side-box-text plainlist">Wikiquote has quotations related to <i><b><a href="https://en.wikiquote.org/wiki/Special:Search/Christopher_Lloyd" class="extiw" title="q:Special:Search/Christopher Lloyd">Christopher Lloyd</a></b></i>.</div></div></div><ul><li><a rel="nofollow" class="external text" href="https://www.imdb.com/name/nm0000502/">Christopher Lloyd</a> at <a href="/wiki/IMDb_(identifier)" class="mw-redirect" title="IMDb (identifier)">IMDb</a></li><li><a rel="nofollow" class="external text" href="https://www.ibdb.com/broadway-cast-staff/80508">Christopher Lloyd</a> at the <a href="/wiki/Internet_Broadway_Database" title="Internet Broadway Database">Internet Broadway Database</a></li><li><a rel="nofollow" class="external text" href="https://web.archive.org/web/http://www.iobdb.com/CreditableEntity/5595">Christopher Lloyd</a> at the <a href="/wiki/Internet_Off-Broadway_Database" title="Internet Off-Broadway Database">Internet Off-Broadway Database</a> (archived)</li><li><a rel="nofollow" class="external text" href="https://www.tcm.com/tcmdb/person/115116%7C0/wp">Christopher Lloyd</a> at the <a href="/wiki/Turner_Classic_Movies" title="Turner Classic Movies">TCM Movie Database</a><span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q109324#P3056" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" data-file-width="20" data-file-height="20" /></a></span></li><li><a rel="nofollow" class="external text" href="https://www.discogs.com/artist/Christopher+Lloyd+%283%29">Christopher Lloyd</a> discography at <a href="/wiki/Discogs" title="Discogs">Discogs</a></li></ul><div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Awards_for_Christopher_Lloyd95" style="padding:3px"><table class="nowraplinks mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2" style="background:#e8e8ff;"><div id="Awards_for_Christopher_Lloyd95" style="font-size:114%;margin:0 4em">Awards for Christopher Lloyd</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0;font-size:114%"><div style="padding:0px"><div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235" /></div><div role="navigation" class="navbox" aria-labelledby="Primetime_Emmy_Award_for_Outstanding_Lead_Actor_in_a_Drama_Series2316" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2" style="background: #F9EFAA;"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:EmmyAward_DramaLeadActor" title="Template:EmmyAward DramaLeadActor"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:EmmyAward_DramaLeadActor" title="Template talk:EmmyAward DramaLeadActor"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:EmmyAward_DramaLeadActor" title="Special:EditPage/Template:EmmyAward DramaLeadActor"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Primetime_Emmy_Award_for_Outstanding_Lead_Actor_in_a_Drama_Series2316" style="font-size:114%;margin:0 4em"><a href="/wiki/Primetime_Emmy_Award_for_Outstanding_Lead_Actor_in_a_Drama_Series" title="Primetime Emmy Award for Outstanding Lead Actor in a Drama Series">Primetime Emmy Award for Outstanding Lead Actor in a Drama Series</a></div></th></tr><tr><th scope="row" class="navbox-group" style="background: #F9EFAA;;width:1%">1954–1975</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Donald_O%27Connor" title="Donald O&#39;Connor">Donald O'Connor</a> (1954)</span></li><li><span class="nowrap"><a href="/wiki/Danny_Thomas" title="Danny Thomas">Danny Thomas</a> (1955)</span></li><li><span class="nowrap"><a href="/wiki/Phil_Silvers" title="Phil Silvers">Phil Silvers</a> (1956)</span></li><li><span class="nowrap"><a href="/wiki/Robert_Young_(actor)" title="Robert Young (actor)">Robert Young</a> (1957)</span></li><li><span class="nowrap"><a href="/wiki/Robert_Young_(actor)" title="Robert Young (actor)">Robert Young</a> (1958)</span></li><li><span class="nowrap"><a href="/wiki/Raymond_Burr" title="Raymond Burr">Raymond Burr</a> (1959)</span></li><li><span class="nowrap"><a href="/wiki/Robert_Stack" title="Robert Stack">Robert Stack</a> (1960)</span></li><li><span class="nowrap"><a href="/wiki/Raymond_Burr" title="Raymond Burr">Raymond Burr</a> (1961)</span></li><li><span class="nowrap"><a href="/wiki/E._G._Marshall" title="E. G. Marshall">E. G. Marshall</a> (1962)</span></li><li><span class="nowrap"><a href="/wiki/E._G._Marshall" title="E. G. Marshall">E. G. Marshall</a> (1963)</span></li><li><span class="nowrap"><a href="/wiki/Dick_Van_Dyke" title="Dick Van Dyke">Dick Van Dyke</a> (1964)</span></li><li><span class="nowrap"><a href="/wiki/Leonard_Bernstein" title="Leonard Bernstein">Leonard Bernstein</a> / <a href="/wiki/Lynn_Fontanne" title="Lynn Fontanne">Lynn Fontanne</a> / <a href="/wiki/Alfred_Lunt" title="Alfred Lunt">Alfred Lunt</a> / <a href="/wiki/Barbra_Streisand" title="Barbra Streisand">Barbra Streisand</a> / <a href="/wiki/Dick_Van_Dyke" title="Dick Van Dyke">Dick Van Dyke</a> (1965)</span></li><li><span class="nowrap"><a href="/wiki/Bill_Cosby" title="Bill Cosby">Bill Cosby</a> (1966)</span></li><li><span class="nowrap"><a href="/wiki/Bill_Cosby" title="Bill Cosby">Bill Cosby</a> (1967)</span></li><li><span class="nowrap"><a href="/wiki/Bill_Cosby" title="Bill Cosby">Bill Cosby</a> (1968)</span></li><li><span class="nowrap"><a href="/wiki/Carl_Betz" title="Carl Betz">Carl Betz</a> (1969)</span></li><li><span class="nowrap"><a href="/wiki/Robert_Young_(actor)" title="Robert Young (actor)">Robert Young</a> (1970)</span></li><li><span class="nowrap"><a href="/wiki/Hal_Holbrook" title="Hal Holbrook">Hal Holbrook</a> (1971)</span></li><li><span class="nowrap"><a href="/wiki/Peter_Falk" title="Peter Falk">Peter Falk</a> (1972)</span></li><li><span class="nowrap"><a href="/wiki/Richard_Thomas_(actor)" title="Richard Thomas (actor)">Richard Thomas</a> (1973)</span></li><li><span class="nowrap"><a href="/wiki/Telly_Savalas" title="Telly Savalas">Telly Savalas</a> (1974)</span></li><li><span class="nowrap"><a href="/wiki/Robert_Blake_(actor)" title="Robert Blake (actor)">Robert Blake</a> (1975)</span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="background: #F9EFAA;;width:1%">1976–2000</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Peter_Falk" title="Peter Falk">Peter Falk</a> (1976)</span></li><li><span class="nowrap"><a href="/wiki/James_Garner" title="James Garner">James Garner</a> (1977)</span></li><li><span class="nowrap"><a href="/wiki/Ed_Asner" title="Ed Asner">Ed Asner</a> (1978)</span></li><li><span class="nowrap"><a href="/wiki/Ron_Leibman" title="Ron Leibman">Ron Leibman</a> (1979)</span></li><li><span class="nowrap"><a href="/wiki/Ed_Asner" title="Ed Asner">Ed Asner</a> (1980)</span></li><li><span class="nowrap"><a href="/wiki/Daniel_J._Travanti" title="Daniel J. Travanti">Daniel J. Travanti</a> (1981)</span></li><li><span class="nowrap"><a href="/wiki/Daniel_J._Travanti" title="Daniel J. Travanti">Daniel J. Travanti</a> (1982)</span></li><li><span class="nowrap"><a href="/wiki/Ed_Flanders" title="Ed Flanders">Ed Flanders</a> (1983)</span></li><li><span class="nowrap"><a href="/wiki/Tom_Selleck" title="Tom Selleck">Tom Selleck</a> (1984)</span></li><li><span class="nowrap"><a href="/wiki/William_Daniels" title="William Daniels">William Daniels</a> (1985)</span></li><li><span class="nowrap"><a href="/wiki/William_Daniels" title="William Daniels">William Daniels</a> (1986)</span></li><li><span class="nowrap"><a href="/wiki/Bruce_Willis" title="Bruce Willis">Bruce Willis</a> (1987)</span></li><li><span class="nowrap"><a href="/wiki/Richard_Kiley" title="Richard Kiley">Richard Kiley</a> (1988)</span></li><li><span class="nowrap"><a href="/wiki/Carroll_O%27Connor" title="Carroll O&#39;Connor">Carroll O'Connor</a> (1989)</span></li><li><span class="nowrap"><a href="/wiki/Peter_Falk" title="Peter Falk">Peter Falk</a> (1990)</span></li><li><span class="nowrap"><a href="/wiki/James_Earl_Jones" title="James Earl Jones">James Earl Jones</a> (1991)</span></li><li><span class="nowrap"><a class="mw-selflink selflink">Christopher Lloyd</a> (1992)</span></li><li><span class="nowrap"><a href="/wiki/Tom_Skerritt" title="Tom Skerritt">Tom Skerritt</a> (1993)</span></li><li><span class="nowrap"><a href="/wiki/Dennis_Franz" title="Dennis Franz">Dennis Franz</a> (1994)</span></li><li><span class="nowrap"><a href="/wiki/Mandy_Patinkin" title="Mandy Patinkin">Mandy Patinkin</a> (1995)</span></li><li><span class="nowrap"><a href="/wiki/Dennis_Franz" title="Dennis Franz">Dennis Franz</a> (1996)</span></li><li><span class="nowrap"><a href="/wiki/Dennis_Franz" title="Dennis Franz">Dennis Franz</a> (1997)</span></li><li><span class="nowrap"><a href="/wiki/Andre_Braugher" title="Andre Braugher">Andre Braugher</a> (1998)</span></li><li><span class="nowrap"><a href="/wiki/Dennis_Franz" title="Dennis Franz">Dennis Franz</a> (1999)</span></li><li><span class="nowrap"><a href="/wiki/James_Gandolfini" title="James Gandolfini">James Gandolfini</a> (2000)</span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="background: #F9EFAA;;width:1%">2001–present</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/James_Gandolfini" title="James Gandolfini">James Gandolfini</a> (2001)</span></li><li><span class="nowrap"><a href="/wiki/Michael_Chiklis" title="Michael Chiklis">Michael Chiklis</a> (2002)</span></li><li><span class="nowrap"><a href="/wiki/James_Gandolfini" title="James Gandolfini">James Gandolfini</a> (2003)</span></li><li><span class="nowrap"><a href="/wiki/James_Spader" title="James Spader">James Spader</a> (2004)</span></li><li><span class="nowrap"><a href="/wiki/James_Spader" title="James Spader">James Spader</a> (2005)</span></li><li><span class="nowrap"><a href="/wiki/Kiefer_Sutherland" title="Kiefer Sutherland">Kiefer Sutherland</a> (2006)</span></li><li><span class="nowrap"><a href="/wiki/James_Spader" title="James Spader">James Spader</a> (2007)</span></li><li><span class="nowrap"><a href="/wiki/Bryan_Cranston" title="Bryan Cranston">Bryan Cranston</a> (2008)</span></li><li><span class="nowrap"><a href="/wiki/Bryan_Cranston" title="Bryan Cranston">Bryan Cranston</a> (2009)</span></li><li><span class="nowrap"><a href="/wiki/Bryan_Cranston" title="Bryan Cranston">Bryan Cranston</a> (2010)</span></li><li><span class="nowrap"><a href="/wiki/Kyle_Chandler" title="Kyle Chandler">Kyle Chandler</a> (2011)</span></li><li><span class="nowrap"><a href="/wiki/Damian_Lewis" title="Damian Lewis">Damian Lewis</a> (2012)</span></li><li><span class="nowrap"><a href="/wiki/Jeff_Daniels" title="Jeff Daniels">Jeff Daniels</a> (2013)</span></li><li><span class="nowrap"><a href="/wiki/Bryan_Cranston" title="Bryan Cranston">Bryan Cranston</a> (2014)</span></li><li><span class="nowrap"><a href="/wiki/Jon_Hamm" title="Jon Hamm">Jon Hamm</a> (2015)</span></li><li><span class="nowrap"><a href="/wiki/Rami_Malek" title="Rami Malek">Rami Malek</a> (2016)</span></li><li><span class="nowrap"><a href="/wiki/Sterling_K._Brown" title="Sterling K. Brown">Sterling K. Brown</a> (2017)</span></li><li><span class="nowrap"><a href="/wiki/Matthew_Rhys" title="Matthew Rhys">Matthew Rhys</a> (2018)</span></li><li><span class="nowrap"><a href="/wiki/Billy_Porter" title="Billy Porter">Billy Porter</a> (2019)</span></li><li><span class="nowrap"><a href="/wiki/Jeremy_Strong" title="Jeremy Strong">Jeremy Strong</a> (2020)</span></li><li><span class="nowrap"><a href="/wiki/Josh_O%27Connor" title="Josh O&#39;Connor">Josh O'Connor</a> (2021)</span></li><li><span class="nowrap"><a href="/wiki/Lee_Jung-jae" title="Lee Jung-jae">Lee Jung-jae</a> (2022)</span></li><li><span class="nowrap"><a href="/wiki/Kieran_Culkin" title="Kieran Culkin">Kieran Culkin</a> (2023)</span></li><li><span class="nowrap"><a href="/wiki/Hiroyuki_Sanada" title="Hiroyuki Sanada">Hiroyuki Sanada</a> (2024)</span></li><li><span class="nowrap"><a href="/wiki/Noah_Wyle" title="Noah Wyle">Noah Wyle</a> (2025)</span></li></ul></div></td></tr></tbody></table></div><div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235" /></div><div role="navigation" class="navbox" aria-labelledby="Primetime_Emmy_Award_for_Outstanding_Supporting_Actor_in_a_Comedy_Series2091" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2" style="background: #F9EFAA;"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231" /><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:EmmyAward_ComedySupportingActor" title="Template:EmmyAward ComedySupportingActor"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:EmmyAward_ComedySupportingActor" title="Template talk:EmmyAward ComedySupportingActor"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:EmmyAward_ComedySupportingActor" title="Special:EditPage/Template:EmmyAward ComedySupportingActor"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Primetime_Emmy_Award_for_Outstanding_Supporting_Actor_in_a_Comedy_Series2091" style="font-size:114%;margin:0 4em"><a href="/wiki/Primetime_Emmy_Award_for_Outstanding_Supporting_Actor_in_a_Comedy_Series" title="Primetime Emmy Award for Outstanding Supporting Actor in a Comedy Series">Primetime Emmy Award for Outstanding Supporting Actor in a Comedy Series</a></div></th></tr><tr><th scope="row" class="navbox-group" style="background: #F9EFAA;;width:1%">1954–1975</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Art_Carney" title="Art Carney">Art Carney</a> (1954)</span></li><li><span class="nowrap"><a href="/wiki/Art_Carney" title="Art Carney">Art Carney</a> (1955)</span></li><li><span class="nowrap"><a href="/wiki/Art_Carney" title="Art Carney">Art Carney</a> (1956)</span></li><li><span class="nowrap"><a href="/wiki/Carl_Reiner" title="Carl Reiner">Carl Reiner</a> (1957)</span></li><li><span class="nowrap"><a href="/wiki/Carl_Reiner" title="Carl Reiner">Carl Reiner</a> (1958)</span></li><li><span class="nowrap"><a href="/wiki/Tom_Poston" title="Tom Poston">Tom Poston</a> (1959)</span></li><li><span class="nowrap"><a href="/wiki/Don_Knotts" title="Don Knotts">Don Knotts</a> (1961)</span></li><li><span class="nowrap"><a href="/wiki/Don_Knotts" title="Don Knotts">Don Knotts</a> (1962)</span></li><li><span class="nowrap"><a href="/wiki/Don_Knotts" title="Don Knotts">Don Knotts</a> (1963)</span></li><li><span class="nowrap"><a href="/wiki/Don_Knotts" title="Don Knotts">Don Knotts</a> (1966)</span></li><li><span class="nowrap"><a href="/wiki/Don_Knotts" title="Don Knotts">Don Knotts</a> (1967)</span></li><li><span class="nowrap"><a href="/wiki/Werner_Klemperer" title="Werner Klemperer">Werner Klemperer</a> (1968)</span></li><li><span class="nowrap"><a href="/wiki/Werner_Klemperer" title="Werner Klemperer">Werner Klemperer</a> (1969)</span></li><li><span class="nowrap"><a href="/wiki/Michael_Constantine" title="Michael Constantine">Michael Constantine</a> (1970)</span></li><li><span class="nowrap"><a href="/wiki/Ed_Asner" title="Ed Asner">Ed Asner</a> (1971)</span></li><li><span class="nowrap"><a href="/wiki/Ed_Asner" title="Ed Asner">Ed Asner</a> (1972)</span></li><li><span class="nowrap"><a href="/wiki/Ted_Knight" title="Ted Knight">Ted Knight</a> (1973)</span></li><li><span class="nowrap"><a href="/wiki/Rob_Reiner" title="Rob Reiner">Rob Reiner</a> (1974)</span></li><li><span class="nowrap"><a href="/wiki/Ed_Asner" title="Ed Asner">Ed Asner</a> (1975)</span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="background: #F9EFAA;;width:1%">1976–2000</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Ted_Knight" title="Ted Knight">Ted Knight</a> (1976)</span></li><li><span class="nowrap"><a href="/wiki/Gary_Burghoff" title="Gary Burghoff">Gary Burghoff</a> (1977)</span></li><li><span class="nowrap"><a href="/wiki/Rob_Reiner" title="Rob Reiner">Rob Reiner</a> (1978)</span></li><li><span class="nowrap"><a href="/wiki/Robert_Guillaume" title="Robert Guillaume">Robert Guillaume</a> (1979)</span></li><li><span class="nowrap"><a href="/wiki/Harry_Morgan" title="Harry Morgan">Harry Morgan</a> (1980)</span></li><li><span class="nowrap"><a href="/wiki/Danny_DeVito" title="Danny DeVito">Danny DeVito</a> (1981)</span></li><li><span class="nowrap"><a class="mw-selflink selflink">Christopher Lloyd</a> (1982)</span></li><li><span class="nowrap"><a class="mw-selflink selflink">Christopher Lloyd</a> (1983)</span></li><li><span class="nowrap"><a href="/wiki/Pat_Harrington_Jr." title="Pat Harrington Jr.">Pat Harrington Jr.</a> (1984)</span></li><li><span class="nowrap"><a href="/wiki/John_Larroquette" title="John Larroquette">John Larroquette</a> (1985)</span></li><li><span class="nowrap"><a href="/wiki/John_Larroquette" title="John Larroquette">John Larroquette</a> (1986)</span></li><li><span class="nowrap"><a href="/wiki/John_Larroquette" title="John Larroquette">John Larroquette</a> (1987)</span></li><li><span class="nowrap"><a href="/wiki/John_Larroquette" title="John Larroquette">John Larroquette</a> (1988)</span></li><li><span class="nowrap"><a href="/wiki/Woody_Harrelson" title="Woody Harrelson">Woody Harrelson</a> (1989)</span></li><li><span class="nowrap"><a href="/wiki/Alex_Rocco" title="Alex Rocco">Alex Rocco</a> (1990)</span></li><li><span class="nowrap"><a href="/wiki/Jonathan_Winters" title="Jonathan Winters">Jonathan Winters</a> (1991)</span></li><li><span class="nowrap"><a href="/wiki/Michael_Jeter" title="Michael Jeter">Michael Jeter</a> (1992)</span></li><li><span class="nowrap"><a href="/wiki/Michael_Richards" title="Michael Richards">Michael Richards</a> (1993)</span></li><li><span class="nowrap"><a href="/wiki/Michael_Richards" title="Michael Richards">Michael Richards</a> (1994)</span></li><li><span class="nowrap"><a href="/wiki/David_Hyde_Pierce" title="David Hyde Pierce">David Hyde Pierce</a> (1995)</span></li><li><span class="nowrap"><a href="/wiki/Rip_Torn" title="Rip Torn">Rip Torn</a> (1996)</span></li><li><span class="nowrap"><a href="/wiki/Michael_Richards" title="Michael Richards">Michael Richards</a> (1997)</span></li><li><span class="nowrap"><a href="/wiki/David_Hyde_Pierce" title="David Hyde Pierce">David Hyde Pierce</a> (1998)</span></li><li><span class="nowrap"><a href="/wiki/David_Hyde_Pierce" title="David Hyde Pierce">David Hyde Pierce</a> (1999)</span></li><li><span class="nowrap"><a href="/wiki/Sean_Hayes" title="Sean Hayes">Sean Hayes</a> (2000)</span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="background: #F9EFAA;;width:1%">2001–present</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Peter_MacNicol" title="Peter MacNicol">Peter MacNicol</a> (2001)</span></li><li><span class="nowrap"><a href="/wiki/Brad_Garrett" title="Brad Garrett">Brad Garrett</a> (2002)</span></li><li><span class="nowrap"><a href="/wiki/Brad_Garrett" title="Brad Garrett">Brad Garrett</a> (2003)</span></li><li><span class="nowrap"><a href="/wiki/David_Hyde_Pierce" title="David Hyde Pierce">David Hyde Pierce</a> (2004)</span></li><li><span class="nowrap"><a href="/wiki/Brad_Garrett" title="Brad Garrett">Brad Garrett</a> (2005)</span></li><li><span class="nowrap"><a href="/wiki/Jeremy_Piven" title="Jeremy Piven">Jeremy Piven</a> (2006)</span></li><li><span class="nowrap"><a href="/wiki/Jeremy_Piven" title="Jeremy Piven">Jeremy Piven</a> (2007)</span></li><li><span class="nowrap"><a href="/wiki/Jeremy_Piven" title="Jeremy Piven">Jeremy Piven</a> (2008)</span></li><li><span class="nowrap"><a href="/wiki/Jon_Cryer" title="Jon Cryer">Jon Cryer</a> (2009)</span></li><li><span class="nowrap"><a href="/wiki/Eric_Stonestreet" title="Eric Stonestreet">Eric Stonestreet</a> (2010)</span></li><li><span class="nowrap"><a href="/wiki/Ty_Burrell" title="Ty Burrell">Ty Burrell</a> (2011)</span></li><li><span class="nowrap"><a href="/wiki/Eric_Stonestreet" title="Eric Stonestreet">Eric Stonestreet</a> (2012)</span></li><li><span class="nowrap"><a href="/wiki/Tony_Hale" title="Tony Hale">Tony Hale</a> (2013)</span></li><li><span class="nowrap"><a href="/wiki/Ty_Burrell" title="Ty Burrell">Ty Burrell</a> (2014)</span></li><li><span class="nowrap"><a href="/wiki/Tony_Hale" title="Tony Hale">Tony Hale</a> (2015)</span></li><li><span class="nowrap"><a href="/wiki/Louie_Anderson" title="Louie Anderson">Louie Anderson</a> (2016)</span></li><li><span class="nowrap"><a href="/wiki/Alec_Baldwin" title="Alec Baldwin">Alec Baldwin</a> (2017)</span></li><li><span class="nowrap"><a href="/wiki/Henry_Winkler" title="Henry Winkler">Henry Winkler</a> (2018)</span></li><li><span class="nowrap"><a href="/wiki/Tony_Shalhoub" title="Tony Shalhoub">Tony Shalhoub</a> (2019)</span></li><li><span class="nowrap"><a href="/wiki/Dan_Levy_(Canadian_actor)" title="Dan Levy (Canadian actor)">Dan Levy</a> (2020)</span></li><li><span class="nowrap"><a href="/wiki/Brett_Goldstein" title="Brett Goldstein">Brett Goldstein</a> (2021)</span></li><li><span class="nowrap"><a href="/wiki/Brett_Goldstein" title="Brett Goldstein">Brett Goldstein</a> (2022)</span></li><li><span class="nowrap"><a href="/wiki/Ebon_Moss-Bachrach" title="Ebon Moss-Bachrach">Ebon Moss-Bachrach</a> (2023)</span></li><li><span class="nowrap"><a href="/wiki/Ebon_Moss-Bachrach" title="Ebon Moss-Bachrach">Ebon Moss-Bachrach</a> (2024)</span></li><li><span class="nowrap"><a href="/wiki/Jeff_Hiller" title="Jeff Hiller">Jeff Hiller</a> (2025)</span></li></ul></div></td></tr></tbody></table></div><div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235" /></div><div role="navigation" class="navbox" aria-labelledby="Independent_Spirit_Award_for_Best_Supporting_Male1176" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2" style="background: #D8BFD8"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231" /><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Independent_Spirit_Award_for_Best_Supporting_Male" title="Template:Independent Spirit Award for Best Supporting Male"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Independent_Spirit_Award_for_Best_Supporting_Male" title="Template talk:Independent Spirit Award for Best Supporting Male"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Independent_Spirit_Award_for_Best_Supporting_Male" title="Special:EditPage/Template:Independent Spirit Award for Best Supporting Male"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Independent_Spirit_Award_for_Best_Supporting_Male1176" style="font-size:114%;margin:0 4em"><a href="/wiki/Independent_Spirit_Award_for_Best_Supporting_Male" title="Independent Spirit Award for Best Supporting Male">Independent Spirit Award for Best Supporting Male</a></div></th></tr><tr><th scope="row" class="navbox-group" style="background: #D8BFD8;width:1%">1980s</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Morgan_Freeman" title="Morgan Freeman">Morgan Freeman</a> (1987)</span></li><li><span class="nowrap"><a href="/wiki/Lou_Diamond_Phillips" title="Lou Diamond Phillips">Lou Diamond Phillips</a> (1988)</span></li><li><span class="nowrap"><a href="/wiki/Max_Perlich" title="Max Perlich">Max Perlich</a> (1989)</span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="background: #D8BFD8;width:1%">1990s</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Bruce_Davison" title="Bruce Davison">Bruce Davison</a> (1990)</span></li><li><span class="nowrap"><a href="/wiki/David_Strathairn" title="David Strathairn">David Strathairn</a> (1991)</span></li><li><span class="nowrap"><a href="/wiki/Steve_Buscemi" title="Steve Buscemi">Steve Buscemi</a> (1992)</span></li><li><span class="nowrap"><a class="mw-selflink selflink">Christopher Lloyd</a> (1993)</span></li><li><span class="nowrap"><a href="/wiki/Chazz_Palminteri" title="Chazz Palminteri">Chazz Palminteri</a> (1994)</span></li><li><span class="nowrap"><a href="/wiki/Benicio_del_Toro" title="Benicio del Toro">Benicio del Toro</a> (1995)</span></li><li><span class="nowrap"><a href="/wiki/Benicio_del_Toro" title="Benicio del Toro">Benicio del Toro</a> (1996)</span></li><li><span class="nowrap"><a href="/wiki/Jason_Lee_(actor)" class="mw-redirect" title="Jason Lee (actor)">Jason Lee</a> (1997)</span></li><li><span class="nowrap"><a href="/wiki/Bill_Murray" title="Bill Murray">Bill Murray</a> (1998)</span></li><li><span class="nowrap"><a href="/wiki/Steve_Zahn" title="Steve Zahn">Steve Zahn</a> (1999)</span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="background: #D8BFD8;width:1%">2000s</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Willem_Dafoe" title="Willem Dafoe">Willem Dafoe</a> (2000)</span></li><li><span class="nowrap"><a href="/wiki/Steve_Buscemi" title="Steve Buscemi">Steve Buscemi</a> (2001)</span></li><li><span class="nowrap"><a href="/wiki/Dennis_Quaid" title="Dennis Quaid">Dennis Quaid</a> (2002)</span></li><li><span class="nowrap"><a href="/wiki/Djimon_Hounsou" title="Djimon Hounsou">Djimon Hounsou</a> (2003)</span></li><li><span class="nowrap"><a href="/wiki/Thomas_Haden_Church" title="Thomas Haden Church">Thomas Haden Church</a> (2004)</span></li><li><span class="nowrap"><a href="/wiki/Matt_Dillon" title="Matt Dillon">Matt Dillon</a> (2005)</span></li><li><span class="nowrap"><a href="/wiki/Alan_Arkin" title="Alan Arkin">Alan Arkin</a> (2006)</span></li><li><span class="nowrap"><a href="/wiki/Chiwetel_Ejiofor" title="Chiwetel Ejiofor">Chiwetel Ejiofor</a> (2007)</span></li><li><span class="nowrap"><a href="/wiki/James_Franco" title="James Franco">James Franco</a> (2008)</span></li><li><span class="nowrap"><a href="/wiki/Woody_Harrelson" title="Woody Harrelson">Woody Harrelson</a> (2009)</span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="background: #D8BFD8;width:1%">2010s</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/John_Hawkes_(actor)" title="John Hawkes (actor)">John Hawkes</a> (2010)</span></li><li><span class="nowrap"><a href="/wiki/Christopher_Plummer" title="Christopher Plummer">Christopher Plummer</a> (2011)</span></li><li><span class="nowrap"><a href="/wiki/Matthew_McConaughey" title="Matthew McConaughey">Matthew McConaughey</a> (2012)</span></li><li><span class="nowrap"><a href="/wiki/Jared_Leto" title="Jared Leto">Jared Leto</a> (2013)</span></li><li><span class="nowrap"><a href="/wiki/J._K._Simmons" title="J. K. Simmons">J. K. Simmons</a> (2014)</span></li><li><span class="nowrap"><a href="/wiki/Idris_Elba" title="Idris Elba">Idris Elba</a> (2015)</span></li><li><span class="nowrap"><a href="/wiki/Ben_Foster_(actor)" title="Ben Foster (actor)">Ben Foster</a> (2016)</span></li><li><span class="nowrap"><a href="/wiki/Sam_Rockwell" title="Sam Rockwell">Sam Rockwell</a> (2017)</span></li><li><span class="nowrap"><a href="/wiki/Richard_E._Grant" title="Richard E. Grant">Richard E. Grant</a> (2018)</span></li><li><span class="nowrap"><a href="/wiki/Willem_Dafoe" title="Willem Dafoe">Willem Dafoe</a> (2019)</span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="background: #D8BFD8;width:1%">2020s</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="nowrap"><a href="/wiki/Paul_Raci" title="Paul Raci">Paul Raci</a> (2020)</span></li><li><span class="nowrap"><a href="/wiki/Troy_Kotsur" title="Troy Kotsur">Troy Kotsur</a> (2021)</span></li></ul></div></td></tr></tbody></table></div></div></td></tr></tbody></table></div><div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235" /></div><div role="navigation" class="navbox" aria-labelledby="Back_to_the_Future1757" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231" /><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Back_to_the_Future" title="Template:Back to the Future"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Back_to_the_Future" title="Template talk:Back to the Future"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Back_to_the_Future" title="Special:EditPage/Template:Back to the Future"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Back_to_the_Future1757" style="font-size:114%;margin:0 4em"><i><a href="/wiki/Back_to_the_Future_(franchise)" title="Back to the Future (franchise)">Back to the Future</a></i></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Films</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><i><a href="/wiki/Back_to_the_Future" title="Back to the Future">Back to the Future</a></i> (1985)</li><li><i><a href="/wiki/Back_to_the_Future_Part_II" title="Back to the Future Part II">Back to the Future Part II</a></i> (1989)</li><li><i><a href="/wiki/Back_to_the_Future_Part_III" title="Back to the Future Part III">Back to the Future Part III</a></i> (1990)</li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/List_of_Back_to_the_Future_characters" class="mw-redirect" title="List of Back to the Future characters">Characters</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><a href="/wiki/Marty_McFly" title="Marty McFly">Marty McFly</a></li><li><a href="/wiki/Emmett_Brown" title="Emmett Brown">Emmett "Doc" Brown</a></li><li><a href="/wiki/Biff_Tannen" title="Biff Tannen">Biff Tannen</a></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Music_of_the_Back_to_the_Future_franchise" title="Music of the Back to the Future franchise">Music</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li>"<a href="/wiki/The_Power_of_Love_(Huey_Lewis_and_the_News_song)" title="The Power of Love (Huey Lewis and the News song)">The Power of Love</a>"</li><li>"<a href="/wiki/Doubleback" title="Doubleback">Doubleback</a>"</li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/List_of_Back_to_the_Future_video_games" title="List of Back to the Future video games">Video games</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><i><a href="/wiki/Back_to_the_Future_(1985_video_game)" title="Back to the Future (1985 video game)">Back to the Future</a></i> (1985)</li><li><i><a href="/wiki/Back_to_the_Future_(1989_video_game)" title="Back to the Future (1989 video game)">Back to the Future</a></i> (1989)</li><li><i><a href="/wiki/Back_to_the_Future_Part_II_(video_game)" title="Back to the Future Part II (video game)">Back to the Future Part II</a></i> (1990)</li><li><i><a href="/wiki/Back_to_the_Future_Part_II_%26_III" title="Back to the Future Part II &amp; III">Back to the Future Part II &amp; III</a></i> (1990)</li><li><i><a href="/wiki/Back_to_the_Future_Part_III_(video_game)" title="Back to the Future Part III (video game)">Back to the Future Part III</a></i> (1991)</li><li><i><a href="/wiki/Super_Back_to_the_Future_II" title="Super Back to the Future II">Super Back to the Future II</a></i> (1993)</li><li><i><a href="/wiki/Back_to_the_Future:_The_Game" title="Back to the Future: The Game">Back to the Future: The Game</a></i> (2010)</li><li><i><a href="/wiki/Lego_Dimensions" title="Lego Dimensions">Lego Dimensions</a></i> (2015)</li><li><i><a href="/wiki/Funko_Fusion" title="Funko Fusion">Funko Fusion</a></i> (2024)</li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other media</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><a href="/wiki/Back_to_the_Future:_The_Ride" title="Back to the Future: The Ride">Theme park attraction</a></li><li><a href="/wiki/Back_to_the_Future_(TV_series)" title="Back to the Future (TV series)">TV series</a></li><li><i><a href="/wiki/Back_to_the_Future:_The_Pinball" title="Back to the Future: The Pinball">The Pinball</a></i></li><li><a href="/wiki/Transformers/Back_to_the_Future" title="Transformers/Back to the Future"><i>Transformers</i> crossover</a></li><li><i><a href="/wiki/Back_in_Time_(2015_film)" title="Back in Time (2015 film)">Back in Time</a></i></li><li><a href="/wiki/Back_to_the_Future:_The_Musical" title="Back to the Future: The Musical">musical</a></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Universe</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><a href="/wiki/DeLorean_time_machine" title="DeLorean time machine">DeLorean time machine</a></li><li>"<a href="/wiki/Great_Scott" title="Great Scott">Great Scott!</a>"</li><li><a href="/wiki/Hill_Valley_(Back_to_the_Future)" title="Hill Valley (Back to the Future)">Hill Valley</a></li><li><a href="/wiki/Hoverboard" title="Hoverboard">Hoverboard</a></li><li><a href="/wiki/Self-tying_shoes" title="Self-tying shoes">Self-tying shoes</a></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Legacy</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><i><a href="/wiki/The_Earth_Day_Special" title="The Earth Day Special">The Earth Day Special</a></i></li><li><i><a href="/wiki/Rick_and_Morty" title="Rick and Morty">Rick and Morty</a></i></li><li><a href="/wiki/Nike_Mag" title="Nike Mag">Nike Mag</a></li></ul></div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/20px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/40px-Symbol_category_class.svg.png 1.5x" data-file-width="180" data-file-height="185" /></span></span><a href="/wiki/Category:Back_to_the_Future_(franchise)" title="Category:Back to the Future (franchise)">Category</a></div></td></tr></tbody></table></div><div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235" /></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q109324#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata2248" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q109324#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata2248" style="font-size:114%;margin:0 4em"><a href="/wiki/Help:Authority_control" title="Help:Authority control">Authority control databases</a><span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q109324#identifiers" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" data-file-width="20" data-file-height="20" /></a></span></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">International</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://isni.org/isni/0000000108603576">ISNI</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://viaf.org/viaf/119544974">VIAF</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/123903998">GND</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.worldcat.org/fast/1505165">FAST</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.oclc.org/worldcat/entity/E39PBJmhKV9YJrMxFWDP9v34v3">WorldCat</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/n92047017">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb14002533j">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb14002533j">BnF data</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&amp;local_base=aut&amp;ccl_term=ica=xx0182296&amp;CON_LNG=ENG">Czech Republic</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://datos.bne.es/resource/XX1266207">Spain</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="http://data.bibliotheken.nl/id/thes/p085763527">Netherlands</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://authority.bibsys.no/authority/rest/authorities/html/99008646">Norway</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://dbn.bn.org.pl/descriptor-details/9810698706705606">Poland</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007573291005171">Israel</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://cantic.bnc.cat/registre/981058519698706706">Catalonia</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Artists</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://musicbrainz.org/artist/dddb9db8-9b96-4483-bf77-acc172006035">MusicBrainz</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.emmys.com/bios/christopher-lloyd">Emmy Awards</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.idref.fr/162541686">IdRef</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://snaccooperative.org/ark:/99166/w6cj92dc">SNAC</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/person/2214b879-87a6-4222-ab86-640b13848e9e">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div><!-- NewPP limit reportParsed by mw‐web.codfw.main‐5b846fd6fc‐99lw9Cached time: 20250925023518Cache expiry: 2592000Reduced expiry: falseComplications: [vary‐revision‐sha1, show‐toc]CPU time usage: 1.526 secondsReal time usage: 1.807 secondsPreprocessor visited node count: 9063/1000000Revision size: 71086/2097152 bytesPost‐expand include size: 288248/2097152 bytesTemplate argument size: 49737/2097152 bytesHighest expansion depth: 25/100Expensive parser function count: 8/500Unstrip recursion depth: 1/20Unstrip post‐expand size: 335560/5000000 bytesLua time usage: 0.883/10.000 secondsLua memory usage: 10729328/52428800 bytesNumber of Wikibase entities loaded: 1/500--><!--Transclusion expansion time report (%,ms,calls,template)100.00% 1489.307 1 -total 37.64% 560.516 1 Template:Reflist 22.09% 328.960 1 Template:Infobox_person 14.99% 223.275 31 Template:Cite_web 10.81% 160.948 20 Template:Pluralize_from_text 9.52% 141.755 28 Template:Cite_news 8.86% 131.926 1 Template:Navboxes 8.86% 131.880 1 Template:Plainlist 8.53% 127.087 4 Template:Navbox 8.44% 125.686 5 Template:Marriage--><!-- Saved in parser cache with key enwiki:pcache:256406:|#|:idhash:canonical and timestamp 20250925023518 and revision id 1312904724. Rendering was triggered because: page_view --></div><noscript><img src="https://en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&amp;usesul3=1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript><div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Christopher_Lloyd&amp;oldid=1312904724">https://en.wikipedia.org/w/index.php?title=Christopher_Lloyd&amp;oldid=1312904724</a>"</div></div><div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:1938_births" title="Category:1938 births">1938 births</a></li><li><a href="/wiki/Category:Living_people" title="Category:Living people">Living people</a></li><li><a href="/wiki/Category:20th-century_American_male_actors" title="Category:20th-century American male actors">20th-century American male actors</a></li><li><a href="/wiki/Category:21st-century_American_male_actors" title="Category:21st-century American male actors">21st-century American male actors</a></li><li><a href="/wiki/Category:American_male_film_actors" title="Category:American male film actors">American male film actors</a></li><li><a href="/wiki/Category:American_male_television_actors" title="Category:American male television actors">American male television actors</a></li><li><a href="/wiki/Category:American_male_video_game_actors" title="Category:American male video game actors">American male video game actors</a></li><li><a href="/wiki/Category:American_male_voice_actors" title="Category:American male voice actors">American male voice actors</a></li><li><a href="/wiki/Category:American_people_of_English_descent" title="Category:American people of English descent">American people of English descent</a></li><li><a href="/wiki/Category:American_people_of_Welsh_descent" title="Category:American people of Welsh descent">American people of Welsh descent</a></li><li><a href="/wiki/Category:Audiobook_narrators" title="Category:Audiobook narrators">Audiobook narrators</a></li><li><a href="/wiki/Category:Darrow_School_alumni" title="Category:Darrow School alumni">Darrow School alumni</a></li><li><a href="/wiki/Category:Best_Supporting_Male_Independent_Spirit_Award_winners" title="Category:Best Supporting Male Independent Spirit Award winners">Best Supporting Male Independent Spirit Award winners</a></li><li><a href="/wiki/Category:Male_actors_from_Santa_Barbara_County,_California" title="Category:Male actors from Santa Barbara County, California">Male actors from Santa Barbara County, California</a></li><li><a href="/wiki/Category:Male_actors_from_Stamford,_Connecticut" title="Category:Male actors from Stamford, Connecticut">Male actors from Stamford, Connecticut</a></li><li><a href="/wiki/Category:Male_Western_(genre)_film_actors" title="Category:Male Western (genre) film actors">Male Western (genre) film actors</a></li><li><a href="/wiki/Category:Neighborhood_Playhouse_School_of_the_Theatre_alumni" title="Category:Neighborhood Playhouse School of the Theatre alumni">Neighborhood Playhouse School of the Theatre alumni</a></li><li><a href="/wiki/Category:Obie_Award_recipients" title="Category:Obie Award recipients">Obie Award recipients</a></li><li><a href="/wiki/Category:Outstanding_Performance_by_a_Lead_Actor_in_a_Drama_Series_Primetime_Emmy_Award_winners" title="Category:Outstanding Performance by a Lead Actor in a Drama Series Primetime Emmy Award winners">Outstanding Performance by a Lead Actor in a Drama Series Primetime Emmy Award winners</a></li><li><a href="/wiki/Category:Outstanding_Performance_by_a_Supporting_Actor_in_a_Comedy_Series_Primetime_Emmy_Award_winners" title="Category:Outstanding Performance by a Supporting Actor in a Comedy Series Primetime Emmy Award winners">Outstanding Performance by a Supporting Actor in a Comedy Series Primetime Emmy Award winners</a></li><li><a href="/wiki/Category:People_from_Montecito,_California" title="Category:People from Montecito, California">People from Montecito, California</a></li><li><a href="/wiki/Category:Lapham_family" title="Category:Lapham family">Lapham family</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:CS1_maint:_postscript" title="Category:CS1 maint: postscript">CS1 maint: postscript</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Wikipedia_pages_semi-protected_against_vandalism" title="Category:Wikipedia pages semi-protected against vandalism">Wikipedia pages semi-protected against vandalism</a></li><li><a href="/wiki/Category:Use_American_English_from_September_2021" title="Category:Use American English from September 2021">Use American English from September 2021</a></li><li><a href="/wiki/Category:All_Wikipedia_articles_written_in_American_English" title="Category:All Wikipedia articles written in American English">All Wikipedia articles written in American English</a></li><li><a href="/wiki/Category:Use_mdy_dates_from_February_2023" title="Category:Use mdy dates from February 2023">Use mdy dates from February 2023</a></li><li><a href="/wiki/Category:Articles_with_hCards" title="Category:Articles with hCards">Articles with hCards</a></li><li><a href="/wiki/Category:Commons_category_link_is_on_Wikidata" title="Category:Commons category link is on Wikidata">Commons category link is on Wikidata</a></li><li><a href="/wiki/Category:Internet_Broadway_Database_person_ID_same_as_Wikidata" title="Category:Internet Broadway Database person ID same as Wikidata">Internet Broadway Database person ID same as Wikidata</a></li><li><a href="/wiki/Category:Internet_Off-Broadway_Database_person_ID_same_as_Wikidata" title="Category:Internet Off-Broadway Database person ID same as Wikidata">Internet Off-Broadway Database person ID same as Wikidata</a></li><li><a href="/wiki/Category:TCMDb_name_template_using_non-numeric_ID_from_Wikidata" title="Category:TCMDb name template using non-numeric ID from Wikidata">TCMDb name template using non-numeric ID from Wikidata</a></li></ul></div></div></div></main></div><div class="mw-footer-container"><footer id="footer" class="mw-footer" ><ul id="footer-info"><li id="footer-info-lastmod"> This page was last edited on 23 September 2025, at 07:30<span class="anonymous-show">&#160;(UTC)</span>.</li><li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>;additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li></ul><ul id="footer-places"><li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li><li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li><li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li><li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li><li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li><li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li><li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li><li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li><li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Christopher_Lloyd&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li></ul><ul id="footer-icons" class="noprint"><li id="footer-copyrightico"><a href="https://www.wikimedia.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></a></li><li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" lang="en" width="25" height="25" loading="lazy"></picture></a></li></ul></footer></div></div></div><div class="vector-header-container vector-sticky-header-container no-font-mode-scale"><div id="vector-sticky-header" class="vector-sticky-header"><div class="vector-sticky-header-start"><div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"><button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span><span>Search</span></button></div><div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"><div class="vector-typeahead-search-container"><div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"><form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"><div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"><div class="cdx-text-input cdx-text-input--has-start-icon"><input class="cdx-text-input__input mw-searchInput" autocomplete="off" type="search" name="search" placeholder="Search Wikipedia"><span class="cdx-text-input__icon cdx-text-input__start-icon"></span></div><input type="hidden" name="title" value="Special:Search"></div><button class="cdx-button cdx-search-input__end-button">Search</button></form></div></div></div><div class="vector-sticky-header-context-bar"><nav aria-label="Contents" class="vector-toc-landmark"><div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" ><input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" ><label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span><span class="vector-dropdown-label-text">Toggle the table of contents</span></label><div class="vector-dropdown-content"><div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"></div></div></div></nav><div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Christopher Lloyd</span></div></div></div><div class="vector-sticky-header-end" aria-hidden="true"><div class="vector-sticky-header-icons"><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span><span></span></a><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span><span></span></a><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span><span></span></a><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span><span></span></a><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only reading-lists-bookmark" id="ca-bookmark-sticky-header" tabindex="-1" data-event-name="watch-sticky-bookmark"><span class="vector-icon mw-ui-icon-wikimedia-bookmarkOutline mw-ui-icon-wikimedia-wikimedia-bookmarkOutline"></span><span></span></a><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span><span></span></a><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span><span></span></a><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span><span></span></a></div><div class="vector-sticky-header-buttons"><button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span><span>59 languages</span></button><a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span><span>Add topic</span></a></div><div class="vector-sticky-header-icon-end"><div class="vector-user-links"></div></div></div></div></div><div class="mw-portlet mw-portlet-dock-bottom emptyPortlet" id="p-dock-bottom"><ul></ul></div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-5b846fd6fc-lk9wt","wgBackendResponseTime":140,"wgPageParseReport":{"limitreport":{"cputime":"1.526","walltime":"1.807","ppvisitednodes":{"value":9063,"limit":1000000},"revisionsize":{"value":71086,"limit":2097152},"postexpandincludesize":{"value":288248,"limit":2097152},"templateargumentsize":{"value":49737,"limit":2097152},"expansiondepth":{"value":25,"limit":100},"expensivefunctioncount":{"value":8,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":335560,"limit":5000000},"entityaccesscount":{"value":1,"limit":500},"timingprofile":["100.00% 1489.307 1 -total"," 37.64% 560.516 1 Template:Reflist"," 22.09% 328.960 1 Template:Infobox_person"," 14.99% 223.275 31 Template:Cite_web"," 10.81% 160.948 20 Template:Pluralize_from_text"," 9.52% 141.755 28 Template:Cite_news"," 8.86% 131.926 1 Template:Navboxes"," 8.86% 131.880 1 Template:Plainlist"," 8.53% 127.087 4 Template:Navbox"," 8.44% 125.686 5 Template:Marriage"]},"scribunto":{"limitreport-timeusage":{"value":"0.883","limit":"10.000"},"limitreport-memusage":{"value":10729328,"limit":52428800},"limitreport-logs":"table#1 {\n}\n\"\"\ntable#1 {\n}\n\"\"\ntable#1 {\n}\n\"\"\ntable#1 {\n}\n\"\"\ntable#1 {\n}\n\"\"\n"},"cachereport":{"origin":"mw-web.codfw.main-5b846fd6fc-99lw9","timestamp":"20250925023518","ttl":2592000,"transientcontent":false}}});});</script><script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Christopher Lloyd","url":"https:\/\/en.wikipedia.org\/wiki\/Christopher_Lloyd","sameAs":"http:\/\/www.wikidata.org\/entity\/Q109324","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q109324","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2003-07-02T02:26:15Z","dateModified":"2025-09-23T07:30:28Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/c\/cf\/ChristopherLloyd2022.jpg","headline":"American actor (born 1938)"}</script></body></html>
+25
internal/articles/rules/.wikipedia.org.txt
··· 1 + title: //h1[@id='firstHeading'] 2 + body: //div[@id = 'bodyContent'] 3 + strip_id_or_class: editsection 4 + #strip_id_or_class: toc 5 + strip_id_or_class: vertical-navbox 6 + strip: //*[@id='toc'] 7 + strip: //div[@id='catlinks'] 8 + strip: //div[@id='jump-to-nav'] 9 + strip: //div[@class='thumbcaption']//div[@class='magnify'] 10 + strip: //table[@class='navbox'] 11 + #strip: //table[contains(@class, 'infobox')] 12 + strip: //div[@class='dablink'] 13 + strip: //div[@id='contentSub'] 14 + strip: //table[contains(@class, 'metadata')] 15 + strip: //*[contains(@class, 'noprint')] 16 + strip: //span[@class='noexcerpt'] 17 + strip: //math 18 + 19 + http_header(user-agent): Mozilla/5.2 20 + 21 + prune: no 22 + tidy: no 23 + test_url: http://en.wikipedia.org/wiki/Christopher_Lloyd 24 + test_url: https://en.wikipedia.org/wiki/Ronnie_James_Dio 25 + test_url: https://en.wikipedia.org/wiki/Metallica
+9
internal/articles/rules/arxiv.org.txt
··· 1 + title: //h1[contains(concat(' ',normalize-space(@class),' '),' title ')] 2 + 3 + body: //blockquote[contains(concat(' ',normalize-space(@class),' '),' abstract ')] 4 + 5 + date: //meta[@name='citation_date']/@content 6 + author: //meta[@name='citation_author']/@content 7 + 8 + test_url: https://arxiv.org/abs/2009.03017 9 + test_url: https://arxiv.org/abs/2012.03780
+13
internal/articles/rules/baseballprospectus.com.txt
··· 1 + title: //h1[@class='title'] 2 + author: //p[@class="author"]/a[1] 3 + body: //div[@class="article"] 4 + date: //p[@class="date"] 5 + 6 + # remove user tools 7 + strip: //div[@class='tools'] 8 + strip: //h1 9 + strip: //h2[@class='subtitle'] 10 + strip: //p[@class='author'] 11 + strip: //p[@class='date'] 12 + 13 + test_url: http://www.baseballprospectus.com/article.php?articleid=18463
+317
internal/repo/article_repository.go
··· 1 + package repo 2 + 3 + import ( 4 + "context" 5 + "database/sql" 6 + "fmt" 7 + "strings" 8 + "time" 9 + 10 + "github.com/stormlightlabs/noteleaf/internal/models" 11 + "github.com/stormlightlabs/noteleaf/internal/services" 12 + ) 13 + 14 + // ArticleRepository provides database operations for articles 15 + type ArticleRepository struct { 16 + db *sql.DB 17 + } 18 + 19 + // NewArticleRepository creates a new article repository 20 + func NewArticleRepository(db *sql.DB) *ArticleRepository { 21 + return &ArticleRepository{db: db} 22 + } 23 + 24 + // ArticleListOptions defines filtering options for listing articles 25 + type ArticleListOptions struct { 26 + URL string 27 + Title string 28 + Author string 29 + DateFrom string 30 + DateTo string 31 + Limit int 32 + Offset int 33 + } 34 + 35 + // Create stores a new article and returns its assigned ID 36 + func (r *ArticleRepository) Create(ctx context.Context, article *models.Article) (int64, error) { 37 + if err := r.Validate(article); err != nil { 38 + return 0, err 39 + } 40 + 41 + now := time.Now() 42 + article.Created = now 43 + article.Modified = now 44 + 45 + query := ` 46 + INSERT INTO articles (url, title, author, date, markdown_path, html_path, created, modified) 47 + VALUES (?, ?, ?, ?, ?, ?, ?, ?)` 48 + 49 + result, err := r.db.ExecContext(ctx, query, 50 + article.URL, article.Title, article.Author, article.Date, 51 + article.MarkdownPath, article.HTMLPath, article.Created, article.Modified) 52 + if err != nil { 53 + return 0, fmt.Errorf("failed to insert article: %w", err) 54 + } 55 + 56 + id, err := result.LastInsertId() 57 + if err != nil { 58 + return 0, fmt.Errorf("failed to get last insert id: %w", err) 59 + } 60 + 61 + article.ID = id 62 + return id, nil 63 + } 64 + 65 + // Get retrieves an article by its ID 66 + func (r *ArticleRepository) Get(ctx context.Context, id int64) (*models.Article, error) { 67 + query := ` 68 + SELECT id, url, title, author, date, markdown_path, html_path, created, modified 69 + FROM articles WHERE id = ?` 70 + 71 + row := r.db.QueryRowContext(ctx, query, id) 72 + 73 + var article models.Article 74 + err := row.Scan(&article.ID, &article.URL, &article.Title, &article.Author, &article.Date, 75 + &article.MarkdownPath, &article.HTMLPath, &article.Created, &article.Modified) 76 + if err != nil { 77 + if err == sql.ErrNoRows { 78 + return nil, fmt.Errorf("article with id %d not found", id) 79 + } 80 + return nil, fmt.Errorf("failed to scan article: %w", err) 81 + } 82 + 83 + return &article, nil 84 + } 85 + 86 + // GetByURL retrieves an article by its URL 87 + func (r *ArticleRepository) GetByURL(ctx context.Context, url string) (*models.Article, error) { 88 + query := ` 89 + SELECT id, url, title, author, date, markdown_path, html_path, created, modified 90 + FROM articles WHERE url = ?` 91 + 92 + row := r.db.QueryRowContext(ctx, query, url) 93 + 94 + var article models.Article 95 + err := row.Scan(&article.ID, &article.URL, &article.Title, &article.Author, &article.Date, 96 + &article.MarkdownPath, &article.HTMLPath, &article.Created, &article.Modified) 97 + if err != nil { 98 + if err == sql.ErrNoRows { 99 + return nil, fmt.Errorf("article with url %s not found", url) 100 + } 101 + return nil, fmt.Errorf("failed to scan article: %w", err) 102 + } 103 + 104 + return &article, nil 105 + } 106 + 107 + // Update modifies an existing article 108 + func (r *ArticleRepository) Update(ctx context.Context, article *models.Article) error { 109 + if err := r.Validate(article); err != nil { 110 + return err 111 + } 112 + 113 + article.Modified = time.Now() 114 + 115 + query := ` 116 + UPDATE articles 117 + SET title = ?, author = ?, date = ?, markdown_path = ?, html_path = ?, modified = ? 118 + WHERE id = ?` 119 + 120 + result, err := r.db.ExecContext(ctx, query, 121 + article.Title, article.Author, article.Date, article.MarkdownPath, 122 + article.HTMLPath, article.Modified, article.ID) 123 + if err != nil { 124 + return fmt.Errorf("failed to update article: %w", err) 125 + } 126 + 127 + rowsAffected, err := result.RowsAffected() 128 + if err != nil { 129 + return fmt.Errorf("failed to get rows affected: %w", err) 130 + } 131 + 132 + if rowsAffected == 0 { 133 + return fmt.Errorf("article with id %d not found", article.ID) 134 + } 135 + 136 + return nil 137 + } 138 + 139 + // Delete removes an article from the database 140 + func (r *ArticleRepository) Delete(ctx context.Context, id int64) error { 141 + query := "DELETE FROM articles WHERE id = ?" 142 + 143 + result, err := r.db.ExecContext(ctx, query, id) 144 + if err != nil { 145 + return fmt.Errorf("failed to delete article: %w", err) 146 + } 147 + 148 + rowsAffected, err := result.RowsAffected() 149 + if err != nil { 150 + return fmt.Errorf("failed to get rows affected: %w", err) 151 + } 152 + 153 + if rowsAffected == 0 { 154 + return fmt.Errorf("article with id %d not found", id) 155 + } 156 + 157 + return nil 158 + } 159 + 160 + // List retrieves articles with optional filtering 161 + func (r *ArticleRepository) List(ctx context.Context, opts *ArticleListOptions) ([]*models.Article, error) { 162 + query := ` 163 + SELECT id, url, title, author, date, markdown_path, html_path, created, modified 164 + FROM articles` 165 + 166 + var conditions []string 167 + var args []any 168 + 169 + if opts != nil { 170 + if opts.URL != "" { 171 + conditions = append(conditions, "url LIKE ?") 172 + args = append(args, "%"+opts.URL+"%") 173 + } 174 + if opts.Title != "" { 175 + conditions = append(conditions, "title LIKE ?") 176 + args = append(args, "%"+opts.Title+"%") 177 + } 178 + if opts.Author != "" { 179 + conditions = append(conditions, "author LIKE ?") 180 + args = append(args, "%"+opts.Author+"%") 181 + } 182 + if opts.DateFrom != "" { 183 + conditions = append(conditions, "date >= ?") 184 + args = append(args, opts.DateFrom) 185 + } 186 + if opts.DateTo != "" { 187 + conditions = append(conditions, "date <= ?") 188 + args = append(args, opts.DateTo) 189 + } 190 + } 191 + 192 + if len(conditions) > 0 { 193 + query += " WHERE " + strings.Join(conditions, " AND ") 194 + } 195 + 196 + query += " ORDER BY created DESC" 197 + 198 + if opts != nil && opts.Limit > 0 { 199 + query += " LIMIT ?" 200 + args = append(args, opts.Limit) 201 + if opts.Offset > 0 { 202 + query += " OFFSET ?" 203 + args = append(args, opts.Offset) 204 + } 205 + } 206 + 207 + rows, err := r.db.QueryContext(ctx, query, args...) 208 + if err != nil { 209 + return nil, fmt.Errorf("failed to query articles: %w", err) 210 + } 211 + defer rows.Close() 212 + 213 + var articles []*models.Article 214 + for rows.Next() { 215 + var article models.Article 216 + err := rows.Scan(&article.ID, &article.URL, &article.Title, &article.Author, &article.Date, 217 + &article.MarkdownPath, &article.HTMLPath, &article.Created, &article.Modified) 218 + if err != nil { 219 + return nil, fmt.Errorf("failed to scan article: %w", err) 220 + } 221 + articles = append(articles, &article) 222 + } 223 + 224 + if err = rows.Err(); err != nil { 225 + return nil, fmt.Errorf("error iterating over articles: %w", err) 226 + } 227 + 228 + return articles, nil 229 + } 230 + 231 + // Count returns the total number of articles matching the given options 232 + func (r *ArticleRepository) Count(ctx context.Context, opts *ArticleListOptions) (int64, error) { 233 + query := "SELECT COUNT(*) FROM articles" 234 + 235 + var conditions []string 236 + var args []any 237 + 238 + if opts != nil { 239 + if opts.URL != "" { 240 + conditions = append(conditions, "url LIKE ?") 241 + args = append(args, "%"+opts.URL+"%") 242 + } 243 + if opts.Title != "" { 244 + conditions = append(conditions, "title LIKE ?") 245 + args = append(args, "%"+opts.Title+"%") 246 + } 247 + if opts.Author != "" { 248 + conditions = append(conditions, "author LIKE ?") 249 + args = append(args, "%"+opts.Author+"%") 250 + } 251 + if opts.DateFrom != "" { 252 + conditions = append(conditions, "date >= ?") 253 + args = append(args, opts.DateFrom) 254 + } 255 + if opts.DateTo != "" { 256 + conditions = append(conditions, "date <= ?") 257 + args = append(args, opts.DateTo) 258 + } 259 + } 260 + 261 + if len(conditions) > 0 { 262 + query += " WHERE " + strings.Join(conditions, " AND ") 263 + } 264 + 265 + var count int64 266 + err := r.db.QueryRowContext(ctx, query, args...).Scan(&count) 267 + if err != nil { 268 + return 0, fmt.Errorf("failed to count articles: %w", err) 269 + } 270 + 271 + return count, nil 272 + } 273 + 274 + // Validate validates a model using the validation service 275 + func (r *ArticleRepository) Validate(model models.Model) error { 276 + article, ok := (model).(*models.Article) 277 + if !ok { 278 + return services.ValidationError{ 279 + Field: "model", 280 + Message: "expected Article model", 281 + } 282 + } 283 + 284 + validator := services.NewValidator() 285 + 286 + validator.Check(services.RequiredString("URL", article.URL)) 287 + validator.Check(services.RequiredString("Title", article.Title)) 288 + validator.Check(services.RequiredString("MarkdownPath", article.MarkdownPath)) 289 + validator.Check(services.RequiredString("HTMLPath", article.HTMLPath)) 290 + 291 + validator.Check(services.ValidURL("URL", article.URL)) 292 + 293 + validator.Check(services.ValidFilePath("MarkdownPath", article.MarkdownPath)) 294 + validator.Check(services.ValidFilePath("HTMLPath", article.HTMLPath)) 295 + 296 + if article.Date != "" { 297 + validator.Check(services.ValidDate("Date", article.Date)) 298 + } 299 + 300 + validator.Check(services.StringLength("Title", article.Title, 1, 500)) 301 + validator.Check(services.StringLength("Author", article.Author, 0, 200)) 302 + 303 + if article.ID > 0 { 304 + validator.Check(services.PositiveID("ID", article.ID)) 305 + } 306 + 307 + if !article.Created.IsZero() && !article.Modified.IsZero() { 308 + if article.Created.After(article.Modified) { 309 + validator.Check(services.ValidationError{ 310 + Field: "Created", 311 + Message: "cannot be after Modified timestamp", 312 + }) 313 + } 314 + } 315 + 316 + return validator.Errors() 317 + }
+545
internal/repo/article_repository_test.go
··· 1 + package repo 2 + 3 + import ( 4 + "context" 5 + "strings" 6 + "testing" 7 + "time" 8 + 9 + _ "github.com/mattn/go-sqlite3" 10 + "github.com/stormlightlabs/noteleaf/internal/models" 11 + ) 12 + 13 + func TestArticleRepository(t *testing.T) { 14 + db := CreateTestDB(t) 15 + repo := NewArticleRepository(db) 16 + ctx := context.Background() 17 + articles := CreateFakeArticles(10) 18 + 19 + t.Run("CRUD Operations", func(t *testing.T) { 20 + t.Run("Create", func(t *testing.T) { 21 + t.Run("successfully creates an article", func(t *testing.T) { 22 + article := articles[0] 23 + id, err := repo.Create(ctx, article) 24 + AssertNoError(t, err, "Failed to create article") 25 + AssertNotEqual(t, int64(0), id, "Expected non-zero ID") 26 + AssertEqual(t, id, article.ID, "Expected article ID to be set correctly") 27 + AssertFalse(t, article.Created.IsZero(), "Expected Created timestamp to be set") 28 + AssertFalse(t, article.Modified.IsZero(), "Expected Modified timestamp to be set") 29 + }) 30 + 31 + t.Run("Fails with missing title", func(t *testing.T) { 32 + article := articles[1] 33 + article.Title = "" 34 + _, err := repo.Create(ctx, article) 35 + AssertError(t, err, "Expected error when creating article with empty title") 36 + }) 37 + 38 + t.Run("Fails with missing URL", func(t *testing.T) { 39 + article := articles[2] 40 + article.URL = "" 41 + _, err := repo.Create(ctx, article) 42 + AssertError(t, err, "Expected error when creating article with empty URL") 43 + }) 44 + 45 + t.Run("Fails with duplicate URL", func(t *testing.T) { 46 + article1 := articles[0] 47 + article2 := articles[1] 48 + article2.URL = article1.URL 49 + _, err := repo.Create(ctx, article2) 50 + AssertError(t, err, "Expected error when creating article with duplicate URL") 51 + }) 52 + 53 + t.Run("Fails with missing markdown path", func(t *testing.T) { 54 + article := articles[3] 55 + article.MarkdownPath = "" 56 + _, err := repo.Create(ctx, article) 57 + AssertError(t, err, "Expected error when creating article with empty markdown path") 58 + AssertContains(t, err.Error(), "MarkdownPath", "Expected MarkdownPath validation error") 59 + }) 60 + 61 + t.Run("Fails with missing HTML path", func(t *testing.T) { 62 + article := articles[4] 63 + article.HTMLPath = "" 64 + _, err := repo.Create(ctx, article) 65 + 66 + AssertError(t, err, "Expected error when creating article with empty HTML path") 67 + AssertContains(t, err.Error(), "HTMLPath", "Expected HTMLPath validation error") 68 + }) 69 + 70 + t.Run("Fails with invalid URL format", func(t *testing.T) { 71 + article := articles[5] 72 + article.URL = "not-a-valid-url" 73 + _, err := repo.Create(ctx, article) 74 + AssertError(t, err, "Expected error when creating article with invalid URL format") 75 + AssertContains(t, err.Error(), "URL", "Expected URL format validation error") 76 + }) 77 + 78 + t.Run("Fails with invalid date format", func(t *testing.T) { 79 + article := articles[6] 80 + article.Date = "invalid-date" 81 + _, err := repo.Create(ctx, article) 82 + AssertError(t, err, "Expected error when creating article with invalid date format") 83 + AssertContains(t, err.Error(), "Date", "Expected date validation error") 84 + }) 85 + 86 + t.Run("Fails with title too long", func(t *testing.T) { 87 + article := articles[7] 88 + article.Title = strings.Repeat("a", 501) 89 + _, err := repo.Create(ctx, article) 90 + AssertError(t, err, "Expected error when creating article with title too long") 91 + AssertContains(t, err.Error(), "Title", "Expected title length validation error") 92 + }) 93 + 94 + t.Run("Fails with author too long", func(t *testing.T) { 95 + article := articles[8] 96 + article.Author = strings.Repeat("a", 201) 97 + _, err := repo.Create(ctx, article) 98 + AssertError(t, err, "Expected error when creating article with author too long") 99 + AssertContains(t, err.Error(), "Author", "Expected author length validation error") 100 + }) 101 + }) 102 + 103 + t.Run("Get", func(t *testing.T) { 104 + t.Run("successfully retrieves an article", func(t *testing.T) { 105 + original := CreateFakeArticle() 106 + id, err := repo.Create(ctx, original) 107 + AssertNoError(t, err, "Failed to create article") 108 + 109 + retrieved, err := repo.Get(ctx, id) 110 + AssertNoError(t, err, "Failed to get article") 111 + AssertEqual(t, original.ID, retrieved.ID, "ID mismatch") 112 + AssertEqual(t, original.URL, retrieved.URL, "URL mismatch") 113 + AssertEqual(t, original.Title, retrieved.Title, "Title mismatch") 114 + AssertEqual(t, original.Author, retrieved.Author, "Author mismatch") 115 + AssertEqual(t, original.Date, retrieved.Date, "Date mismatch") 116 + AssertEqual(t, original.MarkdownPath, retrieved.MarkdownPath, "MarkdownPath mismatch") 117 + AssertEqual(t, original.HTMLPath, retrieved.HTMLPath, "HTMLPath mismatch") 118 + }) 119 + 120 + t.Run("Fails when ID isn't found", func(t *testing.T) { 121 + nonExistentID := int64(99999) 122 + _, err := repo.Get(ctx, nonExistentID) 123 + AssertError(t, err, "Expected error when getting non-existent article") 124 + AssertContains(t, err.Error(), "not found", "Expected 'not found' in error message") 125 + }) 126 + }) 127 + 128 + t.Run("Update", func(t *testing.T) { 129 + t.Run("successfully updates an article", func(t *testing.T) { 130 + article := CreateFakeArticle() 131 + id, err := repo.Create(ctx, article) 132 + AssertNoError(t, err, "Failed to create article") 133 + 134 + originalModified := article.Modified 135 + article.Title = "Updated Title" 136 + article.Author = "Updated Author" 137 + article.Date = "2024-01-02" 138 + article.MarkdownPath = "/updated/path/article.md" 139 + article.HTMLPath = "/updated/path/article.html" 140 + 141 + err = repo.Update(ctx, article) 142 + AssertNoError(t, err, "Failed to update article") 143 + 144 + retrieved, err := repo.Get(ctx, id) 145 + AssertNoError(t, err, "Failed to get updated article") 146 + AssertEqual(t, "Updated Title", retrieved.Title, "Expected updated title") 147 + AssertEqual(t, "Updated Author", retrieved.Author, "Expected updated author") 148 + AssertEqual(t, "2024-01-02", retrieved.Date, "Expected updated date") 149 + AssertEqual(t, "/updated/path/article.md", retrieved.MarkdownPath, "Expected updated markdown path") 150 + AssertEqual(t, "/updated/path/article.html", retrieved.HTMLPath, "Expected updated HTML path") 151 + AssertTrue(t, retrieved.Modified.After(originalModified), "Expected Modified timestamp to be updated") 152 + }) 153 + 154 + t.Run("Fails when ID isn't found", func(t *testing.T) { 155 + article := CreateFakeArticle() 156 + article.ID = 99999 157 + err := repo.Update(ctx, article) 158 + AssertError(t, err, "Expected error when updating non-existent article") 159 + AssertContains(t, err.Error(), "not found", "Expected 'not found' in error message") 160 + }) 161 + 162 + t.Run("Fails when trying to remove required value", func(t *testing.T) { 163 + article := CreateFakeArticle() 164 + _, err := repo.Create(ctx, article) 165 + AssertNoError(t, err, "Failed to create article") 166 + 167 + article.Title = "" 168 + err = repo.Update(ctx, article) 169 + AssertError(t, err, "Expected error when updating article with empty title") 170 + }) 171 + 172 + t.Run("Fails when setting invalid URL format", func(t *testing.T) { 173 + article := CreateFakeArticle() 174 + _, err := repo.Create(ctx, article) 175 + AssertNoError(t, err, "Failed to create article") 176 + 177 + article.URL = "not-a-valid-url" 178 + err = repo.Update(ctx, article) 179 + AssertError(t, err, "Expected error when updating article with invalid URL format") 180 + AssertContains(t, err.Error(), "URL", "Expected URL format validation error") 181 + }) 182 + 183 + t.Run("Fails when setting invalid date format", func(t *testing.T) { 184 + article := CreateFakeArticle() 185 + _, err := repo.Create(ctx, article) 186 + AssertNoError(t, err, "Failed to create article") 187 + 188 + article.Date = "invalid-date" 189 + err = repo.Update(ctx, article) 190 + AssertError(t, err, "Expected error when updating article with invalid date format") 191 + AssertContains(t, err.Error(), "Date", "Expected date validation error") 192 + }) 193 + 194 + t.Run("Fails when setting title too long", func(t *testing.T) { 195 + article := CreateFakeArticle() 196 + _, err := repo.Create(ctx, article) 197 + AssertNoError(t, err, "Failed to create article") 198 + 199 + article.Title = strings.Repeat("a", 501) 200 + err = repo.Update(ctx, article) 201 + AssertError(t, err, "Expected error when updating article with title too long") 202 + AssertContains(t, err.Error(), "Title", "Expected title length validation error") 203 + }) 204 + 205 + t.Run("Fails when setting author too long", func(t *testing.T) { 206 + article := CreateFakeArticle() 207 + _, err := repo.Create(ctx, article) 208 + AssertNoError(t, err, "Failed to create article") 209 + 210 + article.Author = strings.Repeat("a", 201) 211 + err = repo.Update(ctx, article) 212 + AssertError(t, err, "Expected error when updating article with author too long") 213 + AssertContains(t, err.Error(), "Author", "Expected author length validation error") 214 + }) 215 + 216 + t.Run("Fails when removing markdown path", func(t *testing.T) { 217 + article := CreateFakeArticle() 218 + _, err := repo.Create(ctx, article) 219 + AssertNoError(t, err, "Failed to create article") 220 + 221 + article.MarkdownPath = "" 222 + err = repo.Update(ctx, article) 223 + AssertError(t, err, "Expected error when updating article with empty markdown path") 224 + AssertContains(t, err.Error(), "MarkdownPath", "Expected MarkdownPath validation error") 225 + }) 226 + 227 + t.Run("Fails when removing HTML path", func(t *testing.T) { 228 + article := CreateFakeArticle() 229 + _, err := repo.Create(ctx, article) 230 + AssertNoError(t, err, "Failed to create article") 231 + 232 + article.HTMLPath = "" 233 + err = repo.Update(ctx, article) 234 + AssertError(t, err, "Expected error when updating article with empty HTML path") 235 + AssertContains(t, err.Error(), "HTMLPath", "Expected HTMLPath validation error") 236 + }) 237 + }) 238 + 239 + t.Run("Delete", func(t *testing.T) { 240 + t.Run("successfully removes an article", func(t *testing.T) { 241 + article := CreateFakeArticle() 242 + id, err := repo.Create(ctx, article) 243 + AssertNoError(t, err, "Failed to create article") 244 + 245 + err = repo.Delete(ctx, id) 246 + AssertNoError(t, err, "Failed to delete article") 247 + 248 + _, err = repo.Get(ctx, id) 249 + AssertError(t, err, "Expected error when getting deleted article") 250 + }) 251 + 252 + t.Run("Fails when ID isn't found", func(t *testing.T) { 253 + nonexistent := int64(99999) 254 + err := repo.Delete(ctx, nonexistent) 255 + AssertError(t, err, "Expected error when deleting non-existent article") 256 + AssertContains(t, err.Error(), "not found", "Expected 'not found' in error message") 257 + }) 258 + }) 259 + }) 260 + 261 + t.Run("GetByURL", func(t *testing.T) { 262 + db := CreateTestDB(t) 263 + repo := NewArticleRepository(db) 264 + ctx := context.Background() 265 + 266 + t.Run("successfully retrieves an article by URL", func(t *testing.T) { 267 + original := CreateFakeArticle() 268 + _, err := repo.Create(ctx, original) 269 + AssertNoError(t, err, "Failed to create article") 270 + 271 + retrieved, err := repo.GetByURL(ctx, original.URL) 272 + AssertNoError(t, err, "Failed to get article by URL") 273 + AssertEqual(t, original.ID, retrieved.ID, "ID mismatch") 274 + AssertEqual(t, original.URL, retrieved.URL, "URL mismatch") 275 + AssertEqual(t, original.Title, retrieved.Title, "Title mismatch") 276 + }) 277 + 278 + t.Run("Fails when URL isn't found", func(t *testing.T) { 279 + nonexistent := "https://example.com/nonexistent" 280 + _, err := repo.GetByURL(ctx, nonexistent) 281 + AssertError(t, err, "Expected error when getting article by non-existent URL") 282 + AssertContains(t, err.Error(), "not found", "Expected 'not found' in error message") 283 + }) 284 + }) 285 + 286 + t.Run("List", func(t *testing.T) { 287 + db := CreateTestDB(t) 288 + repo := NewArticleRepository(db) 289 + ctx := context.Background() 290 + 291 + articles := []*models.Article{ 292 + { 293 + URL: "https://example.com/article1", 294 + Title: "First Article", 295 + Author: "John Doe", 296 + Date: "2024-01-01", 297 + MarkdownPath: "/path/article1.md", 298 + HTMLPath: "/path/article1.html", 299 + }, 300 + { 301 + URL: "https://example.com/article2", 302 + Title: "Second Article", 303 + Author: "Jane Smith", 304 + Date: "2024-01-02", 305 + MarkdownPath: "/path/article2.md", 306 + HTMLPath: "/path/article2.html", 307 + }, 308 + { 309 + URL: "https://different.com/article3", 310 + Title: "Important Article", 311 + Author: "John Doe", 312 + Date: "2024-01-03", 313 + MarkdownPath: "/path/article3.md", 314 + HTMLPath: "/path/article3.html", 315 + }, 316 + } 317 + 318 + for _, article := range articles { 319 + _, err := repo.Create(ctx, article) 320 + AssertNoError(t, err, "Failed to create test article") 321 + } 322 + 323 + t.Run("All articles", func(t *testing.T) { 324 + results, err := repo.List(ctx, nil) 325 + AssertNoError(t, err, "Failed to list all articles") 326 + AssertEqual(t, 3, len(results), "Expected 3 articles") 327 + }) 328 + 329 + t.Run("Filter by title", func(t *testing.T) { 330 + opts := &ArticleListOptions{Title: "Important"} 331 + results, err := repo.List(ctx, opts) 332 + AssertNoError(t, err, "Failed to list articles by title") 333 + AssertEqual(t, 1, len(results), "Expected 1 article matching title") 334 + AssertEqual(t, "Important Article", results[0].Title, "Wrong article returned") 335 + }) 336 + 337 + t.Run("Filter by author", func(t *testing.T) { 338 + opts := &ArticleListOptions{Author: "John Doe"} 339 + results, err := repo.List(ctx, opts) 340 + AssertNoError(t, err, "Failed to list articles by author") 341 + AssertEqual(t, 2, len(results), "Expected 2 articles by John Doe") 342 + }) 343 + 344 + t.Run("Filter by URL", func(t *testing.T) { 345 + opts := &ArticleListOptions{URL: "different.com"} 346 + results, err := repo.List(ctx, opts) 347 + AssertNoError(t, err, "Failed to list articles by URL") 348 + AssertEqual(t, 1, len(results), "Expected 1 article from different.com") 349 + }) 350 + 351 + t.Run("Filter by date range", func(t *testing.T) { 352 + opts := &ArticleListOptions{DateFrom: "2024-01-02", DateTo: "2024-01-03"} 353 + results, err := repo.List(ctx, opts) 354 + AssertNoError(t, err, "Failed to list articles by date range") 355 + AssertEqual(t, 2, len(results), "Expected 2 articles in date range") 356 + }) 357 + 358 + t.Run("With limit", func(t *testing.T) { 359 + opts := &ArticleListOptions{Limit: 2} 360 + results, err := repo.List(ctx, opts) 361 + AssertNoError(t, err, "Failed to list articles with limit") 362 + AssertEqual(t, 2, len(results), "Expected 2 articles due to limit") 363 + }) 364 + 365 + t.Run("With limit and offset", func(t *testing.T) { 366 + opts := &ArticleListOptions{Limit: 2, Offset: 1} 367 + results, err := repo.List(ctx, opts) 368 + AssertNoError(t, err, "Failed to list articles with limit and offset") 369 + AssertEqual(t, 2, len(results), "Expected 2 articles due to limit") 370 + }) 371 + 372 + t.Run("Multiple filters", func(t *testing.T) { 373 + opts := &ArticleListOptions{Author: "John Doe", DateFrom: "2024-01-02"} 374 + results, err := repo.List(ctx, opts) 375 + AssertNoError(t, err, "Failed to list articles with multiple filters") 376 + AssertEqual(t, 1, len(results), "Expected 1 article matching all filters") 377 + AssertEqual(t, "Important Article", results[0].Title, "Wrong article returned") 378 + }) 379 + 380 + t.Run("No results", func(t *testing.T) { 381 + opts := &ArticleListOptions{Title: "Nonexistent"} 382 + results, err := repo.List(ctx, opts) 383 + AssertNoError(t, err, "Failed to list articles") 384 + AssertEqual(t, 0, len(results), "Expected no articles") 385 + }) 386 + }) 387 + 388 + t.Run("Count", func(t *testing.T) { 389 + db := CreateTestDB(t) 390 + repo := NewArticleRepository(db) 391 + ctx := context.Background() 392 + 393 + articles := []*models.Article{CreateSampleArticle(), { 394 + URL: "https://example.com/article2", 395 + Title: "Second Article", 396 + Author: "Jane Smith", 397 + Date: "2024-01-02", 398 + MarkdownPath: "/path/article2.md", 399 + HTMLPath: "/path/article2.html"}, 400 + } 401 + 402 + for _, article := range articles { 403 + _, err := repo.Create(ctx, article) 404 + AssertNoError(t, err, "Failed to create test article") 405 + } 406 + 407 + t.Run("Count all", func(t *testing.T) { 408 + count, err := repo.Count(ctx, nil) 409 + AssertNoError(t, err, "Failed to count articles") 410 + AssertEqual(t, int64(2), count, "Expected 2 articles") 411 + }) 412 + 413 + t.Run("Count with filter", func(t *testing.T) { 414 + opts := &ArticleListOptions{Author: "Test Author"} 415 + count, err := repo.Count(ctx, opts) 416 + AssertNoError(t, err, "Failed to count articles with filter") 417 + AssertEqual(t, int64(1), count, "Expected 1 article by Test Author") 418 + }) 419 + 420 + t.Run("Count with no results", func(t *testing.T) { 421 + opts := &ArticleListOptions{Title: "Nonexistent"} 422 + count, err := repo.Count(ctx, opts) 423 + AssertNoError(t, err, "Failed to count articles") 424 + AssertEqual(t, int64(0), count, "Expected 0 articles") 425 + }) 426 + }) 427 + 428 + t.Run("Validate", func(t *testing.T) { 429 + repo := NewArticleRepository(CreateTestDB(t)) 430 + 431 + t.Run("successfully validates a valid article", func(t *testing.T) { 432 + article := CreateSampleArticle() 433 + err := repo.Validate(article) 434 + AssertNoError(t, err, "Expected no validation errors for valid article") 435 + }) 436 + 437 + t.Run("fails with missing required URL", func(t *testing.T) { 438 + article := CreateSampleArticle() 439 + article.URL = "" 440 + err := repo.Validate(article) 441 + AssertError(t, err, "Expected error for missing URL") 442 + AssertContains(t, err.Error(), "URL", "Expected URL validation error") 443 + }) 444 + 445 + t.Run("fails with missing required title", func(t *testing.T) { 446 + article := CreateSampleArticle() 447 + article.Title = "" 448 + err := repo.Validate(article) 449 + AssertError(t, err, "Expected error for missing title") 450 + AssertContains(t, err.Error(), "Title", "Expected title validation error") 451 + }) 452 + 453 + t.Run("fails with missing markdown path", func(t *testing.T) { 454 + article := CreateSampleArticle() 455 + article.MarkdownPath = "" 456 + err := repo.Validate(article) 457 + AssertError(t, err, "Expected error for missing markdown path") 458 + AssertContains(t, err.Error(), "MarkdownPath", "Expected markdown path validation error") 459 + }) 460 + 461 + t.Run("fails with missing HTML path", func(t *testing.T) { 462 + article := CreateSampleArticle() 463 + article.HTMLPath = "" 464 + err := repo.Validate(article) 465 + AssertError(t, err, "Expected error for missing HTML path") 466 + AssertContains(t, err.Error(), "HTMLPath", "Expected HTML path validation error") 467 + }) 468 + 469 + t.Run("fails with invalid URL format", func(t *testing.T) { 470 + article := CreateSampleArticle() 471 + article.URL = "not-a-valid-url" 472 + err := repo.Validate(article) 473 + AssertError(t, err, "Expected error for invalid URL format") 474 + AssertContains(t, err.Error(), "URL", "Expected URL format validation error") 475 + }) 476 + 477 + t.Run("fails with invalid date format", func(t *testing.T) { 478 + article := CreateSampleArticle() 479 + article.Date = "invalid-date" 480 + err := repo.Validate(article) 481 + AssertError(t, err, "Expected error for invalid date format") 482 + AssertContains(t, err.Error(), "Date", "Expected date validation error") 483 + }) 484 + 485 + t.Run("fails with title too long", func(t *testing.T) { 486 + article := CreateSampleArticle() 487 + article.Title = strings.Repeat("a", 501) 488 + err := repo.Validate(article) 489 + AssertError(t, err, "Expected error for title too long") 490 + AssertContains(t, err.Error(), "Title", "Expected title length validation error") 491 + }) 492 + 493 + t.Run("fails with author too long", func(t *testing.T) { 494 + article := CreateSampleArticle() 495 + article.Author = strings.Repeat("a", 201) 496 + err := repo.Validate(article) 497 + AssertError(t, err, "Expected error for author too long") 498 + AssertContains(t, err.Error(), "Author", "Expected author length validation error") 499 + }) 500 + 501 + t.Run("fails when created is after modified", func(t *testing.T) { 502 + article := CreateSampleArticle() 503 + now := time.Now() 504 + article.Modified = now 505 + article.Created = now.Add(time.Hour) 506 + err := repo.Validate(article) 507 + AssertError(t, err, "Expected error when created is after modified") 508 + AssertContains(t, err.Error(), "Created", "Expected timestamp validation error") 509 + }) 510 + 511 + t.Run("succeeds when created equals modified", func(t *testing.T) { 512 + article := CreateSampleArticle() 513 + now := time.Now() 514 + article.Created = now 515 + article.Modified = now 516 + err := repo.Validate(article) 517 + AssertNoError(t, err, "Expected no error when created equals modified") 518 + }) 519 + 520 + t.Run("succeeds when created is before modified", func(t *testing.T) { 521 + article := CreateSampleArticle() 522 + now := time.Now() 523 + article.Created = now 524 + article.Modified = now.Add(time.Hour) 525 + err := repo.Validate(article) 526 + AssertNoError(t, err, "Expected no error when created is before modified") 527 + }) 528 + 529 + t.Run("succeeds with valid optional fields", func(t *testing.T) { 530 + article := CreateSampleArticle() 531 + article.Date = "2024-01-01" 532 + article.Author = "Test Author" 533 + err := repo.Validate(article) 534 + AssertNoError(t, err, "Expected no error with valid optional fields") 535 + }) 536 + 537 + t.Run("succeeds with empty optional fields", func(t *testing.T) { 538 + article := CreateSampleArticle() 539 + article.Date = "" 540 + article.Author = "" 541 + err := repo.Validate(article) 542 + AssertNoError(t, err, "Expected no error with empty optional fields") 543 + }) 544 + }) 545 + }
+12 -2
internal/repo/repo.go
··· 1 1 package repo 2 2 3 - import "database/sql" 3 + import ( 4 + "database/sql" 5 + 6 + "github.com/stormlightlabs/noteleaf/internal/models" 7 + ) 8 + 9 + type Repository interface { 10 + Validate(models.Model) error 11 + } 4 12 5 13 // Repositories provides access to all resource repositories 6 14 type Repositories struct { ··· 10 18 Books *BookRepository 11 19 Notes *NoteRepository 12 20 TimeEntries *TimeEntryRepository 21 + Articles *ArticleRepository 13 22 } 14 23 15 - // NewRepositories creates a new set of repositories 24 + // NewRepositories creates a new set of [Repositories] 16 25 func NewRepositories(db *sql.DB) *Repositories { 17 26 return &Repositories{ 18 27 Tasks: NewTaskRepository(db), ··· 21 30 Books: NewBookRepository(db), 22 31 Notes: NewNoteRepository(db), 23 32 TimeEntries: NewTimeEntryRepository(db), 33 + Articles: NewArticleRepository(db), 24 34 } 25 35 }
+3
internal/repo/repositories_test.go
··· 321 321 if repos.Notes == nil { 322 322 t.Error("Notes repository should be initialized") 323 323 } 324 + if repos.Articles == nil { 325 + t.Error("Articles repository should be initialized") 326 + } 324 327 }) 325 328 326 329 })
+88 -9
internal/repo/test_utilities.go
··· 3 3 import ( 4 4 "context" 5 5 "database/sql" 6 + "fmt" 7 + "strings" 6 8 "testing" 7 9 "time" 8 10 9 11 "github.com/google/uuid" 12 + "github.com/jaswdr/faker/v2" 10 13 _ "github.com/mattn/go-sqlite3" 11 14 "github.com/stormlightlabs/noteleaf/internal/models" 12 15 ) 16 + 17 + var fake = faker.New() 13 18 14 19 // CreateTestDB creates an in-memory SQLite database with the full schema for testing 15 20 func CreateTestDB(t *testing.T) *sql.DB { ··· 99 104 modified DATETIME DEFAULT CURRENT_TIMESTAMP, 100 105 FOREIGN KEY (task_id) REFERENCES tasks(id) ON DELETE CASCADE 101 106 ); 107 + 108 + CREATE TABLE IF NOT EXISTS articles ( 109 + id INTEGER PRIMARY KEY AUTOINCREMENT, 110 + url TEXT UNIQUE NOT NULL, 111 + title TEXT NOT NULL, 112 + author TEXT, 113 + date TEXT, 114 + markdown_path TEXT NOT NULL, 115 + html_path TEXT NOT NULL, 116 + created DATETIME DEFAULT CURRENT_TIMESTAMP, 117 + modified DATETIME DEFAULT CURRENT_TIMESTAMP 118 + ); 102 119 ` 103 120 104 121 if _, err := db.Exec(schema); err != nil { ··· 186 203 } 187 204 } 188 205 206 + func CreateSampleArticle() *models.Article { 207 + return &models.Article{ 208 + URL: "https://example.com/test-article", 209 + Title: "Test Article", 210 + Author: "Test Author", 211 + Date: "2024-01-01", 212 + MarkdownPath: "/path/test-article.md", 213 + HTMLPath: "/path/test-article.html", 214 + Created: time.Now(), 215 + Modified: time.Now(), 216 + } 217 + } 218 + 219 + func fakeHTMLFile(f faker.Faker) string { 220 + original := f.File().AbsoluteFilePath(2) 221 + split := strings.Split(original, ".") 222 + split[len(split)-1] = "html" 223 + 224 + return strings.Join(split, ".") 225 + } 226 + 227 + func fakeMDFile(f faker.Faker) string { 228 + original := f.File().AbsoluteFilePath(2) 229 + split := strings.Split(original, ".") 230 + split[len(split)-1] = "md" 231 + 232 + return strings.Join(split, ".") 233 + } 234 + 235 + func FakeTime(f faker.Faker) time.Time { 236 + return f.Time().Time(time.Now()) 237 + } 238 + 239 + func CreateFakeArticle() *models.Article { 240 + return &models.Article{ 241 + URL: fake.Internet().URL(), 242 + Title: strings.Join(fake.Lorem().Words(3), " "), 243 + Author: fmt.Sprintf("%v %v", fake.Person().FirstName(), fake.Person().LastName()), 244 + Date: fake.Time().Time(time.Now()).Format("2006-01-02"), 245 + MarkdownPath: fakeMDFile(fake), 246 + HTMLPath: fakeHTMLFile(fake), 247 + Created: time.Now(), 248 + Modified: time.Now(), 249 + } 250 + } 251 + 252 + func CreateFakeArticles(count int) []*models.Article { 253 + articles := make([]*models.Article, count) 254 + for i := range count { 255 + articles[i] = CreateFakeArticle() 256 + } 257 + 258 + return articles 259 + } 260 + 189 261 // Test helpers for common operations 190 262 func AssertNoError(t *testing.T, err error, msg string) { 191 263 t.Helper() ··· 229 301 } 230 302 } 231 303 304 + func AssertContains(t *testing.T, str, substr, msg string) { 305 + t.Helper() 306 + if !strings.Contains(str, substr) { 307 + t.Fatalf("%s: expected string '%s' to contain '%s'", msg, str, substr) 308 + } 309 + } 310 + 232 311 // SetupTestData creates sample data in the database and returns the repositories 233 312 func SetupTestData(t *testing.T, db *sql.DB) *Repositories { 234 313 ctx := context.Background() ··· 239 318 task1.Description = "Sample Task 1" 240 319 task1.Status = "pending" 241 320 task1.Priority = "high" 242 - 321 + 243 322 task2 := CreateSampleTask() 244 - task2.Description = "Sample Task 2" 323 + task2.Description = "Sample Task 2" 245 324 task2.Status = "completed" 246 325 task2.Priority = "low" 247 326 ··· 257 336 book1 := CreateSampleBook() 258 337 book1.Title = "Sample Book 1" 259 338 book1.Status = "reading" 260 - 261 - book2 := CreateSampleBook() 339 + 340 + book2 := CreateSampleBook() 262 341 book2.Title = "Sample Book 2" 263 342 book2.Status = "finished" 264 343 ··· 267 346 book1.ID = bookID1 268 347 269 348 bookID2, err := repos.Books.Create(ctx, book2) 270 - AssertNoError(t, err, "Failed to create sample book 2") 349 + AssertNoError(t, err, "Failed to create sample book 2") 271 350 book2.ID = bookID2 272 351 273 352 // Create sample movies 274 353 movie1 := CreateSampleMovie() 275 354 movie1.Title = "Sample Movie 1" 276 355 movie1.Status = "queued" 277 - 356 + 278 357 movie2 := CreateSampleMovie() 279 358 movie2.Title = "Sample Movie 2" 280 359 movie2.Status = "watched" ··· 291 370 tv1 := CreateSampleTVShow() 292 371 tv1.Title = "Sample TV Show 1" 293 372 tv1.Status = "queued" 294 - 373 + 295 374 tv2 := CreateSampleTVShow() 296 375 tv2.Title = "Sample TV Show 2" 297 376 tv2.Status = "watching" ··· 308 387 note1 := CreateSampleNote() 309 388 note1.Title = "Sample Note 1" 310 389 note1.Content = "Content for note 1" 311 - 390 + 312 391 note2 := CreateSampleNote() 313 392 note2.Title = "Sample Note 2" 314 393 note2.Content = "Content for note 2" ··· 323 402 note2.ID = noteID2 324 403 325 404 return repos 326 - } 405 + }
+196
internal/services/validation.go
··· 1 + package services 2 + 3 + import ( 4 + "fmt" 5 + "net/url" 6 + "regexp" 7 + "slices" 8 + "strings" 9 + "time" 10 + ) 11 + 12 + var ( 13 + emailRegex = regexp.MustCompile(`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`) 14 + 15 + dateFormats = []string{ 16 + "2006-01-02", 17 + "2006-01-02T15:04:05Z", 18 + "2006-01-02T15:04:05-07:00", 19 + "2006-01-02 15:04:05", 20 + } 21 + ) 22 + 23 + // ValidationError represents a validation error 24 + type ValidationError struct { 25 + Field string 26 + Message string 27 + } 28 + 29 + func (e ValidationError) Error() string { 30 + return fmt.Sprintf("validation error for field '%s': %s", e.Field, e.Message) 31 + } 32 + 33 + // ValidationErrors represents multiple validation errors 34 + type ValidationErrors []ValidationError 35 + 36 + func (e ValidationErrors) Error() string { 37 + if len(e) == 0 { 38 + return "no validation errors" 39 + } 40 + 41 + if len(e) == 1 { 42 + return e[0].Error() 43 + } 44 + 45 + var messages []string 46 + for _, err := range e { 47 + messages = append(messages, err.Error()) 48 + } 49 + return fmt.Sprintf("multiple validation errors: %s", strings.Join(messages, "; ")) 50 + } 51 + 52 + // RequiredString validates that a string field is not empty 53 + func RequiredString(name, value string) error { 54 + if strings.TrimSpace(value) == "" { 55 + return ValidationError{Field: name, Message: "is required and cannot be empty"} 56 + } 57 + return nil 58 + } 59 + 60 + // ValidURL validates that a string is a valid URL 61 + func ValidURL(name, value string) error { 62 + if value == "" { 63 + return nil 64 + } 65 + 66 + parsed, err := url.Parse(value) 67 + if err != nil { 68 + return ValidationError{Field: name, Message: "must be a valid URL"} 69 + } 70 + 71 + if parsed.Scheme != "http" && parsed.Scheme != "https" { 72 + return ValidationError{Field: name, Message: "must use http or https scheme"} 73 + } 74 + 75 + return nil 76 + } 77 + 78 + // ValidEmail validates that a string is a valid email address 79 + func ValidEmail(name, value string) error { 80 + if value == "" { 81 + return nil 82 + } 83 + 84 + if !emailRegex.MatchString(value) { 85 + return ValidationError{Field: name, Message: "must be a valid email address"} 86 + } 87 + 88 + return nil 89 + } 90 + 91 + // StringLength validates string length constraints 92 + func StringLength(name, value string, min, max int) error { 93 + length := len(strings.TrimSpace(value)) 94 + 95 + if min > 0 && length < min { 96 + return ValidationError{Field: name, Message: fmt.Sprintf("must be at least %d characters long", min)} 97 + } 98 + 99 + if max > 0 && length > max { 100 + return ValidationError{Field: name, Message: fmt.Sprintf("must not exceed %d characters", max)} 101 + } 102 + 103 + return nil 104 + } 105 + 106 + // ValidDate validates that a string can be parsed as a date in supported formats 107 + func ValidDate(name, value string) error { 108 + if value == "" { 109 + return nil 110 + } 111 + 112 + for _, format := range dateFormats { 113 + if _, err := time.Parse(format, value); err == nil { 114 + return nil 115 + } 116 + } 117 + 118 + return ValidationError{ 119 + Field: name, 120 + Message: "must be a valid date (YYYY-MM-DD, YYYY-MM-DDTHH:MM:SSZ, etc.)", 121 + } 122 + } 123 + 124 + // PositiveID validates that an ID is positive 125 + func PositiveID(name string, value int64) error { 126 + if value <= 0 { 127 + return ValidationError{Field: name, Message: "must be a positive integer"} 128 + } 129 + return nil 130 + } 131 + 132 + // ValidEnum validates that a value is one of the allowed enum values 133 + func ValidEnum(name, value string, allowedValues []string) error { 134 + if value == "" { 135 + return nil 136 + } 137 + 138 + if slices.Contains(allowedValues, value) { 139 + return nil 140 + } 141 + 142 + message := fmt.Sprintf("must be one of: %s", strings.Join(allowedValues, ", ")) 143 + return ValidationError{Field: name, Message: message} 144 + } 145 + 146 + // ValidFilePath validates that a string looks like a valid file path 147 + func ValidFilePath(name, value string) error { 148 + if value == "" { 149 + return nil 150 + } 151 + 152 + if strings.Contains(value, "..") { 153 + return ValidationError{Field: name, Message: "cannot contain '..' path traversal"} 154 + } 155 + 156 + if strings.ContainsAny(value, "<>:\"|?*") { 157 + return ValidationError{Field: name, Message: "contains invalid characters"} 158 + } 159 + 160 + return nil 161 + } 162 + 163 + // Validator provides a fluent interface for validation 164 + type Validator struct { 165 + errors ValidationErrors 166 + } 167 + 168 + // NewValidator creates a new validator instance 169 + func NewValidator() *Validator { 170 + return &Validator{} 171 + } 172 + 173 + // Check adds a validation check 174 + func (v *Validator) Check(err error) *Validator { 175 + if err != nil { 176 + if valErr, ok := err.(ValidationError); ok { 177 + v.errors = append(v.errors, valErr) 178 + } else { 179 + v.errors = append(v.errors, ValidationError{Field: "unknown", Message: err.Error()}) 180 + } 181 + } 182 + return v 183 + } 184 + 185 + // IsValid returns true if no validation errors occurred 186 + func (v *Validator) IsValid() bool { 187 + return len(v.errors) == 0 188 + } 189 + 190 + // Errors returns all validation errors 191 + func (v *Validator) Errors() error { 192 + if len(v.errors) == 0 { 193 + return nil 194 + } 195 + return v.errors 196 + }
+324
internal/services/validation_test.go
··· 1 + package services 2 + 3 + import ( 4 + "errors" 5 + "strings" 6 + "testing" 7 + ) 8 + 9 + type validationTC struct { 10 + name string 11 + value string 12 + err bool 13 + } 14 + 15 + func TestValidation(t *testing.T) { 16 + t.Run("ValidationError", func(t *testing.T) { 17 + err := ValidationError{Field: "testField", Message: "test message"} 18 + expected := "validation error for field 'testField': test message" 19 + if err.Error() != expected { 20 + t.Errorf("Expected %q, got %q", expected, err.Error()) 21 + } 22 + }) 23 + 24 + t.Run("ValidationErrors", func(t *testing.T) { 25 + t.Run("empty errors", func(t *testing.T) { 26 + var errs ValidationErrors 27 + expected := "no validation errors" 28 + if errs.Error() != expected { 29 + t.Errorf("Expected %q, got %q", expected, errs.Error()) 30 + } 31 + }) 32 + 33 + t.Run("single error", func(t *testing.T) { 34 + errs := ValidationErrors{{Field: "field1", Message: "message1"}} 35 + expected := "validation error for field 'field1': message1" 36 + if errs.Error() != expected { 37 + t.Errorf("Expected %q, got %q", expected, errs.Error()) 38 + } 39 + }) 40 + 41 + t.Run("multiple errors", func(t *testing.T) { 42 + errs := ValidationErrors{{Field: "field1", Message: "message1"}, {Field: "field2", Message: "message2"}} 43 + result := errs.Error() 44 + if !strings.Contains(result, "multiple validation errors") { 45 + t.Error("Expected 'multiple validation errors' in result") 46 + } 47 + if !strings.Contains(result, "field1") || !strings.Contains(result, "field2") { 48 + t.Error("Expected both field names in result") 49 + } 50 + }) 51 + }) 52 + 53 + t.Run("RequiredString", func(t *testing.T) { 54 + tests := []validationTC{ 55 + {"empty string", "", true}, 56 + {"whitespace only", " ", true}, 57 + {"valid string", "test", false}, 58 + {"string with spaces", "test value", false}, 59 + } 60 + 61 + for _, tt := range tests { 62 + t.Run(tt.name, func(t *testing.T) { 63 + err := RequiredString("testField", tt.value) 64 + if (err != nil) != tt.err { 65 + t.Errorf("Expected error: %v, got error: %v", tt.err, err != nil) 66 + } 67 + if err != nil { 68 + if !strings.Contains(err.Error(), "testField") { 69 + t.Error("Expected field name in error message") 70 + } 71 + } 72 + }) 73 + } 74 + }) 75 + 76 + t.Run("ValidURL", func(t *testing.T) { 77 + tests := []validationTC{ 78 + {"empty string", "", false}, 79 + {"valid http URL", "http://example.com", false}, 80 + {"valid https URL", "https://example.com", false}, 81 + {"invalid URL", "not-a-url", true}, 82 + {"ftp scheme", "ftp://example.com", true}, 83 + {"URL with path", "https://example.com/path", false}, 84 + {"URL with query", "https://example.com?param=value", false}, 85 + } 86 + 87 + for _, tt := range tests { 88 + t.Run(tt.name, func(t *testing.T) { 89 + err := ValidURL("testField", tt.value) 90 + if (err != nil) != tt.err { 91 + t.Errorf("Expected error: %v, got error: %v", tt.err, err != nil) 92 + } 93 + }) 94 + } 95 + }) 96 + 97 + t.Run("ValidEmail", func(t *testing.T) { 98 + tests := []validationTC{ 99 + {"empty string", "", false}, 100 + {"valid email", "test@example.com", false}, 101 + {"valid email with subdomain", "test@mail.example.com", false}, 102 + {"invalid email no @", "testexample.com", true}, 103 + {"invalid email no domain", "test@", true}, 104 + {"invalid email no local part", "@example.com", true}, 105 + {"invalid email spaces", "test @example.com", true}, 106 + } 107 + 108 + for _, tt := range tests { 109 + t.Run(tt.name, func(t *testing.T) { 110 + err := ValidEmail("testField", tt.value) 111 + if (err != nil) != tt.err { 112 + t.Errorf("Expected error: %v, got error: %v", tt.err, err != nil) 113 + } 114 + }) 115 + } 116 + }) 117 + 118 + t.Run("StringLength", func(t *testing.T) { 119 + tests := []struct { 120 + name string 121 + value string 122 + min int 123 + max int 124 + shouldErr bool 125 + }{ 126 + {"within range", "test", 2, 10, false}, 127 + {"too short", "a", 2, 10, true}, 128 + {"too long", "verylongstring", 2, 10, true}, 129 + {"exact min", "ab", 2, 10, false}, 130 + {"exact max", "1234567890", 2, 10, false}, 131 + {"no min constraint", "a", 0, 10, false}, 132 + {"no max constraint", "verylongstring", 2, 0, false}, 133 + {"whitespace trimmed", " test ", 3, 10, false}, 134 + } 135 + 136 + for _, tt := range tests { 137 + t.Run(tt.name, func(t *testing.T) { 138 + err := StringLength("testField", tt.value, tt.min, tt.max) 139 + if (err != nil) != tt.shouldErr { 140 + t.Errorf("Expected error: %v, got error: %v", tt.shouldErr, err != nil) 141 + } 142 + }) 143 + } 144 + }) 145 + 146 + t.Run("ValidDate", func(t *testing.T) { 147 + tests := []validationTC{ 148 + {"empty string", "", false}, 149 + {"YYYY-MM-DD format", "2024-01-01", false}, 150 + {"ISO format with time", "2024-01-01T15:04:05Z", false}, 151 + {"ISO format with timezone", "2024-01-01T15:04:05-07:00", false}, 152 + {"datetime format", "2024-01-01 15:04:05", false}, 153 + {"invalid date", "not-a-date", true}, 154 + {"invalid format", "01/01/2024", true}, 155 + {"incomplete date", "2024-01", true}, 156 + } 157 + 158 + for _, tt := range tests { 159 + t.Run(tt.name, func(t *testing.T) { 160 + err := ValidDate("testField", tt.value) 161 + if (err != nil) != tt.err { 162 + t.Errorf("Expected error: %v, got error: %v", tt.err, err != nil) 163 + } 164 + }) 165 + } 166 + }) 167 + 168 + t.Run("PositiveID", func(t *testing.T) { 169 + tests := []struct { 170 + name string 171 + value int64 172 + shouldErr bool 173 + }{ 174 + {"positive ID", 1, false}, 175 + {"zero ID", 0, true}, 176 + {"negative ID", -1, true}, 177 + {"large positive ID", 999999, false}, 178 + } 179 + 180 + for _, tt := range tests { 181 + t.Run(tt.name, func(t *testing.T) { 182 + err := PositiveID("testField", tt.value) 183 + if (err != nil) != tt.shouldErr { 184 + t.Errorf("Expected error: %v, got error: %v", tt.shouldErr, err != nil) 185 + } 186 + }) 187 + } 188 + }) 189 + 190 + t.Run("ValidEnum", func(t *testing.T) { 191 + allowed := []string{"option1", "option2", "option3"} 192 + 193 + tests := []validationTC{ 194 + {"empty string", "", false}, 195 + {"valid option1", "option1", false}, 196 + {"valid option2", "option2", false}, 197 + {"valid option3", "option3", false}, 198 + {"invalid option", "option4", true}, 199 + {"case sensitive", "Option1", true}, 200 + } 201 + 202 + for _, tt := range tests { 203 + t.Run(tt.name, func(t *testing.T) { 204 + err := ValidEnum("testField", tt.value, allowed) 205 + if (err != nil) != tt.err { 206 + t.Errorf("Expected error: %v, got error: %v", tt.err, err != nil) 207 + } 208 + }) 209 + } 210 + }) 211 + 212 + t.Run("ValidFilePath", func(t *testing.T) { 213 + tests := []validationTC{ 214 + {"empty string", "", false}, 215 + {"valid path", "/path/to/file.txt", false}, 216 + {"relative path", "path/to/file.txt", false}, 217 + {"path traversal", "../../../etc/passwd", true}, 218 + {"path with .. in middle", "/path/../to/file.txt", true}, 219 + {"invalid characters", "/path/to/file<>.txt", true}, 220 + {"pipe character", "/path/to/file|.txt", true}, 221 + {"question mark", "/path/to/file?.txt", true}, 222 + {"asterisk", "/path/to/file*.txt", true}, 223 + {"colon", "/path/to/file:.txt", true}, 224 + {"quotes", "/path/to/\"file\".txt", true}, 225 + {"windows path", "C:\\path\\to\\file.txt", true}, 226 + } 227 + 228 + for _, tt := range tests { 229 + t.Run(tt.name, func(t *testing.T) { 230 + err := ValidFilePath("testField", tt.value) 231 + if (err != nil) != tt.err { 232 + t.Errorf("Expected error: %v, got error: %v", tt.err, err != nil) 233 + } 234 + }) 235 + } 236 + }) 237 + 238 + t.Run("Validator", func(t *testing.T) { 239 + t.Run("empty validator", func(t *testing.T) { 240 + v := NewValidator() 241 + if !v.IsValid() { 242 + t.Error("Expected new validator to be valid") 243 + } 244 + if v.Errors() != nil { 245 + t.Error("Expected new validator to have no errors") 246 + } 247 + }) 248 + 249 + t.Run("single validation error", func(t *testing.T) { 250 + v := NewValidator() 251 + v.Check(RequiredString("testField", "")) 252 + 253 + if v.IsValid() { 254 + t.Error("Expected validator to be invalid after failed check") 255 + } 256 + if v.Errors() == nil { 257 + t.Error("Expected validator to have errors") 258 + } 259 + }) 260 + 261 + t.Run("multiple validation errors", func(t *testing.T) { 262 + v := NewValidator() 263 + v.Check(RequiredString("field1", "")) 264 + v.Check(RequiredString("field2", "")) 265 + 266 + if v.IsValid() { 267 + t.Error("Expected validator to be invalid") 268 + } 269 + err := v.Errors() 270 + if err == nil { 271 + t.Error("Expected validator to have errors") 272 + } 273 + if !strings.Contains(err.Error(), "field1") || !strings.Contains(err.Error(), "field2") { 274 + t.Error("Expected both field names in error message") 275 + } 276 + }) 277 + 278 + t.Run("mixed valid and invalid checks", func(t *testing.T) { 279 + v := NewValidator() 280 + v.Check(RequiredString("validField", "valid")) 281 + v.Check(RequiredString("invalidField", "")) 282 + 283 + if v.IsValid() { 284 + t.Error("Expected validator to be invalid") 285 + } 286 + err := v.Errors() 287 + if err == nil { 288 + t.Error("Expected validator to have errors") 289 + } 290 + if !strings.Contains(err.Error(), "invalidField") { 291 + t.Error("Expected invalid field name in error message") 292 + } 293 + }) 294 + 295 + t.Run("fluent interface", func(t *testing.T) { 296 + v := NewValidator() 297 + result := v.Check(RequiredString("field1", "valid")).Check(RequiredString("field2", "valid")) 298 + 299 + if result != v { 300 + t.Error("Expected Check to return the same validator instance") 301 + } 302 + if !v.IsValid() { 303 + t.Error("Expected validator to be valid after valid checks") 304 + } 305 + }) 306 + 307 + t.Run("non-validation error handling", func(t *testing.T) { 308 + v := NewValidator() 309 + v.Check(errors.New("generic error")) 310 + 311 + if v.IsValid() { 312 + t.Error("Expected validator to be invalid") 313 + } 314 + err := v.Errors() 315 + if err == nil { 316 + t.Error("Expected validator to have errors") 317 + } 318 + 319 + if !strings.Contains(err.Error(), "unknown") { 320 + t.Error("Expected 'unknown' field in converted error") 321 + } 322 + }) 323 + }) 324 + }