Frage

klar sein, ich beziehe mich auf die Verwendung von Stackoverflow des gegabelten WMD , nicht Originalversion von attacklab .

Ich mag die gegabelte Version verwenden, aber es scheint, dass die div-IDs, die vom Skript verwendet werden, um die Seitenelemente WMDify zu identifizieren, in wmd.js:66 fest einprogrammiert:

// 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");
};

Wenn ich wollte nur andere Region Namen verwenden ich auf meiner Ordnung sein würde Eigen aber ich will verwenden, eine variable Anzahl von WMD Redakteuren auf einer einzigen Seite. Ich würde einen Weg brauche jede Instanz von WMD über die Seitenbereiche zu sagen, es beeinflussen soll, aber ich sehe keinen ‚Haken‘ für die.

Die nicht-seeing ist wahrscheinlich ein Produkt meiner fast vollständigen Mangel an js Wissen. The Right Thing ™ zu tun ist, nur Javascript richtig zu lernen, aber ich bin in der Mitte eines Projekts mit einer Frist. Ich möchte wirklich diese Version von WMD verwenden, aber ich brauche einige Hinweise, wie man zu dem Bearbeiten der WMD-Skript gehen, oder vielleicht einfach ein Beispiel, wie es in einer solchen Art und Weise zu nennen, die ich speficy kann, welche IDs verwenden div.

Clues geschätzt!

War es hilfreich?

Lösung

Ich hatte ähnliche Probleme, damit ich wieder einkalkuliert WMD der Lage sein, genau das zu tun. meine Version von wmd

Vor kurzem habe ich nochmals überprüft diese. Die Version in Google Code unterstützt mehrere Versionen auf einer Seite.
und Google Code Gabel ist die neueste gibt.

Andere Tipps

Auf einem „Projekt mit einer Frist“ es darf um einige Einschränkungen hacken. In diesem Fall würde ich nur mehrere Kopien des WMD-Editor Skript machen (oder auf der Server-Seite generieren) und die IDs durch Ihre benötigten Bezeichner ersetzen. Auf diese Weise können Sie sofort mehrere WMDs auf einer einzigen Seite bereitstellen.

Sie müssen nur wirklich über eine klar sein: Sie sind technische Schulden ( „die etwaigen Folgen der slapdash Software-Architektur und voreilig Software-Entwicklung“) auf dem Projekt gibt. Sie haben diese nochmals zu besuchen, diese Schulden zurück zu zahlen, oder Sie werden in Zinszahlungen ertrinken, wenn eine Wartung zu tun.

Line 2339 von wmd.js kann ein guter Anfang sein:

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

Fügen Sie eine Option für jedes div id Sie ändern müssen.

Sie können diese Einstellungen außer Kraft setzen, indem ein Skriptblock, bevor einschließlich wmd.js Zugabe, zum Beispiel:

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

Dann die wmd.PanelCollection Funktion ändern ..

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"]);
};

Hinweis: Dies ist völlig ungetestet ist, und kann nicht funktionieren, aber im Vergleich zu Auto-Generierung des WMD-Editor oder macht mehrere Kopien es ist leicht elegante ..

Bearbeiten : Ich habe versucht, die Änderungen zu machen, aber es ist nicht ganz so einfach wie das Hinzufügen zu wmd_defaults - verschiedene Elemente (vor allem der Buttonleiste) verwenden, um eine ID, anstatt eine Klasse, aber es ist nah ..

Edit 2 . Nach viel Fummelei, ich würde sagen, die Antwort im Grunde "nein"

Eine bessere Antwort ist nein, nicht ohne einige ziemlich große Änderungen an WMD (Änderungen, die über meine sehr begrenzt javascript Erfahrung sind) ..

Ich habe versucht, alle hartcodierte div Namen, um die Einstellungen zu bewegen, und fügte hinzu, eine „elementNamePrefix“ Einstellung für alle Schaltfläche Klassennamen, anstatt Verwendung "wmd-spacer1" es verwendet wmd.wmd_env["elementNamePrefix"] + "spacer1" ... aber auch bei diesem benötigen Sie Elemente zu duplizieren in die CSS-Datei und die Änderungen verursachten seltsames Verhalten, das ich nicht beheben konnte (ich glaube, wegen der globalen AttackLab Variable in der ersten Zeile definiert? nicht sicher) ..

Vielleicht, als Alternative mehr WMD Kontrollen zu haben, könnten Sie ein Drop-down haben, die verschiedenen Beiträge über AJAX lädt? Es wäre sicherlich einfacher als WMD modifiziert mehreren Instanzen zu ermöglichen ..

Dieses Projekt kann ein guter Anfang sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top