mirror of
https://github.com/ldericher/autodoc.git
synced 2025-12-06 23:52:59 +00:00
Compare commits
No commits in common. "master" and "v0.4.1" have entirely different histories.
17 changed files with 32 additions and 249 deletions
35
.drone.yml
35
.drone.yml
|
|
@ -1,35 +0,0 @@
|
||||||
---
|
|
||||||
kind: pipeline
|
|
||||||
name: default
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: default
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
repo: ldericher/autodoc
|
|
||||||
username:
|
|
||||||
from_secret: DOCKER_USERNAME
|
|
||||||
password:
|
|
||||||
from_secret: DOCKER_PASSWORD
|
|
||||||
auto_tag: true
|
|
||||||
dockerfile: Dockerfile.alpine
|
|
||||||
target: stage-base
|
|
||||||
|
|
||||||
- name: diagram
|
|
||||||
image: plugins/docker
|
|
||||||
settings:
|
|
||||||
repo: ldericher/autodoc
|
|
||||||
username:
|
|
||||||
from_secret: DOCKER_USERNAME
|
|
||||||
password:
|
|
||||||
from_secret: DOCKER_PASSWORD
|
|
||||||
auto_tag: true
|
|
||||||
auto_tag_suffix: diagram
|
|
||||||
dockerfile: Dockerfile.ubuntu
|
|
||||||
target: stage-diagram
|
|
||||||
|
|
||||||
- name: parallelism provider
|
|
||||||
image: alpine
|
|
||||||
depends_on:
|
|
||||||
- default
|
|
||||||
- diagram
|
|
||||||
1
.gitattributes
vendored
1
.gitattributes
vendored
|
|
@ -1 +0,0 @@
|
||||||
*.icc filter=lfs diff=lfs merge=lfs -text
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
FROM pandoc/extra:latest AS stage-base
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
\
|
|
||||||
apk add --no-cache \
|
|
||||||
bash \
|
|
||||||
ghostscript \
|
|
||||||
inotify-tools \
|
|
||||||
make \
|
|
||||||
patch \
|
|
||||||
; \
|
|
||||||
\
|
|
||||||
tlmgr update --self; \
|
|
||||||
\
|
|
||||||
tlmgr install \
|
|
||||||
kpfonts \
|
|
||||||
lastpage \
|
|
||||||
latexmk \
|
|
||||||
twemojis \
|
|
||||||
;
|
|
||||||
|
|
||||||
COPY src/usr /usr
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
\
|
|
||||||
cp /usr/share/ghostscript/lib/PDFA_def.ps /usr/local/share/autodoc/; \
|
|
||||||
patch -d /usr/local/share/autodoc < /usr/local/share/autodoc/PDFA_def.ps.patch; \
|
|
||||||
rm /usr/local/share/autodoc/PDFA_def.ps.patch;
|
|
||||||
|
|
||||||
WORKDIR /docs
|
|
||||||
ENTRYPOINT ["autodoc"]
|
|
||||||
CMD ["-bw"]
|
|
||||||
|
|
||||||
FROM stage-base AS stage-diagram
|
|
||||||
|
|
||||||
ENV PUPPETEER_CACHE_DIR="/usr/local/share/puppeteer/cache" \
|
|
||||||
PUPPETEER_EXECUTABLE_PATH="/usr/bin/chromium-browser" \
|
|
||||||
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD="true"
|
|
||||||
|
|
||||||
COPY src/diagram.lua.patch /usr/local/src/autodoc/diagram.lua.patch
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
\
|
|
||||||
apk add --no-cache \
|
|
||||||
chromium \
|
|
||||||
npm \
|
|
||||||
; \
|
|
||||||
\
|
|
||||||
npm install --global @mermaid-js/mermaid-cli; \
|
|
||||||
# rm -rf /root/.cache/puppeteer; \
|
|
||||||
\
|
|
||||||
wget \
|
|
||||||
--output-document='/usr/local/share/pandoc/filters/diagram.lua' \
|
|
||||||
'https://raw.githubusercontent.com/pandoc-ext/diagram/refs/heads/main/_extensions/diagram/diagram.lua' \
|
|
||||||
; \
|
|
||||||
patch /usr/local/share/pandoc/filters/diagram.lua < /usr/local/src/autodoc/diagram.lua.patch; \
|
|
||||||
rm /usr/local/src/autodoc/diagram.lua.patch;
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
FROM pandoc/extra:latest-ubuntu AS stage-base
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
\
|
|
||||||
deluser --remove-home ubuntu; \
|
|
||||||
\
|
|
||||||
apt-get update; apt-get install --no-install-recommends --yes \
|
|
||||||
ghostscript \
|
|
||||||
inotify-tools \
|
|
||||||
make \
|
|
||||||
patch \
|
|
||||||
; rm -rf /var/lib/apt/lists/*; \
|
|
||||||
\
|
|
||||||
tlmgr update --self; \
|
|
||||||
\
|
|
||||||
tlmgr install \
|
|
||||||
kpfonts \
|
|
||||||
lastpage \
|
|
||||||
latexmk \
|
|
||||||
twemojis \
|
|
||||||
;
|
|
||||||
|
|
||||||
COPY src/usr /usr
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
\
|
|
||||||
cp /usr/share/ghostscript/10.02.1/lib/PDFA_def.ps /usr/local/share/autodoc/; \
|
|
||||||
patch -d /usr/local/share/autodoc < /usr/local/share/autodoc/PDFA_def.ps.patch; \
|
|
||||||
rm /usr/local/share/autodoc/PDFA_def.ps.patch;
|
|
||||||
|
|
||||||
WORKDIR /docs
|
|
||||||
ENTRYPOINT ["autodoc"]
|
|
||||||
CMD ["-bw"]
|
|
||||||
|
|
||||||
FROM stage-base AS stage-diagram
|
|
||||||
|
|
||||||
ENV PUPPETEER_CACHE_DIR="/usr/local/share/puppeteer/cache"
|
|
||||||
|
|
||||||
COPY src/diagram.lua.patch /usr/local/src/autodoc/diagram.lua.patch
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
\
|
|
||||||
apt-get update; apt-get install --no-install-recommends --yes \
|
|
||||||
libasound2t64 \
|
|
||||||
libatk1.0-0t64 \
|
|
||||||
libatk-bridge2.0-0t64 \
|
|
||||||
libgbm1 \
|
|
||||||
libnss3 \
|
|
||||||
libxcomposite1 \
|
|
||||||
libxdamage1 \
|
|
||||||
libxfixes3 \
|
|
||||||
libxkbcommon0 \
|
|
||||||
libxrandr2 \
|
|
||||||
npm \
|
|
||||||
; rm -rf /var/lib/apt/lists/*; \
|
|
||||||
\
|
|
||||||
npm install --global @mermaid-js/mermaid-cli; \
|
|
||||||
\
|
|
||||||
wget \
|
|
||||||
--output-document='/usr/local/share/pandoc/filters/diagram.lua' \
|
|
||||||
'https://raw.githubusercontent.com/pandoc-ext/diagram/refs/heads/main/_extensions/diagram/diagram.lua' \
|
|
||||||
; \
|
|
||||||
patch /usr/local/share/pandoc/filters/diagram.lua < /usr/local/src/autodoc/diagram.lua.patch; \
|
|
||||||
rm /usr/local/src/autodoc/diagram.lua.patch;
|
|
||||||
|
|
@ -1,14 +1,12 @@
|
||||||
# autodoc
|
# autodoc
|
||||||
|
|
||||||
[](https://github.drone.yavook.de/ldericher/autodoc)
|
|
||||||
|
|
||||||
[`autodoc`](https://github.com/ldericher/autodoc) is a simple [CI](https://en.wikipedia.org/wiki/Continuous_integration) system optimized for document creation.
|
[`autodoc`](https://github.com/ldericher/autodoc) is a simple [CI](https://en.wikipedia.org/wiki/Continuous_integration) system optimized for document creation.
|
||||||
|
|
||||||
In general, any file-sharing solution -- preferably on top of `docker-compose` -- can be made into an automatic document distribution system by adding an `autodoc` instance.
|
In general, any file-sharing solution -- preferably on top of `docker-compose` -- can be made into an automatic document distribution system by adding an `autodoc` instance.
|
||||||
|
|
||||||
## Quick Start Guide using Docker
|
## Quick Start Guide using Docker
|
||||||
|
|
||||||
The `autodoc` image [available on Docker Hub](https://hub.docker.com/r/ldericher/autodoc) is based on [pandoc/extra](https://hub.docker.com/r/pandoc/extra) providing TeXlive `LaTeX` and `pandoc` in a container.
|
The `autodoc` image [available on Docker Hub](https://hub.docker.com/r/ldericher/autodoc) is based on [pandocker](https://hub.docker.com/r/ldericher/pandocker) providing Ubuntu's TeXlive `LaTeX` and `pandoc` in a simple box.
|
||||||
|
|
||||||
01. Install [Docker CE](https://docs.docker.com/install/)
|
01. Install [Docker CE](https://docs.docker.com/install/)
|
||||||
|
|
||||||
|
|
@ -18,7 +16,7 @@ The `autodoc` image [available on Docker Hub](https://hub.docker.com/r/ldericher
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run --rm -it \
|
docker run --rm -it \
|
||||||
--volume "${PWD}:/docs" \
|
--volume "${PWD}":/docs \
|
||||||
--user "$(id -u):$(id -g)" \
|
--user "$(id -u):$(id -g)" \
|
||||||
ldericher/autodoc
|
ldericher/autodoc
|
||||||
```
|
```
|
||||||
|
|
@ -58,6 +56,7 @@ services:
|
||||||
- documents:/opt/autodoc
|
- documents:/opt/autodoc
|
||||||
|
|
||||||
autodoc:
|
autodoc:
|
||||||
|
restart: always
|
||||||
image: ldericher/autodoc
|
image: ldericher/autodoc
|
||||||
user: "UID:GID"
|
user: "UID:GID"
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
||||||
19
docker-compose.yml
Normal file
19
docker-compose.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
version: "2"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
phyLinux-home:
|
||||||
|
|
||||||
|
services:
|
||||||
|
autodoc:
|
||||||
|
restart: "no"
|
||||||
|
|
||||||
|
image: ldericher/autodoc
|
||||||
|
build:
|
||||||
|
context: ./src
|
||||||
|
|
||||||
|
command: "bash"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- "${PWD}/src/usr/local/bin/autodoc:/usr/local/bin/autodoc:ro"
|
||||||
|
- "${PWD}/src/usr/local/lib/autodoc:/usr/local/lib/autodoc:ro"
|
||||||
|
- "${PWD}/examples:/docs"
|
||||||
1
examples/eisvogel/.gitignore
vendored
1
examples/eisvogel/.gitignore
vendored
|
|
@ -1 +0,0 @@
|
||||||
*.pdf
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
#%SRCPAT% \.url$
|
|
||||||
|
|
||||||
.PHONY: all
|
|
||||||
all: eisvogel.pdf
|
|
||||||
|
|
||||||
.PHONY: eisvogel.pdf
|
|
||||||
eisvogel.pdf: document.md.url
|
|
||||||
wget -O- '$(file < $<)' | pandoc -s -f markdown -t latex -o $@ --template eisvogel
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
https://raw.githubusercontent.com/Wandmalfarbe/pandoc-latex-template/master/examples/basic-example/document.md
|
|
||||||
|
|
@ -15,7 +15,7 @@ Behold, for there is jumbled mess ahead!
|
||||||
|
|
||||||
With the default HTML template, this does not translate: \textsl{Have some \LaTeX, too!}
|
With the default HTML template, this does not translate: \textsl{Have some \LaTeX, too!}
|
||||||
Some math is fine with HTML: $x=5$, some other is not: $\sqrt{x}=2$.
|
Some math is fine with HTML: $x=5$, some other is not: $\sqrt{x}=2$.
|
||||||
However, both of these work with the `--webtex` switch for pandoc!
|
However, both of these are fixable!
|
||||||
|
|
||||||
Code blocks? Sure!
|
Code blocks? Sure!
|
||||||
|
|
||||||
|
|
|
||||||
9
src/Dockerfile
Normal file
9
src/Dockerfile
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
FROM ldericher/pandocker:latest
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get -y install \
|
||||||
|
inotify-tools \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY usr /usr
|
||||||
|
|
||||||
|
CMD ["autodoc", "-bw"]
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
--- diagram.lua
|
|
||||||
+++ diagram.lua
|
|
||||||
@@ -158,7 +158,7 @@
|
|
||||||
write_file(infile, code)
|
|
||||||
pipe(
|
|
||||||
self.execpath or 'mmdc',
|
|
||||||
- {"--pdfFit", "--input", infile, "--output", outfile},
|
|
||||||
+ {"--pdfFit", "--puppeteerConfigFile", "/usr/local/share/puppeteer/config.json", "--input", infile, "--output", outfile},
|
|
||||||
''
|
|
||||||
)
|
|
||||||
return read_file(outfile), mime_type
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
--- PDFA_def.ps
|
|
||||||
+++ PDFA_def.ps
|
|
||||||
@@ -9,7 +9,7 @@
|
|
||||||
/DOCINFO pdfmark
|
|
||||||
|
|
||||||
% Define an ICC profile :
|
|
||||||
-/ICCProfile (srgb.icc) % Customise
|
|
||||||
+/ICCProfile (/usr/local/share/autodoc/sRGB.icc) % Customise
|
|
||||||
def
|
|
||||||
|
|
||||||
[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark
|
|
||||||
BIN
src/usr/local/share/autodoc/compatibleWithAdobeRGB1998.icc
(Stored with Git LFS)
BIN
src/usr/local/share/autodoc/compatibleWithAdobeRGB1998.icc
(Stored with Git LFS)
Binary file not shown.
|
|
@ -1,46 +0,0 @@
|
||||||
#############
|
|
||||||
# FUNCTIONS #
|
|
||||||
#############
|
|
||||||
|
|
||||||
PDFTOOLS_GSFLAGS := \
|
|
||||||
-sDEVICE=pdfwrite \
|
|
||||||
-dNOOUTERSAVE \
|
|
||||||
-dNOPAUSE \
|
|
||||||
-dQUIET \
|
|
||||||
-dBATCH
|
|
||||||
|
|
||||||
pdftools_pdfcat = gs \
|
|
||||||
$(PDFTOOLS_GSFLAGS) \
|
|
||||||
-sPAPERSIZE=a4 \
|
|
||||||
-dFIXEDMEDIA \
|
|
||||||
-dPDFFitPage \
|
|
||||||
-dCompatibilityLevel=1.7 \
|
|
||||||
-dPDFSETTINGS=/ebook \
|
|
||||||
-sOutputFile=$(2) \
|
|
||||||
$(1)
|
|
||||||
|
|
||||||
pdftools_mkpdfa = gs \
|
|
||||||
$(PDFTOOLS_GSFLAGS) \
|
|
||||||
-dPDFA=$(1) \
|
|
||||||
-sColorConversionStrategy=RGB \
|
|
||||||
-dPDFACompatibilityPolicy=1 \
|
|
||||||
--permit-file-read=/usr/local/share/autodoc/ \
|
|
||||||
-sOutputFile=$(3) \
|
|
||||||
/usr/local/share/autodoc/PDFA_def.ps \
|
|
||||||
$(2)
|
|
||||||
|
|
||||||
############
|
|
||||||
# PATTERNS #
|
|
||||||
############
|
|
||||||
|
|
||||||
# convert PDF to PDF/A-2B
|
|
||||||
%_pdfa2.pdf: %.pdf
|
|
||||||
$(call pdftools_mkpdfa,2,$<,$@)
|
|
||||||
|
|
||||||
# convert PDF to PDF/A-3B
|
|
||||||
%_pdfa3.pdf: %.pdf
|
|
||||||
$(call pdftools_mkpdfa,3,$<,$@)
|
|
||||||
|
|
||||||
# convert PDF to PDF/A (default variant 3B)
|
|
||||||
%_pdfa.pdf: %.pdf
|
|
||||||
$(call pdftools_mkpdfa,3,$<,$@)
|
|
||||||
BIN
src/usr/local/share/autodoc/sRGB.icc
(Stored with Git LFS)
BIN
src/usr/local/share/autodoc/sRGB.icc
(Stored with Git LFS)
Binary file not shown.
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"args": [ "--no-sandbox" ]
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue