Medium などに貼り付けられたコードをハイライトするブックマークレット

Medium とかいい記事がたくさんなのですが。

コードが見づらいときありません?

medium-code-unhighlighted

ブックマークレットで「ハイライト」します。

Medium code snippets highlight




(() => {
  const version = '11.5.0';
  const theme = 'github-dark-dimmed';
  const prefix = `//cdnjs.cloudflare.com/ajax/libs/highlight.js/${version}`;

  const link = document.createElement('link');
  link.setAttribute('rel', 'stylesheet');
  link.setAttribute('type', 'text/css');
  link.setAttribute('href', `${prefix}/styles/${theme}.min.css`);
  document.getElementsByTagName('head')[0].appendChild(link);

  const script = document.createElement('script');
  script.setAttribute('type', 'text/javascript');
  script.setAttribute('src', `${prefix}/highlight.min.js`);
  document.getElementsByTagName('head')[0].appendChild(script);

  script.addEventListener('load', function() {
    document.querySelectorAll('pre').forEach((pre) => {
      pre.style.fontFamily = 'Courier, Menlo, Consolas, Monaco, monospace';
      pre.style.overflowX = 'scroll';
      pre.style.whiteSpace = 'pre';

      // replace medium style <br/> to LF
      pre.innerHTML = pre.innerHTML.replaceAll(/<\s*\/?br\s*[\/]?>/gi, "\n")

      if (!pre.querySelector('code')) {
        window.hljs.highlightBlock(pre);
      } else {
        window.hljs.highlightBlock(pre.querySelectorAll('code')[0]);
      }
    });
  });
})();

以下リンクをブックマークバーへドラッグしてどうぞ。

highlight-code-snippets

👉 Google「Closure Compiler」 (クロージャコンパイラ) の使い方 hatena-bookmark


Chrome 最新安定版でできればいいのだが、Javascript クリップボードへのコピー

王道の本筋からやっていきたい。


(() => {
  
  const text = `${document.title}\n👉 ${location.href}`;

  // copy to clipboard
  focus(); // avoid DOMException: Document is not focused.
  navigator.clipboard.writeText(text).then(
    () => alert(text),
    error => alert(error.message)
  );
  
})();

navigator.clipboard.writeText

これでいいんかな。


【Android Studio】プラグイン「Proguard Retrace Unscrambler」で難読化されたスタックトレースを解除してみた

あってもいいよな、ありそうだ、と思っていたこのプラグイン。

Proguard Retrace Unscrambler

Adds Unscrambler support for Proguard's mapping files and Android's R8 mapping files. Use to de-obfuscate your stacktrace

Proguard Retrace Unscrambler

Proguard Retrace Unscrambler

👉 Proguard Retrace Unscrambler - IntelliJ IDEA & Android Studio Plugin | Marketplace 
👉 chrimaeon/proguard-retrace-unscrambler: An Intellij IDEA and Android Studio Plugin to de-obfuscate your Proguard stack traces 

使い方。

1. 難読化されたスタックトレースをコピーする。
2. メニューから [Analyze] - [Stack Trace or Thread Dump ...]
3. 「Unscramble stacktrace」をチェックして有効化する。
4. 「Proguard Retrace」を選択する。
5. Proguard/R8 の mapping.txt を「Log file」に選択する。
6. 難読化されているスタックトレースを貼り付ける。
7. 「OK」を押すと難読化が解除されて下部 Run ウインドウに表示される。

Proguard Retrace Unscrambler

なんとなく読めるようになりましたが、「null」と失敗しているところも見当たります。

Proguard Retrace Unscrambler

惜しいです。

公式に案内されている方法では完全に読めます。



java -jar ~/Library/Android/sdk/tools/proguard/lib/proguardgui.jar

java -jar ~/Library/Android/sdk/tools/proguard/lib/proguardgui.jar

しかし、このプラグインてサードパーティでなく、公式の同梱で作れないものなのかな ?

👉 R8 で 難読化 された スタックトレース を元に戻す