Rolandtb

Joined 4 May 2023
pandoc
(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>&quot;YOUR_RAW_CSV_URL&quot;</code> with the URL you copied:
<pre class="excel">=IMPORTDATA(&quot;YOUR_RAW_CSV_URL&quot;)</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''' &gt; '''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>&quot;YOUR_RAW_CSV_URL&quot;</code> with your actual GitHub raw CSV URL and <code>&quot;Sheet1&quot;</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>&lt;syntaxhighlight lang="javascript">your JavaScript code here&lt;/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]
992

edits