Skip to content

Instantly share code, notes, and snippets.

@wjandrea
Last active September 1, 2024 22:17
Show Gist options
  • Select an option

  • Save wjandrea/ec7a266ff71c802077bbb1ab7a3ab053 to your computer and use it in GitHub Desktop.

Select an option

Save wjandrea/ec7a266ff71c802077bbb1ab7a3ab053 to your computer and use it in GitHub Desktop.

Revisions

  1. wjandrea revised this gist Sep 1, 2024. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -7,6 +7,8 @@

    ## Exemple

    [_raconte_](https://www.wordreference.com/fren/raconte)

    Avant :

    > Du verbe **raconter**: (⇒ conjuguer)
  2. wjandrea created this gist Sep 1, 2024.
    34 changes: 34 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,34 @@
    # Abréger les descriptions des conjugaisons

    - *1, 2, 3* = 1e, 2e, 3e personne
    - *sg, pl* = singulier, pluriel
    - **Temps** : si le temps est *présent*, il n'est pas affiché
    - **Mode** : si le mode est *indicatif*, il n'est pas affiché, sauf le présent de l'indicatif

    ## Exemple

    Avant :

    > Du verbe **raconter**: (⇒ conjuguer)
    >
    > - **raconte** est:
    > - 1e personne du singulier du présent de l'indicatif
    > - 3e personne du singulier du présent de l'indicatif
    > - 1e personne du singulier du présent du subjonctif
    > - 3e personne du singulier du présent du subjonctif
    > - 2e personne du singulier du présent de l'impératif
    > - **raconté** est:
    > - un participe passé
    Après :

    > Du verbe **raconter**: (⇒ conjuguer)
    >
    > - **raconte** est:
    > - 1sg indicatif
    > - 3sg indicatif
    > - 1sg subjonctif
    > - 3sg subjonctif
    > - 2sg impératif
    > - **raconté** est:
    > - un participe passé
    53 changes: 53 additions & 0 deletions WR_short_inflections_FR.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,53 @@
    // ==UserScript==
    // @name WR short inflections FR
    // @namespace
    // @version 0.3.1
    // @description Shorten inflection descriptions on WordReference French.
    // @author William Andrea (wjandrea)
    // @match https://www.wordreference.com/fren/*
    // @icon https://www.google.com/s2/favicons?sz=64&domain=wordreference.com
    // @grant none
    // ==/UserScript==

    (function() {
    'use strict';

    const person_pattern = new RegExp(
    [
    /(?<person>1|2|3)<sup>e<\/sup> personne/,
    // FIXME: Replacing "sg/pl" is kinda janky here.
    / du (?:(?<s0>s)in(?<s1>g)ulier|(?<pl>pl)uriel)/,
    ].map(r => r.source).join(''),
    );
    const person_replacement = "$<person>$<s0>$<s1>$<pl>";

    const conj_patterns = [
    /du (?<_tense>présent) de l'(?<mood>indicatif)/,
    /de l'(?<tense>imparfait) de l'(?<_mood>indicatif)/,
    /du (?<tense>passé simple) de l'(?<_mood>indicatif)/,
    /du (?<tense>futur) de l'(?<_mood>indicatif)/,
    /du (?<_tense>présent) du (?<mood>subjonctif)/,
    /de l'(?<tense>imparfait) du (?<mood>subjonctif)/,
    /du (?<_tense>présent) de l'(?<mood>impératif)/,

    /du (?<mood>conditionnel) (?<_tense>présent)/,
    ];
    const conj_replacement = "$<tense> $<mood>";

    let inflections = document.querySelectorAll(".inflectionsSection dd");
    for (let infl of inflections) {
    let ih = infl.innerHTML;
    let ih_person = ih.replace(person_pattern, person_replacement);
    infl.innerHTML = ih_person;

    for (let conj_p of conj_patterns) {
    console.debug(`Trying regex: ${conj_p}`);
    if (ih_person.match(conj_p)) {
    let ih_conj = ih_person.replace(conj_p, conj_replacement);
    console.log(`New inflection notation: ${ih_conj}. Was: ${ih}`)
    infl.innerHTML = ih_conj;
    break
    }
    }
    }
    })();