Изменить HTML-код страницы временной шкалы Fossil-SCM

Мне нужно изменить HTML-код страницы временной шкалы, сгенерированный Fossil-SCM, внутри элемента td класса timelineTableCell. Текущее содержимое этого элемента td выглядит следующим образом

<td class="timelineTableCell" style="FOO">
    <a class="timelineHistLink" href="FOO">[DF45GH67MD]</a>
    <span class="timelineLeaf">Leaf:</span>
    <span class="timelineComment">Any comment goes here</span>
    (user: <a href="FOO">User Name</a>,tags: <a href="FOO">Lyca+ HLR</a>)
</td>

Мне нужен каждый элемент в отдельном td следующим образом

<td><a class="timelineHistLink" href="FOO">[DF45GH67MD]</a></td>
<td><span class="timelineLeaf">Leaf(empty if not leaf)</span></td>
<td><span class="timelineComment">Any comment goes here</span></td>
<td>User: <a href="FOO">Usr_Name</a></td>
<td>Tags: <a href="FOO">Tag_Name</a></td>

Таким образом, эта страница будет выглядеть более выровненной и более читабельной. Как я могу это сделать?


person Dinesh    schedule 27.03.2014    source источник


Ответы (1)


Я могу думать о двух способах:

  1. создав собственную версию Fossil. Клонируйте репозиторий и создайте (закрытую) ветку, в которой можно изменить исходный код и скомпилируйте собственную версию Fossil. Это означает, что каждый раз, когда вы хотите обновить ископаемое, вам нужно будет объединить ствол в свою ветку и снова скомпилировать его.
  2. с помощью CSS и Javascript. На странице Admin вы можете вставлять элементы в разделы верхнего и нижнего колонтитула, которые создаются для каждой страницы.

    • look for the CSS page. In there, you can specify display: table-cell; for .timelineHistLink, .timelineLeaf, .timelineComment. This should turn those three elements into separate table cells. Note that I haven't tested this, and it might not work since they're already inside a table cell. In any case, this will not turn the user and tags into separate cells. That's something you would have to do using Javascript.
    • на странице Footer вы можете вставить фрагмент Javascript, чтобы изменить страницу так, как вам нравится. Вот пример скрипта, который я когда-то написал, чтобы избавиться от UUID каждой регистрации и превратить текст коммита в ссылку:

(TH1 — это серверный язык Fossil; я использую его здесь, чтобы указать, что этот скрипт должен создаваться только на странице временной шкалы, а не на каждой странице).

<th1>
    if {$current_page eq "timeline"} {
        enable_output 1
    } else {
        enable_output 0
    }
</th1>
<script>
(function() {
        var cells = document.getElementsByClassName('timelineTableCell');
        for (var i = 0; i < cells.length; i++) {
                cells[i].innerHTML = cells[i].innerHTML.replace(/^[^<]*<a href="([^"]*)">[^<]*<\/a>\]\s*(.*)\s+(\(user:[^\0]*\))\s*$/, '<a href="$1">$2</a><br> <span style="font-size: smaller; font-style: italic; opacity: 0.75">$3</span>');
        }
})();
</script>
<th1>
    enable_output 1
</th1>
person Martijn    schedule 28.03.2014
comment
Второй способ добавления JavaScript в нижний колонтитул сработал, спасибо. - person Dinesh; 01.04.2014