992
edits
(SUMO KB article search engine :-)) |
(pandoc) |
||
| (29 intermediate revisions by the same user not shown) | |||
| Line 12: | Line 12: | ||
**[https://github.com/thunderbird/knowledgebase-issues/issues github knowledge base issues for Thunderbird Knowledge Base articles on support.mozilla.org] | **[https://github.com/thunderbird/knowledgebase-issues/issues github knowledge base issues for Thunderbird Knowledge Base articles on support.mozilla.org] | ||
**[[Thunderbird/Support/TB115.0SupportIssues]] | **[[Thunderbird/Support/TB115.0SupportIssues]] | ||
== 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 | |||
<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"> | |||
<code> | |||
{ | |||
"LATEST_THUNDERBIRD_ALPHA_VERSION": "54.0a2", | |||
"LATEST_THUNDERBIRD_DEVEL_VERSION": "145.0b4", | |||
"LATEST_THUNDERBIRD_NIGHTLY_VERSION": "147.0a1", | |||
"LATEST_THUNDERBIRD_VERSION": "144.0.1", | |||
"THUNDERBIRD_ESR": "140.5.0esr", | |||
"THUNDERBIRD_ESR_NEXT": "" | |||
} | |||
</code> | |||
</div> | |||
== 2025-10-19 SUMO KB search engine for all free products including Thunderbird, Firefox, Thunderbird for Android etc == | == 2025-10-19 SUMO KB search engine for all free products including Thunderbird, Firefox, Thunderbird for Android etc == | ||
* [https://lite.datasette.io/?csv=https%3A%2F%2Fraw.githubusercontent.com%2Fthunderbird%2Fgithub-action-thunderbird-kb%2Fmain%2Fdetails-allproducts-kb-title-slug-all-articles.csv#/data/details-allproducts-kb-title-slug-all-articles SQLite datasette lite search engine] (CSV file for those who want to use their own tools: [https://github.com/thunderbird/github-action-thunderbird-kb/blob/main/details-allproducts-kb-title-slug-all-articles.csv details-allproducts-kb-title-slug-all-articles.csv]) <-- You can use your favourite CSV or SQLite or whatever :-) tool! There are 1000s of free tools if datasette or SQLite aren't your jam <-- updated twice a day at 0900 UTC and 2100 UTC | * [https://lite.datasette.io/?csv=https%3A%2F%2Fraw.githubusercontent.com%2Fthunderbird%2Fgithub-action-thunderbird-kb%2Fmain%2Fdetails-allproducts-kb-title-slug-all-articles.csv#/data/details-allproducts-kb-title-slug-all-articles SQLite datasette lite search engine] (CSV file for those who want to use their own tools: [https://github.com/thunderbird/github-action-thunderbird-kb/blob/main/details-allproducts-kb-title-slug-all-articles.csv details-allproducts-kb-title-slug-all-articles.csv]) <-- You can use your favourite CSV or SQLite or whatever :-) tool! There are 1000s of free tools and cheap tools (e.g. SQLite tools since CSV is easily converted to SQLite [https://menial.co.uk/base/ Base for SQLite on macOS] [https://sqlitebrowser.org/ DB Browser for SQLite] or a CSV tool like [https://www.moderncsv.com/ Modern CSV] or [https://www.easycsv.io/ Easy CSV] or [https://openrefine.org Open Refine] or of course Google Sheets), if datasette or SQLite aren't your jam <-- updated twice a day at 0900 UTC and 2100 UTC | ||
== 2025-10-15 Wayne's bugzilla query for exchange auth error == | == 2025-10-15 Wayne's bugzilla query for exchange auth error == | ||
* [https://bugzilla.mozilla.org/buglist.cgi?bug_type=defect&chfield=%5BBug%20creation%5D&chfieldfrom=6m&classification=Client%20Software&classification=Components&f1=short_desc&f10=CP&f11=short_desc&f2=component&f3=OP&f4=version&f5=longdesc&f6=CP&f7=OP&f8=short_desc&f9=component&j7=OR&longdesc=exchange%20auth%20error&longdesc_type=substring&o1=nowordssubstr&o11=nowords&o2=nowordssubstr&o4=nowordssubstr&o5=anywordssubstr&o8=anywordssubstr&product=MailNews%20Core&product=Thunderbird&v1=intermit%20perma%20&v2=%20add-on%20build%20upstream&order=bug_id&list_id=17704669 long link], [https://bugzilla.mozilla.org/buglist.cgi?bug_type=defect&chfield=%5BBug%20creation%5D&chfieldfrom=6m&classification=Client%20Software&classification=Components&f1=short_desc&f10=CP&f11=short_desc&f2=component&f3=OP&f4=version&f5=longdesc&f6=CP&f7=OP&f8=short_desc&f9=component&j7=OR&longdesc=exchange%20auth%20error&longdesc_type=substring&o1=nowordssubstr&o11=nowords&o2=nowordssubstr&o4=nowordssubstr&o5=anywordssubstr&o8=anywordssubstr&product=MailNews%20Core&product=Thunderbird&v1=intermit%20perma%20&v2=%20add-on%20build%20upstream&order=bug_id&list_id=17704669# short link] | * [https://bugzilla.mozilla.org/buglist.cgi?bug_type=defect&chfield=%5BBug%20creation%5D&chfieldfrom=6m&classification=Client%20Software&classification=Components&f1=short_desc&f10=CP&f11=short_desc&f2=component&f3=OP&f4=version&f5=longdesc&f6=CP&f7=OP&f8=short_desc&f9=component&j7=OR&longdesc=exchange%20auth%20error&longdesc_type=substring&o1=nowordssubstr&o11=nowords&o2=nowordssubstr&o4=nowordssubstr&o5=anywordssubstr&o8=anywordssubstr&product=MailNews%20Core&product=Thunderbird&v1=intermit%20perma%20&v2=%20add-on%20build%20upstream&order=bug_id&list_id=17704669 long link], [https://bugzilla.mozilla.org/buglist.cgi?bug_type=defect&chfield=%5BBug%20creation%5D&chfieldfrom=6m&classification=Client%20Software&classification=Components&f1=short_desc&f10=CP&f11=short_desc&f2=component&f3=OP&f4=version&f5=longdesc&f6=CP&f7=OP&f8=short_desc&f9=component&j7=OR&longdesc=exchange%20auth%20error&longdesc_type=substring&o1=nowordssubstr&o11=nowords&o2=nowordssubstr&o4=nowordssubstr&o5=anywordssubstr&o8=anywordssubstr&product=MailNews%20Core&product=Thunderbird&v1=intermit%20perma%20&v2=%20add-on%20build%20upstream&order=bug_id&list_id=17704669# short link] | ||
edits