1

合流点のページ タイトルに一意の ID を追加しようとしています。

jQuery を使用してページ ID と文字列プレフィックスをタイトルに追加するユーザー マクロを追加することができました。

## @param _prefix:title=Prefix|type=string|required=true|desc=Prefix for the page ID

<script type="text/javascript">
jQuery("document").ready(function() {
  if ("${param_prefix}" != "${_prefix}")
    jQuery('#title-text a').prepend('${param_prefix}', '$content.getIdAsString()', ' ');
});
</script>

しかし、実行時に追加するだけでなく、実際にタイトルを編集したいのです。その ID が検索語になり、すべてのメニューなどに表示されるように、全体で一貫している必要があります。

これが可能であることを示唆するものは何も見つかりませんが、確かにそうに違いありません!?

4

2 に答える 2

0

独自の ID を生成するのではなく、実際の Confluence ページ ID またはページの小さなリンクを使用できます。これらはどちらも静的です。

Confluence ページで「k」と入力すると、ハイパーリンクが表示されます。小さなリンクも含まれていることに驚くかもしれません。アトラシアンは、ページを移動して名前を変更しても、小さなリンクが同じままであることを確認しています ( https://jira.atlassian.com/browse/CONF-27049 )。これは、固定 URL で同じページを参照する一貫した方法です。もう 1 つの方法は、PageID に組み込まれている Confluence を使用することです。

Confluence ナレッジ ベース: Confluence ページ ID を取得する方法 https://confluence.atlassian.com/confkb/how-to-get-confluence-page-id-648380445.html

  • 現在のユーザーがページを表示および編集する権限を持っていることを確認する 特定のページに移動する
  • 編集ボタンをクリックするか、「e」キーを押して編集モードに移動します

編集モードに入ると、アドレスバーの URL が変わります ページ ID が URL のパラメーターとして表示されます。例: 編集モードに入ると、URL はhttp://my.domain.com/pages/editpage に変わります。 action?pageId=1540132 上記の例では、1540132がページ ID です。

マクロでページ ID を取得するには: ContentEntityObject contentEntityObject = conversionContext.getEntity(); System.out.println("pageId : " + contentEntityObject.getId());

タイトルを変更するには: content.setTitle("newtitle")。タイトル = タイトル + ページ ID を設定する前に、タイトルにページ ID が含まれているかどうかを確認してください。

于 2016-09-30T21:12:05.813 に答える
0

$content.setTitle("newtitle") が機能するはずです。しかし!これが一度だけ発生することを確認する必要があります。そうしないと、このマクロがレンダリングされるたびに、タイトルの前にテキストが繰り返し追加されます。タイトルが既にプレフィックスで始まっているかどうかを確認するかもしれません。そして、プレフィックスを変更する処理を追加したい場合があります。

詳細については、 http://confluence.atlassian.com/display/CONF35/Guide+to+User+Macro+Templates#GuidetoUserMacroTemplates-OtherObjectsAvailabletoyourMacroを参照してください。

そうは言っても、これはあなたが抱えている問題を解決するためのかなり厄介な方法のようです. これが本当にあなたがやりたいことかどうかを再考することをお勧めします。

于 2012-04-11T21:36:15.750 に答える