CodeBlockComponent.vala 1009 B

123456789101112131415161718192021222324252627282930313233
  1. using Spry;
  2. /**
  3. * CodeBlockComponent - A styled code block with syntax highlighting
  4. *
  5. * Displays code with a header showing language and window dots
  6. */
  7. public class CodeBlockComponent : Component {
  8. public string language { set; get; default = "Vala"; }
  9. public string code { set; get; default = ""; }
  10. public override string markup { get {
  11. return """
  12. <div class="code-block">
  13. <div class="code-header">
  14. <div class="code-dots">
  15. <div class="code-dot red"></div>
  16. <div class="code-dot yellow"></div>
  17. <div class="code-dot green"></div>
  18. </div>
  19. <span class="code-lang" sid="language"></span>
  20. </div>
  21. <pre><code sid="code"></code></pre>
  22. </div>
  23. """;
  24. }}
  25. public override async void prepare() throws Error {
  26. this["language"].text_content = language;
  27. this["code"].text_content = code;
  28. }
  29. }