2016-09-20 3 views
1

Ich habe Github Seiten mit jekyll für die automatische Generierung meines Blogs mit markdown Dokumente verwendet.Jekyll Verlinkung Verweis-Links auf Github Seiten

Ich möchte Referenz-Links verwenden und dann eine Liste der Links am Ende der Seite anzeigen.

Grundsätzlich möchte ich die Verweis-Stil-Links auf der Seite gedruckt werden, standardmäßig sind sie ausgeblendet.

Die Idee besteht darin, eine Liste von Referenzen zu haben, auf die sich ein Leser für weitere Informationen beziehen kann.

zum Beispiel des folgende Text ein:

# some header 
...some body text in the blog with a link to [wikipedia][1] 
... 
... 
# reference links 
[1]: https://www.wikipedia.org 

sollte erzeugt die folgende Ausgabe:


einigen Kopf

... einigen Text im Blog mit einem Verbindung zu wikipedia ... ...

Referenz Links

[1]: https://www.wikipedia.org


Da der Referenz-Stil Link in den markdown verwendet gesehen wird, aber es wird auch auf der Seite angezeigt.

Die vorherige "korrekte" Ausgabe wurde durch Duplizieren jeder Zeile und das Entkommen der Sonderzeichen erreicht, aber das scheint ein wenig überflüssig.

Kann dies durch Änderungen an _config.yml oder ruby erreicht werden? Andere Optionen sind ebenfalls willkommen (css Magie?).

tldr; Ich möchte eine Möglichkeit, die Links im Referenzstil unten auf meiner markdown Seite "einzublenden".

+0

Jekyll und unHyde :) Ich denke, Sie müssen CSS verwenden, um sie zu überschreiben und anzuzeigen 'display: block' – jrbedard

+0

ich bin nicht sicher, dass ich folge. Wenn man sich den HTML-Code anschaut, scheint es nichts zu geben, gibt es eine Möglichkeit, sie am Ende der Datei zu generieren? –

Antwort

3

Zuerst müssen Sie genau verstehen, was was tut:

  • Ihre Abschlags Parser Ihre Abschlags in HTML konvertiert.
  • Jekyll nimmt das HTML und organisiert es in Seiten.
  • GitHub-Seiten bietet diese HTML-Seiten.
  • Der Client liest die HTML und führt jede JavaScript etc.

Das Problem ist, dass der Abschlags-Parser nicht die Referenz Links am Ende der Seite enthält. Es ist nicht so, als wären sie dort, aber versteckt. Sie sind einfach nicht da. Sie werden also keine CSS-Lösung finden, weil es nichts zu stylen gibt. Sie möglicherweise in der Lage, dies mit einem benutzerdefinierten Markdown-Parser, der die Referenz-Links in der generierten HTML enthält, aber das wird nicht funktionieren mit GitHub-Seiten und wird wahrscheinlich ziemlich hackish sein.

Eine weitere Option ist das Ausführen von JavaScript, das document.links verwendet, um jeden Link auf der Seite zu erhalten, dann geben Sie sie in einem <ul> oder etwas am Ende der Seite aus. So etwas wie this:

var links = document.links; 
for(var i = 0; i < links.length; i++) { 
    var linkHref = document.createTextNode(links[i].href); 
    var lineBreak = document.createElement("br"); 
    document.body.appendChild(linkHref); 
    document.body.appendChild(lineBreak); 
} 

Sie könnten, dass einschränken nur enthalten Links in einem bestimmten div (wie this), auf diese Weise müssen Sie Ihre Navigations-Links und so weiter nicht parsen. Sie müssen auch die Reihenfolge berücksichtigen.

Eine andere Option könnte darin bestehen, sie als XML-Liste in den Beitragstext jedes Beitrags aufzunehmen und sie dann im Layout anzuzeigen, das den Beitrag anzeigt.

Natürlich können Sie die Referenz auch einfach mit Markdown erstellen.

+1

'Es ist nicht so, als wären sie dort, aber versteckt. Sie sind einfach nicht da. 'Ich habe das im HTML bemerkt und fing an, mehr herumzustöbern. Ich werde höchstwahrscheinlich einen benutzerdefinierten Parser erstellen müssen. Danke für die Hilfe. –

+1

@NathanMcCoy Kein Problem. Beachten Sie, dass eine benutzerdefinierte Abzeichnungs-Engine nicht mit GitHub Pages funktioniert. Es klingt auch wie ein Schmerz im Nacken zu entwickeln, aber vielleicht sind Sie wohler beim Schreiben von Abschriften-Motoren als ich es bin. Wenn ich Sie wäre, würde ich zuerst die JavaScript-Option ausprobieren, dann die Frontmatter-Option, wenn das nicht funktioniert, und wenn keine von beiden funktioniert, würde ich wahrscheinlich nur die Referenzen selbst schreiben. Aber auf jeden Fall wünsche ich dir Glück! –

Verwandte Themen