Changes to lcp button and icons
This commit is contained in:
57
assets/json/alphabetize.php
Normal file
57
assets/json/alphabetize.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
// Path to your icons.json file
|
||||
$filePath = 'output.json';
|
||||
|
||||
// Read the content of the JSON file
|
||||
$jsonData = file_get_contents($filePath);
|
||||
|
||||
// Decode the JSON data into a PHP array
|
||||
$iconsData = json_decode($jsonData, true);
|
||||
|
||||
// Check if the data is decoded successfully
|
||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
die('Error decoding JSON data: ' . json_last_error_msg());
|
||||
}
|
||||
|
||||
// Check if the data contains a 'family' key (indicating it has families with SVGs)
|
||||
if (isset($iconsData[0]['family'])) {
|
||||
// Handle the case with families and svgs (structure 1)
|
||||
foreach ($iconsData as &$family) {
|
||||
if (isset($family['svgs']) && is_array($family['svgs'])) {
|
||||
// Sort the 'svgs' array alphabetically by the 'name' field
|
||||
usort($family['svgs'], function($a, $b) {
|
||||
return strcmp($a['name'], $b['name']);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Sort the families by the 'family' field (if needed)
|
||||
usort($iconsData, function($a, $b) {
|
||||
return strcmp($a['family'], $b['family']);
|
||||
});
|
||||
|
||||
} else {
|
||||
// Handle the case without families (structure 2)
|
||||
// Sort the flat array of icons alphabetically by the 'name' field
|
||||
usort($iconsData, function($a, $b) {
|
||||
return strcmp($a['name'], $b['name']);
|
||||
});
|
||||
}
|
||||
|
||||
// Encode the sorted data back to JSON
|
||||
$sortedJsonData = json_encode($iconsData, JSON_PRETTY_PRINT);
|
||||
|
||||
// Check if encoding was successful
|
||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
die('Error encoding JSON data: ' . json_last_error_msg());
|
||||
}
|
||||
|
||||
// Write the sorted JSON data back to the file
|
||||
if (file_put_contents($filePath, $sortedJsonData)) {
|
||||
echo "The icons data has been sorted and saved successfully!";
|
||||
} else {
|
||||
echo "Error writing the sorted data to the file.";
|
||||
}
|
||||
|
||||
?>
|
||||
61
assets/json/converter.php
Normal file
61
assets/json/converter.php
Normal file
@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
// Function to generate a UUID (compliant with MySQL UUID)
|
||||
function generateUUID() {
|
||||
return bin2hex(random_bytes(16)); // Generate a random UUID
|
||||
}
|
||||
|
||||
// Function to convert the raw SVG to JSON format
|
||||
function convertSymbolsToJSON($svgContent) {
|
||||
// Match all <symbol> elements and extract them
|
||||
preg_match_all('/<symbol[^>]*>[\s\S]*?<\/symbol>/', $svgContent, $matches);
|
||||
|
||||
$jsonData = [];
|
||||
|
||||
foreach ($matches[0] as $symbol) {
|
||||
// Extract 'id', 'viewBox', and 'path' attributes
|
||||
preg_match('/id="([^"]+)"/', $symbol, $idMatches);
|
||||
preg_match('/viewBox="([^"]+)"/', $symbol, $viewBoxMatches);
|
||||
preg_match('/<path[^>]*d="([^"]+)"/', $symbol, $pathMatches);
|
||||
|
||||
// If we have a valid symbol, process it
|
||||
if (isset($idMatches[1]) && isset($viewBoxMatches[1]) && isset($pathMatches[1])) {
|
||||
// Generate a UUID for the symbol
|
||||
$uniqueId = generateUUID();
|
||||
|
||||
// Capitalize the name by replacing hyphens with spaces and capitalizing each word
|
||||
$name = ucwords(str_replace('-', ' ', $idMatches[1]));
|
||||
|
||||
// Build the symbol JSON object
|
||||
$symbolJSON = [
|
||||
"id" => $uniqueId,
|
||||
"name" => $name,
|
||||
"viewBox" => $viewBoxMatches[1],
|
||||
"path" => "<path d='" . $pathMatches[1] . "'/>"
|
||||
];
|
||||
|
||||
// Add the symbol JSON to the data array
|
||||
$jsonData[] = $symbolJSON;
|
||||
}
|
||||
}
|
||||
|
||||
return $jsonData;
|
||||
}
|
||||
|
||||
// Read the SVG file (assumes it's in the same directory)
|
||||
$svgFilePath = 'input.svg'; // The input SVG file
|
||||
if (file_exists($svgFilePath)) {
|
||||
$svgContent = file_get_contents($svgFilePath);
|
||||
|
||||
// Convert symbols to JSON
|
||||
$symbolsJson = convertSymbolsToJSON($svgContent);
|
||||
|
||||
// Output the JSON data to a file
|
||||
$outputFilePath = 'output.json';
|
||||
file_put_contents($outputFilePath, json_encode($symbolsJson, JSON_PRETTY_PRINT));
|
||||
|
||||
echo "JSON file has been created successfully: $outputFilePath\n";
|
||||
} else {
|
||||
echo "Error: SVG file not found.\n";
|
||||
}
|
||||
?>
|
||||
57
assets/json/fixpaths.php
Normal file
57
assets/json/fixpaths.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
// Path to the input JSON file
|
||||
$inputFile = 'font-awesome-v6.1.7-solid-svgs.json';
|
||||
|
||||
// Step 1: Load the JSON data
|
||||
$jsonData = file_get_contents($inputFile);
|
||||
|
||||
// Check if the file was read successfully
|
||||
if ($jsonData === false) {
|
||||
die("Error reading the JSON file.");
|
||||
}
|
||||
|
||||
// Step 2: Decode the JSON data into a PHP array
|
||||
$data = json_decode($jsonData, true);
|
||||
|
||||
// Check if JSON decoding was successful
|
||||
if ($data === null) {
|
||||
die("Error decoding the JSON data.");
|
||||
}
|
||||
|
||||
// Step 3: Modify the structure by extracting the 'd' value and formatting the 'paths' tag
|
||||
foreach ($data as $index => $iconSet) {
|
||||
if (isset($iconSet['svgs']) && is_array($iconSet['svgs'])) {
|
||||
foreach ($iconSet['svgs'] as $svgIndex => $svg) {
|
||||
// Check if 'path' exists
|
||||
if (isset($svg['path'])) {
|
||||
// Extract the 'd' attribute value from the nested path string
|
||||
preg_match('/d=[\'"]([^\'"]+)[\'"]/i', $svg['path'], $matches);
|
||||
|
||||
// If we found the 'd' value, format the paths correctly
|
||||
if (isset($matches[1])) {
|
||||
$dValue = $matches[1]; // Get the actual 'd' value from the path
|
||||
|
||||
// Escape the 'd' value for JSON format (escape double quotes inside the string)
|
||||
$escapedDValue = str_replace('"', '\\"', $dValue);
|
||||
|
||||
// Now, add the proper <path> tag to the 'paths' field
|
||||
$svg['paths'] = "<path d=\"{$escapedDValue}\"/>";
|
||||
}
|
||||
|
||||
unset($svg['path']); // Optionally remove the original 'path' key
|
||||
}
|
||||
// Save the modified svg back to the array
|
||||
$data[$index]['svgs'][$svgIndex] = $svg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Optional: Save the modified JSON to a new file
|
||||
$outputFile = 'solid-fixed-paths.json';
|
||||
file_put_contents($outputFile, json_encode($data, JSON_PRETTY_PRINT));
|
||||
|
||||
// Output the success message
|
||||
echo "Successfully modified and saved the JSON file with 'path' converted to 'paths'.\n";
|
||||
|
||||
?>
|
||||
@ -1,23 +0,0 @@
|
||||
[
|
||||
{
|
||||
"family": "Font Awesome",
|
||||
"svgs": [
|
||||
{
|
||||
"id": "comment-dots",
|
||||
"name": "Comment Dots",
|
||||
"path": "<path d='M168.2 384.9c-15-5.4-31.7-3.1-44.6 6.4c-8.2 6-22.3 14.8-39.4 22.7c5.6-14.7 9.9-31.3 11.3-49.4c1-12.9-3.3-25.7-11.8-35.5C60.4 302.8 48 272 48 240c0-79.5 83.3-160 208-160s208 80.5 208 160s-83.3 160-208 160c-31.6 0-61.3-5.5-87.8-15.1zM26.3 423.8c-1.6 2.7-3.3 5.4-5.1 8.1l-.3 .5c-1.6 2.3-3.2 4.6-4.8 6.9c-3.5 4.7-7.3 9.3-11.3 13.5c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c5.1 0 10.2-.3 15.3-.8l.7-.1c4.4-.5 8.8-1.1 13.2-1.9c.8-.1 1.6-.3 2.4-.5c17.8-3.5 34.9-9.5 50.1-16.1c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z'/>"
|
||||
},
|
||||
{
|
||||
"id": "newspaper",
|
||||
"name": "Newspaper",
|
||||
"path": "<path d='M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM176 136c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24l0-80zm200-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM200 272l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z'/>"
|
||||
},
|
||||
{
|
||||
"id": "map",
|
||||
"name": "Map",
|
||||
"path": "<path d='M565.6 36.2C572.1 40.7 576 48.1 576 56l0 336c0 10-6.2 18.9-15.5 22.4l-168 64c-5.2 2-10.9 2.1-16.1 .3L192.5 417.5l-160 61c-7.4 2.8-15.7 1.8-22.2-2.7S0 463.9 0 456L0 120c0-10 6.1-18.9 15.5-22.4l168-64c5.2-2 10.9-2.1 16.1-.3L383.5 94.5l160-61c7.4-2.8 15.7-1.8 22.2 2.7zM48 136.5l0 284.6 120-45.7 0-284.6L48 136.5zM360 422.7l0-285.4-144-48 0 285.4 144 48zm48-1.5l120-45.7 0-284.6L408 136.5l0 284.6z'/>"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
10
assets/json/icons/icon-definitions.json
Normal file
10
assets/json/icons/icon-definitions.json
Normal file
@ -0,0 +1,10 @@
|
||||
[
|
||||
{
|
||||
"id": "3cd46d8957ea8cf1a80ee6bcef7251de",
|
||||
"setName": "Font Awesome - Regular",
|
||||
"setFamily": "Font Awesome",
|
||||
"version": "6.7.1",
|
||||
"fileName": "font-awesome-v6.7.1-regular-svgs.json"
|
||||
|
||||
}
|
||||
]
|
||||
46
assets/json/icons/material-icons/fix.php
Normal file
46
assets/json/icons/material-icons/fix.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
// Path to the input JSON file
|
||||
$inputFile = 'material-icons-baseline.json';
|
||||
// Path to the output JSON file
|
||||
$outputFile = 'material-icons-baseline-unescaped.json';
|
||||
|
||||
// Step 1: Load the JSON data
|
||||
$jsonData = file_get_contents($inputFile);
|
||||
|
||||
// Check if the file was read successfully
|
||||
if ($jsonData === false) {
|
||||
die("Error reading the JSON file.");
|
||||
}
|
||||
|
||||
// Step 2: Decode the JSON data into a PHP array
|
||||
$data = json_decode($jsonData, true);
|
||||
|
||||
// Check if JSON decoding was successful
|
||||
if ($data === null) {
|
||||
die("Error decoding the JSON data.");
|
||||
}
|
||||
|
||||
// Step 3: Iterate through each item and unescape the 'paths' key
|
||||
foreach ($data as &$icon) {
|
||||
// Unescape only HTML entities (without affecting forward slashes)
|
||||
$icon['paths'] = html_entity_decode($icon['paths'], ENT_QUOTES | ENT_HTML5);
|
||||
}
|
||||
|
||||
// Step 4: Encode the modified data back into JSON format
|
||||
$newJsonData = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
|
||||
// Check if encoding was successful
|
||||
if ($newJsonData === false) {
|
||||
die("Error encoding the JSON data.");
|
||||
}
|
||||
|
||||
// Step 5: Save the modified JSON data to the output file
|
||||
file_put_contents($outputFile, $newJsonData);
|
||||
|
||||
// Check if file writing was successful
|
||||
if (file_put_contents($outputFile, $newJsonData) === false) {
|
||||
die("Error saving the modified JSON data.");
|
||||
}
|
||||
|
||||
echo "Paths have been unescaped and saved to '$outputFile'.\n";
|
||||
?>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
4206
assets/json/input.svg
Normal file
4206
assets/json/input.svg
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user