🎉 Hello world

This commit is contained in:
Shikiryu committed 2019-09-02 16:37:11 +02:00
commit 2d66ff27e2
15 files changed
+10917

No files matched your search

+9597
View File
File diff suppressed because it is too large. Load diff
+43
View File
@@ -0,0 +1,43 @@
/*!
* a-tools 1.5.2
*
* Copyright (c) 2009 Andrey Kramarev(andrey.kramarev[at]ampparit.com), Ampparit Inc. (www.ampparit.com)
* Licensed under the MIT license.
* http://www.ampparit.fi/a-tools/license.txt
*
* Basic usage:
<textarea></textarea>
<input type="text" />
// Get current selection
var sel = $("textarea").getSelection()
// Replace current selection
$("input").replaceSelection("foo");
// Count characters
alert($("textarea").countCharacters());
// Set max length without callback function
$("textarea").setMaxLength(7);
// Set max length with callback function which will be called when limit is exceeded
$("textarea").setMaxLength(10, function() {
alert("hello")
});
// Removing limit:
$("textarea").setMaxLength(-1);
// Insert text at current caret position
$("#textarea").insertAtCaretPos("hello");
// Set caret position (1 = beginning, -1 = end)
$("#textArea").setCaretPos(10);
// Set Selection
$("#textArea").setSelection(10,15);
*/
var caretPositionAmp=[]; function init(){if(navigator.appName=="Microsoft Internet Explorer"){obj=document.getElementsByTagName("TEXTAREA");var b,a=0;for(a=0;a<obj.length;a++){b=obj[a];caretPositionAmp[a]=b.value.length;b.onmouseup=function(){b=document.activeElement;for(var c=0;c<obj.length;c++)if(obj[c]==b)break;b.focus();var e=document.selection.createRange(),h=b.createTextRange(),d=h.duplicate();h.moveToBookmark(e.getBookmark());d.setEndPoint("EndToStart",h);caretPositionAmp[c]=d.text.length};b.onkeyup=function(){b=document.activeElement; for(var c=0;c<obj.length;c++)if(obj[c]==b)break;b.focus();var e=document.selection.createRange(),h=b.createTextRange(),d=h.duplicate();h.moveToBookmark(e.getBookmark());d.setEndPoint("EndToStart",h);caretPositionAmp[c]=d.text.length}}}}window.onload=init; jQuery.fn.extend({getSelection:function(){var b=this.jquery?this[0]:this,a,c,e,h=0;b.onmousedown=function(){document.selection&&typeof b.selectionStart!="number"?document.selection.empty():window.getSelection().removeAllRanges()};if(document.selection){var d=document.selection.createRange(),f=0,g=0,i=0;a=document.getElementsByTagName("TEXTAREA");for(c=0;c<a.length;c++)if(a[c]==b)break;if(b.value.match(/\n/g)!=null)h=b.value.match(/\n/g).length;if(d.text){e=d.text;if(typeof b.selectionStart=="number"){a= b.selectionStart;c=b.selectionEnd;if(a==c)return{start:a,end:c,text:d.text,length:c-a}}else{a=b.createTextRange();e=a.duplicate();firstRe=a.text;a.moveToBookmark(d.getBookmark());secondRe=a.text;e.setEndPoint("EndToStart",a);if(firstRe==secondRe&&firstRe!=d.text||e.text.length>firstRe.length)return{start:caretPositionAmp[c],end:caretPositionAmp[c],text:"",length:0};a=e.text.length;c=e.text.length+d.text.length}if(h>0)for(e=0;e<=h;e++){var k=b.value.indexOf("\n",g);if(k!=-1&&k<a){g=k+1;f++;i=f}else if(k!= -1&&k>=a&&k<=c)if(k==a+1){f--;i--;g=k+1}else{g=k+1;i++}else e=h}if(d.text.indexOf("\n",0)==1)i+=2;a-=f;c-=i;return{start:a,end:c,text:d.text,length:c-a}}b.focus();if(typeof b.selectionStart=="number")a=b.selectionStart;else{d=document.selection.createRange();a=b.createTextRange();e=a.duplicate();a.moveToBookmark(d.getBookmark());e.setEndPoint("EndToStart",a);a=e.text.length}if(h>0)for(e=0;e<=h;e++){k=b.value.indexOf("\n",g);if(k!=-1&&k<a){g=k+1;f++}else e=h}a-=f;if(a==0&&typeof b.selectionStart!= "number"){a=caretPositionAmp[c];c=caretPositionAmp[c]}return{start:a,end:a,text:d.text,length:0}}else if(typeof b.selectionStart=="number"){a=b.selectionStart;c=b.selectionEnd;e=b.value.substring(b.selectionStart,b.selectionEnd);return{start:a,end:c,text:e,length:c-a}}else return{start:undefined,end:undefined,text:undefined,length:undefined}},replaceSelection:function(b){var a=this.jquery?this[0]:this,c,e;e=0;var h,d,f=0,g=0,i=a.scrollTop==undefined?0:a.scrollTop;c=document.getElementsByTagName("TEXTAREA"); for(var k=0;k<c.length;k++)if(c[k]==a)break;if(document.selection&&typeof a.selectionStart!="number"){i=document.selection.createRange();if(typeof a.selectionStart!="number"){var j;d=a.createTextRange();h=d.duplicate();c=d.text;d.moveToBookmark(i.getBookmark());j=d.text;try{h.setEndPoint("EndToStart",d)}catch(m){return this}if(c==j&&c!=i.text||h.text.length>c.length)return this}if(i.text){part=i.text;if(a.value.match(/\n/g)!=null)f=a.value.match(/\n/g).length;c=h.text.length;if(f>0)for(j=0;j<=f;j++){var l= a.value.indexOf("\n",e);if(l!=-1&&l<c){e=l+1;g++}else j=f}i.text=b;caretPositionAmp[k]=h.text.length+b.length;d.move("character",caretPositionAmp[k]);document.selection.empty();a.blur()}return this}else if(typeof a.selectionStart=="number"&&a.selectionStart!=a.selectionEnd){c=a.selectionStart;e=a.selectionEnd;a.value=a.value.substr(0,c)+b+a.value.substr(e);e=c+b.length;a.setSelectionRange(e,e);a.scrollTop=i;return this}return this},setSelection:function(b,a){b=parseInt(b);a=parseInt(a);var c=this.jquery? this[0]:this;c.focus();if(typeof c.selectionStart!="number"){re=c.createTextRange();if(re.text.length<a)a=re.text.length+1}if(a<b)return this;if(document.selection){var e=0,h=0,d=0,f=0;if(typeof c.selectionStart!="number"){re.collapse(true);re.moveEnd("character",a);re.moveStart("character",b);re.select()}else{if(typeof c.selectionStart=="number"){if(c.value.match(/\n/g)!=null)e=c.value.match(/\n/g).length;if(e>0)for(var g=0;g<=e;g++){var i=c.value.indexOf("\n",d);if(i!=-1&&i<b){d=i+1;h++;f=h}else if(i!= -1&&i>=b&&i<=a)if(i==b+1){h--;f--;d=i+1}else{d=i+1;f++}else g=e}b+=h;a+=f;c.selectionStart=b;c.selectionEnd=a}c.focus()}return this}else if(c.selectionStart||c.selectionStart==0){c.focus();window.getSelection().removeAllRanges();c.selectionStart=b;c.selectionEnd=a;c.focus();return this}},insertAtCaretPos:function(b){var a=this.jquery?this[0]:this,c,e,h,d,f,g,i;c=e=0;var k=a.scrollTop==undefined?0:a.scrollTop;i=document.getElementsByTagName("TEXTAREA");for(var j=0;j<i.length;j++)if(i[j]==a)break;a.focus(); if(document.selection&&typeof a.selectionStart!="number"){if(a.value.match(/\n/g)!=null)c=a.value.match(/\n/g).lengthLine truncated
+231
View File
@@ -0,0 +1,231 @@
/*
* jQuery textarea suggest plugin
*
* Copyright (c) 2009-2010 Roman Imankulov
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Requires:
* - jQuery (tested with 1.3.x and 1.4.x)
* - jquery.a-tools >= 1.4.1 (http://plugins.jquery.com/project/a-tools)
*/
/*globals jQuery,document */
(function ($) {
// workaround for Opera browser
if (navigator.userAgent.match(/opera/i)) {
$(document).keypress(function (e) {
if ($.asuggestFocused) {
$.asuggestFocused.focus();
$.asuggestFocused = null;
e.preventDefault();
e.stopPropagation();
}
});
}
$.asuggestKeys = {
UNKNOWN: 0,
SHIFT: 16,
CTRL: 17,
ALT: 18,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
DEL: 46,
TAB: 9,
RETURN: 13,
ESC: 27,
COMMA: 188,
PAGEUP: 33,
PAGEDOWN: 34,
BACKSPACE: 8,
SPACE: 32
};
$.asuggestFocused = null;
$.fn.asuggest = function (suggests, options) {
return this.each(function () {
$.makeSuggest(this, suggests, options);
});
};
$.fn.asuggest.defaults = {
'delimiters': '\n ',
'minChunkSize': 1,
'cycleOnTab': true,
'autoComplete': true,
'endingSymbols': ' ',
'stopSuggestionKeys': [$.asuggestKeys.RETURN, $.asuggestKeys.SPACE],
'ignoreCase': false
};
/* Make suggest:
*
* create and return jQuery object on the top of DOM object
* and store suggests as part of this object
*
* @param area: HTML DOM element to add suggests to
* @param suggests: The array of suggest strings
* @param options: The options object
*/
$.makeSuggest = function (area, suggests, options) {
options = $.extend({}, $.fn.asuggest.defaults, options);
var KEY = $.asuggestKeys,
$area = $(area);
$area.suggests = suggests;
$area.options = options;
/* Internal method: get the chunk of text before the cursor */
$area.getChunk = function () {
var delimiters = this.options.delimiters.split(''), // array of chars
textBeforeCursor = this.val().substr(0, this.getSelection().start),
indexOfDelimiter = -1,
i,
d,
idx;
for (i = 0; i < delimiters.length; i++) {
d = delimiters[i];
idx = textBeforeCursor.lastIndexOf(d);
if (idx > indexOfDelimiter) {
indexOfDelimiter = idx;
}
}
if (indexOfDelimiter < 0) {
return textBeforeCursor;
} else {
return textBeforeCursor.substr(indexOfDelimiter + 1);
}
};
/* Internal method: get completion.
* If performCycle is true then analyze getChunk() and and getSelection()
*/
$area.getCompletion = function (performCycle) {
var text = this.getChunk(),
selectionText = this.getSelection().text,
suggests = this.suggests,
foundAlreadySelectedValue = false,
firstMatchedValue = null,
i,
suggest;
// search the variant
for (i = 0; i < suggests.length; i++) {
suggest = suggests[i];
if ($area.options.ignoreCase) {
suggest = suggest.toLowerCase();
text = text.toLowerCase();
}
// some variant is found
if (suggest.indexOf(text) === 0) {
if (performCycle) {
if (text + selectionText === suggest) {
foundAlreadySelectedValue = true;
} else if (foundAlreadySelectedValue) {
return suggest.substr(text.length);
} else if (firstMatchedValue === null) {
firstMatchedValue = suggest;
}
} else {
return suggest.substr(text.length);
}
}
}
if (performCycle && firstMatchedValue) {
return firstMatchedValue.substr(text.length);
} else {
return null;
}
};
$area.updateSelection = function (completion) {
if (completion) {
var _selectionStart = $area.getSelection().start,
_selectionEnd = _selectionStart + completion.length;
if ($area.getSelection().text === "") {
if ($area.val().length === _selectionStart) { // Weird IE workaround, I really have no idea why it works
$area.setCaretPos(_selectionStart + 10000);
}
$area.insertAtCaretPos(completion);
} else {
$area.replaceSelection(completion);
}
$area.setSelection(_selectionStart, _selectionEnd);
}
};
$area.unbind('keydown.asuggest').bind('keydown.asuggest', function (e) {
if (e.keyCode === KEY.TAB) {
if ($area.options.cycleOnTab) {
var chunk = $area.getChunk();
if (chunk.length >= $area.options.minChunkSize) {
$area.updateSelection($area.getCompletion(true));
}
e.preventDefault();
e.stopPropagation();
$area.focus();
$.asuggestFocused = this;
return false;
}
}
// Check for conditions to stop suggestion
if ($area.getSelection().length &&
$.inArray(e.keyCode, $area.options.stopSuggestionKeys) !== -1) {
// apply suggestion. Clean up selection and insert a space
var _selectionEnd = $area.getSelection().end +
$area.options.endingSymbols.length;
var _text = $area.getSelection().text +
$area.options.endingSymbols;
$area.replaceSelection(_text);
$area.setSelection(_selectionEnd, _selectionEnd);
e.preventDefault();
e.stopPropagation();
this.focus();
$.asuggestFocused = this;
return false;
}
});
$area.unbind('keyup.asuggest').bind('keyup.asuggest', function (e) {
var hasSpecialKeys = e.altKey || e.metaKey || e.ctrlKey,
hasSpecialKeysOrShift = hasSpecialKeys || e.shiftKey;
switch (e.keyCode) {
case KEY.UNKNOWN: // Special key released
case KEY.SHIFT:
case KEY.CTRL:
case KEY.ALT:
case KEY.RETURN: // we don't want to suggest when RETURN key has pressed (another IE workaround)
break;
case KEY.TAB:
if (!hasSpecialKeysOrShift && $area.options.cycleOnTab) {
break;
}
case KEY.ESC:
case KEY.BACKSPACE:
case KEY.DEL:
case KEY.UP:
case KEY.DOWN:
case KEY.LEFT:
case KEY.RIGHT:
if (!hasSpecialKeysOrShift && $area.options.autoComplete) {
$area.replaceSelection("");
}
break;
default:
if (!hasSpecialKeys && $area.options.autoComplete) {
var chunk = $area.getChunk();
if (chunk.length >= $area.options.minChunkSize) {
$area.updateSelection($area.getCompletion(false));
}
}
break;
}
});
return $area;
};
}(jQuery));
+72
View File
@@ -0,0 +1,72 @@
(function ($) {
$.fn.explanationCheck = function (terms, options) {
return this.each(function () {
$.checkText(this, terms, options);
});
};
$.fn.explanationCheck.defaults = {
details: $('#details'),
counter: $('#counter'),
wordList: $('#wordList'),
separator: '<br/>',
ignoredCharacters: '\.\!,;\?',
splitCharacters:""
};
$.createCheckWorld = function(options, a) {
options.counter = typeof options.counter == 'string' ? options.counter[0] == '#' ? $(options.counter) : $("#"+options.counter) : options.counter;
options.wordList = typeof options.wordList == 'string' ? options.wordList[0] == '#' ? $(options.wordList) : $("#"+options.wordList) : options.wordList;
options.details = typeof options.details == 'string' ? options.details[0] == '#' ? $(options.details) : $("#"+options.details) : options.details;
if(options.counter.length == 0) options.counter = $('<span id="counter">0</span>').insertAfter(a);
if(options.wordList.length == 0) options.wordList = $('<span id="wordList"></span>').insertAfter(a);
}
$.updateWrongWord = function(o,w,c){
o.counter.html(c);
o.wordList.html(w.join(o.separator));
}
$.checkText = function (area, terms, options) {
options = $.extend({}, $.fn.explanationCheck.defaults, options);
var $area = $(area),
words = "",
counter = 0,
wrongWords = []
$countEl = typeof options.counter == 'string' ? $(options.counter) : options.counter;
$area.terms = terms;
$area.options = options;
$.createCheckWorld(options, $area);
$area.keyup(function(e){
if($(this).getSelection.length == 0){
counter = 0;
wrongWords = [];
words = $area.val().replace(new RegExp("["+$area.options.ignoredCharacters+"]","g"), '');
words = words.split(/[\s\n']+/g);
for(var i = 0, l = words.length; i < l ; i++){
var w = $.trim(words[i]).toLowerCase();
if(w != '' && !~terms.indexOf(w)){
wrongWords.push(w);
counter = wrongWords.length;
}
}
$.updateWrongWord(options, wrongWords, counter);
$countEl.updateCounter(counter);
}
});
$countEl.updateCounter = function(){
if(counter == 0){
$area.options.details.css('visibility','hidden');
}else{
$area.options.details.css('visibility','visible');
}
$countEl.html(counter);
}
return $area;
};
}(jQuery));
+190
View File
@@ -0,0 +1,190 @@
// remap jQuery to $
(function ($) {
if (window.location.hash !== "") {
$.post(
'load.php',
{'hash': window.location.hash},
function (data) {
if (data) {
$('#sug').val(data);
}
},
'text'
);
}
var verbs1 = "abandonner,accepter,accompagner,accorder,accrocher,accuser,acheter,achever,adresser,affirmer,agiter,aider,aimer,ajouter,allumer,amener,amuser,animer,annoncer,appeler,apporter,approcher,appuyer,armer,arracher,arrêter,arriver,assister,assurer,attacher,attaquer,attirer,avancer,avouer,baisser,briller,briser,brûler,cacher,calmer,caresser,casser,causer,céder,cesser,changer,chanter,charger,chasser,chercher,commander,commencer,composer,compter,condamner,confier,considérer,consulter,contenter,continuer,coucher,couler,couper,coûter,créer,creuser,crier,croiser,danser,déchirer,décider,déclarer,dégager,demander,demeurer,dépasser,déposer,désigner,désirer,dessiner,détacher,deviner,diriger,discuter,disposer,distinguer,dominer,donner,douter,dresser,durer,écarter,échapper,éclairer,éclater,écouter,écraser,effacer,élever,éloigner,embrasser,emmener,empêcher,employer,emporter,enfermer,enfoncer,engager,enlever,entourer,entraîner,entrer,envelopper,envoyer,éprouver,espérer,essayer,essuyer,étaler,étonner,étouffer,étudier,éviter,examiner,exécuter,exiger,exister,expliquer,exposer,exprimer,fatiguer,fermer,figurer,fixer,fonder,forcer,former,frapper,fumer,gagner,garder,glisser,habiller,habiter,hésiter,ignorer,imaginer,importer,imposer,indiquer,inquiéter,inspirer,installer,intéresser,interroger,inventer,inviter,jeter,jouer,juger,lever,lier,lisser,livrer,lutter,manger,manier,manquer,marcher,marier,marquer,mêler,menacer,mener,mériter,miser,monter,montrer,nommer,obliger,observer,occuper,oser,oublier,parler,partager,passer,payer,pencher,pénétrer,penser,peser,placer,pleurer,plonger,porter,poser,posséder,pousser,précéder,précipiter,préférer,préparer,présenter,presser,prêter,prier,profiter,promener,prononcer,proposer,protéger,prouver,quitter,raconter,ramasser,ramener,rappeler,rapporter,rassurer,réclamer,recommencer,reculer,refuser,regarder,regretter,rejeter,relever,remarquer,remercier,remonter,remplacer,rencontrer,renoncer,rentrer,renverser,répéter,reposer,repousser,représenter,réserver,résister,respecter,respirer,ressembler,rester,retirer,retomber,retourner,retrouver,réveiller,révéler,rêver,risquer,rouler,saluer,sauter,sauver,sembler,séparer,serrer,signer,signifier,songer,sonner,souffler,souhaiter,soulever,supporter,supposer,surveiller,tenter,terminer,tirer,tomber,toucher,tourner,tracer,traîner,traiter,transformer,travailler,traverser,trembler,tromper,troubler,trouver,tuer,user,veiller,verser,voler,voyager".split(','),
verbs2 = "accomplir,agir,choisir,établir,finir,franchir,grandir,nourrir,obéir,réfléchir,remplir,réunir,réussir,saisir,subir,vêtir".split(','),
verbs3 = "apercevoir,aperçois,aperçoit,apercevons,apercevez,aperçoivent,apparaître,apparais,apparait,apparqissons,apparqissez,apparaissent,apprendre,apprend,apprends,apprenons,apprenez,apprennent,atteindre,atteins,atteint,atteignons,atteignez,atteignent,attendre,attend,attends,attendons,attendez,attendent,avoir,ai,as,a,avons,avez,ont,boire,bois,boit,buvons,buvez,boivent,comprendre,comprend,comprends,comprenons,comprenez,comprennent,conclure,conclus,conclut,concluons,concluez,concluent,conduire,conduis,conduit,conduisons,conduisez,conduisent,confondre,confond,confonds,confondons,confondez,confondent,connaître,connais,connait,connaissons,connaissez,connaissent,construire,construis,construits,construisons,construisez,construisent,craindre,crains,craint,craignons,craignez,craignent,croire,crois,croit,croyons,croyez,croient,décrire,décris,décrit,décrivons,décrivez,décrivent,défendre,défends,défend,défendons,défendez,défendent,descendre,descend,descends,descendons,descendez,descendent,détruire,détruit,détruis,détruisons,détruisez,détruisent,devoir,dois,doit,devons,devez,doivent,dire,dis,dit,disons,disez,disent,disparaître,disparais,disparait,disparissons,disparaissez,disparraissent,écrire,écris,écrit,écrivons,écrivons,écrivent,entendre,entends,entend,entendons,entendez,entendent,éteindre,éteins,éteint,éteignons,éteignez,éteignent,étendre,étends,étend,étendons,étendez,étendent,être,suis,es,est,sommes,êtes,sont,falloir,faut,haïr,haïs,haït,haïssons,haïssez,haïssent,interrompre,interromps,interrompt,interrompons,interrompez,interrompent,joindre,joins,joint,joignons,joignez,joignent,lire,lis,lit,lisons,lisez,lisent,naître,nais,nait,naissons,naissez,naissent,paraître,parais,parait,paraissons,paraissez,paraissent,pendre,pend,pends,pendons,pendez,pendent,perdre,perd,perds,perdons,perdez,perdent,plaindre,plains,plaint,plaignons,plaignez,plaignent,plaire,plais,plait,plaisons,plaisez,plaisent,poursuivre,poursuis,poursuit,poursuivons,poursuivez,poursuivent,pouvoir,peux,peut,pouvons,pouvez,peuvent,prendre,prends,prend,prenons,prenez,prennent,prétendre,prétend,prétends,prétendons,prétendez,prétendent,prévoir,prévois,prévoit,prévoyons,prévoyez,prévoient,produire,produis,produit,produisons,produisez,produisent,promettre,promets,promet,promettons,promettez,promettent,recevoir,reçois,reçoit,recevons,recevez,reçoivent,reconnaître,reconnais,reconnait,reconnaissons,reconnaissez,reconnaissent,réduire,réduis,réduit,réduisons,réduisez,réduisent,rejoindre,rejoins,rejoint,rejoignons,rejoignez,rejoignent,rendre,rends,rend,rendons,rendez,rendent,répandre,répand,répands,répendons,répendez,répendent,répondre,répond,réponds,répondons,répondez,répondent,reprendre,reprends,reprend,reprenons,reprenez,reprenent,résoudre,résous,résout,resolvons,resolvez,resolvent,revoir,revois,revoit,revoyons,revoyez,revoient,rire,ris,rit,rions,riez,rient,rompre,romps,rompt,rompons,rompez,rompent,satisfaire,satisfais,satisfait,satisfaisons,satisfaisez,satisfaisent,savoir,sais,sait,savons,savez,savent,sourire,souris,sourit,sourions,souriez,sourient,suffire,suffis,suffit,suffisons,suffisez,suffisent,suivre,suis,suit,suivons,suivez,suivent,surprendre,surprends,surprend,surprenons,surprenez,surprennent,taire,tais,tait,taisons,taisez,taisent,tendre,tends,tend,tendons,tendez,tendent,vaincre,vaincs,vainc,vainquons,vainquez,vainquent,valoir,vaux,vaut,valons,valez,valent,vendre,vends,vend,vendons,vendez,vendent,vivre,vis,vit,vivons,vivez,vivent,voir,vois,voit,voyons,voyez,voient,vouloir,veux,veut,voulons,voulez,veulent,appartenir,appartiens,appartient,appartenons,appartenez,appartiennent,consentir,consens,consent,consentons,consentez,consentent,contenir,contiens,contient,contenons,contenez,contiennent,convenir,conviens,convient,convenons,convenez,conviennent,courir,cours,court,courrons,courrez,courrent,couvrir,couvres,couvre,couvrons,couvrez,couvrent,découvrir,découvres,découvre,découvrons,découvrez,découvrent,devenir,deviens,devient,devenons,devenez,deviennent,dormir,dors,dort,dormons,dormez,dorment,endormir,endors,endort,endormons,endormez,endorment,entretenir,entretiens,entretient,entretenons,entretenez,entretiennent,fuir,fuis,fuit,fuyons,fuyez,fuient,maintenir,maintiens,maintient,maintenons,maintenez,maintiennent,mentir,mens,ment,mentons,mentez,mentent,mourir,meurs,meurt,mourons,mourez,meurent,obtenir,obtient,obtiens,obtenons,obtenez,obtiennent,offrir,offres,offre,offront,offrez,offrent,ouvrir,ouvres,ouvre,ouvrons,ouvrez,ouvrent,parcourir,parcours,parcourt,parcourons,parcourez,parcourent,partir,pars,part,partons,partez,partent,parvenir,parviens,parvient,parvenons,parvenez,parviennent,prévenir,préviens,prévient,prévenons,prévenez,préviennent,recueillir,recueilles,recueille,recueillons,recueillez,recueillent,retenir,retiens,retient,retenons,retenez,retiennet,revenir,reviens,revient,revenons,revenez,reviennent,sentir,sens,sent,sentons,sentez,sentent,servir,sers,serLine truncated
verbs3ttre = "abattre,admettre,battre,mettre,permettre,remettre,soumettre".split(','),
adverbs = "d,l,n,s,m,à,absolument,afin,ah,ailleurs,ainsi,alors,attention,assez,au,aux,aujourd'hui,auprès,auquel,aussi,aussitôt,autant,après,arrière,aucun,aucune,autour,autrefois,autrement,avant,avec,beau,beaux,belle,belles,beaucoup,bientôt,brusquement,ça,car,ce,ceci,cela,celui,cependant,certain,certainement,certes,chacun,chacune,chaque,chez,ci,cinq,cinquante,combien,comme,comment,complètement,courant,d'abord,dans,d'autre,d'autres,davantage,de,debout,dehors,déjà,delà,demain,depuis,derrière,dès,des,désormais,dessus,deux,devant,dimanche,divers,dix,donc,dont,doucement,douze,du,durant,eau,eaux,également,eh,en,encore,enfin,ensuite,entre,environ,est,et,etc,fois,grâce,guère,hier,hors,huit,ici,jamais,je,jusque,jusqu'à,là,la,le,lentement,laquelle,lequel,lesquels,lesquelles,longtemps,lors,lorsque,lui,l'un,l'une,madame,maintenant,mais,malgré,me,même,midi,moi,moins,mois,mon,naturellement,ne,nez,ni,non,nord,notre,nous,oh,on,or,ou,où,oui,par,parce,parfaitement,parfois,parmi,partout,pas,pendant,peu,plus,plusieurs,plutôt,pour,pourquoi,pourtant,près,presque,printemps,profondément,propos,puis,puisque,quand,quant,quarante,quatre,que,quel,quelque,quelqu'un,qui,quinze,quoi,rapidement,rien,sans,se,selon,sept,seulement,si,simplement,six,soit,son,soudain,sous,souvent,suivant,sur,surtout,tandis,tant,tantôt,tard,te,tel,tellement,toi,ton,tôt,toujours,tout,toute,trente,très,trois,troisième,trop,tu,un,une,vers,vieil,vieux,vingt,vite,voici,voilà,votre,vous,vraiment,y,oeil,yeux".split(','), // Invariables
adjectives = "absolu,ancien,anglais,bas,blanc,bleu,blond,bon,calme,capable,chaud,cher,clair,commun,complet,content,court,cruel,curieux,dangereux,différent,difficile,digne,double,doux,droit,drôle,dur,égal,épais,étendu,éternel,étrange,étroit,extraordinaire,facile,faible,fidèle,fier,fin,fort,frais,franc,français,froid,gauche,général,grand,grave,gris,gros,haut,heureux,immense,immobile,important,impossible,inutile,jaune,jeune,joli,juste,large,léger,libre,long,lourd,magnifique,mauvais,meilleur,mien,mince,muet,naturel,nécessaire,nerveux,neuf,nombreux,nouveau,nu,nul,ouvert,pareil,perdu,petit,plein,politique,possible,précieux,précis,premier,présent,prochain,profond,propre,public,puissant,pur,rapide,rare,réel,riche,rond,rose,rouge,saint,sauvage,sec,secret,semblable,sérieux,seul,sien,silencieux,simple,social,sombre,sourd,supérieur,sûr,tendre,terrible,tranquille,triste,vaste,véritable,vert,vif,violent,visible,vivant,vrai".split(','), // Variable (m/f + pluriel)
names = "abri,absence,accent,accord,acte,action,affaire,âgé,âge,agent,aide,aile,air,âme,ami,amour,an,angoisse,animal,année,apparence,appartement,appel,arbre,argent,arme,armée,arrivée,art,article,as,aspect,attitude,auteur,autorité,autre,avance,avenir,aventure,avis,banc,bande,barbe,bataille,beauté,besoin,bête,bien,billet,bois,bonheur,bord,bouche,bout,branche,bras,bruit,bureau,but,cabinet,camarade,campagne,caractère,carte,cas,cause,cent,centre,cercle,cerveau,chaîne,chair,chaise,chaleur,chambre,champ,chance,changement,chant,charge,chasse,chat,chef,chemin,chemise,cheval,cheveu,chien,chiffre,choix,chose,chute,ciel,circonstance,classe,clé,clef,coeur,coin,colère,colline,colon,combat,commencement,compagnie,compagnon,compte,condition,confiance,connaissance,conscience,conseil,contraire,contre,conversation,corde,corps,côte,côté,cou,couche,couleur,coup,cour,courage,cours,course,crainte,cri,crise,croix,cuisine,curiosité,dame,danger,début,défaut,demande,demi,dent,départ,dernier,désert,désespoir,désir,détail,devoir,dieu,direction,discours,discussion,distance,docteur,doigt,dos,douceur,douleur,doute,drame,éclat,école,effet,effort,élément,elle,émotion,empire,endroit,énergie,enfance,enfant,ennemi,énorme,ensemble,entier,entrée,envie,épaule,époque,erreur,escalier,espace,espèce,espoir,esprit,étage,état,été,étoile,étranger,étude,événement,exemple,existence,expérience,expression,face,façon,faim,fait,famille,fatigue,faute,fauteuil,faux,faveur,femme,fenêtre,fer,ferme,fête,feu,feuille,figure,fil,fille,fils,fixe,flamme,fleur,flot,foi,folie,fonction,fond,force,forêt,forme,fortune,fou,foule,frère,front,fruit,fumée,fusil,garçon,garde,genou,genre,gens,geste,glace,gloire,goût,goutte,gouvernement,grain,groupe,guerre,habitant,habitude,haine,hasard,hauteur,herbe,heure,histoire,hiver,homme,honneur,honte,horizon,hôtel,humain,humide,idée,il,île,image,importance,impression,inconnu,inquiétude,instant,instinct,intelligence,intention,intérêt,intérieur,jambe,jardin,jeu,jeunesse,joie,joue,jour,journal,journée,juge,justice,larme,lendemain,lettre,leur,lèvre,liberté,lien,lieu,ligne,lit,livre,loi,loin,loup,lueur,lumière,lune,lutte,machine,main,maison,maître,mal,malade,maladie,malheur,marchand,marché,marche,mari,mariage,masse,matière,matin,médecin,membre,mémoire,mensonge,mer,mesure,métier,mieux,milieu,militaire,mille,million,mine,ministre,minute,mode,moindre,moitié,moment,monde,monsieur,montagne,morceau,mort,mot,mouvement,moyen,mur,musique,naissance,nation,nature,noir,noire,nom,nombre,note,nuage,nuit,objet,occasion,odeur,oeuvre,officier,oiseau,ombre,oncle,ordre,oreille,ouvrage,page,pain,paix,palais,papa,papier,paquet,parent,parole,part,parti,particulier,partie,passage,passé,passion,patron,paupière,pauvre,pays,paysage,paysan,peau,peine,pensée,père,personnage,personne,perte,peuple,peur,phrase,pièce,pied,pierre,pitié,place,plaine,plaisir,plan,planche,plante,pluie,poche,poésie,poète,poids,point,pointe,poitrine,police,pont,port,porte,portier,position,poste,poussière,pouvoir,présence,président,prêt,preuve,prière,prince,principe,prison,prix,problème,professeur,projet,puissance,qualité,quart,quartier,question,queue,race,raison,rang,rapport,rayon,réalité,recherche,réflexion,regard,règle,relation,religion,rencontre,repas,réponse,résistance,respect,reste,résultat,retour,rêve,révolution,rideau,robe,roche,rocher,roi,rôle,roman,route,rue,ruine,sable,sac,saison,salle,salut,sang,santé,savoir,scène,science,second,seconde,secours,secrétaire,seigneur,sein,semaine,sens,sentier,sentiment,service,seuil,siècle,siège,signe,silence,situation,société,soi,soin,soir,soirée,sol,soldat,soleil,solitude,somme,sommeil,sommet,sorte,sou,souffrance,source,souvenir,spectacle,succès,sueur,suite,sujet,système,table,tâche,tache,taille,tapis,témoin,tempête,temps,terme,terrain,terre,terreur,terrible,tête,théâtre,titre,toile,toit,tombe,tour,trace,train,trait,travail,travers,trésor,trou,type,unique,usage,vague,valeur,veille,vent,ventre,vérité,verre,vêtement,victime,vide,vie,vieillard,village,ville,vin,violence,visage,vision,visite,voie,voile,voisin,voiture,voix,vol,volonté,voyage,vue".split(',');
verbs1 = conjuguer1(verbs1);
verbs2 = conjuguer2(verbs2);
verbs3ttre = conjuguerttre(verbs3ttre);
adjectives = varadj(adjectives);
names = varnames(names);
function conjuguer1(v) {
v2 = v;
for (var i = 0, l = v.length; i < l; i++) {
var strLen = v[i].length,
curv = v[i].substr(0, strLen - 1),
curs = curv + "s",
strLen2 = curv.length,
curv2 = curv.substr(0, strLen2 - 1),
curons = curv2.substr(-1) === 'c' ? curv2.substr(0, strLen2 - 2) + "çons" : curv2 + "ons",
curez = curv2 + "ez",
curent = curv2 + "ent";
v2.push(curv, curs, curons, curez, curent);
}
return v2;
}
function conjuguer2(v) {
v2 = v;
for (var i = 0, l = v.length; i < l; i++) {
var strLen = v[i].length,
curv = v[i].substr(0, strLen - 1),
curs = curv + "s",
curt = curv + "t",
curons = curv + "ssons",
curez = curv + "ssez",
curent = curv + "ssent";
v2.push(curt, curs, curons, curez, curent);
}
return v2;
}
function conjuguerttre(v) {
v2 = v;
for (var i = 0, l = v.length; i < l; i++) {
var strLen = v[i].length,
curv = v[i].substr(0, strLen - 3),
curs = curv + "s",
curons = curv + "tons",
curez = curv + "tez",
curent = curv + "tent";
v2.push(curv, curs, curons, curez, curent);
}
return v2;
}
function varadj(a) {
a2 = a;
for (var i = 0, l = a.length; i < l; i++) {
var adj = a[i];
if (adj === "") continue;
// pluriel
if (adj.substr(-1) !== 's' && adj.substr(-1) !== 'x') {
if (adj.substr(-3) === 'eau') {
a2.push(adj + 'x');
} else if (adj.substr(-2) !== 'al') {
a2.push(adj + 's');
} else {
a2.push(adj.substr(0, adj.length - 2) + 'aux');
}
}
// féminin
var fem = "";
if (adj.substr(-2) === 'er' || adj.substr(-2) === 'et') {
fem = adj.substr(0, adj.length - 2) + 'è' + adj.substr(-1) + 'e';
}
if (adj.substr(-2) === 'en') {
fem = adj.substr(0, adj.length - 2) + 'enne';
} else if (adj.substr(-2) === 'as') {
fem = adj + 'se';
} else if (adj.substr(-1) === 'c') { // NO !
fem = adj + 'he';
} else if (adj.substr(-1) === 'n' && adj.substr(-2, 1) !== 'e') {
fem = adj + 'ne';
} else if (adj.substr(-1) === 'l') {
fem = adj + 'e';
} else if (adj.substr(-1) === 'f') {
fem = adj.substr(0, adj.length - 1) + 've';
} else if (adj.substr(-1) === 'g') {
fem = adj + 'ue';
} else if (adj.substr(-1) === 'x') {
fem = adj.substr(0, adj.length - 1) + 'se';
} else if (adj.substr(-3) === 'eau') {
fem = adj.substr(0, adj.length - 3) + 'elle';
}
if (fem === "" && adj.substr(-1) !== 'e') {
fem = adj + 'e';
}
if (fem !== "") {
a2.push(fem);
// féminin pluriel
a2.push(fem + 's');
}
}
return a2;
}
function varnames(n) {
n2 = n;
for (var i = 0, l = n.length; i < l; i++) {
var nam = n[i];
if (nam === "") continue;
// pluriel
if (nam.substr(-1) !== 's' && nam.substr(-1) !== 'x') {
if (nam.substr(-3) === 'eau') {
n2.push(nam + 'x');
} else if (nam.substr(-2) !== 'al') {
n2.push(nam + 's');
} else {
n2.push(nam.substr(0, nam.length - 2) + 'aux');
}
}
}
return n2;
}
var terms = adverbs.concat(adjectives, names, verbs1, verbs2, verbs3ttre, verbs3);
var sug = $('#sug')
.asuggest(terms, {
'stopSuggestionKeys': [$.asuggestKeys.RETURN],
'minChunkSize': 1,
'delimiters': ' '
})
.explanationCheck(terms);
$('#myForm').on('submit', function (e) {
e.preventDefault();
$.post(
$(this).prop('action'),
{'sug': $('#sug').val()},
function (data) {
if (data) {
alert('saved');
window.history.pushState(data.file, "Title", "#" + data.file);
} else {
}
},
'json'
);
});
})(window.jQuery);
// usage: log('inside coolFunc',this,arguments);
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function () {
log.history = log.history || []; // store logs to an array for reference
log.history.push(arguments);
if (this.console) {
console.log(Array.prototype.slice.call(arguments));
}
};
// catch all document.write() calls
(function (doc) {
var write = doc.write;
doc.write = function (q) {
log('document.write(): ', arguments);
if (/docwriteregexwhitelist/.test(q)) write.apply(doc, arguments);
};
})(document);