1
0
Fork 0

Convert jingkaimori doc to html for CICD (#35)

This commit is contained in:
ATQlove 2024-07-31 20:27:39 +08:00 committed by GitHub
parent b4aeea5b1a
commit debfddd081
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 100 additions and 0 deletions

View File

@ -0,0 +1,39 @@
name: CI/CD for Converting tm format to html
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
container: debian:bookworm
runs-on: ubuntu-22.04
steps:
- name: Install dependencies
run: apt-get update && apt-get install -y wget git
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: download release from mogan research repository
run: |
wget https://github.com/XmacsLabs/mogan/releases/download/v1.2.8-rc1/mogan-research-v1.2.8-rc1-debian12.deb -O /tmp/mogan-research.deb
DEBIAN_FRONTEND=noninteractive apt install -y /tmp/mogan-research.deb
- name: convert document to html format
run: |
/usr/bin/MoganResearch -headless -b CICD/tm2html_CICD.scm -x "(tm2html_CICD)" -q
# Deploy to local repo
- name: Deploy
uses: s0/git-publish-subdir-action@develop
env:
REPO: self
BRANCH: gh-pages
FOLDER: CICD/html
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

61
CICD/tm2html_CICD.scm Normal file
View File

@ -0,0 +1,61 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; MODULE : tm2html_CICD.scm
;; DESCRIPTION : Convert tm format to html for CICD
;; COPYRIGHT : (C) 2024 ATQlove
;;
;; This software falls under the GNU general public license version 3 or later.
;; It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
;; in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define (list-files dir)
(let* ((filtered-files (url->list
(url-expand
(url-complete
(url-append (url-descendants dir)
(url-or (url-wildcard "*.tm")
(url-wildcard "*.tmu")))
"fr")))))
; (display "Filtered files:\n")
; (for-each (lambda (file) (display (string-append (url->string file) "\n"))) filtered-files)
filtered-files))
(define (export-file-to-html file base-dir output-dir)
(let* ((relative-path (url-delta base-dir file))
(output-file-url (url-append output-dir relative-path))
(output-file-url (url-unglue output-file-url 3)) ; Remove ".tm" or ".tmu" extension
(html-file-url (url-glue output-file-url ".html"))
(output-dir-url (url-head html-file-url)))
; Debugging information; expect information are just some example
(display (string-append "Base directory: " (url->string base-dir) "\n")) ; Expect: file:///F:/mogan/planet/CICD/try
(display (string-append "File: " (url->string file) "\n")) ; Expect: file:///F:/mogan/planet/CICD/try/2/24_10_tmhtml_test.tmu
(display (string-append "Relative path: " (url->string relative-path) "\n")) ; Expect: /2/24_10_tmhtml_test.tmu
(display (string-append "Output file URL (before unglue): " (url->string output-file-url) "\n")) ; Expect: file:///F:/mogan/planet/CICD/html/2/24_10_tmhtml_test.tmu
(display (string-append "Output file URL (after unglue): " (url->string (url-unglue output-file-url 3)) "\n")) ; Expect: file:///F:/mogan/planet/CICD/html/2/24_10_tmhtml_test
(display (string-append "HTML file URL: " (url->string html-file-url) "\n")) ; Expect: file:///F:/mogan/planet/CICD/html/2/24_10_tmhtml_test.html
(display (string-append "Output directory URL: " (url->string output-dir-url) "\n")) ; Expect: file:///F:/mogan/planet/CICD/html/2
(make-directory (url->string output-dir-url))
(display (string-append "Exporting " (url->string file) " to " (url->string html-file-url) "\n"))
(load-buffer (url->string file))
(export-buffer-main (current-buffer) (url->string html-file-url) "html" ())))
(define (make-directory dir)
(system (string-append "mkdir -p " dir)))
(define (export-directory dir output-dir)
(let* ((files (list-files dir)))
(for-each (lambda (file)
(export-file-to-html file dir output-dir))
files)))
(tm-define (tm2html_CICD)
(url-exists? "/__w/planet/planet/jingkaimori")
(url-exists? "/__w/planet/planet/CICD")
(export-directory "/__w/planet/planet/jingkaimori" "/__w/planet/planet/CICD/html")
(display "Conversion from tm/tmu to html end\n"))