992
edits
(pandoc) |
|||
| (26 intermediate revisions by the same user not shown) | |||
| Line 13: | Line 13: | ||
**[[Thunderbird/Support/TB115.0SupportIssues]] | **[[Thunderbird/Support/TB115.0SupportIssues]] | ||
== 2025-11-13 How to know which Thunderbird Desktop are current for Daily (aka Nightly in Firefox's lingo), ESR and Release (aka LATEST_THUNDERBIRD_VERSION) using the | |||
== 2026-02-05 Pandoc in your browser makes it easy convert SUMO/wikitext to and from markdown == | |||
* https://pandoc.org/app/ | |||
== 2026-01-29 Testing GhostText, turns out you have to right click > `Activate GhostText on field` in the text field you are editing, there is no toolbar button available in Firefox unless you click the puzzle piece icon, click the gear icon and pin the GhostText extension :-) == | |||
== 2026-01-15 UNTESTED --> How To update a google sheet automatically from a CSV on github == | |||
from a google search for <code>how to update a google sheet cell with numbers from a github csv file</code>: | |||
<div class="mw-collapsible mw-collapsed" data-expandtext="show me the github CSV google sheet magic"> | |||
'''Method 1: Using the <code>IMPORTDATA</code> Function (Manual/Semi-automated)''' | |||
This method is the simplest if your CSV file is publicly accessible and you | |||
don’t need real-time, automatic updates. The data will refresh | |||
periodically or when the sheet is manually reopened. | |||
* 1. '''Get the raw CSV URL from GitHub:''' Navigate to your CSV file on GitHub, click the '''“Raw”''' button, and copy the URL from your browser’s address bar. This URL | |||
should point directly to the raw data and typically starts with <code>raw.githubusercontent.com...</code>. | |||
* 2. '''Use the <code>IMPORTDATA</code> function:''' In the desired Google Sheets cell (e.g., A1), enter the following formula, replacing <code>"YOUR_RAW_CSV_URL"</code> with the URL you copied: | |||
<pre class="excel">=IMPORTDATA("YOUR_RAW_CSV_URL")</pre> | |||
* 3. '''Press Enter:''' The data from the GitHub CSV file will populate the sheet starting from | |||
that cell. The data will automatically arrange itself into rows and | |||
columns | |||
'''Method 2: Using Google Apps Script (Automated/Programmatic)''' | |||
For more robust solutions, such as updating a specific range of cells or<br /> | |||
scheduling automatic updates, Google Apps Script is the best approach. | |||
* 1. '''Open the Apps Script editor:''' In your Google Sheet, go to '''Extensions''' > '''Apps Script'''. | |||
* 2. '''Paste the script:''' Delete any existing code in the <code>Code.gs</code> file and paste the following script. Remember to replace <code>"YOUR_RAW_CSV_URL"</code> with your actual GitHub raw CSV URL and <code>"Sheet1"</code> with your target sheet’s name: | |||
<div class="mw-collapsible mw-collapsed" data-expandtext="show me the JS"> | |||
<syntaxhighlight lang="js"> | |||
function importCSVFromGitHub() { | |||
const url = "YOUR_RAW_CSV_URL"; // Replace with your GitHub raw CSV URL | |||
const sheetName = "Sheet1"; // Replace with your target sheet name | |||
const targetCell = "A1"; // The cell to start pasting data | |||
try { | |||
// Fetch the CSV data | |||
const response = UrlFetchApp.fetch(url); | |||
const csvData = response.getContentText(); | |||
// Parse the CSV data into a 2D array | |||
const dataArray = Utilities.parseCsv(csvData); | |||
// Get the target sheet and range | |||
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); | |||
if (!sheet) { | |||
Logger.log("Sheet not found: " + sheetName); | |||
return; | |||
} | |||
// Update the sheet with the new data | |||
// Clear previous data in the target range first if needed | |||
const startRange = sheet.getRange(targetCell); | |||
const startRow = startRange.getRow(); | |||
const startColumn = startRange.getColumn(); | |||
// Clear only the area the new data will occupy | |||
sheet.getRange(startRow, startColumn, sheet.getLastRow(), sheet.getLastColumn()).clearContent(); | |||
// Set the new values | |||
sheet.getRange(startRow, startColumn, dataArray.length, dataArray[0].length).setValues(dataArray); | |||
Logger.log("CSV data successfully imported to " + sheetName); | |||
} | |||
catch (e) { | |||
Logger.log("Error importing CSV: " + e.toString()); | |||
} | |||
} | |||
</syntaxhighlight> | |||
</div> | |||
* 3. '''Save and run the script:''' | |||
** Click the '''Save''' icon (floppy disk) and name your project. | |||
** In the function dropdown menu (usually showing <code>importCSVFromGitHub</code> or <code>myFunction</code>), ensure <code>importCSVFromGitHub</code> is selected. | |||
** Click the '''Run''' button (play icon). | |||
** **Authorize** the script when prompted by following the on-screen instructions. | |||
* 4. '''Schedule automatic updates (optional):''' You can set a time-driven trigger to run this script automatically at specific intervals: | |||
** In the Apps Script editor, click the '''Triggers''' icon (alarm clock). | |||
** Click '''+ Add Trigger'''. | |||
** In the “Choose which function to run” dropdown, select <code>importCSVFromGitHub</code>. | |||
** Under “Select event source”, choose '''Time-driven'''. | |||
** Configure the frequency (e.g., every hour, day) and save the trigger | |||
</div> | |||
== 2026-01-15 How to syntax colour and highligt aka escape JavaScript code in wikitext== | |||
* apparently it's <code><syntaxhighlight lang="javascript">your JavaScript code here</syntaxhighlight></code>. For example: | |||
<div class="mw-collapsible mw-collapsed" data-expandtext="show me colourized JS"> | |||
<syntaxhighlight lang="javascript"> | |||
function importCSVFromGitHub() { | |||
const url = "YOUR_RAW_CSV_URL"; // Replace with your GitHub raw CSV URL | |||
const sheetName = "Sheet1"; // Replace with your target sheet name | |||
const targetCell = "A1"; // The cell to start pasting data | |||
try { | |||
// Fetch the CSV data | |||
const response = UrlFetchApp.fetch(url); | |||
const csvData = response.getContentText(); | |||
// Parse the CSV data into a 2D array | |||
const dataArray = Utilities.parseCsv(csvData); | |||
// Get the target sheet and range | |||
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); | |||
if (!sheet) { | |||
Logger.log("Sheet not found: " + sheetName); | |||
return; | |||
} | |||
// Update the sheet with the new data | |||
// Clear previous data in the target range first if needed | |||
const startRange = sheet.getRange(targetCell); | |||
const startRow = startRange.getRow(); | |||
const startColumn = startRange.getColumn(); | |||
// Clear only the area the new data will occupy | |||
sheet.getRange(startRow, startColumn, sheet.getLastRow(), sheet.getLastColumn()).clearContent(); | |||
// Set the new values | |||
sheet.getRange(startRow, startColumn, dataArray.length, dataArray[0].length).setValues(dataArray); | |||
Logger.log("CSV data successfully imported to " + sheetName); | |||
} catch (e) { | |||
Logger.log("Error importing CSV: " + e.toString()); | |||
} | |||
} | |||
</syntaxhighlight> | |||
</div> | |||
== 2025-12-08 Roland's LLM assisted coding for Support tasks blog page== | |||
[[User:Rolandtb/LLM assisted coding for Support related tasks]] | |||
== 2025-11-28 Non english i.e. non en-us Support Forums for Thunderbird == | |||
* https://wiki.mozilla.org/Thunderbird/Support/Community_support_based_on_languages <-- which I did the second edit on back in 2011 :-) | |||
== 2025-11-28 API for a Thunderbird Desktop add-on to implement custom OAuth == | |||
* https://webextension-api.thunderbird.net/en/mv2/oauthProvider.html | |||
== 2025-11-24 HOW TO run scrcpy to mirror your recent Android phone to your desktop screen == | |||
* Connect your Android phone to your Desktop with a USB-C cable and then: <code>scrcpy -m 1024 --max-fps=15 --print-fps --show-touches</code> <-- should work on macOS, linux and windows | |||
== 2025-11-20 Unsupported Thunderbird Desktop Windows on ARM 64 builds by DDS Central == | |||
* As of writing this, this volunteer's TB Desktop builds are up to date with the latest release which is currently Thunderbird 145: https://zebra.ddscentral.org/pub/downloads/thunderbird-arm64/ Kudos :-) ! | |||
== 2025-11-13 How to know which Thunderbird Desktop are current for Daily (aka Nightly in Firefox's lingo), ESR and Release (aka LATEST_THUNDERBIRD_VERSION) using the API == | |||
* https://product-details.mozilla.org/1.0/thunderbird_versions.json | * https://product-details.mozilla.org/1.0/thunderbird_versions.json | ||
<div class="mw-collapsible mw-collapsed" data-expandtext="show me Thunderbird desktiop versions as of 2025-11-13 10:30am, Daily is 147.0, ESR is 140.5.0, release is: 144.0.1"> | <div class="mw-collapsible mw-collapsed" data-expandtext="show me Thunderbird desktiop versions as of 2025-11-13 10:30am, Daily is 147.0, ESR is 140.5.0, release is: 144.0.1"> | ||
edits