ぷっぽプログラミング備忘録

linux, javascript, php, C#, そのうちScalaとかアプリ開発とかやってみたいです。

VSCode で mdファイルをpdfファイルに変換する

概要

そこそこ綺麗なドキュメントを、WordとかGooglewebサービス以外でさっと作成したい。 → mdファイルならただのテキストなので、さくっと作成してpdfに変換したらよさそう

手順

以上

参考

【VSCode】MarkdownをPDFに変換する方法 #VSCode - Qiita

WindowsでSelenium入れてブラウザ自動実行

手順

  • pythonを公式からインストール

Python Releases for Windows | Python.org

※pipも一緒に入るはず(デフォルトのままインストールすれば)

  • seleniumをpipでインストール pip install selenium

  • chromeのドライバーをpipでインストール pip install chromedriver-binary

chromedirver更新したい場合は、 pip install --upgrade --force-reinstall chromedriver-binary-auto を実行すればいいだけのようなので楽そう。。。

参考) chromedriver-binary · PyPI SeleniumでChromeとChromedriverのバージョンを確認・揃える方法 | prtn-blog

  • pytyonのコードを書く
from selenium import webdriver
import chromedriver_binary  # Adds chromedriver binary to path

driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title

docker-composeの.envの変数をDockerFileで使いたい

結論

.env ファイルに

HOGE=aiueo

と記載した場合 docker-compose.ymlで

version: "3"
services:
  foo:
    build:
      context: .
      dockerfile: "Dockerfile"
      # Dockerfile に渡す変数
      args:
        # .env の HOGE を FOOBAR として渡す
        - FOOBAR=${HOGE}

最後に、DockerFile内でARGを実行すると、使用可能になる

ARG FOOBAR

RUN echo "${FOOBAR}"

参考

docker-compose.yml で定義した変数を Dockerfile に渡したい - かもメモ

vueを一部だけ使いたい

  • @vitejs/plugin-vue、@vitejs/plugin-vue-jsxをインストールする npm i xxxxxx

  • vite.config.ts に以下を加える

import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'

(中略)

    plugins: [
        vue(),
        vueJsx({
            // options are passed on to @vue/babel-plugin-jsx
        }),     
    ],

    resolve: {
        alias: {
            vue: 'vue/dist/vue.esm-bundler.js',
        },
    },
  • tsconfig.json に以下を加える
  // このあたりのパスは各環境によります
  "include": [
    "shims-vue.d.ts",
    "src/**/*", 
    "src/**/*.vue"
  ],
  "paths": { "@/*":["./src/*"] },  
  "vueCompilerOptions": {
    "target": 3.3
  }  
  • shims-vue.d.ts を作成(たぶんts名は何でもいいです。↑のincludeにその名前を指定したらいいだけかと) 中身は以下です
declare module '*.vue' {
    import type { DefineComponent } from 'vue'
    const component: DefineComponent<{}, {}, any>
    export default component
}
  <div id="app-vue">
  </div>
<script setup>
import { ref, onMounted } from 'vue'

// リアクティブな状態
const count = ref(0)

// 状態を変更し、更新をトリガーする関数。
function increment() {
  count.value++
}

// ライフサイクルフック
onMounted(() => {
  console.log(`The initial count is ${count.value}.`)
})
</script>

<template>
  <button @click="increment">Count33 is: {{ count }}</button>
</template >
import { createApp } from 'vue'
import App from './jsx/App.vue'

createApp(App).mount('#app-vue')

参考

Fix `Configure your bundler to alias 'vue'` in Vite.js

vue.js - TypeScript 'cannot find module...' in Vue project - Stack Overflow

VSCodeでjsonを一行に整形するショートカット

概要

Preferences > Open Keyboard Shortcuts で join lines で検索。 デフォルトはCtrl + J といった情報もありますが私は違いましたので、ショートカット割り当てました。 (私の場合、今までCtrl+Jに割り当たっていたショートカットは使っていなかったため、Ctrl + Jにしました。)

意外と調べてもなかったので記載。

すみません。これ一択でした…。 JSON Tools - Visual Studio Marketplace

参考

visual studio code - Shortcut for joining two lines - Stack Overflow

postgresqlでFROM側に配列を使い、規則性のあるデータを生成する

概要

UNNESTとARRAYを組み合わせたものをテーブルとして扱う

例)01,02...という内容の配列を、testTblとして扱う

SELECT
    'test_data_' || testTbl::text as test_val
FROM
   UNNEST(ARRAY['01', '02', '03', '04']) AS testTbl
;

結果

   test_val   
--------------
 test_data_01
 test_data_02
 test_data_03
 test_data_04
(4 rows)

参考

Studio ODIN - blog風小ネタ集 > PostgreSQL で 配列をテーブルのように扱う