Files
news.gitea.happylizard.me/bin/gems/rouge-4.7.0/lib/rouge/lexers/apiblueprint.rb
T
pizza2d1 4cee170d66
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s
Add bin and edit workflow
2026-09-16 13:11:16 -06:00

50 lines
1.2 KiB
Ruby

# frozen_string_literal: true
module Rouge
module Lexers
load_lexer 'markdown.rb'
class APIBlueprint < Markdown
title 'API Blueprint'
desc 'Markdown based API description language.'
tag 'apiblueprint'
aliases 'apiblueprint', 'apib'
filenames '*.apib'
mimetypes 'text/vnd.apiblueprint'
prepend :root do
# Metadata
rule(/(\S+)(:\s*)(.*)$/) do
groups Name::Variable, Punctuation, Literal::String
end
# Resource Group
rule(/^(#+)(\s*Group\s+)(.*)$/) do
groups Punctuation, Keyword, Generic::Heading
end
# Resource \ Action
rule(/^(#+)(.*)(\[.*\])$/) do
groups Punctuation, Generic::Heading, Literal::String
end
# Relation
rule(/^([\+\-\*])(\s*Relation:)(\s*.*)$/) do
groups Punctuation, Keyword, Literal::String
end
# MSON
rule(/^(\s+[\+\-\*]\s*)(Attributes|Parameters)(.*)$/) do
groups Punctuation, Keyword, Literal::String
end
# Request/Response
rule(/^([\+\-\*]\s*)(Request|Response)(\s+\d\d\d)?(.*)$/) do
groups Punctuation, Keyword, Literal::Number, Literal::String
end
end
end
end
end