Question

Pour être clair, je fais référence à l'utilisation de ADM fourchue de stackoverflow, pas version originale de attacklab.

Je voudrais utiliser la version fourchue, mais il semble que l'ID div de qui sont utilisés par le script pour identifier les éléments de la page à WMDify sont référencent en dur wmd.js:66:

// A collection of the important regions on the page.
// Cached so we don't have to keep traversing the DOM.
wmd.PanelCollection = function(){
    this.buttonBar = doc.getElementById("wmd-button-bar");
    this.preview = doc.getElementById("wmd-preview");
    this.output = doc.getElementById("wmd-output");
    this.input = doc.getElementById("wmd-input");
};

Si je voulais juste utiliser des noms de région, je serais bien sur mon propre mais je veux utiliser un nombre variable des éditeurs ADM sur une seule page. Je besoin d'un moyen de dire chaque cas des ADM sur les régions de page, il devrait affecter, mais je ne vois pas de « crochets » pour cela.

Le non-voyant est probablement un produit de mon quasi-absence de connaissances js. La bonne chose à faire ™ est juste apprendre javascript correctement, mais je suis au milieu d'un projet avec une date limite. Je voudrais vraiment utiliser cette version des ADM mais je besoin de quelques indices sur la façon de s'y prendre pour modifier le script ADM, ou peut-être simplement un exemple de la façon de l'appeler de telle façon que je peux Indique combien qui div id à utiliser.

Clues apprécié!

Était-ce utile?

La solution

J'ai eu des problèmes similaires, donc je re-factoré ADM pour être en mesure de le faire. ma version de wmd

Récemment, je revérifié cela. La version en code Google prend en charge plusieurs versions sur une page.
code Google fourchette et est le dernier sur le marché.

Autres conseils

Sur un « projet avec une date limite », il est autorisé à pirater autour de quelques contraintes. Dans ce cas, je voudrais juste faire plusieurs copies du script de l'éditeur d'ADM (ou générer sur le côté serveur) et remplacez-les par vos identifiants ID nécessaires. De cette façon, vous pouvez immédiatement déployer plusieurs armes de destruction massive sur une seule page.

Il vous suffit d'être vraiment clair sur une chose: vous sont de la dette technique ( « les conséquences éventuelles de l'architecture logicielle et bâclés développement de logiciels hâtive ») sur votre projet là-bas. Vous devez revoir cela pour rembourser cette dette ou vous noyer dans les paiements d'intérêts lorsque vous effectuez l'entretien.

Ligne 2339 de wmd.js peut être un bon endroit pour commencer:

Attacklab.wmd_defaults = {version:1, output:"HTML", lineLength:40, delayLoad:false};

Ajouter une option pour chaque div id vous devez changer.

Vous remplacer ces paramètres en ajoutant un bloc de script avant d'inclure wmd.js, par exemple:

<script type="text/javascript">wmd_options = {"output": "Markdown"};</script>

Ensuite, changer la fonction .. wmd.PanelCollection

wmd.PanelCollection = function(){
        this.buttonBar = doc.getElementById(wmd.wmd_env["wmd-button-bar"]);
        this.preview = doc.getElementById(wmd.wmd_env["wmd-preview"]);
        this.output = doc.getElementById(wmd.wmd_env["wmd-output"]);
        this.input = doc.getElementById(wmd.wmd_env["wmd-input"]);
};

Notez ce qui est totalement non testé, et peut ne pas fonctionner, mais par rapport à l'auto-génération de l'éditeur ADM ou de faire des copies multiples, il est un peu plus élégant ..

Modifier : J'ai essayé de faire les modifications, mais il est pas tout à fait aussi simple que l'ajout de wmd_defaults - divers articles (principalement sur le bouton-bar), utilisez une carte d'identité plutôt que d'une classe, mais il est proche ..

Edit 2 :. Après beaucoup de tripotage, je dirais que la réponse est essentiellement "non"

Une meilleure réponse est non, non sans quelques changements assez importants aux armes de destruction massive (changements qui sont au-delà de mon expérience javascript très limité) ..

J'essayé de déplacer tous les noms de div codés en dur aux paramètres, et ajouté un « elementNamePrefix » réglage pour tous les noms de classe bouton, plutôt que d'utiliser il utilisé "wmd-spacer1" wmd.wmd_env["elementNamePrefix"] + "spacer1" ... mais même avec ce dont vous avez besoin pour dupliquer des éléments dans le fichier CSS, et les changements causés comportement bizarre que je ne pouvais pas résoudre (je pense à cause de la variable globale AttackLab définie sur la première ligne? Je ne sais pas) ..

Peut-être, comme une alternative à avoir plusieurs contrôles ADM, vous pourriez avoir un menu déroulant qui charge différents postes via AJAX? Il serait certainement plus facile que de modifier les ADM pour permettre plusieurs instances ..

Ce projet peut être un bon début.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top