特に、出力にセクションヘッダーを作成できる Scribunto モジュールを作成しようとしています。
返された文字列にたとえば が含まれている場合、== Hello World ==
結果のページにはセクションが正しく表示され、目次にもセクションが含まれます。ただし、セクションには editsection リンクがありません。
これはある程度理解できます。このセクションは実際にはページのソースには存在しません。しかし、セクションのコンテンツがどこから来ているのかへの編集リンクを配置できるようにしたいと思います. buildHeader
関数の 2 つの異なるバージョンを試しました。
-- version 1:
function p.buildHeader(level, title, page)
local open = '<span class="mw-editsection-bracket">[</span>'
local close = '<span class="mw-editsection-bracket">]</span>'
local link = '<a href="/w/index.php?title='..p.urlsafe(page)..'&action=edit" title="Edit section: '..title..'">edit</a>'
local edit = '<span class="mw-editsection">'..open..link..close..'</span>'
local text = '<span id="'..p.urlsafe(title)..'" class="mw-headline">'..title..'</span>'
return '<h'..level..'>'..title..edit..'</h'..level..'>'
end
-- version 2:
function p.buildHeader(level, title, page)
local result = mw.html.create('h'..level)
result:tag('span')
:attr({id=p.urlsafe(title), class='mw-headline'})
:wikitext(title)
:done()
:tag('span')
:attr('class', 'mw-editsection'):tag('span')
:attr('class', 'mw-editsection-bracket')
:wikitext('[')
:done()
:tag('a')
:attr({href='/w/index.php?title='..p.urlsafe(page)..'&action=edit', title='Edit section: '..title})
:wikitext('edit')
:done()
:tag('span')
:attr('class', 'mw-editsection-bracket')
:wikitext(']')
:allDone()
return tostring(result)
end
どちらの場合も、アンカー タグの HTML はエスケープされ (例: <span class="mw-editsection">...<a href="..." title="...">edit</a></span>
)、mw-editsection スパン全体が TOC テキストに含まれていました。
そこに任意の編集リンクを取得する方法はありますか?それとも、編集セクションのない Scribunto セクションを使用する必要がありますか?