git: 6da4b7abdb3d - main - www/writefreely: Clean, markdown-based publishing for writers

Joseph Mingrone jrm at FreeBSD.org
Sun Aug 22 15:11:05 UTC 2021


The branch main has been updated by jrm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6da4b7abdb3d56fa4c810acfbd09c683026edac3

commit 6da4b7abdb3d56fa4c810acfbd09c683026edac3
Author:     Robert Clausecker <fuz at fuz.su>
AuthorDate: 2021-08-22 03:08:31 +0000
Commit:     Joseph Mingrone <jrm at FreeBSD.org>
CommitDate: 2021-08-22 15:09:59 +0000

    www/writefreely: Clean, markdown-based publishing for writers
    
    https://writefreely.org
    
    PR:             257358
    Reviewed by:    lwhsu
---
 GIDs                                  |   2 +-
 UIDs                                  |   2 +-
 www/Makefile                          |   1 +
 www/writefreely/Makefile              | 156 ++++++++++++++
 www/writefreely/distinfo              | 149 ++++++++++++++
 www/writefreely/files/patch-go.mod    |  27 +++
 www/writefreely/files/patch-go.sum    |  61 ++++++
 www/writefreely/files/patch-gopher.go |  11 +
 www/writefreely/files/patch-handle.go |  11 +
 www/writefreely/files/pkg-message.in  |  15 ++
 www/writefreely/files/writefreely.in  |  65 ++++++
 www/writefreely/pkg-descr             |   5 +
 www/writefreely/pkg-plist             | 374 ++++++++++++++++++++++++++++++++++
 13 files changed, 877 insertions(+), 2 deletions(-)

diff --git a/GIDs b/GIDs
index b2804c6ff1cf..6daf0469c8c2 100644
--- a/GIDs
+++ b/GIDs
@@ -235,7 +235,7 @@ sftpgo:*:292:
 biboumi:*:293:
 krill:*:294:
 jottad:*:295:
-# free: 296
+writefreely:*:296:
 # free: 297
 # free: 298
 owncast:*:299:
diff --git a/UIDs b/UIDs
index afdfc0838516..850951f12bc3 100644
--- a/UIDs
+++ b/UIDs
@@ -240,7 +240,7 @@ sftpgo:*:292:292::0:0:SFTPGo user:/nonexistent:/usr/sbin/nologin
 biboumi:*:293:293::0:0:biboumi:/nonexistent:/usr/sbin/nologin
 krill:*:294:294::0:0:krill Pseudo User:/nonexistent:/usr/sbin/nologin
 jottad:*:295:295::0:0:Jotta Cloud Daemon:/nonexisten:/usr/sbin/nologin
-# free: 296
+writefreely:*:296:296::0:0:WriteFreely daemon:/var/db/writefreely:/usr/sbin/nologin
 # free: 297
 # free: 298
 owncast:*:299:299::0:0:& daemon:/nonexistent:/usr/sbin/nologin
diff --git a/www/Makefile b/www/Makefile
index a3d977ccec46..fe5854b5cbb9 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -2333,6 +2333,7 @@
     SUBDIR += wordpress
     SUBDIR += wpebackend-fdo
     SUBDIR += writeas-cli
+    SUBDIR += writefreely
     SUBDIR += wsdlpull
     SUBDIR += wslay
     SUBDIR += wsmake
diff --git a/www/writefreely/Makefile b/www/writefreely/Makefile
new file mode 100644
index 000000000000..bb8a65a12a74
--- /dev/null
+++ b/www/writefreely/Makefile
@@ -0,0 +1,156 @@
+PORTNAME=	writefreely
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.13.1
+CATEGORIES=	www textproc
+MASTER_SITES=	https://code.as/core/socks/archive/v1.0.0.tar.gz?dummy=/:core_socks \
+		https://git.mills.io/prologic/go-gopher/archive/:go_gopher
+DISTFILES=	core-socks-v1.0.0.tar.gz:core_socks \
+		b7ebb55feece2abb74a651c217db6f7ead778170.tar.gz:go_gopher
+DIST_SUBDIR=	writeas
+
+MAINTAINER=	fuz at fuz.su
+COMMENT=	Clean, Markdown-based publishing platform made for writers
+
+LICENSE=	AGPLv3
+LICENSE_FILE=	${WRKSRC}/LICENSE
+LICENSE_DISTFILES_CC-BY-NC-SA-4.0=	writefreely-documentation-${DISTVERSIONPREFIX}${DISTVERSION}_GH0.tar.gz
+
+BUILD_DEPENDS=	go-bindata:devel/go-bindata
+
+USES=		go:modules
+USE_GITHUB=	yes
+GH_TUPLE=	aymerick:douceur:v0.2.0:aymerick_douceur/vendor/github.com/aymerick/douceur \
+		beevik:etree:v1.1.0:beevik_etree/vendor/github.com/beevik/etree \
+		captncraig:cors:e80254a89df1:captncraig_cors/vendor/github.com/captncraig/cors \
+		chris-ramon:douceur:v0.2.0:chris_ramon_douceur \
+		chzyer:readline:2972be24d48e:chzyer_readline/vendor/github.com/chzyer/readline \
+		clbanning:mxj:v1.8.4:clbanning_mxj/vendor/github.com/clbanning/mxj \
+		cpuguy83:go-md2man:f79a8a8ca69d:cpuguy83_go_md2man_v2/vendor/github.com/cpuguy83/go-md2man/v2 \
+		davecgh:go-spew:v1.1.1:davecgh_go_spew/vendor/github.com/davecgh/go-spew \
+		dchest:uniuri:7aecb25e1fe5:dchest_uniuri/vendor/github.com/dchest/uniuri \
+		dustin:go-humanize:v1.0.0:dustin_go_humanize/vendor/github.com/dustin/go-humanize \
+		fatih:color:v1.10.0:fatih_color/vendor/github.com/fatih/color \
+		fatih:structs:v1.1.0:fatih_structs/vendor/github.com/fatih/structs \
+		go-fed:httpsig:0ef28562fabe:go_fed_httpsig/vendor/github.com/go-fed/httpsig \
+		go-ini:ini:v1.62.0:go_ini_ini/vendor/gopkg.in/ini.v1 \
+		go-sql-driver:mysql:v1.6.0:go_sql_driver_mysql/vendor/github.com/go-sql-driver/mysql \
+		go-test:deep:v1.0.1:go_test_deep/vendor/github.com/go-test/deep \
+		go-yaml:yaml:9f266ea9e77c:go_yaml_yaml/vendor/gopkg.in/yaml.v3 \
+		gofrs:uuid:v3.3.0:gofrs_uuid/vendor/github.com/gofrs/uuid \
+		golang:crypto:75b288015ac9:golang_crypto/vendor/golang.org/x/crypto \
+		golang:net:04defd469f4e:golang_net/vendor/golang.org/x/net \
+		golang:sys:04245dca01da:golang_sys/vendor/golang.org/x/sys \
+		golang:text:v0.3.6:golang_text/vendor/golang.org/x/text \
+		gologme:log:v1.2.0:gologme_log/vendor/github.com/gologme/log \
+		gopherjs:gopherjs:d547d1d9531e:gopherjs_gopherjs/vendor/github.com/gopherjs/gopherjs \
+		gorilla:csrf:v1.7.0:gorilla_csrf/vendor/github.com/gorilla/csrf \
+		gorilla:css:v1.0.0:gorilla_css/vendor/github.com/gorilla/css \
+		gorilla:feeds:v1.1.1:gorilla_feeds/vendor/github.com/gorilla/feeds \
+		gorilla:mux:v1.8.0:gorilla_mux/vendor/github.com/gorilla/mux \
+		gorilla:schema:v1.2.0:gorilla_schema/vendor/github.com/gorilla/schema \
+		gorilla:securecookie:v1.1.1:gorilla_securecookie/vendor/github.com/gorilla/securecookie \
+		gorilla:sessions:v1.2.0:gorilla_sessions/vendor/github.com/gorilla/sessions \
+		guregu:null:v3.5.0:guregu_null/vendor/github.com/guregu/null \
+		hashicorp:errwrap:v1.0.0:hashicorp_errwrap/vendor/github.com/hashicorp/errwrap \
+		hashicorp:go-multierror:v1.1.1:hashicorp_go_multierror/vendor/github.com/hashicorp/go-multierror \
+		ikeikeikeike:go-sitemap-generator:v2.0.2:ikeikeikeike_go_sitemap_generator_v2/vendor/github.com/ikeikeikeike/go-sitemap-generator/v2 \
+		jtolds:gls:v4.2.1:jtolds_gls/vendor/github.com/jtolds/gls \
+		juju:ansiterm:720a0952cc2a:juju_ansiterm/vendor/github.com/juju/ansiterm \
+		kylemcc:twitter-text-go:7f582f6736ec:kylemcc_twitter_text_go/vendor/github.com/kylemcc/twitter-text-go \
+		lunixbochs:vtclean:v1.0.0:lunixbochs_vtclean/vendor/github.com/lunixbochs/vtclean \
+		manifoldco:promptui:v0.8.0:manifoldco_promptui/vendor/github.com/manifoldco/promptui \
+		mattn:go-colorable:v0.1.8:mattn_go_colorable/vendor/github.com/mattn/go-colorable \
+		mattn:go-isatty:v0.0.12:mattn_go_isatty/vendor/github.com/mattn/go-isatty \
+		mattn:go-sqlite3:v1.14.6:mattn_go_sqlite3/vendor/github.com/mattn/go-sqlite3 \
+		microcosm-cc:bluemonday:v1.0.5:microcosm_cc_bluemonday/vendor/github.com/microcosm-cc/bluemonday \
+		mitchellh:go-wordwrap:v1.0.1:mitchellh_go_wordwrap/vendor/github.com/mitchellh/go-wordwrap \
+		nu7hatch:gouuid:179d4d0c4d8d:nu7hatch_gouuid/vendor/github.com/nu7hatch/gouuid \
+		pkg:errors:v0.9.1:pkg_errors/vendor/github.com/pkg/errors \
+		pmezard:go-difflib:v1.0.0:pmezard_go_difflib/vendor/github.com/pmezard/go-difflib \
+		rainycape:unidecode:cb7f23ec59be:rainycape_unidecode/vendor/github.com/rainycape/unidecode \
+		russross:blackfriday:v2.0.1:russross_blackfriday_v2/vendor/github.com/russross/blackfriday/v2 \
+		shurcooL:sanitized_anchor_name:v1.0.0:shurcool_sanitized_anchor_name/vendor/github.com/shurcooL/sanitized_anchor_name \
+		smartystreets:assertions:b6c0e53d7304:smartystreets_assertions/vendor/github.com/smartystreets/assertions \
+		smartystreets:goconvey:044398e4856c:smartystreets_goconvey/vendor/github.com/smartystreets/goconvey \
+		stretchr:testify:v1.7.0:stretchr_testify/vendor/github.com/stretchr/testify \
+		urfave:cli:v2.3.0:urfave_cli_v2/vendor/github.com/urfave/cli/v2 \
+		writeas:activity:v0.1.2:writeas_activity/vendor/github.com/writeas/activity \
+		writeas:activityserve:d7ab3eaa4481:writeas_activityserve/vendor/github.com/writeas/activityserve \
+		writeas:go-strip-markdown:v2.1.1:writeas_go_strip_markdown_v2/vendor/github.com/writeas/go-strip-markdown/v2 \
+		writeas:go-webfinger:v1.1.0:writeas_go_webfinger/vendor/github.com/writeas/go-webfinger \
+		writeas:go-writeas:v2.0.2:writeas_go_writeas_v2/vendor/github.com/writeas/go-writeas/v2 \
+		writeas:httpsig:v1.0.0:writeas_httpsig/vendor/github.com/writeas/httpsig \
+		writeas:impart:v1.1.1:writeas_impart/vendor/github.com/writeas/impart \
+		writeas:import:v0.2.1:writeas_import/vendor/github.com/writeas/import \
+		writeas:monday:54a7dd579219:writeas_monday/vendor/github.com/writeas/monday \
+		writeas:openssl-go:v1.0.0:writeas_openssl_go/vendor/github.com/writeas/openssl-go \
+		writeas:saturday:392b95a03320:writeas_saturday/vendor/github.com/writeas/saturday \
+		writeas:slug:v1.2.0:writeas_slug/vendor/github.com/writeas/slug \
+		writeas:web-core:95a3a717ed8f:writeas_web_core/vendor/github.com/writeas/web-core \
+		writefreely:go-nodeinfo:v1.2.0:writefreely_go_nodeinfo/vendor/github.com/writefreely/go-nodeinfo
+USE_RC_SUBR=	writefreely
+GO_TARGET=	./cmd/writefreely
+
+SUB_FILES=	pkg-message
+USERS=		writefreely
+GROUPS=		writefreely
+
+OPTIONS_DEFINE=		DOCS SQLITE3
+OPTIONS_DEFAULT=	CSS_DIST SQLITE3
+OPTIONS_SINGLE=		CSS
+OPTIONS_SINGLE_CSS=	CSS_DIST CSS_LESSC
+
+CSS_DESC=			Stylesheets
+CSS_DIST_DESC=			Use pre-generated stylesheets
+CSS_LESSC_DESC=			Generate stylesheets with lessc (requires npm)
+CSS_DIST_MASTER_SITES=		http://fuz.su/~fuz/distfiles/writefreely/:css
+CSS_DIST_DISTFILES=		writefreely-css-${DISTVERSION}.tar.gz:css
+CSS_LESSC_BUILD_DEPENDS=	npm:www/npm
+CSS_LESSC_VARS=			LEGAL_PACKAGE=yes \
+				NO_PACKAGE="uses www/npm to fetch files at build time (option CSS_LESSC)"
+DOCS_GH_TUPLE=			writefreely:documentation:${DISTVERSIONPREFIX}${DISTVERSION}:docs
+DOCS_VARS=			LICENSE+=CC-BY-NC-SA-4.0 \
+				LICENSE_COMB=multi
+SQLITE3_VARS=			GO_BUILDFLAGS+=-tags=sqlite
+
+post-extract:
+	@${MKDIR} ${WRKSRC}/vendor/github.com/chris-ramon
+	@${RLN} ${WRKSRC_aymerick_douceur} ${WRKSRC}/vendor/github.com/chris-ramon/douceur
+	@${MKDIR} ${WRKSRC}/vendor/code.as/core
+	@${RLN} ${WRKDIR}/socks ${WRKSRC}/vendor/code.as/core/socks
+	@${MKDIR} ${WRKSRC}/vendor/git.mills.io/prologic
+	@${RLN} ${WRKDIR}/go-gopher ${WRKSRC}/vendor/git.mills.io/prologic/go-gopher
+
+# download the lessc program with npm for rolling the writefreely-css distfile
+${WRKDIR}/npm/bin/lessc:
+		@${ECHO_MSG} "=> downloading the lessc utility with NPM"
+		${MKDIR} ${WRKDIR}/npm
+		npm -C ${WRKDIR}/npm -g install less at 3.5.3
+		npm -C ${WRKDIR}/npm -g install less-plugin-clean-css
+
+pre-build:
+	cd ${WRKSRC} && go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql sqlite.sql
+
+# Packaging node.js applications is a PITA, so supply pre-generated CSS files as
+# a custom distfile using lessc, a node.js application.
+do-build-CSS_LESSC-on: ${WRKDIR}/npm/bin/lessc
+	@${ECHO_MSG} "=> generating CSS files with lessc"
+	${RM} -r ${WRKDIR}/css
+	${MKDIR} ${WRKDIR}/css
+	cd ${WRKSRC}/less && ${WRKDIR}/npm/bin/lessc app.less --clean-css="--s1 --advanced" ${WRKDIR}/css/write.css
+	cd ${WRKSRC}/less && ${WRKDIR}/npm/bin/lessc fonts.less --clean-css="--s1 --advanced" ${WRKDIR}/css/fonts.css
+	cd ${WRKSRC}/less && ${WRKDIR}/npm/bin/lessc icons.less --clean-css="--s1 --advanced" ${WRKDIR}/css/icons.css
+	cd ${WRKSRC}/less && ${WRKDIR}/npm/bin/lessc prose.less --clean-css="--s1 --advanced" ${WRKDIR}/css/prose.css
+	${TAR} -z -c -f ${WRKDIR}/writefreely-css-${DISTVERSION}.tar.gz -C ${WRKDIR} css
+
+do-install-DOCS-on:
+	cd ${WRKSRC_docs} && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} '! -depth 1'
+
+post-install:
+	${MKDIR} ${STAGEDIR}${WWWDIR}/keys
+	cd ${WRKSRC} && ${COPYTREE_SHARE} pages ${STAGEDIR}${WWWDIR}
+	cd ${WRKSRC} && ${COPYTREE_SHARE} static ${STAGEDIR}${WWWDIR}
+	${INSTALL_DATA} ${WRKDIR}/css/*.css ${STAGEDIR}${WWWDIR}/static/css/
+	cd ${WRKSRC} && ${COPYTREE_SHARE} templates ${STAGEDIR}${WWWDIR}
+
+.include <bsd.port.mk>
diff --git a/www/writefreely/distinfo b/www/writefreely/distinfo
new file mode 100644
index 000000000000..ae0acb3bc451
--- /dev/null
+++ b/www/writefreely/distinfo
@@ -0,0 +1,149 @@
+TIMESTAMP = 1626524123
+SHA256 (writeas/core-socks-v1.0.0.tar.gz) = 9d199f31b9fcaa97b4c52483f16e226fe7b40a0014b6070788f415cff29f2c32
+SIZE (writeas/core-socks-v1.0.0.tar.gz) = 11604
+SHA256 (writeas/b7ebb55feece2abb74a651c217db6f7ead778170.tar.gz) = 91667906e140a9ded2f73eabd71c6a2678b255b283ded2456ceb7fc7bed8b941
+SIZE (writeas/b7ebb55feece2abb74a651c217db6f7ead778170.tar.gz) = 4743065
+SHA256 (writeas/writefreely-css-0.13.1.tar.gz) = c690cc21a9761e6fc867138e905804cd2ed9dc10cb70e4de470bab509a409058
+SIZE (writeas/writefreely-css-0.13.1.tar.gz) = 12714
+SHA256 (writeas/writefreely-writefreely-v0.13.1_GH0.tar.gz) = f7ac0a02721bc4fb7451dd1ab3dc3c4b4f450d1d7623b3c55e6d0b1c73add43c
+SIZE (writeas/writefreely-writefreely-v0.13.1_GH0.tar.gz) = 3497792
+SHA256 (writeas/aymerick-douceur-v0.2.0_GH0.tar.gz) = ceed015cddc99b600ccbbd6aa0ebe39063554049f70153887d3df7c21fefedbb
+SIZE (writeas/aymerick-douceur-v0.2.0_GH0.tar.gz) = 20914
+SHA256 (writeas/beevik-etree-v1.1.0_GH0.tar.gz) = d1b424a126ce5c46d8e9ba42217e7997cc992bef56d17cc39d1d91525c0dc1de
+SIZE (writeas/beevik-etree-v1.1.0_GH0.tar.gz) = 26390
+SHA256 (writeas/captncraig-cors-e80254a89df1_GH0.tar.gz) = 32bea524b6ef4a31c4ac23d8b09e8555b10e3150f55bc0370515b733a72d9999
+SIZE (writeas/captncraig-cors-e80254a89df1_GH0.tar.gz) = 5659
+SHA256 (writeas/chris-ramon-douceur-v0.2.0_GH0.tar.gz) = ceed015cddc99b600ccbbd6aa0ebe39063554049f70153887d3df7c21fefedbb
+SIZE (writeas/chris-ramon-douceur-v0.2.0_GH0.tar.gz) = 20914
+SHA256 (writeas/chzyer-readline-2972be24d48e_GH0.tar.gz) = 8f425cfb33fce61a137866c0a88117c68f49de79a61a341353fc97339c6b74da
+SIZE (writeas/chzyer-readline-2972be24d48e_GH0.tar.gz) = 36825
+SHA256 (writeas/clbanning-mxj-v1.8.4_GH0.tar.gz) = 335fa9d17855c8540eca83fd8ecacc5979570fe15be04f7c1154f0b71f2c39c7
+SIZE (writeas/clbanning-mxj-v1.8.4_GH0.tar.gz) = 1091271
+SHA256 (writeas/cpuguy83-go-md2man-f79a8a8ca69d_GH0.tar.gz) = c117a3e3741ea39016b678b24db19b1f766277bac7c1c6d721237bb159610178
+SIZE (writeas/cpuguy83-go-md2man-f79a8a8ca69d_GH0.tar.gz) = 52020
+SHA256 (writeas/davecgh-go-spew-v1.1.1_GH0.tar.gz) = 7d82b9bb7291adbe7498fe946920ab3e7fc9e6cbfc3b2294693fad00bf0dd17e
+SIZE (writeas/davecgh-go-spew-v1.1.1_GH0.tar.gz) = 42152
+SHA256 (writeas/dchest-uniuri-7aecb25e1fe5_GH0.tar.gz) = 63ac3284162c388bd259f4bb26b7892c39a4fe89daef202c5f8c619706bfb4d3
+SIZE (writeas/dchest-uniuri-7aecb25e1fe5_GH0.tar.gz) = 5181
+SHA256 (writeas/dustin-go-humanize-v1.0.0_GH0.tar.gz) = e4540bd50ac855143b4f2e509313079c50cf5d8774f09cc10dbca5ae9803d8ba
+SIZE (writeas/dustin-go-humanize-v1.0.0_GH0.tar.gz) = 17260
+SHA256 (writeas/fatih-color-v1.10.0_GH0.tar.gz) = a00342a7ffb8b119346dce56e152a111cbb9eab3970c429cc2ed4272aec2858e
+SIZE (writeas/fatih-color-v1.10.0_GH0.tar.gz) = 1267532
+SHA256 (writeas/fatih-structs-v1.1.0_GH0.tar.gz) = 7479adacd8172f74968da4e1e14f1cc47c0bc98c48f44c09c497416dc8c9dfe4
+SIZE (writeas/fatih-structs-v1.1.0_GH0.tar.gz) = 14444
+SHA256 (writeas/go-fed-httpsig-0ef28562fabe_GH0.tar.gz) = f0f3e7726a121fc374a88a306cf8280c044fed04b51b3f2bed99c9afd8e2d917
+SIZE (writeas/go-fed-httpsig-0ef28562fabe_GH0.tar.gz) = 19012
+SHA256 (writeas/go-ini-ini-v1.62.0_GH0.tar.gz) = 926ca2ff49018dc5c0991f3a790bc2083a3c52c470167d42f0f0bcd6642ff64e
+SIZE (writeas/go-ini-ini-v1.62.0_GH0.tar.gz) = 50314
+SHA256 (writeas/go-sql-driver-mysql-v1.6.0_GH0.tar.gz) = 25233aea6418ca7e2e8d83f1bf4f498ef7f79c8c0fee1dc2a8ba623372574b28
+SIZE (writeas/go-sql-driver-mysql-v1.6.0_GH0.tar.gz) = 94168
+SHA256 (writeas/go-test-deep-v1.0.1_GH0.tar.gz) = 074089c0f76c00a709a60f36ec5b3838284732441fbe312726d5b4800bbe4c54
+SIZE (writeas/go-test-deep-v1.0.1_GH0.tar.gz) = 6898
+SHA256 (writeas/go-yaml-yaml-9f266ea9e77c_GH0.tar.gz) = 63efc9aabcbb56b2c9469927784fd67ecb3a79720c4fa754c511335a04156d04
+SIZE (writeas/go-yaml-yaml-9f266ea9e77c_GH0.tar.gz) = 86898
+SHA256 (writeas/gofrs-uuid-v3.3.0_GH0.tar.gz) = e9e33d86dfb753b1569414d733e8483d565345df302240a5c9f2930c02951ccb
+SIZE (writeas/gofrs-uuid-v3.3.0_GH0.tar.gz) = 17919
+SHA256 (writeas/golang-crypto-75b288015ac9_GH0.tar.gz) = 6e74e21bf9dfdbf0a8dac8cb205fbc3bfd8dff308a24080b9d6093a3858f0db2
+SIZE (writeas/golang-crypto-75b288015ac9_GH0.tar.gz) = 1729931
+SHA256 (writeas/golang-net-04defd469f4e_GH0.tar.gz) = 6009a6f0989341df975799276ff1c49af650d4a4ed3fd6db3501b91eb601810d
+SIZE (writeas/golang-net-04defd469f4e_GH0.tar.gz) = 1252122
+SHA256 (writeas/golang-sys-04245dca01da_GH0.tar.gz) = b90ec2bae1f7e395eb368638a6627199efdc28fa9c592a72aac0ae32351fd5d7
+SIZE (writeas/golang-sys-04245dca01da_GH0.tar.gz) = 1231301
+SHA256 (writeas/golang-text-v0.3.6_GH0.tar.gz) = f66bebcf21985b0a713d67c6c35dfc9800d3b6d00d62b83ed0ce5b2ed4cb9760
+SIZE (writeas/golang-text-v0.3.6_GH0.tar.gz) = 8351095
+SHA256 (writeas/gologme-log-v1.2.0_GH0.tar.gz) = 06b94718ea898c01c176a8915ccd119d511ee41de388611d8e9afeb1a17bfff6
+SIZE (writeas/gologme-log-v1.2.0_GH0.tar.gz) = 5610
+SHA256 (writeas/gopherjs-gopherjs-d547d1d9531e_GH0.tar.gz) = 9f24adce5539b96eaeae86b6b6b34c3b5d4b54b5552779f1919d583ef2045378
+SIZE (writeas/gopherjs-gopherjs-d547d1d9531e_GH0.tar.gz) = 217297
+SHA256 (writeas/gorilla-csrf-v1.7.0_GH0.tar.gz) = 8cbc7df34ba5266f78c81b5d1a86b822d4107533dd4c3fd9fe16cdee4d916db5
+SIZE (writeas/gorilla-csrf-v1.7.0_GH0.tar.gz) = 21854
+SHA256 (writeas/gorilla-css-v1.0.0_GH0.tar.gz) = 9decf83063b85bcd5392f645fac322e986b5fc596b3e44c3be02ee5939106f4c
+SIZE (writeas/gorilla-css-v1.0.0_GH0.tar.gz) = 6443
+SHA256 (writeas/gorilla-feeds-v1.1.1_GH0.tar.gz) = 361482738014da53e03d0be5b22d39f3a4d9a8f258cf7e09faf3694ee63e091f
+SIZE (writeas/gorilla-feeds-v1.1.1_GH0.tar.gz) = 14733
+SHA256 (writeas/gorilla-mux-v1.8.0_GH0.tar.gz) = ea2639259d2ce6f402636655e91eb93ba69c139e3cbf80b044ee393ada53757b
+SIZE (writeas/gorilla-mux-v1.8.0_GH0.tar.gz) = 45517
+SHA256 (writeas/gorilla-schema-v1.2.0_GH0.tar.gz) = 5dbfdc9c3e9275a87f4768cc455db2832c10dc7f2b9703810ff635dbf87c6cf0
+SIZE (writeas/gorilla-schema-v1.2.0_GH0.tar.gz) = 23467
+SHA256 (writeas/gorilla-securecookie-v1.1.1_GH0.tar.gz) = b7897b2243f0d43913aca318593c5c2586294fcd3265189d564ddda1b880fe95
+SIZE (writeas/gorilla-securecookie-v1.1.1_GH0.tar.gz) = 41240
+SHA256 (writeas/gorilla-sessions-v1.2.0_GH0.tar.gz) = 576d154ff12273d88d25864d14bd9b0fb1a864274d1fb3e224546529068c8968
+SIZE (writeas/gorilla-sessions-v1.2.0_GH0.tar.gz) = 13352
+SHA256 (writeas/guregu-null-v3.5.0_GH0.tar.gz) = 02a0c818db6abbb8d0578542d5101bc6567cb967edafe668ae0ce1df9bd86a5c
+SIZE (writeas/guregu-null-v3.5.0_GH0.tar.gz) = 17918
+SHA256 (writeas/hashicorp-errwrap-v1.0.0_GH0.tar.gz) = 26afc0e5895c6ce87c881c5c02c682ccc9a08174a9c27ca26d4a1e72dbf78128
+SIZE (writeas/hashicorp-errwrap-v1.0.0_GH0.tar.gz) = 8346
+SHA256 (writeas/hashicorp-go-multierror-v1.1.1_GH0.tar.gz) = 8d1bb3377310e8ffe4c7b5672c5de1eaed153402aebd15d6e5b9673c356a065f
+SIZE (writeas/hashicorp-go-multierror-v1.1.1_GH0.tar.gz) = 13803
+SHA256 (writeas/ikeikeikeike-go-sitemap-generator-v2.0.2_GH0.tar.gz) = 4a27e41c77ebb57e20269bc36d2be2967c13b2be173aa79f5e06754e9d50a6bc
+SIZE (writeas/ikeikeikeike-go-sitemap-generator-v2.0.2_GH0.tar.gz) = 16508
+SHA256 (writeas/jtolds-gls-v4.2.1_GH0.tar.gz) = 955860227f00b82bfe0e877f6100832c47ff723913d8a58baccdead73d43d1e7
+SIZE (writeas/jtolds-gls-v4.2.1_GH0.tar.gz) = 7296
+SHA256 (writeas/juju-ansiterm-720a0952cc2a_GH0.tar.gz) = 5595c2dc8973aab36a69648d4d94cac75a9ff4a28eb074a7b82b030fc7edbf64
+SIZE (writeas/juju-ansiterm-720a0952cc2a_GH0.tar.gz) = 15417
+SHA256 (writeas/kylemcc-twitter-text-go-7f582f6736ec_GH0.tar.gz) = 87933f50e945035bd8e58cd72cd49f65b28ae8f7bf62938cd1d2c8eec7f99092
+SIZE (writeas/kylemcc-twitter-text-go-7f582f6736ec_GH0.tar.gz) = 40265
+SHA256 (writeas/lunixbochs-vtclean-v1.0.0_GH0.tar.gz) = 38aa5c60284f77cbb4be1de4af8907ce66954ff1a11e4f910d02e0283ce13b33
+SIZE (writeas/lunixbochs-vtclean-v1.0.0_GH0.tar.gz) = 4213
+SHA256 (writeas/manifoldco-promptui-v0.8.0_GH0.tar.gz) = 3ef92d9991f3fe9fa85bdeb8546ae5b2c81a5a478c6ebcf356b2a6c25a59f219
+SIZE (writeas/manifoldco-promptui-v0.8.0_GH0.tar.gz) = 26830
+SHA256 (writeas/mattn-go-colorable-v0.1.8_GH0.tar.gz) = 1027954f9abbe06b6e117e3047af70204dd0eb4f8c27fcd459fb2574b279755f
+SIZE (writeas/mattn-go-colorable-v0.1.8_GH0.tar.gz) = 9571
+SHA256 (writeas/mattn-go-isatty-v0.0.12_GH0.tar.gz) = addbdc341d7685ed4cc8d2d8a8fd2bd9b784bde00d0ea99fb251039fc10c611c
+SIZE (writeas/mattn-go-isatty-v0.0.12_GH0.tar.gz) = 4548
+SHA256 (writeas/mattn-go-sqlite3-v1.14.6_GH0.tar.gz) = c92f80d9d5c16e305955cb5a6885a8d931926e9b489857560364148fd225b690
+SIZE (writeas/mattn-go-sqlite3-v1.14.6_GH0.tar.gz) = 2367133
+SHA256 (writeas/microcosm-cc-bluemonday-v1.0.5_GH0.tar.gz) = f843f1351d6c46e605e9037eecca3ddbe1b61d7363495141b2f4eef553085a24
+SIZE (writeas/microcosm-cc-bluemonday-v1.0.5_GH0.tar.gz) = 160661
+SHA256 (writeas/mitchellh-go-wordwrap-v1.0.1_GH0.tar.gz) = 56dc8d3883c765d9791a3698a55c66935b2978ac60e0e3c7c8799b182dd22bb5
+SIZE (writeas/mitchellh-go-wordwrap-v1.0.1_GH0.tar.gz) = 2921
+SHA256 (writeas/nu7hatch-gouuid-179d4d0c4d8d_GH0.tar.gz) = 2ead616e5bb23c0c669a1485cb45f083d8d6752acc5faa5f668521b7e99ec2e1
+SIZE (writeas/nu7hatch-gouuid-179d4d0c4d8d_GH0.tar.gz) = 3733
+SHA256 (writeas/pkg-errors-v0.9.1_GH0.tar.gz) = 56bfd893023daa498508bfe161de1be83299fcf15376035e7df79cbd7d6fa608
+SIZE (writeas/pkg-errors-v0.9.1_GH0.tar.gz) = 13415
+SHA256 (writeas/pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 28f3dc1b5c0efd61203ab07233f774740d3bf08da4d8153fb5310db6cea0ebda
+SIZE (writeas/pmezard-go-difflib-v1.0.0_GH0.tar.gz) = 11398
+SHA256 (writeas/rainycape-unidecode-cb7f23ec59be_GH0.tar.gz) = cd66a7ee66c8061c2d05585058323d0bcc6692761db94885511762428acfef96
+SIZE (writeas/rainycape-unidecode-cb7f23ec59be_GH0.tar.gz) = 387823
+SHA256 (writeas/russross-blackfriday-v2.0.1_GH0.tar.gz) = 5a0f38a36b6f3b2d59b72d713451a895a4d3a4406b3533882483782e37797cff
+SIZE (writeas/russross-blackfriday-v2.0.1_GH0.tar.gz) = 79613
+SHA256 (writeas/shurcooL-sanitized_anchor_name-v1.0.0_GH0.tar.gz) = 7e11964980f9b8595c17bc8970f0174621afe464920e38df7f8d77e45058388f
+SIZE (writeas/shurcooL-sanitized_anchor_name-v1.0.0_GH0.tar.gz) = 2143
+SHA256 (writeas/smartystreets-assertions-b6c0e53d7304_GH0.tar.gz) = eb3a9cad97b20a01dd2bfafd7baab237bec8804f325b44d041d1db0e5bc519eb
+SIZE (writeas/smartystreets-assertions-b6c0e53d7304_GH0.tar.gz) = 52164
+SHA256 (writeas/smartystreets-goconvey-044398e4856c_GH0.tar.gz) = 097f2f702e5dfe5d54d73b25f784fd2510ce12f3f6d87656d5948dfa68c0ad55
+SIZE (writeas/smartystreets-goconvey-044398e4856c_GH0.tar.gz) = 1477095
+SHA256 (writeas/stretchr-testify-v1.7.0_GH0.tar.gz) = 560c0984072cb436b17bbce5699b205d5aa2beb58ef7a94530d7724b5739a8d6
+SIZE (writeas/stretchr-testify-v1.7.0_GH0.tar.gz) = 91073
+SHA256 (writeas/urfave-cli-v2.3.0_GH0.tar.gz) = b17376246f1477157daab86d4a1562d6b004f5be0d15dfc61ebd8bb129384e6b
+SIZE (writeas/urfave-cli-v2.3.0_GH0.tar.gz) = 3408283
+SHA256 (writeas/writeas-activity-v0.1.2_GH0.tar.gz) = 9dc8d2dc255d779160bdaa557eb079b478f5eec892fed0572e16bfbbea736b57
+SIZE (writeas/writeas-activity-v0.1.2_GH0.tar.gz) = 2654174
+SHA256 (writeas/writeas-activityserve-d7ab3eaa4481_GH0.tar.gz) = 69cf6de86f3c00185dc63ac140155aa940b3d16dc3d5d2df1e0f48f9bae139c4
+SIZE (writeas/writeas-activityserve-d7ab3eaa4481_GH0.tar.gz) = 17398
+SHA256 (writeas/writeas-go-strip-markdown-v2.1.1_GH0.tar.gz) = 5bb5017dd0a5081f9b7a7ceebf266cacfbf071a23f90696c9ccc08203c8922e7
+SIZE (writeas/writeas-go-strip-markdown-v2.1.1_GH0.tar.gz) = 3434
+SHA256 (writeas/writeas-go-webfinger-v1.1.0_GH0.tar.gz) = 41011524c9f8916515df7bc64591e68b022b0515a93d72b0278f4ccffc731159
+SIZE (writeas/writeas-go-webfinger-v1.1.0_GH0.tar.gz) = 7889
+SHA256 (writeas/writeas-go-writeas-v2.0.2_GH0.tar.gz) = 62e304ddfb320c3bed4a258dd0667a7aff056ec144af13d35e54601fd2733215
+SIZE (writeas/writeas-go-writeas-v2.0.2_GH0.tar.gz) = 8494
+SHA256 (writeas/writeas-httpsig-v1.0.0_GH0.tar.gz) = 4d86eec9e1b0742530fb0e4ff8591af3e4ef1b80717743951124aeb9be34385b
+SIZE (writeas/writeas-httpsig-v1.0.0_GH0.tar.gz) = 12547
+SHA256 (writeas/writeas-impart-v1.1.1_GH0.tar.gz) = 7f3288fd6d2abb1d6314cf5abb7b8c4dd2069b541e56bcddb10e08d5a059b188
+SIZE (writeas/writeas-impart-v1.1.1_GH0.tar.gz) = 3107
+SHA256 (writeas/writeas-import-v0.2.1_GH0.tar.gz) = 8dddb332127235a31eb6242d67d2ca56e8e70f01bfcfadc1c8616edaf1b61586
+SIZE (writeas/writeas-import-v0.2.1_GH0.tar.gz) = 11539
+SHA256 (writeas/writeas-monday-54a7dd579219_GH0.tar.gz) = 7a30eb0940696f9367ffdaae774df711817d3ae75b359cc4e7f0c2cff1ef1ca5
+SIZE (writeas/writeas-monday-54a7dd579219_GH0.tar.gz) = 26999
+SHA256 (writeas/writeas-openssl-go-v1.0.0_GH0.tar.gz) = f840e8e3f94f589e1ce630eceacd7a5d11ed5a9c962eb9bf5313a6a8e4e24c35
+SIZE (writeas/writeas-openssl-go-v1.0.0_GH0.tar.gz) = 680
+SHA256 (writeas/writeas-saturday-392b95a03320_GH0.tar.gz) = 456355f38c3293a61a215743f64ea98a92b79ef9663a4082b4aa6c6c11de042c
+SIZE (writeas/writeas-saturday-392b95a03320_GH0.tar.gz) = 72780
+SHA256 (writeas/writeas-slug-v1.2.0_GH0.tar.gz) = db766bf635a326b8c56d717e59457d8bae06c6b805d65578c87ebfb47f52fc0d
+SIZE (writeas/writeas-slug-v1.2.0_GH0.tar.gz) = 11624
+SHA256 (writeas/writeas-web-core-95a3a717ed8f_GH0.tar.gz) = cbb9765162265e7c926e58b43a8f7a6cb38773d5520f828ad2eceaa76e9276cd
+SIZE (writeas/writeas-web-core-95a3a717ed8f_GH0.tar.gz) = 36105
+SHA256 (writeas/writefreely-go-nodeinfo-v1.2.0_GH0.tar.gz) = bcf74cbb4ff56cab570b0f20d8cf3ce6c711c0e912051e2c20c82c2488d62dde
+SIZE (writeas/writefreely-go-nodeinfo-v1.2.0_GH0.tar.gz) = 3560
+SHA256 (writeas/writefreely-documentation-v0.13.1_GH0.tar.gz) = 071263600c4aeba84f12a5794eb7c59f70b3bee6f1a7d0757ab0f50c3cc25f38
+SIZE (writeas/writefreely-documentation-v0.13.1_GH0.tar.gz) = 19082
diff --git a/www/writefreely/files/patch-go.mod b/www/writefreely/files/patch-go.mod
new file mode 100644
index 000000000000..c815b0d209d7
--- /dev/null
+++ b/www/writefreely/files/patch-go.mod
@@ -0,0 +1,27 @@
+--- go.mod.orig	2021-06-30 17:17:02 UTC
++++ go.mod
+@@ -1,6 +1,7 @@
+ module github.com/writefreely/writefreely
+ 
+ require (
++	git.mills.io/prologic/go-gopher v0.0.0-20210712135410-b7ebb55feece
+ 	github.com/clbanning/mxj v1.8.4 // indirect
+ 	github.com/dustin/go-humanize v1.0.0
+ 	github.com/fatih/color v1.10.0
+@@ -23,7 +24,6 @@ require (
+ 	github.com/microcosm-cc/bluemonday v1.0.5
+ 	github.com/mitchellh/go-wordwrap v1.0.1
+ 	github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d
+-	github.com/prologic/go-gopher v0.0.0-20200721020712-3e11dcff0469
+ 	github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be // indirect
+ 	github.com/smartystreets/assertions v0.0.0-20190116191733-b6c0e53d7304 // indirect
+ 	github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c // indirect
+@@ -42,7 +42,7 @@ require (
+ 	github.com/writeas/web-core v1.3.1-0.20210330164422-95a3a717ed8f
+ 	github.com/writefreely/go-nodeinfo v1.2.0
+ 	golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
+-	golang.org/x/net v0.0.0-20200707034311-ab3426394381
++	golang.org/x/net v0.0.0-20210614182718-04defd469f4e
+ 	gopkg.in/ini.v1 v1.62.0
+ )
+ 
diff --git a/www/writefreely/files/patch-go.sum b/www/writefreely/files/patch-go.sum
new file mode 100644
index 000000000000..0eaa9f5e64c5
--- /dev/null
+++ b/www/writefreely/files/patch-go.sum
@@ -0,0 +1,61 @@
+--- go.sum.orig	2021-07-12 09:24:15 UTC
++++ go.sum
+@@ -1,5 +1,7 @@
+ code.as/core/socks v1.0.0 h1:SPQXNp4SbEwjOAP9VzUahLHak8SDqy5n+9cm9tpjZOs=
+ code.as/core/socks v1.0.0/go.mod h1:BAXBy5O9s2gmw6UxLqNJcVbWY7C/UPs+801CcSsfWOY=
++git.mills.io/prologic/go-gopher v0.0.0-20210712135410-b7ebb55feece h1:0esmnntqeuM1iBgHH0HOeSynsLA1l28p2K3h/WZuIfQ=
++git.mills.io/prologic/go-gopher v0.0.0-20210712135410-b7ebb55feece/go.mod h1:EMXlYOIbYJQhPTtIltgaaHtCYDawV/HL0dYf8ShzAck=
+ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+ github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
+ github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
+@@ -99,14 +101,10 @@ github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TC
+ github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
+ github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d h1:VhgPp6v9qf9Agr/56bj7Y/xa04UccTW04VP0Qed4vnQ=
+ github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U=
+-github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
+-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+-github.com/prologic/go-gopher v0.0.0-20200721020712-3e11dcff0469 h1:rAbv2gekFbUcjhUkruwo0vMJ0JqhUgg9tz7t+bxHbN4=
+-github.com/prologic/go-gopher v0.0.0-20200721020712-3e11dcff0469/go.mod h1:c61IFFAJw8ADWu54tti30Tj5VrBstVoTprmET35UEkY=
+ github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be h1:ta7tUOvsPHVHGom5hKW5VXNc2xZIkfCKP8iaqOyYtUQ=
+ github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be/go.mod h1:MIDFMn7db1kT65GmV94GzpX9Qdi7N/pQlwb+AN8wh+Q=
+ github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q=
+@@ -118,7 +116,6 @@ github.com/smartystreets/assertions v0.0.0-20190116191
+ github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c h1:Ho+uVpkel/udgjbwB5Lktg9BtvJSh2DT0Hi6LPSyI2w=
+ github.com/smartystreets/goconvey v0.0.0-20181108003508-044398e4856c/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+-github.com/stretchr/testify v1.6.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+ github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
+ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+ github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M=
+@@ -162,18 +159,22 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
+ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+ golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+-golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
+-golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
++golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q=
++golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+ golang.org/x/sys v0.0.0-20180525142821-c11f84a56e43/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+ golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+ golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884=
+-golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
++golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
++golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c=
++golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
++golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
++golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
++golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
++golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
+ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/www/writefreely/files/patch-gopher.go b/www/writefreely/files/patch-gopher.go
new file mode 100644
index 000000000000..6f07a2f894b6
--- /dev/null
+++ b/www/writefreely/files/patch-gopher.go
@@ -0,0 +1,11 @@
+--- gopher.go.orig	2021-07-12 09:15:24 UTC
++++ gopher.go
+@@ -18,7 +18,7 @@ import (
+ 	"regexp"
+ 	"strings"
+ 
+-	"github.com/prologic/go-gopher"
++	"git.mills.io/prologic/go-gopher"
+ 	"github.com/writeas/web-core/log"
+ )
+ 
diff --git a/www/writefreely/files/patch-handle.go b/www/writefreely/files/patch-handle.go
new file mode 100644
index 000000000000..4ce439c9825d
--- /dev/null
+++ b/www/writefreely/files/patch-handle.go
@@ -0,0 +1,11 @@
+--- handle.go.orig	2021-07-12 09:17:18 UTC
++++ handle.go
+@@ -21,7 +21,7 @@ import (
+ 	"time"
+ 
+ 	"github.com/gorilla/sessions"
+-	"github.com/prologic/go-gopher"
++	"git.mills.io/prologic/go-gopher"
+ 	"github.com/writeas/impart"
+ 	"github.com/writeas/web-core/log"
+ 	"github.com/writefreely/writefreely/config"
diff --git a/www/writefreely/files/pkg-message.in b/www/writefreely/files/pkg-message.in
new file mode 100644
index 000000000000..eadd68616faa
--- /dev/null
+++ b/www/writefreely/files/pkg-message.in
@@ -0,0 +1,15 @@
+WriteFreely has been installed.  The static files, configuration,
+and databases can be found in %%WWWDIR%%.
+To enable the WriteFreely daemon, add
+
+    writefreely_enable="YES"
+
+to /etc/rc.conf.  Next type
+
+    %%PREFIX%%/etc/rc.d/writefreely setup
+
+to interactively generate a configuration.  Finally type
+
+    %%PREFIX%%/etc/rc.d/writefreely start
+
+to start the writefreely service.
diff --git a/www/writefreely/files/writefreely.in b/www/writefreely/files/writefreely.in
new file mode 100644
index 000000000000..628570ee0221
--- /dev/null
+++ b/www/writefreely/files/writefreely.in
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+# PROVIDE: writefreely
+# REQUIRE: LOGIN NETWORKING
+# KEYWORD: shutdown
+#
+# Add these lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# writefreely_enable (bool):	Set to NO by default.
+#				Set it to YES to enable writefreely.
+# writefreely_home (path):	Where writefreely's assets, keys,
+#				config file, and databases are kept.
+# writefreely_user (str):	User to run writefreely as.
+#				Set to writefreely by default.
+
+. /etc/rc.subr
+
+load_rc_config $name
+
+: ${writefreely_enable:="NO"}
+: ${writefreely_home:="%%WWWDIR%%"}
+: ${writefreely_config:="config.ini"}
+: ${writefreely_user:="writefreely"}
+: ${writefreely_group:="writefreely"}
+: ${writefreely_pidfile:="/var/run/writefreely/writefreely.pid"}
+: ${writefreely_syslog_tag:="writefreely"}
+: ${writefreely_syslog_priority:="info"}
+: ${writefreely_syslog_facility:="daemon"}
+
+
+pidfile="${writefreely_pidfile}"
+
+name=writefreely
+rcvar=writefreely_enable
+command="/usr/sbin/daemon"
+command_args="-P ${pidfile} -S -T ${writefreely_syslog_tag} -s ${writefreely_syslog_priority} -l ${writefreely_syslog_facility} -- %%PREFIX%%/bin/writefreely -c $writefreely_config serve"
+writefreely_chdir="$writefreely_home"
+extra_commands="setup"
+start_precmd="start_precmd"
+setup_cmd="setup_cmd"
+
+start_precmd()
+{
+	if [ ! -f "$writefreely_home/$writefreely_config" ]
+	then
+		echo $writefreely_config missing.
+		echo Run service writefreely setup to generate it.
+		return 1
+	fi
+
+	su -m "$writefreely_user" -c "%%PREFIX%%/bin/writefreely -c '$writefreely_config' keys generate" >/dev/null
+
+	install -d -m 755 -o "${writefreely_user}" /var/run/writefreely
+}
+
+setup_cmd()
+{
+	su -m "$writefreely_user" -c "%%PREFIX%%/bin/writefreely -c '$writefreely_config' config start"
+	[ -f "$writefreely_home/writefreely.db" ] && chmod 700 "$writefreely_home/writefreely.db"
+}
+
+cd "$writefreely_home"
+
+run_rc_command "$1"
diff --git a/www/writefreely/pkg-descr b/www/writefreely/pkg-descr
new file mode 100644
index 000000000000..256cdd0dd867
--- /dev/null
+++ b/www/writefreely/pkg-descr
@@ -0,0 +1,5 @@
+WriteFreely is a clean, minimalist publishing platform made for writers.
+Start a blog, share knowledge within your organization, or build a
+community around the shared act of writing.
+
+WWW: https://writefreely.org
diff --git a/www/writefreely/pkg-plist b/www/writefreely/pkg-plist
new file mode 100644
index 000000000000..ace00809ad18
--- /dev/null
+++ b/www/writefreely/pkg-plist
@@ -0,0 +1,374 @@
+bin/writefreely
+%%PORTDOCS%%%%DOCSDIR%%/admin/chorus.md
+%%PORTDOCS%%%%DOCSDIR%%/admin/commands.md
+%%PORTDOCS%%%%DOCSDIR%%/admin/config.md
+%%PORTDOCS%%%%DOCSDIR%%/admin/docker.md
+%%PORTDOCS%%%%DOCSDIR%%/admin/moderation.md
+%%PORTDOCS%%%%DOCSDIR%%/developer/database.md
+%%PORTDOCS%%%%DOCSDIR%%/developer/setup.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/additional-blogs.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/autosave.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/css.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/display-format.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/drafts.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/excerpt.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/federation.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/following.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/hashtags.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/html.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/publicity.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/scheduling.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/static.md
+%%PORTDOCS%%%%DOCSDIR%%/writer/writing.md
+ at dir(writefreely,writefreely,) %%WWWDIR%%
+%%WWWDIR%%/pages/404-general.tmpl
+%%WWWDIR%%/pages/404.tmpl
+%%WWWDIR%%/pages/410.tmpl
+%%WWWDIR%%/pages/500.tmpl
+%%WWWDIR%%/pages/503.tmpl
+%%WWWDIR%%/pages/about.tmpl
+%%WWWDIR%%/pages/blank.tmpl
+%%WWWDIR%%/pages/landing.tmpl
+%%WWWDIR%%/pages/login.tmpl
+%%WWWDIR%%/pages/privacy.tmpl
+%%WWWDIR%%/pages/signup-oauth.tmpl
+%%WWWDIR%%/pages/signup.tmpl
+%%WWWDIR%%/static/css/.gitignore
+%%WWWDIR%%/static/css/fonts.css
+%%WWWDIR%%/static/css/icons.css
+%%WWWDIR%%/static/css/lib/atom-one-light.min.css
+%%WWWDIR%%/static/css/lib/mono-blue.min.css
+%%WWWDIR%%/static/css/prose.css
+%%WWWDIR%%/static/css/write.css
+%%WWWDIR%%/static/favicon.ico
+%%WWWDIR%%/static/fonts/Lora-Bold.eot
+%%WWWDIR%%/static/fonts/Lora-Bold.ttf
+%%WWWDIR%%/static/fonts/Lora-Bold.woff
+%%WWWDIR%%/static/fonts/Lora-Bold.woff2
+%%WWWDIR%%/static/fonts/Lora-Italic.eot
+%%WWWDIR%%/static/fonts/Lora-Italic.ttf
+%%WWWDIR%%/static/fonts/Lora-Italic.woff
+%%WWWDIR%%/static/fonts/Lora-Italic.woff2
+%%WWWDIR%%/static/fonts/Lora-Regular.eot
+%%WWWDIR%%/static/fonts/Lora-Regular.ttf
+%%WWWDIR%%/static/fonts/Lora-Regular.woff
+%%WWWDIR%%/static/fonts/Lora-Regular.woff2
+%%WWWDIR%%/static/fonts/MaterialIcons-Regular.eot
+%%WWWDIR%%/static/fonts/MaterialIcons-Regular.svg
+%%WWWDIR%%/static/fonts/MaterialIcons-Regular.ttf
+%%WWWDIR%%/static/fonts/MaterialIcons-Regular.woff
+%%WWWDIR%%/static/fonts/MaterialIcons-Regular.woff2
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-700.eot
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-700.svg
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-700.ttf
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-700.woff
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-700.woff2
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-regular.eot
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-regular.svg
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-regular.ttf
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-regular.woff
+%%WWWDIR%%/static/fonts/open-sans-v13-latin-regular.woff2
+%%WWWDIR%%/static/img/avatars/0.png
+%%WWWDIR%%/static/img/avatars/1.png
+%%WWWDIR%%/static/img/avatars/2.png
+%%WWWDIR%%/static/img/avatars/3.png
+%%WWWDIR%%/static/img/avatars/4.png
+%%WWWDIR%%/static/img/avatars/5.png
+%%WWWDIR%%/static/img/avatars/6.png
+%%WWWDIR%%/static/img/avatars/7.png
+%%WWWDIR%%/static/img/avatars/8.png
+%%WWWDIR%%/static/img/avatars/9.png
+%%WWWDIR%%/static/img/avatars/a.png
+%%WWWDIR%%/static/img/avatars/b.png
+%%WWWDIR%%/static/img/avatars/c.png
+%%WWWDIR%%/static/img/avatars/d.png
+%%WWWDIR%%/static/img/avatars/e.png
+%%WWWDIR%%/static/img/avatars/f.png
+%%WWWDIR%%/static/img/avatars/g.png
+%%WWWDIR%%/static/img/avatars/h.png
+%%WWWDIR%%/static/img/avatars/i.png
+%%WWWDIR%%/static/img/avatars/j.png
+%%WWWDIR%%/static/img/avatars/k.png
+%%WWWDIR%%/static/img/avatars/l.png
+%%WWWDIR%%/static/img/avatars/m.png
+%%WWWDIR%%/static/img/avatars/n.png
+%%WWWDIR%%/static/img/avatars/o.png
+%%WWWDIR%%/static/img/avatars/p.png
+%%WWWDIR%%/static/img/avatars/q.png
+%%WWWDIR%%/static/img/avatars/r.png
+%%WWWDIR%%/static/img/avatars/s.png
+%%WWWDIR%%/static/img/avatars/t.png
+%%WWWDIR%%/static/img/avatars/u.png
+%%WWWDIR%%/static/img/avatars/v.png
+%%WWWDIR%%/static/img/avatars/w.png
+%%WWWDIR%%/static/img/avatars/x.png
+%%WWWDIR%%/static/img/avatars/y.png
+%%WWWDIR%%/static/img/avatars/z.png
+%%WWWDIR%%/static/img/ic_blogs at 2x.png
+%%WWWDIR%%/static/img/ic_blogs_dark at 2x.png
+%%WWWDIR%%/static/img/ic_brightness at 2x.png
+%%WWWDIR%%/static/img/ic_brightness_dark at 2x.png
+%%WWWDIR%%/static/img/ic_down_arrow at 2x.png
+%%WWWDIR%%/static/img/ic_down_arrow_dark at 2x.png
+%%WWWDIR%%/static/img/ic_edit at 2x.png
+%%WWWDIR%%/static/img/ic_edit_dark at 2x.png
+%%WWWDIR%%/static/img/ic_font at 2x.png
+%%WWWDIR%%/static/img/ic_font_dark at 2x.png
+%%WWWDIR%%/static/img/ic_info at 2x.png
+%%WWWDIR%%/static/img/ic_info_dark at 2x.png
+%%WWWDIR%%/static/img/ic_list at 2x.png
+%%WWWDIR%%/static/img/ic_list_dark at 2x.png
+%%WWWDIR%%/static/img/ic_send at 2x.png
+%%WWWDIR%%/static/img/ic_send_dark at 2x.png
+%%WWWDIR%%/static/img/mark/gitea.png
+%%WWWDIR%%/static/img/mark/gitlab.png
+%%WWWDIR%%/static/img/mark/slack.png
+%%WWWDIR%%/static/img/mark/writeas-white.png
+%%WWWDIR%%/static/img/mark/writeas.png
+%%WWWDIR%%/static/img/paidarticle.svg
+%%WWWDIR%%/static/img/sign_in_with_slack.png
+%%WWWDIR%%/static/img/sign_in_with_slack at 2x.png
+%%WWWDIR%%/static/img/touch-icon-152.png
+%%WWWDIR%%/static/img/touch-icon-167.png
+%%WWWDIR%%/static/img/touch-icon-180.png
+%%WWWDIR%%/static/img/wf-sq.png
+%%WWWDIR%%/static/js/.gitignore
+%%WWWDIR%%/static/js/README.md
+%%WWWDIR%%/static/js/ace.js
+%%WWWDIR%%/static/js/h.js
+%%WWWDIR%%/static/js/highlight.min.js
+%%WWWDIR%%/static/js/highlightjs/1c.min.js
+%%WWWDIR%%/static/js/highlightjs/abnf.min.js
+%%WWWDIR%%/static/js/highlightjs/accesslog.min.js
+%%WWWDIR%%/static/js/highlightjs/actionscript.min.js
+%%WWWDIR%%/static/js/highlightjs/ada.min.js
+%%WWWDIR%%/static/js/highlightjs/angelscript.min.js
+%%WWWDIR%%/static/js/highlightjs/apache.min.js
+%%WWWDIR%%/static/js/highlightjs/applescript.min.js
+%%WWWDIR%%/static/js/highlightjs/arcade.min.js
+%%WWWDIR%%/static/js/highlightjs/arduino.min.js
+%%WWWDIR%%/static/js/highlightjs/armasm.min.js
+%%WWWDIR%%/static/js/highlightjs/asciidoc.min.js
+%%WWWDIR%%/static/js/highlightjs/aspectj.min.js
+%%WWWDIR%%/static/js/highlightjs/autohotkey.min.js
+%%WWWDIR%%/static/js/highlightjs/autoit.min.js
+%%WWWDIR%%/static/js/highlightjs/avrasm.min.js
+%%WWWDIR%%/static/js/highlightjs/awk.min.js
+%%WWWDIR%%/static/js/highlightjs/axapta.min.js
+%%WWWDIR%%/static/js/highlightjs/bash.min.js
+%%WWWDIR%%/static/js/highlightjs/basic.min.js
+%%WWWDIR%%/static/js/highlightjs/bnf.min.js
+%%WWWDIR%%/static/js/highlightjs/brainfuck.min.js
+%%WWWDIR%%/static/js/highlightjs/cal.min.js
+%%WWWDIR%%/static/js/highlightjs/capnproto.min.js
+%%WWWDIR%%/static/js/highlightjs/ceylon.min.js
+%%WWWDIR%%/static/js/highlightjs/clean.min.js
+%%WWWDIR%%/static/js/highlightjs/clojure-repl.min.js
+%%WWWDIR%%/static/js/highlightjs/clojure.min.js
+%%WWWDIR%%/static/js/highlightjs/cmake.min.js
+%%WWWDIR%%/static/js/highlightjs/coffeescript.min.js
+%%WWWDIR%%/static/js/highlightjs/coq.min.js
+%%WWWDIR%%/static/js/highlightjs/cos.min.js
+%%WWWDIR%%/static/js/highlightjs/cpp.min.js
+%%WWWDIR%%/static/js/highlightjs/crmsh.min.js
+%%WWWDIR%%/static/js/highlightjs/crystal.min.js
+%%WWWDIR%%/static/js/highlightjs/cs.min.js
+%%WWWDIR%%/static/js/highlightjs/csp.min.js
+%%WWWDIR%%/static/js/highlightjs/css.min.js
+%%WWWDIR%%/static/js/highlightjs/d.min.js
+%%WWWDIR%%/static/js/highlightjs/dart.min.js
+%%WWWDIR%%/static/js/highlightjs/delphi.min.js
+%%WWWDIR%%/static/js/highlightjs/diff.min.js
+%%WWWDIR%%/static/js/highlightjs/django.min.js
+%%WWWDIR%%/static/js/highlightjs/dns.min.js
+%%WWWDIR%%/static/js/highlightjs/dockerfile.min.js
+%%WWWDIR%%/static/js/highlightjs/dos.min.js
+%%WWWDIR%%/static/js/highlightjs/dsconfig.min.js
+%%WWWDIR%%/static/js/highlightjs/dts.min.js
+%%WWWDIR%%/static/js/highlightjs/dust.min.js
+%%WWWDIR%%/static/js/highlightjs/ebnf.min.js
+%%WWWDIR%%/static/js/highlightjs/elixir.min.js
+%%WWWDIR%%/static/js/highlightjs/elm.min.js
+%%WWWDIR%%/static/js/highlightjs/erb.min.js
+%%WWWDIR%%/static/js/highlightjs/erlang-repl.min.js
+%%WWWDIR%%/static/js/highlightjs/erlang.min.js
+%%WWWDIR%%/static/js/highlightjs/excel.min.js
+%%WWWDIR%%/static/js/highlightjs/fix.min.js
+%%WWWDIR%%/static/js/highlightjs/flix.min.js
+%%WWWDIR%%/static/js/highlightjs/fortran.min.js
+%%WWWDIR%%/static/js/highlightjs/fsharp.min.js
+%%WWWDIR%%/static/js/highlightjs/gams.min.js
+%%WWWDIR%%/static/js/highlightjs/gauss.min.js
+%%WWWDIR%%/static/js/highlightjs/gcode.min.js
+%%WWWDIR%%/static/js/highlightjs/gherkin.min.js
+%%WWWDIR%%/static/js/highlightjs/glsl.min.js
+%%WWWDIR%%/static/js/highlightjs/gml.min.js
+%%WWWDIR%%/static/js/highlightjs/go.min.js
+%%WWWDIR%%/static/js/highlightjs/golo.min.js
+%%WWWDIR%%/static/js/highlightjs/gradle.min.js
+%%WWWDIR%%/static/js/highlightjs/groovy.min.js
+%%WWWDIR%%/static/js/highlightjs/haml.min.js
+%%WWWDIR%%/static/js/highlightjs/handlebars.min.js
+%%WWWDIR%%/static/js/highlightjs/haskell.min.js
+%%WWWDIR%%/static/js/highlightjs/haxe.min.js
+%%WWWDIR%%/static/js/highlightjs/hsp.min.js
+%%WWWDIR%%/static/js/highlightjs/htmlbars.min.js
+%%WWWDIR%%/static/js/highlightjs/http.min.js
+%%WWWDIR%%/static/js/highlightjs/hy.min.js
+%%WWWDIR%%/static/js/highlightjs/inform7.min.js
+%%WWWDIR%%/static/js/highlightjs/ini.min.js
+%%WWWDIR%%/static/js/highlightjs/irpf90.min.js
+%%WWWDIR%%/static/js/highlightjs/isbl.min.js
+%%WWWDIR%%/static/js/highlightjs/java.min.js
+%%WWWDIR%%/static/js/highlightjs/javascript.min.js
+%%WWWDIR%%/static/js/highlightjs/jboss-cli.min.js
+%%WWWDIR%%/static/js/highlightjs/json.min.js
+%%WWWDIR%%/static/js/highlightjs/julia-repl.min.js
+%%WWWDIR%%/static/js/highlightjs/julia.min.js
+%%WWWDIR%%/static/js/highlightjs/kotlin.min.js
+%%WWWDIR%%/static/js/highlightjs/lasso.min.js
+%%WWWDIR%%/static/js/highlightjs/ldif.min.js
+%%WWWDIR%%/static/js/highlightjs/leaf.min.js
+%%WWWDIR%%/static/js/highlightjs/less.min.js
+%%WWWDIR%%/static/js/highlightjs/lisp.min.js
+%%WWWDIR%%/static/js/highlightjs/livecodeserver.min.js
+%%WWWDIR%%/static/js/highlightjs/livescript.min.js
+%%WWWDIR%%/static/js/highlightjs/llvm.min.js
+%%WWWDIR%%/static/js/highlightjs/lsl.min.js
+%%WWWDIR%%/static/js/highlightjs/lua.min.js
+%%WWWDIR%%/static/js/highlightjs/makefile.min.js
+%%WWWDIR%%/static/js/highlightjs/markdown.min.js
+%%WWWDIR%%/static/js/highlightjs/mathematica.min.js
+%%WWWDIR%%/static/js/highlightjs/matlab.min.js
+%%WWWDIR%%/static/js/highlightjs/maxima.min.js
+%%WWWDIR%%/static/js/highlightjs/mel.min.js
+%%WWWDIR%%/static/js/highlightjs/mercury.min.js
+%%WWWDIR%%/static/js/highlightjs/mipsasm.min.js
+%%WWWDIR%%/static/js/highlightjs/mizar.min.js
+%%WWWDIR%%/static/js/highlightjs/mojolicious.min.js
+%%WWWDIR%%/static/js/highlightjs/monkey.min.js
+%%WWWDIR%%/static/js/highlightjs/moonscript.min.js
+%%WWWDIR%%/static/js/highlightjs/n1ql.min.js
+%%WWWDIR%%/static/js/highlightjs/nginx.min.js
+%%WWWDIR%%/static/js/highlightjs/nimrod.min.js
+%%WWWDIR%%/static/js/highlightjs/nix.min.js
+%%WWWDIR%%/static/js/highlightjs/nsis.min.js
+%%WWWDIR%%/static/js/highlightjs/objectivec.min.js
+%%WWWDIR%%/static/js/highlightjs/ocaml.min.js
+%%WWWDIR%%/static/js/highlightjs/openscad.min.js
+%%WWWDIR%%/static/js/highlightjs/oxygene.min.js
+%%WWWDIR%%/static/js/highlightjs/parser3.min.js
+%%WWWDIR%%/static/js/highlightjs/perl.min.js
+%%WWWDIR%%/static/js/highlightjs/pf.min.js
+%%WWWDIR%%/static/js/highlightjs/pgsql.min.js
+%%WWWDIR%%/static/js/highlightjs/php.min.js
+%%WWWDIR%%/static/js/highlightjs/plaintext.min.js
+%%WWWDIR%%/static/js/highlightjs/pony.min.js
+%%WWWDIR%%/static/js/highlightjs/powershell.min.js
+%%WWWDIR%%/static/js/highlightjs/processing.min.js
+%%WWWDIR%%/static/js/highlightjs/profile.min.js
+%%WWWDIR%%/static/js/highlightjs/prolog.min.js
+%%WWWDIR%%/static/js/highlightjs/properties.min.js
+%%WWWDIR%%/static/js/highlightjs/protobuf.min.js
+%%WWWDIR%%/static/js/highlightjs/puppet.min.js
+%%WWWDIR%%/static/js/highlightjs/purebasic.min.js
+%%WWWDIR%%/static/js/highlightjs/python.min.js
+%%WWWDIR%%/static/js/highlightjs/q.min.js
+%%WWWDIR%%/static/js/highlightjs/qml.min.js
+%%WWWDIR%%/static/js/highlightjs/r.min.js
+%%WWWDIR%%/static/js/highlightjs/reasonml.min.js
+%%WWWDIR%%/static/js/highlightjs/rib.min.js
+%%WWWDIR%%/static/js/highlightjs/roboconf.min.js
+%%WWWDIR%%/static/js/highlightjs/routeros.min.js
+%%WWWDIR%%/static/js/highlightjs/rsl.min.js
+%%WWWDIR%%/static/js/highlightjs/ruby.min.js
+%%WWWDIR%%/static/js/highlightjs/ruleslanguage.min.js
+%%WWWDIR%%/static/js/highlightjs/rust.min.js
+%%WWWDIR%%/static/js/highlightjs/sas.min.js
+%%WWWDIR%%/static/js/highlightjs/scala.min.js
+%%WWWDIR%%/static/js/highlightjs/scheme.min.js
+%%WWWDIR%%/static/js/highlightjs/scilab.min.js
+%%WWWDIR%%/static/js/highlightjs/scss.min.js
+%%WWWDIR%%/static/js/highlightjs/shell.min.js
+%%WWWDIR%%/static/js/highlightjs/smali.min.js
+%%WWWDIR%%/static/js/highlightjs/smalltalk.min.js
+%%WWWDIR%%/static/js/highlightjs/sml.min.js
+%%WWWDIR%%/static/js/highlightjs/sqf.min.js
+%%WWWDIR%%/static/js/highlightjs/sql.min.js
+%%WWWDIR%%/static/js/highlightjs/stan.min.js
+%%WWWDIR%%/static/js/highlightjs/stata.min.js
+%%WWWDIR%%/static/js/highlightjs/step21.min.js
+%%WWWDIR%%/static/js/highlightjs/stylus.min.js
+%%WWWDIR%%/static/js/highlightjs/subunit.min.js
+%%WWWDIR%%/static/js/highlightjs/swift.min.js
+%%WWWDIR%%/static/js/highlightjs/taggerscript.min.js
+%%WWWDIR%%/static/js/highlightjs/tap.min.js
+%%WWWDIR%%/static/js/highlightjs/tcl.min.js
+%%WWWDIR%%/static/js/highlightjs/tex.min.js
+%%WWWDIR%%/static/js/highlightjs/thrift.min.js
+%%WWWDIR%%/static/js/highlightjs/tp.min.js
+%%WWWDIR%%/static/js/highlightjs/twig.min.js
+%%WWWDIR%%/static/js/highlightjs/typescript.min.js
+%%WWWDIR%%/static/js/highlightjs/vala.min.js
+%%WWWDIR%%/static/js/highlightjs/vbnet.min.js
+%%WWWDIR%%/static/js/highlightjs/vbscript-html.min.js
+%%WWWDIR%%/static/js/highlightjs/vbscript.min.js
+%%WWWDIR%%/static/js/highlightjs/verilog.min.js
+%%WWWDIR%%/static/js/highlightjs/vhdl.min.js
+%%WWWDIR%%/static/js/highlightjs/vim.min.js
+%%WWWDIR%%/static/js/highlightjs/x86asm.min.js
+%%WWWDIR%%/static/js/highlightjs/xl.min.js
+%%WWWDIR%%/static/js/highlightjs/xml.min.js
+%%WWWDIR%%/static/js/highlightjs/xquery.min.js
+%%WWWDIR%%/static/js/highlightjs/yaml.min.js
+%%WWWDIR%%/static/js/highlightjs/zephir.min.js
+%%WWWDIR%%/static/js/localdate.js
+%%WWWDIR%%/static/js/mathjax/tex-svg-full.js
+%%WWWDIR%%/static/js/menu.js
+%%WWWDIR%%/static/js/modals.js
+%%WWWDIR%%/static/js/mode-css.js
+%%WWWDIR%%/static/js/postactions.js
+%%WWWDIR%%/static/js/posts.js
+%%WWWDIR%%/static/js/theme-chrome.js
+%%WWWDIR%%/static/js/webfont.js
+%%WWWDIR%%/static/js/webmonetization.js
+%%WWWDIR%%/static/js/worker-css.js
+%%WWWDIR%%/templates/bare.tmpl
+%%WWWDIR%%/templates/base.tmpl
+%%WWWDIR%%/templates/chorus-collection-post.tmpl
+%%WWWDIR%%/templates/chorus-collection.tmpl
+%%WWWDIR%%/templates/classic.tmpl
+%%WWWDIR%%/templates/collection-post.tmpl
+%%WWWDIR%%/templates/collection-tags.tmpl
+%%WWWDIR%%/templates/collection.tmpl
+%%WWWDIR%%/templates/edit-meta.tmpl
+%%WWWDIR%%/templates/include/footer.tmpl
+%%WWWDIR%%/templates/include/oauth.tmpl
+%%WWWDIR%%/templates/include/post-render.tmpl
+%%WWWDIR%%/templates/include/posts.tmpl
+%%WWWDIR%%/templates/pad.tmpl
+%%WWWDIR%%/templates/password-collection.tmpl
+%%WWWDIR%%/templates/post.tmpl
+%%WWWDIR%%/templates/read.tmpl
+%%WWWDIR%%/templates/user/admin.tmpl
+%%WWWDIR%%/templates/user/admin/app-settings.tmpl
+%%WWWDIR%%/templates/user/admin/app-updates.tmpl
+%%WWWDIR%%/templates/user/admin/monitor.tmpl
+%%WWWDIR%%/templates/user/admin/pages.tmpl
*** 17 LINES SKIPPED ***


More information about the dev-commits-ports-main mailing list