Wait for kroki to start
This commit is contained in:
parent
54895751dc
commit
c8de805803
@ -11,6 +11,8 @@ runs:
|
|||||||
- name: Start containers
|
- name: Start containers
|
||||||
run: docker-compose -f "${{ github.action_path }}/docker-compose.yml" up -d --build
|
run: docker-compose -f "${{ github.action_path }}/docker-compose.yml" up -d --build
|
||||||
shell: bash
|
shell: bash
|
||||||
|
- run: ${{ github.action_path }}/wait_for_kroki.sh
|
||||||
|
shell: bash
|
||||||
- name: Creating SVG files
|
- name: Creating SVG files
|
||||||
run: find "${{ github.workspace }}" -type f -name '*.excalidraw' -exec bash "${{ github.action_path }}/to_svg.sh" "{}" ${{ inputs.dark-mode == 'true' }} ";"
|
run: find "${{ github.workspace }}" -type f -name '*.excalidraw' -exec bash "${{ github.action_path }}/to_svg.sh" "{}" ${{ inputs.dark-mode == 'true' }} ";"
|
||||||
shell: bash
|
shell: bash
|
||||||
|
105
main.py
105
main.py
@ -1,105 +0,0 @@
|
|||||||
from pathlib import Path
|
|
||||||
from sys import argv, stderr
|
|
||||||
import re
|
|
||||||
|
|
||||||
excalidraw_re = re.compile(r"\[\[(.*\.excalidraw)\]\]")
|
|
||||||
|
|
||||||
|
|
||||||
def eprint(*args, **kwargs):
|
|
||||||
print(*args, file=stderr, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
def iter_svgs(vault_path, draws):
|
|
||||||
for draw in draws:
|
|
||||||
svg = Path("assets/excalidraw_svg").joinpath(Path(draw).with_suffix(".svg").name)
|
|
||||||
if vault_path.joinpath(svg).is_file():
|
|
||||||
print("::debug::[found]", svg)
|
|
||||||
yield draw, svg
|
|
||||||
else:
|
|
||||||
eprint("::error::[missing]", svg)
|
|
||||||
yield draw, None
|
|
||||||
|
|
||||||
|
|
||||||
def iter_refs(vault_path):
|
|
||||||
pages = [path for path in vault_path.joinpath("pages").glob("*") if path.is_file()]
|
|
||||||
for page in pages:
|
|
||||||
with open(page) as f:
|
|
||||||
content = f.read()
|
|
||||||
for ref_match in excalidraw_re.finditer(content):
|
|
||||||
yield page, ref_match
|
|
||||||
|
|
||||||
|
|
||||||
def get_draws(vault_path):
|
|
||||||
draws = set()
|
|
||||||
pages = set()
|
|
||||||
for page, ref_match in iter_refs(vault_path):
|
|
||||||
draws.add(ref_match[1])
|
|
||||||
pages.add(page)
|
|
||||||
return pages, draws
|
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
|
||||||
"""
|
|
||||||
Replaces excalidraw file references with svg references
|
|
||||||
If <drawing_name>.svg exists in assets/excalidraw_svg it will be used,
|
|
||||||
otherwise it will be replaced with
|
|
||||||
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
vault_path = Path(argv[1]).expanduser()
|
|
||||||
home_md_file = None
|
|
||||||
if len(argv) > 2:
|
|
||||||
home_md_file = Path(argv[2]).expanduser()
|
|
||||||
if not home_md_file:
|
|
||||||
home_md_file = None
|
|
||||||
pages, draws = get_draws(vault_path)
|
|
||||||
|
|
||||||
missing_svgs = []
|
|
||||||
|
|
||||||
replace_dict = {}
|
|
||||||
for draw, svg in iter_svgs(vault_path, draws):
|
|
||||||
if svg is None:
|
|
||||||
replace_dict[f"[[{draw}]]"] = "<h1 style='color: #ff0000'>MISSING IMAGE</h1>"
|
|
||||||
missing_svgs.append(draw)
|
|
||||||
else:
|
|
||||||
replace_dict[f"[[{draw}]]"] = f"![{draw}](../{svg})"
|
|
||||||
|
|
||||||
for page in pages:
|
|
||||||
with open(page) as f:
|
|
||||||
content = f.read()
|
|
||||||
|
|
||||||
for prev, new in replace_dict.items():
|
|
||||||
content = content.replace(prev, new)
|
|
||||||
|
|
||||||
with open(page, "w") as f:
|
|
||||||
f.write(content)
|
|
||||||
|
|
||||||
if missing_svgs:
|
|
||||||
if home_md_file is not None:
|
|
||||||
eprint(f"::notice::Writing error message to {home_md_file}")
|
|
||||||
file_error = "\n" + f"""
|
|
||||||
- <h1 style="color: red;">Some drawings were not loaded</h1>
|
|
||||||
\t- ## How to fix as a Contributor
|
|
||||||
\t\t- drawings are located in <vault path>/draws
|
|
||||||
\t\t- each ".excalidraw" drawing file should have an equivalent ".svg" file in <vault path>/assets/excalidraw_svg with the same basename
|
|
||||||
\t\t- ### Example
|
|
||||||
\t\t ```
|
|
||||||
\t\t <vault path>/draws/2023-10-08-21-23-31.excalidraw
|
|
||||||
\t\t <vault path>/assets/excalidraw_svg/2023-10-08-21-23-31.svg
|
|
||||||
\t\t ```
|
|
||||||
\t\t- to create a missing svg file, head to https://excalidraw.com/, paste the .excalidraw file, Click the Hamburger Menu > Export Image
|
|
||||||
\t\t\t- Enable "Background" and check if you need Dark or Light theme
|
|
||||||
\t\t\t- Click "SVG" and copy to <vault path>/assets/excalidraw_svgs
|
|
||||||
\t\t\t- Rename the file so the base names match
|
|
||||||
\t- ## The svgs for following drawing are missing"""
|
|
||||||
for draw in missing_svgs:
|
|
||||||
file_error += f"\n\t\t- `{draw}`"
|
|
||||||
with open(home_md_file, "a") as f:
|
|
||||||
f.write(file_error)
|
|
||||||
else:
|
|
||||||
eprint("::warning::home-md-file not set for logseq-publish-excalidraw-to-svg, won't write error message to "
|
|
||||||
"website")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
@ -8,3 +8,4 @@ echo ::debug::'$ENCODED' "$ENCODED"
|
|||||||
docker ps
|
docker ps
|
||||||
curl "localhost:8080/excalidraw/svg/$ENCODED" > "$1.svg"
|
curl "localhost:8080/excalidraw/svg/$ENCODED" > "$1.svg"
|
||||||
echo ::debug::"svg: $(cat $1.svg)"
|
echo ::debug::"svg: $(cat $1.svg)"
|
||||||
|
|
||||||
|
3
wait_for_kroki.sh
Normal file
3
wait_for_kroki.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
ENCODED="eNrVm1tT4koXhu_nV1h8twO7z4e58zioM3hARd01ZQUSIBoSTAKIU_Pfv05kk4OJBiVjjFVi0t3pTudhvWutbn9_2dio-fOxUfu2UTMeeppl6q42q30Nrk8N1zMdWxWh8NxzJm4vrDn0_bH37Z9_ohaNnjN6amVYxsiwfU_V-1edb2z8Dn_H-nGNnq_ZA8sIG4RFUVeQ0_TVlmOH3SIuMSEAiGUF09tR3fmGrkr7muUZUUlwqYaur4aIGDoSewdgvltv46vWVdRr37Sstj-3np5J6w0nbmxMnu86d0bH1P1hMK7U9WU7z1EzELVynclgaBuel2jjjLWe6c-DawAsrz5NwreN6MqDOqMiOg9bEJDqe9uxHDfo-38gPKLeu1rvbqCGYOtRHUg1rduP6swWTxTrZmiYg6Ef9CUbMnGwqGsjnGaKoISMUrQsCPob7-vhC_-VnqWh5o4Xs1HzgpPYWINh7j7Rsmi-KFKFWwaco_nj8AJf68SebbvOzY2oLcp_hZ9_vr4Fr9hTp_CCjHBBMGeF8eoegaMLn434D2d2Nb5HyDje3qw6XoytFy_SY0afPscLojfxBTHACDAJSLmAHWrbR7J-cntu2O359mSi2c6ZsxbAcL79ggLy2IO9xtftI2hO7mXdY-PWw84MnN43e6dV54uv2Xz1tS4AWXy9zX4JBiVDcThLwYsTsz-6H03AtAVah-AG7M2OR-vAS6JcvCDCShzpCoCd26PW2Wh24I_YyJl0e9_99mCr6oBJtm7AKKJoXfqIOBeQ0LL5glMGWrs7qOea37_XZ46sOyc_1sAXArl8QYGwejSAivPl9Dk7IJ2jg6bdNMEPBi88_6bqfEFA1gtY1yBdvbs2CwaJZFwyEfODS0Hs9nZy_Dg_tY2fU9xn1Bp7N0xbiwnLVUhlwQgDiJPiiLWtaffWuKhL67Lbc61Ds1sf3lYeMYTWi5hgwpDsOWLsbYRJLASj6qdcwujJyeNwdjO5v7txt7QOmv10zbNihPnGg58Fl4C5bEEhJIAQycJsTV3dxwf97g66nD2SQ3LWaff2q86WSFmvOisHLSgz2CI0w1pJBDkSpVirqHnfsf22-RjMB2aJq3vayLTmifkM6VEdHGhTra0kdOzH58AzLNMOb4QSLTYtcxAwVrOMfhI-3-xp1rLYd8a1F-HVXNeZZdGLSb5pxComYhTI4uFpdgxd9eyH5A0KOMUYK39DSUECZiRlKTCTLDuJZRpmxhiiiXdQmOVwIAVZ9nzN9bdMWzftgSr5HVnMvtObBJXroEGgDCZJOQKCcEzk8psXjEobx19AlJXbf3L7Hwb-9HxL2z-2dzoH1_Lu_KS5TK78WQ7DsPXXBgFTBy4-iOzc3LNBjB0znkwMjuivjQie8GT596-vmbXrMAUXFvH2dSpfuwNCDSIRUSBAzjiiDCVuoJiJ7vAldaeapXn-tjMamb760h4HD6aey55YVvLNbwbmYWhoerpUvZB42cKOrFknlZlRVMkV0mDZOH2yLCsG5cikJEVUUhCGlLslPjKp-j4p3TP83vCvquiLQQbLTfMKyRGkJPb6X-O7_uMeaIPbzgmGZ6c3m1N6TZqdyvON1uoG-q5me2PNVVhlZEqyUr00HtI8Ua5ECjJKMKps4JrrmVHM89cNEJNEqsiiMFHZyeeqJ3YRbAAqBA1iRghiK0Dz8AvXgJxLQKhgyk-ltJygIzECSFGGdeWyIVR8LSlRaozJc2PLMFexrXgLhu_w4tJK_qJrBYr7UdmLUGX7UbnvIThw-g288348_35V9rHiFiFlM7ByPwSGsXDvNZNBhrtHutWbHbLN5vxieNur_7xsf7a1RlRSKgLgIk4WpghCJgWpYCbiWHM9oxpJCIpJHrZSYKqMvCyudNnrYJVPocEGo5wok4OI-oRJiGFJOQjcgBQi5Z9iNUQMZIZPJZXIEikkQ1ICicHzdJtQwS0hWKKPTlGAhpo9qAy2QJyr5xFshQzFIfGcuub2XXBwCVoHD2Kq87M3ZSgQZBhwrnqXWM0aKz6G7NX30oU1AR6iiQQFfK29ApdINdVCAEYUSowk8xsizc9nUVLxQlqfcuU8sOJLRtlwVV1KU2l9VJKWYsaKaClXDjRVnH7oNor3Sa5ie2xaxoZm6xtHY98cBTeohAJzmb-KxRHhDApSfBNk9laBT7bJA5eEe-YSPHuWuYCcKXus4hJRgcy_UjSuRI0xBJRQgBUkTZ-alxO903owm1cnP6_7982O11xdVpW0cyYRjn7DFRYfMvcclSurIlG9Tl5tQJINFBGfRChlru9OuPLdCVvBcGTTUvks1d8xHEQUSuxDKQSSwbx_5H6w9wnlqVF3FvoYiuWO4VRLLkG-dygog5SssGienTyu-n4imPIORTnQZ-X5M8WSqwgEV0IsMUAw2NYPpXJXcXy59j-hIg0BAIGUY8lV8E1QnnLdD-9up_vwYtS51u3D6Tk9Obw-fIt6qr6EVPaYCYKCRLoorp7ZOypLDkpRoj56tUGi-meRTgTzN-7DIDtN0ApmJJuVyu98Fel8bQNKSdWjM_U1AoiVk77FsoiUIhhYclL6f4a8vHz4PindfTB6E78yupm7pkkJFojHg7DXgM_ey_nZ9uEi8veEUzwTTgSopIxIzD4-eavUEGJAMOFCffnF8yAzVya3WX_-eDZAe83NkXt61d--OWuO3iKTOHUUV8nsTeHlqiRaNcZMNRCfRSdRrtVAACDMCcTFdTIblsq72-zvJGOj7P-LMSajSpspJOQjt-u_Txi_b5ejiV8WI6tp43Hb13xjaWxqU9OYbWX9P1h4LO6uZtLUF08TOr5_vvz5PwWZbjk="
|
||||||
|
until [[ -n "$(curl --silent "localhost:8080/excalidraw/svg/$ENCODED")" ]]; do echo "waiting for kroki"; sleep 1; done
|
Loading…
Reference in New Issue
Block a user