<commit_before><!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>three.js docs</title>
		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
		<link rel="shortcut icon" href="../files/favicon.ico" />
		<link rel="stylesheet" type="text/css" href="../files/main.css">
		<!-- console sandbox -->
		<script src="../build/three.min.js" async defer></script>
	</head>
	<body>
		<div id="panel">

			<div id="header">
				<h1><a href="https://threejs.org">three.js</a></h1>

				<div id="sections">
					<span class="selected">docs</span>
					<a href="../examples/#webgl_animation_cloth">examples</a>
				</div>

				<div id="expandButton"></div>
			</div>

			<div id="panelScrim"></div>

			<div id="contentWrapper">
				<div id="inputWrapper">
					<input placeholder="" type="text" id="filterInput" autocorrect="off" autocapitalize="off" spellcheck="false" />
					<div id="exitSearchButton"></div>
					<select id="language">
						<option value="en">en</option>
						<option value="ar">ar</option>
						<option value="ko">한국어</option>
						<option value="zh">中文</option>
					</select>
				</div>
				<div id="content"></div>
			</div>

		</div>

		<iframe name="viewer"></iframe>

		<script>

		const panel = document.getElementById( 'panel' );
		const content = document.getElementById( 'content' );
		const expandButton = document.getElementById( 'expandButton' );
		const exitSearchButton = document.getElementById( 'exitSearchButton' );
		const panelScrim = document.getElementById( 'panelScrim' );
		const filterInput = document.getElementById( 'filterInput' );
		let iframe = document.querySelector( 'iframe' );

		const pageProperties = {};
		const titles = {};
		const categoryElements = [];

		let navigation;

		init();

		async function init() {

			const list = await ( await fetch( 'list.json' ) ).json();

			const hash = window.location.hash.substring( 1 );<commit_msg>Docs: Fixed broken *BufferGeometry links.<commit_after><!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8">
		<title>three.js docs</title>
		<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
		<link rel="shortcut icon" href="../files/favicon.ico" />
		<link rel="stylesheet" type="text/css" href="../files/main.css">
		<!-- console sandbox -->
		<script src="../build/three.min.js" async defer></script>
	</head>
	<body>
		<div id="panel">

			<div id="header">
				<h1><a href="https://threejs.org">three.js</a></h1>

				<div id="sections">
					<span class="selected">docs</span>
					<a href="../examples/#webgl_animation_cloth">examples</a>
				</div>

				<div id="expandButton"></div>
			</div>

			<div id="panelScrim"></div>

			<div id="contentWrapper">
				<div id="inputWrapper">
					<input placeholder="" type="text" id="filterInput" autocorrect="off" autocapitalize="off" spellcheck="false" />
					<div id="exitSearchButton"></div>
					<select id="language">
						<option value="en">en</option>
						<option value="ar">ar</option>
						<option value="ko">한국어</option>
						<option value="zh">中文</option>
					</select>
				</div>
				<div id="content"></div>
			</div>

		</div>

		<iframe name="viewer"></iframe>

		<script>

		const panel = document.getElementById( 'panel' );
		const content = document.getElementById( 'content' );
		const expandButton = document.getElementById( 'expandButton' );
		const exitSearchButton = document.getElementById( 'exitSearchButton' );
		const panelScrim = document.getElementById( 'panelScrim' );
		const filterInput = document.getElementById( 'filterInput' );
		let iframe = document.querySelector( 'iframe' );

		const pageProperties = {};
		const titles = {};
		const categoryElements = [];

		let navigation;

		init();

		async function init() {

			const list = await ( await fetch( 'list.json' ) ).json();

			// *BufferGeometry to *Geometry

			if ( /([\w]+)BufferGeometry$/.exec( window.location.hash ) ) {

				window.location.hash = window.location.hash.replace( 'BufferGeometry', 'Geometry' );

			}

			const hash = window.location.hash.substring( 1 );
{'fraction_non_alphanumeric': 0.1879049676025918, 'fraction_numerical': 0.003839692824574034, 'mean_word_length': 3.8465116279069766, 'pattern_counts': {'":': 0, '<': 111, '<?xml version=': 0, '>': 111, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3775948', 'n_tokens_mistral': 1591, 'n_tokens_neox': 1314, 'n_words': 278}